--- description: Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec. model: claude-sonnet-4-6 tools: [Read, Write, Edit, Glob, Grep, TodoWrite] --- ## Execution Logging & Phase Report (Constitution Art. XI & XII) ### ⛔ MANDATORY — Two Output Files Required This agent **MUST** create one output file during execution. The pipeline CANNOT advance to the next step without it. | # | File | Path | When | |---|------|------|------| | 1 | **Phase Report** | `docs/output/output_logs//reports/04-clarify-report.md` | **LAST** — after all other work | ### Step 0 — Setup **Before doing ANY other work**, you MUST: 1. Determine `` from the context 2. Create directories: `docs/output/output_logs//` and `docs/output/output_logs//reports/` ### Step FINAL — Write Phase Report (⚠️ DO THIS LAST — NON-NEGOTIABLE) Write to: `docs/output/output_logs//reports/04-clarify-report.md` > 📄 Follow **Universal Report Structure** from `templates/report-templates.md` (STEP 04). **Step-specific overrides:** - **Title:** `# STEP 3: Specification Clarification Report` - **Agent:** `speckit.clarify (gpt-5.4)` - **Input:** specification (`docs/output/specs//spec.md`) - **Output:** Q&A document (`04-clarify-qa.md`), updated specification (`spec.md`) - **Quality evaluation categories:** ambiguity detection, Q&A quality, completeness of spec updates - **Metrics:** ambiguity count, resolved count, unresolved count - **Additional section:** `## QA Summary` — full question + answer table - **Next phase:** `okr.reviewspec` (STEP 4) — specification quality review ### ⛔ COMPLETION HARD GATE Report file `docs/output/output_logs//reports/04-clarify-report.md` MUST exist with ALL sections before returning. --- ## User Input ```text $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 `/speckit.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: 1. Run `.specify/scripts/powershell/check-prerequisites.ps1 -Json -PathsOnly` from repo root **once** (combined `--json --paths-only` mode / `-Json -PathsOnly`). Parse minimal JSON payload fields: - `FEATURE_DIR` - `FEATURE_SPEC` - (Optionally capture `IMPL_PLAN`, `TASKS` for future chained flows.) - If JSON parsing fails, abort and instruct user to re-run `/speckit.specify` or verify feature branch environment. - For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot"). 2. Load the current spec file. **2a. Collect carry-forward markers**: Scan the spec for all `[NEEDS CLARIFICATION: ...]` markers left by `speckit.specify`. Extract each into a structured list: `{ id: "TBC-XX", description: "...", related: "FR-XXX" }`. These are **Part A** of the consolidated QA list. **2b. Structured ambiguity scan**: 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) 3. Generate (internally) a prioritized queue of candidate clarification questions. These are **Part B** of the consolidated QA list. Do NOT output them yet. Apply these constraints: - Maximum of 5 NEW clarify questions (Part B) + all carry-forward markers (Part A, uncapped). - Combined total (Part A + Part B) should not exceed 8 questions. If Part A already has 3+ items, reduce Part B accordingly. - 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. - If more than 5 categories remain unresolved, select the top 5 by (Impact * Uncertainty) heuristic. 4. Consolidated QA output (batch mode): - Merge Part A (carry-forward markers from `speckit.specify`) and Part B (new clarify questions) into a **single numbered list**. - Part A questions come first (prefixed `[from specify]`), then Part B (prefixed `[from clarify]`). - Output the full consolidated QA list to `docs/output/output_logs//reports/04-clarify-qa.md` (Vietnamese). - **Present ALL questions at once** to the user in a single message. Do NOT ask one-by-one. - For each multiple‑choice question: - **Analyze all options** and determine the **most suitable option** based on: - Best practices for the project type - Common patterns in similar implementations - Risk reduction (security, performance, maintainability) - Alignment with any explicit project goals or constraints visible in the spec - Present your **recommended option prominently**: `**Recommended:** Option [X] - ` - Then render all options as a Markdown table: | Option | Description | |--------|-------------| | A |