Skip to content

there). - description is the one field you must fill. Everything else is optional: uncomment AND replace the value. - Delete the optional fields you don't use, and delete these HTML comments before commit. -->


description: <What it does + WHEN to use it — key use case FIRST, include trigger phrases. Combined with when_to_use, <=1536 chars.>

name: # optional; defaults to dir name. [a-z0-9-], <=64 chars. Uncomment + set a real value.

when_to_use: "" # counts toward the 1536-char cap

argument-hint: "[arg1] [arg2]"

arguments: [arg1, arg2] # -> $arg1, $arg2 in the body

disable-model-invocation: true # user-only (deploy/merge/commit). Description then feeds the / menu, NOT auto-invocation.

user-invocable: false # Claude-only background knowledge; description IS loaded into context.

allowed-tools: Read Grep Bash(git add *) # GRANTS tools (does NOT restrict). Deny rules + workspace trust still win.

model: inherit

effort: high # low|medium|high|xhigh|max

context: fork # run in an isolated subagent (ties to the Subagent row of the standard §1)

agent: Explore # subagent type when context: fork

paths: "src/,dags/" # auto-invoke only on matching files (do NOT combine with disable-model-invocation)

shell: bash # bash (default) or powershell — shell for inline !cmd injection

hooks: # skill-scoped lifecycle hooks (rarely needed)


Goal

The gotcha it encodes

Steps

  1. <…>
  2. <…>

Notes / guardrails