flow-cc 0.8.0 → 0.8.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 +18 -0
- package/VERSION +1 -1
- package/package.json +1 -1
- package/skills/flow-done.md +101 -132
- package/skills/flow-go.md +68 -129
- package/skills/flow-intro.md +12 -18
- package/skills/flow-setup.md +45 -87
- package/skills/flow-spec.md +79 -204
- package/skills/flow-status.md +24 -40
- package/skills/flow-task.md +45 -85
- package/skills/flow-triage.md +25 -31
package/skills/flow-spec.md
CHANGED
|
@@ -10,189 +10,107 @@ You are executing the `/flow:spec` skill. This is the KEYSTONE skill of the flow
|
|
|
10
10
|
|
|
11
11
|
**Interview mode:** Always thorough by default. The user can say "done", "finalize", "that's enough", or "move on" at ANY time to wrap up early. Respect their signal and finalize with whatever depth has been achieved.
|
|
12
12
|
|
|
13
|
-
**
|
|
14
|
-
|
|
15
|
-
**Skill boundary:** You are inside the `/flow:*` workflow. NEVER invoke, suggest, or reference skills from other workflow systems (`/lisa:*`, `/gsd:*`, `/superpowers:*`, etc.). Only suggest `/flow:*` commands as next steps. Do NOT use the Skill tool to call any non-flow skill. If the user needs a different workflow, they will invoke it themselves.
|
|
13
|
+
**Constraints:** Do NOT use with plan mode (prevents file writes). Only use `/flow:*` commands — never invoke `/lisa:*`, `/gsd:*`, `/superpowers:*` or other skills.
|
|
16
14
|
|
|
17
15
|
## Phase 1 — Context Gathering
|
|
18
16
|
|
|
19
|
-
1. Read `.planning/STATE.md
|
|
20
|
-
2.
|
|
21
|
-
3.
|
|
22
|
-
- List `.planning/prds/` directory (if it exists) for existing PRD files
|
|
23
|
-
- Also check for legacy `PRD.md` at project root (backward compat)
|
|
24
|
-
- If a PRD exists for the target project, note it for resume/extend flow
|
|
25
|
-
4. **Project Targeting** — determine which project this PRD targets before scanning the codebase:
|
|
26
|
-
|
|
27
|
-
1. **If the user passed an argument** (e.g., `/flow:spec v3: Payments`) — match against ROADMAP.md projects. If no match, print available projects and ask which one.
|
|
17
|
+
1. Read `.planning/STATE.md`, `.planning/ROADMAP.md`, `CLAUDE.md`
|
|
18
|
+
2. Check for existing PRD in `.planning/prds/` (or legacy root `PRD.md`)
|
|
19
|
+
3. **Project Targeting:**
|
|
28
20
|
|
|
29
|
-
|
|
21
|
+
1. **If argument provided** (e.g., `/flow:spec v3: Payments`) — match against ROADMAP.md projects. If no match, print available projects and ask.
|
|
30
22
|
|
|
31
|
-
|
|
23
|
+
2. **If no argument** — list incomplete projects from ROADMAP.md. Use AskUserQuestion to let the user pick. Pre-select the next unspecced project. Always show the picker.
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
- **If PRD exists** → Use AskUserQuestion: "A PRD already exists for this project at `.planning/prds/{slug}.md`. What would you like to do?"
|
|
35
|
-
- "Resume editing" — load the existing PRD and continue the interview from where it left off
|
|
36
|
-
- "Start fresh" — delete the existing PRD and start a new interview
|
|
37
|
-
- "Pick a different project" — show available projects
|
|
38
|
-
- **If no PRD exists** → Proceed with a fresh interview
|
|
25
|
+
3. **Derive PRD slug:** Lowercase project name, replace spaces/special chars with hyphens, collapse consecutive hyphens. PRD path: `.planning/prds/{slug}.md`.
|
|
39
26
|
|
|
40
|
-
|
|
27
|
+
4. **If PRD exists at that path** → AskUserQuestion: "A PRD already exists at `.planning/prds/{slug}.md`. What would you like to do?" Options: "Resume editing", "Start fresh", "Pick a different project".
|
|
28
|
+
**If no PRD** → fresh interview.
|
|
41
29
|
|
|
42
|
-
5. **
|
|
30
|
+
5. **Future project detection:** If target project != STATE.md current project, note it — STATE.md won't be updated. Print: "Speccing future project [name]. STATE.md will not be updated."
|
|
43
31
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
| **Data Layer & APIs** | Database, APIs, types | `api/`, `models/`, `types/`, `schemas/`, ORM definitions, query functions |
|
|
32
|
+
4. **Codebase scan** (brownfield) — spawn **3 parallel Explore subagents** via Task tool:
|
|
33
|
+
- **Structure & Config** — project skeleton, build tooling, entry points, CI/CD
|
|
34
|
+
- **UI, Pages & Routes** — components, pages, routing, layouts, navigation
|
|
35
|
+
- **Data Layer & APIs** — database, APIs, types, schemas, ORM, queries
|
|
49
36
|
|
|
50
|
-
|
|
51
|
-
- **Exclusions:** NEVER scan `node_modules/`, `.git/`, `dist/`, `build/`, `.next/`, `__pycache__/`, `*.min.js`, `*.map`, `*.lock`
|
|
52
|
-
- **Size-adaptive scanning:** If the agent's domain has >200 files, switch to focused mode (entry points, config, and type definitions only)
|
|
53
|
-
- **20-file sample cap per agent** (60 total across all 3)
|
|
54
|
-
- **15-line summary max** — structured as: key files found, patterns observed, reusable code/components, notes
|
|
55
|
-
- **Explicit instruction:** Do NOT return raw file contents — return only structured summaries
|
|
37
|
+
All agents: exclude `node_modules/`, `.git/`, `dist/`, `build/`, `.next/`, `__pycache__/`, `*.min.js`, `*.map`, `*.lock`. If domain has >200 files, switch to focused mode (entry points, config, types only). 20-file cap per agent. Return 15-line structured summary only — no raw file contents.
|
|
56
38
|
|
|
57
|
-
|
|
39
|
+
5. **Assemble summaries:** Collect 3 agent summaries (~45 lines total). Print: "Here's what I found in the codebase: [key components, patterns, data layer]. Starting the spec interview."
|
|
58
40
|
|
|
59
41
|
## Phase 2 — Adaptive Interview
|
|
60
42
|
|
|
61
|
-
###
|
|
43
|
+
### Critical Rules
|
|
62
44
|
|
|
63
|
-
1. **USE AskUserQuestion FOR ALL QUESTIONS.**
|
|
45
|
+
1. **USE AskUserQuestion FOR ALL QUESTIONS.** Provide 2-4 concrete options per question based on Phase 1 context.
|
|
46
|
+
2. **ASK NON-OBVIOUS QUESTIONS.** Probe deeper — edge cases, failure modes, downstream effects, minimum viable versions. Don't ask what you can infer from the codebase.
|
|
47
|
+
3. **CONTINUE UNTIL THE USER SAYS STOP.** A thorough interview is 15-30 questions. After each answer, immediately ask the next question.
|
|
48
|
+
4. **MAINTAIN A RUNNING DRAFT.** Every 2-3 questions, update `.planning/prds/{slug}.md` with what you've learned (create dir if needed). Print: "Updated PRD draft — added [brief summary]."
|
|
49
|
+
5. **BE ADAPTIVE.** Base next question on previous answer. Follow interesting threads rather than robotically moving through categories.
|
|
64
50
|
|
|
65
|
-
|
|
66
|
-
- "I see you have [existing pattern]. Should we extend that or build a new approach?"
|
|
67
|
-
- "What happens when [edge case] occurs?"
|
|
68
|
-
- "You mentioned [X] — does that mean [Y] is also needed, or is that separate?"
|
|
69
|
-
- "What's the failure mode here? What does the user see when things go wrong?"
|
|
70
|
-
- "Who else touches this data/workflow? Any downstream effects?"
|
|
71
|
-
- "What's the minimum version of this that would be useful?"
|
|
51
|
+
### First-Principles Mode (optional)
|
|
72
52
|
|
|
73
|
-
|
|
53
|
+
Trigger: user says "challenge this", "first principles", or "push back". Ask 3-5 challenges first: Why build this? Simpler 80% alternative? What assumptions might be wrong? Then proceed to coverage areas.
|
|
74
54
|
|
|
75
|
-
|
|
55
|
+
### Coverage Areas
|
|
76
56
|
|
|
77
|
-
|
|
57
|
+
Cover these fluidly — no rigid rounds. Circle back when later answers reveal new info.
|
|
78
58
|
|
|
79
|
-
|
|
59
|
+
**1. Scope Definition** — What's in/out of scope? MVP vs full vision? Sacred code?
|
|
80
60
|
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
- "Is
|
|
84
|
-
-
|
|
85
|
-
- "Who is this really for, and have they asked for it?"
|
|
86
|
-
- "What would you cut if you had half the time?"
|
|
61
|
+
**2. User Stories (CRITICAL — most time here)** — Walk through key workflows step by step.
|
|
62
|
+
- **Story-splitting:** If a story has >3-4 acceptance criteria, split it. Each story independently deliverable.
|
|
63
|
+
- **Anti-vagueness:** BAD: "Works correctly", "Is fast". GOOD: "Returns 200 with JSON body", "Page renders in <200ms on 3G". Push back on vague criteria: "How would you specifically test that?"
|
|
64
|
+
- **Verification per story:** Each must have at least one concrete verification step.
|
|
87
65
|
|
|
88
|
-
|
|
66
|
+
**3. Technical Design** — DB changes, API endpoints, new/modified files, reusable code, data flow, parallelization opportunities.
|
|
89
67
|
|
|
90
|
-
|
|
68
|
+
**4. User Experience** — Key flows, edge cases (empty/error/loading states), accessibility, responsive behavior.
|
|
69
|
+
|
|
70
|
+
**5. Trade-offs & Constraints** — Performance vs simplicity, security, third-party deps, acceptable tech debt.
|
|
71
|
+
|
|
72
|
+
**6. Implementation Milestones** — Sequential breakdown, parallelization within milestones, critical path, cuttable milestones.
|
|
73
|
+
- **Assignability check:** Probe which milestones could go to a second developer. Evaluate dependency chains, domain independence, context requirements. Add assignability notes per milestone.
|
|
74
|
+
|
|
75
|
+
**7. Verification & Feedback Loops** — Build verification commands, per-milestone "done" criteria, integration testing, monitoring.
|
|
91
76
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
**1. Scope Definition**
|
|
95
|
-
- What features are IN scope for this project? What's the MVP vs. the full vision?
|
|
96
|
-
- What is explicitly OUT of scope / deferred to a future project?
|
|
97
|
-
- Is there any code that is sacred (must NOT be touched)? Why?
|
|
98
|
-
- What existing code/features should we ignore entirely (not break, not improve, not touch)?
|
|
99
|
-
|
|
100
|
-
**2. User Stories (CRITICAL — spend the most time here)**
|
|
101
|
-
- What does the user actually DO? Walk through the key workflows step by step.
|
|
102
|
-
- What should they see at each step? What feedback do they get?
|
|
103
|
-
- Frame as: "As [role], I want [action], so that [outcome]"
|
|
104
|
-
- **Story-splitting:** If a story has more than 3-4 acceptance criteria, split it into smaller stories. Each story should be independently deliverable.
|
|
105
|
-
- **Anti-vagueness enforcement:**
|
|
106
|
-
- BAD acceptance criteria: "Works correctly", "Is fast", "Handles errors well", "Looks good"
|
|
107
|
-
- GOOD acceptance criteria: "Returns 200 with JSON body for valid input", "Shows error toast with message for invalid email format", "Page renders in < 200ms on 3G", "Matches Figma comp within 4px"
|
|
108
|
-
- If the user gives vague criteria, push back: "How would you specifically test that? What would you check?"
|
|
109
|
-
- **Verification per story:** Each story must have at least one concrete verification step (a command to run, a page to visit, a state to check)
|
|
110
|
-
|
|
111
|
-
**3. Technical Design**
|
|
112
|
-
- What database changes are needed? (new tables, columns, indexes, migrations)
|
|
113
|
-
- What API endpoints? (method, path, request/response shape, auth requirements)
|
|
114
|
-
- What new files need to be created? What existing files get modified?
|
|
115
|
-
- What existing utilities/components/DAL queries should be reused (not rebuilt)?
|
|
116
|
-
- What's the data flow? Where does data originate, transform, and render?
|
|
117
|
-
- Any wave-parallelization opportunities? (independent agents building separate files)
|
|
118
|
-
|
|
119
|
-
**4. User Experience**
|
|
120
|
-
- What are the key user flows? Walk through click-by-click.
|
|
121
|
-
- What edge cases exist? (empty states, error states, loading states, partial data)
|
|
122
|
-
- Accessibility requirements? (keyboard navigation, screen readers, ARIA labels)
|
|
123
|
-
- Mobile/responsive behavior? (breakpoints, touch targets, layout shifts)
|
|
124
|
-
- What does the user see while waiting? (loading spinners, skeletons, optimistic updates)
|
|
125
|
-
|
|
126
|
-
**5. Trade-offs & Constraints**
|
|
127
|
-
- Performance vs. simplicity? What's good enough for v1?
|
|
128
|
-
- Any security considerations? (auth, data access, input validation)
|
|
129
|
-
- Any third-party dependencies or integrations?
|
|
130
|
-
- What technical debt is acceptable for now vs. must be done right?
|
|
131
|
-
- Any browser/device support requirements?
|
|
132
|
-
|
|
133
|
-
**6. Implementation Milestones**
|
|
134
|
-
- How should this break into sequential milestones?
|
|
135
|
-
- What can be parallelized within each milestone? (wave-based agent structure)
|
|
136
|
-
- What's the critical path — what must be built first?
|
|
137
|
-
- What's the minimum viable first milestone? (what gives us something testable fastest?)
|
|
138
|
-
- Any milestones that could be cut if time runs short?
|
|
139
|
-
- **Assignability check:** After defining milestones, probe which are independent enough for a different developer:
|
|
140
|
-
- "Which of these milestones could a second developer work on independently?"
|
|
141
|
-
- Evaluate each milestone for: dependency chains (does it need output from another milestone?), domain independence (is it a separate concern?), context requirements (does it need deep codebase familiarity?), onboarding suitability (could a newer dev handle it?)
|
|
142
|
-
- Add assignability notes to each milestone, e.g., "Milestone 3 is independent — good for either dev" or "Milestone 2 depends on Milestone 1 — same dev"
|
|
143
|
-
|
|
144
|
-
**7. Verification & Feedback Loops**
|
|
145
|
-
- What commands verify the build works? (`tsc`, `biome`, test suite)
|
|
146
|
-
- What does "done" look like for each milestone? How do we know it worked?
|
|
147
|
-
- Are there integration points that need end-to-end testing?
|
|
148
|
-
- What should we check after each milestone before moving to the next?
|
|
149
|
-
- Any monitoring or logging needed to confirm production behavior?
|
|
150
|
-
|
|
151
|
-
**User signals done:** If the user says "done", "finalize", "that's enough", "ship it", or similar — immediately stop interviewing and go to Phase 3. Finalize the PRD with whatever depth has been achieved.
|
|
77
|
+
**User signals done:** If user says "done"/"finalize"/"ship it" — immediately go to Phase 3.
|
|
152
78
|
|
|
153
79
|
## Phase 3 — PRD Generation
|
|
154
80
|
|
|
155
81
|
### Minimum Viable PRD Check
|
|
156
82
|
|
|
157
|
-
|
|
158
|
-
- At least **3 user stories** with acceptance criteria have been discussed
|
|
159
|
-
- At least **1 implementation milestone** has been defined
|
|
160
|
-
- At least **1 verification command** has been specified
|
|
161
|
-
|
|
162
|
-
If any check fails, print what's missing and use AskUserQuestion:
|
|
163
|
-
- "The PRD is thin — [missing items]. Want to continue the interview to flesh it out, or finalize as-is?"
|
|
164
|
-
- "Continue interview" — return to Phase 2 and probe the missing areas
|
|
165
|
-
- "Finalize as-is" — proceed with what we have
|
|
83
|
+
Validate: at least **3 user stories** with acceptance criteria, **1 milestone**, **1 verification command**. If missing, AskUserQuestion: "Continue interview" or "Finalize as-is".
|
|
166
84
|
|
|
167
85
|
### Write PRD
|
|
168
86
|
|
|
169
|
-
Write
|
|
87
|
+
Write to `.planning/prds/{slug}.md` (create dir if needed) with this structure:
|
|
170
88
|
|
|
171
89
|
```markdown
|
|
172
90
|
# [Project Name] — Specification
|
|
173
91
|
|
|
174
|
-
**Project:** [
|
|
92
|
+
**Project:** [name]
|
|
175
93
|
**Status:** Ready for execution
|
|
176
94
|
**Branch:** feat/{project-slug}
|
|
177
|
-
**Created:** [
|
|
178
|
-
**Assigned To:** [developer
|
|
95
|
+
**Created:** [date]
|
|
96
|
+
**Assigned To:** [developer or "unassigned"]
|
|
179
97
|
|
|
180
98
|
## Overview
|
|
181
|
-
[One paragraph summary
|
|
99
|
+
[One paragraph summary]
|
|
182
100
|
|
|
183
101
|
## Problem Statement
|
|
184
|
-
[Why this work exists
|
|
102
|
+
[Why this work exists]
|
|
185
103
|
|
|
186
104
|
## Scope
|
|
187
105
|
|
|
188
106
|
### In Scope
|
|
189
|
-
- [
|
|
107
|
+
- [items]
|
|
190
108
|
|
|
191
109
|
### Out of Scope
|
|
192
|
-
- [
|
|
110
|
+
- [deferred items]
|
|
193
111
|
|
|
194
112
|
### Sacred / Do NOT Touch
|
|
195
|
-
- [
|
|
113
|
+
- [protected code paths with reasons]
|
|
196
114
|
|
|
197
115
|
## User Stories
|
|
198
116
|
|
|
@@ -200,110 +118,67 @@ Write the PRD to `.planning/prds/{slug}.md` (create `.planning/prds/` directory
|
|
|
200
118
|
**Description:** As [role], I want [action], so that [outcome].
|
|
201
119
|
**Acceptance Criteria:**
|
|
202
120
|
- [ ] Specific, testable requirement (names actual functions/components)
|
|
203
|
-
- [ ] Another requirement
|
|
204
121
|
- [ ] [Verification command] passes
|
|
205
122
|
|
|
206
|
-
|
|
207
|
-
...
|
|
123
|
+
(Continue US-2, US-3, etc.)
|
|
208
124
|
|
|
209
125
|
## Technical Design
|
|
210
126
|
|
|
211
|
-
|
|
212
|
-
[SQL DDL or schema description, with indexes]
|
|
213
|
-
|
|
214
|
-
### New API Endpoints
|
|
215
|
-
[Method + path + request/response shape for each]
|
|
216
|
-
|
|
217
|
-
### New Files to Create
|
|
218
|
-
[Grouped by milestone. Absolute paths with one-line descriptions]
|
|
219
|
-
|
|
220
|
-
### Existing Files to Modify
|
|
221
|
-
[Paths + what changes in each]
|
|
222
|
-
|
|
223
|
-
### Key Existing Code (DO NOT recreate — use as-is)
|
|
224
|
-
[Functions, utilities, DAL queries, components that agents should import/reuse]
|
|
127
|
+
Subsections: New Database Tables, New API Endpoints, New Files to Create (grouped by milestone), Existing Files to Modify, Key Existing Code (DO NOT recreate — use as-is).
|
|
225
128
|
|
|
226
129
|
## Implementation Milestones
|
|
227
130
|
|
|
228
131
|
### Milestone 1: [Name]
|
|
229
|
-
**Assigned To:** [developer
|
|
132
|
+
**Assigned To:** [developer or "unassigned"]
|
|
230
133
|
**Goal:** [One sentence]
|
|
231
134
|
|
|
232
135
|
**Wave 1 — [Theme] (N agents parallel):**
|
|
233
|
-
1. agent-name: Creates
|
|
234
|
-
2. agent-name:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
**Verification:** [Exact commands to run]
|
|
244
|
-
**Acceptance:** US-1 criteria [list which], US-2 criteria [list which]
|
|
245
|
-
|
|
246
|
-
### Milestone 2: [Name]
|
|
247
|
-
**Assigned To:** [developer name or "unassigned"]
|
|
248
|
-
...
|
|
249
|
-
|
|
250
|
-
## Execution Rules
|
|
251
|
-
1. DELEGATE EVERYTHING. Lead context is sacred — do not read implementation files into it.
|
|
252
|
-
2. Verify after every milestone: [verification commands from CLAUDE.md]
|
|
253
|
-
3. Atomic commits after each agent's work lands
|
|
254
|
-
4. Never `git add .` — stage specific files only
|
|
255
|
-
5. Read `tasks/lessons.md` before spawning agents — inject relevant lessons into agent prompts
|
|
256
|
-
|
|
257
|
-
## Definition of Done
|
|
258
|
-
- [ ] All user story acceptance criteria pass
|
|
259
|
-
- [ ] All milestones verified with [verification commands]
|
|
260
|
-
- [ ] Branch pushed and PR opened
|
|
261
|
-
- [ ] STATE.md and ROADMAP.md updated
|
|
136
|
+
1. agent-name: Creates/modifies files — [what it does]
|
|
137
|
+
2. agent-name: Creates/modifies files — [what changes]
|
|
138
|
+
|
|
139
|
+
(Continue waves as needed)
|
|
140
|
+
|
|
141
|
+
**Verification:** [Exact commands]
|
|
142
|
+
**Acceptance:** [Which US criteria this covers]
|
|
143
|
+
|
|
144
|
+
(Continue Milestone 2, etc.)
|
|
262
145
|
```
|
|
263
146
|
|
|
264
147
|
## Phase 4 — Post-PRD Updates
|
|
265
148
|
|
|
266
|
-
After writing the PRD
|
|
149
|
+
After writing the PRD:
|
|
267
150
|
|
|
268
|
-
1. **Update ROADMAP.md:** Add milestone breakdown under the
|
|
151
|
+
1. **Update ROADMAP.md:** Add milestone breakdown under the project section. Each milestone gets status "Pending".
|
|
269
152
|
|
|
270
|
-
2. **Update STATE.md** (current project only):
|
|
271
|
-
- Set current milestone to "Milestone 1 — ready for `/flow:go`"
|
|
272
|
-
- Set "Active PRD" to `.planning/prds/{slug}.md`
|
|
273
|
-
- Update "Next Actions" to reference the first milestone
|
|
274
|
-
- **Skip this step if speccing a future project** — STATE.md stays pointing at the current project. Print: "PRD written to `.planning/prds/{slug}.md`. STATE.md not updated (future project)."
|
|
153
|
+
2. **Update STATE.md** (current project only): Set milestone to "Milestone 1 — ready for `/flow:go`", set "Active PRD" path, update "Next Actions". **Skip if speccing a future project** — print: "PRD written. STATE.md not updated (future project)."
|
|
275
154
|
|
|
276
155
|
3. **Generate Milestone 1 handoff prompt:**
|
|
277
156
|
```
|
|
278
|
-
Milestone 1: [Name] — [
|
|
279
|
-
[One sentence of context
|
|
157
|
+
Milestone 1: [Name] — [description]. Read STATE.md, ROADMAP.md, and .planning/prds/{slug}.md.
|
|
158
|
+
[One sentence of context].
|
|
280
159
|
```
|
|
281
160
|
|
|
282
161
|
4. **Linear Integration (optional):**
|
|
283
|
-
- Check if Linear MCP tools are available (
|
|
284
|
-
- If available: search for
|
|
285
|
-
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
- Create one **Linear issue** per user story or task (NOT per milestone):
|
|
289
|
-
`mcp__linear__create_issue` assigned to the appropriate milestone
|
|
290
|
-
- If not found: use AskUserQuestion to ask user to pick a project or skip
|
|
291
|
-
- If Linear MCP not available: skip silently
|
|
162
|
+
- Check if Linear MCP tools are available (`mcp__linear__list_teams`)
|
|
163
|
+
- If available: search for matching Linear project (`mcp__linear__list_projects`)
|
|
164
|
+
- Found: create one **Linear milestone** per implementation milestone, one **Linear issue** per user story/task (not per milestone)
|
|
165
|
+
- Not found: AskUserQuestion to pick project or skip
|
|
166
|
+
- If MCP unavailable: skip silently
|
|
292
167
|
- Print: "[N] milestones + [M] issues created under project [name]"
|
|
293
168
|
|
|
294
|
-
5. Print
|
|
169
|
+
5. Print handoff prompt in a fenced code block.
|
|
295
170
|
|
|
296
171
|
6. Print: "PRD ready at `.planning/prds/{slug}.md`. Run `/flow:go` to execute Milestone 1, or review the PRD first."
|
|
297
172
|
|
|
298
173
|
## Quality Gates
|
|
299
174
|
|
|
300
|
-
Before finalizing, self-check
|
|
175
|
+
Before finalizing, self-check:
|
|
301
176
|
- [ ] Every milestone has wave-based agent assignments with explicit file lists
|
|
302
177
|
- [ ] Every user story has checkbox acceptance criteria that are testable
|
|
303
178
|
- [ ] Every milestone has verification commands
|
|
304
|
-
- [ ] "Key Existing Code"
|
|
305
|
-
- [ ] PRD
|
|
306
|
-
- [ ] No milestone has
|
|
307
|
-
- [ ] Sacred code section is populated (even if
|
|
179
|
+
- [ ] "Key Existing Code" references actual files/functions from the codebase scan
|
|
180
|
+
- [ ] PRD written to `.planning/prds/{slug}.md`, NOT root `PRD.md`
|
|
181
|
+
- [ ] No milestone has >5 agents in a single wave
|
|
182
|
+
- [ ] Sacred code section is populated (even if "None identified")
|
|
308
183
|
|
|
309
184
|
If any gate fails, fix the PRD before presenting it.
|
package/skills/flow-status.md
CHANGED
|
@@ -8,19 +8,18 @@ user_invocable: true
|
|
|
8
8
|
|
|
9
9
|
You are executing the `/flow:status` skill. This is a READ-ONLY operation. Do NOT modify any files.
|
|
10
10
|
|
|
11
|
-
**Skill boundary:**
|
|
11
|
+
**Skill boundary:** Only use `/flow:*` commands. Never invoke or suggest `/lisa:*`, `/gsd:*`, `/superpowers:*` or any non-flow skill.
|
|
12
12
|
|
|
13
13
|
## Step 1 — Read Context Files
|
|
14
14
|
|
|
15
|
-
Read ALL
|
|
15
|
+
Read ALL in parallel:
|
|
16
16
|
- `.planning/STATE.md`
|
|
17
17
|
- `.planning/ROADMAP.md`
|
|
18
|
-
- List `.planning/prds/`
|
|
19
|
-
-
|
|
20
|
-
- Read the active PRD (from STATE.md "Active PRD" field) to get milestone details
|
|
18
|
+
- List `.planning/prds/` for all PRD files (or legacy root `PRD.md`)
|
|
19
|
+
- Read the active PRD (from STATE.md "Active PRD" field) for milestone details
|
|
21
20
|
- Count lessons in `tasks/lessons.md` (if exists)
|
|
22
|
-
- `.claude/memory/session.md` (if exists)
|
|
23
|
-
- Run `git config user.name`
|
|
21
|
+
- `.claude/memory/session.md` (if exists)
|
|
22
|
+
- Run `git config user.name` for developer identity
|
|
24
23
|
|
|
25
24
|
IF both STATE.md AND ROADMAP.md are missing:
|
|
26
25
|
- Print: "No flow project found. Run `/flow:setup` to set up, or `/flow:task` for a quick standalone fix."
|
|
@@ -31,71 +30,56 @@ IF only one file exists, continue with what's available.
|
|
|
31
30
|
## Step 2 — Analyze Milestone Status
|
|
32
31
|
|
|
33
32
|
Parse ROADMAP.md to determine milestone progress:
|
|
34
|
-
- Count total milestones
|
|
35
|
-
-
|
|
36
|
-
- Count milestones marked "Pending", "In Progress", or not yet started
|
|
37
|
-
- Identify the FIRST milestone that is NOT complete — this is the **next milestone**
|
|
33
|
+
- Count total, complete (`Done`/`Complete`/`[x]`/`✓`), and pending/in-progress milestones
|
|
34
|
+
- Identify the FIRST incomplete milestone — this is the **next milestone**
|
|
38
35
|
|
|
39
|
-
RULE: Determine
|
|
36
|
+
RULE: Determine next action from ROADMAP.md milestone statuses, NOT from STATE.md "Next Actions" text. STATE.md may be stale. ROADMAP.md is the source of truth.
|
|
40
37
|
|
|
41
38
|
## Step 3 — Determine Routing
|
|
42
39
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
**IF pending milestones exist in ROADMAP AND a PRD exists for the current project (in `.planning/prds/` or legacy root):**
|
|
40
|
+
**IF pending milestones exist AND a PRD exists (in `.planning/prds/` or legacy root):**
|
|
46
41
|
→ Primary: `/flow:go` to execute Milestone [N]: [name]
|
|
47
|
-
→ Alt: `/flow:done` if wrapping up
|
|
48
|
-
→ Alt: `/flow:task` for quick fixes
|
|
42
|
+
→ Alt: `/flow:done` if wrapping up
|
|
43
|
+
→ Alt: `/flow:task` for quick fixes (no PRD needed)
|
|
49
44
|
|
|
50
|
-
**IF pending milestones exist
|
|
45
|
+
**IF pending milestones exist BUT no PRD exists:**
|
|
51
46
|
→ `/flow:spec` — select a project and build its execution plan
|
|
52
|
-
→ `/flow:task` — for quick fixes
|
|
47
|
+
→ `/flow:task` — for quick fixes (no PRD needed)
|
|
53
48
|
|
|
54
|
-
**IF all milestones
|
|
55
|
-
→ Primary: `/flow:done` to finalize
|
|
56
|
-
→ Alt: `/flow:task` for quick fixes
|
|
49
|
+
**IF all milestones complete AND a "Planned" project exists in ROADMAP.md:**
|
|
50
|
+
→ Primary: `/flow:done` to finalize (will auto-transition to next project)
|
|
51
|
+
→ Alt: `/flow:task` for quick fixes (no PRD needed)
|
|
57
52
|
|
|
58
|
-
**IF all milestones
|
|
59
|
-
→ Primary: `/flow:done` to finalize
|
|
53
|
+
**IF all milestones complete AND no next project:**
|
|
54
|
+
→ Primary: `/flow:done` to finalize
|
|
60
55
|
→ Then: `/flow:triage` to add the next project
|
|
61
|
-
→ Alt: `/flow:task` for quick fixes
|
|
56
|
+
→ Alt: `/flow:task` for quick fixes (no PRD needed)
|
|
62
57
|
|
|
63
58
|
**IF no milestones exist in ROADMAP (project defined but not planned):**
|
|
64
59
|
→ `/flow:spec` — select a project and build its execution plan
|
|
65
|
-
→ `/flow:task` — for quick fixes
|
|
60
|
+
→ `/flow:task` — for quick fixes (no PRD needed)
|
|
66
61
|
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
→ /flow:spec — select a project and build its execution plan
|
|
70
|
-
```
|
|
71
|
-
Do NOT append a project name, do NOT say "for v16" or "to plan v16" or any variation. The project picker inside /flow:spec handles selection. Adding a name here confuses users who may have multiple projects in flight across terminals. Print the line EXACTLY as shown above — no modifications.
|
|
62
|
+
When suggesting /flow:spec, do NOT append a project name — the project picker inside /flow:spec handles selection.
|
|
72
63
|
|
|
73
64
|
## Step 4 — Print Status Block
|
|
74
65
|
|
|
75
66
|
```
|
|
76
67
|
Project: [name] ([X/Y] milestones complete)
|
|
77
68
|
Developer: [git config user.name]
|
|
78
|
-
Session: [session.md "Working On" field if
|
|
69
|
+
Session: [session.md "Working On" field if exists, or "No active session"]
|
|
79
70
|
Last session: [date] — [what was built]
|
|
80
71
|
Next: Milestone [N] — [name] ([short description])
|
|
81
72
|
Lessons: [N]/10 active
|
|
82
73
|
|
|
83
74
|
PRDs:
|
|
84
75
|
* {slug}.md (active — current project)
|
|
85
|
-
[For each additional PRD in .planning/prds/:]
|
|
86
76
|
* {slug}.md (ready — future project)
|
|
87
|
-
[If legacy PRD.md at root:]
|
|
88
77
|
* PRD.md (legacy — at project root)
|
|
89
78
|
|
|
90
79
|
[routing recommendations from Step 3]
|
|
91
80
|
```
|
|
92
81
|
|
|
93
|
-
The PRDs section shows all PRD files found. Mark the one matching STATE.md
|
|
94
|
-
|
|
95
|
-
When listing PRDs, if a PRD has `**Assigned To:**` fields in its milestone sections, show assignment status in the PRD listing, e.g.:
|
|
96
|
-
```
|
|
97
|
-
* {slug}.md (active — Milestone 3 assigned to Matt, Milestone 4 unassigned)
|
|
98
|
-
```
|
|
82
|
+
The PRDs section shows all PRD files found. Mark the one matching STATE.md "Active PRD" as "(active — current project)". Mark others as "(ready — future project)". Legacy root `PRD.md` shows as "(legacy — at project root)". Omit PRDs section if no PRD files exist.
|
|
99
83
|
|
|
100
84
|
Adapt the block based on available information. If STATE.md is missing, omit "Last session". If ROADMAP.md is missing, omit milestone counts and say "Run /flow:setup to set up tracking."
|
|
101
85
|
|