orchestrator-workflow 0.19.0 → 0.20.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,30 @@ 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.20.0] - 2026-08-20
9
+
10
+ ### Added
11
+
12
+ - Tier-selection policy for the orchestrator, following up on 0.19.0's
13
+ `--tiers` rendering mechanics with the guidance that was missing: when tier
14
+ variants are installed (manifest `tiers: true`), the orchestrator picks
15
+ the effort tier per task by complexity and risk, at its own judgment. The
16
+ guidance is discretionary by design, not a rigid assignment table: the
17
+ unsuffixed default subagent is the normal case, a `-low` variant fits
18
+ mechanical, narrowly scoped tasks, `-high`/`-xhigh` fit high-risk changes,
19
+ hard problems, or repeated failed attempts, and tier choice is a conscious
20
+ decision rather than a ritual, defaulting to the unsuffixed subagent when
21
+ unsure. Ships in the generated `AGENTS.md` section's Scaling delegation
22
+ bullet list and in both of `SKILL.md`'s "Delegate implementation" and
23
+ "Delegate review" steps, each also instructing the orchestrator to record a
24
+ non-default tier choice with a one-line reason in `03-decisions.md` when
25
+ the task is non-trivial. `test/docs-consistency.test.ts` gains a new
26
+ `describe` block pinning the policy prose in `agents-md-section.md`, the
27
+ absence of a rigid tier-assignment table there, an anti-drift check that
28
+ the tier suffixes the prose names (`-low`, `-high`, `-xhigh`) actually
29
+ exist in `models.ts`'s `ROLE_TIERS.implementer`, and the rule's presence in
30
+ both `SKILL.md` delegate steps.
31
+
8
32
  ## [0.19.0] - 2026-08-19
9
33
 
10
34
  ### Added
@@ -49,6 +49,16 @@ default, not a ritual.
49
49
  orchestrator may review it itself; reserve the reviewer subagent for
50
50
  changes whose risk or size warrants an independent skeptical pass. Either
51
51
  way, review is never skipped.
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 and the
58
+ reviewer, and the reviewer's downshift is `-medium` rather than `-low`,
59
+ since its default already sits at high. Spawn only variants that are
60
+ actually installed. Tier choice is a conscious decision, not a ritual;
61
+ when unsure, use the default.
52
62
 
53
63
  ### Review gate
54
64
 
@@ -19,7 +19,11 @@ Scale the ceremony to the task. The workflow below is the default for
19
19
  non-trivial work; a trivial change (a typo, a one-line fix) may be done
20
20
  directly by the orchestrator and reviewed by it, without slicing or spawning
21
21
  subagents. Review judgment still applies to every change; only the size of
22
- the apparatus changes.
22
+ the apparatus changes. When tier variants are installed, this same
23
+ per-task discretion applies to every subagent spawn, including Discover
24
+ and Slice tasks, not just the Delegate implementation and Delegate review
25
+ steps below that name it explicitly; those two steps are instances of the
26
+ rule, not its full scope.
23
27
 
24
28
  ## Roles
25
29
 
@@ -122,39 +126,48 @@ directory and the subagents.
122
126
  enough, testable, ordered correctly, and aligned with the goal. Fix the
123
127
  slicing before any implementation starts.
124
128
  6. **Delegate implementation.** Send each implementer subagent one narrow task
125
- contract (format below). When a task's acceptance rests on a test that
126
- must fail without the change, name the mutation probes to run in the
127
- task assignment; the implementer reports each one in the output
128
- contract's `mutation_probes` field (apply the mutant for real, observe
129
- the named test fail, restore, re-verify). Hold the implementer's report
130
- to the claim-only-what-was-measured rule too: treat any verification
131
- claim there that is not backed by a check it actually ran as unverified.
132
- Record meaningful decisions in `03-decisions.md` and consolidate
129
+ contract (format below). When tier variants are installed, pick the
130
+ implementer tier (the installed `implementer-<tier>` subagents, if any) by
131
+ the task's complexity and risk, at your own judgment, defaulting to the
132
+ unsuffixed subagent when unsure; record a non-default tier choice with a
133
+ one-line reason in `03-decisions.md` when the task is non-trivial. When a
134
+ task's acceptance rests on a test that must fail without the change, name
135
+ the mutation probes to run in the task assignment; the implementer reports
136
+ each one in the output contract's `mutation_probes` field (apply the mutant
137
+ for real, observe the named test fail, restore, re-verify). Hold the
138
+ implementer's report to the claim-only-what-was-measured rule too: treat any
139
+ verification claim there that is not backed by a check it actually ran as
140
+ unverified. Record meaningful decisions in `03-decisions.md` and consolidate
133
141
  evidence in `04-implementation-summary.md`.
