flow-workflows 0.85.0 → 0.85.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/codex/CORE.md +3 -2
- package/adapters/codex/skills/flow-feat-ship/SKILL.md +1 -1
- package/adapters/codex/skills/flow-work-run/SKILL.md +1 -1
- package/adapters/gemini/CORE.md +3 -2
- package/adapters/gemini/commands/flow/feat/ship.toml +1 -1
- package/adapters/gemini/commands/flow/work/run.toml +1 -1
- package/adapters/hermes/CORE.md +3 -2
- package/adapters/hermes/skills/flow-feat-ship/SKILL.md +1 -1
- package/adapters/hermes/skills/flow-work-run/SKILL.md +1 -1
- package/adapters/opencode/CORE.md +3 -2
- package/adapters/opencode/commands/flow-feat-ship.md +1 -1
- package/adapters/opencode/commands/flow-work-run.md +1 -1
- package/package.json +1 -1
- package/plugins/flow/.claude-plugin/plugin.json +1 -1
- package/plugins/flow/CHANGELOG.md +9 -0
package/adapters/codex/CORE.md
CHANGED
|
@@ -17,7 +17,7 @@ Every `$flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
17
17
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
18
18
|
`flow-core`" means this file.
|
|
19
19
|
|
|
20
|
-
**This file belongs to flow `0.85.
|
|
20
|
+
**This file belongs to flow `0.85.1`.** 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
|
|
@@ -258,7 +258,8 @@ assumed:
|
|
|
258
258
|
recommended one first), title, body, reason and summary are written into the work folder
|
|
259
259
|
(`ask-question.md`, `ask-options.md`, `publish-title.md`, `publish-body.md`, `blocked-reason.md`,
|
|
260
260
|
`done-summary.md`) — or a `mktemp -d` directory before the folder exists — and passed by path. A
|
|
261
|
-
backtick or a quote in a ticket title must never meet a shell.
|
|
261
|
+
backtick or a quote in a ticket title must never meet a shell. `publish-title.md` holds **one
|
|
262
|
+
line**, the title alone — no `#`, no second line: the orchestrator refuses a title file with two.
|
|
262
263
|
- **The orchestrator pushes and opens the MR/PR; the run never does.** No `git push`, no `gh`, no
|
|
263
264
|
`glab`, no tracker write in this mode — not before `ship`, not in it. The orchestrator also keeps,
|
|
264
265
|
between runs, the work folder as the run left it and the work branch at the commit where it
|
|
@@ -31,7 +31,7 @@ it hands the finished MR/PR to the orchestrator, which pushes the branch and ope
|
|
|
31
31
|
place it would ask:
|
|
32
32
|
|
|
33
33
|
- **The MR/PR itself (§3–§4)** — no confirmation and no forge. §2's title and description are
|
|
34
|
-
written to `publish-title.md` and `publish-body.md` in the work folder; the body gains one line
|
|
34
|
+
written to `publish-title.md` (one line, the title alone) and `publish-body.md` in the work folder; the body gains one line
|
|
35
35
|
saying an unattended run prepared it and nobody confirmed its brief. §4.0's branch check still
|
|
36
36
|
runs (never the base; the name starts with `<ticket>-`) — and an upstream on the base is unset
|
|
37
37
|
(`git branch --unset-upstream`), with no push after it. §4.1–§4.3 do not: no push, no
|
|
@@ -38,7 +38,7 @@ of truth, and an argument that disagrees with it is ignored and named in the log
|
|
|
38
38
|
- Run `<cmd> why`. It fails, or prints anything but `start`, `answer`, `review`, `pipeline` or
|
|
39
39
|
`merged` → print what it returned and its stderr in the §3 header and end. No closing order: an
|
|
40
40
|
orchestrator that cannot say why it launched the run cannot take one either.
|
|
41
|
-
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent → `feat
|
|
41
|
+
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent or `null` → `feat`: the tracker could not tell, so flow decides). `kind` is re-read on every run; only `start` uses it — once the work exists, its folder says feat or bug.
|
|
42
42
|
It fails or prints no `number` → `blocked` (flow-core §2.1).
|
|
43
43
|
- Find the work: the `meta.json` under `.claude/work/` whose `ticket` equals `number` (archive
|
|
44
44
|
excluded). None is not an error — it is the "none" of the table below.
|
package/adapters/gemini/CORE.md
CHANGED
|
@@ -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.85.
|
|
19
|
+
**This file belongs to flow `0.85.1`.** 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
|
|
@@ -257,7 +257,8 @@ assumed:
|
|
|
257
257
|
recommended one first), title, body, reason and summary are written into the work folder
|
|
258
258
|
(`ask-question.md`, `ask-options.md`, `publish-title.md`, `publish-body.md`, `blocked-reason.md`,
|
|
259
259
|
`done-summary.md`) — or a `mktemp -d` directory before the folder exists — and passed by path. A
|
|
260
|
-
backtick or a quote in a ticket title must never meet a shell.
|
|
260
|
+
backtick or a quote in a ticket title must never meet a shell. `publish-title.md` holds **one
|
|
261
|
+
line**, the title alone — no `#`, no second line: the orchestrator refuses a title file with two.
|
|
261
262
|
- **The orchestrator pushes and opens the MR/PR; the run never does.** No `git push`, no `gh`, no
|
|
262
263
|
`glab`, no tracker write in this mode — not before `ship`, not in it. The orchestrator also keeps,
|
|
263
264
|
between runs, the work folder as the run left it and the work branch at the commit where it
|
|
@@ -27,7 +27,7 @@ it hands the finished MR/PR to the orchestrator, which pushes the branch and ope
|
|
|
27
27
|
place it would ask:
|
|
28
28
|
|
|
29
29
|
- **The MR/PR itself (§3–§4)** — no confirmation and no forge. §2's title and description are
|
|
30
|
-
written to `publish-title.md` and `publish-body.md` in the work folder; the body gains one line
|
|
30
|
+
written to `publish-title.md` (one line, the title alone) and `publish-body.md` in the work folder; the body gains one line
|
|
31
31
|
saying an unattended run prepared it and nobody confirmed its brief. §4.0's branch check still
|
|
32
32
|
runs (never the base; the name starts with `<ticket>-`) — and an upstream on the base is unset
|
|
33
33
|
(`git branch --unset-upstream`), with no push after it. §4.1–§4.3 do not: no push, no
|
|
@@ -34,7 +34,7 @@ of truth, and an argument that disagrees with it is ignored and named in the log
|
|
|
34
34
|
- Run `<cmd> why`. It fails, or prints anything but `start`, `answer`, `review`, `pipeline` or
|
|
35
35
|
`merged` → print what it returned and its stderr in the §3 header and end. No closing order: an
|
|
36
36
|
orchestrator that cannot say why it launched the run cannot take one either.
|
|
37
|
-
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent → `feat
|
|
37
|
+
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent or `null` → `feat`: the tracker could not tell, so flow decides). `kind` is re-read on every run; only `start` uses it — once the work exists, its folder says feat or bug.
|
|
38
38
|
It fails or prints no `number` → `blocked` (flow-core §2.1).
|
|
39
39
|
- Find the work: the `meta.json` under `.claude/work/` whose `ticket` equals `number` (archive
|
|
40
40
|
excluded). None is not an error — it is the "none" of the table below.
|
package/adapters/hermes/CORE.md
CHANGED
|
@@ -17,7 +17,7 @@ Every `/flow-*` command assumes these rules. They are stated once, here, so a co
|
|
|
17
17
|
carries what is specific to its phase. Read this once per session; a command that says "load
|
|
18
18
|
`flow-core`" means this file.
|
|
19
19
|
|
|
20
|
-
**This file belongs to flow `0.85.
|
|
20
|
+
**This file belongs to flow `0.85.1`.** 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
|
|
@@ -258,7 +258,8 @@ assumed:
|
|
|
258
258
|
recommended one first), title, body, reason and summary are written into the work folder
|
|
259
259
|
(`ask-question.md`, `ask-options.md`, `publish-title.md`, `publish-body.md`, `blocked-reason.md`,
|
|
260
260
|
`done-summary.md`) — or a `mktemp -d` directory before the folder exists — and passed by path. A
|
|
261
|
-
backtick or a quote in a ticket title must never meet a shell.
|
|
261
|
+
backtick or a quote in a ticket title must never meet a shell. `publish-title.md` holds **one
|
|
262
|
+
line**, the title alone — no `#`, no second line: the orchestrator refuses a title file with two.
|
|
262
263
|
- **The orchestrator pushes and opens the MR/PR; the run never does.** No `git push`, no `gh`, no
|
|
263
264
|
`glab`, no tracker write in this mode — not before `ship`, not in it. The orchestrator also keeps,
|
|
264
265
|
between runs, the work folder as the run left it and the work branch at the commit where it
|
|
@@ -31,7 +31,7 @@ it hands the finished MR/PR to the orchestrator, which pushes the branch and ope
|
|
|
31
31
|
place it would ask:
|
|
32
32
|
|
|
33
33
|
- **The MR/PR itself (§3–§4)** — no confirmation and no forge. §2's title and description are
|
|
34
|
-
written to `publish-title.md` and `publish-body.md` in the work folder; the body gains one line
|
|
34
|
+
written to `publish-title.md` (one line, the title alone) and `publish-body.md` in the work folder; the body gains one line
|
|
35
35
|
saying an unattended run prepared it and nobody confirmed its brief. §4.0's branch check still
|
|
36
36
|
runs (never the base; the name starts with `<ticket>-`) — and an upstream on the base is unset
|
|
37
37
|
(`git branch --unset-upstream`), with no push after it. §4.1–§4.3 do not: no push, no
|
|
@@ -38,7 +38,7 @@ of truth, and an argument that disagrees with it is ignored and named in the log
|
|
|
38
38
|
- Run `<cmd> why`. It fails, or prints anything but `start`, `answer`, `review`, `pipeline` or
|
|
39
39
|
`merged` → print what it returned and its stderr in the §3 header and end. No closing order: an
|
|
40
40
|
orchestrator that cannot say why it launched the run cannot take one either.
|
|
41
|
-
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent → `feat
|
|
41
|
+
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent or `null` → `feat`: the tracker could not tell, so flow decides). `kind` is re-read on every run; only `start` uses it — once the work exists, its folder says feat or bug.
|
|
42
42
|
It fails or prints no `number` → `blocked` (flow-core §2.1).
|
|
43
43
|
- Find the work: the `meta.json` under `.claude/work/` whose `ticket` equals `number` (archive
|
|
44
44
|
excluded). None is not an error — it is the "none" of the table below.
|
|
@@ -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.85.
|
|
19
|
+
**This file belongs to flow `0.85.1`.** 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
|
|
@@ -257,7 +257,8 @@ assumed:
|
|
|
257
257
|
recommended one first), title, body, reason and summary are written into the work folder
|
|
258
258
|
(`ask-question.md`, `ask-options.md`, `publish-title.md`, `publish-body.md`, `blocked-reason.md`,
|
|
259
259
|
`done-summary.md`) — or a `mktemp -d` directory before the folder exists — and passed by path. A
|
|
260
|
-
backtick or a quote in a ticket title must never meet a shell.
|
|
260
|
+
backtick or a quote in a ticket title must never meet a shell. `publish-title.md` holds **one
|
|
261
|
+
line**, the title alone — no `#`, no second line: the orchestrator refuses a title file with two.
|
|
261
262
|
- **The orchestrator pushes and opens the MR/PR; the run never does.** No `git push`, no `gh`, no
|
|
262
263
|
`glab`, no tracker write in this mode — not before `ship`, not in it. The orchestrator also keeps,
|
|
263
264
|
between runs, the work folder as the run left it and the work branch at the commit where it
|
|
@@ -29,7 +29,7 @@ it hands the finished MR/PR to the orchestrator, which pushes the branch and ope
|
|
|
29
29
|
place it would ask:
|
|
30
30
|
|
|
31
31
|
- **The MR/PR itself (§3–§4)** — no confirmation and no forge. §2's title and description are
|
|
32
|
-
written to `publish-title.md` and `publish-body.md` in the work folder; the body gains one line
|
|
32
|
+
written to `publish-title.md` (one line, the title alone) and `publish-body.md` in the work folder; the body gains one line
|
|
33
33
|
saying an unattended run prepared it and nobody confirmed its brief. §4.0's branch check still
|
|
34
34
|
runs (never the base; the name starts with `<ticket>-`) — and an upstream on the base is unset
|
|
35
35
|
(`git branch --unset-upstream`), with no push after it. §4.1–§4.3 do not: no push, no
|
|
@@ -36,7 +36,7 @@ of truth, and an argument that disagrees with it is ignored and named in the log
|
|
|
36
36
|
- Run `<cmd> why`. It fails, or prints anything but `start`, `answer`, `review`, `pipeline` or
|
|
37
37
|
`merged` → print what it returned and its stderr in the §3 header and end. No closing order: an
|
|
38
38
|
orchestrator that cannot say why it launched the run cannot take one either.
|
|
39
|
-
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent → `feat
|
|
39
|
+
- Run `<cmd> ticket --json` and keep `number`, `title`, `base` and `kind` (`kind` absent or `null` → `feat`: the tracker could not tell, so flow decides). `kind` is re-read on every run; only `start` uses it — once the work exists, its folder says feat or bug.
|
|
40
40
|
It fails or prints no `number` → `blocked` (flow-core §2.1).
|
|
41
41
|
- Find the work: the `meta.json` under `.claude/work/` whose `ticket` equals `number` (archive
|
|
42
42
|
excluded). None is not an error — it is the "none" of the table below.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-workflows",
|
|
3
|
-
"version": "0.85.
|
|
3
|
+
"version": "0.85.1",
|
|
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.85.
|
|
6
|
+
"version": "0.85.1",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Alberto Vioque",
|
|
9
9
|
"email": "mashware@gmail.com"
|
|
@@ -5,6 +5,15 @@ 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.85.1 — An unattended run reads the orchestrator's answers as agent-runner sends them · 2026-10-01
|
|
9
|
+
|
|
10
|
+
**In short**
|
|
11
|
+
- **A ticket whose tracker cannot tell feat from bug starts as a feature.** agent-runner sends
|
|
12
|
+
`kind: null` in that case; `/flow:work:run` now reads it the same as a missing `kind`.
|
|
13
|
+
- **The PR title goes to the orchestrator as one line.** agent-runner refuses a title file with two
|
|
14
|
+
lines; flow now says so where the run writes it.
|
|
15
|
+
- Nothing changes in `manual`, `guided` or `auto`. Follows #177.
|
|
16
|
+
|
|
8
17
|
## v0.85.0 — An unattended run answers its reviewers and fixes its own pipeline · 2026-10-01
|
|
9
18
|
|
|
10
19
|
**In short**
|