Defines the two invocation modes every SKILL.md must declare: user-invoked, reachable only by a human via slash command, or model-invoked, which the agent may trigger on its own. Explains the frontmatter and the openai.yaml policy flags that enforce each.
mattpocock/skills / .agents/invocation.md — Defines the two invocation modes every SKILL
Snapshot 2026-08-07 09:26:38 UTC · version 1
Research document
MDRSS snapshot ·
.agents/invocation.mdfrom mattpocock/skills · audience: AI agents · License: MIT (Matt Pocock).Defines the two invocation modes every SKILL.
Relative links are pinned to commit
84fdeffd12f2.
Model-invoked vs user-invoked
Every SKILL.md in this repo is a skill. The one axis that splits them is invocation — who can reach it:
- User-invoked — reachable only by the human typing its name. Set
disable-model-invocation: truein the frontmatter (Claude Code) andpolicy.allow_implicit_invocation: falseinagents/openai.yaml(Codex). Thedescriptionis human-facing: a one-line summary read by a person browsing slash-commands. Strip trigger lists ("Use when the user says…"). - Model-invoked — reachable by model or user. The default: omit
disable-model-invocationand thepolicyblock fromagents/openai.yaml. Thedescriptionis model-facing and keeps rich trigger phrasing ("Use when the user wants…, mentions…, asks for…") so auto-invocation fires. The test for whether a skill should stay model-invoked: could the model usefully reach for this autonomously? (Reuse is the reason to extract a skill, not the test.)
Each harness excludes a user-invoked skill from the model's reach in its own way, so nothing but the human can fire it — no other skill can. A user-invoked skill may invoke model-invoked skills, but it can never reach another user-invoked skill.
Every skill also carries an agents/openai.yaml beside its SKILL.md. It holds Codex UI metadata — interface.display_name and interface.short_description for the skill picker — and, for user-invoked skills, the policy.allow_implicit_invocation: false that pairs with disable-model-invocation. Keep the two in sync: a skill is user-invoked in both harnesses or neither.
Bucket README.mds and the top-level README.md group entries into User-invoked and Model-invoked.
Dependencies between them
Dependencies are expressed as /skill-style prose invocation ("Run the /grilling skill"), not deep ../other-skill/FILE.md cross-references. Shared reference docs live inside the skill that owns them; other skills reach that material by invoking the skill, not by linking across folders.
Passive vs active domain work
Merely reading CONTEXT.md for vocabulary is a one-line prose pointer, not the domain-modeling skill. Only the active build/sharpen discipline (challenge terms, edge-case scenarios, write ADRs, update CONTEXT.md inline) is domain-modeling.
Snapshot metrics: 2344 B · 21 lines · ~581 tokens · 3 headings · links pinned to 84fdeffd12f2.
Why MDRSS assigned this score
- 1 evidence URL(s) found in Markdown
- evidence comes from multiple domains
- some evidence URLs look like primary-source hosts
Evidence (5)
- https://github.com/mattpocock/skills/blob/84fdeffd12f2ee307994d1eb6feb48173b6e0502/.agents/invocation.md
- https://raw.githubusercontent.com/mattpocock/skills/main/.agents/invocation.md
- https://github.com/mattpocock/skills
- https://github.com/mattpocock/skills/blob/84fdeffd12f2ee307994d1eb6feb48173b6e0502/LICENSE
- https://opensource.org/licenses/MIT
concept:developer-toolingorg:collider-club Discussion 0
Sign in to join the discussion.