@leeovery/claude-technical-workflows 2.1.38 → 2.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.1.38",
3
+ "version": "2.1.39",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -80,7 +80,10 @@ This will create: docs/workflow/discussion/{suggested-topic}.md
80
80
 
81
81
  ```
82
82
  · · · · · · · · · · · ·
83
- Is this name okay, or would you prefer something else?
83
+ Is this name okay?
84
+
85
+ - **`y`/`yes`** — Use this name
86
+ - **`s`/`something else`** — Suggest a different name
84
87
  · · · · · · · · · · · ·
85
88
  ```
86
89
 
@@ -332,20 +332,4 @@ Update the tracking file (`docs/workflow/implementation/{topic}/tracking.md`):
332
332
 
333
333
  Commit: `impl({topic}): complete implementation`
334
334
 
335
- ---
336
-
337
- ## References
338
-
339
- - **[environment-setup.md](references/environment-setup.md)** — Environment setup before implementation
340
- - **[linter-setup.md](references/linter-setup.md)** — Linter discovery and configuration
341
- - **[task-loop.md](references/task-loop.md)** — Task execution loop, task gates, tracking, commits
342
- - **[analysis-loop.md](references/analysis-loop.md)** — Analysis and refinement cycle
343
- - **[invoke-executor.md](references/invoke-executor.md)** — How to invoke the executor agent
344
- - **[invoke-reviewer.md](references/invoke-reviewer.md)** — How to invoke the reviewer agent
345
- - **[invoke-analysis.md](references/invoke-analysis.md)** — How to invoke analysis agents
346
- - **[invoke-synthesizer.md](references/invoke-synthesizer.md)** — How to invoke the synthesis agent
347
- - **[invoke-task-writer.md](references/invoke-task-writer.md)** — How to invoke the task writer agent
348
- - **[task-normalisation.md](references/task-normalisation.md)** — Normalised task shape for agent invocation
349
- - **[tdd-workflow.md](references/tdd-workflow.md)** — TDD cycle (passed to executor agent)
350
- - **[code-quality.md](references/code-quality.md)** — Quality standards (passed to executor agent)
351
335
 
@@ -72,7 +72,7 @@ additional material I should review?
72
72
  Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
73
73
 
74
74
  1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
75
- 2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
75
+ 2. **Read all tracking and state files** for the current topic — the specification file, review tracking files, or any working documents this skill creates. These are your source of truth for progress.
76
76
  3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
77
77
  4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
78
78
  5. **Check `finding_gate_mode`** in the specification frontmatter — if `auto`, the user previously opted in during this session. Preserve this value.
@@ -81,88 +81,120 @@ Do not guess at progress or continue from memory. The files on disk and git hist
81
81
 
82
82
  ---
83
83
 
84
- ## The Process
84
+ ## Hard Rules
85
85
 
86
- **Load**: [specification-guide.md](references/specification-guide.md)
86
+ 1. **STOP AND WAIT** for explicit approval before any write to the specification. Present content, wait for the user to explicitly approve (`y`/`yes` or equivalent), then log. No exceptions.
87
+ 2. **Log verbatim** — when approved, write exactly what was presented. No silent modifications.
88
+ 3. **Commit frequently** — commit at natural breaks and before any context refresh. Context refresh = lost work.
87
89
 
88
- **Output**: `docs/workflow/specification/{topic}/specification.md`
90
+ ---
91
+
92
+ ## Output Formatting
93
+
94
+ When announcing a new step, output `── ── ── ── ──` on its own line before the step heading.
95
+
96
+ ---
97
+
98
+ ## Step 0: Resume Detection
99
+
100
+ Check if `docs/workflow/specification/{topic}/specification.md` exists.
101
+
102
+ #### If no file exists
103
+
104
+ → Proceed to **Step 1**.
105
+
106
+ #### If file exists
107
+
108
+ Read the specification frontmatter.
109
+
110
+ > *Output the next fenced block as markdown (not a code block):*
111
+
112
+ ```
113
+ Found existing specification for **{topic}**.
89
114
 
90
- **When complete**: User signs off on the specification.
115
+ · · · · · · · · · · · ·
116
+ - **`c`/`continue`** — Walk through the specification from its current state. You can review, amend, or navigate at any point.
117
+ - **`r`/`restart`** — Delete the specification and all review tracking files. Start fresh.
118
+ · · · · · · · · · · · ·
119
+ ```
120
+
121
+ **STOP.** Wait for user response.
91
122
 
