pi-baton 0.7.4 → 0.7.5

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/CHANGELOG.md CHANGED
@@ -6,6 +6,16 @@ This project follows semantic versioning.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.7.5] - 2026-08-22
10
+
11
+ ### Changed
12
+
13
+ - Merge the 2026-08-22 managed OSS dependency and maintenance PR batch.
14
+
15
+ ### Added
16
+
17
+ - Added the builtin `Two-Stage Review Gauntlet` workflow to demonstrate a non-default two-stage review graph.
18
+
9
19
  ### Changed
10
20
 
11
21
  - Bump package version to `0.7.3` for the next patch release.
@@ -151,4 +161,3 @@ This project follows semantic versioning.
151
161
  - Initial Pi package template.
152
162
  - Example extension, Agent Skill, prompt, and theme.
153
163
  - CI and npm Trusted Publishing workflow.
154
-
package/README.md CHANGED
@@ -39,7 +39,7 @@ pi install npm:pi-baton
39
39
  Pin a specific version when you want reproducible installs:
40
40
 
41
41
  ```bash
42
- pi install npm:pi-baton@0.7.4
42
+ pi install npm:pi-baton@0.7.5
43
43
  ```
44
44
 
45
45
  Install into the current project instead of your user Pi settings:
@@ -77,7 +77,10 @@ Then run:
77
77
  /baton:status show the active run summary
78
78
  ```
79
79
 
80
- The builtin `Default Review Loop` workflow (implement → review → fix) works out of the box — no agent setup required.
80
+ Builtin workflows work out of the box — no agent setup required:
81
+
82
+ - `Default Review Loop` (`implement → review → fix`)
83
+ - `Two-Stage Review Gauntlet` (`draft → technical_review → editorial_review`, with rejects routed through `fix`)
81
84
 
82
85
  ## Prerequisites
83
86
 
@@ -100,6 +103,8 @@ Discovery order: project `.pi/agents/` → user `~/.pi/agent/agents/` → pi-bat
100
103
 
101
104
  Pick a name and a scaffold from `default-review-loop` is written to `.pi/baton/workflows/` and opened in editor. The scaffold includes `<your-fast-model>` / `<your-strong-model>` placeholders for step-level model overrides.
102
105
 
106
+ The shipped `workflows/` directory also includes `two-stage-review-gauntlet.yaml`, a second builtin graph that demonstrates chaining two review gates before completion.
107
+
103
108
  ### Workflow YAML reference
104
109
 
105
110
  ```yaml
@@ -135,7 +140,7 @@ steps:
135
140
  | `extensions/` | Slash-command entrypoints (`/baton:new`, `/baton:start`, `/baton:run`, `/baton:status`) |
136
141
  | `lib/` | Workflow parser, run engine, subagent runner, review contract, UI widget |
137
142
  | `agents/` | Builtin `worker` and `reviewer` subagent definitions |
138
- | `workflows/` | Builtin `default-review-loop.yaml` |
143
+ | `workflows/` | Builtin workflows (`default-review-loop.yaml`, `two-stage-review-gauntlet.yaml`) |
139
144
  | `assets/` | README / package branding assets |
140
145
  | `docs/` | Release and maintainer documentation |
141
146
 
@@ -171,4 +176,4 @@ For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
171
176
 
172
177
  ## License
173
178
 
174
- MIT
179
+ MIT
package/docs/release.md CHANGED
@@ -19,9 +19,9 @@ npm version patch
19
19
  git push
