Summary
The Codex multi-agents docs say sub-agents can enable or disable skills in their TOML file. In practice, agent-local [[skills.config]] does not appear to be respected in either direction:
- disabling a skill for a specific agent does not remove it for that agent
- enabling a skill for a specific agent when it is disabled globally does not make it available to that agent
Docs referenced
The Multi-agents docs include an example like:
[[skills.config]]
path = "/Users/me/.agents/skills/docs-editor/SKILL.md"
enabled = false
which implies per-agent skill scoping is supported.
Expected behaviour
Agent-local [[skills.config]] should allow sub-agents to override skill availability on a per-agent basis.
Two cases should work:
- Disable a default-available skill for one agent:
[[skills.config]]
path = "/absolute/path/to/SKILL.md"
enabled = false
Expected result: that skill is not available to that sub-agent.
- Enable a globally disabled skill for one agent:
Global ~/.codex/config.toml:
[[skills.config]]
path = "/absolute/path/to/SKILL.md"
enabled = false
Agent TOML:
[[skills.config]]
path = "/absolute/path/to/SKILL.md"
enabled = true
Expected result: that skill is available to that sub-agent only.
Actual behaviour
Neither direction appears to work:
- agent-local
enabled = false does not disable the skill for that agent
- agent-local
enabled = true does not re-enable a globally disabled skill for that agent
This makes the agent-local skills.config setting appear to have no effect.
Minimal repros
Case 1: disable per agent
- Create exactly one skill under
$HOME/.agents/skills/.../SKILL.md.
- Do not define any global
[[skills.config]] in ~/.codex/config.toml.
- Define one custom sub-agent in an agent TOML with:
[[skills.config]]
path = "/absolute/path/to/the/skill/SKILL.md"
enabled = false
- Spawn that sub-agent.
Result: the agent-local disable does not appear to be honoured.
Case 2: enable only for one agent
- Create exactly one skill under
$HOME/.agents/skills/.../SKILL.md.
- Disable it globally in
~/.codex/config.toml:
[[skills.config]]
path = "/absolute/path/to/the/skill/SKILL.md"
enabled = false
- Define one custom sub-agent in an agent TOML with:
[[skills.config]]
path = "/absolute/path/to/the/skill/SKILL.md"
enabled = true
- Spawn that sub-agent.
Result: the agent-local enable does not appear to override the global disable.
What was verified
- The agent TOML parses correctly as valid TOML.
[[skills.config]] is a top-level table and is not nested incorrectly.
- The skill path is correct.
- Both override directions were tested:
- default available -> disabled per agent
- disabled globally -> enabled per agent
- The observed behaviour still does not match the docs.
Environment
Impact
This breaks the expected role specialisation model for sub-agents. If agent-local skill enable/disable is ignored, skills cannot be scoped cleanly to only the agents that need them.
That defeats a core use case for specialised sub-agents:
- globally available skills cannot be excluded from agents that should not use them
- globally disabled skills cannot be selectively enabled for the agents that do need them
Summary
The Codex multi-agents docs say sub-agents can enable or disable skills in their TOML file. In practice, agent-local
[[skills.config]]does not appear to be respected in either direction:Docs referenced
The Multi-agents docs include an example like:
which implies per-agent skill scoping is supported.
Expected behaviour
Agent-local
[[skills.config]]should allow sub-agents to override skill availability on a per-agent basis.Two cases should work:
Expected result: that skill is not available to that sub-agent.
Global
~/.codex/config.toml:Agent TOML:
Expected result: that skill is available to that sub-agent only.
Actual behaviour
Neither direction appears to work:
enabled = falsedoes not disable the skill for that agentenabled = truedoes not re-enable a globally disabled skill for that agentThis makes the agent-local
skills.configsetting appear to have no effect.Minimal repros
Case 1: disable per agent
$HOME/.agents/skills/.../SKILL.md.[[skills.config]]in~/.codex/config.toml.Result: the agent-local disable does not appear to be honoured.
Case 2: enable only for one agent
$HOME/.agents/skills/.../SKILL.md.~/.codex/config.toml:Result: the agent-local enable does not appear to override the global disable.
What was verified
[[skills.config]]is a top-level table and is not nested incorrectly.Environment
Impact
This breaks the expected role specialisation model for sub-agents. If agent-local skill enable/disable is ignored, skills cannot be scoped cleanly to only the agents that need them.
That defeats a core use case for specialised sub-agents: