orchestrator-workflow 0.30.0 → 0.31.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
@@ -7,6 +7,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.31.0] - 2026-09-07
11
+
12
+ ### Changed
13
+
14
+ - Tests only, no asset wording change. The reviewer prompt's output-contract
15
+ yaml-block negative pin now slices from the output-contract heading (and
16
+ requires exactly one yaml fence after it) instead of matching the first
17
+ yaml fence in the file, so an unrelated fence earlier in the prompt cannot
18
+ be mistaken for the output contract. The CHANGELOG's own prose copy of the
19
+ fix-round mutation-probe replay rule is now pinned, anchored on the
20
+ bullet's own opening text rather than the release heading above it, so
21
+ the pin survives the bullet moving under a version heading. A new guard
22
+ asserts every reviewer checklist item mirrored in SKILL.md (Placement,
23
+ the GitHub Actions run-step replay, identifier drift) still carries its
24
+ SKILL.md counterpart sentence, from one table of paired phrases, so
25
+ either half going missing fails the same test.
26
+
27
+ - The implementer prompt now requires running every long test, build, or
28
+ mutation-probe command in the foreground and waiting for it to finish
29
+ before returning, never backgrounding it and ending the turn: a batch
30
+ review found a probe run left running in the background whose result
31
+ was only recovered by resuming the subagent later, which is not
32
+ evidence the orchestrator can trust unattended. The reviewer and
33
+ implementer prompts now both caution against a spawned-CLI test
34
+ calibrated to a byte-count ceiling that sits inside the tool's own
35
+ run-to-run noise (timing digits, temp-directory names): a batch review
36
+ found exactly such a test pass locally and fail on the next run one
37
+ byte off, with no code change, and the fix is to pin the argument
38
+ under test in-process or assert the actual contract (a bound, or the
39
+ presence of a warning), never a byte ceiling. SKILL.md's Delegate
40
+ review step now prohibits running mutation probes in place against a
41
+ worktree a reviewer subagent is concurrently reviewing, after a batch
42
+ review found a reviewer verifying findings against a tree that was
43
+ mutating under it from a concurrent probe; the fix is worktree
44
+ isolation or waiting until the reviewer has returned. Consumers refresh
45
+ their installs at the next release to pick up all three prompt changes.
46
+ Motivated by agent-tasks task 0e17fb63; see `docs/okf/log.md` for the
47
+ incident detail behind each of the three rules.
48
+
10
49
  ## [0.30.0] - 2026-09-06
11
50
 
12
51
  ### Added
@@ -53,6 +53,17 @@ Rules:
53
53
  criteria name and report its summary under `tests.executed`; when a
54
54
  mutation-probe runner is available, run the named probes through it and
55
55
  copy its fields into `mutation_probes`.
56
+ - Run every long test, build, or mutation-probe command in the foreground
57
+ and wait for it to finish before returning. When one foreground call
58
+ cannot hold it to completion, poll the backgrounded run to completion
59
+ and report its result before ending your turn; never end your turn with
60
+ the run still outstanding, since a run that outlives your turn is not
61
+ evidence you can report.
62
+ - A test that spawns a CLI and asserts its output against a byte-count
63
+ ceiling calibrated to sit inside the output's own run-to-run noise
64
+ (timing digits, temporary-directory names) is not a regression test; pin
65
+ the argument under test in-process, or assert the actual contract (a
66
+ bound, or the presence of a warning), never a byte ceiling.
56
67
  - For any diff that adds or changes a GitHub Actions `run:` step, replay it
57
68
  locally under the shell the step actually runs: `bash --noprofile --norc
58
69
  -eo pipefail` when `shell: bash` is set on the step or via
@@ -38,7 +38,12 @@ Check, at minimum:
38
38
  - Edge cases: empty inputs, error paths, concurrency, encoding, limits.
39
39
  - Security: injection, path traversal, secrets, permissions, unsafe defaults.
