Generate custom quality checklists for validating requirements completeness and clarity. Use to create unit tests for English that ensure spec quality before implementation.
CRITICAL CONCEPT: Checklists are UNIT TESTS FOR REQUIREMENTS WRITING - they validate the quality, clarity, and completeness of requirements in a given domain.
NOT for verification/testing:
❌ NOT "Verify the button clicks correctly"
❌ NOT "Test error handling works"
❌ NOT "Confirm the API returns 200"
❌ NOT checking if code/implementation matches the spec
FOR requirements quality validation:
✅ "Are visual hierarchy requirements defined for all card types?" (completeness)
✅ "Is 'prominent display' quantified with specific sizing/positioning?" (clarity)
✅ "Are hover state requirements consistent across all interactive elements?" (consistency)
✅ "Are accessibility requirements defined for keyboard navigation?" (coverage)
✅ "Does the spec define what happens when logo image fails to load?" (edge cases)
相關技能
Metaphor: If your spec is code written in English, the checklist is its unit test suite. You're testing whether the requirements are well-written, complete, unambiguous, and ready for implementation - NOT whether the implementation works.
Execution Steps
Setup: Run scripts/check-prerequisites.sh --json from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS list.
All file paths must be absolute.
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").
Clarify intent (dynamic): Derive up to THREE initial contextual clarifying questions (no pre-baked catalog). They MUST:
Be generated from the user's phrasing + extracted signals from spec/plan/tasks
Only ask about information that materially changes checklist content
Be skipped individually if already unambiguous in the user's input
Scope refinement (e.g., "Should this include integration touchpoints with X and Y or stay limited to local module correctness?")
Risk prioritization (e.g., "Which of these potential risk areas should receive mandatory gating checks?")
Depth calibration (e.g., "Is this a lightweight pre-commit sanity list or a formal release gate?")
Audience framing (e.g., "Will this be used by the author only or peers during PR review?")
Boundary exclusion (e.g., "Should we explicitly exclude performance tuning items this round?")
Scenario class gap (e.g., "No recovery flows detected—are rollback / partial failure paths in scope?")
Question formatting rules:
If presenting options, generate a compact table with columns: Option | Candidate | Why It Matters
Limit to A–E options maximum; omit table if a free-form answer is clearer
Never ask the user to restate what they already said
Avoid speculative categories (no hallucination). If uncertain, ask explicitly: "Confirm whether X belongs in scope."
Defaults when interaction impossible:
Depth: Standard
Audience: Reviewer (PR) if code-related; Author otherwise
Focus: Top 2 relevance clusters
Output the questions (label Q1/Q2/Q3). After answers: if ≥2 scenario classes (Alternate / Exception / Recovery / Non-Functional domain) remain unclear, you MAY ask up to TWO more targeted follow‑ups (Q4/Q5) with a one-line justification each (e.g., "Unresolved recovery path risk"). Do not exceed five total questions. Skip escalation if user explicitly declines more.
Understand user request: Combine the user's input + clarifying answers:
HOW TO WRITE CHECKLIST ITEMS - "Unit Tests for English":
❌ WRONG (Testing implementation):
"Verify landing page displays 3 episode cards"
"Test hover states work on desktop"
Structure Reference: Generate the checklist following the canonical template in references/checklist-template.md for title, meta section, category headings, and ID formatting. If template is unavailable, use: H1 title, purpose/created meta lines, ## category sections containing - [ ] CHK### <requirement item> lines with globally incrementing IDs starting at CHK001.
Report: Output full path to checklist file, item count, and summarize whether the run created a new file or appended to an existing one. Summarize:
Focus areas selected
Depth level
Actor/timing
Any explicit user-specified must-have items incorporated
Important: Each /speckit.checklist command invocation uses a short, descriptive checklist filename and either creates a new file or appends to an existing one. This allows:
Multiple checklists of different types (e.g., ux.md, test.md, security.md)
Simple, memorable filenames that indicate checklist purpose
Easy identification and navigation in the checklists/ folder
To avoid clutter, use descriptive types and clean up obsolete checklists when done.
Example Checklist Types & Sample Items
UX Requirements Quality:ux.md
Sample items (testing the requirements, NOT the implementation):
"Are visual hierarchy requirements defined with measurable criteria? [Clarity, Spec §FR-1]"
"Is the number and positioning of UI elements explicitly specified? [Completeness, Spec §FR-1]"
"Are interaction state requirements (hover, focus, active) consistently defined? [Consistency]"
"Are accessibility requirements specified for all interactive elements? [Coverage, Gap]"
"Is fallback behavior defined when images fail to load? [Edge Case, Gap]"
"Can 'prominent display' be objectively measured? [Measurability, Spec §FR-4]"
API Requirements Quality:api.md
Sample items:
"Are error response formats specified for all failure scenarios? [Completeness]"
"Are rate limiting requirements quantified with specific thresholds? [Clarity]"
"Are authentication requirements consistent across all endpoints? [Consistency]"
"Are retry/timeout requirements defined for external dependencies? [Coverage, Gap]"
"Is versioning strategy documented in requirements? [Gap]"
Performance Requirements Quality:performance.md
Sample items:
"Are performance requirements quantified with specific metrics? [Clarity]"
"Are performance targets defined for all critical user journeys? [Coverage]"
"Are performance requirements under different load conditions specified? [Completeness]"
"Can performance requirements be objectively measured? [Measurability]"
"Are degradation requirements defined for high-load scenarios? [Edge Case, Gap]"
Security Requirements Quality:security.md
Sample items:
"Are authentication requirements specified for all protected resources? [Coverage]"
"Are data protection requirements defined for sensitive information? [Completeness]"
"Is the threat model documented and requirements aligned to it? [Traceability]"
"Are security requirements consistent with compliance obligations? [Consistency]"
❌ WRONG - These test implementation, not requirements:
- [ ] CHK001 - Verify landing page displays 3 episode cards [Spec §FR-001]
- [ ] CHK002 - Test hover states work correctly on desktop [Spec §FR-003]
- [ ] CHK003 - Confirm logo click navigates to home page [Spec §FR-010]
- [ ] CHK004 - Check that related episodes section shows 3-5 items [Spec §FR-005]
✅ CORRECT - These test requirements quality:
- [ ] CHK001 - Are the number and layout of featured episodes explicitly specified? [Completeness, Spec §FR-001]
- [ ] CHK002 - Are hover state requirements consistently defined for all interactive elements? [Consistency, Spec §FR-003]
- [ ] CHK003 - Are navigation requirements clear for all clickable brand elements? [Clarity, Spec §FR-010]
- [ ] CHK004 - Is the selection criteria for related episodes documented? [Gap, Spec §FR-005]
- [ ] CHK005 - Are loading state requirements defined for asynchronous episode data? [Gap]
- [ ] CHK006 - Can "visual hierarchy" requirements be objectively measured? [Measurability, Spec §FR-001]
Key Differences:
Wrong: Tests if the system works correctly
Correct: Tests if the requirements are written correctly