flow-workflows 0.74.0 → 0.76.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/adapters/codex/CORE.md +1 -1
- package/adapters/codex/skills/flow-bug-fix/SKILL.md +3 -1
- package/adapters/codex/skills/flow-bug-investigate/SKILL.md +2 -0
- package/adapters/codex/skills/flow-bug-postmortem/SKILL.md +2 -0
- package/adapters/codex/skills/flow-bug-review/SKILL.md +2 -0
- package/adapters/codex/skills/flow-bug-ship/SKILL.md +2 -0
- package/adapters/codex/skills/flow-bug-start/SKILL.md +2 -0
- package/adapters/codex/skills/flow-bug-validate/SKILL.md +2 -0
- package/adapters/codex/skills/flow-doctor/SKILL.md +1 -0
- package/adapters/codex/skills/flow-feat-build/SKILL.md +6 -2
- package/adapters/codex/skills/flow-feat-design/SKILL.md +2 -0
- package/adapters/codex/skills/flow-feat-plan/SKILL.md +2 -0
- package/adapters/codex/skills/flow-feat-review/SKILL.md +2 -0
- package/adapters/codex/skills/flow-feat-ship/SKILL.md +2 -0
- package/adapters/codex/skills/flow-feat-start/SKILL.md +2 -0
- package/adapters/codex/skills/flow-feat-validate/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-abandon/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-clean/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-daily/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-green/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-query/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-respond/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-resume/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-status/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-try/SKILL.md +2 -0
- package/adapters/codex/skills/flow-work-watch/SKILL.md +2 -0
- package/adapters/gemini/CORE.md +1 -1
- package/adapters/gemini/commands/flow/bug/fix.toml +3 -1
- package/adapters/gemini/commands/flow/bug/investigate.toml +2 -0
- package/adapters/gemini/commands/flow/bug/postmortem.toml +2 -0
- package/adapters/gemini/commands/flow/bug/review.toml +2 -0
- package/adapters/gemini/commands/flow/bug/ship.toml +2 -0
- package/adapters/gemini/commands/flow/bug/start.toml +2 -0
- package/adapters/gemini/commands/flow/bug/validate.toml +2 -0
- package/adapters/gemini/commands/flow/doctor.toml +1 -0
- package/adapters/gemini/commands/flow/feat/build.toml +6 -2
- package/adapters/gemini/commands/flow/feat/design.toml +2 -0
- package/adapters/gemini/commands/flow/feat/plan.toml +2 -0
- package/adapters/gemini/commands/flow/feat/review.toml +2 -0
- package/adapters/gemini/commands/flow/feat/ship.toml +2 -0
- package/adapters/gemini/commands/flow/feat/start.toml +2 -0
- package/adapters/gemini/commands/flow/feat/validate.toml +2 -0
- package/adapters/gemini/commands/flow/work/abandon.toml +2 -0
- package/adapters/gemini/commands/flow/work/clean.toml +2 -0
- package/adapters/gemini/commands/flow/work/daily.toml +2 -0
- package/adapters/gemini/commands/flow/work/green.toml +2 -0
- package/adapters/gemini/commands/flow/work/query.toml +2 -0
- package/adapters/gemini/commands/flow/work/respond.toml +2 -0
- package/adapters/gemini/commands/flow/work/resume.toml +2 -0
- package/adapters/gemini/commands/flow/work/status.toml +2 -0
- package/adapters/gemini/commands/flow/work/try.toml +2 -0
- package/adapters/gemini/commands/flow/work/watch.toml +2 -0
- package/adapters/hermes/CORE.md +1 -1
- package/adapters/hermes/skills/flow-bug-fix/SKILL.md +3 -1
- package/adapters/hermes/skills/flow-bug-investigate/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-bug-postmortem/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-bug-review/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-bug-ship/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-bug-start/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-bug-validate/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-doctor/SKILL.md +1 -0
- package/adapters/hermes/skills/flow-feat-build/SKILL.md +6 -2
- package/adapters/hermes/skills/flow-feat-design/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-feat-plan/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-feat-review/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-feat-ship/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-feat-start/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-feat-validate/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-abandon/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-clean/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-daily/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-green/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-query/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-respond/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-resume/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-status/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-try/SKILL.md +2 -0
- package/adapters/hermes/skills/flow-work-watch/SKILL.md +2 -0
- package/adapters/opencode/CORE.md +1 -1
- package/adapters/opencode/commands/flow-bug-fix.md +3 -1
- package/adapters/opencode/commands/flow-bug-investigate.md +2 -0
- package/adapters/opencode/commands/flow-bug-postmortem.md +2 -0
- package/adapters/opencode/commands/flow-bug-review.md +2 -0
- package/adapters/opencode/commands/flow-bug-ship.md +2 -0
- package/adapters/opencode/commands/flow-bug-start.md +2 -0
- package/adapters/opencode/commands/flow-bug-validate.md +2 -0
- package/adapters/opencode/commands/flow-doctor.md +1 -0
- package/adapters/opencode/commands/flow-feat-build.md +6 -2
- package/adapters/opencode/commands/flow-feat-design.md +2 -0
- package/adapters/opencode/commands/flow-feat-plan.md +2 -0
- package/adapters/opencode/commands/flow-feat-review.md +2 -0
- package/adapters/opencode/commands/flow-feat-ship.md +2 -0
- package/adapters/opencode/commands/flow-feat-start.md +2 -0
- package/adapters/opencode/commands/flow-feat-validate.md +2 -0
- package/adapters/opencode/commands/flow-work-abandon.md +2 -0
- package/adapters/opencode/commands/flow-work-clean.md +2 -0
- package/adapters/opencode/commands/flow-work-daily.md +2 -0
- package/adapters/opencode/commands/flow-work-green.md +2 -0
- package/adapters/opencode/commands/flow-work-query.md +2 -0
- package/adapters/opencode/commands/flow-work-respond.md +2 -0
- package/adapters/opencode/commands/flow-work-resume.md +2 -0
- package/adapters/opencode/commands/flow-work-status.md +2 -0
- package/adapters/opencode/commands/flow-work-try.md +2 -0
- package/adapters/opencode/commands/flow-work-watch.md +2 -0
- package/package.json +1 -1
- package/plugins/flow/.claude-plugin/plugin.json +1 -1
- package/plugins/flow/CHANGELOG.md +43 -0
|
@@ -16,6 +16,8 @@ prompt = """
|
|
|
16
16
|
|
|
17
17
|
Read `~/.claude/flow/CORE.gemini.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
18
18
|
|
|
19
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
20
|
+
|
|
19
21
|
Use when returning to a work after a break (next morning, another session).
|
|
20
22
|
|
|
21
23
|
## 1. Detection
|
|
@@ -16,6 +16,8 @@ prompt = """
|
|
|
16
16
|
|
|
17
17
|
Read `~/.claude/flow/CORE.gemini.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
18
18
|
|
|
19
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
20
|
+
|
|
19
21
|
Overview of works in progress; detects divergences between artifacts and actual git state.
|
|
20
22
|
|
|
21
23
|
## 1. List works
|
|
@@ -16,6 +16,8 @@ prompt = """
|
|
|
16
16
|
|
|
17
17
|
Read `~/.claude/flow/CORE.gemini.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
18
18
|
|
|
19
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
20
|
+
|
|
19
21
|
Temporarily point the **main checkout** at another branch to test it against this checkout's live environment (running stack, DB, containers), then return — a generic `make wt-try`/`wt-back` pair. The git switch is built in; the project-specific re-sync (e.g. migrations) comes from `git.worktree_resync` in `FLOW.md`. Operates **in place**; never creates or touches worktrees.
|
|
20
22
|
|
|
21
23
|
## 1. Parse the argument
|
|
@@ -16,6 +16,8 @@ prompt = """
|
|
|
16
16
|
|
|
17
17
|
Read `~/.claude/flow/CORE.gemini.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with; the wait it delegates takes `models.supervisors`.**
|
|
18
18
|
|
|
19
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
20
|
+
|
|
19
21
|
**Autopiloted post-deploy monitoring**: signals **scoped to the change** over a window (default 30 min), against a baseline; alert on errors or performance regressions from the deploy.
|
|
20
22
|
|
|
21
23
|
Usage: `/flow:work:watch {PREFIX}XXXXX [duration]` (prefix from `tracker.prefix`; default `30m`).
|
package/adapters/hermes/CORE.md
CHANGED
|
@@ -17,7 +17,7 @@ Every `/flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
17
17
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
18
18
|
`flow-core`" means this file.
|
|
19
19
|
|
|
20
|
-
**This file belongs to flow `0.
|
|
20
|
+
**This file belongs to flow `0.76.0`.** Compare it once, at the start of the session, against
|
|
21
21
|
`version` in `~/.claude/flow/.claude-plugin/plugin.json`. The two differing means the session
|
|
22
22
|
is running a **mixture** — the commands from one copy of the plugin, these shared rules from another
|
|
23
23
|
— which is exactly what happens when a branch or a release candidate is loaded over an installed
|
|
@@ -24,6 +24,8 @@ Apply the fix. **Minimum viable**: no refactor of adjacent areas. Note other pro
|
|
|
24
24
|
|
|
25
25
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`.**
|
|
26
26
|
|
|
27
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
28
|
+
|
|
27
29
|
- Read `meta.json` and `00-summary.md`; open in full only `03-investigation.md` (root cause, constraints for the fix) (minimal reproduction, root cause, constraints for the fix). (flow-core §5)
|
|
28
30
|
- `size` `XS`: may start without `investigate`, but require a 2-3 line description of the fix.
|
|
29
31
|
- `size` ≥ S: require `investigate` in `phases_done` (on S it will have run its reproduction half only).
|
|
@@ -93,7 +95,7 @@ Save it in `04-fix.md` under `## Plan`, right after the brief. **A fix that was
|
|
|
93
95
|
|
|
94
96
|
- Apply the minimal fix targeting the finding of `03-investigation.md` (or the diagnosis if investigate was skipped).
|
|
95
97
|
- Sensitive area (authentication, payments, sensitive data) → consult the `agents.architecture` agent from FLOW.md to confirm the correct layer; empty → check against `conventions` in FLOW.md.
|
|
96
|
-
- More than 2 fix steps → the §2.0bis plan is already written: track its numbered steps with `TaskCreate` where the harness offers one, otherwise tick them off in `04-fix.md` where they stand. One task per step, same order, marked `in_progress` and `completed` as they go — not batched.
|
|
98
|
+
- More than 2 fix steps → the §2.0bis plan is already written: track its numbered steps with `TaskCreate` where the harness offers one — looked for as `/flow-feat-build §2.1` says, since it may be deferred or named otherwise — otherwise tick them off in `04-fix.md` where they stand and say so once in the first step report. One task per step, same order, marked `in_progress` and `completed` as they go — not batched.
|
|
97
99
|
- **Comment discipline**: comment only a *why* the code cannot say (a non-obvious constraint, the reason for a workaround, a subtle invariant); match the surrounding file's comment density. **Never write the ticket ID or "fix for #N" into a code comment** — that lives in the commit/branch/MR-PR.
|
|
98
100
|
- Keep the log updated while editing.
|
|
99
101
|
|
|
@@ -24,6 +24,8 @@ Investigation phase: reproduce the failure, then find **why it happened** — no
|
|
|
24
24
|
|
|
25
25
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
26
26
|
|
|
27
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
28
|
+
|
|
27
29
|
- Read `meta.json` and `00-summary.md`; open in full only `01-context.md`. (flow-core §5)
|
|
28
30
|
- `type` is not `bug` → refuse. `size` is `XS` → suggest `/flow-bug-fix` and stop.
|
|
29
31
|
- Require `context` in `phases_done`. A work whose `phase` is the retired `diagnose` (written before
|
|
@@ -26,6 +26,8 @@ Goal: capture lessons that prevent recurrence — not to blame anyone.
|
|
|
26
26
|
|
|
27
27
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
28
28
|
|
|
29
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
30
|
+
|
|
29
31
|
- Read `meta.json` and `00-summary.md`; open in full every previous artifact (`01-context.md` … `06-review.md`) — §2 needs the whole history. (flow-core §5)
|
|
30
32
|
- Require `review` in `phases_done`.
|
|
31
33
|
- `size` `XS` → suggest skipping to `/flow-bug-ship`.
|
|
@@ -24,6 +24,8 @@ Mandatory code review of the fix.
|
|
|
24
24
|
|
|
25
25
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
26
26
|
|
|
27
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
28
|
+
|
|
27
29
|
- Read `meta.json` and `00-summary.md`; open in full only `03-investigation.md` and `04-fix.md` (reviewer context, §2.1) and `05-validation.md` (regression test). (flow-core §5)
|
|
28
30
|
- **A premise left open by `fix` §2.2 is an input to this review, not a note.** Every row of "Premises the fix depends on" whose verdict is `unsettled` enters §5 as an **ambiguous finding** and is named in §7 whether or not that gate opened — in a bug it is usually the claim that the root cause was the whole cause, which is exactly what the regression test cannot prove.
|
|
29
31
|
- Require `fix` in `phases_done`; for `size` ≥ S also require `validate`.
|
|
@@ -27,6 +27,8 @@ Close the bug flow: commit, push, MR/PR. Same mechanics as `/flow-feat-ship`, wi
|
|
|
27
27
|
|
|
28
28
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with; the wait it delegates takes `models.supervisors`.**
|
|
29
29
|
|
|
30
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
31
|
+
|
|
30
32
|
- Read `meta.json` and `00-summary.md`; open in full only `04-fix.md` (the Brief), `06-review.md` (the verdict), `05-validation.md`, the §"Root cause identified" of `03-investigation.md`, and `99-postmortem.md` if it exists. (flow-core §5)
|
|
31
33
|
- Require `review` in `phases_done`; also `validate` if `size` ≥ S, and `postmortem` if `size` is M or L (the same sizes `/flow-bug-review §8` routes to postmortem — one rule). Missing → refuse and redirect to the missing step.
|
|
32
34
|
- **The review has to be about the tree you are about to push — `/flow-feat-ship` §1, in full and unchanged**, including its four newer cases: `reviewed_sha` is the revision the reviewers *read* (`/flow-bug-review` §1.5 froze it), so `fixed_sha` set alongside an equal sha is a mismatch and not a match; a dirty tree at this end is named and asked about rather than passed over; and a `reviewed_sha` that no longer resolves is reported, then treated as absent. Compare `meta.json.reviewed_sha` and `validated_sha` against `git rev-parse HEAD`:
|
|
@@ -27,6 +27,8 @@ Start a bug. `$ARGUMENTS` is **optional**:
|
|
|
27
27
|
|
|
28
28
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
29
29
|
|
|
30
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
31
|
+
|
|
30
32
|
- Verify you are in the correct repo.
|
|
31
33
|
- **Determine the mode** from `$ARGUMENTS`: non-empty → *ticket mode* (identifier = `$ARGUMENTS`); empty → *ticket-less mode* (identifier = the slug resolved in §1.5).
|
|
32
34
|
- Once the identifier is known, check whether the work already exists: ticket mode → glob `.claude/work/<TICKET>/` and `.claude/work/<TICKET>-*/` for a `meta.json` whose `ticket` equals `<TICKET>`; ticket-less → `.claude/work/<slug>/meta.json`, right after §1.5.2 decides the slug. If one exists, suggest `/flow-work-resume`.
|
|
@@ -24,6 +24,8 @@ Validate that the fix works and that the bug does not return.
|
|
|
24
24
|
|
|
25
25
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; the wait it delegates takes `models.supervisors`.**
|
|
26
26
|
|
|
27
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
28
|
+
|
|
27
29
|
- Read `meta.json` and `00-summary.md`; open in full only `03-investigation.md` (§3 areas with similar risk, and the minimal reproduction) — the testing agent reads it and `04-fix.md` itself. (flow-core §5)
|
|
28
30
|
- Require `fix` in `phases_done`.
|
|
29
31
|
- `size` `XS` → suggest skipping to `/flow-bug-review` unless the user insists.
|
|
@@ -235,6 +235,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
|
|
|
235
235
|
a non-negative integer (`0` = no ceiling; else the default `12` applies). Report both effective
|
|
236
236
|
numbers with the count of panel members `quality.review_skill`/`quality.reviewers` defines, so
|
|
237
237
|
the widest command's cost is visible before it is paid, not after.
|
|
238
|
+
- **A task-list tool** (`TaskCreate` on Claude Code, possibly deferred) is exposed. Absent → `build` and `fix` track their plan steps as a checklist in the phase artifact instead, and the terminal draws no step list — `warn`, not `fail`. On Claude Code the usual cause is a model the harness withholds it from by default: name the fix, `"CLAUDE_CODE_ENABLE_TODO_TOOLS": "true"` under `env` in `~/.claude/settings.json`.
|
|
238
239
|
- **The `flow-workflows` CLI, which `review` reaches for before it composes a panel**:
|
|
239
240
|
`npx flow-workflows@<version> --version` answers, with `<version>` read from `version` in
|
|
240
241
|
`~/.claude/flow/.claude-plugin/plugin.json` — the same pin `review` uses, so the number that
|
|
@@ -20,6 +20,8 @@ description: "Implement the feature following the approved design and keep a run
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Implementation phase. Code is written here.
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -148,6 +150,8 @@ Execution mode:
|
|
|
148
150
|
|
|
149
151
|
Use `TaskCreate` to track the steps of the **§2.0ter plan for this MR/PR** — one task per numbered step, same order. Step skipped there (small MR/PR) → seed from `03-design.md` §"Implementation plan (order)", taking only the steps this MR/PR covers per `04-mr-plan.md`; the feature's plan predates the split and carries steps that belong to siblings. Mark each step `in_progress` when starting and `completed` when done — do not batch.
|
|
150
152
|
|
|
153
|
+
**Find the task-list tool before you conclude there is none.** `TaskCreate` is the Claude Code name; a harness may call it otherwise (`TodoWrite` on older builds), list it **deferred** — by name only, uncallable until its schema is loaded — or not offer it at all: Claude Code withholds it from newer models unless `CLAUDE_CODE_ENABLE_TODO_TOOLS=true` is set. A deferred tool is a tool that is there: load it and seed the list. Only when the search comes back empty, the plan in `05-implementation.md` **is** the list — tick each step there (`- [x]`) as it lands, same cadence, and say it once in the first step report (`no task-list tool here — steps tracked in 05-implementation.md`), so the user does not wait for a list that will never draw. An instruction to use a tool that is not there is otherwise skipped in silence, and the plan is written and never followed.
|
|
154
|
+
|
|
151
155
|
### 2.1bis The premise this change rests on (any size, XS included)
|
|
152
156
|
|
|
153
157
|
`/flow-feat-design §6` challenges the beliefs a plan rests on — and XS never runs `design`. On a
|
|
@@ -195,9 +199,9 @@ The step's changes are **always reported before anything is recorded**. Who deci
|
|
|
195
199
|
- **`guided`** — ask **once**, at the first step; apply the answer to the rest of this build and record it in `05-implementation.md`. Do not re-ask per step.
|
|
196
200
|
- **`auto`** — commit the step's WIP yourself and continue. **Invoking a flow command with `autonomy.mode: auto` is the explicit authorization** the system rule (*never commit unless the user asks*) requires. It authorizes **only** WIP commits on the work branch: push and MR/PR creation remain hard gates in every mode.
|
|
197
201
|
|
|
198
|
-
**After completing each
|
|
202
|
+
**After completing each plan step**:
|
|
199
203
|
|
|
200
|
-
1. **Mark the step `completed`** in `
|
|
204
|
+
1. **Mark the step `completed`** in the task list — or tick it in `05-implementation.md` where there is none (§2.1).
|
|
201
205
|
2. **Report to the user** a step summary (≤ 5 lines):
|
|
202
206
|
```
|
|
203
207
|
Step N done: <description>
|
|
@@ -20,6 +20,8 @@ description: "Design the technical solution (architecture, DB, APIs, risks) befo
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Technical design phase. **Still no production code is written.** Opens the option space first (M/L), then designs the approach that was chosen. Output: a plan the next step executes.
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -20,6 +20,8 @@ description: "Split the work into small, independently mergeable MRs/PRs before
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Delivery planning phase. **No code is written.** Splits the feature into MRs/PRs that can each live on the main branch even if the subsequent ones never land.
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -20,6 +20,8 @@ description: "Mandatory multi-agent code review before shipping"
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Mandatory review phase. **`/flow-feat-ship` cannot run without passing through here and resolving blockers.**
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -20,6 +20,8 @@ description: "Commit, push, MR/PR, and offer to save domain knowledge"
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with; the wait it delegates takes `models.supervisors`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Closes the feature: commit, push, MR/PR (assigned per `git.assignee`, squash per `git.squash`, sections per `git.request_sections`) and an optional offer to consolidate knowledge.
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -20,6 +20,8 @@ description: "Start a new feature (read the tracker, classify size, create branc
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
`$ARGUMENTS` is **optional**:
|
|
24
26
|
|
|
25
27
|
- **Given** — an identifier in `tracker.prefix` format from `FLOW.md` → *ticket mode* (§2 reads it).
|
|
@@ -20,6 +20,8 @@ description: "Validate tests, edge cases, and integrity before shipping"
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; the wait it delegates takes `models.supervisors`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Verify the feature is complete: test coverage, edge cases, performance, regressions.
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -20,6 +20,8 @@ description: "Close a work without shipping (discarded feature, non-issue, etc.)
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Clean closure for works that will not reach the base branch: a feature discarded after `design`, a bug that is not one (expected behavior, external problem, user misconfiguration), a work absorbed by another ticket.
|
|
24
26
|
|
|
25
27
|
## 1. Pre-flight
|
|
@@ -20,6 +20,8 @@ description: "Sweep what finished work left behind — merged worktrees, dead br
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
The forge (`git.cli`) is **best-effort**: CLI missing, unauthenticated, or over ~5s → fall back to the local evidence in §4 and say so in one line; never block.
|
|
24
26
|
|
|
25
27
|
The periodic sweep of the three residues a finished work leaves — its **worktree**, its **local branch**, its **`.claude/work/` folder** — which `/flow-feat-ship` and `/flow-work-abandon` only offer to remove at their end (and a train's intermediate MR/PR never sets `phase = "done"`). Inventory all three, judge each by **the forge's verdict**, remove only what is provably finished, and only after showing the whole list. The only flow command whose purpose is deletion; §0 governs.
|
|
@@ -20,6 +20,8 @@ description: "Your work assistant — a Scrum-style daily standup across all you
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
External sources (tracker, forge, `knowledge`) are all **best-effort**: a CLI missing/unauthenticated, an MCP failing, or a call over ~3s → continue without that source and note it in a single line; **never block**.
|
|
24
26
|
|
|
25
27
|
Your **work assistant**: a Scrum-style daily standup — *"what was I working on?"*, *"what's left?"*, *"what should I pick up today?"* — from three sources: **local** work state, the **forge** (open MRs/PRs, reviews, CI), the **tracker** (assigned/re-prioritized tickets). Unlike `/flow-work-status` (technical table) and `/flow-work-resume` (one branch), a cross-cutting narrative briefing.
|
|
@@ -34,6 +34,8 @@ Extract from `git`: `host`, `cli` (empty → the default for that host), `defaul
|
|
|
34
34
|
|
|
35
35
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; the wait it delegates takes `models.supervisors`.**
|
|
36
36
|
|
|
37
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
38
|
+
|
|
37
39
|
**Autonomy.** Modes as in flow-core §2; `guided`/`auto` record their choices in `09-ci.md` (e.g. a pure formatter auto-fix). **Hard gates — ALWAYS stop and ask, in every mode, no exceptions:**
|
|
38
40
|
1. **Any push** (§6).
|
|
39
41
|
2. Creating/switching a branch, or DB schema changes/migrations, if a fix requires them.
|
|
@@ -20,6 +20,8 @@ description: "Put a data-access query on trial — schema, indexes, execution pl
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
**A query is approved by its plan, not by prose.** Fact sheet → challenger attacks → each point settled with a **plan or a number**. **Cross-cutting** (feat or bug), **repeatable**, does **not** advance `meta.json.phase`; runs with or without a work folder.
|
|
24
26
|
|
|
25
27
|
Invoked by `/flow-feat-review` and `/flow-bug-review` (duel over the diff), `/flow-work-respond` (a reviewer objected to a query), `/flow-feat-design` (access paths), `/flow-feat-build`, `/flow-feat-validate`. Invoke directly for any doubt outside them (chat question, comment on an open MR/PR, a year-old query).
|
|
@@ -30,6 +30,8 @@ Extract from `git`: `host`, `cli` (empty → the default for that host), `assign
|
|
|
30
30
|
|
|
31
31
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
32
32
|
|
|
33
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
34
|
+
|
|
33
35
|
**Autonomy.** Modes as in flow-core §2 (`autonomy.mode`: `manual` | `guided` | `auto`; empty = `manual`); `guided`/`auto` record their choices in `08-feedback.md`. **Hard gates — ALWAYS stop and ask, in every mode, no exceptions:**
|
|
34
36
|
1. **Posting any comment/reply** to the MR/PR (§7).
|
|
35
37
|
2. **Any push** (§6.2).
|
|
@@ -20,6 +20,8 @@ description: "Resume the work associated with the current branch and suggest the
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Use when returning to a work after a break (next morning, another session).
|
|
24
26
|
|
|
25
27
|
## 1. Detection
|
|
@@ -20,6 +20,8 @@ description: "Summary of all open works in .claude/work/"
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Overview of works in progress; detects divergences between artifacts and actual git state.
|
|
24
26
|
|
|
25
27
|
## 1. List works
|
|
@@ -20,6 +20,8 @@ description: "Point the main checkout at a branch to test it (then return), re-s
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
Temporarily point the **main checkout** at another branch to test it against this checkout's live environment (running stack, DB, containers), then return — a generic `make wt-try`/`wt-back` pair. The git switch is built in; the project-specific re-sync (e.g. migrations) comes from `git.worktree_resync` in `FLOW.md`. Operates **in place**; never creates or touches worktrees.
|
|
24
26
|
|
|
25
27
|
## 1. Parse the argument
|
|
@@ -20,6 +20,8 @@ description: "Monitor the observability platform after a deploy and alert on err
|
|
|
20
20
|
|
|
21
21
|
Read `~/.claude/flow/CORE.hermes.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with; the wait it delegates takes `models.supervisors`.**
|
|
22
22
|
|
|
23
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
24
|
+
|
|
23
25
|
**Autopiloted post-deploy monitoring**: signals **scoped to the change** over a window (default 30 min), against a baseline; alert on errors or performance regressions from the deploy.
|
|
24
26
|
|
|
25
27
|
Usage: `/flow-work-watch {PREFIX}XXXXX [duration]` (prefix from `tracker.prefix`; default `30m`).
|
|
@@ -16,7 +16,7 @@ Every `/flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
16
16
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
17
17
|
`flow-core`" means this file.
|
|
18
18
|
|
|
19
|
-
**This file belongs to flow `0.
|
|
19
|
+
**This file belongs to flow `0.76.0`.** Compare it once, at the start of the session, against
|
|
20
20
|
`version` in `~/.claude/flow/.claude-plugin/plugin.json`. The two differing means the session
|
|
21
21
|
is running a **mixture** — the commands from one copy of the plugin, these shared rules from another
|
|
22
22
|
— which is exactly what happens when a branch or a release candidate is loaded over an installed
|
|
@@ -22,6 +22,8 @@ Apply the fix. **Minimum viable**: no refactor of adjacent areas. Note other pro
|
|
|
22
22
|
|
|
23
23
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`.**
|
|
24
24
|
|
|
25
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
26
|
+
|
|
25
27
|
- Read `meta.json` and `00-summary.md`; open in full only `03-investigation.md` (root cause, constraints for the fix) (minimal reproduction, root cause, constraints for the fix). (flow-core §5)
|
|
26
28
|
- `size` `XS`: may start without `investigate`, but require a 2-3 line description of the fix.
|
|
27
29
|
- `size` ≥ S: require `investigate` in `phases_done` (on S it will have run its reproduction half only).
|
|
@@ -91,7 +93,7 @@ Save it in `04-fix.md` under `## Plan`, right after the brief. **A fix that was
|
|
|
91
93
|
|
|
92
94
|
- Apply the minimal fix targeting the finding of `03-investigation.md` (or the diagnosis if investigate was skipped).
|
|
93
95
|
- Sensitive area (authentication, payments, sensitive data) → consult the `agents.architecture` agent from FLOW.md to confirm the correct layer; empty → check against `conventions` in FLOW.md.
|
|
94
|
-
- More than 2 fix steps → the §2.0bis plan is already written: track its numbered steps with `TaskCreate` where the harness offers one, otherwise tick them off in `04-fix.md` where they stand. One task per step, same order, marked `in_progress` and `completed` as they go — not batched.
|
|
96
|
+
- More than 2 fix steps → the §2.0bis plan is already written: track its numbered steps with `TaskCreate` where the harness offers one — looked for as `/flow-feat-build §2.1` says, since it may be deferred or named otherwise — otherwise tick them off in `04-fix.md` where they stand and say so once in the first step report. One task per step, same order, marked `in_progress` and `completed` as they go — not batched.
|
|
95
97
|
- **Comment discipline**: comment only a *why* the code cannot say (a non-obvious constraint, the reason for a workaround, a subtle invariant); match the surrounding file's comment density. **Never write the ticket ID or "fix for #N" into a code comment** — that lives in the commit/branch/MR-PR.
|
|
96
98
|
- Keep the log updated while editing.
|
|
97
99
|
|
|
@@ -22,6 +22,8 @@ Investigation phase: reproduce the failure, then find **why it happened** — no
|
|
|
22
22
|
|
|
23
23
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
24
24
|
|
|
25
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
26
|
+
|
|
25
27
|
- Read `meta.json` and `00-summary.md`; open in full only `01-context.md`. (flow-core §5)
|
|
26
28
|
- `type` is not `bug` → refuse. `size` is `XS` → suggest `/flow-bug-fix` and stop.
|
|
27
29
|
- Require `context` in `phases_done`. A work whose `phase` is the retired `diagnose` (written before
|
|
@@ -24,6 +24,8 @@ Goal: capture lessons that prevent recurrence — not to blame anyone.
|
|
|
24
24
|
|
|
25
25
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
26
26
|
|
|
27
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
28
|
+
|
|
27
29
|
- Read `meta.json` and `00-summary.md`; open in full every previous artifact (`01-context.md` … `06-review.md`) — §2 needs the whole history. (flow-core §5)
|
|
28
30
|
- Require `review` in `phases_done`.
|
|
29
31
|
- `size` `XS` → suggest skipping to `/flow-bug-ship`.
|
|
@@ -22,6 +22,8 @@ Mandatory code review of the fix.
|
|
|
22
22
|
|
|
23
23
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
24
24
|
|
|
25
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
26
|
+
|
|
25
27
|
- Read `meta.json` and `00-summary.md`; open in full only `03-investigation.md` and `04-fix.md` (reviewer context, §2.1) and `05-validation.md` (regression test). (flow-core §5)
|
|
26
28
|
- **A premise left open by `fix` §2.2 is an input to this review, not a note.** Every row of "Premises the fix depends on" whose verdict is `unsettled` enters §5 as an **ambiguous finding** and is named in §7 whether or not that gate opened — in a bug it is usually the claim that the root cause was the whole cause, which is exactly what the regression test cannot prove.
|
|
27
29
|
- Require `fix` in `phases_done`; for `size` ≥ S also require `validate`.
|
|
@@ -25,6 +25,8 @@ Close the bug flow: commit, push, MR/PR. Same mechanics as `/flow-feat-ship`, wi
|
|
|
25
25
|
|
|
26
26
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with; the wait it delegates takes `models.supervisors`.**
|
|
27
27
|
|
|
28
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
29
|
+
|
|
28
30
|
- Read `meta.json` and `00-summary.md`; open in full only `04-fix.md` (the Brief), `06-review.md` (the verdict), `05-validation.md`, the §"Root cause identified" of `03-investigation.md`, and `99-postmortem.md` if it exists. (flow-core §5)
|
|
29
31
|
- Require `review` in `phases_done`; also `validate` if `size` ≥ S, and `postmortem` if `size` is M or L (the same sizes `/flow-bug-review §8` routes to postmortem — one rule). Missing → refuse and redirect to the missing step.
|
|
30
32
|
- **The review has to be about the tree you are about to push — `/flow-feat-ship` §1, in full and unchanged**, including its four newer cases: `reviewed_sha` is the revision the reviewers *read* (`/flow-bug-review` §1.5 froze it), so `fixed_sha` set alongside an equal sha is a mismatch and not a match; a dirty tree at this end is named and asked about rather than passed over; and a `reviewed_sha` that no longer resolves is reported, then treated as absent. Compare `meta.json.reviewed_sha` and `validated_sha` against `git rev-parse HEAD`:
|
|
@@ -25,6 +25,8 @@ Start a bug. `$ARGUMENTS` is **optional**:
|
|
|
25
25
|
|
|
26
26
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
27
27
|
|
|
28
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
29
|
+
|
|
28
30
|
- Verify you are in the correct repo.
|
|
29
31
|
- **Determine the mode** from `$ARGUMENTS`: non-empty → *ticket mode* (identifier = `$ARGUMENTS`); empty → *ticket-less mode* (identifier = the slug resolved in §1.5).
|
|
30
32
|
- Once the identifier is known, check whether the work already exists: ticket mode → glob `.claude/work/<TICKET>/` and `.claude/work/<TICKET>-*/` for a `meta.json` whose `ticket` equals `<TICKET>`; ticket-less → `.claude/work/<slug>/meta.json`, right after §1.5.2 decides the slug. If one exists, suggest `/flow-work-resume`.
|
|
@@ -22,6 +22,8 @@ Validate that the fix works and that the bug does not return.
|
|
|
22
22
|
|
|
23
23
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; the wait it delegates takes `models.supervisors`.**
|
|
24
24
|
|
|
25
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
26
|
+
|
|
25
27
|
- Read `meta.json` and `00-summary.md`; open in full only `03-investigation.md` (§3 areas with similar risk, and the minimal reproduction) — the testing agent reads it and `04-fix.md` itself. (flow-core §5)
|
|
26
28
|
- Require `fix` in `phases_done`.
|
|
27
29
|
- `size` `XS` → suggest skipping to `/flow-bug-review` unless the user insists.
|
|
@@ -233,6 +233,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
|
|
|
233
233
|
a non-negative integer (`0` = no ceiling; else the default `12` applies). Report both effective
|
|
234
234
|
numbers with the count of panel members `quality.review_skill`/`quality.reviewers` defines, so
|
|
235
235
|
the widest command's cost is visible before it is paid, not after.
|
|
236
|
+
- **A task-list tool** (`TaskCreate` on Claude Code, possibly deferred) is exposed. Absent → `build` and `fix` track their plan steps as a checklist in the phase artifact instead, and the terminal draws no step list — `warn`, not `fail`. On Claude Code the usual cause is a model the harness withholds it from by default: name the fix, `"CLAUDE_CODE_ENABLE_TODO_TOOLS": "true"` under `env` in `~/.claude/settings.json`.
|
|
236
237
|
- **The `flow-workflows` CLI, which `review` reaches for before it composes a panel**:
|
|
237
238
|
`npx flow-workflows@<version> --version` answers, with `<version>` read from `version` in
|
|
238
239
|
`~/.claude/flow/.claude-plugin/plugin.json` — the same pin `review` uses, so the number that
|
|
@@ -18,6 +18,8 @@ description: Implement the feature following the approved design and keep a runn
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`.**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Implementation phase. Code is written here.
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -146,6 +148,8 @@ Execution mode:
|
|
|
146
148
|
|
|
147
149
|
Use `TaskCreate` to track the steps of the **§2.0ter plan for this MR/PR** — one task per numbered step, same order. Step skipped there (small MR/PR) → seed from `03-design.md` §"Implementation plan (order)", taking only the steps this MR/PR covers per `04-mr-plan.md`; the feature's plan predates the split and carries steps that belong to siblings. Mark each step `in_progress` when starting and `completed` when done — do not batch.
|
|
148
150
|
|
|
151
|
+
**Find the task-list tool before you conclude there is none.** `TaskCreate` is the Claude Code name; a harness may call it otherwise (`TodoWrite` on older builds), list it **deferred** — by name only, uncallable until its schema is loaded — or not offer it at all: Claude Code withholds it from newer models unless `CLAUDE_CODE_ENABLE_TODO_TOOLS=true` is set. A deferred tool is a tool that is there: load it and seed the list. Only when the search comes back empty, the plan in `05-implementation.md` **is** the list — tick each step there (`- [x]`) as it lands, same cadence, and say it once in the first step report (`no task-list tool here — steps tracked in 05-implementation.md`), so the user does not wait for a list that will never draw. An instruction to use a tool that is not there is otherwise skipped in silence, and the plan is written and never followed.
|
|
152
|
+
|
|
149
153
|
### 2.1bis The premise this change rests on (any size, XS included)
|
|
150
154
|
|
|
151
155
|
`/flow-feat-design §6` challenges the beliefs a plan rests on — and XS never runs `design`. On a
|
|
@@ -193,9 +197,9 @@ The step's changes are **always reported before anything is recorded**. Who deci
|
|
|
193
197
|
- **`guided`** — ask **once**, at the first step; apply the answer to the rest of this build and record it in `05-implementation.md`. Do not re-ask per step.
|
|
194
198
|
- **`auto`** — commit the step's WIP yourself and continue. **Invoking a flow command with `autonomy.mode: auto` is the explicit authorization** the system rule (*never commit unless the user asks*) requires. It authorizes **only** WIP commits on the work branch: push and MR/PR creation remain hard gates in every mode.
|
|
195
199
|
|
|
196
|
-
**After completing each
|
|
200
|
+
**After completing each plan step**:
|
|
197
201
|
|
|
198
|
-
1. **Mark the step `completed`** in `
|
|
202
|
+
1. **Mark the step `completed`** in the task list — or tick it in `05-implementation.md` where there is none (§2.1).
|
|
199
203
|
2. **Report to the user** a step summary (≤ 5 lines):
|
|
200
204
|
```
|
|
201
205
|
Step N done: <description>
|
|
@@ -18,6 +18,8 @@ description: Design the technical solution (architecture, DB, APIs, risks) befor
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Technical design phase. **Still no production code is written.** Opens the option space first (M/L), then designs the approach that was chosen. Output: a plan the next step executes.
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -18,6 +18,8 @@ description: Split the work into small, independently mergeable MRs/PRs before i
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`.**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Delivery planning phase. **No code is written.** Splits the feature into MRs/PRs that can each live on the main branch even if the subsequent ones never land.
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -18,6 +18,8 @@ description: Mandatory multi-agent code review before shipping
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; its parallel rounds take `models.workers`.**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Mandatory review phase. **`/flow-feat-ship` cannot run without passing through here and resolving blockers.**
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -18,6 +18,8 @@ description: Commit, push, MR/PR, and offer to save domain knowledge
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with; the wait it delegates takes `models.supervisors`.**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Closes the feature: commit, push, MR/PR (assigned per `git.assignee`, squash per `git.squash`, sections per `git.request_sections`) and an optional offer to consolidate knowledge.
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -18,6 +18,8 @@ description: Start a new feature (read the tracker, classify size, create branch
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: this command runs with the model it was launched with (no `models` key).**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
`$ARGUMENTS` is **optional**:
|
|
22
24
|
|
|
23
25
|
- **Given** — an identifier in `tracker.prefix` format from `FLOW.md` → *ticket mode* (§2 reads it).
|
|
@@ -18,6 +18,8 @@ description: Validate tests, edge cases, and integrity before shipping
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session. **Models: the subagents it launches take `models.agents`; the wait it delegates takes `models.supervisors`.**
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Verify the feature is complete: test coverage, edge cases, performance, regressions.
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -18,6 +18,8 @@ description: Close a work without shipping (discarded feature, non-issue, etc.)
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
Clean closure for works that will not reach the base branch: a feature discarded after `design`, a bug that is not one (expected behavior, external problem, user misconfiguration), a work absorbed by another ticket.
|
|
22
24
|
|
|
23
25
|
## 1. Pre-flight
|
|
@@ -18,6 +18,8 @@ description: Sweep what finished work left behind — merged worktrees, dead bra
|
|
|
18
18
|
|
|
19
19
|
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads, the live panel, `00-summary.md`) — skip if you already read it in this session.
|
|
20
20
|
|
|
21
|
+
**Panel words are closed** — `mark`: `done` · `current` · `pending` · `wait` · `block` · `info`; `style`: `normal` · `dim` · `title` · `accent` · `ok` · `warn` · `error`. Anything else is dropped by the reader in silence: the panel still paints, and nobody is told.
|
|
22
|
+
|
|
21
23
|
The forge (`git.cli`) is **best-effort**: CLI missing, unauthenticated, or over ~5s → fall back to the local evidence in §4 and say so in one line; never block.
|
|
22
24
|
|
|
23
25
|
The periodic sweep of the three residues a finished work leaves — its **worktree**, its **local branch**, its **`.claude/work/` folder** — which `/flow-feat-ship` and `/flow-work-abandon` only offer to remove at their end (and a train's intermediate MR/PR never sets `phase = "done"`). Inventory all three, judge each by **the forge's verdict**, remove only what is provably finished, and only after showing the whole list. The only flow command whose purpose is deletion; §0 governs.
|