specflow-cc 1.5.3 → 1.6.1

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,38 @@ 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.6.0] - 2026-01-25
9
+
10
+ ### Added
11
+
12
+ #### Commands
13
+ - `/sf:quick` — Fast track for trivial tasks (skip full audit/review workflow)
14
+ - `/sf:verify` — Interactive user acceptance testing after implementation
15
+ - `/sf:discuss --pre "topic"` — Pre-specification discussion with feature-type-specific questions
16
+ - `/sf:new --discuss PRE-XXX` — Create spec with prior discussion context
17
+
18
+ #### Features
19
+ - **Model profiles** — Control cost vs quality (`quality`, `balanced`, `budget`) in config.json
20
+ - **Pre-spec discussion** — Identifies gray areas based on feature type (visual, API, CLI, data, refactor)
21
+ - **Feature-type question banks** — 5-10 targeted questions per feature type
22
+ - **STATE.md size management** — Automatic decision archiving when exceeding 100 lines
23
+ - **Wave-based parallel execution** — Large specs auto-decompose into parallel waves
24
+ - **Orchestrator/worker architecture** — Fresh context per execution task
25
+
26
+ #### Agents
27
+ - Enhanced `spec-executor-orchestrator` — Pre-computed waves, checkpoint support
28
+ - Enhanced `spec-executor-worker` — Atomic commits, state verification
29
+ - Enhanced `discusser` — Feature-type detection, question banks, PRE-XXX file format
30
+
31
+ ### Changed
32
+
33
+ - README completely rewritten for better user experience
34
+ - `/sf:done` workflow now includes optional `/sf:verify` step
35
+ - Pause/resume supports orchestrated execution checkpoints
36
+ - Queue position is now source of truth for `/sf:next`
37
+
38
+ ---
39
+
8
40
  ## [1.5.3] - 2026-01-22
9
41
 
10
42
  ### Changed
package/README.md CHANGED
@@ -1,37 +1,302 @@
1
+ <div align="center">
2
+
1
3
  # SpecFlow
2
4
 
3
5
  **Spec-driven development for Claude Code**
4
6
 
