orchestrator-workflow 0.22.0 → 0.23.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,32 @@ All notable changes to `orchestrator-workflow` are documented here.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.23.0] - 2026-08-24
9
+
10
+ ### Changed
11
+
12
+ - **Tightened the `implementer-low` tier rule from discretion to a checkable
13
+ gate on the task contract.** `agents-md-section.md`'s Scaling delegation
14
+ bullet and `SKILL.md` step 6 ("Delegate implementation") no longer say
15
+ `-low` "fits mechanical, narrowly scoped tasks" for the implementer;
16
+ `implementer-low` is now spawned only when none of the following hold: an
17
+ acceptance criterion demands a test, typecheck, lint, or build run; the task
18
+ assignment names mutation probes to run; or the task slicer's
19
+ `suggested_tests` came back non-empty. A task with any of those, including a
20
+ bugfix that looks mechanical, runs on the unsuffixed implementer or higher.
21
+ When it is unclear whether a criterion demands a run, exclude
22
+ `implementer-low`. The explorer and the task-slicer keep the prior
23
+ discretionary `-low` guidance unchanged, since no equivalent measurement
24
+ exists for those roles. Operator decision 2026-08-24 after a Tier-A/B
25
+ measurement of implementer-low as installed (Haiku 4.5) against the default
26
+ implementer (Sonnet 5, effort medium) (agent-tasks task 7f38899d), blinded,
27
+ n=8, identical tasks in both tiers: implementer-low reached accept a median
28
+ 320 seconds slower (p=0.016), drew 9 high-plus-critical review findings
29
+ against 1, and needed 8 fix rounds against 1. The A/B's implementer-low ran
30
+ on Haiku 4.5, which does not support the `effort` parameter, so the harness
31
+ ignores the pinned `effort: low` on that model; the measurement compared
32
+ Haiku 4.5 without effort control against Sonnet 5 at `effort: medium`.
33
+
8
34
  ## [0.22.0] - 2026-08-20
9
35
 
10
36
  ### Changed
package/INSTALL-AGENT.md CHANGED
@@ -198,12 +198,13 @@ steps in the repository you were asked to install into.
198
198
  ```
199
199
  - `.ai/workflow/manifest.json`, exactly this shape (harnesses MUST be an
200
200
  array, `profile` is `"minimal"` or `"full"`, models keyed by role,
201
- version = the kit version you installed):
201
+ version = the kit version you installed, read from this kit's own
202
+ `packages/orchestrator-workflow/package.json` `version` field):
202
203
 
203
204
  ```json
204
205
  {
205
206
  "kit": "orchestrator-workflow",
206
- "version": "0.5.0",
207
+ "version": "<kit version you installed>",
207
208
  "harnesses": ["claude", "opencode"],
208
209
  "profile": "full",
209
210
  "tiers": false,
@@ -215,7 +216,7 @@ steps in the repository you were asked to install into.
215
216
  "advisor": "opus"
216
217
  },
217
218
  "files": {},
218
- "installedAt": "2026-06-12T00:00:00.000Z"
219
+ "installedAt": "<ISO 8601 timestamp of this install>"
219
220
  }
