flow-workflows 0.75.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.
@@ -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.75.0`.** Compare it once, at the start of the session, against
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
@@ -95,7 +95,7 @@ Save it in `04-fix.md` under `## Plan`, right after the brief. **A fix that was
95
95
 
96
96
  - Apply the minimal fix targeting the finding of `03-investigation.md` (or the diagnosis if investigate was skipped).
97
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.
98
- - 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.
99
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.
100
100
  - Keep the log updated while editing.
101
101
 
@@ -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
@@ -150,6 +150,8 @@ Execution mode:
150
150
 
151
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.
152
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
+
153
155
  ### 2.1bis The premise this change rests on (any size, XS included)
154
156
 
155
157
  `$flow-feat-design §6` challenges the beliefs a plan rests on — and XS never runs `design`. On a
@@ -197,9 +199,9 @@ The step's changes are **always reported before anything is recorded**. Who deci
197
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.
198
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.
199
201
 
200
- **After completing each `TaskCreate` step**:
202
+ **After completing each plan step**:
201
203
 
202
- 1. **Mark the step `completed`** in `TaskCreate`.
204
+ 1. **Mark the step `completed`** in the task list — or tick it in `05-implementation.md` where there is none (§2.1).
203
205
  2. **Report to the user** a step summary (≤ 5 lines):
204
206
  ```
205
207
  Step N done: <description>
@@ -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.75.0`.** Compare it once, at the start of the session, against
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
@@ -91,7 +91,7 @@ Save it in `04-fix.md` under `## Plan`, right after the brief. **A fix that was
91
91
 
92
92
  - Apply the minimal fix targeting the finding of `03-investigation.md` (or the diagnosis if investigate was skipped).
93
93
  - 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.
94
+ - 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
95
  - **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
96
  - Keep the log updated while editing.
97
97
 
@@ -231,6 +231,7 @@ refuse) · **degraded** (it runs, quietly worse than the config promises), plus
231
231
  a non-negative integer (`0` = no ceiling; else the default `12` applies). Report both effective
232
232
  numbers with the count of panel members `quality.review_skill`/`quality.reviewers` defines, so
233
233
  the widest command's cost is visible before it is paid, not after.
234
+ - **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`.
234
235
  - **The `flow-workflows` CLI, which `review` reaches for before it composes a panel**:
235
236
  `npx flow-workflows@<version> --version` answers, with `<version>` read from `version` in
236
237
  `~/.claude/flow/.claude-plugin/plugin.json` — the same pin `review` uses, so the number that
@@ -146,6 +146,8 @@ Execution mode:
146
146
 
147
147
  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
148
 
149
+ **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.
150
+
149
151
  ### 2.1bis The premise this change rests on (any size, XS included)
150
152
 
151
153
  `/flow:feat:design §6` challenges the beliefs a plan rests on — and XS never runs `design`. On a
@@ -193,9 +195,9 @@ The step's changes are **always reported before anything is recorded**. Who deci
193
195
  - **`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
196
  - **`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
197
 
196
- **After completing each `TaskCreate` step**:
198
+ **After completing each plan step**:
197
199
 
198
- 1. **Mark the step `completed`** in `TaskCreate`.
200
+ 1. **Mark the step `completed`** in the task list — or tick it in `05-implementation.md` where there is none (§2.1).
199
201
  2. **Report to the user** a step summary (≤ 5 lines):
200
202
  ```
201
203
  Step N done: <description>
@@ -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.75.0`.** Compare it once, at the start of the session, against
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
@@ -95,7 +95,7 @@ Save it in `04-fix.md` under `## Plan`, right after the brief. **A fix that was
95
95
 
96
96
  - Apply the minimal fix targeting the finding of `03-investigation.md` (or the diagnosis if investigate was skipped).
97
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.
98
- - 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.
99
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.
100
100
  - Keep the log updated while editing.
101
101
 
@@ -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
@@ -150,6 +150,8 @@ Execution mode:
150
150
 
151
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.
152
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
+
153
155
  ### 2.1bis The premise this change rests on (any size, XS included)
154
156
 
155
157
  `/flow-feat-design §6` challenges the beliefs a plan rests on — and XS never runs `design`. On a
@@ -197,9 +199,9 @@ The step's changes are **always reported before anything is recorded**. Who deci
197
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.
198
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.
199
201
 
200
- **After completing each `TaskCreate` step**:
202
+ **After completing each plan step**:
201
203
 
202
- 1. **Mark the step `completed`** in `TaskCreate`.
204
+ 1. **Mark the step `completed`** in the task list — or tick it in `05-implementation.md` where there is none (§2.1).
203
205
  2. **Report to the user** a step summary (≤ 5 lines):
204
206
  ```
205
207
  Step N done: <description>
@@ -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.75.0`.** Compare it once, at the start of the session, against
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
@@ -93,7 +93,7 @@ Save it in `04-fix.md` under `## Plan`, right after the brief. **A fix that was
93
93
 
94
94
  - Apply the minimal fix targeting the finding of `03-investigation.md` (or the diagnosis if investigate was skipped).
95
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.
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.
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.
97
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.
98
98
  - Keep the log updated while editing.
99
99
 
@@ -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
@@ -148,6 +148,8 @@ Execution mode:
148
148
 
149
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.
150
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
+
151
153
  ### 2.1bis The premise this change rests on (any size, XS included)
152
154
 
153
155
  `/flow-feat-design §6` challenges the beliefs a plan rests on — and XS never runs `design`. On a
@@ -195,9 +197,9 @@ The step's changes are **always reported before anything is recorded**. Who deci
195
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.
196
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.
197
199
 
198
- **After completing each `TaskCreate` step**:
200
+ **After completing each plan step**:
199
201
 
200
- 1. **Mark the step `completed`** in `TaskCreate`.
202
+ 1. **Mark the step `completed`** in the task list — or tick it in `05-implementation.md` where there is none (§2.1).
201
203
  2. **Report to the user** a step summary (≤ 5 lines):
202
204
  ```
203
205
  Step N done: <description>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flow-workflows",
3
- "version": "0.75.0",
3
+ "version": "0.76.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.75.0",
6
+ "version": "0.76.0",
7
7
  "author": {
8
8
  "name": "Alberto Vioque",
9
9
  "email": "mashware@gmail.com"
@@ -5,6 +5,20 @@ 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.76.0 — The plan was written for a list the terminal was never given · 2026-09-22
9
+
10
+ **In short**
11
+ - **`build` and `fix` look for the task-list tool before they use it**, including the deferred list,
12
+ and when there is none they tick the plan's steps in the phase artifact and say so once.
13
+ - **`/flow:doctor` reports whether a task-list tool is there**, and on Claude Code names the setting
14
+ that brings it back.
15
+
16
+ Since v0.70.0 `build` writes a plan per MR/PR and seeds the terminal's step list from it. On 22
17
+ September the plan was written (`## Plan MR/PR #3`) and no list ever appeared: Claude Code withholds
18
+ its task tools from newer models unless `CLAUDE_CODE_ENABLE_TODO_TOOLS=true` is set, and when the
19
+ setting is on it lists them deferred. Either way the instruction named a tool that was not callable,
20
+ and it was skipped without a word — across three sessions, not one task call.
21
+
8
22
  ## v0.75.0 — The words the panel understands now travel with every command · 2026-09-22
9
23
 
10
24
  **In short**