User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Outline
Goal: Detect and reduce ambiguity or missing decision points in the active feature specification and record the clarifications directly in the spec file.
Note: This clarification workflow is expected to run (and be completed) BEFORE invoking /spec-kitty.plan. If the user explicitly states they are skipping clarification (e.g., exploratory spike), you may proceed, but must warn that downstream rework risk increases.
Execution steps:
Run spec-kitty agent feature check-prerequisites --json --paths-only from the repository root and parse JSON for:
feature_dir - Absolute path to feature directory (e.g., /path/to/kitty-specs/017-my-feature/)
FEATURE_SPEC - Absolute path to spec.md file
target_branch / base_branch (deterministic branch contract)
- If command fails or JSON parsing fails, abort and instruct user to run
/spec-kitty.specify first or verify they are in a spec-kitty-initialized repository.
Load the current spec file. Perform a structured ambiguity & coverage scan using this taxonomy. For each category, mark status: Clear / Partial / Missing. Produce an internal coverage map used for prioritization (do not output raw map unless no questions will be asked).
Functional Scope & Behavior:
- Core user goals & success criteria
- Explicit out-of-scope declarations
- User roles / personas differentiation
Domain & Data Model:
- Entities, attributes, relationships
- Identity & uniqueness rules
- Lifecycle/state transitions
- Data volume / scale assumptions
Interaction & UX Flow:
- Critical user journeys / sequences
- Error/empty/loading states
- Accessibility or localization notes
Non-Functional Quality Attributes:
- Performance (latency, throughput targets)
- Scalability (horizontal/vertical, limits)
- Reliability & availability (uptime, recovery expectations)
- Observability (logging, metrics, tracing signals)
- Security & privacy (authN/Z, data protection, threat assumptions)
- Compliance / regulatory constraints (if any)
Integration & External Dependencies:
- External services/APIs and failure modes
- Data import/export formats
- Protocol/versioning assumptions
Edge Cases & Failure Handling:
- Negative scenarios
- Rate limiting / throttling
- Conflict resolution (e.g., concurrent edits)
Constraints & Tradeoffs:
- Technical constraints (language, storage, hosting)
- Explicit tradeoffs or rejected alternatives
Terminology & Consistency:
- Canonical glossary terms
- Avoided synonyms / deprecated terms
Completion Signals:
- Acceptance criteria testability
- Measurable Definition of Done style indicators
Misc / Placeholders:
- TODO markers / unresolved decisions
- Ambiguous adjectives ("robust", "intuitive") lacking quantification
For each category with Partial or Missing status, add a candidate question opportunity unless:
- Clarification would not materially change implementation or validation strategy
- Information is better deferred to planning phase (note internally)
Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:
- Maximum of 10 total questions across the whole session.
- Each question must be answerable with EITHER:
- A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR
- A one-word / short‑phrase answer (explicitly constrain: "Answer in <=5 words").
- Only include questions whose answers materially impact architecture, data modeling, task decomposition, test design, UX behavior, operational readiness, or compliance validation.
- Ensure category coverage balance: attempt to cover the highest impact unresolved categories first; avoid asking two low-impact questions when a single high-impact area (e.g., security posture) is unresolved.
- Exclude questions already answered, trivial stylistic preferences, or plan-level execution details (unless blocking correctness).
- Favor clarifications that reduce downstream rework risk or prevent misaligned acceptance tests.
- Scale thoroughness to the feature’s complexity: a lightweight enhancement may only need one or two confirmations, while multi-system efforts warrant the full question budget if gaps remain critical.
- If more than 5 categories remain unresolved, select the top 5 by (Impact * Uncertainty) heuristic.
Sequential questioning loop (interactive):
- Present EXACTLY ONE question at a time.
- For multiple-choice questions, list options inline using letter prefixes rather than tables, e.g.
Options: (A) describe option A · (B) describe option B · (C) describe option C · (D) short custom answer (<=5 words)
Ask the user to reply with the letter (or short custom text when offered).
- For short-answer style (no meaningful discrete options), output a single line after the question:
Format: Short answer (<=5 words).
- After the user answers:
- Validate the answer maps to one option or fits the <=5 word constraint.
- If ambiguous, ask for a quick disambiguation (count still belongs to same question; do not advance).
- Once satisfactory, record it in working memory (do not yet write to disk) and move to the next queued question.
- Stop asking further questions when:
- All critical ambiguities resolved early (remaining queued items become unnecessary), OR
- User signals completion ("done", "good", "no more"), OR
- You reach 5 asked questions.
- Never reveal future queued questions in advance.
- If no valid questions exist at start, immediately report no critical ambiguities.
Integration after EACH accepted answer (incremental update approach):
- Maintain in-memory representation of the spec (loaded once at start) plus the raw file contents.
- For the first integrated answer in this session:
- Ensure a
## Clarifications section exists (create it just after the highest-level contextual/overview section per the spec template if missing).
- Under it, create (if not present) a
### Session YYYY-MM-DD subheading for today.
- Append a bullet line immediately after acceptance:
- Q: <question> → A: <final answer>.
- Then immediately apply the clarification to the most appropriate section(s):
- Functional ambiguity → Update or add a bullet in Functional Requirements.
- User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
- Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
- Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).
- Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
- Terminology conflict → Normalize term across spec; retain original only if necessary by adding
(formerly referred to as "X") once.
- If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.
- Save the spec file AFTER each integration to minimize risk of context loss (atomic overwrite).
- Preserve formatting: do not reorder unrelated sections; keep heading hierarchy intact.
- Keep each inserted clarification minimal and testable (avoid narrative drift).
Validation (performed after EACH write plus final pass):
- Clarifications session contains exactly one bullet per accepted answer (no duplicates).
- Total asked (accepted) questions ≤ 5.
- Updated sections contain no lingering vague placeholders the new answer was meant to resolve.
- No contradictory earlier statement remains (scan for now-invalid alternative choices removed).
- Markdown structure valid; only allowed new headings:
## Clarifications, ### Session YYYY-MM-DD.
- Terminology consistency: same canonical term used across all updated sections.
Write the updated spec back to FEATURE_SPEC.
Report completion (after questioning loop ends or early termination):
- Number of questions asked & answered.
- Path to updated spec.
- Sections touched (list names).
- Coverage summary listing each taxonomy category with a status label (Resolved / Deferred / Clear / Outstanding). Present as plain text or bullet list, not a table.
- If any Outstanding or Deferred remain, recommend whether to proceed to
/spec-kitty.plan or run /spec-kitty.clarify again later post-plan.
- Suggested next command.
Behavior rules:
- If no meaningful ambiguities found (or all potential questions would be low-impact), respond: "No critical ambiguities detected worth formal clarification." and suggest proceeding.
- If spec file missing, instruct user to run
/spec-kitty.specify first (do not create a new spec here).
- Never exceed 5 total asked questions (clarification retries for a single question do not count as new questions).
- Avoid speculative tech stack questions unless the absence blocks functional clarity.
- Respect user early termination signals ("stop", "done", "proceed").
- If no questions asked due to full coverage, output a compact coverage summary (all categories Clear) then suggest advancing.
- If quota reached with unresolved high-impact categories remaining, explicitly flag them under Deferred with rationale.
Context for prioritization: User arguments from $ARGUMENTS section above (if provided). Use these to focus clarification on specific areas of concern mentioned by the user.
1---2name: spec-kitty-clarify3description: Identify underspecified areas in the current feature spec by asking up4---56## User Input78```text9$ARGUMENTS10```1112You **MUST** consider the user input before proceeding (if not empty).1314## Outline1516Goal: Detect and reduce ambiguity or missing decision points in the active feature specification and record the clarifications directly in the spec file.1718Note: This clarification workflow is expected to run (and be completed) BEFORE invoking `/spec-kitty.plan`. If the user explicitly states they are skipping clarification (e.g., exploratory spike), you may proceed, but must warn that downstream rework risk increases.1920Execution steps:21221. Run `spec-kitty agent feature check-prerequisites --json --paths-only` from the repository root and parse JSON for:23 - `feature_dir` - Absolute path to feature directory (e.g., `/path/to/kitty-specs/017-my-feature/`)24 - `FEATURE_SPEC` - Absolute path to spec.md file25 - `target_branch` / `base_branch` (deterministic branch contract)26 - If command fails or JSON parsing fails, abort and instruct user to run `/spec-kitty.specify` first or verify they are in a spec-kitty-initialized repository.27282. Load the current spec file. Perform a structured ambiguity & coverage scan using this taxonomy. For each category, mark status: Clear / Partial / Missing. Produce an internal coverage map used for prioritization (do not output raw map unless no questions will be asked).2930 Functional Scope & Behavior:31 - Core user goals & success criteria32 - Explicit out-of-scope declarations33 - User roles / personas differentiation3435 Domain & Data Model:36 - Entities, attributes, relationships37 - Identity & uniqueness rules38 - Lifecycle/state transitions39 - Data volume / scale assumptions4041 Interaction & UX Flow:42 - Critical user journeys / sequences43 - Error/empty/loading states44 - Accessibility or localization notes4546 Non-Functional Quality Attributes:47 - Performance (latency, throughput targets)48 - Scalability (horizontal/vertical, limits)49 - Reliability & availability (uptime, recovery expectations)50 - Observability (logging, metrics, tracing signals)51 - Security & privacy (authN/Z, data protection, threat assumptions)52 - Compliance / regulatory constraints (if any)5354 Integration & External Dependencies:55 - External services/APIs and failure modes56 - Data import/export formats57 - Protocol/versioning assumptions5859 Edge Cases & Failure Handling:60 - Negative scenarios61 - Rate limiting / throttling62 - Conflict resolution (e.g., concurrent edits)6364 Constraints & Tradeoffs:65 - Technical constraints (language, storage, hosting)66 - Explicit tradeoffs or rejected alternatives6768 Terminology & Consistency:69 - Canonical glossary terms70 - Avoided synonyms / deprecated terms7172 Completion Signals:73 - Acceptance criteria testability74 - Measurable Definition of Done style indicators7576 Misc / Placeholders:77 - TODO markers / unresolved decisions78 - Ambiguous adjectives ("robust", "intuitive") lacking quantification7980 For each category with Partial or Missing status, add a candidate question opportunity unless:81 - Clarification would not materially change implementation or validation strategy82 - Information is better deferred to planning phase (note internally)83843. Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:85 - Maximum of 10 total questions across the whole session.86 - Each question must be answerable with EITHER:87 * A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR88 * A one-word / short‑phrase answer (explicitly constrain: "Answer in <=5 words").89 - Only include questions whose answers materially impact architecture, data modeling, task decomposition, test design, UX behavior, operational readiness, or compliance validation.90 - Ensure category coverage balance: attempt to cover the highest impact unresolved categories first; avoid asking two low-impact questions when a single high-impact area (e.g., security posture) is unresolved.91 - Exclude questions already answered, trivial stylistic preferences, or plan-level execution details (unless blocking correctness).92 - Favor clarifications that reduce downstream rework risk or prevent misaligned acceptance tests.93 - Scale thoroughness to the feature’s complexity: a lightweight enhancement may only need one or two confirmations, while multi-system efforts warrant the full question budget if gaps remain critical.94 - If more than 5 categories remain unresolved, select the top 5 by (Impact * Uncertainty) heuristic.95964. Sequential questioning loop (interactive):97 - Present EXACTLY ONE question at a time.98 - For multiple-choice questions, list options inline using letter prefixes rather than tables, e.g. 99 `Options: (A) describe option A · (B) describe option B · (C) describe option C · (D) short custom answer (<=5 words)` 100 Ask the user to reply with the letter (or short custom text when offered).101 - For short-answer style (no meaningful discrete options), output a single line after the question: `Format: Short answer (<=5 words)`.102 - After the user answers:103 * Validate the answer maps to one option or fits the <=5 word constraint.104 * If ambiguous, ask for a quick disambiguation (count still belongs to same question; do not advance).105 * Once satisfactory, record it in working memory (do not yet write to disk) and move to the next queued question.106 - Stop asking further questions when:107 * All critical ambiguities resolved early (remaining queued items become unnecessary), OR108 * User signals completion ("done", "good", "no more"), OR109 * You reach 5 asked questions.110 - Never reveal future queued questions in advance.111 - If no valid questions exist at start, immediately report no critical ambiguities.1121135. Integration after EACH accepted answer (incremental update approach):114 - Maintain in-memory representation of the spec (loaded once at start) plus the raw file contents.115 - For the first integrated answer in this session:116 * Ensure a `## Clarifications` section exists (create it just after the highest-level contextual/overview section per the spec template if missing).117 * Under it, create (if not present) a `### Session YYYY-MM-DD` subheading for today.118 - Append a bullet line immediately after acceptance: `- Q: <question> → A: <final answer>`.119 - Then immediately apply the clarification to the most appropriate section(s):120 * Functional ambiguity → Update or add a bullet in Functional Requirements.121 * User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.122 * Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.123 * Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).124 * Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).125 * Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.126 - If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.127 - Save the spec file AFTER each integration to minimize risk of context loss (atomic overwrite).128 - Preserve formatting: do not reorder unrelated sections; keep heading hierarchy intact.129 - Keep each inserted clarification minimal and testable (avoid narrative drift).1301316. Validation (performed after EACH write plus final pass):132 - Clarifications session contains exactly one bullet per accepted answer (no duplicates).133 - Total asked (accepted) questions ≤ 5.134 - Updated sections contain no lingering vague placeholders the new answer was meant to resolve.135 - No contradictory earlier statement remains (scan for now-invalid alternative choices removed).136 - Markdown structure valid; only allowed new headings: `## Clarifications`, `### Session YYYY-MM-DD`.137 - Terminology consistency: same canonical term used across all updated sections.1381397. Write the updated spec back to `FEATURE_SPEC`.1401418. Report completion (after questioning loop ends or early termination):142 - Number of questions asked & answered.143 - Path to updated spec.144 - Sections touched (list names).145 - Coverage summary listing each taxonomy category with a status label (Resolved / Deferred / Clear / Outstanding). Present as plain text or bullet list, not a table.146 - If any Outstanding or Deferred remain, recommend whether to proceed to `/spec-kitty.plan` or run `/spec-kitty.clarify` again later post-plan.147 - Suggested next command.148149Behavior rules:150- If no meaningful ambiguities found (or all potential questions would be low-impact), respond: "No critical ambiguities detected worth formal clarification." and suggest proceeding.151- If spec file missing, instruct user to run `/spec-kitty.specify` first (do not create a new spec here).152- Never exceed 5 total asked questions (clarification retries for a single question do not count as new questions).153- Avoid speculative tech stack questions unless the absence blocks functional clarity.154- Respect user early termination signals ("stop", "done", "proceed").155 - If no questions asked due to full coverage, output a compact coverage summary (all categories Clear) then suggest advancing.156 - If quota reached with unresolved high-impact categories remaining, explicitly flag them under Deferred with rationale.157158Context for prioritization: User arguments from $ARGUMENTS section above (if provided). Use these to focus clarification on specific areas of concern mentioned by the user.