name: {{skill}}
description: {{description}}
model: haiku # haiku = lightweight read/report · omit = orchestration/reasoning
effort: high # high = multi-step orchestration · low = cheap scout · omit = default
allowed-tools: Read, Glob, Grep, Bash # explicit allowlist
argument-hint: "[issue-id]" # REQUIRED when the skill takes arguments — autocomplete hint
disable-model-invocation: true # user-triggered only (deploy, commit, …) — Claude never auto-invokes
user-invocable: false # background knowledge skill — Claude reads it, users can't invoke it
paths: src/**/*.ts # glob pattern(s) — activate only when working with matching files (drop the backticks)
disallowed-tools: Write, Edit # remove tools from the pool while the skill is active
context: fork # run the skill in a forked subagent instead of inline
agent: Explore # subagent to use when context: fork is set
{{skill}}
Rigid [gate type]. Match the user's language; keep technical identifiers unchanged.
Voice
Read ../../persona.md at the start of this skill. It is canonical for every
user-facing string this skill emits, and its scope ends with the final report.
[IF the skill needs dynamic context — optional section, repo-wide convention]
Context
Auto-injected on Claude Code at skill load. If the lines below still show raw, unexpanded dynamic-context commands, run them manually before step 1.
- [Label]: !
[read-only command]
- [Label]: !
[read-only command]
[/ENDIF]
Workflow
- Preconditions:
- [List the things that must be true before this skill runs. Examples: MCP tools loaded, git repo verified, state file readable.]
- [Step name]:
- [Ordered actions. Use Bash / Read / MCP tools as needed. Keep bullets tight.]
- [Step name]:
- [...]
N. [Final action — handoff, report, or stop]:
- [...]
[IF hand-off menu]
Present numbered options after the final action:
[voice intro line]
(a) <label> → <what happens>
(b) <label> → <what happens>
(s) stop → <clean exit message>
Branch on response. Exit skill when the chosen branch finishes.
[/ENDIF]
[IF this skill hands to a specific next skill]
Name the next skill explicitly, on its own line, so the chain cannot be guessed:
REQUIRED SUB-SKILL: Use <plugin>:<skill>
[/ENDIF]
Final Report
{{plugin}}:{{skill}} report
<Field>: <value>
<Field>: <value>
Never
- Run
git push, git commit, or git rebase.
- Mutate external services without explicit user confirmation.
- Skip the preconditions step.
- [Skill-specific don'ts]
1---2name: claudecode3description: <!-- template-meta4---5<!-- template-meta6required_frontmatter: [name, description]7optional_frontmatter: [model, effort, allowed-tools, argument-hint, disable-model-invocation, user-invocable, paths, disallowed-tools, context, agent]8required_sections: ["## Workflow", "## Never"]9variables: [plugin, skill, description]10-->1112---1314name: {{skill}}15description: {{description}}1617# model: haiku # haiku = lightweight read/report · omit = orchestration/reasoning1819# effort: high # high = multi-step orchestration · low = cheap scout · omit = default2021# allowed-tools: Read, Glob, Grep, Bash # explicit allowlist2223# argument-hint: "[issue-id]" # REQUIRED when the skill takes arguments — autocomplete hint2425# disable-model-invocation: true # user-triggered only (deploy, commit, …) — Claude never auto-invokes2627# user-invocable: false # background knowledge skill — Claude reads it, users can't invoke it2829# paths: `src/**/*.ts` # glob pattern(s) — activate only when working with matching files (drop the backticks)3031# disallowed-tools: Write, Edit # remove tools from the pool while the skill is active3233# context: fork # run the skill in a forked subagent instead of inline3435# agent: Explore # subagent to use when context: fork is set3637---3839# {{skill}}4041Rigid [gate type]. Match the user's language; keep technical identifiers unchanged.4243## Voice4445Read `../../persona.md` at the start of this skill. It is canonical for every46user-facing string this skill emits, and its scope ends with the final report.4748[IF the skill needs dynamic context — optional section, repo-wide convention]4950## Context5152> Auto-injected on Claude Code at skill load. If the lines below still show raw, unexpanded dynamic-context commands, run them manually before step 1.5354- [Label]: !`[read-only command]`55- [Label]: !`[read-only command]`5657[/ENDIF]5859## Workflow60611. Preconditions:62 - [List the things that must be true before this skill runs. Examples: MCP tools loaded, git repo verified, state file readable.]632. [Step name]:64 - [Ordered actions. Use Bash / Read / MCP tools as needed. Keep bullets tight.]653. [Step name]:66 - [...]67 N. [Final action — handoff, report, or stop]:68 - [...]6970[IF hand-off menu]71Present numbered options after the final action:7273```74[voice intro line]75 (a) <label> → <what happens>76 (b) <label> → <what happens>77 (s) stop → <clean exit message>78```7980Branch on response. Exit skill when the chosen branch finishes.81[/ENDIF]8283[IF this skill hands to a specific next skill]84Name the next skill explicitly, on its own line, so the chain cannot be guessed:8586**REQUIRED SUB-SKILL:** Use `<plugin>:<skill>`87[/ENDIF]8889## Final Report9091```text92{{plugin}}:{{skill}} report93 <Field>: <value>94 <Field>: <value>95```9697## Never9899- Run `git push`, `git commit`, or `git rebase`.100- Mutate external services without explicit user confirmation.101- Skip the preconditions step.102- [Skill-specific don'ts]