Problem
Ruler currently treats skills propagation as a global switch.
From the README:
default_agents controls which agents are applied by default
- skills are enabled by default
- skills can only be controlled globally via:
ruler apply --skills
ruler apply --no-skills
[skills].enabled = true/false
In practice, this makes it hard to use Ruler in mixed-agent projects.
Example:
default_agents = ["codex", "trae", "cursor"]
[agents.codex]
enabled = true
[agents.cursor]
enabled = true
[agents.trae]
enabled = true
[agents.claude]
enabled = false
Even with only codex, trae, and cursor intended for active use, skills-related output can still become confusing, and there is no explicit way to say:
propagate skills to codex
propagate skills to cursor
do NOT propagate skills to claude
do NOT propagate skills to any other supported agent
Expected behavior
Ruler should support agent-level control for skills propagation.
Something like this would solve the problem:
[skills]
enabled = true
[agents.codex.skills]
enabled = true
[agents.cursor.skills]
enabled = true
[agents.trae.skills]
enabled = false
[agents.claude.skills]
enabled = false
Or equivalently:
[skills]
enabled = true
allowed_agents = ["codex", "cursor"]
Why this matters
default_agents is not expressive enough for skills distribution.
There are real cases where users want:
rules/config for some agents
skills only for a subset of those agents
clean repositories without extra generated skill directories for tools they are not using
Without per-agent control, the only safe option is disabling skills globally, which is too coarse.
Proposed solution
Any of these would help:
Per-agent skills enable/disable
Global skills.allowed_agents = [...]
ruler apply --skills-agents codex,cursor
Problem
Ruler currently treats skills propagation as a global switch.
From the README:
default_agentscontrols which agents are applied by defaultruler apply --skillsruler apply --no-skills[skills].enabled = true/falseIn practice, this makes it hard to use Ruler in mixed-agent projects.
Example: