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/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,24 @@ 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.8.1] - 2026-02-14
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- All 8 active skill files compressed in-place — 67.5KB → 46KB total (-31.7%)
|
|
12
|
+
- `flow-spec.md` reduced 49% (17.4KB → 8.9KB) — condensed PRD template, coverage areas, codebase scan table
|
|
13
|
+
- `flow-go.md` reduced 37% (11.2KB → 7.0KB) — merged wave failure blocks, compressed agent prompt template
|
|
14
|
+
- `flow-done.md` reduced 26% (10.1KB → 7.5KB) — tightened STATE template, PR body, review polling
|
|
15
|
+
- `flow-setup.md` reduced 25% (6.4KB → 4.9KB) — compressed templates and question descriptions
|
|
16
|
+
- `flow-task.md` reduced 29% (6.1KB → 4.3KB) — compressed scope guard, verification, session template
|
|
17
|
+
- `flow-status.md` reduced 28% (5.1KB → 3.6KB) — condensed routing decision tree, status block
|
|
18
|
+
- `flow-intro.md` reduced 14% (4.7KB → 4.0KB) — removed GSD compat line, trimmed command descriptions
|
|
19
|
+
- `flow-triage.md` reduced 16% (4.5KB → 3.8KB) — fewer example rows, general tightening
|
|
20
|
+
- Skill boundary warning standardized to 1 line across all files
|
|
21
|
+
- Plan mode + skill boundary merged into single `**Constraints:**` line in flow-spec and flow-go
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- Deleted stray `nul` file (Windows artifact) from repo root
|
|
25
|
+
|
|
8
26
|
## [0.8.0] - 2026-02-14
|
|
9
27
|
|
|
10
28
|
### Changed
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.8.
|
|
1
|
+
0.8.1
|
package/package.json
CHANGED
package/skills/flow-done.md
CHANGED
|
@@ -1,42 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: flow:done
|
|
3
|
-
description: Session-end documentation — updates STATE.md, ROADMAP.md, lessons.md
|
|
3
|
+
description: Session-end documentation — updates STATE.md, ROADMAP.md, lessons.md. Handles project-complete PR creation, automated review, and Linear status management.
|
|
4
4
|
user_invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# /flow:done — Session End + Handoff
|
|
8
8
|
|
|
9
|
-
You are executing the `/flow:done` skill. This finalizes the current session by updating all planning documents and
|
|
9
|
+
You are executing the `/flow:done` skill. This finalizes the current session by updating all planning documents and routing to the next action.
|
|
10
10
|
|
|
11
11
|
**This is the most important skill for sustainability.** Without proper session-end docs, the next session starts blind.
|
|
12
12
|
|
|
13
|
-
**Skill boundary:**
|
|
13
|
+
**Skill boundary:** Only use `/flow:*` commands. Never invoke or suggest `/lisa:*`, `/gsd:*`, `/superpowers:*` or any non-flow skill.
|
|
14
14
|
|
|
15
15
|
## Steps
|
|
16
16
|
|
|
17
17
|
### 1. Gather Context
|
|
18
18
|
|
|
19
|
-
Read
|
|
20
|
-
- `.planning/STATE.md
|
|
21
|
-
- `.planning/
|
|
22
|
-
-
|
|
23
|
-
- `CLAUDE.md` — project rules
|
|
24
|
-
- Active PRD from `.planning/prds/` (resolve via STATE.md "Active PRD" field, or fall back to legacy `PRD.md` at root)
|
|
25
|
-
- `.claude/memory/session.md` (if exists) — personal session state
|
|
19
|
+
Read in parallel:
|
|
20
|
+
- `.planning/STATE.md`, `.planning/ROADMAP.md`, `tasks/lessons.md`, `CLAUDE.md`
|
|
21
|
+
- Active PRD from `.planning/prds/` (resolve via STATE.md "Active PRD" field, or legacy root `PRD.md`)
|
|
22
|
+
- `.claude/memory/session.md` (if exists)
|
|
26
23
|
|
|
27
|
-
Also
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- If uncommitted changes exist, warn the user before proceeding
|
|
24
|
+
Also run:
|
|
25
|
+
- `git log --oneline -20` — commits this session
|
|
26
|
+
- `git diff --stat` — uncommitted changes (warn user if any exist)
|
|
27
|
+
- `git config user.name` — developer identity
|
|
32
28
|
|
|
33
29
|
### 2. Update STATE.md (Project Boundaries Only)
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
Check ROADMAP.md progress and commits to determine if a project completed this session.
|
|
36
32
|
|
|
37
|
-
**IF project completed
|
|
33
|
+
**IF project completed** — REPLACE the entire file (do NOT append). Keep under 80 lines:
|
|
38
34
|
|
|
39
|
-
Structure:
|
|
40
35
|
```
|
|
41
36
|
# [Project Name] — Project State
|
|
42
37
|
|
|
@@ -44,167 +39,139 @@ Structure:
|
|
|
44
39
|
- **Project:** [name]
|
|
45
40
|
- **Milestone:** [current milestone status]
|
|
46
41
|
- **Branch:** [current branch]
|
|
47
|
-
- **Active PRD:** [path
|
|
42
|
+
- **Active PRD:** [path or "None" if project complete]
|
|
48
43
|
- **Last Session:** [today's date]
|
|
49
44
|
|
|
50
45
|
## Milestone Progress
|
|
51
|
-
|
|
52
46
|
| Milestone | Name | Status |
|
|
53
47
|
|-----------|------|--------|
|
|
54
48
|
| 1 | [name] | Complete (date) |
|
|
55
|
-
| 2 | [name] |
|
|
56
|
-
| 3 | [name] | In Progress |
|
|
57
|
-
| 4 | [name] | Pending |
|
|
49
|
+
| 2 | [name] | In Progress |
|
|
58
50
|
|
|
59
51
|
## What Was Built (This Session)
|
|
60
|
-
- [Bullet list
|
|
61
|
-
- [Include file counts, key components, commit SHAs]
|
|
52
|
+
- [Bullet list — file counts, key components, commit SHAs]
|
|
62
53
|
|
|
63
54
|
## Key Decisions
|
|
64
|
-
- [
|
|
55
|
+
- [Architectural or design decisions made]
|
|
65
56
|
|
|
66
57
|
## Next Actions
|
|
67
|
-
1. [Specific next step
|
|
58
|
+
1. [Specific next step]
|
|
68
59
|
```
|
|
69
60
|
|
|
70
|
-
**IF normal session
|
|
61
|
+
**IF normal session** — SKIP STATE.md. Print: "Normal session — STATE.md skipped (project boundaries only)."
|
|
71
62
|
|
|
72
63
|
### 2.5. Write session.md (Every Session)
|
|
73
64
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Create `.claude/memory/` directory if it doesn't exist.
|
|
77
|
-
|
|
78
|
-
Write `.claude/memory/session.md` with the following content:
|
|
65
|
+
Always runs. Create `.claude/memory/` if needed. Write `.claude/memory/session.md`:
|
|
79
66
|
|
|
80
67
|
```
|
|
81
68
|
# Session State
|
|
82
|
-
|
|
83
|
-
**
|
|
84
|
-
**
|
|
85
|
-
**
|
|
86
|
-
**
|
|
87
|
-
**
|
|
88
|
-
**Next:** [what to pick up next session]
|
|
69
|
+
**Date:** [today]
|
|
70
|
+
**Developer:** [git config user.name]
|
|
71
|
+
**Branch:** [current branch]
|
|
72
|
+
**Working On:** [Linear issue ID + desc, or PRD milestone, or "standalone task"]
|
|
73
|
+
**Status:** [bullet list of accomplishments]
|
|
74
|
+
**Next:** [what to pick up next]
|
|
89
75
|
**Blockers:** [any blockers, or "None"]
|
|
90
76
|
```
|
|
91
77
|
|
|
92
78
|
### 3. Update ROADMAP.md (Project Boundaries Only)
|
|
93
79
|
|
|
94
|
-
**IF project completed
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
**IF normal session (no project completed)** — SKIP ROADMAP.md entirely. Print: "Normal session — ROADMAP.md skipped (project boundaries only)."
|
|
80
|
+
**IF project completed:**
|
|
81
|
+
- Mark completed milestones with dates
|
|
82
|
+
- Ensure pending milestones have enough detail for a one-line-prompt start
|
|
83
|
+
- **Archive check** (if project fully complete):
|
|
84
|
+
- Skip if `.planning/` doesn't exist
|
|
85
|
+
- Create `.planning/archive/` if needed (`mkdir -p`)
|
|
86
|
+
- Move milestone details to `.planning/archive/project-{slug}.md`
|
|
87
|
+
- Keep only summary row in ROADMAP table
|
|
88
|
+
- Archive PRD: move `.planning/prds/{slug}.md` (or legacy root `PRD.md`) to `.planning/archive/PRD-{slug}.md`
|
|
89
|
+
- Clear STATE.md "Active PRD" → "None"; mark project "Complete" in ROADMAP
|
|
90
|
+
- **Project transition:** Check for next "Planned" project:
|
|
91
|
+
- If exists: update to "Pending — needs `/flow:spec`", update STATE.md current project
|
|
92
|
+
- If none: no transition needed
|
|
93
|
+
|
|
94
|
+
**IF normal session** — SKIP ROADMAP.md. Print: "Normal session — ROADMAP.md skipped (project boundaries only)."
|
|
111
95
|
|
|
112
96
|
### 4. Update lessons.md
|
|
113
97
|
|
|
114
|
-
- Review
|
|
115
|
-
- Auto-suggest lessons
|
|
116
|
-
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
- "Use your suggestions" (if you auto-suggested any)
|
|
120
|
-
- Add new lessons as one-liners: `- **[topic]** The rule`
|
|
121
|
-
- **Hard cap enforcement (max 10 active):**
|
|
122
|
-
- If lessons.md already has 10 items and a new one needs to be added:
|
|
123
|
-
1. Identify the most battle-tested/internalized lesson
|
|
124
|
-
2. Promote it to `CLAUDE.md ## Learned Rules` section
|
|
125
|
-
3. Delete it from lessons.md
|
|
126
|
-
4. Add the new lesson
|
|
127
|
-
- If `CLAUDE.md ## Learned Rules` hits 15 items, delete the most obvious/internalized rule to make room
|
|
98
|
+
- Review session for mistakes, corrections, or discovered issues
|
|
99
|
+
- Auto-suggest lessons from errors encountered
|
|
100
|
+
- AskUserQuestion: "Any lessons from this session?" with options: "No new lessons" / "Yes, let me add some" / "Use your suggestions"
|
|
101
|
+
- Format: `- **[topic]** The rule`
|
|
102
|
+
- **Hard cap (max 10):** If at 10, promote the most battle-tested to `CLAUDE.md ## Learned Rules`, delete from lessons.md, then add new. If Learned Rules hits 15, delete the most obvious rule to make room.
|
|
128
103
|
|
|
129
104
|
### 5. Commit Doc Updates
|
|
130
105
|
|
|
131
|
-
**Normal session (no
|
|
132
|
-
- Only stage `tasks/lessons.md` if it changed
|
|
133
|
-
- Skip STATE.md and ROADMAP.md (they were not modified)
|
|
134
|
-
- Do NOT stage `.claude/memory/session.md` (it is gitignored)
|
|
135
|
-
- If nothing needs staging (no changes to shared docs), skip the commit. Print: "No shared doc changes to commit."
|
|
136
|
-
- Otherwise commit with message: `docs: session-end updates — [brief summary]`
|
|
106
|
+
**Normal session:** Only stage `tasks/lessons.md` if changed. Skip STATE.md/ROADMAP.md. Never stage `.claude/memory/session.md` (gitignored). If no shared doc changes, print "No shared doc changes to commit." Otherwise: `docs: session-end updates — [brief summary]`
|
|
137
107
|
|
|
138
|
-
**Project boundary session:**
|
|
139
|
-
- Stage STATE.md, ROADMAP.md, lessons.md, and any archived files
|
|
140
|
-
- Do NOT stage `.claude/memory/session.md` (it is gitignored)
|
|
141
|
-
- Commit with message: `docs: session-end updates — [brief summary]`
|
|
108
|
+
**Project boundary session:** Stage STATE.md, ROADMAP.md, lessons.md, archived files. Never stage session.md. Commit: `docs: session-end updates — [brief summary]`
|
|
142
109
|
|
|
143
|
-
|
|
110
|
+
Do NOT push unless user asks.
|
|
144
111
|
|
|
145
112
|
### 5.25. Auto-Create PR (Project Complete Only)
|
|
146
113
|
|
|
147
|
-
- Check if ALL milestones in
|
|
148
|
-
- If all complete AND no PR
|
|
149
|
-
- Parse
|
|
150
|
-
- Push
|
|
114
|
+
- Check if ALL milestones in PRD are "Complete" in ROADMAP.md
|
|
115
|
+
- If all complete AND no open PR for branch (`gh pr list --head [branch] --state open`):
|
|
116
|
+
- Parse PRD for all Linear issue IDs
|
|
117
|
+
- Push branch: `git push -u origin [branch]`
|
|
151
118
|
- Auto-generate PR body:
|
|
152
119
|
```
|
|
153
120
|
## Summary
|
|
154
|
-
[Project name] — [one-line
|
|
155
|
-
|
|
121
|
+
[Project name] — [one-line from PRD]
|
|
156
122
|
## Milestones Completed
|
|
157
123
|
- Milestone 1: [Name] (completed [date])
|
|
158
|
-
- Milestone 2: [Name] (completed [date])
|
|
159
|
-
...
|
|
160
|
-
|
|
161
124
|
## Linear Issues
|
|
162
|
-
Closes MSIG-34, Closes MSIG-35,
|
|
163
|
-
[one "Closes MSIG-XX" per issue found in PRD]
|
|
164
|
-
|
|
125
|
+
Closes MSIG-34, Closes MSIG-35, ...
|
|
165
126
|
## Verification
|
|
166
127
|
- `npx tsc --noEmit` — passed
|
|
167
128
|
- `npx biome check` — passed
|
|
168
129
|
```
|
|
169
|
-
-
|
|
170
|
-
- Print: "PR created: [
|
|
171
|
-
|
|
172
|
-
|
|
130
|
+
- `gh pr create --title "[project name]" --body "[body]"`
|
|
131
|
+
- Print: "PR created: [URL]" and "Linear: [N] issues will auto-close on merge"
|
|
132
|
+
- If milestones remain OR PR exists: skip silently
|
|
133
|
+
|
|
134
|
+
### 5.3. Await Automated Review (Project Complete Only)
|
|
135
|
+
|
|
136
|
+
Runs when 5.25 created a PR (or one already exists for this branch).
|
|
137
|
+
|
|
138
|
+
1. Get PR number from `gh pr create` output or `gh pr list --head [branch]`
|
|
139
|
+
2. Parse repo owner/name from `git remote get-url origin`
|
|
140
|
+
3. Poll every 2 min, up to 10 min (5 checks max):
|
|
141
|
+
- `gh api repos/{owner}/{repo}/pulls/{N}/reviews` — non-empty reviews
|
|
142
|
+
- `gh api repos/{owner}/{repo}/pulls/{N}/comments` — bot/review comments
|
|
143
|
+
4. **Reviews arrive:** Read all, address each, push fixes. Print: "Automated review: [N] comments addressed, fixes pushed."
|
|
144
|
+
5. **No reviews after 10 min:** Print: "No comments after 10 min. Proceeding." Write "Automated review pending" in session.md Blockers.
|
|
145
|
+
6. **Pre-existing PR:** Check for unaddressed review comments from prior sessions; address before proceeding.
|
|
173
146
|
|
|
174
147
|
### 5.5. Linear Status Update + Progress Comment
|
|
175
148
|
|
|
176
|
-
- Check if Linear MCP tools are available
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
- If project is complete AND no next project exists:
|
|
203
|
-
```
|
|
204
|
-
[Developer Name] — All projects complete! Run /flow:triage to plan what's next, or enjoy the win.
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
Print the handoff prompt in a fenced code block so the user can copy it.
|
|
149
|
+
- Check if Linear MCP tools are available; skip silently if not
|
|
150
|
+
- Parse active PRD for `**Linear Project:**` field
|
|
151
|
+
- If found and open PR exists (`gh pr list --head [branch] --state open`):
|
|
152
|
+
- Move all "In Progress" issues to "In Review" via `mcp__linear__update_issue`
|
|
153
|
+
- Print: "Linear: [N] issues → In Review (PR open)"
|
|
154
|
+
- If no PR: issues stay In Progress (normal mid-project session end)
|
|
155
|
+
- Post progress comment on any branch-linked Linear issue
|
|
156
|
+
|
|
157
|
+
### 6. Route Next Action
|
|
158
|
+
|
|
159
|
+
**Mid-project (milestones remain):**
|
|
160
|
+
```
|
|
161
|
+
Next steps:
|
|
162
|
+
→ /flow:go — execute Milestone [N+1]: [Name]
|
|
163
|
+
→ /clear + /flow:go — if context is heavy
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Project complete + next project exists:**
|
|
167
|
+
```
|
|
168
|
+
Project complete! → Review + merge PR #[N] → /flow:spec — plan [next project]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Project complete + no next project:**
|
|
172
|
+
```
|
|
173
|
+
All projects complete! → Review + merge PR #[N] → /flow:triage — plan what's next
|
|
174
|
+
```
|
|
208
175
|
|
|
209
176
|
### 7. Print Summary
|
|
210
177
|
|
|
@@ -215,7 +182,9 @@ Session complete.
|
|
|
215
182
|
- session.md: updated
|
|
216
183
|
- lessons.md: [N]/10 active, [N] promoted to CLAUDE.md
|
|
217
184
|
- Committed: [SHA | nothing to commit]
|
|
185
|
+
- PR: [created #N | skipped (milestones remain)]
|
|
186
|
+
- Review: [N comments addressed | pending | skipped]
|
|
187
|
+
- Linear: [N issues → In Review | skipped]
|
|
218
188
|
|
|
219
|
-
|
|
220
|
-
[the prompt in a code block]
|
|
189
|
+
Next: [routing from Step 6]
|
|
221
190
|
```
|