Skip to content

v3.18.4

Choose a tag to compare

@mrbro-bot mrbro-bot released this 15 Sep 04:58
· 144 commits to main since this release
b86dbdd

What's new

The ce:review synthesis pipeline is now executable code instead of prose instructions the model had to follow by hand. That is the substantive change in this release; the rest is dependency repinning.

Bug Fixes

ce:review previously asked the model to perform deterministic synthesis manually — confidence gating, candidate grouping, provenance, route narrowing, action queues, counts, sorting, and risk coverage were all prose instructions. That produced non-conforming artifacts on the first try, drifted between harnesses, and left "the same evidence yields the same report" as an aspiration rather than a property. #984 moves synthesis into code, closing #795.

Four pure phases now live in src/lib/review-pipeline.ts behind a strict Zod contract (src/lib/review-pipeline-contract.ts) and ship in the bundled helper skills/ce-review/scripts/validate-review.mjs, which every harness already resolves through SKILL_DIR:

  • screen admits one raw reviewer return, binds it to the dispatched persona, and extracts rejected severities as bounded enum values. Admission depends only on the payload, the expected reviewer, and the harness — the shell environment cannot change it.
  • prepare applies the confidence gate, groups admitted findings into candidate pairs by normalized file, and unions selection surfaces.
  • merge validates the model's adjudication as a strict partition over the prepared candidates, then derives each merged finding's severity, agreement-boosted confidence, fingerprint, submitters, and conservatively narrowed route, returning the exact set of findings that need a validator.
  • finalize re-verifies every cross-phase join, re-runs the merge derivation over carried survivors as a verifier, reconciles validator outcomes, derives dispositions, counts, action queues, and replacement risk coverage, routes plan-assessment results, and emits either the schema-parsed review-summary.json artifact or a report-only projection. Both modes pass the same integrity gates.

The model keeps what only it can do: adjudicating candidate groups, judging validator evidence, assessing the plan, and rendering the report. Stages 4–6 of skills/ce-review/SKILL.md now call the phases at their decision boundaries, with invocation blocks and envelope shapes documented in the new references/pipeline-invocation.md, explicit never-bypass rules for helper failure, and an atomic temp-file write for the artifact.

Carried envelopes are treated as trust inputs, not proof. finalize rejects a tampered severity, confidence, file, or route; a duplicated or missing dispatch record; a survivor cited twice; a citation of an unavailable reviewer; a forged validation state; or a screen result that disagrees with its dispatch record. Diagnostics name the failing phase and, on a pipeline rejection, the fixed reason and safe path — never payload content.

Existing artifact consumers are unaffected: review-summary-schema.json and findings-schema.json are byte-identical at schema version 1, and only review-pipeline-schema.json — covering the model-authored envelopes — is new. Verification covered 3,038 unit tests including roughly 330 new ones across the contract and each phase, a packaging test that runs all four phases under real Node from the npm, OCX, and Claude Code layouts, and an integration test that drives a complete Stage 4–6 run plus an equivalent report-only run through a real OpenCode host.

Also in this release

  • deps: fro-bot/agent updated to v0.112.1 (#985).
  • deps: bfra-me/.github action updated to v4.29.0 (#983).

Compare

v3.18.3...v3.18.4