specflow-cc 1.16.0 → 1.17.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to SpecFlow will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.17.0] - 2026-03-29
9
+
10
+ ### Added
11
+
12
+ - **Defer-to-TODO enforcement** — when spec-reviser defers requirements during scope reduction, TODOs are now automatically created in `.specflow/todos/TODO.md`
13
+ - New Step 5.5 in spec-reviser agent: mandatory TODO creation for every deferred item
14
+ - Revise command fallback mode also enforces TODO creation for deferred items
15
+ - Spec-auditor now reminds that removed requirements must be captured as TODOs when recommending scope reduction
16
+ - Closes a process gap where deferred work could be silently lost (discovered via SPEC-159 incident)
17
+
8
18
  ## [1.16.0] - 2026-03-23
9
19
 
10
20
  ### Added
@@ -267,6 +267,10 @@ Set NEEDS_DECOMPOSITION if ANY of:
267
267
  - Recommend `/sf:run --parallel` mode
268
268
  - Set status to NEEDS_DECOMPOSITION (if no critical issues)
269
269
 
270
+ **If recommending scope reduction (removing requirements):**
271
+ - Explicitly note in the audit that removed requirements MUST be captured as TODOs
272
+ - Add to recommendations: "Any requirements removed during revision must be tracked via `/sf:todo` to prevent scope loss"
273
+
270
274
  ## Step 3.6: Delta Validation
271
275
 
272
276
  **Detection:** Check if spec frontmatter contains `delta: true`.
@@ -123,13 +123,44 @@ Append to Audit History:
123
123
  **Applied:** [what was applied]
124
124
 
125
125
  **Changes:**
126
- 1. [✓ if applied, ✗ if skipped] [Item description] — [what was done]
127
- 2. [✓/✗] [Item description] — [what was done]
126
+ 1. [✓ if applied, ✗ if skipped, ⏸ if deferred] [Item description] — [what was done]
127
+ 2. [✓/✗/⏸] [Item description] — [what was done]
128
128
 
129
129
  {If any skipped:}
130
130
  **Skipped:** [reason for skipping recommendations]
131
+
132
+ {If any deferred:}
133
+ **Deferred:** [items deferred to follow-up work]
131
134
  ```
132
135
 
136
+ ## Step 5.5: Create TODOs for Deferred Items
137
+
138
+ After recording the Response, check if any items were marked as deferred (⏸).
139
+
140
+ **If no deferred items:** Skip this step.
141
+
142
+ **If deferred items exist:**
143
+
144
+ For each deferred item:
145
+
146
+ 1. Read `.specflow/todos/TODO.md` to find the highest existing TODO ID
147
+ 2. Generate next TODO ID (zero-padded to 3 digits, starting from 001)
148
+ 3. Create a new TODO entry with:
149
+ - **Description:** `{item description} (deferred from {SPEC-XXX} audit v{N})`
150
+ - **Priority:** —
151
+ - **Notes:** `Origin: {SPEC-XXX} Response v{N}. {reason for deferral}`
152
+
153
+ 4. Insert the new entry into `.specflow/todos/TODO.md` after the `# To-Do List` line
154
+
155
+ 5. Append a "TODOs Created" subsection to the Response in Audit History:
156
+
157
+ ```markdown
158
+ **TODOs Created:**
159
+ - TODO-{XXX} — {item description}
160
+ ```
161
+
162
+ **Important:** This step is mandatory. Every deferred item MUST produce a TODO. If TODO creation fails, report the failure — do not silently skip.
163
+
133
164
  ## Step 6: Update Frontmatter
134
165
 
135
166
  Set status to "auditing" (ready for re-audit).
@@ -169,9 +200,16 @@ Output directly as formatted text (not wrapped in a code block):
169
200
 
170
201
  3. [✗] [Item] — [reason]
171
202
 
203
+ {If any deferred:}
204
+ ### Deferred → TODOs Created
205
+
206
+ 4. [⏸] [Item] → TODO-{XXX}
207
+
172
208
  ### Files Modified
173
209
 
174
210
  - .specflow/specs/SPEC-XXX.md
211
+ {If TODOs created:}
212
+ - .specflow/todos/TODO.md
175
213
 
176
214
  ### Next Step
177
215
 
@@ -188,6 +226,8 @@ Tip: `/clear` recommended — auditor needs fresh context
188
226
  - [ ] User's revision scope understood
189
227
  - [ ] Changes applied precisely
190
228
  - [ ] Revision Response recorded in Audit History
229
+ - [ ] Deferred items (if any) created as TODOs in `.specflow/todos/TODO.md`
230
+ - [ ] TODOs Created subsection appended to Response (if deferred items exist)
191
231
  - [ ] Frontmatter status updated
192
232
  - [ ] STATE.md updated
193
233
  - [ ] Clear summary of changes provided
@@ -404,7 +404,13 @@ Items {N, M} require clarification before deciding.
404
404
  `/sf:audit` — re-audit with applied changes
405
405
 
406
406
  {If deferred items exist:}
407
- Note: Deferred items saved to `.specflow/todos/` for future consideration.
407
+ ### Deferred TODOs Created
408
+
409
+ | Deferred Item | TODO Created |
410
+ |---------------|-------------|
411
+ | {item description} | TODO-{XXX} |
412
+
413
+ Note: Each deferred item has been saved as a TODO for future consideration.
408
414
  ```
409
415
 
410
416
  </workflow>
@@ -464,6 +470,19 @@ NEXT_VERSION=$((RESPONSE_COUNT + 1))
464
470
  **Summary:** Applied {X}/{Y} items, Skipped {Z}, Deferred {W}
465
471
  ```
466
472
 
473
+ ### Create TODOs for Deferred Items
474
+
475
+ After recording the Response, if any items were marked "Deferred":
476
+
477
+ 1. Read `.specflow/todos/TODO.md` to find the highest existing TODO ID
478
+ 2. For each deferred item, create a new TODO entry:
479
+ - **Description:** `{item description} (deferred from {SPEC-XXX} audit v{N})`
480
+ - **Priority:** —
481
+ - **Notes:** `Origin: {SPEC-XXX} Response v{N}. {reason for deferral}`
482
+ 3. Append "**TODOs Created:**" subsection to the Response in Audit History listing created TODO IDs
483
+
484
+ **This step is mandatory.** Every "Deferred" decision MUST produce a corresponding TODO.
485
+
467
486
  ### Update Status
468
487
 
469
488
  In spec frontmatter: `status: auditing`
@@ -480,6 +499,7 @@ In STATE.md:
480
499
  - [ ] Revision scope determined (all/specific/custom)
481
500
  - [ ] Changes applied correctly
482
501
  - [ ] Response recorded in Audit History
502
+ - [ ] Deferred items (if any) created as TODOs in `.specflow/todos/TODO.md`
483
503
  - [ ] Spec frontmatter status updated
484
504
  - [ ] STATE.md updated
485
505
  - [ ] Clear summary of changes shown
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specflow-cc",
3
- "version": "1.16.0",
3
+ "version": "1.17.0",
4
4
  "description": "Spec-driven development system for Claude Code — quality-first workflow with explicit audit cycles",
5
5
  "bin": {
6
6
  "specflow-cc": "bin/install.js"