flow-workflows 0.70.0 → 0.71.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/README.md +1 -1
- package/adapters/codex/CORE.md +84 -12
- package/adapters/codex/skills/flow-bug-fix/SKILL.md +1 -1
- package/adapters/codex/skills/flow-bug-investigate/SKILL.md +1 -1
- package/adapters/codex/skills/flow-bug-postmortem/SKILL.md +1 -1
- package/adapters/codex/skills/flow-bug-review/SKILL.md +1 -1
- package/adapters/codex/skills/flow-bug-ship/SKILL.md +3 -3
- package/adapters/codex/skills/flow-bug-start/SKILL.md +2 -2
- package/adapters/codex/skills/flow-bug-validate/SKILL.md +1 -1
- package/adapters/codex/skills/flow-doctor/SKILL.md +1 -0
- package/adapters/codex/skills/flow-feat-build/SKILL.md +2 -2
- package/adapters/codex/skills/flow-feat-design/SKILL.md +1 -1
- package/adapters/codex/skills/flow-feat-plan/SKILL.md +2 -2
- package/adapters/codex/skills/flow-feat-review/SKILL.md +1 -1
- package/adapters/codex/skills/flow-feat-ship/SKILL.md +3 -3
- package/adapters/codex/skills/flow-feat-start/SKILL.md +4 -4
- package/adapters/codex/skills/flow-feat-validate/SKILL.md +1 -1
- package/adapters/codex/skills/flow-next/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-README/SKILL.md +9 -7
- package/adapters/codex/skills/flow-work-abandon/SKILL.md +2 -2
- package/adapters/codex/skills/flow-work-clean/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-daily/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-green/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-query/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-respond/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-resume/SKILL.md +3 -3
- package/adapters/codex/skills/flow-work-status/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-try/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-watch/SKILL.md +3 -3
- package/adapters/gemini/CORE.md +84 -12
- package/adapters/gemini/commands/flow/bug/fix.toml +1 -1
- package/adapters/gemini/commands/flow/bug/investigate.toml +1 -1
- package/adapters/gemini/commands/flow/bug/postmortem.toml +1 -1
- package/adapters/gemini/commands/flow/bug/review.toml +1 -1
- package/adapters/gemini/commands/flow/bug/ship.toml +3 -3
- package/adapters/gemini/commands/flow/bug/start.toml +2 -2
- package/adapters/gemini/commands/flow/bug/validate.toml +1 -1
- package/adapters/gemini/commands/flow/doctor.toml +1 -0
- package/adapters/gemini/commands/flow/feat/build.toml +2 -2
- package/adapters/gemini/commands/flow/feat/design.toml +1 -1
- package/adapters/gemini/commands/flow/feat/plan.toml +2 -2
- package/adapters/gemini/commands/flow/feat/review.toml +1 -1
- package/adapters/gemini/commands/flow/feat/ship.toml +3 -3
- package/adapters/gemini/commands/flow/feat/start.toml +4 -4
- package/adapters/gemini/commands/flow/feat/validate.toml +1 -1
- package/adapters/gemini/commands/flow/next.toml +1 -1
- package/adapters/gemini/commands/flow/work/README.toml +9 -7
- package/adapters/gemini/commands/flow/work/abandon.toml +2 -2
- package/adapters/gemini/commands/flow/work/clean.toml +1 -1
- package/adapters/gemini/commands/flow/work/daily.toml +1 -1
- package/adapters/gemini/commands/flow/work/green.toml +1 -1
- package/adapters/gemini/commands/flow/work/query.toml +1 -1
- package/adapters/gemini/commands/flow/work/respond.toml +1 -1
- package/adapters/gemini/commands/flow/work/resume.toml +3 -3
- package/adapters/gemini/commands/flow/work/status.toml +1 -1
- package/adapters/gemini/commands/flow/work/try.toml +1 -1
- package/adapters/gemini/commands/flow/work/watch.toml +3 -3
- package/adapters/hermes/CORE.md +84 -12
- package/adapters/hermes/skills/flow-bug-fix/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-bug-investigate/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-bug-postmortem/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-bug-review/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-bug-ship/SKILL.md +3 -3
- package/adapters/hermes/skills/flow-bug-start/SKILL.md +2 -2
- package/adapters/hermes/skills/flow-bug-validate/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-doctor/SKILL.md +1 -0
- package/adapters/hermes/skills/flow-feat-build/SKILL.md +2 -2
- package/adapters/hermes/skills/flow-feat-design/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-feat-plan/SKILL.md +2 -2
- package/adapters/hermes/skills/flow-feat-review/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-feat-ship/SKILL.md +3 -3
- package/adapters/hermes/skills/flow-feat-start/SKILL.md +4 -4
- package/adapters/hermes/skills/flow-feat-validate/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-next/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-README/SKILL.md +9 -7
- package/adapters/hermes/skills/flow-work-abandon/SKILL.md +2 -2
- package/adapters/hermes/skills/flow-work-clean/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-daily/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-green/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-query/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-respond/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-resume/SKILL.md +3 -3
- package/adapters/hermes/skills/flow-work-status/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-try/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-watch/SKILL.md +3 -3
- package/adapters/opencode/CORE.md +84 -12
- package/adapters/opencode/commands/flow-bug-fix.md +1 -1
- package/adapters/opencode/commands/flow-bug-investigate.md +1 -1
- package/adapters/opencode/commands/flow-bug-postmortem.md +1 -1
- package/adapters/opencode/commands/flow-bug-review.md +1 -1
- package/adapters/opencode/commands/flow-bug-ship.md +3 -3
- package/adapters/opencode/commands/flow-bug-start.md +2 -2
- package/adapters/opencode/commands/flow-bug-validate.md +1 -1
- package/adapters/opencode/commands/flow-doctor.md +1 -0
- package/adapters/opencode/commands/flow-feat-build.md +2 -2
- package/adapters/opencode/commands/flow-feat-design.md +1 -1
- package/adapters/opencode/commands/flow-feat-plan.md +2 -2
- package/adapters/opencode/commands/flow-feat-review.md +1 -1
- package/adapters/opencode/commands/flow-feat-ship.md +3 -3
- package/adapters/opencode/commands/flow-feat-start.md +4 -4
- package/adapters/opencode/commands/flow-feat-validate.md +1 -1
- package/adapters/opencode/commands/flow-next.md +1 -1
- package/adapters/opencode/commands/flow-work-README.md +9 -7
- package/adapters/opencode/commands/flow-work-abandon.md +2 -2
- package/adapters/opencode/commands/flow-work-clean.md +1 -1
- package/adapters/opencode/commands/flow-work-daily.md +1 -1
- package/adapters/opencode/commands/flow-work-green.md +1 -1
- package/adapters/opencode/commands/flow-work-query.md +1 -1
- package/adapters/opencode/commands/flow-work-respond.md +1 -1
- package/adapters/opencode/commands/flow-work-resume.md +3 -3
- package/adapters/opencode/commands/flow-work-status.md +1 -1
- package/adapters/opencode/commands/flow-work-try.md +1 -1
- package/adapters/opencode/commands/flow-work-watch.md +3 -3
- package/package.json +1 -1
- package/plugins/flow/.claude-plugin/plugin.json +1 -1
- package/plugins/flow/CHANGELOG.md +27 -0
|
@@ -16,7 +16,7 @@ description: Close a work without shipping (discarded feature, non-issue, etc.)
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads,
|
|
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
21
|
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
22
|
|
|
@@ -89,7 +89,7 @@ Ask the user what to do with the branch — do not decide alone:
|
|
|
89
89
|
- Update `meta.json`: `phase = "abandoned"`; `phases_done` not touched (it reflects what was actually done); `notes` += abandonment reason; `updated_at` updated.
|
|
90
90
|
- Overwrite `00-summary.md` whole (≤15 lines, flow-core §5).
|
|
91
91
|
- **Tracker: move to won't-do** (never "done" — this work did not ship). Only if `tracker.tool` is not `none`/empty, `tracker.abandon_cmd` is set, and `meta.json.ticket` is a **real tracker id** (skip for local-only slugs). Run `tracker.abandon_cmd` substituting `{TICKET}` = `meta.json.ticket`. Same contract as `/flow-feat-start §6.5`: **best-effort, idempotent, gated** (ask once in `autonomy.mode: manual`; automatic in `guided`/`auto`); failure or already-in-state ticket → warn and continue, never block. `tracker.abandon_cmd` empty → do nothing (the user closes the ticket by hand if they want).
|
|
92
|
-
-
|
|
92
|
+
- Panel published for this work (flow-core §4) → publish a terminal state before archiving: the title, one `block` line saying the work was abandoned and why, no `Decision` line, and `attention` cleared where the panel tools carry it — nothing is waiting on anyone any more.
|
|
93
93
|
- Move the folder to `.claude/work/_archive/` **keeping its directory name** (`_archive/<work-dir>/`, the folder located in §1 — e.g. `<TICKET>-<slug>`) so `/flow-work-status` no longer lists it.
|
|
94
94
|
- Report to the user: ticket abandoned, reason, what was done with the branch.
|
|
95
95
|
|
|
@@ -16,7 +16,7 @@ description: Sweep what finished work left behind — merged worktrees, dead bra
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads,
|
|
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
21
|
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
22
|
|
|
@@ -16,7 +16,7 @@ description: Your work assistant — a Scrum-style daily standup across all your
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads,
|
|
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
21
|
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**.
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ Usage: `/flow-work-green [mr-iid-or-url]` — optional; default is the MR/PR of
|
|
|
30
30
|
|
|
31
31
|
Extract from `git`: `host`, `cli` (empty → the default for that host), `default_base`. The term MR/PR follows `host`. From `tracker`: `tool`, `prefix`. From `quality`: `test`, `test_one`, `static_analysis`, `style_fix` (local reproduce/verify commands, §5; empty → auto-discover from Makefile / npm / composer scripts), `review_skill` (§5, non-trivial fixes). `agents`: expert sub-agents to delegate fixes to. `knowledge.search` set → `knowledge.search` in §3.
|
|
32
32
|
|
|
33
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads,
|
|
33
|
+
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`.**
|
|
34
34
|
|
|
35
35
|
**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:**
|
|
36
36
|
1. **Any push** (§6).
|
|
@@ -16,7 +16,7 @@ description: Put a data-access query on trial — schema, indexes, execution pla
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads,
|
|
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
21
|
**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.
|
|
22
22
|
|
|
@@ -26,7 +26,7 @@ Cross-cutting (`feat` or `bug` MR/PR alike), repeatable (one invocation per revi
|
|
|
26
26
|
|
|
27
27
|
Extract from `git`: `host`, `cli` (empty → the default for that host), `assignee`. The term MR/PR follows `host`. From `tracker`: `tool` and `prefix`. From `quality`: `review_skill` (§6, non-trivial rounds). If `knowledge.search` is set, `knowledge.search` runs in §3.
|
|
28
28
|
|
|
29
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads,
|
|
29
|
+
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).**
|
|
30
30
|
|
|
31
31
|
**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:**
|
|
32
32
|
1. **Posting any comment/reply** to the MR/PR (§7).
|
|
@@ -16,7 +16,7 @@ description: Resume the work associated with the current branch and suggest the
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads,
|
|
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
21
|
Use when returning to a work after a break (next morning, another session).
|
|
22
22
|
|
|
@@ -90,7 +90,7 @@ With what is new (there is already work on disk):
|
|
|
90
90
|
|
|
91
91
|
## 5. Rebuild the live panel
|
|
92
92
|
|
|
93
|
-
After a break
|
|
93
|
+
After a break the panel is most likely stale, and a resumed session is exactly where flow-core §4 asks for `panel_get` **before** publishing: read what is on screen, then publish the whole document from the state just rebuilt (`meta.json`, git, the ticket) — `panel_set` where the terminal offers the panel tools, `.claude/work/<work>/panel.json` overwritten whole where it does not:
|
|
94
94
|
|
|
95
95
|
```json
|
|
96
96
|
{
|
|
@@ -118,4 +118,4 @@ After a break `.claude/work/<work>/panel.json` is most likely stale. Overwrite i
|
|
|
118
118
|
- `Decision` marked `wait` is always set after a resume — nothing is running, the next move is the user's.
|
|
119
119
|
- `block` lines for the blockers §4 surfaced (`contract_handoff` `pending` in a sibling repo, a red pipeline, an unmerged dependency).
|
|
120
120
|
- Train: one entry per `meta.json.mrs[]`, not-started collapsed into one `#a–#z` line; omit without `mrs`.
|
|
121
|
-
- `updated_at` from `date -Iseconds
|
|
121
|
+
- `updated_at` from `date -Iseconds` when the panel goes to the file; every fact from `meta.json` and the artifacts; language of the work's artifacts.
|
|
@@ -16,7 +16,7 @@ description: Summary of all open works in .claude/work/
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads,
|
|
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
21
|
Overview of works in progress; detects divergences between artifacts and actual git state.
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ description: Point the main checkout at a branch to test it (then return), re-sy
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, autonomy, how a stop reads,
|
|
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
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.
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ description: Monitor the observability platform after a deploy and alert on erro
|
|
|
16
16
|
> - `/model <value>` → opencode's model picker (`/models`).
|
|
17
17
|
> - `knowledge.*` roles → whatever tools `FLOW.md` names there; an MCP tool keeps its name, its server is declared in `opencode.json` (see this adapter's `opencode.json` for the domain-memory example).
|
|
18
18
|
|
|
19
|
-
Read `~/.claude/flow/CORE.opencode.md` first (shared rules: `FLOW.md` step 0, models, autonomy modes and hard gates, how a stop reads,
|
|
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
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.
|
|
22
22
|
|
|
@@ -127,7 +127,7 @@ Over `[last cycle, now]`, scoped to the surface. **Default thresholds** (tunable
|
|
|
127
127
|
|
|
128
128
|
After each cycle: update `monitor.md` (accumulated state — no repeated alerts, feeds the final summary) and **reschedule with `ScheduleWakeup`** (~270-300s, or the chosen interval) passing the same `/flow-work-watch {PREFIX}XXXXX` until `T_end`. Platform fails or slow → retry next cycle, never break.
|
|
129
129
|
|
|
130
|
-
**Refresh the live panel every cycle** (only with a `<work-dir>` from §1)
|
|
130
|
+
**Refresh the live panel every cycle** (only with a `<work-dir>` from §1), by the transport flow-core §4 selects — the panel tools where the terminal has them, `.claude/work/<work>/panel.json` overwritten **whole** where it does not:
|
|
131
131
|
|
|
132
132
|
```json
|
|
133
133
|
{
|
|
@@ -168,7 +168,7 @@ Write the summary to `<work-dir>/monitor.md` (§1) and present it:
|
|
|
168
168
|
- **Evidence strength**: low traffic (§4) → say it ("green, but the flow barely executed during the window: weak evidence"). Never sell a zero-traffic green as a guarantee.
|
|
169
169
|
- **Honest limits**: no slow leaks, no regressions needing input not exercised in the window. A first-hour safety net.
|
|
170
170
|
|
|
171
|
-
Final verdict to
|
|
171
|
+
Final verdict to the panel too — `mark: "info"` plus `style: ok|warn|error` for 🟢/🟡/🔴 — and a `Now` line reading `nothing — the watch window is over`. On 🔴, a `Decision` line marked `wait` pointing at `/flow-bug-start`.
|
|
172
172
|
|
|
173
173
|
`knowledge.stage` is set → `knowledge.stage` relevant findings (measured baselines, low-traffic signals, error patterns) for this branch's staging.
|
|
174
174
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-workflows",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "Guided feat/bug workflows (start→ship), post-deploy monitoring and multi-agent code review, stack-agnostic. Each repo uses a shared FLOW.md plus optional harness overlay.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "flow",
|
|
4
4
|
"displayName": "Flow — guided dev workflows",
|
|
5
5
|
"description": "Guided feat/bug workflows (start→ship), post-deploy monitoring and multi-agent code review, stack-agnostic. Each repo uses a shared FLOW.md plus optional harness overlay.",
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.71.0",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Alberto Vioque",
|
|
9
9
|
"email": "mashware@gmail.com"
|
|
@@ -5,6 +5,33 @@ plugin and is what `/flow:news` reads to show you what changed since your previo
|
|
|
5
5
|
|
|
6
6
|
The canonical, richest notes live in the [GitHub Releases](https://github.com/mashware/flow-workflows/releases).
|
|
7
7
|
|
|
8
|
+
## v0.71.0 — The panel was a file because nothing better was listening · 2026-09-22
|
|
9
|
+
|
|
10
|
+
**In short**
|
|
11
|
+
- **The live panel is published to the terminal now, not written to disk**, wherever the terminal exposes `panel_set` / `panel_patch` / `panel_get`: the first publication claims the pane for the session, and every change after it is a patch carrying the one line that moved.
|
|
12
|
+
- **Nothing changes for anyone else.** The document is identical, so a harness without those tools keeps writing `.claude/work/<work>/panel.json`, overwritten whole with an honest `updated_at`, exactly as before.
|
|
13
|
+
- **`attention` says what the pane wants from you** — `wait`, `block`, `done`, or absent while simply working. The app never deduces it from a line, a tab's card shows the strongest claim among its panes, and an uncleared `wait` flags that tab for ever.
|
|
14
|
+
- **A `key` on every line that may change later** makes a patch addressable, and `panel_get` before publishing is now the rule after a compaction, a restart or a resumed work.
|
|
15
|
+
- **A stop can carry buttons.** `actions` paints up to eight, each sending literal text to this session's own prompt — so "Approve the design" answers without the user typing.
|
|
16
|
+
- **`/flow:doctor` says which transport this session gets**, in one line, and neither is a fault.
|
|
17
|
+
|
|
18
|
+
The panel was designed against a reader that polled a file, and every rule it carries came from that:
|
|
19
|
+
overwrite whole because a partial write is a lie, never patch because two writers cannot agree, a
|
|
20
|
+
timestamp in the document because the file cannot say when it arrived. None of that was the panel —
|
|
21
|
+
it was the file. The terminal that draws the panel now serves it over MCP, and while a pane is
|
|
22
|
+
claimed it does not read the file at all.
|
|
23
|
+
|
|
24
|
+
What the MCP buys is the line. A phase that moves `Now` from "unit suite" to "shipping #2" no longer
|
|
25
|
+
republishes the train, the title and the blockers to say it; it sends one op. The shape is published
|
|
26
|
+
once, with `panel_set`, and republished only when the shape itself changes — a new MR/PR train, a
|
|
27
|
+
different body. Either the whole op list applies or none of it does, so a patch is safe to send
|
|
28
|
+
without reading first, and a patch whose answer never arrived is safe to send again.
|
|
29
|
+
|
|
30
|
+
`attention` exists because the app must not guess. A `mark: "wait"` inside `lines` is body text: it
|
|
31
|
+
says a line is waiting, not that the pane is waiting on the person reading it. The claim is made at
|
|
32
|
+
the top level, deliberately, and clearing it is the writer's job — a tab that flags itself for ever
|
|
33
|
+
is worse than one that never flags at all.
|
|
34
|
+
|
|
8
35
|
## v0.70.0 — The plan each MR/PR was built from belonged to the feature · 2026-09-21
|
|
9
36
|
|
|
10
37
|
**In short**
|