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.
-**Epic archival**: `flowctl epic archive <id>` moves closed epic + tasks + specs + reviews to `.flow/.archive/`; `flowctl epic clean` archives all closed epics at once
88
-
-**Learning loop**: plan injects memory (Step 1b), worker saves lessons (Phase 5b, included in default sequence when memory.enabled is true), epic close prompts retro, retro verifies stale entries via `flowctl memory verify <id>`
88
+
-**Learning loop**: plan injects memory (Step 6), worker saves lessons (Phase 11, included in default sequence when memory.enabled is true), epic close prompts retro, retro verifies stale entries via `flowctl memory verify <id>`
89
89
-**Task duration**: `flowctl done` auto-tracks `duration_seconds` from start to completion, rendered in evidence
-**Plan auto-execute**: `/flow-code:plan` defaults to auto-execute work after planning (Teams mode handles any task count); `--plan-only` to opt out
100
-
-**Goal-backward verification**: worker Phase 5 re-reads acceptance criteria and verifies each is actually satisfied before completing
100
+
-**Goal-backward verification**: worker Phase 10 re-reads acceptance criteria and verifies each is actually satisfied before completing
101
101
-**Full-auto by default**: `/flow-code:plan` and `/flow-code:work` require zero interactive questions — AI reads git state, `.flow/` config, and request context to make branch, review, and research decisions autonomously. Default mode is Worktree + Teams + Phase-Gate (all three active). Work resumes from `.flow/` state on every startup (not a special "resume mode"). All tasks done → auto push + draft PR (`--no-pr` to skip)
102
102
-**Cross-platform**: flowctl is a single Rust binary (macOS/Linux). RP plan-review auto-degrades to Codex on platforms where rp-cli is unavailable. Bash hooks degrade gracefully on Windows (skip, don't block)
103
103
-**Session start**: CLAUDE.md instruction (not an enforced hook) — if `.flow/` exists, run `flowctl status --interrupted` to check for unfinished work from a previous session and resume with the suggested `/flow-code:work <id>` command
5. Repeat from step 1 until response has `all_done: true`
40
40
41
-
Do NOT skip phases. Do NOT execute phases out of order. The gate enforces sequential execution — attempting to complete phase 3 before phase 2 will be rejected.
41
+
Do NOT skip phases. Do NOT execute phases out of order. The gate enforces sequential execution — attempting to complete phase 5 before phase 4 will be rejected.
42
42
<!-- /section:core -->
43
43
44
44
<!-- section:team -->
@@ -129,7 +129,7 @@ After `flowctl done`, send a `task_complete` message, then wait for next assignm
129
129
<!-- /section:team -->
130
130
131
131
<!-- section:team -->
132
-
## Phase 0: Verify Configuration (CRITICAL)
132
+
## Phase 1: Verify Configuration (CRITICAL)
133
133
134
134
**If TEAM_MODE is `true`:**
135
135
@@ -139,7 +139,7 @@ After `flowctl done`, send a `task_complete` message, then wait for next assignm
"rp-cli builder timed out or failed, using built-in fallback"
247
247
and skip to Step 1.
248
-
Use the returned plan to guide Phase 2 implementation.
248
+
Use the returned plan to guide Phase 5 implementation.
249
249
250
250
ELSE (RP_CONTEXT == "none"):
251
251
Skip to Step 1 (existing behavior, unchanged).
@@ -286,11 +286,11 @@ END
286
286
287
287
3. Read **Optional** files as needed based on Step 1 findings.
288
288
289
-
4. Continue to Phase 2a/2 only after investigation is complete.
289
+
4. Continue to Phase 4/5 only after investigation is complete.
290
290
<!-- /section:core -->
291
291
292
292
<!-- section:tdd -->
293
-
## Phase 2a: TDD Red-Green (if TDD_MODE=true)
293
+
## Phase 4: TDD Red-Green (if TDD_MODE=true)
294
294
295
295
**Skip this phase if TDD_MODE is not `true`.**
296
296
@@ -303,15 +303,15 @@ Before implementing the feature, write failing tests first:
303
303
```
304
304
If tests pass already, the feature may already be implemented. Investigate before proceeding.
305
305
306
-
2.**Green** — Now implement the minimum code to make tests pass (this IS Phase 2).
306
+
2.**Green** — Now implement the minimum code to make tests pass (this IS Phase 5).
307
307
308
308
3.**Refactor** — After tests pass, clean up without changing behavior. Run tests again to confirm still green.
309
309
310
310
The key constraint: **no implementation code before a failing test exists**. This ensures every change is test-driven.
311
311
<!-- /section:tdd -->
312
312
313
313
<!-- section:core -->
314
-
## Phase 2: Implement
314
+
## Phase 5: Implement
315
315
316
316
**First, capture base commit for scoped review:**
317
317
```bash
@@ -401,7 +401,7 @@ If during implementation you discover the spec is wrong, incomplete, or contradi
401
401
- What the spec says vs what reality requires
402
402
- Why the spec approach won't work
403
403
- A suggested correction (if you have one)
404
-
3. **Return early** with status `SPEC_CONFLICT` in your Phase 6 summary
404
+
3. **Return early** with status `SPEC_CONFLICT` in your Phase 12 summary
405
405
4. Do NOT mark the task as done — leave it `in_progress`
406
406
407
407
The main conversation will resolve the conflict and re-dispatch you (or update the spec).
@@ -414,7 +414,7 @@ The main conversation will resolve the conflict and re-dispatch you (or update t
414
414
<!-- /section:core -->
415
415
416
416
<!-- section:core -->
417
-
## Phase 2.3: Plan Alignment Check
417
+
### Plan Alignment Check
418
418
419
419
Quick sanity check — did implementation stay within plan scope?
420
420
@@ -431,11 +431,11 @@ Quick sanity check — did implementation stay within plan scope?
431
431
Drift: <description of what changed and why>
432
432
```
433
433
434
-
**This is a 30-second check, not a full re-review.** Read the spec, glance at your diff, note any drift. Then proceed to Phase 2.5.
434
+
**This is a 30-second check, not a full re-review.** Read the spec, glance at your diff, note any drift. Then proceed to Phase 6.
435
435
<!-- /section:core -->
436
436
437
437
<!-- section:core -->
438
-
## Phase 2.5: Verify & Fix
438
+
## Phase 6: Verify & Fix
439
439
440
440
**After implementing, before committing — verify your code works. This is normal development: implement → test → fix → retest → pass → commit.**
441
441
@@ -451,7 +451,7 @@ Continue until guard passes. There is no retry limit — this is not a retry loo
451
451
452
452
**If the failure is not a code bug but a spec problem** (e.g., spec asks for something impossible, acceptance criteria contradict each other, required API doesn't exist):
453
453
- Do NOT keep trying to fix code
454
-
- Return early with `SPEC_CONFLICT` status (see Phase 2 spec conflict protocol)
454
+
- Return early with `SPEC_CONFLICT` status (see Phase 5 spec conflict protocol)
455
455
- In Teams mode, send a `Spec conflict` message to the coordinator
456
456
457
457
**Teams mode constraint:** When `TEAM_MODE=true`, only fix files in `OWNED_FILES`. If the failure is caused by a file you don't own, request access via `flowctl approval create --kind file_access` + `approval show --wait` (or fallback `Need file access:` SendMessage), thenwaitfora resolution. If access is rejected or times out, note the issuein your completion summary.
@@ -473,11 +473,11 @@ If you find issues, fix them and re-run `<FLOWCTL> guard` to verify.
473
473
474
474
**Rules:**
475
475
- Only fix issues in YOUR changes — don't refactor unrelated code
476
-
- If unsure whether something is an issue, leave it for Phase 4 (external review)
476
+
- If unsure whether something is an issue, leave it for Phase 8 (external review)
477
477
<!-- /section:core -->
478
478
479
479
<!-- section:core -->
480
-
## Phase 3: Commit
480
+
## Phase 7: Commit
481
481
482
482
```bash
483
483
git add -A
@@ -493,9 +493,9 @@ Use conventional commits. Scope from task context.
493
493
<!-- /section:core -->
494
494
495
495
<!-- section:review -->
496
-
## Phase 4: Review (MANDATORY if REVIEW_MODE != none)
496
+
## Phase 8: Review (MANDATORY if REVIEW_MODE != none)
497
497
498
-
**If REVIEW_MODE is `none`, skip to Phase 5.**
498
+
**If REVIEW_MODE is `none`, skip to Phase 10.**
499
499
500
500
**If REVIEW_MODE is `rp` or `codex`, you MUST invoke impl-review and receive SHIP before proceeding.**
501
501
@@ -520,13 +520,13 @@ If NEEDS_WORK:
520
520
3. Commit fixes
521
521
4. Re-invoke the skill: `/flow-code:impl-review <TASK_ID> --base $BASE_COMMIT`
522
522
523
-
Continue until SHIP verdict. Save final `REVIEW_ITERATIONS` count for Phase 5 evidence.
523
+
Continue until SHIP verdict. Save final `REVIEW_ITERATIONS` count for Phase 10 evidence.
524
524
<!-- /section:review -->
525
525
526
526
<!-- section:core -->
527
-
## Phase 5: Complete
527
+
## Phase 10: Complete
528
528
529
-
**Prerequisite:** Phase 5c (Outputs Dump) must have run if`outputs.enabled=true`. The phase registry orders 5c before 5 so the narrative handoff file exists before dependents unblock.
529
+
**Prerequisite:** Phase 9 (Outputs Dump) must have run if`outputs.enabled=true`. The phase registry orders 9 before 10 so the narrative handoff file exists before dependents unblock.
530
530
531
531
**Verify before completing:**
532
532
```bash
@@ -547,7 +547,7 @@ Go through each `- [ ]` acceptance criterion in the spec:
547
547
548
548
**Rules:**
549
549
- This is a 1-minute sanity check, not a full re-review
550
-
- Only check acceptance criteria, not general quality (Phase 2.5 already did that)
550
+
- Only check acceptance criteria, not general quality (Phase 6 already did that)
551
551
- If you discover a gap, fix + commit + re-run guard
552
552
- If you discover the criterion is impossible, note it in the summary (not SPEC_CONFLICT at this stage)
553
553
@@ -556,7 +556,7 @@ Capture the commit hash:
556
556
COMMIT_HASH=$(git rev-parse HEAD)
557
557
```
558
558
559
-
Capture workspace changes (compare against Phase 1 baseline):
559
+
Capture workspace changes (compare against Phase 2 baseline):
**If a review was done (REVIEW_MODE != none)**, append the review receipt to evidence so it gets auto-archived:
576
576
```bash
577
-
# Only if RECEIPT_PATH exists from Phase 4
577
+
# Only if RECEIPT_PATH exists from Phase 8
578
578
if [ -f"${RECEIPT_PATH:-/tmp/impl-review-receipt.json}" ];then
579
579
# Merge review_receipt into evidence JSON
580
580
python3 -c "
@@ -610,9 +610,9 @@ Status MUST be `done`. If not:
610
610
<!-- /section:core -->
611
611
612
612
<!-- section:outputs -->
613
-
## Phase 5c: Outputs Dump (if outputs.enabled)
613
+
## Phase 9: Outputs Dump (if outputs.enabled)
614
614
615
-
**Runs BEFORE Phase 5 completion.** Phase 5c must produce the handoff artifact before `flowctl done` fires, otherwise a dependent task can start re-anchoring and race past the missing file. The phase registry in`flowctl-cli/src/commands/workflow/phase.rs` enforces this ordering (5c before 5).
615
+
**Runs BEFORE Phase 10 completion.** Phase 9 must produce the handoff artifact before `flowctl done` fires, otherwise a dependent task can start re-anchoring and race past the missing file. The phase registry in`flowctl-cli/src/commands/workflow/phase.rs` enforces this ordering (9 before 10).
616
616
617
617
**Skip if`outputs.enabled` is false.** This is gated on its own config key — independent from `memory.enabled`. Outputs are a lightweight narrative handoff layer (plain markdown, no verification), separate from the verified memory system.
618
618
@@ -645,18 +645,18 @@ fi
645
645
- All three sections are allowed to be missing or empty — downstream readers handle that gracefully
646
646
- Focus on narrative handoff: what would help the next worker, not comprehensive docs
647
647
- Don't repeat spec content — only things you learned while working
648
-
- This is narrative handoff, NOT verified memory. Save verified pitfalls/conventions in Phase 5b.
648
+
- This is narrative handoff, NOT verified memory. Save verified pitfalls/conventions in Phase 11.
649
649
<!-- /section:outputs -->
650
650
651
651
<!-- section:memory -->
652
-
## Phase 5b: Memory Auto-Save (if memory enabled)
652
+
## Phase 11: Memory Auto-Save (if memory enabled)
653
653
654
-
**Skip if memory.enabled is false or was not checked in Phase 1.**
654
+
**Skip if memory.enabled is false or was not checked in Phase 2.**
655
655
656
656
After completing the task, capture any non-obvious lessons learned:
657
657
658
658
```bash
659
-
# Check if memory is enabled (already checked in Phase 1)
659
+
# Check if memory is enabled (already checked in Phase 2)
660
660
<FLOWCTL> config get memory.enabled --json
661
661
```
662
662
@@ -686,7 +686,7 @@ If enabled, reflect on what you discovered during implementation and save **only
686
686
<!-- /section:memory -->
687
687
688
688
<!-- section:core -->
689
-
## Phase 6: Return
689
+
## Phase 12: Return
690
690
691
691
Return a concise summary to the main conversation:
0 commit comments