Skip to content

Commit 12af048

Browse files
committed
Restore one-rule-per-bullet structure in checklist template
Mirror of the review-feedback restructuring on the proof-of-concept branch (github#2944): discrete bullets for all rule lists; compression from prose removal only. 4,460 -> 3,257 tokens (-27%).
1 parent 77b065e commit 12af048

1 file changed

Lines changed: 51 additions & 9 deletions

File tree

templates/commands/checklist.md

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,15 @@ scripts:
77

88
## Checklist Purpose: "Unit Tests for English"
99

10-
**CRITICAL CONCEPT**: Checklists are **UNIT TESTS FOR REQUIREMENTS WRITING** - they validate the quality, clarity, and completeness of requirements in a given domain. They are NOT for verification/testing - NOT "Verify the button clicks correctly", NOT checking if code/implementation matches the spec.
10+
**CRITICAL CONCEPT**: Checklists are **UNIT TESTS FOR REQUIREMENTS WRITING** - they validate the quality, clarity, and completeness of requirements in a given domain.
11+
12+
**NOT for verification/testing**:
1113

1214
- ❌ NOT "Test error handling works"
15+
- ❌ NOT checking if code/implementation matches the spec
16+
17+
**FOR requirements quality validation**:
18+
1319
- ✅ "Is 'prominent display' quantified with specific sizing/positioning?" (clarity)
1420

1521
**Metaphor**: If your spec is code written in English, the checklist is its unit test suite - testing whether the requirements are well-written, complete, unambiguous, and ready for implementation, NOT whether the implementation works.
@@ -61,7 +67,11 @@ You **MUST** consider the user input before proceeding (if not empty).
6167
6268
2. **IF EXISTS**: Load `/memory/constitution.md` for project principles and governance constraints.
6369
64-
3. **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 `$ARGUMENTS`, and prefer precision over breadth.
70+
3. **Clarify intent (dynamic)**: Derive up to THREE initial contextual clarifying questions (no pre-baked catalog). They MUST:
71+
- Be generated from the user's phrasing + extracted signals from spec/plan/tasks
72+
- Only ask about information that materially changes checklist content
73+
- Be skipped individually if already unambiguous in `$ARGUMENTS`
74+
- Prefer precision over breadth
6575
6676
Generation algorithm:
6777
1. Extract signals: feature domain keywords (e.g., auth, latency, UX, API), risk indicators ("critical", "must", "compliance"), stakeholder hints ("QA", "review", "security team"), explicit deliverables ("a11y", "rollback", "contracts").
@@ -70,26 +80,58 @@ You **MUST** consider the user input before proceeding (if not empty).
7080
4. Detect missing dimensions: scope breadth, depth/rigor, risk emphasis, exclusion boundaries, measurable acceptance criteria.
7181
5. Formulate questions from these archetypes: scope refinement, risk prioritization, depth calibration, audience framing, boundary exclusion, scenario class gap (e.g., "No recovery flows detected—are rollback / partial failure paths in scope?").
7282
73-
Question formatting rules: if presenting options, generate a compact table with columns Option | Candidate | Why It Matters; limit to A–E options maximum; omit the 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."
83+
Question formatting rules:
84+
- If presenting options, generate a compact table with columns Option | Candidate | Why It Matters
85+
- Limit to A–E options maximum; omit the table if a free-form answer is clearer
86+
- Never ask the user to restate what they already said
87+
- Avoid speculative categories (no hallucination) - if uncertain, ask explicitly: "Confirm whether X belongs in scope."
7488
75-
Defaults when interaction impossible: Depth: Standard; Audience: Reviewer (PR) if code-related, Author otherwise; Focus: top 2 relevance clusters.
89+
Defaults when interaction impossible:
90+
- Depth: Standard
91+
- Audience: Reviewer (PR) if code-related, Author otherwise
92+
- Focus: top 2 relevance clusters
7693
7794
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.
7895
79-
4. **Understand user request**: Combine `$ARGUMENTS` + clarifying answers: derive checklist theme (e.g., security, review, deploy, ux); consolidate explicit must-have items mentioned by user; map focus selections to category scaffolding; infer any missing context from spec/plan/tasks (do NOT hallucinate).
96+
4. **Understand user request**: Combine `$ARGUMENTS` + clarifying answers:
97+
- Derive checklist theme (e.g., security, review, deploy, ux)
98+
- Consolidate explicit must-have items mentioned by user
99+
- Map focus selections to category scaffolding
100+
- Infer any missing context from spec/plan/tasks (do NOT hallucinate)
80101
81-
5. **Load feature context**: Read from FEATURE_DIR: spec.md (feature requirements and scope), plan.md if exists (technical details, dependencies), tasks.md if exists (implementation tasks). Load only the portions relevant to active focus areas (avoid full-file dumping); prefer summarizing long sections into concise scenario/requirement bullets; use progressive disclosure (add follow-on retrieval only if gaps detected); if source docs are large, generate interim summary items instead of embedding raw text.
102+
5. **Load feature context**: Read from FEATURE_DIR: spec.md (feature requirements and scope), plan.md if exists (technical details, dependencies), tasks.md if exists (implementation tasks).
103+
104+
Context loading strategy:
105+
- Load only the portions relevant to active focus areas (avoid full-file dumping)
106+
- Prefer summarizing long sections into concise scenario/requirement bullets
107+
- Use progressive disclosure (add follow-on retrieval only if gaps detected)
108+
- If source docs are large, generate interim summary items instead of embedding raw text
82109
83110
6. **Generate checklist** - Create "Unit Tests for Requirements":
84111
- Create `FEATURE_DIR/checklists/` directory if it doesn't exist
85112
- Filename: short, descriptive domain name, format `[domain].md` (e.g., `ux.md`, `api.md`, `security.md`)
86-
- If the file does NOT exist: create it and number items starting from CHK001. If it exists: append new items, continuing from the last CHK ID (e.g., if last item is CHK015, start at CHK016). Never delete or replace existing checklist content - always preserve and append.
113+
- If the file does NOT exist: create it and number items starting from CHK001
114+
- If it exists: append new items, continuing from the last CHK ID (e.g., if last item is CHK015, start at CHK016)
115+
- Never delete or replace existing checklist content - always preserve and append
116+
117+
**CORE PRINCIPLE - Test the Requirements, Not the Implementation**: every checklist item MUST evaluate the REQUIREMENTS THEMSELVES for:
118+
- **Completeness** (all necessary requirements present?)
119+
- **Clarity** (unambiguous and specific?)
120+
- **Consistency** (requirements align with each other?)
121+
- **Measurability** (objectively verifiable?)
122+
- **Coverage** (all scenarios/edge cases addressed?)
87123
88-
**CORE PRINCIPLE - Test the Requirements, Not the Implementation**: every checklist item MUST evaluate the REQUIREMENTS THEMSELVES for **Completeness** (all necessary requirements present?), **Clarity** (unambiguous and specific?), **Consistency** (requirements align with each other?), **Measurability** (objectively verifiable?), **Coverage** (all scenarios/edge cases addressed?). See Anti-Examples below for wrong vs correct item style.
124+
See Anti-Examples below for wrong vs correct item style.
89125
90126
**Category Structure** - group items by requirement quality dimension: Requirement Completeness, Requirement Clarity, Requirement Consistency, Acceptance Criteria Quality (success criteria measurable?), Scenario Coverage (all flows/cases addressed?), Edge Case Coverage (boundary conditions defined?), Non-Functional Requirements (performance, security, accessibility, etc. - specified?), Dependencies & Assumptions (documented and validated?), Ambiguities & Conflicts (what needs clarification?).
91127
92-
**ITEM STRUCTURE** - each item: question format asking about requirement quality; focus on what's WRITTEN (or not written) in the spec/plan; include the quality dimension in brackets [Completeness/Clarity/Consistency/etc.]; reference spec section `[Spec §X.Y]` when checking existing requirements; use the `[Gap]` marker when checking for missing requirements. Example: "Is 'fast loading' quantified with specific timing thresholds? [Clarity, Spec §NFR-2]"
128+
**ITEM STRUCTURE** - each item:
129+
- Question format asking about requirement quality
130+
- Focus on what's WRITTEN (or not written) in the spec/plan
131+
- Include the quality dimension in brackets [Completeness/Clarity/Consistency/etc.]
132+
- Reference spec section `[Spec §X.Y]` when checking existing requirements
133+
- Use the `[Gap]` marker when checking for missing requirements
134+
- Example: "Is 'fast loading' quantified with specific timing thresholds? [Clarity, Spec §NFR-2]"
93135
94136
**Scenario Classification & Coverage** (Requirements Quality Focus):
95137
- Check if requirements exist for: Primary, Alternate, Exception/Error, Recovery, Non-Functional scenarios

0 commit comments

Comments
 (0)