flow-workflows 0.71.0 → 0.72.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.
@@ -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.71.0`.** Compare it once, at the start of the session, against
20
+ **This file belongs to flow `0.72.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
@@ -269,8 +269,17 @@ right now. **Any progress line you were about to type into the chat is a panel u
269
269
  **Two transports, one document.** When the tools `panel_set` / `panel_patch` / `panel_get` are
270
270
  available, this console is a pane of agent-terminal: publish the panel through them (§4.2) and
271
271
  **stop writing `.claude/work/<work>/panel.json`** — while a pane is claimed, its file is not read at
272
- all. When the tools are not there, write the file exactly as before (§4.3). No work folder
273
- (lightweight `respond`/`green`) → nothing to publish, either way.
272
+ all. When they are not there, write the file exactly as before (§4.3). No work folder (lightweight
273
+ `respond`/`green`) → nothing to publish, either way.
274
+
275
+ **Look for them before you conclude they are missing**, once per session, in pre-flight. A harness
276
+ namespaces an MCP server's tools, so what you are looking for is a tool whose name *ends* in
277
+ `panel_set` — `mcp__panel__panel_set` on Claude Code, another prefix elsewhere — and the name is
278
+ whatever it is called there, not `panel_set`. It may also be **deferred**: listed by name with no
279
+ schema, uncallable until you load it, and indistinguishable from absent unless you read that list.
280
+ A deferred tool is a tool that is there; load the three schemas and publish. The file is the answer
281
+ only after that search comes back empty — and this is the one paragraph that decides it, because
282
+ prose describing a file is otherwise obeyed to the letter.
274
283
 
275
284
  ### 4.1 The document — the same whichever transport carries it
276
285
 
@@ -199,7 +199,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
199
199
  `.agents/agents`, or a plugin. Report each missing name and that it falls back to `general-purpose`
200
200
  (a skill: skipped) — a panel missing agents reviews less and still reports a clean pass.
201
201
  - Harness cannot set a model per subagent → note that every `models.*` value degrades to inheritance.
202
- - **Where the live panel will go this session** (flow-core §4): `panel_set` / `panel_patch` exposed → the terminal draws the panel and no `panel.json` is written; absent → the panel is that file, as before. Neither is a fault — one line saying which one this session gets.
202
+ - **Where the live panel will go this session** (flow-core §4): a tool whose name ends in `panel_set` / `panel_patch` — namespaced by the harness (`mcp__panel__panel_set` on Claude Code) and possibly **deferred**, which reads as absent until the list of deferred tools is checked → the terminal draws the panel and no `panel.json` is written; genuinely absent → the panel is that file, as before. Neither is a fault — one line naming the tools as they are actually called here, or saying the file is the transport.
203
203
 
204
204
  ### 2.3 Knowledge sources
205
205
 
@@ -159,7 +159,7 @@ This system **orchestrates** the project's existing sub-agents and skills (it do
159
159
 
160
160
  ## The panel document
161
161
 
162
- `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools, or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
162
+ `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools (namespaced by the harness, and possibly deferred: flow-core §4 says how to find them), or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
163
163
 
164
164
  ```json
165
165
  {
@@ -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.71.0`.** Compare it once, at the start of the session, against
19
+ **This file belongs to flow `0.72.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
@@ -268,8 +268,17 @@ right now. **Any progress line you were about to type into the chat is a panel u
268
268
  **Two transports, one document.** When the tools `panel_set` / `panel_patch` / `panel_get` are
269
269
  available, this console is a pane of agent-terminal: publish the panel through them (§4.2) and
270
270
  **stop writing `.claude/work/<work>/panel.json`** — while a pane is claimed, its file is not read at
271
- all. When the tools are not there, write the file exactly as before (§4.3). No work folder
272
- (lightweight `respond`/`green`) → nothing to publish, either way.
271
+ all. When they are not there, write the file exactly as before (§4.3). No work folder (lightweight
272
+ `respond`/`green`) → nothing to publish, either way.
273
+
274
+ **Look for them before you conclude they are missing**, once per session, in pre-flight. A harness
275
+ namespaces an MCP server's tools, so what you are looking for is a tool whose name *ends* in
276
+ `panel_set` — `mcp__panel__panel_set` on Claude Code, another prefix elsewhere — and the name is
277
+ whatever it is called there, not `panel_set`. It may also be **deferred**: listed by name with no
278
+ schema, uncallable until you load it, and indistinguishable from absent unless you read that list.
279
+ A deferred tool is a tool that is there; load the three schemas and publish. The file is the answer
280
+ only after that search comes back empty — and this is the one paragraph that decides it, because
281
+ prose describing a file is otherwise obeyed to the letter.
273
282
 
274
283
  ### 4.1 The document — the same whichever transport carries it
275
284
 
@@ -195,7 +195,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
195
195
  `.agents/agents`, or a plugin. Report each missing name and that it falls back to `general-purpose`
196
196
  (a skill: skipped) — a panel missing agents reviews less and still reports a clean pass.
197
197
  - Harness cannot set a model per subagent → note that every `models.*` value degrades to inheritance.
198
- - **Where the live panel will go this session** (flow-core §4): `panel_set` / `panel_patch` exposed → the terminal draws the panel and no `panel.json` is written; absent → the panel is that file, as before. Neither is a fault — one line saying which one this session gets.
198
+ - **Where the live panel will go this session** (flow-core §4): a tool whose name ends in `panel_set` / `panel_patch` — namespaced by the harness (`mcp__panel__panel_set` on Claude Code) and possibly **deferred**, which reads as absent until the list of deferred tools is checked → the terminal draws the panel and no `panel.json` is written; genuinely absent → the panel is that file, as before. Neither is a fault — one line naming the tools as they are actually called here, or saying the file is the transport.
199
199
 
200
200
  ### 2.3 Knowledge sources
201
201
 
@@ -155,7 +155,7 @@ This system **orchestrates** the project's existing sub-agents and skills (it do
155
155
 
156
156
  ## The panel document
157
157
 
158
- `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools, or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
158
+ `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools (namespaced by the harness, and possibly deferred: flow-core §4 says how to find them), or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
159
159
 
160
160
  ```json