92
- ### Post-Completion: Handle Source Specifications
123
+ #### If `continue`
93
124
 
94
- If any of your sources were **existing specifications** (as opposed to discussions, research, or other reference material), these have now been consolidated into the new specification.
125
+ Reset `finding_gate_mode` to `gated` in the specification frontmatter (fresh invocation = fresh gates).
95
126
 
96
- After user signs off:
97
- 1. Mark each source specification as superseded by updating its frontmatter:
98
- ```yaml
99
- status: superseded
100
- superseded_by: {new-specification-name}
101
- ```
102
- 2. Inform the user which files were updated
127
+ Skip Steps 1–2, proceed to **Step 3**.
103
128
 
104
- ## CRITICAL: You Do NOT Create or Update the Specification Autonomously
129
+ #### If `restart`
105
130
 
106
- **This is a collaborative, interactive process. You MUST wait for explicit user approval before writing ANYTHING to the specification file.**
131
+ 1. Delete the specification file and all review tracking files (`review-*-tracking-c*.md`) in the topic directory
132
+ 2. Commit: `spec({topic}): restart specification`
107
133
 
108
- **NEVER:**
109
- - Create the specification document and then ask the user to review it
110
- - Write multiple sections and present them for review afterward
111
- - Assume silence or moving on means approval
112
- - Make "minor" amendments without explicit approval
113
- - Batch up content and log it all at once
134
+ Proceed to **Step 1**.
114
135
 
115
- ✅ **ALWAYS:**
116
- - Present ONE topic at a time
117
- - **STOP and WAIT** for the user to explicitly approve before writing
118
- - Treat each write operation as requiring its own explicit approval
136
+ ---
119
137
 
120
- **What counts as approval:** `y`/`yes` (the standard choice you present) or equivalent: "Approved", "Add it", "That's good".
138
+ ## Step 1: Verify Source Material
121
139
 
122
- **What does NOT count as approval:** Silence, you presenting choices, the user asking a follow-up question, the user saying "What's next?", or any response that isn't explicit confirmation.
140
+ Load **[verify-source-material.md](references/verify-source-material.md)** and follow its instructions as written.
123
141
 
124
- If you are uncertain whether the user approved, **ASK**: "Ready to log it, or do you want to change something?"
142
+ Proceed to **Step 2**.
125
143
 
126
144
  ---
127
145
 
128
- ## What You Do
146
+ ## Step 2: Initialize Specification
147
+
148
+ Load **[specification-format.md](references/specification-format.md)** for the template.
149
+
150
+ Create the specification file at `docs/workflow/specification/{topic}/specification.md`:
151
+
152
+ 1. Use the frontmatter template from specification-format.md
153
+ 2. Set `topic` to the kebab-case topic name
154
+ 3. Set `status: in-progress`, `type: feature`, `review_cycle: 0`, `finding_gate_mode: gated`
155
+ 4. Set `date` to today's actual date
156
+ 5. Add all sources with `status: pending`
157
+ 6. Add the body template (title + specification section + working notes section)
129
158
 
130
- 1. **Extract exhaustively**: For each topic, re-scan ALL source materials. When working with multiple sources, search each one - information about a single topic may be scattered across documents. Search for keywords and related terms. Collect everything before synthesizing. Include only what we're building (not discarded alternatives).
159
+ Commit: `spec({topic}): initialize specification`
131
160
 
132
- 2. **Filter**: Reference material may contain hallucinations, inaccuracies, or outdated concepts. Validate before including.
161
+ Proceed to **Step 3**.
133
162
 
134
- 3. **Enrich**: Reference material may have gaps. Fill them through discussion.
163
+ ---
135
164
 
136
- 4. **Present**: Synthesize and present content to the user in the format it would appear in the specification.
165
+ ## Step 3: Load Specification Principles
137
166
 
138
- 5. **STOP AND WAIT**: Do not proceed until the user explicitly approves. This is not optional.
167
+ Load **[specification-principles.md](references/specification-principles.md)** and internalize the rules. These principles govern every subsequent step.
139
168
 
