pkg.soopen package index
← All stories

Rulesync: One Set of Instructions, Many Agents

A focused CLI for turning one maintained ruleset into the differing files that modern coding agents expect.

Tools in this story

  • rulesync — Package details and install
  • vfox — Package details and install
  • yutu — Package details and install
A luminous origami rulebook connects by teal, amber, and violet paths to six abstract developer workspaces on a deep navy background.

Configuration Is Becoming a Compatibility Problem

A repository can now carry instructions for several coding agents: project rules, commands, skills, tool permissions, hooks, ignore lists, and MCP servers. Each agent has useful ideas about filenames and structure, but the formats are not interchangeable. A change to one policy can become a small, error-prone copy-and-paste campaign. The obvious shortcut—keeping only one tool's file—makes the setup less portable and gives contributors different behavior depending on the agent they choose.

Rulesync takes a different route. It keeps a source tree for shared AI-agent guidance, imports some existing configurations, and generates target-specific output. Its repository documents targets for Claude Code, Codex CLI, GitHub Copilot, Cursor, OpenCode, and many other tools, alongside an AGENTS.md target. The intent is not to claim every agent behaves identically. It is to make the differences explicit while giving the common policy one place to live.

A Young Tool in a Fast-Moving Space

Rulesync published its first stable 0.1.0 release on June 18, 2025. That timing matters: the surrounding agent ecosystem changes quickly, with new configuration surfaces appearing alongside familiar instruction files. The project's release history shows steady iteration, and the documentation tracks feature support per target rather than pretending every output can represent every capability. That is the right posture for a compatibility tool: generation is useful only if it is honest about what can be generated.

The basic workflow is deliberately small. Initialize a rulesync layout, put reusable rules and components in it, then generate selected targets. Existing repositories can also import tool-specific files before adopting the source-of-truth layout. A conversion command supports direct translation when a repository needs to move from one format to another without immediately adopting a managed tree. Generated files should still be reviewed like any other derived artifact; they influence how tools read, edit, and execute inside a repository.

What Belongs in the Shared Layer

The shared layer works best for stable repository facts and working agreements:

  • architecture boundaries and naming conventions;
  • test and validation commands;
  • security or data-handling constraints;
  • review expectations and prohibited shortcuts;
  • reusable agent skills and task commands.

It works less well for instructions that only make sense in a single product. One agent may support a hook event, permission rule, or custom-agent setting that another does not expose. Flattening that distinction can create a configuration that looks standardized but silently loses behavior. Rulesync's supported-tools matrix is useful here: treat it as a compatibility map, not a promise of semantic equivalence. Keep genuinely tool-specific settings scoped to the target that needs them.

A shared file also needs normal software ownership. Put changes through review, pin the generator version where repeatability matters, and decide whether CI should regenerate and fail on a diff. A generated configuration file is not documentation someone can casually edit in a panic; the source layout is the place to make the enduring change. That discipline prevents the source and output from drifting apart.

Evidence of Use, With Limits

The upstream repository shows an active project with over a thousand GitHub stars, forks, issue activity, releases, and documentation for a broad set of agent targets. Those signals demonstrate attention and public use beyond an unpublished experiment. They do not measure production deployments, reliability in a particular organization, or the quality of every generated integration. The project is still young enough that a cautious evaluation is sensible.

Start with one repository that already has two or three agent configurations. Import or recreate only the instructions that are actually shared, generate those targets, and inspect the diff line by line. Run each agent's normal workflow against a disposable branch. Pay special attention to permissions, hooks, commands, and MCP settings because those surfaces can have real operational consequences. If the generated output is clearer and remains in sync through one policy change, expand from there.

Adjacent Tools, Different Jobs

This pattern is broader than agent configuration. vfox offers one command surface for selecting several language runtimes, while recognizing familiar version files; it is a practical companion when teams want fewer per-language setup rituals. yutu shows the opposite boundary: it automates authenticated YouTube work, where capabilities are intentionally specific and account permissions matter. Neither tool is a Rulesync substitute, but together they underline the principle: consolidate the policy that is truly shared, and leave specialized behavior close to the system that owns it.

Rulesync earns its place when a team already maintains multiple agent files and can name the common rules. For a single agent or a small repository, a well-kept AGENTS.md may be all that is needed. The value begins when duplication is real—and ends if the generator obscures more than it removes.

Sources