20
20
  ```
21
21
 
22
- On `main`, `.github/workflows/auto-release.yml` checks `package.json` version. If `v<version>` does not exist yet, it creates the tag, creates the GitHub Release, then explicitly dispatches `.github/workflows/publish.yml` for that tag.
22
+ On `main`, `.github/workflows/auto-release.yml` checks `package.json` version. If `v<version>` does not exist yet, it creates the tag, creates the GitHub Release, then explicitly dispatches `.github/workflows/publish.yml` for that tag. Version bumps on `main` do not trigger `publish.yml` directly; auto-release is the single handoff path for those commits.
23
23
 
24
- The `v*.*.*` tag also triggers `.github/workflows/publish.yml`, which runs CI and publishes to npm when tags are pushed manually.
24
+ The `v*.*.*` tag push also triggers `.github/workflows/publish.yml`, which runs CI and publishes to npm when tags are pushed manually.
25
25
  Publishing also runs when a GitHub Release is published, and can be run manually from GitHub Actions with `workflow_dispatch`.
26
26
 
27
27
  The workflow skips `name@version` if that exact package version already exists on npm.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-baton",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "description": "Pi-native workflow baton runner with per-step model switching and isolated step context.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -58,10 +58,10 @@
58
58
  "typebox": "*"
59
59
  },
60
60
  "devDependencies": {
61
- "@earendil-works/pi-ai": "^0.82.1",
62
- "@earendil-works/pi-coding-agent": "^0.82.1",
61
+ "@earendil-works/pi-ai": "^0.84.1",
62
+ "@earendil-works/pi-coding-agent": "^0.84.1",
63
63
  "typebox": "latest",
64
64
  "@types/node": "^26.0.1",
65
- "typescript": "^6.0.3"
65
+ "typescript": "^7.0.2"
66
66
  }
67
67
  }
@@ -0,0 +1,75 @@
1
+ name: Two-Stage Review Gauntlet
2
+ iteration_cap: 4
3
+ steps:
4
+ draft:
5
+ agent: worker
6
+ prompt: |
7
+ You are the draft step in a Pi Baton two-stage review gauntlet.
8
+
9
+ Produce a complete first-pass solution for the task brief. Keep the work focused
10
+ and prepare it for technical and editorial review gates.
11
+
12
+ End your response with a fenced JSON block:
13
+ ```json
14
+ {"summary":"One paragraph summary of the draft you produced"}
15
+ ```
16
+ next: technical_review
17
+ technical_review:
18
+ agent: reviewer
19
+ prompt: |
20
+ You are the technical review gate in a Pi Baton two-stage review gauntlet.
21
+
22
+ Review the draft for correctness, completeness, tests, regressions, and implementation risk.
23
+ Accept only when the work is technically ready to proceed to editorial review.
24
+
25
+ End your response with a fenced JSON block:
26
+ ```json
27
+ {"summary":"Short technical review summary","judgment":"accept","acceptanceNote":"Why this is technically ready"}
28
+ ```
29
+ or
30
+ ```json
31
+ {"summary":"Short technical review summary","judgment":"reject","findings":["Actionable technical issue 1"]}
32
+ ```
33
+
34
+ Rules:
35
+ - judgment must be "accept" or "reject"
36
+ - reject requires non-empty findings
37
+ - accept requires a non-empty acceptanceNote
38
+ on_accept: editorial_review
39
+ on_reject: fix
40
+ editorial_review:
41
+ agent: reviewer
42
+ prompt: |
43
+ You are the editorial review gate in a Pi Baton two-stage review gauntlet.
44
+
45
+ Review the technically accepted work for clarity, maintainability, user-facing wording,
46
+ and handoff quality. Accept only when the final result is ready to deliver.
47
+
48
+ End your response with a fenced JSON block:
49
+ ```json
50
+ {"summary":"Short editorial review summary","judgment":"accept","acceptanceNote":"Why this is ready to deliver"}
51
+ ```
52
+ or
53
+ ```json
54
+ {"summary":"Short editorial review summary","judgment":"reject","findings":["Actionable editorial issue 1"]}
55
+ ```
56
+
57
+ Rules:
58
+ - judgment must be "accept" or "reject"
59
+ - reject requires non-empty findings
60
+ - accept requires a non-empty acceptanceNote
61
+ on_accept: _complete
62
+ on_reject: fix
63
+ fix:
64
+ agent: worker
65
+ prompt: |
66
+ You are the fix step in a Pi Baton two-stage review gauntlet.
67
+
68
+ Address the latest review findings while preserving good work from earlier steps.
69
+ After fixing, the work returns through the technical gate before editorial review.
70
+
71
+ End your response with a fenced JSON block:
72
+ ```json
73
+ {"summary":"One paragraph summary of fixes applied"}
74
+ ```
75
+ next: technical_review