161
161
  {
@@ -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.71.0`.** Compare it once, at the start of the session, against
20
+ **This file belongs to flow `0.72.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
@@ -269,8 +269,17 @@ right now. **Any progress line you were about to type into the chat is a panel u
269
269
  **Two transports, one document.** When the tools `panel_set` / `panel_patch` / `panel_get` are
270
270
  available, this console is a pane of agent-terminal: publish the panel through them (§4.2) and
271
271
  **stop writing `.claude/work/<work>/panel.json`** — while a pane is claimed, its file is not read at
272
- all. When the tools are not there, write the file exactly as before (§4.3). No work folder
273
- (lightweight `respond`/`green`) → nothing to publish, either way.
272
+ all. When they are not there, write the file exactly as before (§4.3). No work folder (lightweight
273
+ `respond`/`green`) → nothing to publish, either way.
274
+
275
+ **Look for them before you conclude they are missing**, once per session, in pre-flight. A harness
276
+ namespaces an MCP server's tools, so what you are looking for is a tool whose name *ends* in
277
+ `panel_set` — `mcp__panel__panel_set` on Claude Code, another prefix elsewhere — and the name is
278
+ whatever it is called there, not `panel_set`. It may also be **deferred**: listed by name with no
279
+ schema, uncallable until you load it, and indistinguishable from absent unless you read that list.
280
+ A deferred tool is a tool that is there; load the three schemas and publish. The file is the answer
281
+ only after that search comes back empty — and this is the one paragraph that decides it, because
282
+ prose describing a file is otherwise obeyed to the letter.
274
283
 
275
284
  ### 4.1 The document — the same whichever transport carries it
276
285
 
@@ -199,7 +199,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
199
199
  `.agents/agents`, or a plugin. Report each missing name and that it falls back to `general-purpose`
200
200
  (a skill: skipped) — a panel missing agents reviews less and still reports a clean pass.
201
201
  - Harness cannot set a model per subagent → note that every `models.*` value degrades to inheritance.
202
- - **Where the live panel will go this session** (flow-core §4): `panel_set` / `panel_patch` exposed → the terminal draws the panel and no `panel.json` is written; absent → the panel is that file, as before. Neither is a fault — one line saying which one this session gets.
202
+ - **Where the live panel will go this session** (flow-core §4): a tool whose name ends in `panel_set` / `panel_patch` — namespaced by the harness (`mcp__panel__panel_set` on Claude Code) and possibly **deferred**, which reads as absent until the list of deferred tools is checked → the terminal draws the panel and no `panel.json` is written; genuinely absent → the panel is that file, as before. Neither is a fault — one line naming the tools as they are actually called here, or saying the file is the transport.
203
203
 
204
204
  ### 2.3 Knowledge sources
205
205
 
@@ -159,7 +159,7 @@ This system **orchestrates** the project's existing sub-agents and skills (it do
159
159
 
160
160
  ## The panel document
161
161
 
162
- `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools, or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
162
+ `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools (namespaced by the harness, and possibly deferred: flow-core §4 says how to find them), or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
163
163
 
164
164
  ```json
165
165
  {
@@ -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.71.0`.** Compare it once, at the start of the session, against
19
+ **This file belongs to flow `0.72.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
@@ -268,8 +268,17 @@ right now. **Any progress line you were about to type into the chat is a panel u
268
268
  **Two transports, one document.** When the tools `panel_set` / `panel_patch` / `panel_get` are
269
269
  available, this console is a pane of agent-terminal: publish the panel through them (§4.2) and
270
270
  **stop writing `.claude/work/<work>/panel.json`** — while a pane is claimed, its file is not read at
271
- all. When the tools are not there, write the file exactly as before (§4.3). No work folder
272
- (lightweight `respond`/`green`) → nothing to publish, either way.
271
+ all. When they are not there, write the file exactly as before (§4.3). No work folder (lightweight
272
+ `respond`/`green`) → nothing to publish, either way.
273
+
274
+ **Look for them before you conclude they are missing**, once per session, in pre-flight. A harness
275
+ namespaces an MCP server's tools, so what you are looking for is a tool whose name *ends* in
276
+ `panel_set` — `mcp__panel__panel_set` on Claude Code, another prefix elsewhere — and the name is
277
+ whatever it is called there, not `panel_set`. It may also be **deferred**: listed by name with no
278
+ schema, uncallable until you load it, and indistinguishable from absent unless you read that list.
279
+ A deferred tool is a tool that is there; load the three schemas and publish. The file is the answer
280
+ only after that search comes back empty — and this is the one paragraph that decides it, because
281
+ prose describing a file is otherwise obeyed to the letter.
273
282
 
274
283
  ### 4.1 The document — the same whichever transport carries it
275
284
 
@@ -197,7 +197,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
197
197
  `.agents/agents`, or a plugin. Report each missing name and that it falls back to `general-purpose`
198
198
  (a skill: skipped) — a panel missing agents reviews less and still reports a clean pass.
199
199
  - Harness cannot set a model per subagent → note that every `models.*` value degrades to inheritance.
200
- - **Where the live panel will go this session** (flow-core §4): `panel_set` / `panel_patch` exposed → the terminal draws the panel and no `panel.json` is written; absent → the panel is that file, as before. Neither is a fault — one line saying which one this session gets.
200
+ - **Where the live panel will go this session** (flow-core §4): a tool whose name ends in `panel_set` / `panel_patch` — namespaced by the harness (`mcp__panel__panel_set` on Claude Code) and possibly **deferred**, which reads as absent until the list of deferred tools is checked → the terminal draws the panel and no `panel.json` is written; genuinely absent → the panel is that file, as before. Neither is a fault — one line naming the tools as they are actually called here, or saying the file is the transport.
201
201
 
202
202
  ### 2.3 Knowledge sources
203
203
 
@@ -157,7 +157,7 @@ This system **orchestrates** the project's existing sub-agents and skills (it do
157
157
 
158
158
  ## The panel document
159
159
 
160
- `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools, or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
160
+ `meta.json` is the *state machine*; the panel is the *view* a reader outside the chat watches. Optional: a work that never publishes it still resolves from `meta.json` alone. Writer rules (order, when, ceiling) and the two transports — the terminal's `panel_set` / `panel_patch` / `panel_get` tools (namespaced by the harness, and possibly deferred: flow-core §4 says how to find them), or `.claude/work/<work>/panel.json` — are flow-core §4. The document below is the same either way.
161
161
 
162
162
  ```json
163
163
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flow-workflows",
3
- "version": "0.71.0",
3
+ "version": "0.72.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.71.0",
6
+ "version": "0.72.0",
7
7
  "author": {
8
8
  "name": "Alberto Vioque",
9
9
  "email": "mashware@gmail.com"
@@ -5,6 +5,21 @@ 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.72.0 — The tools were there, under a name nobody looked for · 2026-09-22
9
+
10
+ **In short**
11
+ - **A session with the panel tools connected kept writing the file.** The rule named them `panel_set` / `panel_patch`, and a harness namespaces an MCP server's tools — so the agent looked for a name that exists nowhere and concluded, reasonably, that there was no panel.
12
+ - **Now the search is the rule**: once per session, in pre-flight, look for a tool whose name *ends* in `panel_set` — `mcp__panel__panel_set` on Claude Code, another prefix elsewhere.
13
+ - **A deferred tool is a tool that is there.** Listed by name with no schema, it reads as absent to anything that does not check that list; flow loads the three schemas and publishes.
14
+ - **The file is the answer only after that search comes back empty**, and `/flow:doctor` names the tools as they are actually called here.
15
+
16
+ v0.71.0 gave the panel a second transport and described it with the names the server declares.
17
+ Neither the plugin nor the agent reading it ever sees those: a harness prefixes them, and it may
18
+ hand them over as names alone, uncallable until their schemas are loaded. Both together are
19
+ indistinguishable from an absent server — and the fallback, "write the file exactly as before", is
20
+ the most obeyed sentence in the section. So the transport chosen itself was the file, every time,
21
+ on the one terminal that had the panel.
22
+
8
23
  ## v0.71.0 — The panel was a file because nothing better was listening · 2026-09-22
9
24
 
10
25
  **In short**