flow-cc 0.6.0 → 0.7.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 +21 -0
- package/README.md +229 -202
- package/VERSION +1 -1
- package/bin/install.js +352 -352
- package/package.json +1 -1
- package/skills/flow-done.md +5 -5
- package/skills/flow-intro.md +106 -104
- package/skills/flow-setup.md +196 -196
- package/skills/flow-spec.md +3 -3
- package/skills/flow-status.md +1 -1
- package/skills/flow-triage.md +11 -0
- package/templates/ROADMAP.md.template +18 -18
- package/templates/STATE.md.template +24 -24
- package/skills/flow-milestone.md +0 -78
package/skills/flow-spec.md
CHANGED
|
@@ -28,7 +28,7 @@ You are executing the `/flow:spec` skill. This is the KEYSTONE skill of the flow
|
|
|
28
28
|
|
|
29
29
|
2. **If no argument** — read ROADMAP.md and list all incomplete milestones. Use AskUserQuestion to let the user pick which milestone to spec. Pre-select the next unspecced milestone as the first option. Always show the picker, even if only one milestone is listed — the user may want to confirm or choose "Other" to define a new milestone first.
|
|
30
30
|
|
|
31
|
-
3. **Derive the PRD slug:** Take the milestone
|
|
31
|
+
3. **Derive the PRD slug:** Take the milestone name (e.g., "Dashboard Analytics"), lowercase it, replace spaces and special characters with hyphens, collapse consecutive hyphens. Result: `dashboard-analytics`. The PRD path is `.planning/prds/{slug}.md`.
|
|
32
32
|
|
|
33
33
|
4. **Check for existing PRD at that path:**
|
|
34
34
|
- **If PRD exists** → Use AskUserQuestion: "A PRD already exists for this milestone at `.planning/prds/{slug}.md`. What would you like to do?"
|
|
@@ -171,9 +171,9 @@ Write the PRD to `.planning/prds/{slug}.md` (create `.planning/prds/` directory
|
|
|
171
171
|
```markdown
|
|
172
172
|
# [Milestone Name] — Specification
|
|
173
173
|
|
|
174
|
-
**Milestone:** [full milestone name, e.g., "
|
|
174
|
+
**Milestone:** [full milestone name, e.g., "Dashboard Analytics"]
|
|
175
175
|
**Status:** Ready for execution
|
|
176
|
-
**Branch:** feat/
|
|
176
|
+
**Branch:** feat/{milestone-slug}
|
|
177
177
|
**Created:** [today's date]
|
|
178
178
|
**Assigned To:** [developer name or "unassigned"]
|
|
179
179
|
|
package/skills/flow-status.md
CHANGED
|
@@ -57,7 +57,7 @@ Use this explicit decision tree:
|
|
|
57
57
|
|
|
58
58
|
**IF all phases are complete AND no next milestone exists:**
|
|
59
59
|
→ Primary: `/flow:done` to finalize this milestone
|
|
60
|
-
→ Then: `/flow:
|
|
60
|
+
→ Then: `/flow:triage` to add the next milestone
|
|
61
61
|
→ Alt: `/flow:task` for quick fixes or cleanup (no PRD needed)
|
|
62
62
|
|
|
63
63
|
**IF no phases exist in ROADMAP (milestone defined but not planned):**
|
package/skills/flow-triage.md
CHANGED
|
@@ -32,6 +32,7 @@ For each distinct item in the brain dump, classify into one of:
|
|
|
32
32
|
- **Linear Issue** — actionable task, bug, or feature → will become a Linear issue
|
|
33
33
|
- **ROADMAP Entry** — future milestone or phase idea → append to ROADMAP.md Future section
|
|
34
34
|
- **Lesson** — learning, pattern, or rule → append to tasks/lessons.md
|
|
35
|
+
- **Milestone** — milestone-sized work item → add to ROADMAP.md as a planned milestone
|
|
35
36
|
- **Discard** — not actionable, already done, duplicate, or too vague to action
|
|
36
37
|
|
|
37
38
|
## Step 4 — Present Plan
|
|
@@ -45,6 +46,7 @@ Show the full categorization in a table:
|
|
|
45
46
|
| 2 | "Never use git add ." | Lesson | "Always stage specific files" |
|
|
46
47
|
| 3 | "Maybe add dark mode" | ROADMAP | Future/Unscheduled |
|
|
47
48
|
| 4 | "Had a thought about..." | Discard | Too vague to action |
|
|
49
|
+
| 5 | "Student leasing rate modeling" | Milestone | Add to ROADMAP as planned milestone |
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
Use AskUserQuestion: "Here's how I'd categorize your brain dump. Review and approve, or tell me what to change."
|
|
@@ -71,6 +73,14 @@ For approved items:
|
|
|
71
73
|
- If that section doesn't exist, create it at the bottom of the file
|
|
72
74
|
- Format: `| [name] | Unscheduled | — |`
|
|
73
75
|
|
|
76
|
+
**Milestones:**
|
|
77
|
+
- Add to `.planning/ROADMAP.md` main milestone table with status "Planned"
|
|
78
|
+
- Add a section with the milestone goal: `## [Milestone Name]\n\n**Goal:** [goal]\n\n**Phases:** Run /flow:spec when this milestone is active.`
|
|
79
|
+
- If no active milestone exists (all existing milestones are "Complete" or none exist):
|
|
80
|
+
- Set the first new milestone's status to "Pending — needs `/flow:spec`"
|
|
81
|
+
- Update STATE.md to point to the new milestone as current
|
|
82
|
+
- Optionally create a Linear project (if Linear MCP tools available via `mcp__linear__list_teams`)
|
|
83
|
+
|
|
74
84
|
**Lessons:**
|
|
75
85
|
- Append to `tasks/lessons.md` as one-liners: `- **[topic]** The rule`
|
|
76
86
|
- Enforce max 10 cap (promote most battle-tested to `CLAUDE.md ## Learned Rules` if full)
|
|
@@ -86,6 +96,7 @@ Print a compact completion block:
|
|
|
86
96
|
Triage complete:
|
|
87
97
|
- [N] Linear issues created (in [project names])
|
|
88
98
|
- [N] ROADMAP entries added
|
|
99
|
+
- [N] milestones added to ROADMAP
|
|
89
100
|
- [N] lessons captured
|
|
90
101
|
- [N] items discarded
|
|
91
102
|
```
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
# {{PROJECT_NAME}} — Roadmap
|
|
2
|
-
|
|
3
|
-
## Milestones
|
|
4
|
-
|
|
5
|
-
|
|
|
6
|
-
|
|
7
|
-
|
|
|
8
|
-
{{ADDITIONAL_MILESTONES_TABLE}}
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
**Goal:** {{MILESTONE_GOAL}}
|
|
15
|
-
|
|
16
|
-
**Phases:** Run `/flow:spec` to define implementation phases.
|
|
17
|
-
|
|
18
|
-
{{ADDITIONAL_MILESTONES_SECTIONS}}
|
|
1
|
+
# {{PROJECT_NAME}} — Roadmap
|
|
2
|
+
|
|
3
|
+
## Milestones
|
|
4
|
+
|
|
5
|
+
| Milestone | Status | Phases |
|
|
6
|
+
|-----------|--------|--------|
|
|
7
|
+
| {{FIRST_MILESTONE}} | Pending — needs `/flow:spec` | TBD |
|
|
8
|
+
{{ADDITIONAL_MILESTONES_TABLE}}
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## {{FIRST_MILESTONE}}
|
|
13
|
+
|
|
14
|
+
**Goal:** {{MILESTONE_GOAL}}
|
|
15
|
+
|
|
16
|
+
**Phases:** Run `/flow:spec` to define implementation phases.
|
|
17
|
+
|
|
18
|
+
{{ADDITIONAL_MILESTONES_SECTIONS}}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# {{PROJECT_NAME}} — Project State
|
|
2
|
-
|
|
3
|
-
## Current Position
|
|
4
|
-
- **Milestone:** {{FIRST_MILESTONE}}
|
|
5
|
-
- **Phase:** Not started — run `/flow:spec` to build PRD
|
|
6
|
-
- **Branch:** main
|
|
7
|
-
- **Active PRD:** None — run `/flow:spec` to create
|
|
8
|
-
- **Last Session:** {{DATE}}
|
|
9
|
-
|
|
10
|
-
## Milestone Progress
|
|
11
|
-
|
|
12
|
-
| Phase | Name | Status |
|
|
13
|
-
|-------|------|--------|
|
|
14
|
-
| — | Run `/flow:spec` to define phases | — |
|
|
15
|
-
|
|
16
|
-
## What Was Built (This Session)
|
|
17
|
-
- Project initialized with `/flow:setup`
|
|
18
|
-
- Created: CLAUDE.md, STATE.md, ROADMAP.md, tasks/lessons.md
|
|
19
|
-
|
|
20
|
-
## Key Decisions
|
|
21
|
-
- (none yet)
|
|
22
|
-
|
|
23
|
-
## Next Actions
|
|
24
|
-
1. Run `/flow:spec` to interview and generate PRD for {{FIRST_MILESTONE}}
|
|
1
|
+
# {{PROJECT_NAME}} — Project State
|
|
2
|
+
|
|
3
|
+
## Current Position
|
|
4
|
+
- **Milestone:** {{FIRST_MILESTONE}}
|
|
5
|
+
- **Phase:** Not started — run `/flow:spec` to build PRD
|
|
6
|
+
- **Branch:** main
|
|
7
|
+
- **Active PRD:** None — run `/flow:spec` to create
|
|
8
|
+
- **Last Session:** {{DATE}}
|
|
9
|
+
|
|
10
|
+
## Milestone Progress
|
|
11
|
+
|
|
12
|
+
| Phase | Name | Status |
|
|
13
|
+
|-------|------|--------|
|
|
14
|
+
| — | Run `/flow:spec` to define phases | — |
|
|
15
|
+
|
|
16
|
+
## What Was Built (This Session)
|
|
17
|
+
- Project initialized with `/flow:setup`
|
|
18
|
+
- Created: CLAUDE.md, STATE.md, ROADMAP.md, tasks/lessons.md
|
|
19
|
+
|
|
20
|
+
## Key Decisions
|
|
21
|
+
- (none yet)
|
|
22
|
+
|
|
23
|
+
## Next Actions
|
|
24
|
+
1. Run `/flow:spec` to interview and generate PRD for {{FIRST_MILESTONE}}
|
package/skills/flow-milestone.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow:milestone
|
|
3
|
-
description: Add new milestones to the roadmap
|
|
4
|
-
user_invocable: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# /flow:milestone — Add New Milestones
|
|
8
|
-
|
|
9
|
-
You are executing the `/flow:milestone` skill. This adds new milestones to the project roadmap.
|
|
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
|
-
- Current milestone status (what's active, what's complete, what's planned)
|
|
21
|
-
- What version numbers are already used
|
|
22
|
-
|
|
23
|
-
## Step 2: Show Current Status
|
|
24
|
-
|
|
25
|
-
Print a summary of the roadmap:
|
|
26
|
-
- List all milestones with their status (Complete, Pending, Planned, In Progress)
|
|
27
|
-
- Highlight the currently active milestone (if any)
|
|
28
|
-
|
|
29
|
-
## Step 3: Check for Active Work
|
|
30
|
-
|
|
31
|
-
If there is a milestone with status "Pending" or with incomplete phases (In Progress):
|
|
32
|
-
- Print: "Note: [milestone name] is currently active. New milestones will be added after existing planned milestones."
|
|
33
|
-
|
|
34
|
-
## Step 4: Gather New Milestones
|
|
35
|
-
|
|
36
|
-
Use AskUserQuestion:
|
|
37
|
-
- "How would you like to add milestones?" with options:
|
|
38
|
-
- "I'll paste or describe them"
|
|
39
|
-
- "One at a time (guided)"
|
|
40
|
-
|
|
41
|
-
**If paste/describe:**
|
|
42
|
-
- Accept free text (bullet list, paragraph, pasted doc — any format)
|
|
43
|
-
- Parse into milestones, each with a name + brief goal
|
|
44
|
-
- Print back: "Here's what I got:" followed by the parsed list
|
|
45
|
-
- Use AskUserQuestion to confirm: "Does this look right?" with options:
|
|
46
|
-
- "Yes — looks good"
|
|
47
|
-
- "Let me adjust" (user re-enters)
|
|
48
|
-
|
|
49
|
-
**If guided:**
|
|
50
|
-
- Ask: "What's this milestone called?" (name) and "What's the goal?" (one-sentence description)
|
|
51
|
-
- Then: "Add another milestone?" with options:
|
|
52
|
-
- "Yes — add another"
|
|
53
|
-
- "That's all"
|
|
54
|
-
- Repeat until user says that's all
|
|
55
|
-
|
|
56
|
-
## Step 5: Update Planning Docs
|
|
57
|
-
|
|
58
|
-
**ROADMAP.md:**
|
|
59
|
-
- Determine the next available version number (after existing milestones)
|
|
60
|
-
- Add new milestone rows to the table with status "Planned"
|
|
61
|
-
- Add new milestone sections with goals and "Run `/flow:spec` when this milestone is active."
|
|
62
|
-
|
|
63
|
-
**If no active milestone** (all existing milestones are "Complete" or there are none):
|
|
64
|
-
- Set the first new milestone's status to "Pending — needs `/flow:spec`"
|
|
65
|
-
- Update STATE.md to point to the new milestone as current
|
|
66
|
-
|
|
67
|
-
## Step 6: Print Completion Message
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
Added [N] milestone(s) to the roadmap:
|
|
71
|
-
[list of added milestones with version numbers]
|
|
72
|
-
|
|
73
|
-
[If a milestone was activated:]
|
|
74
|
-
v[X] [name] is now active. Run /flow:spec to plan it.
|
|
75
|
-
|
|
76
|
-
[If milestones were just queued:]
|
|
77
|
-
These will activate in order as you complete current milestones.
|
|
78
|
-
```
|