140
- 6. **Log**: Only after explicit approval, write content verbatim to the specification.
169
+ Proceed to **Step 4**.
141
170
 
142
- 7. **Final review**: After all topics and dependencies are documented, perform a comprehensive review of ALL source material against the specification. Flag any potentially missed content to the user - but only from the sources, never fabricated. User confirms before any additions.
171
+ ---
143
172
 
144
- The specification is the **golden document** - planning uses only this. If information doesn't make it into the specification, it won't be built. No references back to source material.
173
+ ## Step 4: Spec Construction
145
174
 
146
- ## Critical Rules
175
+ Load **[spec-construction.md](references/spec-construction.md)** and follow its instructions as written.
147
176
 
148
- **STOP AND WAIT FOR APPROVAL**: You MUST NOT write to the specification until the user has explicitly approved. Presenting content is NOT approval. Presenting choices is NOT approval. You must receive explicit confirmation (e.g., `y`/`yes`) before ANY write operation. If uncertain, ASK.
177
+ Proceed to **Step 5**.
149
178
 
150
- **Log verbatim**: When approved, write exactly what was presented - no silent modifications.
179
+ ---
151
180
 
152
- **Commit frequently**: Commit at natural breaks, after significant exchanges, and before any context refresh. Context refresh = lost work.
181
+ ## Step 5: Document Dependencies
153
182
 
154
- **Trust nothing without validation**: Synthesize and present, but never assume source material is correct.
183
+ Load **[dependencies.md](references/dependencies.md)** and follow its instructions as written.
155
184
 
156
- **Surface conflicts**: When sources contain conflicting decisions, flag the conflict to the user during the discussion. Don't silently pick one - let the user decide what makes it into the specification.
185
+ Proceed to **Step 6**.
157
186
 
158
187
  ---
159
188
 
160
- ## Self-Check: Are You Following the Rules?
189
+ ## Step 6: Specification Review
190
+
191
+ Load **[spec-review.md](references/spec-review.md)** and follow its instructions as written.
192
+
193
+ → Proceed to **Step 7**.
194
+
195
+ ---
161
196
 
162
- Before ANY write operation to the specification, ask yourself:
197
+ ## Step 7: Conclude Specification
163
198
 
164
- 1. **Did I present this specific content to the user?** If no → STOP. Present it first.
165
- 2. **Did the user explicitly approve it?** (Not "did I ask if it's good" - did THEY say yes?) If no → STOP. Wait for approval.
166
- 3. **Am I writing exactly what was approved?** If adding/changing anything → STOP. Present the changes first.
199
+ Load **[spec-completion.md](references/spec-completion.md)** and follow its instructions as written.
167
200
 
