You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 11, 2026. It is now read-only.
These flags override the corresponding AI decision without entering the analysis flow:
107
-
-`--research=rp|grep`, `--depth=short|standard|deep`, `--review=rp|codex|export|none`, `--plan-only`, `--no-capability-scan` (skip capability-scout in Step 1)
108
-
-`--interactive` — **opt-in** interview refinement. Before Context Analysis, invoke `/flow-code:interview` with the raw request text. The interview returns refined-spec markdown (Problem / Scope / Acceptance / Open Questions). Use that refined text as the effective request for Context Analysis and Step 1. When this flag is NOT passed, the plan flow is unchanged and the zero-interaction default (AGENTS.md:99) is preserved. There is intentionally no auto-trigger heuristic and no `--no-interview` flag — interview is opt-in only.
107
+
-`--research=rp|grep`, `--depth=short|standard|deep`, `--review=rp|codex|export|none`, `--plan-only`, `--no-capability-scan` (skip capability-scout in Step 4)
108
+
-`--interactive` — **opt-in** interview refinement. Before Context Analysis, invoke `/flow-code:interview` with the raw request text. The interview returns refined-spec markdown (Problem / Scope / Acceptance / Open Questions). Use that refined text as the effective request for Context Analysis and Step 4. When this flag is NOT passed, the plan flow is unchanged and the zero-interaction default (AGENTS.md:99) is preserved. There is intentionally no auto-trigger heuristic and no `--no-interview` flag — interview is opt-in only.
109
109
110
-
Proceed to Step 1 immediately.
110
+
Proceed to Step 4 immediately.
111
111
112
112
## Workflow
113
113
114
114
Read [steps.md](steps.md) and follow each step in order.
115
115
116
-
**CRITICAL — Step 1 (Research)**: You MUST launch ALL scouts listed in steps.md in ONE parallel Task call. Do NOT skip scouts or run them sequentially. Each scout provides unique signal.
116
+
**CRITICAL — Step 4 (Research)**: You MUST launch ALL scouts listed in steps.md in ONE parallel Task call. Do NOT skip scouts or run them sequentially. Each scout provides unique signal.
117
117
118
118
If review was decided (rp/codex/export):
119
-
- rp or codex: run `/flow-code:plan-review` after Step 4, fix issues until it passes
120
-
- export: run `/flow-code:plan-review` with export mode after Step 4
119
+
- rp or codex: run `/flow-code:plan-review` after Step 9, fix issues until it passes
120
+
- export: run `/flow-code:plan-review` with export mode after Step 9
121
121
122
122
## Output
123
123
@@ -135,9 +135,9 @@ All plans go into `.flow/`:
135
135
136
136
## Auto-Execute
137
137
138
-
**Steps.md Step 8 handles auto-execution.** After steps complete:
Copy file name to clipboardExpand all lines: codex/skills/flow-code-plan/steps.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Flow Plan Steps
2
2
3
-
**IMPORTANT**: Steps 1-3 (research, gap analysis, depth) ALWAYS run regardless of input type.
3
+
**IMPORTANT**: Steps 4-9 (research, gap analysis, depth) ALWAYS run regardless of input type.
4
4
5
5
**CRITICAL**: If you are about to create:
6
6
- a markdown TODO list,
@@ -34,7 +34,7 @@ Use **T-shirt sizes** based on observable metrics — not token estimates (model
34
34
35
35
**Rules**: Combine sequential S tasks into one M. Split L tasks into M tasks. If 7+ tasks, look for over-splitting. Minimize file overlap between tasks for parallel work — list expected files in `**Files:**`, use `flowctl dep add` when tasks must share files.
36
36
37
-
## Step 0: Initialize .flow
37
+
## Step 1: Initialize .flow
38
38
39
39
**CRITICAL: flowctl is BUNDLED — NOT installed globally.**`which flowctl` will fail (expected). Always use:
> **Note — opt-in interactive refinement:** If the user passed `--interactive`, BEFORE running Step 0 (Context Analysis in SKILL.md), invoke `/flow-code:interview` with the raw request text. The interview returns refined-spec markdown with Problem / Scope / Acceptance / Open Questions sections; use that refined text as the effective request for Context Analysis and all subsequent steps. Without the flag, skip this entirely — Step 0.5 below remains an automated internal brainstorm and is **not** interactive. Do not add any auto-trigger heuristic (length, punctuation, verb detection); interview must be opt-in only to preserve the zero-interaction contract (AGENTS.md:99).
49
+
> **Note — opt-in interactive refinement:** If the user passed `--interactive`, BEFORE running Step 1 (Context Analysis in SKILL.md), invoke `/flow-code:interview` with the raw request text. The interview returns refined-spec markdown with Problem / Scope / Acceptance / Open Questions sections; use that refined text as the effective request for Context Analysis and all subsequent steps. Without the flag, skip this entirely — Step 2 below remains an automated internal brainstorm and is **not** interactive. Do not add any auto-trigger heuristic (length, punctuation, verb detection); interview must be opt-in only to preserve the zero-interaction contract (AGENTS.md:99).
50
50
51
-
## Step 0.5: Clarity Check (auto — no human input)
51
+
## Step 2: Clarity Check (auto — no human input)
52
52
53
-
**Clear?** (specific behavior, bug with repro, existing pattern, has acceptance criteria) → skip to Step 1.
53
+
**Clear?** (specific behavior, bug with repro, existing pattern, has acceptance criteria) → skip to Step 4.
**If input is a Flow ID** (fn-N-slug or fn-N-slug.M, including legacy fn-N/fn-N-xxx): First fetch it with `$FLOWCTL show <id> --json` and `$FLOWCTL cat <id>` to get the request context.
- Capability gaps (from capability-scout) - persist in Step 5 (see below)
106
+
- Capability gaps (from capability-scout) - persist in Step 10 (see below)
107
107
108
-
### Step 1a: Deep context via RP (after repo-scout)
108
+
### Step 5: Deep context via RP (after repo-scout)
109
109
110
110
After repo-scout returns, gather deep codebase context using the best available RP tier. **Exactly one RP-powered call per plan run** — do not call both context_builder and context-scout.
111
111
@@ -130,7 +130,7 @@ Run `context-scout` as a subagent (existing behavior, unchanged). This is the pr
130
130
131
131
Feed RP/context-scout findings into the epic spec alongside repo-scout findings.
- If a past decision conflicts with the current plan, note it as an explicit "supersedes decision #N" in the epic spec
159
159
- 0-3 applied entries per plan is normal
160
160
161
-
## Step 2: Stakeholder & scope check
161
+
## Step 7: Stakeholder & scope check
162
162
163
163
Before diving into gaps, identify who's affected:
164
164
-**End users** — What changes for them? New UI, changed behavior?
@@ -167,13 +167,13 @@ Before diving into gaps, identify who's affected:
167
167
168
168
This shapes what the plan needs to cover.
169
169
170
-
## Step 3: Flow gap check
170
+
## Step 8: Flow gap check
171
171
172
172
Run gap analyst subagent: `flow-code:flow-gap-analyst(<request>, research_findings)`. Fold gaps into the plan.
173
173
174
-
**After epic is created (Step 5):** Register gaps via `$FLOWCTL gap add --epic <id> --capability "<desc>" --priority required|important|nice-to-have --source flow-gap-analyst --json`. Priority mapping: "MUST answer" → required, high-impact edge cases → important, deferrable → nice-to-have.
174
+
**After epic is created (Step 10):** Register gaps via `$FLOWCTL gap add --epic <id> --capability "<desc>" --priority required|important|nice-to-have --source flow-gap-analyst --json`. Priority mapping: "MUST answer" → required, high-impact edge cases → important, deferrable → nice-to-have.
175
175
176
-
## Step 4: Pick depth
176
+
## Step 9: Pick depth
177
177
178
178
Default to standard unless complexity demands more or less.
179
179
@@ -200,7 +200,7 @@ Default to standard unless complexity demands more or less.
200
200
- Docs + metrics
201
201
- Risks + mitigations
202
202
203
-
## Step 5: Write to .flow
203
+
## Step 10: Write to .flow
204
204
205
205
**Efficiency note**: Use stdin (`--file -`) with heredocs to avoid temp files. Use `task spec` to set description + acceptance in one call.
206
206
@@ -332,7 +332,7 @@ Default to standard unless complexity demands more or less.
332
332
- Max 5-7 targets per task — enough to ground the worker, not so many it wastes context
333
333
- Use exact file paths with optional line ranges (e.g., `src/auth.ts:23-45`)
334
334
- **Required** = must read before implementing. **Optional** = helpful reference
335
-
- Auto-populated from repo-scout/context-scout findings in Step 1 research
335
+
- Auto-populated from repo-scout/context-scout findings in Step 4 research
336
336
- If no relevant files found by scouts, leave the section empty (worker skips Phase 1.5)
337
337
338
338
**Layer field**: If stack config is set, tag each task with its primary layer. This helps the worker select the right guard commands (e.g., `pytest` for backend, `pnpm test` for frontend). Full-stack tasks run all guards.
@@ -356,7 +356,7 @@ Default to standard unless complexity demands more or less.
**Skip if `--no-capability-scan` was passed, or capability-scout was not run, or scout errored (fails open).**
362
362
@@ -384,26 +384,26 @@ $FLOWCTL gap add --epic <epic-id> \
384
384
385
385
`important` and `nice-to-have` gaps are recorded in the markdown file only — not in the gap registry (don't over-fill with noise).
386
386
387
-
## Step 6: Validate
387
+
## Step 12: Validate
388
388
389
389
```bash
390
390
$FLOWCTL validate --epic <epic-id> --json
391
391
```
392
392
393
393
Fix any errors before proceeding.
394
394
395
-
### Step 6b: Auto-Extract Acceptance Checklist
395
+
### Step 13: Auto-Extract Acceptance Checklist
396
396
397
397
After validation, generate `.flow/checklists/<epic-id>.json` by parsing `## Acceptance` sections from epic + task specs. Each `- [ ]` line becomes a checklist item with `source` (epic or task ID) and `status: "pending"`. Skip if no acceptance criteria found. Commit with the plan (`git add .flow/checklists/`). Consumed by `/flow-code:epic-review`.
398
398
399
-
## Step 7: Review (if chosen at start)
399
+
## Step 14: Review (if chosen at start)
400
400
401
401
If review was decided in Context Analysis:
402
402
1. Initialize `PLAN_REVIEW_ITERATIONS=0`
403
403
2. Invoke `/flow-code:plan-review` with the epic ID
404
404
3. If review returns "Needs Work" or "Major Rethink":
405
405
- Increment `PLAN_REVIEW_ITERATIONS`
406
-
-**If `PLAN_REVIEW_ITERATIONS >= 2`**: stop the loop. Log: "Plan review: 2 iterations completed. Proceeding." Go to Step 8.
406
+
-**If `PLAN_REVIEW_ITERATIONS >= 2`**: stop the loop. Log: "Plan review: 2 iterations completed. Proceeding." Go to Step 15.
407
407
-**Re-anchor EVERY iteration** (do not skip):
408
408
```bash
409
409
$FLOWCTL show <epic-id> --json
@@ -417,7 +417,7 @@ If review was decided in Context Analysis:
417
417
418
418
**Why re-anchor every iteration?** Per Anthropic's long-running agent guidance: context compresses, you forget details. Re-read before each fix pass.
0 commit comments