134
142
  7. **Delegate review.** Send the diff to the reviewer subagent, naming in the
135
- briefing the base and head revision the diff was generated from. When the
136
- reviewer's environment cannot use version control to see the diff (for
137
- example a policy-gated repository), supply the diff as a pre-generated file
138
- in the briefing instead of expecting the reviewer to derive it, and have the
139
- reviewer report explicitly if it could only reconstruct the delta some other
140
- way, rather than silently reviewing less than the full change. The reviewer
141
- checks spec compliance, architecture consistency, edge cases, security, test
142
- adequacy (including whether new tests would fail if the change were
143
- reverted), and maintainability. Findings go to `05-review-findings.md`;
144
- transfer each finding from the reviewer output contract into the table's
145
- columns as-is, keeping the Severity and Decision headers unchanged, since
146
- those two are what the orchestrator-workflow completeness reader verifies.
147
- Replace the shipped placeholder/legend row with the transferred findings;
148
- for a genuine zero-findings review, delete that row instead of leaving it in
149
- place, since the completeness reader treats an untouched placeholder row
150
- with no finding rows as the template never having been filled in. When
151
- acceptance rests on empirical or probabilistic evidence (flake rates,
152
- benchmarks, "n runs green", performance/timing numbers), the reviewer must
153
- independently reproduce it its own runs or measurements, not a re-read of
154
- the implementer's log and record the method, sample size, and result
155
- against the implementer's claim in the reviewer output contract's
156
- `reproduction` field. This does not apply to deterministic checks (a single
157
- test run, `tsc`, lint): only claims that could vary run to run trigger it.
143
+ briefing the base and head revision the diff was generated from. When tier
144
+ variants are installed, pick the reviewer tier (the installed
145
+ `reviewer-<tier>` subagents, if any) by the task's complexity and risk, at
146
+ your own judgment, defaulting to the unsuffixed subagent when unsure; record
147
+ a non-default tier choice with a one-line reason in `03-decisions.md` when
148
+ the task is non-trivial. When the reviewer's environment cannot use version
149
+ control to see the diff (for example a policy-gated repository), supply the
150
+ diff as a pre-generated file in the briefing instead of expecting the
151
+ reviewer to derive it, and have the reviewer report explicitly if it could
152
+ only reconstruct the delta some other way, rather than silently reviewing
153
+ less than the full change. The reviewer checks spec compliance, architecture
154
+ consistency, edge cases, security, test adequacy (including whether new
155
+ tests would fail if the change were reverted), and maintainability. Findings
156
+ go to `05-review-findings.md`; transfer each finding from the reviewer
157
+ output contract into the table's columns as-is, keeping the Severity and
158
+ Decision headers unchanged, since those two are what the
159
+ orchestrator-workflow completeness reader verifies. Replace the shipped
160
+ placeholder/legend row with the transferred findings; for a genuine
161
+ zero-findings review, delete that row instead of leaving it in place, since
162
+ the completeness reader treats an untouched placeholder row with no finding
163
+ rows as the template never having been filled in. When acceptance rests on
164
+ empirical or probabilistic evidence (flake rates, benchmarks, "n runs
165
+ green", performance/timing numbers), the reviewer must independently
166
+ reproduce it — its own runs or measurements, not a re-read of the
167
+ implementer's log — and record the method, sample size, and result against
168
+ the implementer's claim in the reviewer output contract's `reproduction`
169
+ field. This does not apply to deterministic checks (a single test run,
170
+ `tsc`, lint): only claims that could vary run to run trigger it.
158
171
  8. **Decide acceptance.** Accept, request fixes, defer, or escalate to the
159
172
  operator. High or critical findings block acceptance until fixed or
160
173
  explicitly waived: critical findings require operator sign-off; high
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchestrator-workflow",
3
- "version": "0.19.0",
3
+ "version": "0.20.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",