skills/spec-kit/SKILL.md
Use when work involves Spec Kit and you need to choose the correct `spec-kit-*` sub-skill, enforce artifact-order gates, or route remediation work (for example sequence violations or specification drift at any stage).
npx skillsauth add ahgraber/skills spec-kitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Route requests to the smallest set of installed spec-kit-* skills.
Treat routes as defaults; if repository constraints require a different sequence, state the deviation and risk.
spec-kit.tasks.md; can we implement now?"| User Intent | Route | Required artifacts |
| ------------------------------------------------ | ----------------------- | --------------------------------------- |
| Create or update governance/principles | spec-kit-constitution | none |
| Draft or revise feature requirements | spec-kit-specify | constitution recommended |
| Resolve high-impact ambiguity before planning | spec-kit-clarify | spec.md |
| Produce technical design artifacts | spec-kit-plan | spec.md + constitution |
| Generate dependency-ordered implementation tasks | spec-kit-tasks | plan.md (+ spec.md) |
| Audit cross-artifact consistency (read-only) | spec-kit-analyze | spec.md + plan.md + tasks.md |
| Reconcile specification drift at any stage | spec-kit-reconcile | gap report + existing feature artifacts |
| Generate requirements-quality checklist | spec-kit-checklist | spec.md |
| Execute implementation from tasks | spec-kit-implement | tasks.md |
Use this for feature-work sequencing. Gate checks are mandatory.
digraph feature_route {
rankdir=TB;
node [fontname="Helvetica", fontsize=10];
edge [fontname="Helvetica", fontsize=9];
start [label="Feature request", shape=oval];
reconcile_gate [label="Need reconcile now\n(drift detected)?", shape=diamond];
has_const [label="constitution exists?", shape=diamond];
constitution [label="spec-kit-constitution", shape=box];
has_spec [label="spec.md exists?", shape=diamond];
specify [label="spec-kit-specify", shape=box];
clarify_gate [label="Spec ambiguity blocks planning?", shape=diamond];
clarify [label="spec-kit-clarify", shape=box];
plan [label="spec-kit-plan", shape=box];
tasks [label="spec-kit-tasks", shape=box];
analyze_gate [label="Run spec-kit-analyze?", shape=diamond];
analyze [label="spec-kit-analyze", shape=box];
analyze_blocking [label="Blocking findings?", shape=diamond];
reconcile [label="spec-kit-reconcile", shape=box];
has_tasks [label="tasks.md exists?", shape=diamond];
stop_tasks [label="STOP:\nrun spec-kit-tasks first", shape=octagon, style=filled, fillcolor=red, fontcolor=white];
implement [label="spec-kit-implement", shape=box];
post_impl_gaps [label="Post-implementation\ngaps found?", shape=diamond];
done [label="Feature complete", shape=doublecircle];
start -> reconcile_gate;
reconcile_gate -> reconcile [label="yes"];
reconcile_gate -> has_const [label="no"];
reconcile -> has_const [label="continue"];
has_const -> constitution [label="no"];
has_const -> has_spec [label="yes"];
constitution -> has_spec;
has_spec -> specify [label="no"];
has_spec -> clarify_gate [label="yes"];
specify -> clarify_gate;
clarify_gate -> clarify [label="yes"];
clarify_gate -> plan [label="no"];
clarify -> plan;
plan -> tasks;
tasks -> has_tasks;
has_tasks -> analyze_gate [label="yes"];
has_tasks -> stop_tasks [label="no"];
analyze_gate -> analyze [label="recommended"];
analyze_gate -> implement [label="skip"];
analyze -> analyze_blocking;
analyze_blocking -> reconcile [label="yes"];
analyze_blocking -> implement [label="no"];
reconcile -> implement;
implement -> post_impl_gaps;
post_impl_gaps -> done [label="no"];
post_impl_gaps -> reconcile [label="yes"];
}
spec-kit-plan without spec.md.spec-kit-implement without tasks.md.spec-kit-clarify before planning when ambiguity can change architecture, data model, testing, UX, operations, or compliance.spec-kit-reconcile whenever drift is detected at any stage before continuing.spec-kit-reconcile, even if raised outside analyze/implement.skills/spec-kit/scripts/* is the source of truth for shared shell helpers.skills/spec-kit/references/spec-kit-workflow.dot is shared by symlink in multiple child skills and must stay router-accurate.spec-kit-taskstoissues is not supported.tasks.md, state that no spec-kit-* exporter skill is available and continue with manual guidance or available skills.references/spec-kit-workflow.dothttps://github.com/github/spec-kit (snapshot: 9111699cd27879e3e6301651a03e502ecb6dd65d)development
Use when the user wants rigorous, non-sycophantic editorial feedback on a draft, essay, blog post, or argument through back-and-forth dialogue — pressure-testing thesis, structure, argument, clarity, tone, and evidence. Triggers: "be my sparring partner", "pressure-test this draft", "poke holes in my argument", "is this ready to publish", "sharpen this post", "where is this weak". Not for one-shot copyediting, proofreading, or ghostwriting.
testing
Use when distilling the through-line gist of one or more sources — the spine, argument, tension, or recurring frame running through a set of documents, notes, research, or transcripts, OR across the ideas within a single rich piece — into a few concise paragraphs. Triggers: "synthesize", "what's the through-line/gist", "extract the insight", "pull these together". Not for faithful summary or condensation that covers what a source says, nor for comparisons or catalogs where enumeration is the deliverable.
development
Use when writing or reviewing tests in any language, or diagnosing a suite that is slow, brittle, or hard to read. Triggers: "write tests", "how should I test this", "what kind of test", "test is flaky/fragile", "should I mock this", "test is hard to read". For Python-specific guidance see `python-testing`.
development
Use when writing, debugging, or explaining Strudel live-coding music patterns — mini-notation syntax, pattern functions (fast/slow/every/off/stack), synth/sample selection, audio effects, scale/chord/voicing API, or EDM production recipes. Triggers: "write a Strudel pattern", "how do I make a bassline in Strudel", "what does .every() do", "strudel drum beat", "strudel chord voicing", any Strudel code question.