Learn-skills.dev spec-kit-clarify
Use when an existing Spec Kit `spec.md` has high-impact ambiguity (for example `[NEEDS CLARIFICATION]`, unresolved scope decisions, or unquantified requirements) that must be resolved before `spec-kit-plan`.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ahgraber/skills/spec-kit-clarify" ~/.claude/skills/neversight-learn-skills-dev-spec-kit-clarify && rm -rf "$T"
manifest:
data/skills-md/ahgraber/skills/spec-kit-clarify/SKILL.mdsource content
Spec Kit Clarify
Resolve high-impact ambiguity in the active feature specification before planning.
When to Use
already exists but has high-impact uncertainty.spec.md- You see unresolved placeholders (for example
, TODOs, or conflicting statements).[NEEDS CLARIFICATION] - Ambiguity could materially change architecture, data model, testing, UX behavior, operations, or compliance expectations.
When Not to Use
- No feature spec exists yet (
first).spec-kit-specify - Work is design decomposition (
) or task generation (spec-kit-plan
).spec-kit-tasks - You only need read-only consistency analysis (
).spec-kit-analyze - You are reconciling broader cross-artifact drift (
).spec-kit-reconcile
Router Fit
- Primary route from
afterspec-kit
and beforespec-kit-specify
when ambiguity is still blocking.spec-kit-plan
Key Rules
- Ask exactly one question at a time.
- Ask at most 5 accepted questions per run.
- Every question must materially influence architecture, data model, testing, UX, operations, or compliance.
- Integrate each accepted answer into
immediately.spec.md
Workflow
digraph clarify_workflow { rankdir=TB; node [fontname="Helvetica", fontsize=10]; edge [fontname="Helvetica", fontsize=9]; start [label="Invoke spec-kit-clarify", shape=doublecircle]; resolve_paths [label="Resolve FEATURE_SPEC path", shape=box]; has_spec [label="spec.md exists?", shape=diamond]; stop_specify [label="STOP: run spec-kit-specify first", shape=octagon, style=filled, fillcolor=red, fontcolor=white]; scan_taxonomy [label="Scan with clarification taxonomy", shape=box]; has_high_impact [label="High-impact ambiguity remains?", shape=diamond]; report_none [label="Report no critical ambiguity", shape=box]; build_queue [label="Build and rank up to 5 questions", shape=box]; ask_loop [label="Ask one question at a time\n(recommend/suggest, disambiguate if needed)", shape=box]; integrate [label="Integrate accepted answer into spec.md", shape=box]; validate [label="Validate update and consistency", shape=box]; continue_gate [label="Continue loop?", shape=diamond]; final_report [label="Report touched sections, coverage, next step", shape=box]; done [label="Clarify complete", shape=doublecircle]; start -> resolve_paths; resolve_paths -> has_spec; has_spec -> stop_specify [label="no"]; has_spec -> scan_taxonomy [label="yes"]; scan_taxonomy -> has_high_impact; has_high_impact -> report_none [label="no"]; report_none -> done; has_high_impact -> build_queue [label="yes"]; build_queue -> ask_loop; ask_loop -> integrate; integrate -> validate; validate -> continue_gate; continue_gate -> ask_loop [label="yes"]; continue_gate -> final_report [label="no"]; final_report -> done; }
-
Resolve active spec path:
- Run
.scripts/check-prerequisites.sh --paths-only --json - Read
from the JSON payload.FEATURE_SPEC - If
is missing, stop and direct the user toFEATURE_SPEC
.spec-kit-specify
- Run
-
Build an internal ambiguity coverage map from
:spec.md- Use
as the required category checklist.assets/clarification-taxonomy.md - Score each category as
,Clear
, orPartial
.Missing - Create candidate questions only for
orPartial
categories where clarification changes implementation or validation outcomes.Missing
- Use
-
Prioritize up to 5 candidate questions:
- Rank by
.Impact * Uncertainty - Exclude already-answered items, stylistic preferences, and low-impact plan-level details.
- Ensure each question is answerable by either:
- multiple choice with 2-5 mutually exclusive options, or
- short answer constrained to
.<=5 words
- Rank by
-
Run the interactive one-question loop:
- Follow the workflow chart above for branching and stop conditions.
- Ask exactly one question at a time.
- For multiple-choice questions, provide a recommendation and an options table.
- For short-answer questions, provide a suggested answer and enforce
.<=5 words - Accept
,yes
, orrecommended
as confirmation of the current recommendation.suggested - Use disambiguation follow-ups when needed without consuming a new question slot.
-
Integrate each accepted answer immediately:
- Ensure
exists.## Clarifications - Ensure a session heading exists:
.### Session YYYY-MM-DD - Append:
.- Q: <question> → A: <final answer> - Update the most relevant section(s) inline:
- functional behavior,
- user stories/actors,
- data model,
- non-functional metrics,
- edge/error handling,
- terminology normalization.
- Replace superseded contradictory statements instead of duplicating.
- Save
after each accepted answer.FEATURE_SPEC
- Ensure
-
Validate after each write and on final pass:
- Exactly one clarification bullet per accepted answer.
- Accepted questions count is
.<=5 - No contradiction remains for resolved decisions.
- No unresolved vague placeholder remains for resolved items.
- Only these new headings are introduced:
,## Clarifications
.### Session YYYY-MM-DD - Canonical terminology is consistent across modified sections.
-
Report completion:
- Questions asked and answered.
- Updated
path.FEATURE_SPEC - Sections touched.
- Coverage summary by category with status:
ResolvedDeferredClearOutstanding
- Next-step recommendation: proceed to
or run clarify again later.spec-kit-plan
Behavior Rules
- If no high-impact ambiguity exists, respond:
and suggest proceeding.No critical ambiguities detected worth formal clarification. - Never exceed 5 accepted questions (disambiguation retries do not count as new questions).
- Respect early termination signals:
,stop
,done
.proceed - Avoid speculative tech-stack questions unless their absence blocks functional correctness.
- If quota is reached with unresolved high-impact items, mark them as
with rationale.Deferred
Output
- Updated
with embedded clarification historyspec.md - Summary of asked/answered questions, touched sections, and unresolved/deferred areas
Common Mistakes
- Low-impact questions. Never ask about cosmetic or stylistic details. Every question must materially affect architecture, data model, testing, UX, operations, or compliance.
- Asking multiple questions at once. Ask one question at a time. Batching questions overwhelms the user and produces shallow answers.
- Not updating spec inline. Each accepted answer must be applied to the relevant spec sections immediately. Never defer updates to a later pass.
- Redundant clarifications. Check existing spec content and prior clarification sessions before asking. Do not re-ask what is already resolved.
References
assets/clarification-taxonomy.md
for overall context of how the clarification fits into the Spec Kit process.references/spec-kit-workflow.dotscripts/check-prerequisites.shhttps://github.com/github/spec-kit/blob/9111699cd27879e3e6301651a03e502ecb6dd65d/templates/commands/clarify.md