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-task.md
CHANGED
|
@@ -6,145 +6,105 @@ user_invocable: true
|
|
|
6
6
|
|
|
7
7
|
# /flow:task — Lightweight Task Execution
|
|
8
8
|
|
|
9
|
-
You are executing the `/flow:task` skill.
|
|
9
|
+
You are executing the `/flow:task` skill. For small, focused work — bug fixes, cleanup, one-off features — that doesn't need a PRD. Understand, execute, verify, commit, document.
|
|
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
|
RULES:
|
|
14
14
|
- NO AGENT TEAMS. NO PRD. Single execution context.
|
|
15
15
|
- Exception: ONE Task agent for an isolated subtask to prevent context bloat.
|
|
16
|
-
-
|
|
16
|
+
- MUST work without `/flow:setup`. Missing planning files are fine.
|
|
17
17
|
|
|
18
18
|
## Step 1 — Context Load
|
|
19
19
|
|
|
20
|
-
Read ALL
|
|
21
|
-
- `.planning/STATE.md`
|
|
22
|
-
- `.planning/
|
|
23
|
-
-
|
|
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
|
|
20
|
+
Read ALL in parallel (skip missing files gracefully):
|
|
21
|
+
- `.planning/STATE.md`, `.planning/ROADMAP.md`, `CLAUDE.md`, `tasks/lessons.md`
|
|
22
|
+
- Active PRD from `.planning/prds/` via STATE.md "Active PRD" field (or legacy root `PRD.md`)
|
|
23
|
+
- `.claude/memory/session.md` (if exists)
|
|
27
24
|
|
|
28
|
-
Run `git config user.name`
|
|
25
|
+
Run `git config user.name` for developer identity.
|
|
29
26
|
|
|
30
|
-
If no `.planning/` directory
|
|
31
|
-
> No `.planning/` directory found — running standalone. Task will still be executed, verified, and committed.
|
|
32
|
-
|
|
33
|
-
Then continue.
|
|
27
|
+
If no `.planning/` directory: print "No `.planning/` found — running standalone." Then continue.
|
|
34
28
|
|
|
35
29
|
## Step 2 — Task Understanding
|
|
36
30
|
|
|
37
|
-
Parse the user's argument (text
|
|
31
|
+
Parse the user's argument (text after `/flow:task`).
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
- Use AskUserQuestion: "What needs to be done?"
|
|
41
|
-
- Provide 2-4 example options based on common task types (fix, cleanup, add, update)
|
|
33
|
+
If no argument: AskUserQuestion "What needs to be done?" with 2-4 example options (fix, cleanup, add, update).
|
|
42
34
|
|
|
43
|
-
Run a quick codebase scan (Grep/Glob) for files relevant to the task
|
|
35
|
+
Run a quick codebase scan (Grep/Glob) for files relevant to the task.
|
|
44
36
|
|
|
45
37
|
## Step 3 — Quick Clarification
|
|
46
38
|
|
|
47
|
-
|
|
39
|
+
0-3 clarifying questions maximum. NEVER MORE THAN 3.
|
|
48
40
|
|
|
49
|
-
|
|
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.
|
|
41
|
+
Use AskUserQuestion with 2-4 concrete options derived from codebase exploration. If the task is unambiguous, ask zero questions and proceed.
|
|
53
42
|
|
|
54
|
-
Decision gate: Can you identify WHAT
|
|
43
|
+
Decision gate: Can you identify WHAT, WHERE, and EXPECTED OUTCOME? If yes, skip to Step 4.
|
|
55
44
|
|
|
56
45
|
## Step 4 — Scope Guard
|
|
57
46
|
|
|
58
|
-
Estimate
|
|
59
|
-
- Number of files affected
|
|
60
|
-
- Number of architectural layers touched (e.g., UI, API, DB, config)
|
|
47
|
+
Estimate files affected and architectural layers touched.
|
|
61
48
|
|
|
62
|
-
IF 5+ files OR 3+
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
49
|
+
IF 5+ files OR 3+ layers:
|
|
50
|
+
- AskUserQuestion: recommend `/flow:spec` instead:
|
|
51
|
+
- "Switch to /flow:spec (Recommended)" — touches [N] files across [N] layers, PRD keeps it organized
|
|
52
|
+
- "Continue with /flow:task" — understood, execute here
|
|
66
53
|
|
|
67
|
-
|
|
54
|
+
User can always override. Do not block.
|
|
68
55
|
|
|
69
56
|
## Step 5 — Execute
|
|
70
57
|
|
|
71
|
-
Do the work directly
|
|
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.
|
|
58
|
+
Do the work directly. NO AGENT TEAMS. NO PRD. Exception: ONE Task agent for isolated subtask if it prevents context bloat. Follow existing code patterns from CLAUDE.md and codebase.
|
|
77
59
|
|
|
78
60
|
## Step 6 — Verify (MANDATORY)
|
|
79
61
|
|
|
80
|
-
|
|
62
|
+
NEVER SILENTLY SKIP.
|
|
81
63
|
|
|
82
|
-
1. Check CLAUDE.md for
|
|
83
|
-
2. If
|
|
84
|
-
3. If
|
|
85
|
-
4. If
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
6. If still failing after 2 cycles: report the failure clearly with the error output. Do not silently move on.
|
|
64
|
+
1. Check CLAUDE.md for verification commands (build, test, lint)
|
|
65
|
+
2. If none: check `package.json`, `Makefile`, `pyproject.toml` for standard commands
|
|
66
|
+
3. If found: run them
|
|
67
|
+
4. If nothing found anywhere: warn and continue
|
|
68
|
+
5. If verification fails: fix and re-verify. Up to 2 fix cycles.
|
|
69
|
+
6. Still failing after 2 cycles: report failure clearly with error output. Do not silently move on.
|
|
89
70
|
|
|
90
71
|
## Step 7 — Commit
|
|
91
72
|
|
|
92
|
-
- Stage ONLY
|
|
93
|
-
-
|
|
73
|
+
- Stage ONLY changed files (never `git add .` or `git add -A`)
|
|
74
|
+
- Message format: `fix:` / `feat:` / `refactor:` / `chore:` + concise description
|
|
94
75
|
- Do NOT push
|
|
95
76
|
|
|
96
77
|
## Step 8 — Update Docs
|
|
97
78
|
|
|
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 project milestones.
|
|
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):
|
|
79
|
+
IF `.planning/STATE.md` exists, append to "What Was Built":
|
|
110
80
|
```
|
|
111
|
-
|
|
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
|
|
81
|
+
- /flow:task — [description] ([N] files, commit [short SHA])
|
|
119
82
|
```
|
|
120
83
|
|
|
121
|
-
|
|
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`
|
|
84
|
+
RULES: Do NOT update ROADMAP.md, PRDs, or create `.planning/` if missing.
|
|
125
85
|
|
|
126
|
-
|
|
127
|
-
|
|
86
|
+
**Session state:** Write `.claude/memory/session.md` (create dir if needed):
|
|
87
|
+
`# Session State` with Date, Developer, Branch, Working On (`/flow:task — [desc]`), Status, Next, Blockers fields.
|
|
128
88
|
|
|
129
|
-
|
|
89
|
+
Lessons prompt via AskUserQuestion: "Any lessons worth capturing?" — "No" / "Yes, let me describe it" → capture to `tasks/lessons.md` as one-liner. Skip if lessons.md doesn't exist. If at 10, promote most battle-tested to `CLAUDE.md ## Learned Rules` first.
|
|
130
90
|
|
|
131
|
-
|
|
91
|
+
## Step 9 — Summary
|
|
132
92
|
|
|
133
93
|
```
|
|
134
94
|
✓ /flow:task complete
|
|
135
|
-
[description
|
|
95
|
+
[description]
|
|
136
96
|
Files: [N] changed | Commit: [short SHA]
|
|
137
97
|
Verified: [pass/fail/skipped]
|
|
138
98
|
|
|
139
99
|
Next:
|
|
140
|
-
→ /flow:task [
|
|
100
|
+
→ /flow:task [desc] for another quick fix
|
|
141
101
|
→ /flow:go to continue project milestones
|
|
142
102
|
→ /flow:done to wrap up the session
|
|
143
103
|
```
|
|
144
104
|
|
|
145
|
-
**Linear comment
|
|
146
|
-
- Try `mcp__linear__list_issues`
|
|
147
|
-
- If Linear MCP
|
|
148
|
-
-
|
|
105
|
+
**Linear comment:** If branch name contains a Linear issue ID (e.g., `msig-45` in `feat/msig-45-rate-modeling`):
|
|
106
|
+
- Try `mcp__linear__list_issues` matching the identifier
|
|
107
|
+
- If Linear MCP available AND issue found: post progress comment via `mcp__linear__create_comment` with task summary
|
|
108
|
+
- Otherwise: skip silently
|
|
149
109
|
|
|
150
|
-
|
|
110
|
+
No Linear ID in branch name: skip silently.
|
package/skills/flow-triage.md
CHANGED
|
@@ -6,9 +6,9 @@ user_invocable: true
|
|
|
6
6
|
|
|
7
7
|
# /flow:triage — Brain Dump Triage
|
|
8
8
|
|
|
9
|
-
You are executing the `/flow:triage` skill.
|
|
9
|
+
You are executing the `/flow:triage` skill. Takes a brain dump (text blob, bullets, or stream of consciousness) and sorts it into actionable categories.
|
|
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 — Input
|
|
14
14
|
|
|
@@ -20,40 +20,38 @@ IF no argument: use AskUserQuestion: "Paste your brain dump — bullet list, str
|
|
|
20
20
|
## Step 2 — Context Load
|
|
21
21
|
|
|
22
22
|
Read in parallel (skip gracefully if missing):
|
|
23
|
-
- `.planning/ROADMAP.md` —
|
|
24
|
-
- `tasks/lessons.md` —
|
|
23
|
+
- `.planning/ROADMAP.md` — existing projects, avoid duplicates
|
|
24
|
+
- `tasks/lessons.md` — existing lessons, enforce cap
|
|
25
25
|
- `CLAUDE.md` — project context
|
|
26
26
|
|
|
27
27
|
Run `git config user.name` to identify the developer.
|
|
28
28
|
|
|
29
29
|
## Step 3 — Categorize
|
|
30
30
|
|
|
31
|
-
For each distinct item
|
|
32
|
-
- **Linear Issue** — actionable task, bug, or feature →
|
|
31
|
+
For each distinct item, classify into one of:
|
|
32
|
+
- **Linear Issue** — actionable task, bug, or feature → becomes a Linear issue
|
|
33
33
|
- **ROADMAP Entry** — future project or milestone idea → append to ROADMAP.md Future section
|
|
34
34
|
- **Lesson** — learning, pattern, or rule → append to tasks/lessons.md
|
|
35
|
-
- **Project** — project-sized work
|
|
36
|
-
- **Discard** — not actionable,
|
|
35
|
+
- **Project** — project-sized work → add to ROADMAP.md as planned project
|
|
36
|
+
- **Discard** — not actionable, duplicate, or too vague
|
|
37
37
|
|
|
38
38
|
## Step 4 — Present Plan
|
|
39
39
|
|
|
40
|
-
Show
|
|
40
|
+
Show categorization in a table:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
43
|
| # | Item | Category | Details |
|
|
44
44
|
|---|------|----------|---------|
|
|
45
45
|
| 1 | "Rate modeling table" | Linear Issue | Project: v18 Student Leasing, Priority: Normal |
|
|
46
46
|
| 2 | "Never use git add ." | Lesson | "Always stage specific files" |
|
|
47
|
-
| 3 | "
|
|
48
|
-
| 4 | "Had a thought about..." | Discard | Too vague to action |
|
|
49
|
-
| 5 | "Student leasing rate modeling" | Project | Add to ROADMAP as planned project |
|
|
47
|
+
| 3 | "Student leasing rate modeling" | Project | Add to ROADMAP as planned project |
|
|
50
48
|
```
|
|
51
49
|
|
|
52
50
|
Use AskUserQuestion: "Here's how I'd categorize your brain dump. Review and approve, or tell me what to change."
|
|
53
51
|
- "Looks good — execute it"
|
|
54
52
|
- "I want to make changes" (user provides corrections)
|
|
55
53
|
|
|
56
|
-
If the user wants changes, update
|
|
54
|
+
If the user wants changes, update and present again.
|
|
57
55
|
|
|
58
56
|
## Step 5 — Execute
|
|
59
57
|
|
|
@@ -61,37 +59,34 @@ For approved items:
|
|
|
61
59
|
|
|
62
60
|
**Linear Issues:**
|
|
63
61
|
- Check if Linear MCP tools are available (try `mcp__linear__list_teams`)
|
|
64
|
-
- If available: create issues with `mcp__linear__create_issue` (team: "Monument Square", default project: "Future / Backlog" unless a better match exists
|
|
65
|
-
- If not available: print
|
|
62
|
+
- If available: create issues with `mcp__linear__create_issue` (team: "Monument Square", default project: "Future / Backlog" unless a better match exists)
|
|
63
|
+
- If not available: print formatted text for manual creation:
|
|
66
64
|
```
|
|
67
65
|
Linear issues to create manually:
|
|
68
66
|
- [Title] | Team: Monument Square | Project: [suggested] | Priority: [suggested]
|
|
69
67
|
```
|
|
70
68
|
|
|
71
69
|
**ROADMAP Entries:**
|
|
72
|
-
- Append to `.planning/ROADMAP.md` under
|
|
73
|
-
- If that section doesn't exist, create it at the bottom of the file
|
|
70
|
+
- Append to `.planning/ROADMAP.md` under "Future (Unscheduled)" section (create if missing)
|
|
74
71
|
- Format: `| [name] | Unscheduled | — |`
|
|
75
72
|
|
|
76
73
|
**Projects:**
|
|
77
|
-
- Add to `.planning/ROADMAP.md`
|
|
78
|
-
- Add
|
|
79
|
-
- If no active project exists (all
|
|
80
|
-
- Set
|
|
81
|
-
- Update STATE.md to point to
|
|
82
|
-
- Optionally create a Linear project (if
|
|
74
|
+
- Add to `.planning/ROADMAP.md` project table with status "Planned"
|
|
75
|
+
- Add section: `## [Project Name]\n\n**Goal:** [goal]\n\n**Milestones:** Run /flow:spec when this project is active.`
|
|
76
|
+
- If no active project exists (all "Complete" or none):
|
|
77
|
+
- Set first new project status to "Pending — needs `/flow:spec`"
|
|
78
|
+
- Update STATE.md to point to new project as current
|
|
79
|
+
- Optionally create a Linear project (if MCP available)
|
|
83
80
|
|
|
84
81
|
**Lessons:**
|
|
85
82
|
- Append to `tasks/lessons.md` as one-liners: `- **[topic]** The rule`
|
|
86
83
|
- Enforce max 10 cap (promote most battle-tested to `CLAUDE.md ## Learned Rules` if full)
|
|
87
|
-
-
|
|
84
|
+
- Create `tasks/lessons.md` if it doesn't exist
|
|
88
85
|
|
|
89
86
|
**Discard:** No action needed.
|
|
90
87
|
|
|
91
88
|
## Step 6 — Summary
|
|
92
89
|
|
|
93
|
-
Print a compact completion block:
|
|
94
|
-
|
|
95
90
|
```
|
|
96
91
|
Triage complete:
|
|
97
92
|
- [N] Linear issues created (in [project names])
|
|
@@ -101,10 +96,9 @@ Triage complete:
|
|
|
101
96
|
- [N] items discarded
|
|
102
97
|
```
|
|
103
98
|
|
|
104
|
-
|
|
99
|
+
Next actions:
|
|
105
100
|
```
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
→ /flow:status to see current state
|
|
101
|
+
→ /flow:triage for another brain dump
|
|
102
|
+
→ /flow:spec to plan a project from triaged items
|
|
103
|
+
→ /flow:status to see current state
|
|
110
104
|
```
|