AgentSkills.site

SKM-P06 · Portability

`disable-model-invocation` isn't recognised everywhere the same way

Turns off automatic selection in Cursor, OpenClaw, and Claude Code. Codex uses a different mechanism entirely (`policy.allow_implicit_invocation` in `agents/openai.yaml`); Hermes documents nothing.

What the rule is

`disable-model-invocation: true` keeps a skill reachable by explicit command while removing it from automatic, model-initiated selection. It's recognised in Cursor, OpenClaw, and Claude Code — and in OpenClaw it additionally hides the skill from the `$` picker.

Codex expresses the same intent a different way entirely: `policy.allow_implicit_invocation: false` in a separate `agents/openai.yaml` file, not this frontmatter field — so setting `disable-model-invocation` in a skill meant for Codex has no effect there. Hermes Agent documents nothing on this either way.

Where it comes from

Which runtimes enforce it

RuntimeEffectNote
Claude CodeEnforced (home runtime)Recognised — keeps the skill reachable by command while removing it from automatic selection.
CodexIgnoredNot recognised — Codex expresses the same intent as `policy.allow_implicit_invocation: false` in a separate `agents/openai.yaml` file, not this frontmatter field.
CursorEnforced (home runtime)Recognised — same effect as in Claude Code.
OpenClawEnforced (home runtime)Recognised, and also hides the skill from the `$` picker.
Hermes AgentNot documentedNot documented for Hermes Agent.

How to fix it

  • For Codex specifically, use `policy.allow_implicit_invocation: false` in `agents/openai.yaml` instead of (or in addition to) this field.
  • Know that migration tooling sets this field automatically — Cursor's `/migrate-to-skills` and OpenClaw's Claude-import both write `disable-model-invocation: true` on converted commands, which is often the reason a migrated skill never fires on its own.

Elsewhere