flow-cc 0.2.0 → 0.3.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 +19 -0
- package/README.md +11 -7
- package/VERSION +1 -1
- package/bin/install.js +9 -8
- package/package.json +1 -1
- package/skills/flow-done.md +1 -1
- package/skills/flow-go.md +38 -6
- package/skills/flow-intro.md +14 -7
- package/skills/flow-milestone.md +67 -0
- package/skills/{flow-init.md → flow-setup.md} +13 -60
- package/skills/flow-spec.md +16 -1
- package/skills/flow-status.md +3 -3
- package/skills/flow-task.md +1 -1
- package/templates/STATE.md.template +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2026-02-11
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `/flow:setup` command — replaces `/flow:init` for project scaffolding only. Adds overwrite protection (stops if project already initialized).
|
|
12
|
+
- `/flow:milestone` command — extracted from `/flow:init` for milestone transitions. Adds guard for pending phases before archiving.
|
|
13
|
+
- Codebase scan exclusions in `/flow:spec` — explicitly excludes `node_modules/`, `.git/`, `dist/`, `build/`, `.next/`, `__pycache__/`, `*.min.js`, `*.map`, `*.lock`. Uses targeted glob patterns instead of bare `**/*`.
|
|
14
|
+
- Minimum viable PRD check in `/flow:spec` — validates at least 3 user stories, 1 phase, and 1 verification command before finalizing.
|
|
15
|
+
- Agent timeout + progress indicators in `/flow:go` — prints wave spawn/completion status, checks stuck agents after 10 minutes.
|
|
16
|
+
- Max retry limit (3 attempts) for verification in `/flow:go` — stops after 3 failures with user options instead of looping forever.
|
|
17
|
+
- Wave failure handling in `/flow:go` — detects all-failed vs partial-failed waves, asks user how to proceed.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- `/flow:init` split into `/flow:setup` (project scaffolding) and `/flow:milestone` (milestone transitions)
|
|
21
|
+
- Skill count: 9 skills (was 8 — setup replaces init, milestone is new)
|
|
22
|
+
- All cross-references updated: intro, done, status, go, task, README, install.js, DESIGN.md, templates
|
|
23
|
+
|
|
24
|
+
### Removed
|
|
25
|
+
- `/flow:init` command — replaced by `/flow:setup` and `/flow:milestone`
|
|
26
|
+
|
|
8
27
|
## [0.2.0] - 2026-02-11
|
|
9
28
|
|
|
10
29
|
### Added
|
package/README.md
CHANGED
|
@@ -35,7 +35,8 @@ Flow fixes this by giving Claude Code a **memory system and execution framework*
|
|
|
35
35
|
| Command | What it does |
|
|
36
36
|
|---|---|
|
|
37
37
|
| `/flow:intro` | Walkthrough of the system — **start here** |
|
|
38
|
-
| `/flow:
|
|
38
|
+
| `/flow:setup` | Set up a new project with `.planning/` scaffolding, CLAUDE.md, templates |
|
|
39
|
+
| `/flow:milestone` | Archive completed milestone and start a new one |
|
|
39
40
|
| `/flow:spec` | Spec interview that produces an executable PRD with phased execution plan |
|
|
40
41
|
| `/flow:go` | Execute the next phase from the PRD using wave-based agent teams |
|
|
41
42
|
| `/flow:task` | Bug fixes, cleanup, small features — no PRD needed |
|
|
@@ -46,16 +47,18 @@ Flow fixes this by giving Claude Code a **memory system and execution framework*
|
|
|
46
47
|
## How It Works
|
|
47
48
|
|
|
48
49
|
```
|
|
49
|
-
/flow:
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
/flow:setup → /flow:spec → /flow:go (repeat per phase) → /flow:done
|
|
51
|
+
↓
|
|
52
|
+
handoff prompt for next session
|
|
53
|
+
↓
|
|
54
|
+
/flow:milestone → next cycle
|
|
52
55
|
|
|
53
56
|
/flow:task ← standalone path for bug fixes and small features
|
|
54
57
|
```
|
|
55
58
|
|
|
56
59
|
**The lifecycle in practice:**
|
|
57
60
|
|
|
58
|
-
1. **`/flow:
|
|
61
|
+
1. **`/flow:setup`** — Creates `.planning/` directory, CLAUDE.md, STATE.md, ROADMAP.md, lessons.md
|
|
59
62
|
2. **`/flow:spec`** — Interviews you about the milestone. Produces a PRD with wave-based phases, acceptance criteria, and agent-team structure
|
|
60
63
|
3. **`/flow:go`** — Reads the PRD, spawns parallel agent teams per wave, builds, verifies, commits
|
|
61
64
|
4. **`/flow:done`** — Updates all planning docs, captures lessons, generates a one-line handoff prompt so the next session starts instantly
|
|
@@ -66,7 +69,8 @@ Flow fixes this by giving Claude Code a **memory system and execution framework*
|
|
|
66
69
|
```
|
|
67
70
|
~/.claude/
|
|
68
71
|
├── commands/flow/
|
|
69
|
-
│ ├── flow-
|
|
72
|
+
│ ├── flow-setup.md # 9 skill files
|
|
73
|
+
│ ├── flow-milestone.md
|
|
70
74
|
│ ├── flow-spec.md
|
|
71
75
|
│ ├── flow-go.md
|
|
72
76
|
│ ├── flow-task.md
|
|
@@ -88,7 +92,7 @@ Flow fixes this by giving Claude Code a **memory system and execution framework*
|
|
|
88
92
|
|
|
89
93
|
## Project Structure
|
|
90
94
|
|
|
91
|
-
Every Flow project gets this structure via `/flow:
|
|
95
|
+
Every Flow project gets this structure via `/flow:setup`:
|
|
92
96
|
|
|
93
97
|
```
|
|
94
98
|
your-project/
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.3.0
|
package/bin/install.js
CHANGED
|
@@ -321,14 +321,15 @@ try {
|
|
|
321
321
|
Flow v${version} installed successfully!
|
|
322
322
|
|
|
323
323
|
Commands available:
|
|
324
|
-
/flow:intro
|
|
325
|
-
/flow:
|
|
326
|
-
/flow:
|
|
327
|
-
/flow:
|
|
328
|
-
/flow:
|
|
329
|
-
/flow:
|
|
330
|
-
/flow:
|
|
331
|
-
/flow:
|
|
324
|
+
/flow:intro \u2014 Learn the Flow workflow
|
|
325
|
+
/flow:setup \u2014 Set up a new project
|
|
326
|
+
/flow:milestone \u2014 Start a new milestone
|
|
327
|
+
/flow:spec \u2014 Spec interview \u2192 executable PRD
|
|
328
|
+
/flow:go \u2014 Execute next phase with agent teams
|
|
329
|
+
/flow:done \u2014 Session-end documentation
|
|
330
|
+
/flow:status \u2014 Quick orientation
|
|
331
|
+
/flow:task \u2014 Lightweight task execution
|
|
332
|
+
/flow:update \u2014 Update Flow to latest version
|
|
332
333
|
|
|
333
334
|
Get started: run /flow:intro in any Claude Code session.
|
|
334
335
|
`);
|
package/package.json
CHANGED
package/skills/flow-done.md
CHANGED
|
@@ -100,7 +100,7 @@ Determine the next action and generate a copyable handoff prompt:
|
|
|
100
100
|
```
|
|
101
101
|
- If milestone is complete:
|
|
102
102
|
```
|
|
103
|
-
Milestone [name] complete. Run /flow:
|
|
103
|
+
Milestone [name] complete. Run /flow:milestone to start the next milestone.
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
Print the handoff prompt in a fenced code block so the user can copy it.
|
package/skills/flow-go.md
CHANGED
|
@@ -32,7 +32,7 @@ Run these checks before executing. If any fail, stop and tell the user what to d
|
|
|
32
32
|
- Verification commands
|
|
33
33
|
- If missing: "PRD phase section is too vague. Add wave structure + file lists, or run `/flow:spec`."
|
|
34
34
|
3. **Branch check:** Verify you're on the correct feature branch (from PRD header). If not, warn the user.
|
|
35
|
-
4. **All phases done?** If no pending phases remain: "All phases complete! Run `/flow:done` to wrap up, or `/flow:
|
|
35
|
+
4. **All phases done?** If no pending phases remain: "All phases complete! Run `/flow:done` to wrap up, or `/flow:milestone` for the next milestone."
|
|
36
36
|
|
|
37
37
|
## Step 3 — Staleness Check
|
|
38
38
|
|
|
@@ -82,22 +82,54 @@ so agents have it in their context without needing to search.]
|
|
|
82
82
|
|
|
83
83
|
- Use TeamCreate or Task tool to spawn all agents in the wave simultaneously
|
|
84
84
|
- Each agent runs with `mode: "bypassPermissions"` for autonomous execution
|
|
85
|
-
-
|
|
85
|
+
- Print: **"Wave N: Spawned X agents — [agent-1-task], [agent-2-task], ..."**
|
|
86
|
+
- As each agent completes, print: **"Wave N: agent-name completed (X/Y)"**
|
|
87
|
+
- Set a reasonable timeout for each agent. If an agent hasn't completed after 10 minutes, check on it. If it's stuck, stop it and note the failure.
|
|
88
|
+
- Wait for all agents in the wave to complete (or timeout) before moving to the next wave
|
|
86
89
|
|
|
87
|
-
### 4c.
|
|
90
|
+
### 4c. Wave Failure Handling
|
|
88
91
|
|
|
89
|
-
After
|
|
92
|
+
After a wave completes, check results:
|
|
93
|
+
|
|
94
|
+
**If ALL agents in a wave failed:**
|
|
95
|
+
- Print: **"Wave N failed — all X agents errored."**
|
|
96
|
+
- Show error summaries from each agent
|
|
97
|
+
- Use AskUserQuestion: "Wave N failed completely. How to proceed?"
|
|
98
|
+
- "Retry this wave"
|
|
99
|
+
- "Skip to next wave"
|
|
100
|
+
- "Abort phase"
|
|
101
|
+
|
|
102
|
+
**If SOME agents failed but others succeeded:**
|
|
103
|
+
- Print: **"Wave N: X/Y agents succeeded, Z failed."**
|
|
104
|
+
- Show failed agent error summaries
|
|
105
|
+
- Use AskUserQuestion: "Some agents failed. How to proceed?"
|
|
106
|
+
- "Retry failed agents"
|
|
107
|
+
- "Continue without them"
|
|
108
|
+
- "Abort phase"
|
|
109
|
+
|
|
110
|
+
When a wave completes successfully (all agents or user chose to continue), print: **"Wave N complete. Proceeding to Wave N+1."**
|
|
111
|
+
|
|
112
|
+
### 4d. Between Waves
|
|
113
|
+
|
|
114
|
+
After each wave completes (and failure handling is resolved):
|
|
90
115
|
1. Run verification commands from CLAUDE.md (e.g., `npx tsc --noEmit`, `npx biome check`)
|
|
91
116
|
2. Check for integration issues between agents' output
|
|
92
117
|
3. Fix any issues before proceeding to the next wave
|
|
93
118
|
4. If verification fails and you can fix it quickly (< 2 minutes of work), fix it. Otherwise, stop and report.
|
|
94
119
|
|
|
95
|
-
###
|
|
120
|
+
### 4e. Final Verification
|
|
96
121
|
|
|
97
122
|
After ALL waves complete:
|
|
98
123
|
1. Run full verification suite
|
|
99
124
|
2. Check all acceptance criteria for this phase's user stories
|
|
100
|
-
3. If
|
|
125
|
+
3. If verification fails, attempt to fix (max **3 attempts**):
|
|
126
|
+
- After attempt 1 fails: Print **"Verification failed. Attempting fix (1/3)..."**
|
|
127
|
+
- After attempt 2 fails: Print **"Verification failed. Attempting fix (2/3)..."**
|
|
128
|
+
- After attempt 3 fails: Print **"Verification failed after 3 attempts. STOP."** Print the errors and use AskUserQuestion:
|
|
129
|
+
- "Skip verification and continue"
|
|
130
|
+
- "Fix manually and retry"
|
|
131
|
+
- "Abort this phase"
|
|
132
|
+
- Do NOT loop further beyond 3 attempts.
|
|
101
133
|
|
|
102
134
|
## Step 5 — Commit
|
|
103
135
|
|
package/skills/flow-intro.md
CHANGED
|
@@ -14,28 +14,35 @@ Print this:
|
|
|
14
14
|
|
|
15
15
|
## Flow — Your Workflow System
|
|
16
16
|
|
|
17
|
-
Flow is
|
|
17
|
+
Flow is 6 commands that turn your specs into shipped code through agent teams. Each command feeds the next.
|
|
18
18
|
|
|
19
19
|
### The Lifecycle
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
/flow:
|
|
22
|
+
/flow:setup → /flow:spec → /flow:go (repeat) → /flow:done
|
|
23
23
|
↓
|
|
24
24
|
handoff prompt for next session
|
|
25
|
+
↓
|
|
26
|
+
/flow:milestone → next cycle
|
|
25
27
|
|
|
26
28
|
/flow:task ← standalone path for bug fixes, cleanup, small features (no PRD needed)
|
|
27
29
|
```
|
|
28
30
|
|
|
29
31
|
### Command by Command
|
|
30
32
|
|
|
31
|
-
**`/flow:
|
|
32
|
-
-
|
|
33
|
+
**`/flow:setup`** — Run once per project
|
|
34
|
+
- Asks you 4-5 questions (what is it, tech stack, verify commands, first milestone)
|
|
33
35
|
- Creates the scaffolding: `CLAUDE.md`, `.planning/STATE.md`, `.planning/ROADMAP.md`, `tasks/lessons.md`
|
|
34
|
-
-
|
|
36
|
+
- If project already set up, tells you to use `/flow:milestone` or `/flow:spec` instead
|
|
37
|
+
|
|
38
|
+
**`/flow:milestone`** — Run when starting a new milestone
|
|
39
|
+
- Archives the completed milestone + PRD
|
|
40
|
+
- Sets up fresh planning docs for the next milestone
|
|
41
|
+
- Guards against archiving milestones with incomplete phases
|
|
35
42
|
|
|
36
43
|
**`/flow:task`** — Run anytime for small work
|
|
37
44
|
- Bug fixes, cleanup, one-off features — anything that doesn't need a full PRD
|
|
38
|
-
- Works standalone without `/flow:
|
|
45
|
+
- Works standalone without `/flow:setup` — lowest friction entry to Flow
|
|
39
46
|
- Executes, verifies, commits, and logs to STATE.md (if it exists)
|
|
40
47
|
- Scope guard recommends `/flow:spec` if the task grows beyond 5 files or 3 layers
|
|
41
48
|
|
|
@@ -80,7 +87,7 @@ Flow is 5 commands that turn your specs into shipped code through agent teams. E
|
|
|
80
87
|
### Starting a Brand New Project
|
|
81
88
|
|
|
82
89
|
```
|
|
83
|
-
1. /flow:
|
|
90
|
+
1. /flow:setup ← scaffolds everything
|
|
84
91
|
2. /flow:spec ← interview → PRD
|
|
85
92
|
3. /flow:go ← phase 1
|
|
86
93
|
4. /flow:done ← wrap up
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow:milestone
|
|
3
|
+
description: Archive completed milestone and start a new one
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /flow:milestone — Start New Milestone
|
|
8
|
+
|
|
9
|
+
You are executing the `/flow:milestone` skill. This archives the current milestone and sets up a new one.
|
|
10
|
+
|
|
11
|
+
## Guard: Project Must Exist
|
|
12
|
+
|
|
13
|
+
Check if `.planning/STATE.md` exists:
|
|
14
|
+
- **If it does NOT exist** → Print: "No project found. Run `/flow:setup` first." and **STOP.**
|
|
15
|
+
- **If it exists** → Continue.
|
|
16
|
+
|
|
17
|
+
## Step 1: Read Context
|
|
18
|
+
|
|
19
|
+
Read `.planning/STATE.md` and `.planning/ROADMAP.md` to understand:
|
|
20
|
+
- What milestone just completed (or is completing)
|
|
21
|
+
- What version number to use next
|
|
22
|
+
- Current state of the project
|
|
23
|
+
|
|
24
|
+
## Step 2: Check for Pending Phases
|
|
25
|
+
|
|
26
|
+
Parse ROADMAP.md for the current milestone's phases:
|
|
27
|
+
- If any phases have status "Pending" or "In Progress" (not complete):
|
|
28
|
+
- Print: "Warning: The current milestone has incomplete phases:"
|
|
29
|
+
- List the pending/in-progress phases
|
|
30
|
+
- Use AskUserQuestion: "Archive this milestone anyway?" with options:
|
|
31
|
+
- "Yes — archive and move on"
|
|
32
|
+
- "No — finish current phases first"
|
|
33
|
+
- If the user says No → Print: "Run `/flow:go` to continue the current milestone." and **STOP.**
|
|
34
|
+
|
|
35
|
+
## Step 3: Ask Milestone Question
|
|
36
|
+
|
|
37
|
+
Use AskUserQuestion:
|
|
38
|
+
- "What's the goal of this new milestone?" (free text)
|
|
39
|
+
- "What should it be called?" (free text, or suggest a name based on context)
|
|
40
|
+
|
|
41
|
+
## Step 4: Archive Completed Milestone
|
|
42
|
+
|
|
43
|
+
1. Read current ROADMAP.md phase details for the completed milestone
|
|
44
|
+
2. Write them to `.planning/archive/milestones-vX.md` (where X is the completed version)
|
|
45
|
+
3. If `PRD.md` exists, move it to `.planning/archive/PRD-vX.md` (read it, write to archive, delete original)
|
|
46
|
+
4. In ROADMAP.md, replace the completed milestone's phase details with just the summary row (mark as "Complete")
|
|
47
|
+
|
|
48
|
+
## Step 5: Update Planning Docs
|
|
49
|
+
|
|
50
|
+
**ROADMAP.md:**
|
|
51
|
+
- Add new milestone row to the table
|
|
52
|
+
- Add new milestone section with goal and "Run `/flow:spec` to define phases"
|
|
53
|
+
|
|
54
|
+
**STATE.md:**
|
|
55
|
+
- Replace with fresh state for the new milestone
|
|
56
|
+
- Reset phase progress table
|
|
57
|
+
- Note the milestone transition in "What Was Built"
|
|
58
|
+
|
|
59
|
+
## Step 6: Print Completion Message
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Milestone [name] (v[X]) initialized.
|
|
63
|
+
- Archived: previous milestone details + PRD
|
|
64
|
+
- Updated: ROADMAP.md, STATE.md
|
|
65
|
+
|
|
66
|
+
Run `/flow:spec` to build the PRD for this milestone.
|
|
67
|
+
```
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: flow:
|
|
3
|
-
description:
|
|
2
|
+
name: flow:setup
|
|
3
|
+
description: Set up a new project with Flow planning scaffolding
|
|
4
4
|
user_invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# /flow:
|
|
7
|
+
# /flow:setup — Set Up New Project
|
|
8
8
|
|
|
9
|
-
You are executing the `/flow:
|
|
9
|
+
You are executing the `/flow:setup` skill. This sets up the planning scaffolding for a new project.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Guard: Already Initialized
|
|
12
12
|
|
|
13
|
-
Check if `.planning/STATE.md` exists:
|
|
14
|
-
- **If it
|
|
15
|
-
- **If it
|
|
13
|
+
Check if `.planning/STATE.md` already exists:
|
|
14
|
+
- **If it exists** → Print: "This project is already set up. Run `/flow:milestone` to start a new milestone, or `/flow:spec` to spec the current one." and **STOP. Do not overwrite.**
|
|
15
|
+
- **If it does NOT exist** → Continue with setup below.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
### Step 1: Ask Setup Questions
|
|
19
|
+
## Step 1: Ask Setup Questions
|
|
22
20
|
|
|
23
21
|
Use AskUserQuestion to gather project info. Ask these questions (you may combine into 2-3 AskUserQuestion calls):
|
|
24
22
|
|
|
@@ -47,7 +45,7 @@ Use AskUserQuestion to gather project info. Ask these questions (you may combine
|
|
|
47
45
|
- "Yes — scan and catalog existing code"
|
|
48
46
|
- "No — greenfield project"
|
|
49
47
|
|
|
50
|
-
|
|
48
|
+
## Step 2: Brownfield Scan (if requested)
|
|
51
49
|
|
|
52
50
|
If the user said yes to scanning:
|
|
53
51
|
1. Use Glob to find key directories: `src/`, `app/`, `lib/`, `components/`, `api/`, `pages/`, `utils/`, `types/`
|
|
@@ -55,7 +53,7 @@ If the user said yes to scanning:
|
|
|
55
53
|
3. Build a brief catalog of what exists (key components, patterns, data layer)
|
|
56
54
|
4. Include this in the CLAUDE.md Quick Context section
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
## Step 3: Create Project Files
|
|
59
57
|
|
|
60
58
|
Create these 5 files (create directories as needed):
|
|
61
59
|
|
|
@@ -76,7 +74,7 @@ Create these 5 files (create directories as needed):
|
|
|
76
74
|
| — | Run `/flow:spec` to define phases | — |
|
|
77
75
|
|
|
78
76
|
## What Was Built (This Session)
|
|
79
|
-
- Project initialized with `/flow:
|
|
77
|
+
- Project initialized with `/flow:setup`
|
|
80
78
|
- Created: CLAUDE.md, STATE.md, ROADMAP.md, tasks/lessons.md
|
|
81
79
|
|
|
82
80
|
## Key Decisions
|
|
@@ -159,7 +157,7 @@ Format: PATTERN → CAUSE → FIX → RULE
|
|
|
159
157
|
|
|
160
158
|
**`.planning/archive/`** — Create this empty directory (use `mkdir -p` via Bash).
|
|
161
159
|
|
|
162
|
-
|
|
160
|
+
## Step 4: Print Completion Message
|
|
163
161
|
|
|
164
162
|
```
|
|
165
163
|
Project initialized:
|
|
@@ -171,48 +169,3 @@ Project initialized:
|
|
|
171
169
|
|
|
172
170
|
Run `/flow:spec` to plan your first milestone.
|
|
173
171
|
```
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## New Milestone Mode
|
|
178
|
-
|
|
179
|
-
### Step 1: Read Context
|
|
180
|
-
|
|
181
|
-
Read `.planning/STATE.md` and `.planning/ROADMAP.md` to understand:
|
|
182
|
-
- What milestone just completed (or is completing)
|
|
183
|
-
- What version number to use next
|
|
184
|
-
- Current state of the project
|
|
185
|
-
|
|
186
|
-
### Step 2: Ask Milestone Question
|
|
187
|
-
|
|
188
|
-
Use AskUserQuestion:
|
|
189
|
-
- "What's the goal of this new milestone?" (free text)
|
|
190
|
-
- "What should it be called?" (free text, or suggest a name based on context)
|
|
191
|
-
|
|
192
|
-
### Step 3: Archive Completed Milestone
|
|
193
|
-
|
|
194
|
-
1. Read current ROADMAP.md phase details for the completed milestone
|
|
195
|
-
2. Write them to `.planning/archive/milestones-vX.md` (where X is the completed version)
|
|
196
|
-
3. If `PRD.md` exists, move it to `.planning/archive/PRD-vX.md` (read it, write to archive, delete original)
|
|
197
|
-
4. In ROADMAP.md, replace the completed milestone's phase details with just the summary row (mark as "Complete")
|
|
198
|
-
|
|
199
|
-
### Step 4: Update Planning Docs
|
|
200
|
-
|
|
201
|
-
**ROADMAP.md:**
|
|
202
|
-
- Add new milestone row to the table
|
|
203
|
-
- Add new milestone section with goal and "Run `/flow:spec` to define phases"
|
|
204
|
-
|
|
205
|
-
**STATE.md:**
|
|
206
|
-
- Replace with fresh state for the new milestone
|
|
207
|
-
- Reset phase progress table
|
|
208
|
-
- Note the milestone transition in "What Was Built"
|
|
209
|
-
|
|
210
|
-
### Step 5: Print Completion Message
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
Milestone [name] (v[X]) initialized.
|
|
214
|
-
- Archived: previous milestone details + PRD
|
|
215
|
-
- Updated: ROADMAP.md, STATE.md
|
|
216
|
-
|
|
217
|
-
Run `/flow:spec` to build the PRD for this milestone.
|
|
218
|
-
```
|
package/skills/flow-spec.md
CHANGED
|
@@ -16,7 +16,8 @@ You are executing the `/flow:spec` skill. This is the KEYSTONE skill of the flow
|
|
|
16
16
|
2. Read `CLAUDE.md` — understand project rules and tech stack
|
|
17
17
|
3. Read `PRD.md` if it exists — check for existing spec to build on
|
|
18
18
|
4. **Codebase scan** (brownfield projects):
|
|
19
|
-
- **
|
|
19
|
+
- **Exclusions:** NEVER scan these directories/files: `node_modules/`, `.git/`, `dist/`, `build/`, `.next/`, `__pycache__/`, `*.min.js`, `*.map`, `*.lock`. Use Glob with patterns like `src/**/*`, `app/**/*`, `lib/**/*` — never use bare `**/*` which includes generated files.
|
|
20
|
+
- **Size check first:** Use Glob with `src/**/*`, `app/**/*`, `lib/**/*`, `components/**/*` (excluding the above) to estimate relevant file count. If > 500 files, switch to focused mode (see below).
|
|
20
21
|
- **Standard mode (≤ 500 files):** Use Glob to find components, pages/routes, API endpoints, types, utilities, config files, database models. Use Grep for export patterns, route definitions, key function signatures. **Cap at 50 files sampled** — prioritize entry points, config, and type definitions.
|
|
21
22
|
- **Focused mode (> 500 files):** Scan ONLY: package.json/config files, entry points (index.ts, main.ts, app.ts), route definitions, database schema/models, and type definition files. Skip component trees, test files, and generated code entirely.
|
|
22
23
|
- Build internal summary: "Here's what exists that we can reuse"
|
|
@@ -114,6 +115,20 @@ Cover these areas thoroughly. There are no "rounds" — move fluidly between are
|
|
|
114
115
|
|
|
115
116
|
## Phase 3 — PRD Generation
|
|
116
117
|
|
|
118
|
+
### Minimum Viable PRD Check
|
|
119
|
+
|
|
120
|
+
Before generating the final PRD, validate:
|
|
121
|
+
- At least **3 user stories** with acceptance criteria have been discussed
|
|
122
|
+
- At least **1 implementation phase** has been defined
|
|
123
|
+
- At least **1 verification command** has been specified
|
|
124
|
+
|
|
125
|
+
If any check fails, print what's missing and use AskUserQuestion:
|
|
126
|
+
- "The PRD is thin — [missing items]. Want to continue the interview to flesh it out, or finalize as-is?"
|
|
127
|
+
- "Continue interview" — return to Phase 2 and probe the missing areas
|
|
128
|
+
- "Finalize as-is" — proceed with what we have
|
|
129
|
+
|
|
130
|
+
### Write PRD
|
|
131
|
+
|
|
117
132
|
Write `PRD.md` to the project root with this EXACT structure:
|
|
118
133
|
|
|
119
134
|
```markdown
|
package/skills/flow-status.md
CHANGED
|
@@ -17,7 +17,7 @@ Read ALL of the following in parallel:
|
|
|
17
17
|
- Count lessons in `tasks/lessons.md` (if exists)
|
|
18
18
|
|
|
19
19
|
IF both STATE.md AND ROADMAP.md are missing:
|
|
20
|
-
- Print: "No flow project found. Run `/flow:
|
|
20
|
+
- Print: "No flow project found. Run `/flow:setup` to set up, or `/flow:task` for a quick standalone fix."
|
|
21
21
|
- STOP here.
|
|
22
22
|
|
|
23
23
|
IF only one file exists, continue with what's available.
|
|
@@ -47,7 +47,7 @@ Use this explicit decision tree:
|
|
|
47
47
|
|
|
48
48
|
**IF all phases are complete:**
|
|
49
49
|
→ Primary: `/flow:done` to finalize this milestone
|
|
50
|
-
→ Then: `/flow:
|
|
50
|
+
→ Then: `/flow:milestone` to start the next milestone
|
|
51
51
|
→ Alt: `/flow:task` for quick fixes or cleanup (no PRD needed)
|
|
52
52
|
|
|
53
53
|
**IF no phases exist in ROADMAP (milestone defined but not planned):**
|
|
@@ -65,7 +65,7 @@ Lessons: [N] rules
|
|
|
65
65
|
[routing recommendations from Step 3]
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
Adapt the block based on available information. If STATE.md is missing, omit "Last session". If ROADMAP.md is missing, omit phase counts and say "Run /flow:
|
|
68
|
+
Adapt the block based on available information. If STATE.md is missing, omit "Last session". If ROADMAP.md is missing, omit phase counts and say "Run /flow:setup to set up tracking."
|
|
69
69
|
|
|
70
70
|
## Step 5 — No File Writes
|
|
71
71
|
|
package/skills/flow-task.md
CHANGED
|
@@ -11,7 +11,7 @@ You are executing the `/flow:task` skill. This is for small, focused work — bu
|
|
|
11
11
|
RULES:
|
|
12
12
|
- NO AGENT TEAMS. NO PRD. Single execution context.
|
|
13
13
|
- Exception: ONE Task agent for an isolated subtask to prevent context bloat.
|
|
14
|
-
- This skill MUST work without `/flow:
|
|
14
|
+
- This skill MUST work without `/flow:setup`. Missing planning files are fine.
|
|
15
15
|
|
|
16
16
|
## Step 1 — Context Load
|
|
17
17
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
| — | Run `/flow:spec` to define phases | — |
|
|
14
14
|
|
|
15
15
|
## What Was Built (This Session)
|
|
16
|
-
- Project initialized with `/flow:
|
|
16
|
+
- Project initialized with `/flow:setup`
|
|
17
17
|
- Created: CLAUDE.md, STATE.md, ROADMAP.md, tasks/lessons.md
|
|
18
18
|
|
|
19
19
|
## Key Decisions
|