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.
Files changed (116) hide show
  1. package/README.md +1 -1
  2. package/adapters/codex/CORE.md +84 -12
  3. package/adapters/codex/skills/flow-bug-fix/SKILL.md +1 -1
  4. package/adapters/codex/skills/flow-bug-investigate/SKILL.md +1 -1
  5. package/adapters/codex/skills/flow-bug-postmortem/SKILL.md +1 -1
  6. package/adapters/codex/skills/flow-bug-review/SKILL.md +1 -1
  7. package/adapters/codex/skills/flow-bug-ship/SKILL.md +3 -3
  8. package/adapters/codex/skills/flow-bug-start/SKILL.md +2 -2
  9. package/adapters/codex/skills/flow-bug-validate/SKILL.md +1 -1
  10. package/adapters/codex/skills/flow-doctor/SKILL.md +1 -0
  11. package/adapters/codex/skills/flow-feat-build/SKILL.md +2 -2
  12. package/adapters/codex/skills/flow-feat-design/SKILL.md +1 -1
  13. package/adapters/codex/skills/flow-feat-plan/SKILL.md +2 -2
  14. package/adapters/codex/skills/flow-feat-review/SKILL.md +1 -1
  15. package/adapters/codex/skills/flow-feat-ship/SKILL.md +3 -3
  16. package/adapters/codex/skills/flow-feat-start/SKILL.md +4 -4
  17. package/adapters/codex/skills/flow-feat-validate/SKILL.md +1 -1
  18. package/adapters/codex/skills/flow-next/SKILL.md +1 -1
  19. package/adapters/codex/skills/flow-work-README/SKILL.md +9 -7
  20. package/adapters/codex/skills/flow-work-abandon/SKILL.md +2 -2
  21. package/adapters/codex/skills/flow-work-clean/SKILL.md +1 -1
  22. package/adapters/codex/skills/flow-work-daily/SKILL.md +1 -1
  23. package/adapters/codex/skills/flow-work-green/SKILL.md +1 -1
  24. package/adapters/codex/skills/flow-work-query/SKILL.md +1 -1
  25. package/adapters/codex/skills/flow-work-respond/SKILL.md +1 -1
  26. package/adapters/codex/skills/flow-work-resume/SKILL.md +3 -3
  27. package/adapters/codex/skills/flow-work-status/SKILL.md +1 -1
  28. package/adapters/codex/skills/flow-work-try/SKILL.md +1 -1
  29. package/adapters/codex/skills/flow-work-watch/SKILL.md +3 -3
  30. package/adapters/gemini/CORE.md +84 -12
  31. package/adapters/gemini/commands/flow/bug/fix.toml +1 -1
  32. package/adapters/gemini/commands/flow/bug/investigate.toml +1 -1
  33. package/adapters/gemini/commands/flow/bug/postmortem.toml +1 -1
  34. package/adapters/gemini/commands/flow/bug/review.toml +1 -1
  35. package/adapters/gemini/commands/flow/bug/ship.toml +3 -3
  36. package/adapters/gemini/commands/flow/bug/start.toml +2 -2
  37. package/adapters/gemini/commands/flow/bug/validate.toml +1 -1
  38. package/adapters/gemini/commands/flow/doctor.toml +1 -0
  39. package/adapters/gemini/commands/flow/feat/build.toml +2 -2
  40. package/adapters/gemini/commands/flow/feat/design.toml +1 -1
  41. package/adapters/gemini/commands/flow/feat/plan.toml +2 -2
  42. package/adapters/gemini/commands/flow/feat/review.toml +1 -1
  43. package/adapters/gemini/commands/flow/feat/ship.toml +3 -3
  44. package/adapters/gemini/commands/flow/feat/start.toml +4 -4
  45. package/adapters/gemini/commands/flow/feat/validate.toml +1 -1
  46. package/adapters/gemini/commands/flow/next.toml +1 -1
  47. package/adapters/gemini/commands/flow/work/README.toml +9 -7
  48. package/adapters/gemini/commands/flow/work/abandon.toml +2 -2
  49. package/adapters/gemini/commands/flow/work/clean.toml +1 -1
  50. package/adapters/gemini/commands/flow/work/daily.toml +1 -1
  51. package/adapters/gemini/commands/flow/work/green.toml +1 -1
  52. package/adapters/gemini/commands/flow/work/query.toml +1 -1
  53. package/adapters/gemini/commands/flow/work/respond.toml +1 -1
  54. package/adapters/gemini/commands/flow/work/resume.toml +3 -3
  55. package/adapters/gemini/commands/flow/work/status.toml +1 -1
  56. package/adapters/gemini/commands/flow/work/try.toml +1 -1
  57. package/adapters/gemini/commands/flow/work/watch.toml +3 -3
  58. package/adapters/hermes/CORE.md +84 -12
  59. package/adapters/hermes/skills/flow-bug-fix/SKILL.md +1 -1
  60. package/adapters/hermes/skills/flow-bug-investigate/SKILL.md +1 -1
  61. package/adapters/hermes/skills/flow-bug-postmortem/SKILL.md +1 -1
  62. package/adapters/hermes/skills/flow-bug-review/SKILL.md +1 -1
  63. package/adapters/hermes/skills/flow-bug-ship/SKILL.md +3 -3
  64. package/adapters/hermes/skills/flow-bug-start/SKILL.md +2 -2
  65. package/adapters/hermes/skills/flow-bug-validate/SKILL.md +1 -1
  66. package/adapters/hermes/skills/flow-doctor/SKILL.md +1 -0
  67. package/adapters/hermes/skills/flow-feat-build/SKILL.md +2 -2
  68. package/adapters/hermes/skills/flow-feat-design/SKILL.md +1 -1
  69. package/adapters/hermes/skills/flow-feat-plan/SKILL.md +2 -2
  70. package/adapters/hermes/skills/flow-feat-review/SKILL.md +1 -1
  71. package/adapters/hermes/skills/flow-feat-ship/SKILL.md +3 -3
  72. package/adapters/hermes/skills/flow-feat-start/SKILL.md +4 -4
  73. package/adapters/hermes/skills/flow-feat-validate/SKILL.md +1 -1
  74. package/adapters/hermes/skills/flow-next/SKILL.md +1 -1
  75. package/adapters/hermes/skills/flow-work-README/SKILL.md +9 -7
  76. package/adapters/hermes/skills/flow-work-abandon/SKILL.md +2 -2
  77. package/adapters/hermes/skills/flow-work-clean/SKILL.md +1 -1
  78. package/adapters/hermes/skills/flow-work-daily/SKILL.md +1 -1
  79. package/adapters/hermes/skills/flow-work-green/SKILL.md +1 -1
  80. package/adapters/hermes/skills/flow-work-query/SKILL.md +1 -1
  81. package/adapters/hermes/skills/flow-work-respond/SKILL.md +1 -1
  82. package/adapters/hermes/skills/flow-work-resume/SKILL.md +3 -3
  83. package/adapters/hermes/skills/flow-work-status/SKILL.md +1 -1
  84. package/adapters/hermes/skills/flow-work-try/SKILL.md +1 -1
  85. package/adapters/hermes/skills/flow-work-watch/SKILL.md +3 -3
  86. package/adapters/opencode/CORE.md +84 -12
  87. package/adapters/opencode/commands/flow-bug-fix.md +1 -1
  88. package/adapters/opencode/commands/flow-bug-investigate.md +1 -1
  89. package/adapters/opencode/commands/flow-bug-postmortem.md +1 -1
  90. package/adapters/opencode/commands/flow-bug-review.md +1 -1
  91. package/adapters/opencode/commands/flow-bug-ship.md +3 -3
  92. package/adapters/opencode/commands/flow-bug-start.md +2 -2
  93. package/adapters/opencode/commands/flow-bug-validate.md +1 -1
  94. package/adapters/opencode/commands/flow-doctor.md +1 -0
  95. package/adapters/opencode/commands/flow-feat-build.md +2 -2
  96. package/adapters/opencode/commands/flow-feat-design.md +1 -1
  97. package/adapters/opencode/commands/flow-feat-plan.md +2 -2
  98. package/adapters/opencode/commands/flow-feat-review.md +1 -1
  99. package/adapters/opencode/commands/flow-feat-ship.md +3 -3
  100. package/adapters/opencode/commands/flow-feat-start.md +4 -4
  101. package/adapters/opencode/commands/flow-feat-validate.md +1 -1
  102. package/adapters/opencode/commands/flow-next.md +1 -1
  103. package/adapters/opencode/commands/flow-work-README.md +9 -7
  104. package/adapters/opencode/commands/flow-work-abandon.md +2 -2
  105. package/adapters/opencode/commands/flow-work-clean.md +1 -1
  106. package/adapters/opencode/commands/flow-work-daily.md +1 -1
  107. package/adapters/opencode/commands/flow-work-green.md +1 -1
  108. package/adapters/opencode/commands/flow-work-query.md +1 -1
  109. package/adapters/opencode/commands/flow-work-respond.md +1 -1
  110. package/adapters/opencode/commands/flow-work-resume.md +3 -3
  111. package/adapters/opencode/commands/flow-work-status.md +1 -1
  112. package/adapters/opencode/commands/flow-work-try.md +1 -1
  113. package/adapters/opencode/commands/flow-work-watch.md +3 -3
  114. package/package.json +1 -1
  115. package/plugins/flow/.claude-plugin/plugin.json +1 -1
  116. 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, `panel.json`, `00-summary.md`) — skip if you already read it in this session.
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
- - `panel.json` present (`/flow-work-README`) → overwrite with a terminal state before archiving: the title, one `block` line saying the work was abandoned and why, no `Decision` line.
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, `panel.json`, `00-summary.md`) — skip if you already read it in this session.
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, `panel.json`, `00-summary.md`) — skip if you already read it in this session.
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, `panel.json`, `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`.**
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, `panel.json`, `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`.**
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, `panel.json`, `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
+ 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, `panel.json`, `00-summary.md`) — skip if you already read it in this session.
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 `.claude/work/<work>/panel.json` is most likely stale. Overwrite it **whole** from the state just rebuilt (`meta.json`, git, the ticket) — rules in flow-core §4:
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`; every fact from `meta.json` and the artifacts; language of the work's artifacts.
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, `panel.json`, `00-summary.md`) — skip if you already read it in this session.
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, `panel.json`, `00-summary.md`) — skip if you already read it in this session.
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, `panel.json`, `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`.**
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). Overwrite `.claude/work/<work>/panel.json` **whole**:
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 `panel.json` 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`.
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.70.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.70.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**