168
- > **If you have written to the specification file without going through steps 1-2-3 above, you have violated the workflow.** The user must approve every piece of content before it's logged. There are no exceptions.
@@ -0,0 +1,77 @@
1
+ # Dependencies
2
+
3
+ *Reference for **[technical-specification](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ At the end of every specification, add a **Dependencies** section that identifies **prerequisites** — systems that must exist before this feature can be built.
8
+
9
+ The same workflow applies: present the dependencies section for approval, then log verbatim when approved.
10
+
11
+ ## What Dependencies Are
12
+
13
+ Dependencies are **blockers** — things that must exist before implementation can begin.
14
+
15
+ Think of it like building a house: if you're specifying the roof, the walls are a dependency. You cannot build a roof without walls to support it. The walls must exist first.
16
+
17
+ **The test**: "If system X doesn't exist, can we still build this feature?"
18
+ - If **no** → X is a dependency
19
+ - If **yes** → X is not a dependency (even if the systems work together)
20
+
21
+ ## What Dependencies Are NOT
22
+
23
+ **Do not list systems just because they:**
24
+ - Work together with this feature
25
+ - Share data or communicate with this feature
26
+ - Are related or in the same domain
27
+ - Would be nice to have alongside this feature
28
+
29
+ Two systems that cooperate are not necessarily dependent. A notification system and a user preferences system might work together (preferences control notification settings), but if you can build the notification system with hardcoded defaults and add preference integration later, then preferences are not a dependency.
30
+
31
+ ## How to Identify Dependencies
32
+
33
+ Review the specification for cases where implementation is **literally blocked** without another system:
34
+
35
+ - **Data that must exist first** (e.g., "FK to users" → User model must exist, you can't create the FK otherwise)
36
+ - **Events you consume** (e.g., "listens for payment.completed" → Payment system must emit this event)
37
+ - **APIs you call** (e.g., "fetches inventory levels" → Inventory API must exist)
38
+ - **Infrastructure requirements** (e.g., "stores files in S3" → S3 bucket configuration must exist)
39
+
40
+ **Do not include** systems where you merely reference their concepts or where integration could be deferred.
41
+
42
+ ## Categorization
43
+
44
+ **Required**: Implementation cannot start without this. The code literally cannot be written.
45
+
46
+ **Partial Requirement**: Only specific elements are needed, not the full system. Note the minimum scope that unblocks implementation.
47
+
48
+ ## Format
49
+
50
+ ```markdown
51
+ ## Dependencies
52
+
53
+ Prerequisites that must exist before implementation can begin:
54
+
55
+ ### Required
56
+
57
+ | Dependency | Why Blocked | What's Unblocked When It Exists |
58
+ |------------|-------------|--------------------------------|
59
+ | **[System Name]** | [Why implementation literally cannot proceed] | [What parts of this spec can then be built] |
60
+
61
+ ### Partial Requirement
62
+
63
+ | Dependency | Why Blocked | Minimum Scope Needed |
64
+ |------------|-------------|---------------------|
65
+ | **[System Name]** | [Why implementation cannot proceed] | [Specific subset that unblocks us] |
66
+
67
+ ### Notes
68
+
69
+ - [What can be built independently, without waiting]
70
+ - [Workarounds if dependencies don't exist yet]
71
+ ```
72
+
73
+ ## Purpose
74
+
75
+ This section feeds into the planning phase, where dependencies become blocking relationships between epics/phases. It helps sequence implementation correctly.
76
+
77
+ **Key distinction**: This is about sequencing what must come first, not mapping out what works together. A feature may integrate with many systems — only list the ones that block you from starting.
@@ -0,0 +1,29 @@
1
+ # Exhaustive Extraction
2
+
3
+ *Reference for **[spec-construction](spec-construction.md)***
4
+
5
+ ---
6
+
7
+ **This step is critical. The specification is the golden document — if information doesn't make it here, it won't be built.**
8
+
9
+ For each topic or subtopic, perform exhaustive extraction:
10
+
11
+ 1. **Re-scan ALL source material** — Don't rely on memory. Go back to the source material and systematically review it for the current topic.
12
+
13
+ 2. **Search for keywords** — Topics are rarely contained in one section. Search for:
14
+ - The topic name and synonyms
15
+ - Related concepts and terms
16
+ - Names of systems, fields, or behaviors mentioned in context
17
+
18
+ 3. **Collect scattered information** — Source material is often non-linear. Information about a single topic may be scattered across:
19
+ - Multiple sections of the same document
20
+ - Different documents entirely
21
+ - Tangential discussions that revealed important details
22
+
23
+ 4. **Filter for what we're building** — Include only validated decisions:
24
+ - Exclude discarded alternatives
25
+ - Exclude ideas that were explored but rejected
26
+ - Exclude "maybes" that weren't confirmed
27
+ - Include only what the user has decided to build
28
+
29
+ **Why this matters:** The specification is the single source of truth for planning. Planning will not reference prior source material — only this document. Missing a detail here means that detail doesn't get implemented.
@@ -0,0 +1,170 @@
1
+ # Process Review Findings
2
+
3
+ *Reference for **[spec-review](spec-review.md)***
4
+
5
+ ---
6
+
7
+ Process findings from a review phase interactively with the user. The analysis phase writes findings to a tracking file. Read the tracking file and present each finding for approval.
8
+
9
+ **Review type**: `{review_type:[Input Review|Gap Analysis]}` — set by the calling context (B or C in spec-review.md).
10
+
11
+ Check if the tracking file exists at the expected path.
12
+
13
+ #### If no tracking file exists (no findings)
14
+
15
+ > *Output the next fenced block as a code block:*
16
+
17
+ ```
18
+ {review_type} complete — no findings.
19
+ ```
20
+
21
+ → Return to **[spec-review.md](spec-review.md)** for the next phase.
22
+
23
+ #### If tracking file exists
24
+
25
+ Read the tracking file and count pending findings.
26
+
27
+ → Proceed to **A. Summary**.
28
+
29
+ ---
30
+
31
+ ## A. Summary
32
+
33
+ > *Output the next fenced block as a code block:*
34
+
35
+ ```
36
+ {review_type} — {N} items found
37
+
38
+ 1. {title} ({category})
39
+ {1-2 line summary from the Details field}
40
+
41
+ 2. ...
42
+ ```
43
+
44
+ > *Output the next fenced block as a code block:*
45
+
46
+ ```
47
+ Let's work through these one at a time, starting with #1.
48
+ ```
49
+
50
+ → Proceed to **B. Process One Item at a Time**.
51
+
52
+ ---
53
+
54
+ ## B. Process One Item at a Time
55
+
56
+ Work through each finding **sequentially**. For each finding: present it, show the proposed content, then route through the gate.
57
+
58
+ ### Present Finding
59
+
60
+ Show the finding with its proposed content, read directly from the tracking file.
61
+
62
+ > *Output the next fenced block as markdown (not a code block):*
63
+
64
+ ```
65
+ **Finding {N} of {total}: {brief_title:(titlecase)}**
66
+
67
+ - **Source**: {from tracking file}
68
+ - **Category**: {from tracking file}
69
+ @if(review_type = Gap Analysis)
70
+ - **Priority**: Critical | Important | Minor
71
+ @endif
72
+ - **Affects**: {from tracking file}
73
+
74
+ **Details**: {from tracking file}
75
+
76
+ **Proposed Addition**:
77
+ {from tracking file — the content to add to the specification}
78
+ ```
79
+
80
+ **For potential gaps** (items not directly from source material): you're asking questions rather than proposing content. If the user wants to address a gap, discuss it, then present what you'd add for approval.
81
+
82
+ ### Check Gate Mode
83
+
84
+ Check `finding_gate_mode` in the specification frontmatter.
85
+
86
+ #### If `finding_gate_mode: auto`
87
+
88
+ 1. Log the proposed content to the specification verbatim
89
+ 2. Update the tracking file: set resolution to "Approved"
90
+ 3. Commit
91
+
92
+ > *Output the next fenced block as a code block:*
93
+
94
+ ```
95
+ Finding {N} of {total}: {brief_title:(titlecase)} — approved. Added to specification.
96
+ ```
97
+
98
+ → Present the next pending finding, or proceed to **C. After All Findings Processed**.
99
+
100
+ #### If `finding_gate_mode: gated`
101
+
102
+ > *Output the next fenced block as markdown (not a code block):*
103
+
104
+ ```
105
+ · · · · · · · · · · · ·
106
+ **Finding {N} of {total}: {brief_title:(titlecase)}**
107
+ - **`y`/`yes`** — Approved. Add to the specification verbatim.
108
+ - **`a`/`auto`** — Approve this and all remaining findings automatically
109
+ - **`s`/`skip`** — Leave as-is, move to next finding.
110
+ - **Or provide feedback** to adjust.
111
+ · · · · · · · · · · · ·
112
+ ```
113
+
114
+ **STOP.** Wait for user response.
115
+
116
+ #### If the user provides feedback
117
+
118
+ Incorporate feedback and re-present the proposed content **in full**. Update the tracking file with the revised content. Then ask the same choice again. Repeat until approved or skipped.
119
+
120
+ #### If approved
121
+
122
+ 1. Log the content to the specification verbatim
123
+ 2. Update the tracking file: set resolution to "Approved", add any discussion notes
124
+ 3. Commit — ensures progress survives context refresh
125
+
126
+ > *Output the next fenced block as a code block:*
127
+
128
+ ```
129
+ Finding {N} of {total}: {brief_title:(titlecase)} — added.
130
+ ```
131
+
132
+ → Present the next pending finding, or proceed to **C. After All Findings Processed**.
133
+
134
+ #### If `auto`
135
+
136
+ 1. Log the content (same as "If approved" above)
137
+ 2. Update the tracking file: set resolution to "Approved"
138
+ 3. Update `finding_gate_mode: auto` in the specification frontmatter
139
+ 4. Commit
140
+ 5. Process all remaining findings using the auto-mode flow above
141
+
142
+ → After all processed, proceed to **C. After All Findings Processed**.
143
+
144
+ #### If skipped
145
+
146
+ 1. Update the tracking file: set resolution to "Skipped", note the reason
147
+ 2. Commit — ensures progress survives context refresh
148
+
149
+ > *Output the next fenced block as a code block:*
150
+
151
+ ```
152
+ Finding {N} of {total}: {brief_title:(titlecase)} — skipped.
153
+ ```
154
+
155
+ → Present the next pending finding, or proceed to **C. After All Findings Processed**.
156
+
157
+ ---
158
+
159
+ ## C. After All Findings Processed
160
+
161
+ 1. **Mark the tracking file as complete** — Set `status: complete`.
162
+ 2. **Commit** the tracking file and any specification changes.
163
+
164
+ > *Output the next fenced block as a code block:*
165
+
166
+ ```
167
+ {review_type} complete — {N} findings processed.
168
+ ```
169
+
170
+ → Return to **[spec-review.md](spec-review.md)** for the next phase.
@@ -0,0 +1,84 @@
1
+ # Gap Analysis
2
+
3
+ *Reference for **[spec-review](spec-review.md)***
4
+
5
+ ---
6
+
7
+ Phase 2 reviews the **specification as a standalone document** — looking *inward* at what's been specified, not outward at what else the product might need.
8
+
9
+ **Purpose**: Ensure that *within the defined scope*, the specification flows correctly, has sufficient detail, and leaves nothing open to interpretation or assumption. This might be a full product spec or a single feature — the scope is whatever the inputs defined. Your job is to verify that within those boundaries, an agent or human could create plans, break them into tasks, and write code without having to guess.
10
+
11
+ **Key distinction**: You're not asking "what features are missing from this product?" You're asking "within what we've decided to build, is everything clear and complete?"
12
+
13
+ ## What to Look For
14
+
15
+ Review the specification systematically for gaps *within what's specified*:
16
+
17
+ 1. **Internal Completeness**
18
+ - Workflows that start but don't show how they end
19
+ - States or transitions mentioned but not fully defined
20
+ - Behaviors referenced elsewhere but never specified
21
+ - Default values or fallback behaviors left unstated
22
+
23
+ 2. **Insufficient Detail**
24
+ - Areas where an implementer would have to guess
25
+ - Sections that are too high-level to act on
26
+ - Missing error handling for scenarios the spec introduces
27
+ - Validation rules implied but not defined
28
+ - Boundary conditions for limits the spec mentions
29
+
30
+ 3. **Ambiguity**
31
+ - Vague language that could be interpreted multiple ways
32
+ - Terms used inconsistently across sections
33
+ - "It should" without defining what "it" is
34
+ - Implicit assumptions that aren't stated
35
+
36
+ 4. **Contradictions**
37
+ - Requirements that conflict with each other
38
+ - Behaviors defined differently in different sections
39
+ - Constraints that make other requirements impossible
40
+
41
+ 5. **Edge Cases Within Scope**
42
+ - For the behaviors specified, what happens at boundaries?
43
+ - For the inputs defined, what happens when they're empty or malformed?
44
+ - For the integrations described, what happens when they're unavailable?
45
+
46
+ 6. **Planning Readiness**
47
+ - Could you break this into clear tasks?
48
+ - Would an implementer know what to build?
49
+ - Are acceptance criteria implicit or explicit?
50
+ - Are there sections that would force an implementer to make design decisions?
51
+
52
+ ## The Review Process
53
+
54
+ 1. **Read the specification end-to-end** — Not scanning, but carefully reading as if you were about to implement it
55
+
56
+ 2. **For each section, ask**:
57
+ - Is this internally complete? Does it define everything it references?
58
+ - Is this clear? Would an implementer know exactly what to build?
59
+ - Is this consistent? Does it contradict anything else in the spec?
60
+ - Are there areas left open to interpretation or assumption?
61
+
62
+ 3. **Collect findings** — Note each gap, ambiguity, or area needing clarification
63
+
64
+ 4. **Prioritize** — Focus on issues that would block or confuse implementation:
65
+ - **Critical**: Would prevent implementation or cause incorrect behavior
66
+ - **Important**: Would require implementer to guess or make design decisions
67
+ - **Minor**: Polish or clarification that improves understanding
68
+
69
+ 5. **Create the tracking file** — If findings exist, write them to `review-gap-analysis-tracking-c{N}.md` using the format from **[review-tracking-format.md](review-tracking-format.md)**. Commit the tracking file.
70
+
71
+ ## What You're NOT Doing in Phase 2
72
+
73
+ - **Not expanding scope** — Looking for gaps *within* what's specified, not suggesting features the product should have. A feature spec for "user login" doesn't need you to ask about password reset if it wasn't in scope.
74
+ - **Not gold-plating** — Only flag gaps that would actually impact implementation of what's specified
75
+ - **Not second-guessing decisions** — The spec reflects validated decisions; you're checking for clarity and completeness, not re-opening debates
76
+ - **Not being exhaustive for its own sake** — Focus on what matters for implementing *this* specification
77
+
78
+ ## Completing Phase 2
79
+
80
+ When you've:
81
+ - Reviewed the specification for completeness, clarity, and implementation readiness
82
+ - Created the tracking file (if findings exist) and committed it
83
+
84
+ → Return to **[spec-review.md](spec-review.md)** for finding processing.
@@ -0,0 +1,57 @@
1
+ # Input Review
2
+
3
+ *Reference for **[spec-review](spec-review.md)***
4
+
5
+ ---
6
+
7
+ Phase 1 compares the specification against all source material to catch anything missed.
8
+
9
+ ## The Review Process
10
+
11
+ 1. **Re-read ALL source material** — Go back to every source document, discussion, research note, and reference. Don't rely on memory.
12
+
13
+ 2. **Compare systematically** — For each piece of source material:
14
+ - What topics does it cover?
15
+ - Are those topics fully captured in the specification?
16
+ - Are there details, edge cases, or decisions that didn't make it?
17
+
18
+ 3. **Search for the forgotten** — Look specifically for:
19
+ - Edge cases mentioned in passing
20
+ - Constraints or requirements buried in tangential discussions
21
+ - Technical details that seemed minor at the time
22
+ - Decisions made early that may have been overshadowed
23
+ - Error handling, validation rules, or boundary conditions
24
+ - Integration points or data flows mentioned but not elaborated
25
+
26
+ 4. **Collect what you find** — Note each finding for your summary. Categorize:
27
+ - **Enhancing an existing topic** — Details that belong in an already-documented section. Note which section it would enhance.
28
+ - **An entirely missed topic** — Something that warrants its own section but was glossed over. New topics get added at the end.
29
+
30
+ 5. **Never fabricate** — Every item you flag must trace back to specific source material. If you can't point to where it came from, don't suggest it. The goal is to catch missed content, not invent new requirements.
31
+
32
+ 6. **User confirms before inclusion** — Standard workflow applies: present proposed additions, get approval, then log verbatim.
33
+
34
+ 7. **Surface potential gaps** — After reviewing source material, consider whether the specification has gaps that the sources simply didn't address:
35
+ - Edge cases that weren't discussed
36
+ - Error scenarios not covered
37
+ - Integration points that seem implicit but aren't specified
38
+ - Behaviors that are ambiguous without clarification
39
+
40
+ Collect these alongside the missed content. This should be infrequent — most gaps will be caught from source material. But occasionally the sources themselves have blind spots worth surfacing.
41
+
42
+ 8. **Create the tracking file** — If findings exist, write them to `review-input-tracking-c{N}.md` using the format from **[review-tracking-format.md](review-tracking-format.md)**. Commit the tracking file.
43
+
44
+ ## What You're NOT Doing in Phase 1
45
+
46
+ - **Not inventing requirements** — When surfacing gaps not in sources, you're asking questions, not proposing answers
47
+ - **Not assuming gaps need filling** — If something isn't in the sources, it may have been intentionally omitted
48
+ - **Not padding the spec** — Only add what's genuinely missing and relevant
49
+ - **Not re-litigating decisions** — If something was discussed and rejected, it stays rejected
50
+
51
+ ## Completing Phase 1
52
+
53
+ When you've:
54
+ - Systematically reviewed all source material for missed content
55
+ - Created the tracking file (if findings exist) and committed it
56
+
57
+ → Return to **[spec-review.md](spec-review.md)** for finding processing.