220
221
  ```
221
222
 
@@ -50,16 +50,36 @@ default, not a ritual.
50
50
  changes whose risk or size warrants an independent skeptical pass. Either
51
51
  way, review is never skipped.
52
52
  - When tier variants are installed (manifest `tiers: true`), the orchestrator
53
- picks the effort tier per task by complexity and risk, at its own
54
- judgment. The unsuffixed default subagent is the normal case; a `-low`
55
- variant fits mechanical, narrowly scoped tasks; `-high`/`-xhigh` fit
56
- high-risk changes, hard problems, or repeated failed attempts. Not every
57
- role gets every tier: `-xhigh` exists only for the implementer, the
58
- reviewer, and the advisor. The reviewer's downshift is `-medium` rather
59
- than `-low`, since its default already sits at high. The advisor has no
60
- downshift at all: its default `high` is already its only non-`-xhigh`
61
- tier. Spawn only variants that are actually installed. Tier choice is a
62
- conscious decision, not a ritual; when unsure, use the default.
53
+ picks the effort tier per task by complexity and risk, at its own judgment.
54
+ The unsuffixed default subagent is the normal case; `-high`/`-xhigh` fit
55
+ high-risk changes, hard problems, or repeated failed attempts. For the
56
+ implementer specifically, `-low` is spawned only when none of the following
57
+ hold: an acceptance criterion demands a test, typecheck, lint, or build run;
58
+ the task assignment names mutation probes to run; or the task slicer's
59
+ `suggested_tests` came back non-empty. This is checkable against the task
60
+ contract rather than a judgment about how hard the task looks: any one of
61
+ those three excludes `implementer-low`, and the task runs on the unsuffixed
62
+ implementer or higher, even when the change looks mechanical (a bugfix
63
+ included); when it is unclear whether a criterion demands a run, exclude
64
+ `implementer-low`. This rule is anchored by an A/B measurement of
65
+ implementer-low as installed (Haiku 4.5) against the default implementer
66
+ (Sonnet 5, effort medium) (2026-08-24, n=8, identical tasks in both tiers,
67
+ blinded reviews, agent-tasks task 7f38899d): implementer-low reached accept
68
+ a median 320 seconds slower (p=0.016), drew 9 high-plus-critical review
69
+ findings against 1, and needed 8 fix rounds against 1. The A/B's
70
+ implementer-low ran on Haiku 4.5, which does not support the `effort`
71
+ parameter (per Anthropic's model reference), so the harness ignores the
72
+ pinned `effort: low` on that model; the measurement compared Haiku 4.5
73
+ without effort control against Sonnet 5 at `effort: medium`. For the
74
+ explorer and the task-slicer, a `-low` variant still suits narrowly scoped,
75
+ mechanical work; no equivalent measurement exists for those two roles, so
76
+ their rule is unchanged. Not every role gets every tier: `-xhigh` exists
77
+ only for the implementer, the reviewer, and the advisor. The reviewer's
78
+ downshift is `-medium` rather than `-low`, since its default already sits at
79
+ high. The advisor has no downshift at all: its default `high` is already its
80
+ only non-`-xhigh` tier. Spawn only variants that are actually installed.
81
+ Tier choice is a conscious decision, not a ritual; when unsure, use the
82
+ default.
63
83
  - Every unsuffixed default subagent carries its own pinned default effort
64
84
  baked into its own file, not inherited from the orchestrator session:
65
85
  medium for the explorer, the task-slicer, and the implementer; high for
@@ -141,7 +141,16 @@ directory and the subagents.
141
141
  installed `implementer-<tier>` subagents, if any) by the task's
142
142
  complexity and risk, at your own judgment, defaulting to the unsuffixed
143
143
  subagent when unsure; record a non-default tier choice with a
144
- one-line reason in `03-decisions.md` when the task is non-trivial. When a
144
+ one-line reason in `03-decisions.md` when the task is non-trivial.
145
+ `implementer-low` is spawned only when none of the following hold: an
146
+ acceptance criterion demands a test, typecheck, lint, or build run; the
147
+ task assignment names mutation probes to run; or the task slicer's
148
+ `suggested_tests` came back non-empty. Any one of those three excludes
149
+ `implementer-low`, even for a change that looks mechanical (a bugfix
150
+ included) (2026-08-24 A/B measurement, n=8: implementer-low reached accept
151
+ a median 320 seconds slower, p=0.016, with 9 high-plus-critical review
152
+ findings against 1 and 8 fix rounds against 1). When it is unclear
153
+ whether a criterion demands a run, exclude `implementer-low`. When a
145
154
  task's acceptance rests on a test that must fail without the change, name
146
155
  the mutation probes to run in the task assignment; the implementer reports
147
156
  each one in the output contract's `mutation_probes` field (apply the mutant
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchestrator-workflow",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "Installer for an orchestrator-led agent workflow: .ai/ run state, an AGENTS.md policy section, and per-harness subagent definitions for Claude Code, OpenAI Codex, and opencode",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",