5
- Write specs first, audit them, then implement. Quality through explicit review cycles.
7
+ **Stop debugging AI-generated code. Start reviewing specifications.**
8
+
9
+ [![npm version](https://img.shields.io/npm/v/specflow-cc?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/specflow-cc)
10
+ [![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
11
+
12
+ <br>
13
+
14
+ ```bash
15
+ npx specflow-cc --global
16
+ ```
17
+
18
+ <br>
19
+
20
+ https://github.com/user-attachments/assets/3f516907-8657-4ea4-bc0c-6319998a09db
21
+
22
+ <br>
23
+
24
+ *"The audit caught 4 issues before I wrote a single line of code."*
25
+
26
+ *"Fresh context review found a bug I would have shipped to production."*
27
+
28
+ *"Finally, a workflow where Claude explains what it will do before doing it."*
29
+
30
+ <br>
31
+
32
+ [Why This Exists](#why-this-exists) · [How It Works](#how-it-works) · [Commands](#commands) · [Configuration](#configuration)
33
+
34
+ </div>
35
+
36
+ ---
37
+
38
+ ## Why This Exists
39
+
40
+ Claude Code is powerful. But "just build it" leads to:
41
+
42
+ - Code that doesn't match what you imagined
43
+ - Assumptions you didn't know were made
44
+ - Bugs that only appear after 2000 lines are written
45
+ - Hours spent debugging instead of building
6
46
 
7
- ## Installation
47
+ The fix isn't better prompting. It's **making Claude think before it codes.**
48
+
49
+ SpecFlow enforces a simple principle: **write the spec first, audit it, then implement.** Every specification gets reviewed in a fresh context — no bias from creation. Every implementation gets reviewed against the spec — no "it works on my machine."
50
+
51
+ The result: fewer surprises, cleaner code, and a paper trail of decisions.
52
+
53
+ ---
54
+
55
+ ## Why SpecFlow?
56
+
57
+ Most AI coding workflows suffer from **"Yes-Man Syndrome"** — you ask for a feature, the AI nods and writes code. 500 lines later, you discover hallucinated APIs, missing edge cases, or security holes.
58
+
59
+ SpecFlow fixes this with **Fresh Context Auditing**:
60
+
61
+ | Aspect | Standard AI Coding | SpecFlow |
62
+ |--------|-------------------|----------|
63
+ | **Context** | Single window (grows, degrades) | Fresh context per phase |
64
+ | **Quality Control** | Self-correction (biased) | Independent Auditor (unbiased) |
65
+ | **Verification** | "Looks good to me" | Verified against contract |
66
+ | **Execution** | Linear, single agent | Atomic waves, parallel agents |
67
+ | **Result** | Hidden bugs ship | Issues caught before code exists |
68
+
69
+ > The auditor has no memory of your conversation. It only sees the spec. If the spec says "use the flux capacitor API" — the auditor asks "what is that?"
70
+
71
+ ---
72
+
73
+ ## Who This Is For
74
+
75
+ Developers who want Claude Code to:
76
+
77
+ - **Explain before implementing** — See the plan before code exists
78
+ - **Catch issues early** — Audits find problems when they're cheap to fix
79
+ - **Stay consistent** — Same quality whether it's your first task or fiftieth
80
+ - **Document decisions** — Know why code was written the way it was
81
+
82
+ If you've ever said "that's not what I meant" after Claude finished coding, this is for you.
83
+
84
+ ---
85
+
86
+ ## Getting Started
8
87
 
9
88
  ```bash
10
89
  npx specflow-cc --global
11
90
  ```
12
91
 
13
- ## Quick Start
92
+ Then in any project:
14
93
 
15
94
  ```bash
16
- /sf:init # Initialize project (once)
95
+ /sf:init # Initialize (once per project)
17
96
  /sf:new "add user auth" # Create specification
18
- /sf:audit # Audit spec (fresh context)
19
- /sf:run # Implement
20
- /sf:review # Review implementation
21
- /sf:done # Complete and archive
22
97
  ```
23
98
 
24
- ## Workflow
99
+ Verify installation with `/sf:help`.
100
+
101
+ ### Quick Mode
102
+
103
+ For trivial tasks that don't need full specification:
104
+
105
+ ```bash
106
+ /sf:quick "fix typo in header"
107
+ ```
25
108
 
109
+ Same quality principles, faster path.
110
+
111
+ ---
112
+
113
+ ## How It Works
114
+
115
+ ### 1. Create Specification
116
+
117
+ ```
118
+ /sf:new "add OAuth login"
119
+ ```
120
+
121
+ The system asks clarifying questions, then creates a structured specification:
122
+
123
+ - **Goal Analysis** — What success looks like
124
+ - **Requirements** — What must be built
125
+ - **Acceptance Criteria** — How to verify it works
126
+ - **Constraints** — What to avoid
127
+
128
+ You review the spec. If something's wrong, you catch it now — not after 500 lines of code.
129
+
130
+ **Creates:** `.specflow/specs/SPEC-XXX.md`
131
+
132
+ ---
133
+
134
+ ### 2. Audit Specification
135
+
136
+ ```
137
+ /sf:audit
138
+ ```
139
+
140
+ **This is where SpecFlow is different.**
141
+
142
+ A fresh agent — with no memory of how the spec was created — reviews it for:
143
+
144
+ - Ambiguous requirements
145
+ - Missing edge cases
146
+ - Unrealistic scope
147
+ - Contradictions
148
+
149
+ The auditor doesn't know your assumptions. It only sees the spec. If something is unclear, it will ask.
150
+
151
+ **Why fresh context matters:** The agent that wrote the spec "knows what it meant." A fresh auditor only knows what's written. This catches gaps you'd otherwise miss.
152
+
153
+ If issues are found, `/sf:revise` applies the feedback. Loop until approved.
154
+
155
+ **Creates:** Audit record in spec, recommendations if needed
156
+
157
+ ---
158
+
159
+ ### 3. Implement
160
+
161
+ ```
162
+ /sf:run
163
+ ```
164
+
165
+ Now — and only now — code gets written.
166
+
167
+ The executor has:
168
+ - A clear, audited specification
169
+ - Defined acceptance criteria
170
+ - Explicit constraints
171
+
172
+ No guessing. No "I'll figure it out as I go." The spec is the source of truth.
173
+
174
+ For large specs, the system automatically:
175
+ - Splits work into parallel waves
176
+ - Spawns fresh executors per task
177
+ - Commits atomically per unit of work
178
+
179
+ **Creates:** Implementation + Execution Summary in spec
180
+
181
+ ---
182
+
183
+ ### 4. Review Implementation
184
+
185
+ ```
186
+ /sf:review
26
187
  ```
27
- /sf:new → /sf:audit → /sf:run → /sf:review → /sf:done
28
- ↓ ↓
29
- /sf:revise /sf:fix
188
+
189
+ Another fresh agent reviews what was built against what was specified:
190
+
191
+ - Does the code meet acceptance criteria?
192
+ - Were all files created/deleted as planned?
193
+ - Any security issues or code quality problems?
194
+
195
+ Same principle as audit: fresh eyes catch what familiar eyes miss.
196
+
197
+ If issues are found, `/sf:fix` addresses them. Loop until approved.
198
+
199
+ **Creates:** Review record in spec
200
+
201
+ ---
202
+
203
+ ### 5. Verify (Optional)
204
+
205
+ ```
206
+ /sf:verify
207
+ ```
208
+
209
+ Automated checks confirm code exists and tests pass. But does it actually *work*?
210
+
211
+ This step walks you through manual verification:
212
+
213
+ - "Can you log in with OAuth?"
214
+ - "Does the redirect work?"
215
+ - "Is the session persisted?"
216
+
217
+ You confirm each item. If something's broken, the system helps diagnose and creates fix plans.
218
+
219
+ **Creates:** Verification record
220
+
221
+ ---
222
+
223
+ ### 6. Complete
224
+
225
+ ```
226
+ /sf:done
227
+ ```
228
+
229
+ Archives the specification. Records decisions. Clears state for the next task.
230
+
231
+ Your spec becomes documentation: why the code exists, what decisions were made, how it was verified.
232
+
233
+ ---
234
+
235
+ ## The Full Workflow
236
+
237
+ ```
238
+ /sf:quick (trivial tasks)
239
+
240
+ /sf:new → /sf:audit → /sf:run → /sf:review → /sf:verify → /sf:done
241
+ ↓ ↓ ↓
242
+ /sf:revise /sf:fix (optional UAT)
30
243
  (if needed) (if needed)
31
244
  ```
32
245
 
33
246
  **Key principle:** Audits and reviews run in fresh context — no bias from creation.
34
247
 
248
+ ---
249
+
250
+ ## Why It Works
251
+
252
+ ### Fresh Context Auditing
253
+
254
+ The agent that creates a spec "knows what it meant." That's dangerous — unclear writing seems clear to the writer.
255
+
256
+ SpecFlow audits in a **separate context**. The auditor only sees the specification text. If requirements are ambiguous, the auditor will flag them — because it genuinely doesn't know the intent.
257
+
258
+ This catches:
259
+ - Assumptions that weren't written down
260
+ - Edge cases the creator forgot
261
+ - Scope that's larger than it appears
262
+
263
+ ### Spec as Contract
264
+
265
+ The specification isn't a suggestion. It's a contract:
266
+
267
+ | Section | What it defines |
268
+ |---------|-----------------|
269
+ | Goal Analysis | What success looks like |
270
+ | Requirements | What must exist |
271
+ | Acceptance Criteria | How to verify completion |
272
+ | Constraints | What to avoid |
273
+ | Files to Create/Modify | Exact scope |
274
+
275
+ The executor implements the contract. The reviewer verifies compliance. No drift.
276
+
277
+ ### Atomic Execution
278
+
279
+ Large specifications automatically decompose into waves:
280
+
281
+ ```
282
+ Wave 1: [task-1] [task-2] [task-3] ← parallel
283
+ Wave 2: [task-4] [task-5] ← parallel, depends on wave 1
284
+ Wave 3: [task-6] ← sequential
285
+ ```
286
+
287
+ Each task runs in fresh context. Each task commits atomically. If something fails, you know exactly which task and can fix just that piece.
288
+
289
+ ### Decision Trail
290
+
291
+ Every specification records:
292
+ - Audit feedback and responses
293
+ - Review findings and fixes
294
+ - Verification results
295
+
296
+ Six months later, you can read the spec and understand not just *what* was built, but *why* — and what was explicitly decided against.
297
+
298
+ ---
299
+
35
300
  ## Commands
36
301
 
37
302
  ### Core Flow
@@ -39,108 +304,176 @@ npx specflow-cc --global
39
304
  | Command | Description |
40
305
  |---------|-------------|
41
306
  | `/sf:init` | Initialize project |
42
- | `/sf:new` | Create specification |
307
+ | `/sf:new "task"` | Create specification |
43
308
  | `/sf:audit` | Audit spec (fresh context) |
44
- | `/sf:revise` | Revise based on audit (see below) |
45
- | `/sf:run` | Implement spec |
46
- | `/sf:review` | Review implementation |
47
- | `/sf:fix` | Fix based on review |
309
+ | `/sf:revise` | Revise based on audit feedback |
310
+ | `/sf:run` | Implement specification |
311
+ | `/sf:review` | Review implementation (fresh context) |
312
+ | `/sf:fix` | Fix based on review feedback |
313
+ | `/sf:verify` | Interactive user acceptance testing |
48
314
  | `/sf:done` | Complete and archive |
49
315
 
316
+ **Quick mode:**
317
+
318
+ ```bash
319
+ /sf:quick "fix button color" # Skip full workflow for trivial tasks
320
+ ```
321
+
50
322
  **Revise options:**
323
+
51
324
  ```bash
52
- /sf:revise # Interactive — show issues, ask what to fix
325
+ /sf:revise # Interactive — choose what to fix
53
326
  /sf:revise all # Apply all feedback
54
- /sf:revise 1,2 # Fix only items 1 and 2
55
- /sf:revise "custom..." # Arbitrary revision instructions
327
+ /sf:revise 1,2 # Fix specific items
328
+ /sf:revise "custom..." # Custom instructions
56
329
  ```
57
330
 
58
331
  ### Research & Clarification
59
332
 
60
333
  | Command | Description |
61
334
  |---------|-------------|
62
- | `/sf:research "topic"` | Research topic, save findings |
63
- | `/sf:discuss "topic"` | Clarify requirements (multi-question) |
64
- | `/sf:discuss "question?"` | Quick clarification (single question) |
335
+ | `/sf:research "topic"` | Research and save findings |
336
+ | `/sf:discuss "topic"` | Multi-question clarification |
337
+ | `/sf:discuss "question?"` | Single question |
338
+ | `/sf:discuss --pre "topic"` | Pre-spec discussion with feature-type questions |
65
339
  | `/sf:scan` | Analyze codebase for issues |
66
340
 
341
+ **Pre-spec discussion** identifies gray areas before creating a spec:
342
+
343
+ ```bash
344
+ /sf:discuss --pre "add export feature" # Asks feature-type-specific questions
345
+ /sf:new --discuss PRE-001 "add export" # Creates spec with discussion context
346
+ ```
347
+
67
348
  ### Navigation
68
349
 
69
350
  | Command | Description |
70
351
  |---------|-------------|
71
352
  | `/sf:status` | Current state and next step |
72
353
  | `/sf:list` | All specifications |
73
- | `/sf:next` | Switch to priority task |
354
+ | `/sf:next` | Switch to highest priority task |
74
355
  | `/sf:show` | View spec details |
356
+ | `/sf:history` | View archived specs |
357
+ | `/sf:metrics` | Project statistics |
75
358
 
76
359
  ### Backlog
77
360
 
78
361
  | Command | Description |
79
362
  |---------|-------------|
80
- | `/sf:todo` | Add future idea |
363
+ | `/sf:todo "idea"` | Capture idea for later |
81
364
  | `/sf:todos` | List all todos |
82
365
  | `/sf:plan` | Convert todo to spec |
83
- | `/sf:priority` | Reprioritize |
366
+ | `/sf:priority` | Reprioritize queue |
84
367
 
85
368
  ### Utilities
86
369
 
87
370
  | Command | Description |
88
371
  |---------|-------------|
89
372
  | `/sf:split` | Break large spec into parts |
90
- | `/sf:deps` | Show dependencies |
373
+ | `/sf:deps` | Show spec dependencies |
91
374
  | `/sf:pause` | Save session context |
92
375
  | `/sf:resume` | Restore session |
93
376
  | `/sf:help` | Command reference |
94
377
 
378
+ ---
379
+
380
+ ## Configuration
381
+
382
+ Settings live in `.specflow/config.json`.
383
+
384
+ ### Model Profiles
385
+
386
+ Control cost vs quality:
387
+
388
+ ```json
389
+ {
390
+ "model_profile": "balanced"
391
+ }
392
+ ```
393
+
394
+ | Profile | Spec Creation | Execution | Review |
395
+ |---------|---------------|-----------|--------|
396
+ | `quality` | Opus | Opus | Sonnet |
397
+ | `balanced` | Opus | Sonnet | Sonnet |
398
+ | `budget` | Sonnet | Sonnet | Haiku |
399
+
400
+ Use `quality` for critical features, `budget` for routine tasks.
401
+
402
+ ---
403
+
95
404
  ## Project Structure
96
405
 
97
406
  ```
98
407
  .specflow/
99
- ├── PROJECT.md # Project context
100
- ├── STATE.md # Current state
101
- ├── specs/ # Active specs
408
+ ├── PROJECT.md # Project context (patterns, conventions)
409
+ ├── STATE.md # Current state and queue
410
+ ├── config.json # Settings
411
+ ├── specs/ # Active specifications
102
412
  ├── research/ # Research documents
103
413
  ├── discussions/ # Clarification records
104
- ├── audits/ # Audit reports
105
- └── archive/ # Completed specs
414
+ └── archive/ # Completed specifications
106
415
  ```
107
416
 
417
+ ---
418
+
108
419
  ## Typical Session
109
420
 
110
421
  ```bash
111
- # Check where you are
422
+ # Check current state
112
423
  /sf:status
113
424
 
114
- # Research if needed
115
- /sf:research "auth options"
425
+ # Trivial fix — use quick mode
426
+ /sf:quick "fix typo in README"
427
+
428
+ # Feature work — full workflow
429
+ /sf:discuss --pre "add OAuth" # Clarify gray areas first
430
+ /sf:new --discuss PRE-001 "add OAuth" # Create spec with context
431
+ /sf:audit # Fresh context audit
432
+ /sf:revise all # Apply feedback if needed
433
+ /sf:run # Implement
434
+ /sf:review # Fresh context review
435
+ /sf:verify # Manual verification
436
+ /sf:done # Archive
437
+ ```
116
438
 
117
- # Create spec with research context
118
- /sf:new --research RES-001 "add OAuth"
439
+ ---
119
440
 
120
- # Clarify assumptions if needed
121
- /sf:discuss SPEC-001
441
+ ## Troubleshooting
122
442
 
123
- # Audit (use /clear first for fresh context)
124
- /sf:audit
443
+ **Commands not found?**
444
+ - Restart Claude Code to reload commands
445
+ - Verify files exist in `~/.claude/` (global) or `.claude/` (local)
446
+ - Re-run `npx specflow-cc --global`
125
447
 
126
- # Implement
127
- /sf:run
448
+ **Audit/review seems to miss obvious issues?**
449
+ - Use `/clear` before `/sf:audit` or `/sf:review` to ensure fresh context
450
+ - Check that spec has clear acceptance criteria
128
451
 
129
- # Quick clarification during implementation
130
- /sf:discuss "Should we use Redis or in-memory cache?"
452
+ **Large spec taking too long?**
453
+ - Use `/sf:split` to decompose into smaller specs
454
+ - Or let the system auto-decompose during `/sf:run`
131
455
 
132
- # Review and complete
133
- /sf:review
134
- /sf:done
135
- ```
456
+ ---
136
457
 
137
458
  ## Philosophy
138
459
 
139
- - **Spec-first** — Write specs before code
140
- - **Fresh audits** — Auditors don't see creation (no bias)
460
+ - **Spec-first** — Think before coding
461
+ - **Fresh audits** — Different context catches different issues
141
462
  - **Soft blocking** — Warnings, not hard stops
142
463
  - **Token-aware** — Specs sized for single sessions
464
+ - **Cost-conscious** — Model profiles for budget control
465
+ - **Decision trail** — Know why code exists
466
+
467
+ ---
143
468
 
144
469
  ## License
145
470
 
146
471
  MIT
472
+
473
+ ---
474
+
475
+ <div align="center">
476
+
477
+ **Claude Code writes the code. SpecFlow makes sure it's the right code.**
478
+
479
+ </div>
@@ -187,9 +187,12 @@ Based on this scan, consider creating specs for:
187
187
  1. **[Spec title]** — [brief description]
188
188
  - Priority: [High | Medium | Low]
189
189
  - Complexity: [small | medium | large]
190
+ Run: `/sf:new "[title]"`
190
191
 
191
192
  2. **[Spec title]** — [brief description]
192
- ...
193
+ - Priority: [High | Medium | Low]
194
+ - Complexity: [small | medium | large]
195
+ Run: `/sf:new "[title]"`
193
196
 
194
197
  ---
195
198