Compose the rules each task needs from one shared rules repo.
Recipes pick the rules, skills and commands for a task, and requires: pulls in their dependencies. Each subagent gets its own recipe and model, ruly squash --sync shares one rules repo across machines with per-machine overrides:, and every squash that writes files runs checks on the output.
Recipes
A named recipe lists the rule files, skills and commands for one task. Dependencies declared with requires: are resolved and included once, and ruly stats lists any circular chains.
Subagents
Each subagent gets its own recipe and model, written to .claude/agents/. The model falls back from the subagent to the recipe to inherit.
Sync and checks
ruly squash --sync mirrors one rules repo to every machine, with per-machine overrides:. Each squash that writes files checks for ambiguous anchor links and duplicate skill requires.