flow-cc 0.5.7 → 0.6.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 +150 -124
- package/VERSION +1 -1
- package/package.json +40 -40
- package/skills/flow-done.md +187 -136
- package/skills/flow-go.md +216 -180
- package/skills/flow-spec.md +305 -290
- package/skills/flow-status.md +104 -95
- package/skills/flow-task.md +150 -128
- package/skills/flow-triage.md +99 -0
- package/templates/session.md.template +9 -0
package/skills/flow-status.md
CHANGED
|
@@ -1,95 +1,104 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow:status
|
|
3
|
-
description: Quick orientation — shows current milestone, phase progress, and next actions
|
|
4
|
-
user_invocable: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# /flow:status — Quick Orientation
|
|
8
|
-
|
|
9
|
-
You are executing the `/flow:status` skill. This is a READ-ONLY operation. Do NOT modify any files.
|
|
10
|
-
|
|
11
|
-
**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.
|
|
12
|
-
|
|
13
|
-
## Step 1 — Read Context Files
|
|
14
|
-
|
|
15
|
-
Read ALL of the following in parallel:
|
|
16
|
-
- `.planning/STATE.md`
|
|
17
|
-
- `.planning/ROADMAP.md`
|
|
18
|
-
- List `.planning/prds/` directory for all PRD files (if directory exists)
|
|
19
|
-
- Also check for legacy `PRD.md` at project root (backward compat)
|
|
20
|
-
- Read the active PRD (from STATE.md "Active PRD" field) to get phase details
|
|
21
|
-
- Count lessons in `tasks/lessons.md` (if exists)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- Count phases
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
→
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
→
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
1
|
+
---
|
|
2
|
+
name: flow:status
|
|
3
|
+
description: Quick orientation — shows current milestone, phase progress, and next actions
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /flow:status — Quick Orientation
|
|
8
|
+
|
|
9
|
+
You are executing the `/flow:status` skill. This is a READ-ONLY operation. Do NOT modify any files.
|
|
10
|
+
|
|
11
|
+
**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.
|
|
12
|
+
|
|
13
|
+
## Step 1 — Read Context Files
|
|
14
|
+
|
|
15
|
+
Read ALL of the following in parallel:
|
|
16
|
+
- `.planning/STATE.md`
|
|
17
|
+
- `.planning/ROADMAP.md`
|
|
18
|
+
- List `.planning/prds/` directory for all PRD files (if directory exists)
|
|
19
|
+
- Also check for legacy `PRD.md` at project root (backward compat)
|
|
20
|
+
- Read the active PRD (from STATE.md "Active PRD" field) to get phase details
|
|
21
|
+
- Count lessons in `tasks/lessons.md` (if exists)
|
|
22
|
+
- `.claude/memory/session.md` (if exists) — personal session state
|
|
23
|
+
- Run `git config user.name` to get developer identity
|
|
24
|
+
|
|
25
|
+
IF both STATE.md AND ROADMAP.md are missing:
|
|
26
|
+
- Print: "No flow project found. Run `/flow:setup` to set up, or `/flow:task` for a quick standalone fix."
|
|
27
|
+
- STOP here.
|
|
28
|
+
|
|
29
|
+
IF only one file exists, continue with what's available.
|
|
30
|
+
|
|
31
|
+
## Step 2 — Analyze Phase Status
|
|
32
|
+
|
|
33
|
+
Parse ROADMAP.md to determine phase progress:
|
|
34
|
+
- Count total phases
|
|
35
|
+
- Count phases marked "Complete", "Done", or containing a completion date (e.g., `✓`, `[x]`, `completed`)
|
|
36
|
+
- Count phases marked "Pending", "In Progress", or not yet started
|
|
37
|
+
- Identify the FIRST phase that is NOT complete — this is the **next phase**
|
|
38
|
+
|
|
39
|
+
RULE: Determine the next action from ROADMAP.md phase statuses, NOT from STATE.md "Next Actions" text. STATE.md may be stale from a previous session. ROADMAP.md is the source of truth for phase progress.
|
|
40
|
+
|
|
41
|
+
## Step 3 — Determine Routing
|
|
42
|
+
|
|
43
|
+
Use this explicit decision tree:
|
|
44
|
+
|
|
45
|
+
**IF pending phases exist in ROADMAP AND a PRD exists for the current milestone (in `.planning/prds/` or legacy root):**
|
|
46
|
+
→ Primary: `/flow:go` to execute Phase [N]: [name]
|
|
47
|
+
→ Alt: `/flow:done` if wrapping up the session
|
|
48
|
+
→ Alt: `/flow:task` for quick fixes or cleanup (no PRD needed)
|
|
49
|
+
|
|
50
|
+
**IF pending phases exist in ROADMAP BUT no PRD exists for the current milestone:**
|
|
51
|
+
→ `/flow:spec` — select a milestone and build its execution plan
|
|
52
|
+
→ `/flow:task` — for quick fixes or cleanup (no PRD needed)
|
|
53
|
+
|
|
54
|
+
**IF all phases are complete AND a next milestone with status "Planned" exists in ROADMAP.md:**
|
|
55
|
+
→ Primary: `/flow:done` to finalize this milestone (will auto-transition to next milestone)
|
|
56
|
+
→ Alt: `/flow:task` for quick fixes or cleanup (no PRD needed)
|
|
57
|
+
|
|
58
|
+
**IF all phases are complete AND no next milestone exists:**
|
|
59
|
+
→ Primary: `/flow:done` to finalize this milestone
|
|
60
|
+
→ Then: `/flow:milestone` to add the next milestone
|
|
61
|
+
→ Alt: `/flow:task` for quick fixes or cleanup (no PRD needed)
|
|
62
|
+
|
|
63
|
+
**IF no phases exist in ROADMAP (milestone defined but not planned):**
|
|
64
|
+
→ `/flow:spec` — select a milestone and build its execution plan
|
|
65
|
+
→ `/flow:task` — for quick fixes or cleanup (no PRD needed)
|
|
66
|
+
|
|
67
|
+
**CRITICAL — `/flow:spec` suggestion format:** When printing routing recommendations, output EXACTLY this text for /flow:spec suggestions:
|
|
68
|
+
```
|
|
69
|
+
→ /flow:spec — select a milestone and build its execution plan
|
|
70
|
+
```
|
|
71
|
+
Do NOT append a milestone name, do NOT say "for v16" or "to plan v16" or any variation. The milestone picker inside /flow:spec handles selection. Adding a name here confuses users who may have multiple milestones in flight across terminals. Print the line EXACTLY as shown above — no modifications.
|
|
72
|
+
|
|
73
|
+
## Step 4 — Print Status Block
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Milestone: [name] ([X/Y] phases complete)
|
|
77
|
+
Developer: [git config user.name]
|
|
78
|
+
Session: [session.md "Working On" field if session.md exists, or "No active session"]
|
|
79
|
+
Last session: [date] — [what was built]
|
|
80
|
+
Next: Phase [N] — [name] ([short description])
|
|
81
|
+
Lessons: [N]/10 active
|
|
82
|
+
|
|
83
|
+
PRDs:
|
|
84
|
+
* {slug}.md (active — current milestone)
|
|
85
|
+
[For each additional PRD in .planning/prds/:]
|
|
86
|
+
* {slug}.md (ready — future milestone)
|
|
87
|
+
[If legacy PRD.md at root:]
|
|
88
|
+
* PRD.md (legacy — at project root)
|
|
89
|
+
|
|
90
|
+
[routing recommendations from Step 3]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The PRDs section shows all PRD files found. Mark the one matching STATE.md's "Active PRD" as "(active — current milestone)". Mark others as "(ready — future milestone)". If a legacy root `PRD.md` exists, show it as "(legacy — at project root)". Omit the PRDs section entirely if no PRD files exist anywhere.
|
|
94
|
+
|
|
95
|
+
When listing PRDs, if a PRD has `**Assigned To:**` fields in its phase sections, show assignment status in the PRD listing, e.g.:
|
|
96
|
+
```
|
|
97
|
+
* {slug}.md (active — Phase 3 assigned to Matt, Phase 4 unassigned)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
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."
|
|
101
|
+
|
|
102
|
+
## Step 5 — No File Writes
|
|
103
|
+
|
|
104
|
+
This is purely informational. Do not modify any files.
|
package/skills/flow-task.md
CHANGED
|
@@ -1,128 +1,150 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow:task
|
|
3
|
-
description: Lightweight task execution — bug fixes, cleanup, and small features without a PRD
|
|
4
|
-
user_invocable: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# /flow:task — Lightweight Task Execution
|
|
8
|
-
|
|
9
|
-
You are executing the `/flow:task` skill. This is for small, focused work — bug fixes, cleanup, one-off features — that doesn't warrant a full PRD. Understand the task, execute it, verify it works, commit it, and document it.
|
|
10
|
-
|
|
11
|
-
**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.
|
|
12
|
-
|
|
13
|
-
RULES:
|
|
14
|
-
- NO AGENT TEAMS. NO PRD. Single execution context.
|
|
15
|
-
- Exception: ONE Task agent for an isolated subtask to prevent context bloat.
|
|
16
|
-
- This skill MUST work without `/flow:setup`. Missing planning files are fine.
|
|
17
|
-
|
|
18
|
-
## Step 1 — Context Load
|
|
19
|
-
|
|
20
|
-
Read ALL of the following in parallel. If any file is missing, skip it gracefully:
|
|
21
|
-
- `.planning/STATE.md`
|
|
22
|
-
- `.planning/ROADMAP.md`
|
|
23
|
-
- `CLAUDE.md`
|
|
24
|
-
- `tasks/lessons.md`
|
|
25
|
-
- Active PRD from `.planning/prds/` (if STATE.md "Active PRD" field exists, use that path; else check for legacy `PRD.md` at root)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
1
|
+
---
|
|
2
|
+
name: flow:task
|
|
3
|
+
description: Lightweight task execution — bug fixes, cleanup, and small features without a PRD
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /flow:task — Lightweight Task Execution
|
|
8
|
+
|
|
9
|
+
You are executing the `/flow:task` skill. This is for small, focused work — bug fixes, cleanup, one-off features — that doesn't warrant a full PRD. Understand the task, execute it, verify it works, commit it, and document it.
|
|
10
|
+
|
|
11
|
+
**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.
|
|
12
|
+
|
|
13
|
+
RULES:
|
|
14
|
+
- NO AGENT TEAMS. NO PRD. Single execution context.
|
|
15
|
+
- Exception: ONE Task agent for an isolated subtask to prevent context bloat.
|
|
16
|
+
- This skill MUST work without `/flow:setup`. Missing planning files are fine.
|
|
17
|
+
|
|
18
|
+
## Step 1 — Context Load
|
|
19
|
+
|
|
20
|
+
Read ALL of the following in parallel. If any file is missing, skip it gracefully:
|
|
21
|
+
- `.planning/STATE.md`
|
|
22
|
+
- `.planning/ROADMAP.md`
|
|
23
|
+
- `CLAUDE.md`
|
|
24
|
+
- `tasks/lessons.md`
|
|
25
|
+
- Active PRD from `.planning/prds/` (if STATE.md "Active PRD" field exists, use that path; else check for legacy `PRD.md` at root)
|
|
26
|
+
- `.claude/memory/session.md` (if exists) — personal session state
|
|
27
|
+
|
|
28
|
+
Run `git config user.name` to get developer identity.
|
|
29
|
+
|
|
30
|
+
If no `.planning/` directory exists, print:
|
|
31
|
+
> No `.planning/` directory found — running standalone. Task will still be executed, verified, and committed.
|
|
32
|
+
|
|
33
|
+
Then continue.
|
|
34
|
+
|
|
35
|
+
## Step 2 — Task Understanding
|
|
36
|
+
|
|
37
|
+
Parse the user's argument (text provided after `/flow:task`).
|
|
38
|
+
|
|
39
|
+
IF no argument was provided:
|
|
40
|
+
- Use AskUserQuestion: "What needs to be done?"
|
|
41
|
+
- Provide 2-4 example options based on common task types (fix, cleanup, add, update)
|
|
42
|
+
|
|
43
|
+
Run a quick codebase scan (Grep/Glob) for files relevant to the task description.
|
|
44
|
+
|
|
45
|
+
## Step 3 — Quick Clarification
|
|
46
|
+
|
|
47
|
+
Ask 0-3 clarifying questions maximum.
|
|
48
|
+
|
|
49
|
+
RULES:
|
|
50
|
+
- NEVER MORE THAN 3 QUESTIONS.
|
|
51
|
+
- USE AskUserQuestion with 2-4 CONCRETE OPTIONS derived from codebase exploration.
|
|
52
|
+
- IF THE TASK IS UNAMBIGUOUS, ASK ZERO QUESTIONS. Proceed directly.
|
|
53
|
+
|
|
54
|
+
Decision gate: Can you identify WHAT to change, WHERE to change it, and the EXPECTED OUTCOME? If yes, skip to Step 4.
|
|
55
|
+
|
|
56
|
+
## Step 4 — Scope Guard
|
|
57
|
+
|
|
58
|
+
Estimate:
|
|
59
|
+
- Number of files affected
|
|
60
|
+
- Number of architectural layers touched (e.g., UI, API, DB, config)
|
|
61
|
+
|
|
62
|
+
IF 5+ files OR 3+ architectural layers:
|
|
63
|
+
- Use AskUserQuestion to recommend `/flow:spec` instead:
|
|
64
|
+
- Option 1: "Switch to /flow:spec (Recommended)" — "This touches [N] files across [N] layers. A PRD will keep it organized."
|
|
65
|
+
- Option 2: "Continue with /flow:task" — "I understand the scope. Execute it here."
|
|
66
|
+
|
|
67
|
+
The user can always override. Do not block.
|
|
68
|
+
|
|
69
|
+
## Step 5 — Execute
|
|
70
|
+
|
|
71
|
+
Do the work directly in the current context.
|
|
72
|
+
|
|
73
|
+
RULES:
|
|
74
|
+
- NO AGENT TEAMS. NO PRD. Direct execution.
|
|
75
|
+
- Exception: ONE Task agent is allowed for a single isolated subtask if it prevents context bloat.
|
|
76
|
+
- Follow existing code patterns and conventions found in CLAUDE.md and the codebase.
|
|
77
|
+
|
|
78
|
+
## Step 6 — Verify (MANDATORY)
|
|
79
|
+
|
|
80
|
+
RULE: NEVER SILENTLY SKIP VERIFICATION.
|
|
81
|
+
|
|
82
|
+
1. Check CLAUDE.md for project-specific verification commands (build, test, lint).
|
|
83
|
+
2. If no CLAUDE.md commands: check `package.json` scripts, `Makefile`, `pyproject.toml`, or similar for standard commands.
|
|
84
|
+
3. If verification commands are found: run them.
|
|
85
|
+
4. If NO verification commands exist anywhere: print a warning and continue.
|
|
86
|
+
> ⚠ No verification commands found. Skipping automated verification.
|
|
87
|
+
5. If verification fails: fix the issue and re-verify. Up to 2 fix cycles.
|
|
88
|
+
6. If still failing after 2 cycles: report the failure clearly with the error output. Do not silently move on.
|
|
89
|
+
|
|
90
|
+
## Step 7 — Commit
|
|
91
|
+
|
|
92
|
+
- Stage ONLY the files you changed (never `git add .` or `git add -A`)
|
|
93
|
+
- Commit message format: `fix:` / `feat:` / `refactor:` / `chore:` followed by a concise description
|
|
94
|
+
- Do NOT push
|
|
95
|
+
|
|
96
|
+
## Step 8 — Update Docs
|
|
97
|
+
|
|
98
|
+
IF `.planning/STATE.md` exists:
|
|
99
|
+
- Append to the "What Was Built" section (or create it if missing):
|
|
100
|
+
```
|
|
101
|
+
- /flow:task — [description] ([N] files, commit [short SHA])
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
RULES:
|
|
105
|
+
- DO NOT update ROADMAP.md — tasks are not milestone phases.
|
|
106
|
+
- DO NOT update any PRD files in `.planning/prds/` — tasks are not part of the spec.
|
|
107
|
+
- DO NOT create `.planning/` if it doesn't exist.
|
|
108
|
+
|
|
109
|
+
**Session state:** Write `.claude/memory/session.md` (create `.claude/memory/` directory if needed):
|
|
110
|
+
```
|
|
111
|
+
# Session State
|
|
112
|
+
**Date:** [today]
|
|
113
|
+
**Developer:** [git config user.name]
|
|
114
|
+
**Branch:** [current branch]
|
|
115
|
+
**Working On:** /flow:task — [task description]
|
|
116
|
+
**Status:** Task complete: [brief description]
|
|
117
|
+
**Next:** [suggest next action]
|
|
118
|
+
**Blockers:** None
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Quick lessons prompt via AskUserQuestion:
|
|
122
|
+
- "Any lessons from this task worth capturing?"
|
|
123
|
+
- Option 1: "No, nothing new" — Skip lessons.
|
|
124
|
+
- Option 2: "Yes, let me describe it" — Capture to `tasks/lessons.md` as a one-liner: `- **[topic]** The rule`
|
|
125
|
+
|
|
126
|
+
If `tasks/lessons.md` doesn't exist, skip the lessons prompt.
|
|
127
|
+
If lessons.md already has 10 items, promote the most battle-tested to `CLAUDE.md ## Learned Rules` before adding the new one.
|
|
128
|
+
|
|
129
|
+
## Step 9 — Summary
|
|
130
|
+
|
|
131
|
+
Print a compact completion block:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
✓ /flow:task complete
|
|
135
|
+
[description of what was done]
|
|
136
|
+
Files: [N] changed | Commit: [short SHA]
|
|
137
|
+
Verified: [pass/fail/skipped]
|
|
138
|
+
|
|
139
|
+
Next:
|
|
140
|
+
→ /flow:task [description] for another quick fix
|
|
141
|
+
→ /flow:go to continue milestone phases
|
|
142
|
+
→ /flow:done to wrap up the session
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Linear comment (if applicable):** Check if the current branch name contains a Linear issue identifier pattern (e.g., `msig-45` in `feat/msig-45-rate-modeling`). If found:
|
|
146
|
+
- Try `mcp__linear__list_issues` with a query matching the identifier
|
|
147
|
+
- If Linear MCP is available AND an issue is found: post a progress comment via `mcp__linear__create_comment` with the task summary from the completion block above
|
|
148
|
+
- If Linear MCP is not available or no matching issue is found: skip silently
|
|
149
|
+
|
|
150
|
+
If no Linear identifier is found in the branch name: skip silently.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow:triage
|
|
3
|
+
description: Sort brain dump into Linear issues, ROADMAP entries, lessons, or discard
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /flow:triage — Brain Dump Triage
|
|
8
|
+
|
|
9
|
+
You are executing the `/flow:triage` skill. This takes a brain dump (text blob, bullet list, or stream of consciousness) and sorts it into actionable categories: Linear issues, ROADMAP entries, lessons, or discard.
|
|
10
|
+
|
|
11
|
+
**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.
|
|
12
|
+
|
|
13
|
+
## Step 1 — Input
|
|
14
|
+
|
|
15
|
+
Check if the user provided text after `/flow:triage`.
|
|
16
|
+
|
|
17
|
+
IF argument provided: use it as the brain dump.
|
|
18
|
+
IF no argument: use AskUserQuestion: "Paste your brain dump — bullet list, stream of consciousness, whatever format. I'll sort it."
|
|
19
|
+
|
|
20
|
+
## Step 2 — Context Load
|
|
21
|
+
|
|
22
|
+
Read in parallel (skip gracefully if missing):
|
|
23
|
+
- `.planning/ROADMAP.md` — to understand existing milestones and avoid duplicates
|
|
24
|
+
- `tasks/lessons.md` — to check for existing lessons and enforce cap
|
|
25
|
+
- `CLAUDE.md` — project context
|
|
26
|
+
|
|
27
|
+
Run `git config user.name` to identify the developer.
|
|
28
|
+
|
|
29
|
+
## Step 3 — Categorize
|
|
30
|
+
|
|
31
|
+
For each distinct item in the brain dump, classify into one of:
|
|
32
|
+
- **Linear Issue** — actionable task, bug, or feature → will become a Linear issue
|
|
33
|
+
- **ROADMAP Entry** — future milestone or phase idea → append to ROADMAP.md Future section
|
|
34
|
+
- **Lesson** — learning, pattern, or rule → append to tasks/lessons.md
|
|
35
|
+
- **Discard** — not actionable, already done, duplicate, or too vague to action
|
|
36
|
+
|
|
37
|
+
## Step 4 — Present Plan
|
|
38
|
+
|
|
39
|
+
Show the full categorization in a table:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
| # | Item | Category | Details |
|
|
43
|
+
|---|------|----------|---------|
|
|
44
|
+
| 1 | "Rate modeling table" | Linear Issue | Project: v18 Student Leasing, Priority: Normal |
|
|
45
|
+
| 2 | "Never use git add ." | Lesson | "Always stage specific files" |
|
|
46
|
+
| 3 | "Maybe add dark mode" | ROADMAP | Future/Unscheduled |
|
|
47
|
+
| 4 | "Had a thought about..." | Discard | Too vague to action |
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Use AskUserQuestion: "Here's how I'd categorize your brain dump. Review and approve, or tell me what to change."
|
|
51
|
+
- "Looks good — execute it"
|
|
52
|
+
- "I want to make changes" (user provides corrections)
|
|
53
|
+
|
|
54
|
+
If the user wants changes, update the categorization and present again.
|
|
55
|
+
|
|
56
|
+
## Step 5 — Execute
|
|
57
|
+
|
|
58
|
+
For approved items:
|
|
59
|
+
|
|
60
|
+
**Linear Issues:**
|
|
61
|
+
- Check if Linear MCP tools are available (try `mcp__linear__list_teams`)
|
|
62
|
+
- If available: create issues with `mcp__linear__create_issue` (team: "Monument Square", default project: "Future / Backlog" unless a better match exists based on the item content and existing Linear projects)
|
|
63
|
+
- If not available: print the issues as formatted text for manual creation:
|
|
64
|
+
```
|
|
65
|
+
Linear issues to create manually:
|
|
66
|
+
- [Title] | Team: Monument Square | Project: [suggested] | Priority: [suggested]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**ROADMAP Entries:**
|
|
70
|
+
- Append to `.planning/ROADMAP.md` under a "Future (Unscheduled)" section
|
|
71
|
+
- If that section doesn't exist, create it at the bottom of the file
|
|
72
|
+
- Format: `| [name] | Unscheduled | — |`
|
|
73
|
+
|
|
74
|
+
**Lessons:**
|
|
75
|
+
- Append to `tasks/lessons.md` as one-liners: `- **[topic]** The rule`
|
|
76
|
+
- Enforce max 10 cap (promote most battle-tested to `CLAUDE.md ## Learned Rules` if full)
|
|
77
|
+
- If `tasks/lessons.md` doesn't exist, create it
|
|
78
|
+
|
|
79
|
+
**Discard:** No action needed.
|
|
80
|
+
|
|
81
|
+
## Step 6 — Summary
|
|
82
|
+
|
|
83
|
+
Print a compact completion block:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Triage complete:
|
|
87
|
+
- [N] Linear issues created (in [project names])
|
|
88
|
+
- [N] ROADMAP entries added
|
|
89
|
+
- [N] lessons captured
|
|
90
|
+
- [N] items discarded
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Then suggest next actions:
|
|
94
|
+
```
|
|
95
|
+
Next:
|
|
96
|
+
→ /flow:triage for another brain dump
|
|
97
|
+
→ /flow:spec to plan a milestone from triaged items
|
|
98
|
+
→ /flow:status to see current state
|
|
99
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Session State
|
|
2
|
+
|
|
3
|
+
**Date:** {{DATE}}
|
|
4
|
+
**Developer:** (auto-detected from git config)
|
|
5
|
+
**Branch:** (auto-detected)
|
|
6
|
+
**Working On:** (set by /flow:go or /flow:task)
|
|
7
|
+
**Status:** Session initialized
|
|
8
|
+
**Next:** Check Linear for assignments or run /flow:status
|
|
9
|
+
**Blockers:** None
|