Spec Kit Skill Router
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.
Invocation Notice
- Inform the user when this skill is invoked by name:
spec-kit.
Trigger Tests
- Should trigger:
- "Which spec-kit skill should I run next?"
- "Route this feature request through Spec Kit."
- "I have
tasks.md; can we implement now?"
- Should not trigger:
- "Write a Conventional Commit message."
- "Debug Python concurrency bugs unrelated to Spec Kit."
Route by Intent
| 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 |
Routing Flowchart
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"];
}
Sequence Rules
- Never run
spec-kit-planwithoutspec.md. - Never run
spec-kit-implementwithouttasks.md. - Run
spec-kit-clarifybefore planning when ambiguity can change architecture, data model, testing, UX, operations, or compliance. - Run
spec-kit-reconcilewhenever drift is detected at any stage before continuing.
Router Behavior
- Classify user intent first, then select one or more child skills from the route table.
- Enforce artifact gates before invoking downstream skills.
- Prefer the minimal next step; do not run the full pipeline unless requested.
- If the requested step violates a gate, route to the missing prerequisite and explain the dependency.
- Route developer-reported drift directly to
spec-kit-reconcile, even if raised outside analyze/implement.
Shared Resource Ownership (Parent Skill)
skills/spec-kit/scripts/*is the source of truth for shared shell helpers.- Child skills may symlink these scripts; preserve script names and argument contracts unless all dependent children are updated together.
skills/spec-kit/references/spec-kit-workflow.dotis shared by symlink in multiple child skills and must stay router-accurate.
Unsupported in This Repo
spec-kit-taskstoissuesis not supported.- If the user asks for GitHub issue export from
tasks.md, state that nospec-kit-*exporter skill is available and continue with manual guidance or available skills.
References
references/spec-kit-workflow.dot- Upstream baseline:
https://github.com/github/spec-kit(snapshot:9111699cd27879e3e6301651a03e502ecb6dd65d)