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 +32 -0
- package/README.md +384 -51
- package/agents/codebase-scanner.md +4 -1
- package/agents/discusser.md +177 -0
- package/agents/sf-spec-executor-orchestrator.md +281 -0
- package/agents/spec-auditor.md +365 -7
- package/agents/spec-creator.md +36 -1
- package/agents/spec-executor-orchestrator.md +559 -0
- package/agents/spec-executor-worker.md +212 -0
- package/commands/sf/audit.md +96 -4
- package/commands/sf/discuss.md +46 -11
- package/commands/sf/done.md +141 -0
- package/commands/sf/fix.md +18 -2
- package/commands/sf/help.md +19 -0
- package/commands/sf/history.md +64 -1
- package/commands/sf/new.md +40 -7
- package/commands/sf/next.md +53 -34
- package/commands/sf/pause.md +92 -5
- package/commands/sf/plan.md +22 -4
- package/commands/sf/quick.md +297 -0
- package/commands/sf/research.md +22 -4
- package/commands/sf/resume.md +119 -7
- package/commands/sf/review.md +96 -4
- package/commands/sf/revise.md +22 -4
- package/commands/sf/run.md +152 -6
- package/commands/sf/scan.md +23 -6
- package/commands/sf/split.md +23 -5
- package/commands/sf/verify.md +287 -0
- package/package.json +1 -1
- package/templates/decisions-archive.md +8 -0
- package/templates/execution-state.json +89 -0
- package/templates/scan.md +2 -1
- package/templates/spec.md +65 -0
- package/templates/state.md +24 -3
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
|
-
|
|
7
|
+
**Stop debugging AI-generated code. Start reviewing specifications.**
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/specflow-cc)
|
|
10
|
+
[](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
|
-
|
|
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
|
-
|
|
92
|
+
Then in any project:
|
|
14
93
|
|
|
15
94
|
```bash
|
|
16
|
-
/sf:init # Initialize
|
|
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
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
45
|
-
| `/sf:run` | Implement
|
|
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 —
|
|
325
|
+
/sf:revise # Interactive — choose what to fix
|
|
53
326
|
/sf:revise all # Apply all feedback
|
|
54
|
-
/sf:revise 1,2 # Fix
|
|
55
|
-
/sf:revise "custom..." #
|
|
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
|
|
63
|
-
| `/sf:discuss "topic"` |
|
|
64
|
-
| `/sf:discuss "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` |
|
|
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
|
-
├──
|
|
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
|
-
|
|
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
|
|
422
|
+
# Check current state
|
|
112
423
|
/sf:status
|
|
113
424
|
|
|
114
|
-
#
|
|
115
|
-
/sf:
|
|
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
|
-
|
|
118
|
-
/sf:new --research RES-001 "add OAuth"
|
|
439
|
+
---
|
|
119
440
|
|
|
120
|
-
|
|
121
|
-
/sf:discuss SPEC-001
|
|
441
|
+
## Troubleshooting
|
|
122
442
|
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
127
|
-
|
|
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
|
-
|
|
130
|
-
|
|
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
|
-
|
|
133
|
-
/sf:review
|
|
134
|
-
/sf:done
|
|
135
|
-
```
|
|
456
|
+
---
|
|
136
457
|
|
|
137
458
|
## Philosophy
|
|
138
459
|
|
|
139
|
-
- **Spec-first** —
|
|
140
|
-
- **Fresh audits** —
|
|
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
|
|