40
40
  - Test adequacy: are the new or changed behaviors covered, and would the new
41
- tests actually fail if the change were reverted? Flag inert tests.
41
+ tests actually fail if the change were reverted? Flag inert tests. A test
42
+ that spawns a CLI and asserts its output against a byte-count ceiling
43
+ calibrated to sit inside the output's own run-to-run noise (timing digits,
44
+ temporary-directory names) is not a regression test; the fix is to pin
45
+ the argument under test in-process, or assert the actual contract (a
46
+ bound, or the presence of a warning), never a byte ceiling.
42
47
  - Maintainability: naming, dead code, needless abstraction, doc drift.
43
48
  - Placement: does the change add org-, machine-, or point-in-time-bound
44
49
  evidence (dates, sample sizes, task ids, home paths, incident tallies) to a
@@ -273,8 +273,8 @@ directory and the subagents.
273
273
  implementer's log — and record the method, sample size, and result against
274
274
  the implementer's claim in the reviewer output contract's `reproduction`
275
275
  field. This does not apply to deterministic checks (a single test run,
276
- `tsc`, lint): only claims that could vary run to run trigger it. The
277
- GitHub Actions shell replay named in step 6 is a second, explicitly
276
+ `tsc`, lint): only claims that could vary run to run trigger it. The GitHub
277
+ Actions shell replay named in step 6 is a second, explicitly
278
278
  non-probabilistic trigger for the same field, with `sample_size:
279
279
  not_applicable` allowed when the replay itself has no meaningful sample
280
280
  size. A change that deletes or renames an exported identifier, type, config
@@ -282,18 +282,21 @@ directory and the subagents.
282
282
  describing the old name as current), by the reviewer or by the orchestrator
283
283
  itself when it reviews a trivial rename per Scaling delegation, using a
284
284
  connected drift check when one exists. When this is not the task's first
285
- review round, name the round
286
- number in the briefing; the reviewer marks each finding's `recurrence` as
287
- `new` or `repeated` against the earlier rounds it was told about, which is
288
- what lets the orchestrator detect the Review-round escalation budget's
289
- trigger (see below) without re-deriving it by hand. When the implementer's
290
- report replays a prior round's mutation probe, the orchestrator's reviewer
291
- briefing names the replayed probes the implementer reports as killed
292
- together with their `mutant` and `verified_applied_via` values; the reviewer
293
- may then skip re-running those. The reviewer output contract itself is
294
- unchanged. For an explicitly adopted v1 run, ask the reviewer to compare the frozen delegated criteria with
295
- the referenced evidence and judge semantic adequacy, including whether a
296
- manual check is actually concrete and reasoned.
285
+ review round, name the round number in the briefing; the reviewer marks each
286
+ finding's `recurrence` as `new` or `repeated` against the earlier rounds it
287
+ was told about, which is what lets the orchestrator detect the Review-round
288
+ escalation budget's trigger (see below) without re-deriving it by hand. When
289
+ the implementer's report replays a prior round's mutation probe, the
290
+ orchestrator's reviewer briefing names the replayed probes the implementer
291
+ reports as killed together with their `mutant` and `verified_applied_via`
292
+ values; the reviewer may then skip re-running those. The reviewer output
293
+ contract itself is unchanged. Never run mutation probes in place against a
294
+ worktree a reviewer subagent is concurrently reviewing; isolate the probe in
295
+ a separate worktree or wait until the reviewer has returned before probing
296
+ that tree again. For an explicitly adopted v1 run, ask the reviewer to
297
+ compare the frozen delegated criteria with the referenced evidence and judge
298
+ semantic adequacy, including whether a manual check is actually concrete and
299
+ reasoned.
297
300
  8. **Decide acceptance.** Accept, request fixes, defer, or escalate to the
298
301
  operator. High or critical findings block acceptance until fixed or
299
302
  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.30.0",
3
+ "version": "0.31.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",