From 2c4f9414f560680f8451a2b84544452b863704a8 Mon Sep 17 00:00:00 2001 From: David Sifry Date: Thu, 1 Oct 2026 00:21:41 -0700 Subject: [PATCH 1/2] Release 0.14.1: judge isolation, evidence shapes, gate and Stop-hook fixes Bump the version in every manifest and write the 0.14.1 CHANGELOG entry from every PR merged since 0.14.0 (#214 claude judge isolation, #215 freeform evidence shapes, #216 pr-ready blocking-finding gate, #217 Stop-hook loop guard). --- .claude-plugin/marketplace.json | 2 +- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 2 +- CHANGELOG.md | 42 +++++++++++++++++++++++++++++++++ internal/version/version.go | 2 +- package.json | 2 +- 6 files changed, 47 insertions(+), 5 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 085fa35f..d09185a9 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -8,7 +8,7 @@ { "name": "metareview", "description": "Internal review harness, adversarial gates, and post-merge learning for coding agents", - "version": "0.14.0", + "version": "0.14.1", "source": "./", "author": { "name": "David Sifry" diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 248e9e6e..c287ffe5 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "metareview", - "version": "0.14.0", + "version": "0.14.1", "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning. Packaged releases use bin/metareview; source checkout mode requires Go 1.26+, plus FSM workflow runs (metareview fsm).", "author": { "name": "David Sifry" diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index ca39762d..b0590c4a 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "metareview", - "version": "0.14.0", + "version": "0.14.1", "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning, plus FSM workflow runs (metareview fsm).", "author": { "name": "David Sifry" diff --git a/CHANGELOG.md b/CHANGELOG.md index a9c2b392..ac0e3463 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,47 @@ # Changelog +## 0.14.1 - 2026-10-01 + +### Fixed + +- **The `claude-cli/*` judge runs without the user's hooks, and rejects a turn continued past its + verdict.** The codex arm already ran with the user's hooks and plugins off (#193), but the claude + arm still loaded the user's settings, so a Stop hook could speak in the judge's session and the + recorded verdict could answer the hook instead of the finding. It now passes + `--settings '{"disableAllHooks":true}'` (`--bare` would skip the keychain and with it the OAuth + session this transport exists to use), and a turn that continues past the verdict is retried and + then failed closed — the `--output-format json` envelope exposes only the final result, so the + reported turn count (`num_turns`) is the continuation signature. Reported in #193 (bead `mr-bq4`). +- **Freeform evidence recognizes the tool-failure shapes it was missing.** A text with a success + phrase and any failure shape the reader did not enumerate read as *passing* — pytest `no tests ran` + (exit 5), `make: *** No rule to make target`, Go `panic:` / `WARNING: DATA RACE`, a shell's + `command not found` / `Permission denied` / `Aborted` / `Killed`, `N offenses detected`, and more. + The reader now matches a second, **line-anchored** set of shapes: each must start the line in a + fixed tool format, with a fixed token before the phrase where the phrase could otherwise appear in + prose, so prose that merely names a phrase never reads as a failure. A shape that cannot be pinned + that tightly is deliberately not a pattern — prefer an evidence receipt. Tracked as bead `mr-b08`. +- **`pr-ready` clears a committed review log only when the ledger vouches for every ID under its + `## Blocking Findings` section.** The gate used a lenient reading that skipped finding IDs the + ledger did not know, so resolving the IDs a local ledger happened to hold retired a log that also + listed a blocker nobody's ledger ever held — while `status` still reported it blocking. The gate + now uses a strict, blocker-only predicate (an unknown blocking ID is unvouched; the run's + `BlockingFindingCount` is the tripwire against a pruned or unknown blocker), and is deliberately + **not** strict about the advisory or quoted IDs that would otherwise pin a log unresolved forever. + Tracked as bead `mr-ik7`. +- **The Stop hook breaks its own refusal loop instead of trusting the host's `stop_hook_active`.** + Codex reports that flag `false` during hook-driven continuations, so a session blocked on + something it could not clear was refused on every turn — a hang, which teaches operators to remove + the hook. The hook now counts consecutive refusals per session — a small limit on the *same* + blocker set, and a larger session-wide cap for a set that keeps changing — and stands down loudly + at either, exactly as the host-driven second pass does, clearing the record on a pass or a + stand-down. Its state lives in a private, ownership-checked cache directory and is best-effort: it + fails toward blocking, never toward a silent pass. Tracked as bead `mr-j30`. + +### Changed + +- `.pi/` (pi subagent scratch) is gitignored, and the `.claude/settings.json` review-gate note names + the post-#173 user-level hook directory rather than the old per-checkout path. + ## 0.14.0 - 2026-09-30 ### Added diff --git a/internal/version/version.go b/internal/version/version.go index 14be476b..6fd49647 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -1,3 +1,3 @@ package version -const Version = "0.14.0" +const Version = "0.14.1" diff --git a/package.json b/package.json index 1d701d63..0f79461e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metareview", - "version": "0.14.0", + "version": "0.14.1", "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, code, acceptance evidence, PR readiness, and post-merge learning", "bin": { "metareview": "cli/metareview.js" From 6e406e791ddf1b3a3eb235edd872ffd374f0e17e Mon Sep 17 00:00:00 2001 From: David Sifry Date: Thu, 1 Oct 2026 00:28:15 -0700 Subject: [PATCH 2/2] Release 0.14.1: pr-ready review logs, FSM bundle and the two stale-finding overrides --- docs/metareview/FINDINGS.md | 2 + ...094000-pr-ready-branch-10d735e5-context.md | 2369 +++++++++++++++++ ...001000-pr-ready-branch-10d735e5-context.md | 398 +++ ...163000-pr-ready-branch-10d735e5-context.md | 399 +++ ...160000-pr-ready-branch-10d735e5-context.md | 396 +++ .../audit.redacted.jsonl | 15 + .../manifest.json | 1 + .../snapshot.json | 1 + .../workflow.yaml | 17 + ...72124444094000-pr-ready-branch-10d735e5.md | 165 ++ ...72247855001000-pr-ready-branch-10d735e5.md | 179 ++ ...72259526163000-pr-ready-branch-10d735e5.md | 180 ++ ...72801661160000-pr-ready-branch-10d735e5.md | 146 + 13 files changed, 4268 insertions(+) create mode 100644 docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md create mode 100644 docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md create mode 100644 docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md create mode 100644 docs/metareview/context/mrv-20261001-072801661160000-pr-ready-branch-10d735e5-context.md create mode 100644 docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/audit.redacted.jsonl create mode 100644 docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/manifest.json create mode 100644 docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/snapshot.json create mode 100644 docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/workflow.yaml create mode 100644 docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md create mode 100644 docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md create mode 100644 docs/metareview/reviews/mrv-20261001-072259526163000-pr-ready-branch-10d735e5.md create mode 100644 docs/metareview/reviews/mrv-20261001-072801661160000-pr-ready-branch-10d735e5.md diff --git a/docs/metareview/FINDINGS.md b/docs/metareview/FINDINGS.md index 2887770d..252b3388 100644 --- a/docs/metareview/FINDINGS.md +++ b/docs/metareview/FINDINGS.md @@ -10,6 +10,8 @@ Deliberate exceptions to the review workflow. Pending entries still block CI. - mrvf-20260927-194136825434000-pr-ready-branch-10d735e5-001 [granted] TODO left in task-done diff — granted by David (human) at 2026-09-27T20:03:27Z: Fixed in 27a50c5; finding orphaned by the agent deleting its run log (requested by david@sifry.com at 2026-09-27T19:43:47Z: Fixed in 27a50c5 (the test fixture builds its work marker at runtime; the branch diff has no literal TODO/FIXME), but the finding cannot be marked fixed: the agent deleted the originating run's uncommitted NEEDS_REVISION log, so no --previous-run chain can include run 194136 ('previous run not found'), and the repair attempts then exhausted the 3-attempt budget (ESCALATED).) [escalation: Agent error: removed the failed pr-ready run's log before chaining the repair from it. Code is clean; the open record is stale.] - mrvf-20260928-163641692001000-pr-ready-branch-10d735e5-001 [granted] No adjudicated lens review recorded — granted by david@sifry.com at 2026-09-28T17:07:45Z: Reviewed: HEAD differs from the lens-reviewed 25eb567 only by docs/metareview gate artifacts; all shards PASS_ADVISORY, 0 blocking (requested by claude-agent at 2026-09-28T17:07:31Z: The lens marker is recorded at 25eb567 (review-loop mrv-20260928-162806195273000, closed clean). HEAD f506454 adds only docs/metareview gate artifacts (pr-ready logs, shard results, one FINDINGS.md line) and no code, test or doc change. The chain hit 3/3 on procedural failures (dirty tree, then the artifacts commit moving HEAD), not on review findings. All shards and the cross-shard review are PASS_ADVISORY with 0 blocking.) [escalation: pr-ready ESCALATED at attempt 3/3 (mrv-20260928-163641692001000); the human approved an override in the session] +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001 [granted] Working tree changes excluded from PR-ready review — granted by david at 2026-10-01T07:27:56Z: Stale finding from the superseded pr-ready run 072124 (its diff included two unrelated untracked docs, since removed). Approved by the user. (requested by pi-agent at 2026-10-01T07:23:33Z: Stale finding from the superseded pr-ready run mrv-20261001-072124444094000: its diff (head 5474635) included two unrelated untracked docs that have since been removed, so the working tree is clean and the filtered diff is small on the release commit 2c4f941.) +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002 [granted] Review context risk — granted by david at 2026-10-01T07:27:56Z: Stale large-diff context risk from the same superseded run; the release diff is six files. Approved by the user. (requested by pi-agent at 2026-10-01T07:23:33Z: Stale finding from the superseded pr-ready run mrv-20261001-072124444094000: its diff (head 5474635) included two unrelated untracked docs that have since been removed, so the working tree is clean and the filtered diff is small on the release commit 2c4f941.) - mrvf-20260926-213100487219000-pr-ready-branch-10d735e5-001 [superseded] Unresolved review blockers — requested by david@sifry.com at 2026-09-26T22:05:40Z: Accidental duplicate pr-ready attempt: run mrv-20260926-213100487219000 was started without --previous-run only to capture an exit code, at the same head 4bd354c as chain root 213055. Its only substantive finding (missing validation evidence) is resolved in the chain (213242: validation PASS via evidence-run receipts). It now blocks the real chain as an out-of-chain NEEDS_REVISION run; nothing in the change is unresolved. [escalation: pr-ready chain 213055->213126->213242 ESCALATED at max attempts 3; all reviewers PASS at 4bd354c except this out-of-chain carry. Gate issues filed separately.] - mrvf-20260924-054904626720000-pr-ready-branch-10d735e5-001 [granted] Unresolved review blockers — granted by David Sifry (human decision in chat; executed by Claude agent) at 2026-09-24T05:58:50Z: Granted by the maintainer in chat: the blocker is main's accidental 'review task-done --help' log (PR #145), not a review of this branch's work (requested by david@sifry.com at 2026-09-24T05:57:01Z: The only blocked target is '--help': main's committed task-done log mrv-20260905-223221349809000-task-done-help-9a8265a5 (PR #145) recorded an accidental 'review task-done --help' run as a NEEDS_REVISION review of target '--help'. It is picked up only because it covers internal/prready/evidence.go, which this branch touches. It is not a review of this branch's work.) [escalation: pr-ready run mrv-20260924-055641702289000: 47/47 shards + cross-shard PASS/PASS_ADVISORY, validation evidence supplied, sdlc-loop-clean DONE clean; the '--help' log is main's artifact] - mrvf-20260910-055227088708000-pr-ready-branch-10d735e5-001 [granted] Missing validation evidence — granted by dsifry (repo owner, approved in session 2026-09-10) at 2026-09-10T07:49:08Z: Owner-approved in session 2026-09-10: validation evidence attached and passing at 0af0d4c (full suite, ALL_SUITES_PASS_FINAL) (requested by release-0.12 driver at 2026-09-10T07:13:17Z: Validation evidence supplied and passing: full suite (go build/vet/test 58 pkgs, make cover 100%, test-fsm, manifests, skills, lens-conformance) green at 0af0d4c — log attached to pr-ready run mrv-20260910-071305617720000 via --evidence) diff --git a/docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md b/docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md new file mode 100644 index 00000000..41e0058e --- /dev/null +++ b/docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md @@ -0,0 +1,2369 @@ +# metareview pr-ready context + +Run ID: `mrv-20261001-072124444094000-pr-ready-branch-10d735e5` + +## Git + +- Base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Requested base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Head: `547463515d662a33bef23fc1568ee8250eb20c9c` +- Branch: `release/0.14.1` +- Reviewer input digest: `sha256:6c4d065afce321da74816ee8b8ec0c13fba163367f476f076b5514f6b505e734` +- Gate effect: `gate` + +## Context Profile + +- Raw diff bytes: `579554` +- Filtered diff bytes: `128292` +- Risk level: `context-risk` +- Risk reasons: `DIFF_TRUNCATED`, `LARGE_DIFF` +- Generated files excluded: docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md, docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md + +## Context Shard Plan + +- Source diff hash: `78f84a024b1228d2` +- Plan hash: `527b6f1100c09c51` +- shard-0 (`068502258abe64a0`, 1087 bytes): .claude-plugin/marketplace.json, .claude-plugin/plugin.json — pack `.metareview/shards/pr-ready/release-0-14-f78308fc/527b6f1100c09c51/shard-0.md` +- shard-0-2 (`85c512bbb7e4f266`, 59992 bytes): docs/presentations/metareview-first-day.html — pack `.metareview/shards/pr-ready/release-0-14-f78308fc/527b6f1100c09c51/shard-0-2.md` +- shard-0-3 (`91e101011933dc39`, 16884 bytes): docs/presentations/metareview-first-day.html, internal/version/version.go — pack `.metareview/shards/pr-ready/release-0-14-f78308fc/527b6f1100c09c51/shard-0-3.md` +- shard-1 (`88c99b04e2e44918`, 426 bytes): package.json — pack `.metareview/shards/pr-ready/release-0-14-f78308fc/527b6f1100c09c51/shard-1.md` +- shard-3 (`27d1dc43eec85228`, 49903 bytes): .codex-plugin/plugin.json, CHANGELOG.md, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md — pack `.metareview/shards/pr-ready/release-0-14-f78308fc/527b6f1100c09c51/shard-3.md` + +## Review Manifest + +- Manifest verdict: `NEEDS_REVISION` +- Source manifest hash: `527b6f1100c09c51` +- Runtime assessment: static-only; runtime not assessed + +### Source Paths + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- docs/presentations/metareview-first-day.html +- docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +- internal/version/version.go +- package.json + +### Path Dispositions + +- docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) + +### Shards + +- shard-0: .claude-plugin/marketplace.json, .claude-plugin/plugin.json +- shard-0-2: docs/presentations/metareview-first-day.html +- shard-0-3: docs/presentations/metareview-first-day.html, internal/version/version.go +- shard-1: package.json +- shard-3: .codex-plugin/plugin.json, CHANGELOG.md, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md + +### Manifest Blockers + +- missing cross-shard result +- missing shard result for shard-0 +- missing shard result for shard-0-2 +- missing shard result for shard-0-3 +- missing shard result for shard-1 +- missing shard result for shard-3 + +## Changed Files + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- docs/presentations/metareview-first-day.html +- docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +- internal/version/version.go +- package.json + +## Diff + +````diff +diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json +index 085fa35..d09185a 100644 +--- a/.claude-plugin/marketplace.json ++++ b/.claude-plugin/marketplace.json +@@ -8,7 +8,7 @@ + { + "name": "metareview", + "description": "Internal review harness, adversarial gates, and post-merge learning for coding agents", +- "version": "0.14.0", ++ "version": "0.14.1", + "source": "./", + "author": { + "name": "David Sifry" +diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json +index 248e9e6..c287ffe 100644 +--- a/.claude-plugin/plugin.json ++++ b/.claude-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning. Packaged releases use bin/metareview; source checkout mode requires Go 1.26+, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json +index ca39762..b0590c4 100644 +--- a/.codex-plugin/plugin.json ++++ b/.codex-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/CHANGELOG.md b/CHANGELOG.md +index a9c2b39..ac0e346 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -1,5 +1,47 @@ + # Changelog + ++## 0.14.1 - 2026-10-01 ++ ++### Fixed ++ ++- **The `claude-cli/*` judge runs without the user's hooks, and rejects a turn continued past its ++ verdict.** The codex arm already ran with the user's hooks and plugins off (#193), but the claude ++ arm still loaded the user's settings, so a Stop hook could speak in the judge's session and the ++ recorded verdict could answer the hook instead of the finding. It now passes ++ `--settings '{"disableAllHooks":true}'` (`--bare` would skip the keychain and with it the OAuth ++ session this transport exists to use), and a turn that continues past the verdict is retried and ++ then failed closed — the `--output-format json` envelope exposes only the final result, so the ++ reported turn count (`num_turns`) is the continuation signature. Reported in #193 (bead `mr-bq4`). ++- **Freeform evidence recognizes the tool-failure shapes it was missing.** A text with a success ++ phrase and any failure shape the reader did not enumerate read as *passing* — pytest `no tests ran` ++ (exit 5), `make: *** No rule to make target`, Go `panic:` / `WARNING: DATA RACE`, a shell's ++ `command not found` / `Permission denied` / `Aborted` / `Killed`, `N offenses detected`, and more. ++ The reader now matches a second, **line-anchored** set of shapes: each must start the line in a ++ fixed tool format, with a fixed token before the phrase where the phrase could otherwise appear in ++ prose, so prose that merely names a phrase never reads as a failure. A shape that cannot be pinned ++ that tightly is deliberately not a pattern — prefer an evidence receipt. Tracked as bead `mr-b08`. ++- **`pr-ready` clears a committed review log only when the ledger vouches for every ID under its ++ `## Blocking Findings` section.** The gate used a lenient reading that skipped finding IDs the ++ ledger did not know, so resolving the IDs a local ledger happened to hold retired a log that also ++ listed a blocker nobody's ledger ever held — while `status` still reported it blocking. The gate ++ now uses a strict, blocker-only predicate (an unknown blocking ID is unvouched; the run's ++ `BlockingFindingCount` is the tripwire against a pruned or unknown blocker), and is deliberately ++ **not** strict about the advisory or quoted IDs that would otherwise pin a log unresolved forever. ++ Tracked as bead `mr-ik7`. ++- **The Stop hook breaks its own refusal loop instead of trusting the host's `stop_hook_active`.** ++ Codex reports that flag `false` during hook-driven continuations, so a session blocked on ++ something it could not clear was refused on every turn — a hang, which teaches operators to remove ++ the hook. The hook now counts consecutive refusals per session — a small limit on the *same* ++ blocker set, and a larger session-wide cap for a set that keeps changing — and stands down loudly ++ at either, exactly as the host-driven second pass does, clearing the record on a pass or a ++ stand-down. Its state lives in a private, ownership-checked cache directory and is best-effort: it ++ fails toward blocking, never toward a silent pass. Tracked as bead `mr-j30`. ++ ++### Changed ++ ++- `.pi/` (pi subagent scratch) is gitignored, and the `.claude/settings.json` review-gate note names ++ the post-#173 user-level hook directory rather than the old per-checkout path. ++ + ## 0.14.0 - 2026-09-30 + + ### Added +diff --git a/docs/presentations/metareview-first-day.html b/docs/presentations/metareview-first-day.html +new file mode 100644 +index 0000000..62b1204 +--- /dev/null ++++ b/docs/presentations/metareview-first-day.html +@@ -0,0 +1,1103 @@ ++ ++ ++ ++ ++ ++metareview First Day ++ ++ ++ ++ ++ ++ ++ ++
++
metareview · 0.12.0
++ ++
++ ++
1 / 26
++ ++
++
++ ++
++ ++ ++
++
++
++
A first-day guide · for developers new to metareview
++

A reviewer that won't let “done” mean “probably done.”

++

What metareview is, why teams use it, how to install it, and where it fits in your day. You don't need to know anything about it yet.

++
version 0.12.0MIT licensedgithub.com/dsifry/metareview
++
++
++
~/shop — illustrative example
++
$ metareview review task-done docs/tasks/cart-total.md \
++    --base main --evidence ev.jsonl
++
++task-done review · cart-total
++  code-quality-reviewer   PASS
++  security-reviewer       PASS
++  test-reviewer           NEEDS_REVISION  1 blocking
++  adversarial-review      PASS
++
++Verdict: NEEDS_REVISION
++Log: docs/metareview/reviews/mrv-…-task-done-cart-total-….md
++
++
++

Use ← → keys (or the buttons) to move between slides

++
++ ++ ++
++
What you'll get from this
++

By the end, you'll be able to answer four questions.

++
++
Part 1

Why would I use this?

The problem it solves and what it does for you.

++
Part 2

How does it work?

Gates, lenses, judges, and the four verdicts.

++
Part 3

How do I set it up?

Install, check the repo, turn on the push gate.

++
Parts 4–6

How do I use it every day?

Where each review fits, step-by-step how-to recipes, and what to do when it says no.

++
++
You'll need: comfort with git branches and commits, running your project's tests, and ideally a coding agent (Claude Code or Codex). Everything else is explained here.
++
++ ++ ++
++
Part 1 · Why · the problem
++

Writing code got fast. Checking it didn't.

++
++
Speed

Agents write a lot of code, quickly.

A coding agent can produce in an hour what used to take a day. Someone still has to check all of it.

++
False confidence

“Tests pass” isn't “it's correct.”

An agent (or a tired human) says “done” when the happy path works. The edge case that breaks production isn't tested.

++
Vague review

“Please review this” gets a vague answer.

One prompt, no checklist, no record, and no clear rule for when you're actually allowed to move on.

++
++

metareview turns review into a checkpoint: a set of named reviews, each ending in a clear verdict that tells you what to do next.

++
++ ++
++
Part 1 · Why · what it is
++

metareview, in one sentence

++

A command-line tool, plus plugins for your coding agent, that runs structured, adversarial reviews at the moments where quality is decided, and blocks “done” until real problems are fixed.

++
++

It runs on your machine

A local CLI, not a hosted service. Your code isn't sent to a review SaaS. The AI calls go to a model you choose.

++

It writes its reviews into your repo

Every review is a Markdown file under docs/metareview/. You can read it, link to it, and commit it.

++

It works with your agent

Plugins for Claude Code and Codex (and skills for Pi) add slash commands. Or run the CLI directly.

++
++
++ ++
++
Part 1 · Why · what it does
++

Four jobs, one tool

++
++
Main job

Review before you move work forward

Named review “gates” for plans, small code changes, whole features, and branches. Each one gives a verdict.

++
Find & fix

Find bugs and fix them, with proof

A tracked loop (metareview fsm) that finds bugs, confirms them, fixes them, and re-checks. The strictest version requires a test that proves each fix.

++
Tests

Harden tests that only look complete

Feed in a mutation-testing report and each mutant that survived becomes a finding: a line your tests run but don't actually check.

++
Memory

Learn from what merged

After a PR merges, it pulls lessons into plain files in your repo, so future reviews know this codebase's habits and past mistakes.

++
++

This guide focuses on the first job. It's the one you'll use every day.

++
++ ++
++
Part 1 · Why · what's in it for you
++

Why it's worth the extra step

++
++

You find the bug before your teammate does

Problems show up on your machine, before the PR, not as a comment in front of the whole team.

++

You always know the next step

Every review ends in one of four verdicts, and each verdict tells you exactly what to do. No guessing whether it's “good enough.”

++

Your agent can't just say it's done

An AI agent will happily report success. The gate needs evidence (test results, a recorded review) before it says PASS.

++

Fewer rounds of PR comments

By the time automated PR reviewers and humans look, the obvious problems are already fixed.

++

A paper trail you can point to

“What was checked, what blocked, and why it passed” is written down in the repo, not lost in a chat window.

++

No lock-in

Plain Markdown and JSONL files, any AI model you like. If you stop using it, the history is still readable.

++
++
++ ++
++
Part 1 · Why · the evidence
++

Does a review harness actually find more bugs? It was measured.

++

A harness runs the model as a team of specialist reviewers working in passes, instead of one prompt over the diff. metareview is a harness. HarnessEval compared the two.

++
++
1.6×more verified bugs from the same model when it ran in a harness instead of a single prompt
++
39/42like-for-like comparisons where a harness (metareview or Compound Engineering) beat the one-shot prompt
++
72/147verified bugs found by open-weight GLM-5.3 running metareview at low effort: $0.22 and 95 s a review
++
1/13the cost of Opus 5 running metareview, for the same score (0.567)
++
++
++

The trade-off

A harness used about 10× the tokens of a single prompt and produced more unsupported findings to check. That's why metareview has a judge that confirms every finding, and a gate that rejects findings pointing at lines you never changed.

++

Read the fine print

Six highest-severity PRs from a 50-PR public benchmark, 147 bugs each proven by a failing test, one run per configuration. It was written by metareview's author, and the data and code are public. Treat it as evidence for a pilot, not proof about your repo.

++
++

Source: HarnessEval, “Vibes vs. Evidence” (September 2026). The full report has the confidence intervals and methods.

++
++ ++ ++
++
Part 2 · How it works · vocabulary
++

Nine words you'll see everywhere

++
++
gate
A named review at a specific point, like task-done or pr-ready. It returns a verdict.
++
verdict
The gate's answer: PASS, PASS_ADVISORY, NEEDS_REVISION or ESCALATED.
++
finding
One specific issue. Blocking findings stop the gate; advisory and follow-up ones inform you but don't.
++
lens
One reviewer's point of view: security, testing quality, architecture… Several lenses read the same change.
++
judge
A separate AI model that checks each finding and throws out the false alarms before anything blocks you.
++
base ref
The branch or commit you're comparing against, usually main. The review covers base..HEAD.
++
evidence receipt
A JSON record of a command you ran (like your tests): exit code, time, output hash. Proof, not a claim.
++
run ID
Every review gets one, like mrv-2026…-task-done-cart-…. You pass it back when you retry.
++
marker
A small record saying “an AI lens review of this exact diff happened, and here's its verdict.”
++
++
++ ++
++
Part 2 · How it works · the gates
++

Gates are sized by how much work they look at

++
++
++
pr-readyreview pr-ready --base main
++

The whole branch, before you push or open a PR.

++
++
epic-readyreview epic-ready <epic>
++

A bigger feature, once all its tasks are done: do the pieces work together and still match the original goal?

++
++
task-donereview task-done <task>
++

One small chunk of code. You'll run this one the most.

++
++
++
++
++
Before any code

artifact

Reviews a spec, plan, or design doc. review artifact docs/plan.md

++
After merge

learn --post-merge

Pulls lessons from a merged PR. learn --post-merge 42 --base <sha>

++

Rule of thumb: use the smallest gate that matches the decision you're making right now.

++
++
++
++ ++
++
Part 2 · How it works · verdicts
++

Every gate ends in one of four verdicts

++
++
PASSNothing is blocking.Move on.
++
PASS_ADVISORYNothing blocking, but there are notes worth reading.Move on only if the blocking count is zero. Read the advisories; they're often future bugs.
++
NEEDS_REVISIONAt least one blocking finding.Fix it, then re-run the same gate with --previous-run <run-id>.
++
ESCALATEDRetrying the same thing won't converge.Stop retrying. A human narrows, splits, or redesigns the work.
++
++

Exit codes: 0 = passing verdict with zero blockers · 1 + a log path = open that log · non-zero with no path = read the error output. An artifact review starts as NOT_REVIEWED, which blocks until reviewers fill it in.

++
++ ++
++
Part 2 · How it works · two halves
++

A code gate needs two kinds of check to PASS

++
++
++ Half 1 · no AI ++

The structural check

++

Fast and repeatable. It asks: is there a passing test receipt? Are earlier blockers resolved? Is the working tree clean? Is the mutation report clean? It can run in a git hook or in CI.

++
++
++ Half 2 · AI ++

The adversarial lens review

++

Several reviewer agents each read your diff through one lens and try to find problems. A judge model then confirms or rejects each finding. The result is saved as a marker for that exact diff.

++
++
++
Since 0.10, task-done, epic-ready and pr-ready won't PASS on the structural check alone. They need a recorded lens review of this exact base..HEAD. Commit something new, or change the base, and you need a fresh review.
++

Why the split? The structural half is cheap and can't be talked into anything. The AI half is where real bugs are found. Neither is enough alone.

++
++ ++
++
Part 2 · How it works · lenses
++

Ten lenses, each hunting for a different kind of problem

++
++
feasibilityCan this actually be built as described?
++
completenessMissing cases, steps, or requirements?
++
scopeDoes it stay on task, or wander?
++
architectureFits the codebase's boundaries and patterns?
++
intentStill solves the original request?
++
securityInjection, auth gaps, leaked secrets…
++
testing-qualityDo tests actually prove the behavior?
++
data-migrationSafe to change data and schemas?
++
runtime-reliabilityUnhandled async errors, retries, partial failure.
++
mechanical-precisionOff-by-one, wrong names, exact details.
++
++
++

Findings must point at real lines (new in 0.12)

Each finding names a file and line numbers in a fixed format. If it cites a file or line your diff never touched (±10 lines), it's rejected automatically. That catches invented findings.

++

Style nits are filtered out

Advisory findings have to state a real consequence and hold up against the best counter-argument. Formatting nitpicks never reach you.

++
++
++ ++
++
Part 2 · How it works · the fix loop
++

The find-and-fix loop: metareview fsm

++
++
discoverReview

Lens reviewers read the diff and propose findings.

++
adjudicateJudge

A judge model confirms real bugs and drops false alarms.

++
fixFix

Your agent fixes the confirmed bugs and commits.

++
recheckRe-review

A fresh review of the fix. Fixes often add bugs of their own.

++
doneClean

Stops when a fresh review finds nothing, or at its iteration limit.

++
++

recheck finds something → back to judge → fix → recheck

++
++

review-loop

Review + judge only. No fixing.

++

sdlc-loop

Review → judge → fix → verify.

++

sdlc-loop-clean

Adds the re-review. Use this on your own diff.

++

sdlc-loop-proved

Each fix must come with proof, such as a test that fails before the fix and passes after.

++
++

FSM stands for finite-state machine: the CLI decides which step comes next and records every step under .metareview/runs/<id>/. Your agent does the reviewing and fixing; the CLI runs the judge.

++
++ ++ ++
++
Part 3 · Set up · before you start
++

What you need installed

++
++
++ Required ++
    ++
  • A git repository to work in
  • ++
  • Node.js 18+: the npm package ships a ready-built binary
  • ++
  • git 2.31+ for the fix loop (metareview fsm)
  • ++
++
++
++ Recommended ++
    ++
  • A coding agent: Claude Code or Codex. It does the AI review work.
  • ++
  • GitHub CLI (gh) to pull in CI results and PR data
  • ++
  • Go 1.26+, but only if you build metareview from source
  • ++
++
++
++
You don't need an API key if you use Claude Code or Codex. metareview can use the login session you already have for its judge.
++
++ ++
++
Part 3 · Set up · install
++

Install in two steps

++
++
++

1 · The command-line tool

++
terminal
++
$ npm install -g metareview
++$ metareview --version
++0.12.0
++$ cd ~/code/your-repo
++$ metareview setup --check
++

setup --check only looks. It changes nothing.

++
++
++

2 · The plugin for your agent

++
Claude Code
++
$ claude plugin marketplace add dsifry/metareview
++$ claude plugin install metareview@metareview
++
Codex (restart Codex afterwards)
++
$ codex plugin marketplace add dsifry/metareview
++$ codex plugin add metareview@metareview
++
++
++

Then in Claude Code you get /setup /review-task-done /review-pr-ready /review-artifact /review-epic-ready /fsm /status /learn-post-merge. Codex uses the same names with $, e.g. $review-task-done.

++
++ ++
++
Part 3 · Set up · your repo's mode
++

setup --check tells you which of two modes you're in

++
++
Most repos

Standalone

metareview runs on its own. Everything in this guide works. It keeps its learned knowledge in .metareview/knowledge/.

++
If your team uses metaswarm

metaswarm-extension

metaswarm (a separate multi-agent workflow tool) stays in charge of tasks and PRs. metareview adds deeper reviews at its checkpoints and doesn't take anything over.

++
++

The check also reports missing prerequisites, such as git being too old for the fix loop. Fix whatever it lists before going further.

++
++ ++
++
Part 3 · Set up · the push gate
++

Turn on the push gate, so git enforces the review

++
++
once per clone
++
# preview what it will do (changes nothing)
++$ metareview setup --install-hooks --dry-run
++
++# install it (asks y/N first)
++$ metareview setup --install-hooks
++
++# change your mind later
++$ metareview setup --uninstall-hooks
++
++

blocks  git push

If the branch isn't review-clean, the push stops before anything leaves your machine.

++

never blocks  git commit

Saving work is always allowed. After each commit you get a reminder that a review is owed.

++
++
++
git push --no-verify skips the gate. It exists for real emergencies, not for dodging a review. Tell your team when you use it.
++

Git hooks are per clone, so every fresh clone needs this once. The install won't overwrite hooks you already have: if it finds existing ones, it stops and tells you.

++
++ ++
++
Part 3 · Set up · what goes in git
++

Commit the reviews. Keep the scratch files local.

++
++
++ Commit these ++
    ++
  • docs/metareview/reviews/: the review logs
  • ++
  • docs/metareview/context/: what each reviewer was shown
  • ++
  • docs/metareview/fsm/, shards/, learning/
  • ++
  • .metareview/knowledge/, calibration.jsonl
  • ++
++
++
++ Keep local ++
    ++
  • .metareview/findings.jsonl
  • ++
  • .metareview/runs.jsonl
  • ++
  • .metareview/runs/, shards/, git-hooks/ (these ignore themselves)
  • ++
++
++
++
.gitignore (the hook install adds this for you)
++
.metareview/findings.jsonl
++.metareview/runs.jsonl
++

Don't ignore all of docs/metareview/ or .metareview/. You'd hide the history and the learned knowledge.

++
++ ++
++
Part 3 · Set up · optional: pick a judge
++

Choose which AI model does the judging

++

The judge double-checks every finding. Choose it per run with --judge-model, or set METAREVIEW_JUDGE_MODEL once.

++
++ ++ ++ ++ ++ ++ ++ ++ ++
You writeIt usesYou need
claude-cli/opusYour Claude Code loginClaude Code installed and logged in. No API key.
codex/gpt-5.6-solYour Codex loginCodex CLI installed and logged in. No API key.
claude-opus-4-8The Anthropic APIANTHROPIC_API_KEY
glm-… · kimi-… · gpt-…Any OpenAI-compatible endpointOPENAI_BASE_URL + OPENAI_API_KEY
++
++
Start at --judge-effort low. In HarnessEval, low effort was the fastest setting in 14 of 14 cases, and high effort showed no measurable gain over medium in 17 of 22 comparisons while usually costing more. Raise it only if your own results justify it.
++

The judge used is recorded in each run's audit log. Using a different model family from the one that wrote the code is a good habit: it doesn't share the same blind spots. Never put a secret in --var; use the environment variables above.

++
++ ++ ++
++
Part 4 · Your workflow · one feature, start to finish
++

Where each review fits in your day

++
    ++
  1. Plan/review-artifact docs/plan.md

    Catch design problems while they're cheap to fix.

  2. ++
  3. Build one small chunk, commit

    Small chunks review faster and fail less.

  4. ++
  5. Review & fix your difffsm --workflow sdlc-loop-clean

    Find bugs, fix them, re-check the fix.

  6. ++
  7. Gate the chunk/review-task-done <task>

    Repeat steps 2–4 for each chunk.

  8. ++
  9. Feature complete?/review-epic-ready <epic>

    Only if the work is part of a larger epic.

  10. ++
  11. Branch ready?/review-pr-ready --base main

    The whole branch, one last time.

  12. ++
  13. Pushgit push

    The pre-push hook confirms the branch is review-clean.

  14. ++
  15. Open the PR

    Bots and teammates now see only what metareview missed.

  16. ++
  17. After merge/learn-post-merge <pr>

    Save the lessons for next time.

  18. ++
++

Every step here has a step-by-step recipe in Part 5.

++
Review before you open the PR, not after. Opening a PR starts the automated reviewers. If your diff is already clean, their comments show what metareview missed. That's how the team measures and improves it.
++
++ ++
++
Part 4 · Your workflow · the easy way
++

Day to day, you ask your agent

++
++
Claude Code
++
> /review-task-done docs/tasks/cart-total.md
++
++The agent then:
++ 1. runs your tests and saves a receipt
++ 2. drives the lens review (fsm)
++ 3. fixes confirmed bugs and re-checks
++ 4. records the review marker
++ 5. runs the task-done gate
++
++Verdict: PASS_ADVISORY · 0 blocking, 2 advisory
++Log: docs/metareview/reviews/mrv-…md
++
++

Your job: read the verdict, not just the last line

Open the log. Read the advisories. If the agent fixed something, look at the diff and make sure you understand the fix.

++

Put the rule in your agent's instructions

Add the completion rule to CLAUDE.md or AGENTS.md: “Don't say work is done until the metareview gate passes with zero blockers.”

++

You're still the owner

metareview checks the work. It doesn't make the decisions for you, and it doesn't replace a human reviewer on the PR.

++
++
++
++ ++
++
Part 4 · Your workflow · reading a review log
++

How to read a review log

++
++
# metareview: task-done review ++Run ID: `mrv-20260922-…-task-done-cart-total-3f9a…` ++Previous run: `mrv-20260922-…`
The run ID is what you pass to --previous-run on the retry. “Previous run” links the chain of attempts.
++
## Verdict ++NEEDS_REVISION
The one word that decides what you do next.
++
## Reviewer Results ++| test-reviewer | NEEDS_REVISION | 1 | … | ++| security-reviewer | PASS | 0 | … |
Which reviewer blocked, and how many blockers each found.
++
## Blocking Findings ++### …-001: Discount can make the total negative ++- Severity: high ++- Finding: applyCoupon() subtracts before clamping. ++- Expected: total ≥ 0 for any coupon. ++- Found: a $20 coupon on a $15 cart → -$5.00 ++- Recommendation: clamp at 0 and add a test.
Fix these. Each has what was expected, what was found, and a suggested fix. Start with Found: it's the concrete failing case.
++
## Advisory Findings ++## Follow-up Findings ++## Warnings
These don't block you. Read them anyway, and turn important follow-ups into tickets.
++
++

Illustrative example. Real logs follow this layout and live in docs/metareview/reviews/.

++
++ ++ ++
++
Part 5 · How-tos · recipes
++

How-to recipes: find what you're trying to do

++

Each recipe gives the steps, what to type in your agent, the raw CLI it runs, and how you know you're done.

++
++ ++ ++ ++ ++ ++ ++ ++ ++
++
++ ++
++
How-to · review a plan before you build
++

How to review a plan or spec before building it

++
++
++

When: you or your agent wrote a plan, spec, or design doc, and code is about to be written from it. Fixing a vague plan now is much cheaper than fixing vague code later.

++
    ++
  1. Save the plan as Markdown in the repo, e.g. docs/plans/cart-coupons.md.
  2. ++
  3. Ask your agent: /review-artifact docs/plans/cart-coupons.md
  4. ++
  5. The agent creates a review log (it starts as NOT_REVIEWED), runs the ten lenses as parallel subagents, and fills in every reviewer row and the verdict.
  6. ++
  7. Read the Blocking Findings and revise the plan.
  8. ++
  9. Re-review. The retry links to the previous run with --previous-run.
  10. ++
++
++
++
raw CLI
++
$ metareview review artifact docs/plans/cart-coupons.md
++# exits non-zero on purpose: the log is NOT_REVIEWED
++# until the ten lens reviewers fill it in
++
++# after revising the plan:
++$ metareview review artifact docs/plans/cart-coupons.md \
++    --previous-run <run-id>
++
PASS or PASS_ADVISORY with zero blockers. Now start building.
++

If a review was done without subagents, it must be labeled in-session-emulated. That's weaker evidence, and the log says so.

++
++
++
++ ++
++
How-to · review and fix your own diff
++

How to find and fix bugs in your diff, before any gate

++
++
++

When: you've committed a chunk of work. This is the step that actually finds bugs. The gates then check that it happened.

++
    ++
  1. Commit your work. The loop reviews committed base..HEAD, on a feature branch, never main.
  2. ++
  3. Ask your agent: /fsm run sdlc-loop-clean against main.
  4. ++
  5. It loops review → judge → fix → re-review. Your agent reviews and fixes; the CLI runs the judge.
  6. ++
  7. DONE means a fresh review came back clean. STOPPED means it hit a limit; read what's left.
  8. ++
  9. Read the fix commits (git log -p) so you understand every change made for you.
  10. ++
  11. Write down the run ID. You'll need it to record the review for the gate.
  12. ++
++
++
++
raw CLI
++
$ metareview fsm init --workflow sdlc-loop-clean --base main \
++    --judge-model claude-cli/opus --judge-effort low
++$ metareview fsm state      # lost? follow next_action
++$ metareview fsm advance    # exit 3 = your agent's turn
++$ metareview fsm record node-output --node discover --data findings.json
++$ metareview fsm advance    # … repeat until DONE or STOPPED
++$ metareview fsm export --run <run-id>   # evidence bundle
++
++ ++ ++ ++ ++ ++ ++
fsm exitMeaningDo
3A step needs your agentDo it, record, advance
1 + GATE_FAILEDA check failedRun the resume_hint (new run ID)
2Nothing was recordedFix the input and retry
++
++
++
++ ++
++
How-to · finish a task
++

How to finish a task with the task-done gate

++
++
++

When: you believe one task-sized chunk is complete. Ask your agent: /review-task-done docs/tasks/cart-total.md. These are the steps it runs:

++
    ++
  1. Commit everything. Uncommitted changes aren't covered by the review.
  2. ++
  3. Save evidence: run your real tests through evidence run.
  4. ++
  5. Run the lens review (the previous recipe) and note the FSM run ID.
  6. ++
  7. Record it with record-lenses, using the same --base.
  8. ++
  9. Run the gate. On NEEDS_REVISION: fix, commit, repeat steps 2–5 with --previous-run.
  10. ++
++
PASS / PASS_ADVISORY with zero blockers. Mark the task done and start the next chunk.
++
++
raw CLI
++
# 2 · evidence receipts
++$ ev="$(mktemp)"
++$ metareview evidence run -- npm test > "$ev"
++$ metareview evidence run -- git diff --check >> "$ev"
++
++# 3 · lens review → see "review and fix your own diff"
++
++# 4 · record the review for this exact diff
++$ metareview review record-lenses --scope task-done \
++    --base main --verdict PASS --mode subagent-adjudicated \
++    --from-run <fsm-run-id> --lenses security,correctness
++
++# 5 · the gate
++$ metareview review task-done docs/tasks/cart-total.md \
++    --base main --evidence "$ev"
++
++
++ ++
++
How-to · get a branch ready and push
++

How to get a branch ready, then push

++
++
++

When: every task on the branch has passed task-done and you're ready to push or open a PR. Ask your agent: /review-pr-ready --base main

++
    ++
  1. Commit everything and run your full test suite into a fresh evidence file.
  2. ++
  3. Lens-review the whole branch (main..HEAD) and record it with --scope pr-ready.
  4. ++
  5. Run the pr-ready gate. Fix anything it blocks on.
  6. ++
  7. git push. The pre-push hook re-checks the branch and stops the push if it isn't clean.
  8. ++
  9. Open the PR. Optionally add the CI results to your evidence later.
  10. ++
++
pr-ready passes and git push goes through without --no-verify.
++
++
raw CLI
++
$ ev="$(mktemp)"
++$ metareview evidence run -- npm test > "$ev"
++
++$ metareview fsm init --workflow review-loop --base main
++#   … drive it to DONE, note the run id
++$ metareview review record-lenses --scope pr-ready \
++    --base main --verdict PASS --mode subagent-adjudicated \
++    --from-run <fsm-run-id> --lenses security,correctness
++
++$ metareview review pr-ready --base main --evidence "$ev"
++$ git push -u origin my-branch      # hook runs the gate
++
++# after the PR exists: add CI results as evidence
++$ metareview evidence import --github-checks <pr> >> "$ev"
++
++
++ ++
++
How-to · finish an epic
++

How to finish an epic with epic-ready

++
++
++

When: a bigger feature was split into child tasks, and every child has passed task-done. epic-ready checks that the pieces work together and still match the original goal. Ask your agent: /review-epic-ready docs/epics/coupons.md

++
    ++
  1. Commit everything. A dirty tree blocks with working-tree-unattested.
  2. ++
  3. Pick one base and reuse it: the merge-base with main.
  4. ++
  5. Run the epic review loop over the combined diff. It uses the epic lenses: integration, intent, cross-task regressions, architecture.
  6. ++
  7. Record it with --scope epic-ready and the same base.
  8. ++
  9. Run the gate, then check the result still matches what the epic set out to do.
  10. ++
++
++
++
raw CLI
++
$ base="$(git merge-base HEAD main)"
++$ metareview fsm init --workflow epic-review-loop --base "$base"
++#   … drive it to DONE, note the run id
++$ metareview review record-lenses --scope epic-ready \
++    --base "$base" --verdict PASS --mode subagent-adjudicated \
++    --from-run <fsm-run-id> --lenses integration,intent
++$ metareview review epic-ready docs/epics/coupons.md \
++    --base "$base" --evidence "$ev"
++
Don't use --base main here. Once main moves forward, its tip no longer equals the merge-base, and your recorded review will never match. Use the same explicit "$base" in all three commands.
++
++
++
++ ++
++
How-to · after merge
++

How to save what the team learned from a merged PR

++
++
++

When: your PR has been merged, including the fixes that came from bot and teammate comments. Ask your agent: /learn-post-merge 42

++
    ++
  1. Confirm it actually merged, not just approved.
  2. ++
  3. Find the pre-merge ref: the main commit just before your PR landed.
  4. ++
  5. Run post-merge learning. It reads the merged diff and the review feedback, and extracts lessons.
  6. ++
  7. Skim what it wrote. Good lessons are general (“this repo validates money as integer cents”), not one-off trivia.
  8. ++
  9. Commit docs/metareview/learning/ and the knowledge files.
  10. ++
++
The lessons are committed. Future reviews in this repo start with them as context.
++
++
raw CLI
++
# the main commit just before the merge
++# (first parent of the merge / squash commit)
++$ git fetch origin
++$ pre="$(git rev-parse <merged-commit>^1)"
++
++$ metareview learn --post-merge 42 --base "$pre"
++
++$ git add docs/metareview/learning .metareview/knowledge
++$ git commit -m "learn: post-merge learning for PR #42"
++
++
++ ++
++
How-to · smaller recipes
++

Smaller how-tos you'll need sooner or later

++
++
Where do things stand?

Check review status

++
metareview status          # repo review state
++metareview fsm state       # current fix-loop run
++

fsm state always tells you the next action: advance, record, or none.

++
Diff over 120 KB?

Handle a huge diff

++
metareview review task-done <t> --base main   # writes shard packs
++# agent reviews each shard-<id>.md + cross-shard.md
++metareview review task-done <t> --base main --previous-run <id>
++

The gate splits the diff and writes a plan under .metareview/shards/. Better still, split the work into smaller PRs.

++
Tests look complete?

Add a mutation report

++
metareview review task-done <t> --base main \
++  --mutation-report mutation.json
++

Accepts Stryker's schema, gremlins (Go), and mutmut (Python). Each surviving mutant is a line your tests run but don't check, and it blocks.

++
Can't fix a blocker?

Record an exception honestly

++
metareview override request <finding-id> --reason "…"
++# a lead or human reviewer, not you:
++metareview override grant <finding-id> --reason "…"
++metareview override list --pending
++

A request alone keeps CI red. Whoever requested it can't grant it.

++
++
++ ++ ++ ++ ++
++
Part 6 · When it says no · the two “not yet” verdicts
++

A “no” is information, not a failure

++
++
++ NEEDS_REVISION ++

Fix, commit, re-run the same gate

++
retry
++
$ metareview review task-done docs/tasks/cart-total.md \
++    --base main --evidence "$ev" \
++    --previous-run mrv-20260922-…-cart-total-3f9a…
++

Re-run your tests for fresh evidence, and re-record the lens review, because your fix is a new commit.

++
++
++ ESCALATED ++

Stop. Make the problem smaller.

++

The same target has failed to converge. Retrying again won't help. Instead:

++
    ++
  • Split the task into smaller pieces
  • ++
  • Narrow what it's trying to do
  • ++
  • Redesign the approach, or ask a senior engineer
  • ++
++

This is a human decision. Your agent should stop and ask you, not keep looping.

++
++
++
++ ++
++
Part 6 · When it says no · first-week messages
++

Messages you'll probably see in your first week

++
++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
You seeIt meansDo this
No adjudicated lens review recordedThe structural check ran, but no AI lens review exists for this diff.Run the lens review (fsm review-loop or sdlc-loop-clean), record-lenses, then re-run the gate.
Same error right after you recorded oneYou committed after reviewing, or used a different --base.Review and record again for the current HEAD, with the same --base as the gate.
working-tree-unattestedYou have uncommitted changes the review never saw.Commit (or stash), then review and record for the new HEAD.
git push rejected by the pre-push hookThe branch isn't review-clean.Run /review-pr-ready, fix what it finds, push again.
Review context risk / sharded reviewThe diff is over 120 KB, too big to review in one go.Your agent reviews each shard pack it wrote, then re-runs. Better: make smaller PRs.
ERR_CMDS_NOT_ALLOWEDThe fix loop wants to run a custom test command.A human checks the command and consents with --allow-custom-cmds <sha>.
++
++
++ ++
++
Part 6 · When it says no · ground rules
++

Six habits that keep it working for you

++
++

Keep chunks small

Small diffs review faster, get sharper findings, and almost never escalate.

++

“Done” means PASS with zero blockers

Not “the tests pass,” and not “the agent said so.”

++

Don't route around the gate

--no-verify and METAREVIEW_ALLOW_MECHANICAL_PASS=1 exist for real exceptions. Say so when you use them.

++

Record exceptions honestly

If you can't fix a blocker, use override request. Someone else has to grant it, and until they do, CI stays red.

++

Label your review truthfully

No subagents? Record in-session-emulated. It still passes, but everyone can see it's weaker evidence.

++

Fix loops commit to your branch

Run them on a feature branch, never on main, and read what they changed.

++
++
++ ++
++
Wrap-up · keep this one
++

Cheat sheet

++
++
setup (once)
++
npm install -g metareview
++claude plugin marketplace add dsifry/metareview
++claude plugin install metareview@metareview
++metareview setup --check
++metareview setup --install-hooks
++
every day (in your agent)
++
/review-artifact    docs/plan.md
++/fsm                sdlc-loop-clean on your diff
++/review-task-done   <task>
++/review-epic-ready  <epic>
++/review-pr-ready    --base main
++/learn-post-merge   <pr>
++
++
++
PASS

Move on.

++
PASS_ADVISORY

Move on if zero blockers. Read the notes.

++
NEEDS_REVISION

Fix, then re-run with --previous-run.

++
ESCALATED

Stop. Split or redesign.

++
++

Read next: USAGE.md (task walkthrough) · INSTALL.md · docs/quickstart.md · docs/fsm/driving-a-workflow.md · docs/ARCHITECTURE.md · github.com/dsifry/metareview

++
++ ++
++ ++ ++ ++ +diff --git a/docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md b/docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +new file mode 100644 +index 0000000..6e83651 +--- /dev/null ++++ b/docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +@@ -0,0 +1,1076 @@ ++# Issue 2 Stateful, Shardable, Evidence-Backed Metareview Implementation Plan ++ ++> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. When metaswarm is present, metaswarm remains the lifecycle owner; use this plan inside its decomposition, execution, and PR-shepherding flow. Steps use checkbox (`- [ ]`) syntax for tracking. ++ ++**Goal:** Fix issue #2 by making metareview verdicts stateful, typed, shardable, and evidence-backed so agents can trust what `PASS`, `PASS_ADVISORY`, `NEEDS_REVISION`, and `CONTEXT_RISK` mean. ++ ++**Architecture:** Land this as a sequence of small reviewable PRs. First remove false gates and self-poisoning with a review-state projector, then add structured evidence receipts, context preflight, shard planning, artifact lifecycle commands, external review-thread ingestion, runtime evidence, and final manifest/coverage reporting. The Go CLI owns deterministic state, manifests, parsing, and prompt-pack generation; Codex/Claude/metaswarm adapters own actual subagent dispatch. ++ ++**Tech Stack:** Go 1.x, shell integration tests under `tests/go`, existing Markdown review artifacts, existing JSONL state helpers in `.metareview`, GitHub CLI for optional PR context, metareview artifact/task/pr gates. ++ ++## Global Constraints ++ ++- Do not make the Go CLI depend on a specific AI runtime. ++- Keep `.metareview/findings.jsonl` and `.metareview/runs.jsonl` transient local state; durable evidence belongs under `docs/metareview/**` unless explicitly local-only. ++- Preserve existing CLI behavior unless a changed behavior is listed below and covered by tests. ++- Prefer additive commands/flags before removing legacy behavior. ++- Freeform evidence remains accepted as a documented fallback while structured receipts become preferred. ++- Static review must not imply runtime/deployment verification. ++- Every work unit ends with independent validation and an adversarial review checkpoint. ++- Use `go run ./cmd/metareview ...` when validating source-checkout behavior. ++ ++--- ++ ++## Source Spec ++ ++- GitHub issue: https://github.com/dsifry/metareview/issues/2 ++- Related narrow bug: https://github.com/dsifry/metareview/issues/1 ++- Existing relevant plan: `docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md` ++- Current process status checked on 2026-07-04: ++ - `go run ./cmd/metareview status` reported `mode: metaswarm-extension`, `metaswarm: present`, `beads: missing`. ++ - Targeted baseline tests passed for `internal/reviewlog`, `internal/prready`, `internal/gitcontext`, `internal/githubcontext`, `internal/artifactreview`, and `internal/tasksource`. ++- Evidence basis: six real metareview usage sessions summarized in issue #2. ++ ++## Current Critical Gaps ++ ++- `internal/reviewlog/reviewlog.go` treats any text containing `NEEDS_REVISION` as unresolved, even when the structured verdict is `PASS`. ++- `internal/prready/review.go` loads review logs and unresolved blockers before current `--previous-run` reconciliation can supersede them. ++- `internal/reviewers/taskdone.go` and `internal/reviewers/prready.go` rely on a brittle validation regex instead of typed command receipts. ++- `internal/gitcontext/gitcontext.go` lacks a first-class context-risk profile and has no deterministic shard plan. ++- `internal/githubcontext/githubcontext.go` ingests flat PR comments/reviews but not GraphQL review threads. ++- `internal/artifactreview/review.go` creates scaffolds but does not own a durable review lifecycle. ++- `internal/tasksource/tasksource.go` loses structured acceptance data that later gates need for coverage. ++ ++## File Structure ++ ++### New packages ++ ++- Create `internal/reviewstate/`: projected current blocker state from durable reviews, run-chain state, findings, and target identity. ++- Create `internal/evidence/`: structured validation/runtime receipt schema, parser, renderer, and command runner. ++- Create `internal/contextprofile/`: filtered/raw context profile, context-risk classification, and shard planner. ++- Create `internal/reviewmanifest/`: task contract, acceptance coverage, shard coverage, external-review coverage, runtime coverage, and final manifest rendering. ++ ++### Existing packages to modify ++ ++- Modify `cmd/metareview/main.go`: add evidence commands, artifact lifecycle subcommands, context/shard flags, runtime-evidence flags. ++- Modify `internal/reviewlog/reviewlog.go`: structured parsing and no raw historical verdict poisoning. ++- Modify `internal/prready/review.go`: projector-first flow, structured evidence, context preflight, shard/manifest aggregation. ++- Modify `internal/taskdone/review.go`: structured evidence, context preflight, manifest coverage. ++- Modify `internal/epicready/review.go`: context preflight propagation. ++- Modify `internal/reviewers/taskdone.go`: consume parsed evidence and manifest coverage instead of regex-only validation. ++- Modify `internal/reviewers/prready.go`: consume projector, manifest, GitHub threads, runtime/static distinction. ++- Modify `internal/findings/findings.go`: explicit `open`, `fixed`, `superseded`, `waived`, `accepted-risk` disposition support. ++- Modify `internal/runchain/runchain.go`: durable-log recovery helpers where local JSONL is missing. ++- Modify `internal/gitcontext/gitcontext.go`: context profile and filtering-before-budget behavior. ++- Modify `internal/githubcontext/githubcontext.go`: GraphQL review-thread collector. ++- Modify `internal/artifactreview/review.go`: idempotent start/resume/record/validate/finish lifecycle. ++- Modify `internal/tasksource/tasksource.go`: preserve structured acceptance arrays and task contracts. ++- Modify `skills/review-artifact/SKILL.md`, `skills/review-task-done/SKILL.md`, `skills/review-pr-ready/SKILL.md`: update process instructions. ++- Add or update tests under `internal/**` and `tests/go/**`. ++ ++## Process Model For This Issue ++ ++This issue is intentionally too large for one PR. Treat it as an epic with the following gates: ++ ++1. **Plan artifact review:** This document must pass metareview artifact review before implementation starts. ++2. **Per-work-unit implementation:** Each work unit gets its own branch/PR unless adjacent work is trivially coupled. ++3. **Independent validation:** The orchestrator runs tests directly; do not trust implementer self-report. ++4. **Adversarial review:** A fresh reviewer checks each work unit against this plan and issue #2. ++5. **Final cross-unit review:** Once all work units land, run a replay against at least two historical session patterns from issue #2. ++ ++Parallelization rule: ++ ++- Work Unit 1 blocks most later work. ++- Work Units 2, 3, 4, 5, and 6 can be designed in parallel after Work Unit 1 interfaces are stable. ++- Work Unit 7 aggregates outputs from Work Units 2-6. ++- Work Unit 8 is final replay/hardening and must run last. ++ ++## State And Boundary Contract ++ ++This plan must not create competing owners for the same review state. Package ownership is: ++ ++- `internal/runchain` remains the authority for run-chain validation, previous-run identity, attempt counts, and escalation decisions. ++- `internal/findings` remains the writer for finding lifecycle state: `open`, `fixed`, `superseded`, `waived`, and `accepted-risk`. ++- `internal/reviewstate` is a read-model/projector only. It computes the current blocking view for a target from run-chain, findings, review logs, and changed paths. It may propose supersessions, but it must call `findings.Reconcile` or another findings-owned function to write them. ++- `internal/reviewlog` remains the durable Markdown parser. Work Unit 1 only recovers legacy durable fields already present in review logs: run ID, target, verdict, previous run, reviewer rows, and finding IDs. Work Unit 5 adds durable structured front matter, content hash, and richer artifact lifecycle metadata. ++- `internal/contextprofile` becomes the single shared path for generated-file filtering, raw/filtered context metrics, and context-risk classification. Existing task/pr/epic generated-file filters must move behind this package instead of being copied again. ++- `internal/reviewmanifest` owns coverage and aggregation state: acceptance coverage, validation coverage, shard review results, external review dispositions, runtime evidence, and final readiness status. ++- `cmd/metareview/main.go` keeps backwards-compatible command forms. Each new CLI command or flag gets a compatibility test proving existing commands still parse and behave as documented. ++ ++Durable/local read precedence: ++ ++1. Durable structured review metadata, once Work Unit 5 adds it. ++2. Legacy review Markdown fields parsed by `reviewlog`. ++3. Local `.metareview/runs.jsonl` and `.metareview/findings.jsonl` for enrichment and current local state. ++ ++When local JSONL is absent, gates should recover enough durable state to avoid false blockers, but they must not invent missing attempt counts or hidden dispositions. ++ ++## Issue 2 Requirement Matrix ++ ++| Issue #2 area | Primary work unit | Required deterministic proof | ++| --- | --- | --- | ++| A. State/parser reliability | WU1 | Historical `NEEDS_REVISION`, previous-run self-poisoning, unrelated blocker isolation, and missing-local-JSONL recovery tests | ++| B. Evidence contract | WU2 + WU8 | Structured receipts, freeform fallback, failed/contradictory/stale/missing-field cases, `evidence import --github-checks ` fixtures, and issue #1 closed or explicitly linked as resolved | ++| C. Context preflight and sharding | WU3 + WU4 | Context-risk tests, deterministic shard plan tests, shard result ingestion tests, missing/failed/stale shard blockers, and cross-shard review blockers | ++| D. Code review contract | WU4 | Acceptance-to-file-to-evidence-to-shard coverage matrix tests and Medium+ shard finding blocking tests | ++| E. Artifact lifecycle | WU5 | Idempotency, content-hash invalidation, attempt counts, previous-run validation, blocker reconciliation, PASS/PASS_ADVISORY zero-blocker tests, and legacy migration tests | ++| F. External review ingestion | WU6 | GraphQL thread fixtures, severity normalization, unresolved active-thread blockers, outdated/resolved advisories, strict unavailable-context tests | ++| G. Runtime claims | WU7 | Static-only rendering, health/process/bundle/provider/runbook receipt tests, failed runtime blockers, strict runtime evidence tests | ++| Final replay | WU8 | Replay report covering at least two historical session shapes plus full test suite and final metareview gates | ++ ++## Per-Work-Unit Completion Gate ++ ++Every work unit must finish with the same gate template: ++ ++1. Run the unit's focused Go and shell tests directly from the orchestrating session. ++2. Run `git diff --check`. ++3. Write an evidence file containing only commands actually run in the current workspace. ++4. Run `go run ./cmd/metareview review task-done issue-2-wu --base origin/main --evidence "$tmp_evidence"`. ++5. If the work unit opens a PR, run `go run ./cmd/metareview review pr-ready --base origin/main --evidence "$tmp_evidence"` before pushing or requesting merge. ++6. Record any blocker as current work. Do not proceed to the next dependent work unit while blockers remain. ++ ++--- ++ ++## Work Unit 1: Review-State Projector And False-Gate Fixes ++ ++**Goal:** Stop known self-poisoning and parser false gates before adding new features. ++ ++**Files:** ++- Create: `internal/reviewstate/projector.go` ++- Create: `internal/reviewstate/projector_test.go` ++- Modify: `internal/reviewlog/reviewlog.go` ++- Modify: `internal/reviewlog/reviewlog_test.go` ++- Modify: `internal/prready/review.go` ++- Modify: `internal/prready/review_markdown_test.go` ++- Modify: `internal/findings/findings.go` ++- Modify: `internal/findings/findings_test.go` ++- Modify: `internal/runchain/runchain.go` ++- Modify: `internal/runchain/runchain_test.go` ++- Modify: `tests/go/test-pr-ready-review.sh` ++ ++**Interfaces:** ++- Produces: ++ - `reviewstate.TargetKey(scope string, target map[string]string) string` ++ - `reviewstate.Project(root string, opts reviewstate.Options) (reviewstate.Projection, error)` ++ - `reviewstate.Projection.CurrentBlockers() []findings.Record` ++ - `reviewstate.Projection.HistoricalUnrelated() []reviewlog.Summary` ++ - `reviewstate.Projection.SupersededRunIDs() map[string]bool` ++- Consumes: ++ - `reviewlog.Discover` ++ - `findings.UnresolvedBlocking` ++ - `runchain.Resolve` ++ ++**Changed behavior:** ++- A PASS review can mention old `NEEDS_REVISION` text without becoming unresolved. ++- PR-ready reconciles the current previous-run chain before it aggregates current blockers. ++- Unrelated old artifact/task blockers are visible but do not block the current target. ++- Same-target stale findings can be superseded by a successful current run when evidence shows they are fixed. ++ ++- [ ] **Step 1: Write the reviewlog parser regression test** ++ ++Add this test to `internal/reviewlog/reviewlog_test.go`: ++ ++```go ++func TestPassReviewMentioningHistoricalNeedsRevisionIsNotUnresolved(t *testing.T) { ++ root := t.TempDir() ++ mustWrite(t, filepath.Join(root, "docs", "metareview", "reviews", "task.md"), ++ "# metareview: task-done review\n\n"+ ++ "Run ID: `mrv-task`\n\n"+ ++ "Target: `task-1`\n\n"+ ++ "## Verdict\n\nPASS\n\n"+ ++ "## Notes\n\nPrevious run mrv-old was NEEDS_REVISION; this run fixed it.\n\n"+ ++ "## Findings\n\nNo blocking findings.\n") ++ ++ logs, err := ForTarget(root, "task-1") ++ if err != nil { ++ t.Fatalf("target logs: %v", err) ++ } ++ if len(logs) != 1 { ++ t.Fatalf("expected one log, got %+v", logs) ++ } ++ if logs[0].HasUnresolvedBlockers { ++ t.Fatalf("historical NEEDS_REVISION prose must not poison PASS: %+v", logs[0]) ++ } ++} ++``` ++ ++Run: `go test ./internal/reviewlog -run HistoricalNeedsRevision -count=1` ++Expected before fix: FAIL. ++Expected after fix: PASS. ++ ++- [ ] **Step 2: Fix structured verdict parsing** ++ ++In `internal/reviewlog/reviewlog.go`, remove raw `strings.Contains(text, "NEEDS_REVISION")` from blocker detection. Base unresolved state on: ++ ++```go ++if verdictIsUnresolved(summary.Verdict) { ++ summary.HasUnresolvedBlockers = true ++} ++``` ++ ++Keep artifact completeness checks unchanged. ++ ++- [ ] **Step 3: Add projector tests** ++ ++Create `internal/reviewstate/projector_test.go` with four cases: ++ ++```go ++func TestProjectionDoesNotBlockOnUnrelatedArtifact(t *testing.T) { ++ // Arrange: docs/metareview/reviews/unrelated.md has NOT_REVIEWED target docs/old.md. ++ // Arrange: current target is branch main-sha or task docs/new.md. ++ // Assert: Projection.CurrentBlockers is empty. ++ // Assert: Projection.HistoricalUnrelated contains docs/old.md. ++} ++ ++func TestProjectionSupersedesPreviousRunChainBeforeCurrentAggregation(t *testing.T) { ++ // Arrange: run A has open missing-evidence finding. ++ // Arrange: run B uses --previous-run A and current evidence covers validation. ++ // Assert: run A finding is superseded/fixed in projection before PR-ready reviewer input. ++} ++ ++func TestProjectionKeepsSameTargetOpenBlockerWhenNotSuperseded(t *testing.T) { ++ // Arrange: same target has open security finding not in previous-run chain. ++ // Assert: CurrentBlockers includes the security finding. ++} ++ ++func TestProjectionRecoversLegacyReviewStateWhenLocalRunsJSONLMissing(t *testing.T) { ++ // Arrange: durable Markdown logs contain run ID, target, verdict, previous run, and finding IDs. ++ // Arrange: .metareview/runs.jsonl is absent. ++ // Assert: projection can identify the previous-run chain and does not invent attempt counts. ++} ++``` ++ ++Run: `go test ./internal/reviewstate -count=1` ++Expected before implementation: FAIL because package does not exist. ++ ++- [ ] **Step 4: Implement `internal/reviewstate`** ++ ++Implement `Options` and `Projection` with these fields: ++ ++```go ++type Options struct { ++ Scope string ++ Target map[string]string ++ PreviousRunID string ++ ChangedPaths []string ++ CurrentRunID string ++} ++ ++type Projection struct { ++ TargetKeyValue string ++ PreviousChainRunIDs map[string]bool ++ CurrentBlockerRecords []findings.Record ++ HistoricalLogs []reviewlog.Summary ++ SupersededFindingIDs map[string]bool ++} ++``` ++ ++Use exact target match first. Use changed path overlap only for durable artifact logs whose target is a path. Keep ambiguous same-scope blockers current rather than silently dropping them. ++ ++Keep `reviewstate` read-only. Any persisted status change must go through `internal/findings`. ++ ++- [ ] **Step 5: Wire PR-ready through projector** ++ ++In `internal/prready/review.go`, resolve the run chain before constructing reviewer input. Replace direct `latestLogsByTarget(logs)` + `blockerLogs(blockers)` aggregation with projector-derived current blockers plus historical notes. ++ ++Run: ++ ++```bash ++go test ./internal/prready ./internal/reviewstate ./internal/reviewlog ./internal/findings ./internal/runchain ++``` ++ ++Expected: PASS. ++ ++- [ ] **Step 6: Add shell regression for previous-run self-poisoning** ++ ++In `tests/go/test-pr-ready-review.sh`, add a case: ++ ++```bash ++# Run 1: pr-ready with changed source and no evidence exits nonzero with Missing validation evidence. ++# Run 2: pr-ready with --previous-run "$run1" and evidence file containing "go test ./... exited 0". ++# Expected: Run 2 does not emit "Unresolved review blockers" for run1. ++``` ++ ++Run: `bash tests/go/test-pr-ready-review.sh` ++Expected: PASS. ++ ++- [ ] **Step 7: Run work-unit gate** ++ ++Run: ++ ++```bash ++go test ./internal/reviewstate ./internal/reviewlog ./internal/prready ./internal/findings ./internal/runchain ++bash tests/go/test-pr-ready-review.sh ++``` ++ ++Then run: ++ ++```bash ++tmp_evidence="$(mktemp)" ++printf '%s\n' \ ++ 'Verification evidence:' \ ++ '- go test ./internal/reviewstate ./internal/reviewlog ./internal/prready ./internal/findings ./internal/runchain exited 0' \ ++ '- bash tests/go/test-pr-ready-review.sh exited 0' > "$tmp_evidence" ++go run ./cmd/metareview review task-done issue-2-wu1 --base origin/main --evidence "$tmp_evidence" ++``` ++ ++Expected: `PASS` or `PASS_ADVISORY` with zero blockers. ++ ++--- ++ ++## Work Unit 2: Structured Evidence Receipts ++ ++**Goal:** Replace regex-only validation with typed command receipts while preserving freeform fallback. ++ ++**Files:** ++- Create: `internal/evidence/receipt.go` ++- Create: `internal/evidence/receipt_test.go` ++- Create: `internal/evidence/runner.go` ++- Create: `internal/evidence/runner_test.go` ++- Modify: `cmd/metareview/main.go` ++- Modify: `internal/prready/evidence.go` ++- Modify: `internal/prready/evidence_test.go` ++- Create: `internal/evidence/github_checks.go` ++- Create: `internal/evidence/github_checks_test.go` ++- Modify: `internal/reviewers/taskdone.go` ++- Modify: `internal/reviewers/taskdone_test.go` ++- Modify: `internal/reviewers/prready.go` ++- Modify: `internal/reviewers/prready_test.go` ++- Modify: `skills/review-task-done/SKILL.md` ++- Modify: `skills/review-pr-ready/SKILL.md` ++ ++**Interfaces:** ++- Produces: ++ - `evidence.Receipt` ++ - `evidence.Parse(data []byte) (evidence.Bundle, error)` ++ - `evidence.Run(ctx context.Context, command []string, opts evidence.RunOptions) (evidence.Receipt, error)` ++ - `evidence.ImportGitHubChecks(ctx context.Context, pr string, opts evidence.GitHubCheckOptions) (evidence.Bundle, error)` ++ - `evidence.Bundle.HasSuccessfulValidation(kind evidence.Kind) bool` ++- Consumes: ++ - Existing `--evidence ` flag. ++ ++**Receipt schema:** ++ ++```go ++type Receipt struct { ++ SchemaVersion int `json:"schemaVersion"` ++ Kind string `json:"kind"` // validation, runtime, ci-check ++ Command []string `json:"command,omitempty"` ++ CWD string `json:"cwd,omitempty"` ++ ExitCode int `json:"exitCode"` ++ StartedAt time.Time `json:"startedAt"` ++ FinishedAt time.Time `json:"finishedAt"` ++ StdoutSHA256 string `json:"stdoutSha256,omitempty"` ++ StderrSHA256 string `json:"stderrSha256,omitempty"` ++ Summary string `json:"summary"` ++ Covers []string `json:"covers,omitempty"` ++} ++``` ++ ++**Changed behavior:** ++- `go test ./...` raw `ok` output can satisfy validation. ++- `npm run build exited 0`, `tsc --noEmit exited 0`, and coverage summaries can satisfy validation when they are successful receipts or accepted fallback text. ++- Failed exit codes override optimistic words in output. ++- `metareview evidence import --github-checks ` imports CI/check conclusions as `ci-check` receipts when GitHub context is available. ++ ++- [ ] **Step 1: Write parser tests** ++ ++Add tests in `internal/evidence/receipt_test.go`: ++ ++```go ++func TestParseJSONLReceipts(t *testing.T) { ++ input := []byte(`{"schemaVersion":1,"kind":"validation","command":["go","test","./..."],"cwd":"/repo","exitCode":0,"startedAt":"2026-07-04T12:00:00Z","finishedAt":"2026-07-04T12:00:02Z","summary":"go test ./... exited 0"}` + "\n") ++ bundle, err := Parse(input) ++ if err != nil { ++ t.Fatalf("parse receipts: %v", err) ++ } ++ if !bundle.HasSuccessfulValidation("tests") { ++ t.Fatalf("expected successful validation: %+v", bundle) ++ } ++} ++ ++func TestFailedReceiptDoesNotPassValidation(t *testing.T) { ++ input := []byte(`{"schemaVersion":1,"kind":"validation","command":["go","test","./..."],"exitCode":1,"summary":"tests passed before final failure"}` + "\n") ++ bundle, err := Parse(input) ++ if err != nil { ++ t.Fatalf("parse receipts: %v", err) ++ } ++ if bundle.HasSuccessfulValidation("tests") { ++ t.Fatalf("failed receipt must not pass validation") ++ } ++} ++ ++func TestFreeformFallbackRecognizesCommonSuccess(t *testing.T) { ++ for _, text := range []string{ ++ "ok github.com/dsifry/metareview/internal/reviewlog 0.132s", ++ "npm run build exited 0", ++ "tsc --noEmit exited 0", ++ "coverage gate passed: 95.4%", ++ } { ++ bundle, err := Parse([]byte(text)) ++ if err != nil { ++ t.Fatalf("parse fallback %q: %v", text, err) ++ } ++ if !bundle.HasSuccessfulValidation("generic") { ++ t.Fatalf("expected fallback validation for %q", text) ++ } ++ } ++} ++ ++func TestMalformedReceiptFailsStrictMode(t *testing.T) { ++ // Missing exitCode or summary must fail when strict receipt parsing is requested. ++} ++ ++func TestStaleReceiptFailsStrictMode(t *testing.T) { ++ // A receipt older than the configured max age must fail in strict mode. ++} ++ ++func TestContradictoryReceiptUsesExitCodeAsAuthority(t *testing.T) { ++ // exitCode 1 with "passed" in summary must not satisfy validation. ++} ++``` ++ ++Run: `go test ./internal/evidence -count=1` ++Expected before implementation: FAIL. ++ ++- [ ] **Step 2: Implement parser and fallback recognizers** ++ ++Implement strict JSONL receipt parsing first. If no JSON object lines are present, parse freeform text with documented success patterns and explicit failure patterns. ++ ++- [ ] **Step 3: Add CLI runner command** ++ ++Add: ++ ++```bash ++go run ./cmd/metareview evidence run -- go test ./internal/evidence ++``` ++ ++Expected output: one JSON receipt to stdout with `exitCode: 0`. ++ ++- [ ] **Step 4: Add CI/check import command** ++ ++Add: ++ ++```bash ++go run ./cmd/metareview evidence import --github-checks 2 ++``` ++ ++Mock `gh api`/`gh pr checks` in tests so success, failure, skipped, pending, and unavailable-auth cases are deterministic. Successful checks produce `kind: "ci-check"` receipts. Failed or pending required checks do not satisfy validation. ++ ++- [ ] **Step 5: Wire reviewers to parsed evidence** ++ ++Replace direct `validationPattern.MatchString(context.EvidenceText)` calls with parsed bundle checks. Keep `validationPattern` only as a fallback helper inside `internal/evidence`. ++ ++- [ ] **Step 6: Render evidence in PR/task outputs** ++ ++Update PR evidence rendering to show receipt summaries and distinguish structured versus freeform fallback. ++ ++- [ ] **Step 7: Run work-unit gate** ++ ++Run: ++ ++```bash ++go test ./internal/evidence ./internal/reviewers ./internal/prready ++bash tests/go/test-pr-evidence.sh ++bash tests/go/test-taskdone-reviewers.sh ++``` ++ ++Then use the per-work-unit completion gate above with evidence that includes those commands and their exit status. ++ ++--- ++ ++## Work Unit 3: Context Preflight And Shard Planner ++ ++**Goal:** Make incomplete review context a first-class preflight state and generate deterministic shard plans for large diffs. ++ ++**Files:** ++- Create: `internal/contextprofile/profile.go` ++- Create: `internal/contextprofile/profile_test.go` ++- Create: `internal/contextprofile/shards.go` ++- Create: `internal/contextprofile/shards_test.go` ++- Modify: `internal/gitcontext/gitcontext.go` ++- Modify: `internal/gitcontext/gitcontext_test.go` ++- Modify: `internal/taskdone/review.go` ++- Modify: `internal/prready/review.go` ++- Modify: `internal/epicready/review.go` ++- Modify: `internal/reviewers/taskdone.go` ++- Modify: `tests/go/test-git-context.sh` ++- Modify: `tests/go/test-pr-ready-review.sh` ++ ++**Interfaces:** ++- Produces: ++ - `contextprofile.Profile` ++ - `contextprofile.Risk` ++ - `contextprofile.PlanShards(profile Profile, opts ShardOptions) (ShardPlan, error)` ++ - deterministic shard prompt-pack paths that later reviewer adapters can execute ++- Consumes: ++ - `gitcontext.Context` ++ ++**Changed behavior:** ++- Generated metareview artifacts are filtered before budget decisions unless they are the explicit target. ++- PR-ready defaults to branch diff only; non-generated working-tree dirt blocks unless `--include-working-tree` is set. ++- Truncation, omitted untracked files, and large diffs produce `CONTEXT_RISK` or a shard plan before domain reviewers run. ++ ++- [ ] **Step 1: Write context profile tests** ++ ++Add tests for: ++ ++```go ++func TestGeneratedMetareviewArtifactsDoNotConsumeSourceBudget(t *testing.T) {} ++func TestLargeSourceDiffProducesContextRisk(t *testing.T) {} ++func TestMoreThanUntrackedLimitRecordsOmissions(t *testing.T) {} ++func TestEpicReadyReceivesContextRiskFlags(t *testing.T) {} ++``` ++ ++Run: `go test ./internal/contextprofile ./internal/gitcontext -count=1` ++Expected before implementation: FAIL for new package and missing fields. ++ ++- [ ] **Step 2: Add raw and filtered metrics** ++ ++Extend git/context profile data with: ++ ++```go ++RawDiffBytes int ++FilteredDiffBytes int ++GeneratedExcludedFiles []string ++UntrackedOmittedCount int ++RiskLevel string // none, advisory, context-risk ++RiskReasons []string ++``` ++ ++- [ ] **Step 3: Implement branch-only PR-ready default** ++ ++PR-ready should fail with clear text when staged, unstaged, or untracked non-generated files exist. Add `--include-working-tree` to preserve explicit old behavior. ++ ++- [ ] **Step 4: Implement shard planner** ++ ++Shard planner inputs: ++ ++```go ++type ShardOptions struct { ++ MaxBytesPerShard int ++ GroupBy string // path, domain, workunit ++} ++``` ++ ++Expected shard output includes shard ID, paths, byte count, source diff hash, reason, and prompt-pack path. Shard result ingestion is implemented in Work Unit 4 so Work Unit 3 can remain focused on safe context planning. ++ ++Generated prompt packs must instruct reviewers to report file:line evidence, acceptance coverage, severity, disposition, and whether each finding is shard-local or cross-shard. ++ ++- [ ] **Step 5: Add integration tests** ++ ++Run: ++ ++```bash ++go test ./internal/contextprofile ./internal/gitcontext ./internal/prready ./internal/taskdone ./internal/epicready ++bash tests/go/test-git-context.sh ++bash tests/go/test-pr-ready-review.sh ++``` ++ ++Expected: PASS. ++ ++Then use the per-work-unit completion gate above. ++ ++--- ++ ++## Work Unit 4: Task Contract And Review Manifest ++ ++**Goal:** Make task acceptance, changed files, evidence, and shard coverage visible and enforceable. ++ ++**Files:** ++- Create: `internal/reviewmanifest/manifest.go` ++- Create: `internal/reviewmanifest/manifest_test.go` ++- Create: `internal/reviewmanifest/shard_result.go` ++- Create: `internal/reviewmanifest/shard_result_test.go` ++- Modify: `internal/tasksource/tasksource.go` ++- Modify: `internal/tasksource/tasksource_test.go` ++- Modify: `internal/taskdone/review.go` ++- Modify: `internal/prready/review.go` ++- Modify: `internal/reviewers/taskdone.go` ++- Modify: `internal/reviewers/prready.go` ++- Modify: `tests/go/test-task-source.sh` ++- Modify: `tests/go/test-task-done-review.sh` ++- Modify: `tests/go/test-pr-ready-review.sh` ++ ++**Interfaces:** ++- Produces: ++ - `reviewmanifest.Contract` ++ - `reviewmanifest.AcceptanceCriterion` ++ - `reviewmanifest.CoverageMatrix` ++ - `reviewmanifest.Manifest` ++ - `reviewmanifest.RenderMarkdown(manifest Manifest) string` ++- Consumes: ++ - structured tasksource output ++ - evidence bundle ++ - context shard plan ++ - shard reviewer result JSON ++ - cross-shard reviewer result JSON ++ ++**Changed behavior:** ++- Beads/Markdown acceptance arrays are preserved instead of flattened away. ++- Generic `tests passed` is advisory unless it maps to changed behavior, files, or explicit acceptance criteria. ++- PR/task review outputs distinguish deterministic checks, generated prompt-pack checks, external review, and runtime evidence. ++- PR-ready blocks when any required shard result is missing, stale, failed, or has Medium+ findings without a disposition. ++- Multi-shard PRs require one cross-shard integration review result before PASS. ++ ++- [ ] **Step 1: Write tasksource acceptance-array test** ++ ++Add a fixture with: ++ ++```json ++{ ++ "id": "task-123", ++ "title": "Add evidence receipts", ++ "acceptance": [ ++ "Receipts include command and exit code", ++ "Failed receipts do not pass validation" ++ ] ++} ++``` ++ ++Expected parsed contract has two acceptance criteria with stable IDs. ++ ++- [ ] **Step 2: Write manifest coverage tests** ++ ++Add cases: ++ ++```go ++func TestManifestBlocksWhenChangedSourceLacksCoverage(t *testing.T) {} ++func TestManifestPassesWhenAcceptanceFileEvidenceAndShardCoverageAlign(t *testing.T) {} ++func TestGenericTestsPassedIsAdvisoryWithoutCoverageMapping(t *testing.T) {} ++func TestManifestBlocksWhenShardResultMissing(t *testing.T) {} ++func TestManifestBlocksWhenShardResultDiffHashIsStale(t *testing.T) {} ++func TestManifestBlocksOnMediumPlusShardFindingWithoutDisposition(t *testing.T) {} ++func TestManifestRequiresCrossShardReviewForMultiShardPlan(t *testing.T) {} ++``` ++ ++- [ ] **Step 3: Define shard result contract** ++ ++Implement: ++ ++```go ++type ShardReviewResult struct { ++ SchemaVersion int ++ ShardID string ++ DiffHash string ++ Reviewer string ++ Verdict string // PASS, PASS_ADVISORY, NEEDS_REVISION ++ ReviewedAt time.Time ++ Findings []ShardFinding ++} ++ ++type ShardFinding struct { ++ Severity string // critical, high, medium, low ++ Classification string // blocking, advisory, follow-up ++ Path string ++ Line int ++ Title string ++ Disposition string // fixed, waived, accepted-risk, deferred-issue ++ DispositionURL string // required when Disposition is deferred-issue ++} ++``` ++ ++Medium+ shard findings block unless `Disposition` is one of `fixed`, `waived`, `accepted-risk`, or `deferred-issue` with a linked issue URL. `deferred-issue` is manifest-local; persisted finding lifecycle state remains owned by `internal/findings`. ++ ++- [ ] **Step 4: Implement manifest generation** ++ ++Build manifest from contract + changed files + evidence + shard plan. Render a Markdown table: ++ ++```markdown ++| Acceptance | Files | Evidence | Shard | Status | ++| --- | --- | --- | --- | --- | ++``` ++ ++- [ ] **Step 5: Add shard result ingestion path** ++ ++Add a deterministic local input path first: ++ ++```bash ++go run ./cmd/metareview review shard-result validate --manifest --result ++``` ++ ++This command validates result schema, shard ID, diff hash, severity/disposition policy, and cross-shard result requirements. It must also render or return the normalized manifest readiness status, so implementers cannot stop at schema validation. Agent adapters can later call it after subagent execution. ++ ++- [ ] **Step 6: Wire task-done and PR-ready** ++ ++Task-done should block on uncovered changed source files when a task contract exists. PR-ready should aggregate task manifests. ++ ++- [ ] **Step 7: Run work-unit gate** ++ ++Run: ++ ++```bash ++go test ./internal/reviewmanifest ./internal/tasksource ./internal/taskdone ./internal/prready ./internal/reviewers ++bash tests/go/test-task-source.sh ++bash tests/go/test-task-done-review.sh ++bash tests/go/test-pr-ready-review.sh ++``` ++ ++Then use the per-work-unit completion gate above. ++ ++--- ++ ++## Work Unit 5: Artifact Review Lifecycle ++ ++**Goal:** Turn artifact review from scaffold generation into an idempotent lifecycle gate. ++ ++**Files:** ++- Modify: `cmd/metareview/main.go` ++- Modify: `internal/artifactreview/review.go` ++- Create: `internal/artifactreview/lifecycle_test.go` ++- Modify: `internal/reviewlog/reviewlog.go` ++- Modify: `internal/reviewlog/reviewlog_test.go` ++- Modify: `skills/review-artifact/SKILL.md` ++- Modify: `tests/go/test-artifact-review.sh` ++ ++**Interfaces:** ++- Produces CLI subcommands: ++ - `metareview review artifact start ` ++ - `metareview review artifact record --run --reviewer --verdict --findings ` ++ - `metareview review artifact validate ` ++ - `metareview review artifact finish --run ` ++- Produces: ++ - content-hash keyed artifact run metadata ++ - durable structured JSON metadata block in review Markdown ++ ++**Changed behavior:** ++- `review artifact ` resumes/validates same target + same content hash by default. ++- A completed review cannot be shadowed by a new empty scaffold unless `--new-run` or `--scaffold-only` is explicit. ++- Markdown and `.metareview/runs.jsonl` do not drift into contradictory state. ++ ++- [ ] **Step 1: Write idempotency test** ++ ++Test sequence: ++ ++```bash ++mkdir -p docs ++printf '# Fixture spec\n' > docs/spec.md ++go run ./cmd/metareview review artifact docs/spec.md --scaffold-only ++# Populate reviewer rows to PASS. ++go run ./cmd/metareview review artifact docs/spec.md ++# Expected: validates/resumes existing review, does not create second empty scaffold. ++``` ++ ++- [ ] **Step 2: Write record/validate unit tests** ++ ++Test that five reviewer records with zero blockers produce `PASS`, and one blocking finding produces `NEEDS_REVISION`. ++ ++- [ ] **Step 3: Write lifecycle edge-case tests** ++ ++Add tests for: ++ ++```go ++func TestArtifactReviewChangedHashRequiresReReview(t *testing.T) {} ++func TestArtifactPreviousRunMustExistAndMatchTarget(t *testing.T) {} ++func TestArtifactAttemptCountsFollowPreviousRunChain(t *testing.T) {} ++func TestArtifactReconcileFixesPriorBlockers(t *testing.T) {} ++func TestArtifactPassAdvisoryAllowedOnlyWithZeroBlockers(t *testing.T) {} ++func TestLegacyArtifactReviewMigratesWithoutDroppingVerdict(t *testing.T) {} ++``` ++ ++- [ ] **Step 4: Implement content hash and latest review lookup** ++ ++Use normalized target path and artifact content hash. Store durable metadata in a fenced JSON block under `## Review Metadata` to avoid adding a YAML dependency. Legacy logs without hash remain readable but require validation. ++ ++- [ ] **Step 5: Implement lifecycle subcommands** ++ ++Update `cmd/metareview/main.go` parsing without breaking existing `review artifact ` behavior. ++ ++- [ ] **Step 6: Run work-unit gate** ++ ++Run: ++ ++```bash ++go test ./internal/artifactreview ./internal/reviewlog ++bash tests/go/test-artifact-review.sh ++``` ++ ++Then use the per-work-unit completion gate above. ++ ++--- ++ ++## Work Unit 6: GitHub Review Thread Ingestion ++ ++**Goal:** Make external PR review state first-class instead of lossy comment text. ++ ++**Files:** ++- Modify: `internal/githubcontext/githubcontext.go` ++- Modify: `internal/githubcontext/githubcontext_test.go` ++- Modify: `internal/reviewers/prready.go` ++- Modify: `internal/reviewers/prready_test.go` ++- Modify: `internal/prready/review.go` ++- Modify: `internal/reviewmanifest/manifest.go` ++- Modify: `internal/reviewmanifest/manifest_test.go` ++- Modify: `tests/go/test-github-context.sh` ++- Modify: `tests/go/test-pr-ready-review.sh` ++ ++**Interfaces:** ++- Produces: ++ - `githubcontext.Thread` ++ - `githubcontext.ThreadDisposition` ++ - GraphQL collector using `gh api graphql` ++ ++**Changed behavior:** ++- `--github-pr` collects review threads with `isResolved`, `isOutdated`, path, line, URL, author, and diff hunk when available. ++- Unresolved, non-outdated, active final-tree threads block even if text lacks `BLOCKER`. ++- Unavailable GitHub context is explicit; strict mode can require it. ++- CodeRabbit/Cursor/human severity is normalized, and Medium+ active final-tree findings block unless dispositioned. ++ ++- [ ] **Step 1: Write GraphQL fixture tests** ++ ++Fixtures: ++ ++```json ++{ ++ "data": { ++ "repository": { ++ "pullRequest": { ++ "reviewThreads": { ++ "nodes": [ ++ { ++ "id": "PRRT_1", ++ "isResolved": false, ++ "isOutdated": false, ++ "path": "internal/foo.go", ++ "line": 42, ++ "comments": { "nodes": [{ "author": { "login": "coderabbitai" }, "url": "https://example/thread", "body": "Medium: nil pointer risk" }] } ++ } ++ ] ++ } ++ } ++ } ++ } ++} ++``` ++ ++Expected: active unresolved thread becomes blocking external finding. ++ ++- [ ] **Step 2: Add severity/disposition fixture tests** ++ ++Add fixtures for CodeRabbit/Cursor/human comments with Critical, High, Medium, Low, unknown severity, resolved, outdated, and accepted-risk disposition. Expected: Medium+ active final-tree findings block; Low is advisory unless reviewer state requests changes; resolved/outdated are visible but non-blocking. ++ ++- [ ] **Step 3: Implement collector** ++ ++Keep existing `gh pr view` path for summary; add GraphQL thread collection when authenticated. ++ ++- [ ] **Step 4: Add final-tree applicability heuristic** ++ ++If `isOutdated` is true, advisory. If path is absent in final tree, stale/advisory. If anchor text or path survives, blocking or needs + + + +```` + +## Review Logs + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) + +## Knowledge And Registries + +Service inventory: none + +No service inventory found. + +Knowledge facts: + +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Run the relevant verification command and pass its output through PR-ready evidence. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. +- .beads/knowledge/metareview.jsonl: --- name: Claude long-lived tokens via setup-token description: Use `claude setup-token` for 1-year OAuth tokens instead of 8-hour ones — requires interactive TTY, cannot be automated type: feedback --- Use `claude setup-token` to generate a 1-year OAuth token for Claude Code agents. This eliminates the 8-hour token expiry that causes agents to crash with `401 OAuth token has expired`. **Why:** The default Claude OAuth flow issues tokens that expire every ~8 hours. The macOS keychain stores a +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. + +## Validation Evidence + +Verification evidence for the 0.14.1 release (version bump + CHANGELOG) +HEAD: 547463515d662a33bef23fc1568ee8250eb20c9c +- go test ./... exited 0 +- bin/metareview version = metareview 0.14.1 +- go vet ./... exited 0 + +## GitHub Context + +GitHub context unavailable: pr-number-unavailable + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, docs/presentations/metareview-first-day.html, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (version bump + CHANGELOG) (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md: PASS_ADVISORY attempt 1/3 (docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +No unresolved blockers in the recorded review evidence. + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + diff --git a/docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md b/docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md new file mode 100644 index 00000000..26b4588e --- /dev/null +++ b/docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md @@ -0,0 +1,398 @@ +# metareview pr-ready context + +Run ID: `mrv-20261001-072247855001000-pr-ready-branch-10d735e5` + +## Git + +- Base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Requested base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Head: `2c4f9414f560680f8451a2b84544452b863704a8` +- Branch: `release/0.14.1` +- Reviewer input digest: `sha256:ec70abb36dcd8749d0c537f8a950bb488a04e9e2df30592bad4c3f310060af16` +- Gate effect: `gate` + +## Context Profile + +- Raw diff bytes: `5800` +- Filtered diff bytes: `5800` +- Risk level: `none` +- Generated files excluded: docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md, docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md + +## Context Shard Plan + +Not sharded. + +## Review Manifest + +- Manifest verdict: `PASS` +- Source manifest hash: not sharded +- Runtime assessment: static-only; runtime not assessed + +### Source Paths + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- internal/version/version.go +- package.json + +### Path Dispositions + +- docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) + +### Manifest Blockers + +No manifest blockers. + +## Changed Files + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- internal/version/version.go +- package.json + +## Diff + +```diff +diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json +index 085fa35..d09185a 100644 +--- a/.claude-plugin/marketplace.json ++++ b/.claude-plugin/marketplace.json +@@ -8,7 +8,7 @@ + { + "name": "metareview", + "description": "Internal review harness, adversarial gates, and post-merge learning for coding agents", +- "version": "0.14.0", ++ "version": "0.14.1", + "source": "./", + "author": { + "name": "David Sifry" +diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json +index 248e9e6..c287ffe 100644 +--- a/.claude-plugin/plugin.json ++++ b/.claude-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning. Packaged releases use bin/metareview; source checkout mode requires Go 1.26+, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json +index ca39762..b0590c4 100644 +--- a/.codex-plugin/plugin.json ++++ b/.codex-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/CHANGELOG.md b/CHANGELOG.md +index a9c2b39..ac0e346 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -1,5 +1,47 @@ + # Changelog + ++## 0.14.1 - 2026-10-01 ++ ++### Fixed ++ ++- **The `claude-cli/*` judge runs without the user's hooks, and rejects a turn continued past its ++ verdict.** The codex arm already ran with the user's hooks and plugins off (#193), but the claude ++ arm still loaded the user's settings, so a Stop hook could speak in the judge's session and the ++ recorded verdict could answer the hook instead of the finding. It now passes ++ `--settings '{"disableAllHooks":true}'` (`--bare` would skip the keychain and with it the OAuth ++ session this transport exists to use), and a turn that continues past the verdict is retried and ++ then failed closed — the `--output-format json` envelope exposes only the final result, so the ++ reported turn count (`num_turns`) is the continuation signature. Reported in #193 (bead `mr-bq4`). ++- **Freeform evidence recognizes the tool-failure shapes it was missing.** A text with a success ++ phrase and any failure shape the reader did not enumerate read as *passing* — pytest `no tests ran` ++ (exit 5), `make: *** No rule to make target`, Go `panic:` / `WARNING: DATA RACE`, a shell's ++ `command not found` / `Permission denied` / `Aborted` / `Killed`, `N offenses detected`, and more. ++ The reader now matches a second, **line-anchored** set of shapes: each must start the line in a ++ fixed tool format, with a fixed token before the phrase where the phrase could otherwise appear in ++ prose, so prose that merely names a phrase never reads as a failure. A shape that cannot be pinned ++ that tightly is deliberately not a pattern — prefer an evidence receipt. Tracked as bead `mr-b08`. ++- **`pr-ready` clears a committed review log only when the ledger vouches for every ID under its ++ `## Blocking Findings` section.** The gate used a lenient reading that skipped finding IDs the ++ ledger did not know, so resolving the IDs a local ledger happened to hold retired a log that also ++ listed a blocker nobody's ledger ever held — while `status` still reported it blocking. The gate ++ now uses a strict, blocker-only predicate (an unknown blocking ID is unvouched; the run's ++ `BlockingFindingCount` is the tripwire against a pruned or unknown blocker), and is deliberately ++ **not** strict about the advisory or quoted IDs that would otherwise pin a log unresolved forever. ++ Tracked as bead `mr-ik7`. ++- **The Stop hook breaks its own refusal loop instead of trusting the host's `stop_hook_active`.** ++ Codex reports that flag `false` during hook-driven continuations, so a session blocked on ++ something it could not clear was refused on every turn — a hang, which teaches operators to remove ++ the hook. The hook now counts consecutive refusals per session — a small limit on the *same* ++ blocker set, and a larger session-wide cap for a set that keeps changing — and stands down loudly ++ at either, exactly as the host-driven second pass does, clearing the record on a pass or a ++ stand-down. Its state lives in a private, ownership-checked cache directory and is best-effort: it ++ fails toward blocking, never toward a silent pass. Tracked as bead `mr-j30`. ++ ++### Changed ++ ++- `.pi/` (pi subagent scratch) is gitignored, and the `.claude/settings.json` review-gate note names ++ the post-#173 user-level hook directory rather than the old per-checkout path. ++ + ## 0.14.0 - 2026-09-30 + + ### Added +diff --git a/internal/version/version.go b/internal/version/version.go +index 14be476..6fd4964 100644 +--- a/internal/version/version.go ++++ b/internal/version/version.go +@@ -1,3 +1,3 @@ + package version + +-const Version = "0.14.0" ++const Version = "0.14.1" +diff --git a/package.json b/package.json +index 1d701d6..0f79461 100644 +--- a/package.json ++++ b/package.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, code, acceptance evidence, PR readiness, and post-merge learning", + "bin": { + "metareview": "cli/metareview.js" + + + +``` + +## Review Logs + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) +- release/0.14.1: NEEDS_REVISION () +- release/0.14.1: NEEDS_REVISION () + +## Knowledge And Registries + +Service inventory: none + +No service inventory found. + +Knowledge facts: + +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Run the relevant verification command and pass its output through PR-ready evidence. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. +- .beads/knowledge/metareview.jsonl: --- name: Claude long-lived tokens via setup-token description: Use `claude setup-token` for 1-year OAuth tokens instead of 8-hour ones — requires interactive TTY, cannot be automated type: feedback --- Use `claude setup-token` to generate a 1-year OAuth token for Claude Code agents. This eliminates the 8-hour token expiry that causes agents to crash with `401 OAuth token has expired`. **Why:** The default Claude OAuth flow issues tokens that expire every ~8 hours. The macOS keychain stores a +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. + +## Validation Evidence + +Verification evidence for the 0.14.1 release +HEAD: 2c4f9414f560680f8451a2b84544452b863704a8 +- go test ./... exited 0 +- bin/metareview version = metareview 0.14.1 +- go vet ./... exited 0 + +## GitHub Context + +GitHub context unavailable: pr-number-unavailable + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001 +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002 + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review [open] +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk [open] + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + diff --git a/docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md b/docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md new file mode 100644 index 00000000..744829df --- /dev/null +++ b/docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md @@ -0,0 +1,399 @@ +# metareview pr-ready context + +Run ID: `mrv-20261001-072259526163000-pr-ready-branch-10d735e5` + +## Git + +- Base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Requested base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Head: `2c4f9414f560680f8451a2b84544452b863704a8` +- Branch: `release/0.14.1` +- Reviewer input digest: `sha256:248520007eddd7145f0cb55a7213ff8810fbb1570fc91e7a3b24ad7312d7ccd5` +- Gate effect: `gate` + +## Context Profile + +- Raw diff bytes: `5800` +- Filtered diff bytes: `5800` +- Risk level: `none` +- Generated files excluded: docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md, docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md + +## Context Shard Plan + +Not sharded. + +## Review Manifest + +- Manifest verdict: `PASS` +- Source manifest hash: not sharded +- Runtime assessment: static-only; runtime not assessed + +### Source Paths + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- internal/version/version.go +- package.json + +### Path Dispositions + +- docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) + +### Manifest Blockers + +No manifest blockers. + +## Changed Files + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- internal/version/version.go +- package.json + +## Diff + +```diff +diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json +index 085fa35..d09185a 100644 +--- a/.claude-plugin/marketplace.json ++++ b/.claude-plugin/marketplace.json +@@ -8,7 +8,7 @@ + { + "name": "metareview", + "description": "Internal review harness, adversarial gates, and post-merge learning for coding agents", +- "version": "0.14.0", ++ "version": "0.14.1", + "source": "./", + "author": { + "name": "David Sifry" +diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json +index 248e9e6..c287ffe 100644 +--- a/.claude-plugin/plugin.json ++++ b/.claude-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning. Packaged releases use bin/metareview; source checkout mode requires Go 1.26+, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json +index ca39762..b0590c4 100644 +--- a/.codex-plugin/plugin.json ++++ b/.codex-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/CHANGELOG.md b/CHANGELOG.md +index a9c2b39..ac0e346 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -1,5 +1,47 @@ + # Changelog + ++## 0.14.1 - 2026-10-01 ++ ++### Fixed ++ ++- **The `claude-cli/*` judge runs without the user's hooks, and rejects a turn continued past its ++ verdict.** The codex arm already ran with the user's hooks and plugins off (#193), but the claude ++ arm still loaded the user's settings, so a Stop hook could speak in the judge's session and the ++ recorded verdict could answer the hook instead of the finding. It now passes ++ `--settings '{"disableAllHooks":true}'` (`--bare` would skip the keychain and with it the OAuth ++ session this transport exists to use), and a turn that continues past the verdict is retried and ++ then failed closed — the `--output-format json` envelope exposes only the final result, so the ++ reported turn count (`num_turns`) is the continuation signature. Reported in #193 (bead `mr-bq4`). ++- **Freeform evidence recognizes the tool-failure shapes it was missing.** A text with a success ++ phrase and any failure shape the reader did not enumerate read as *passing* — pytest `no tests ran` ++ (exit 5), `make: *** No rule to make target`, Go `panic:` / `WARNING: DATA RACE`, a shell's ++ `command not found` / `Permission denied` / `Aborted` / `Killed`, `N offenses detected`, and more. ++ The reader now matches a second, **line-anchored** set of shapes: each must start the line in a ++ fixed tool format, with a fixed token before the phrase where the phrase could otherwise appear in ++ prose, so prose that merely names a phrase never reads as a failure. A shape that cannot be pinned ++ that tightly is deliberately not a pattern — prefer an evidence receipt. Tracked as bead `mr-b08`. ++- **`pr-ready` clears a committed review log only when the ledger vouches for every ID under its ++ `## Blocking Findings` section.** The gate used a lenient reading that skipped finding IDs the ++ ledger did not know, so resolving the IDs a local ledger happened to hold retired a log that also ++ listed a blocker nobody's ledger ever held — while `status` still reported it blocking. The gate ++ now uses a strict, blocker-only predicate (an unknown blocking ID is unvouched; the run's ++ `BlockingFindingCount` is the tripwire against a pruned or unknown blocker), and is deliberately ++ **not** strict about the advisory or quoted IDs that would otherwise pin a log unresolved forever. ++ Tracked as bead `mr-ik7`. ++- **The Stop hook breaks its own refusal loop instead of trusting the host's `stop_hook_active`.** ++ Codex reports that flag `false` during hook-driven continuations, so a session blocked on ++ something it could not clear was refused on every turn — a hang, which teaches operators to remove ++ the hook. The hook now counts consecutive refusals per session — a small limit on the *same* ++ blocker set, and a larger session-wide cap for a set that keeps changing — and stands down loudly ++ at either, exactly as the host-driven second pass does, clearing the record on a pass or a ++ stand-down. Its state lives in a private, ownership-checked cache directory and is best-effort: it ++ fails toward blocking, never toward a silent pass. Tracked as bead `mr-j30`. ++ ++### Changed ++ ++- `.pi/` (pi subagent scratch) is gitignored, and the `.claude/settings.json` review-gate note names ++ the post-#173 user-level hook directory rather than the old per-checkout path. ++ + ## 0.14.0 - 2026-09-30 + + ### Added +diff --git a/internal/version/version.go b/internal/version/version.go +index 14be476..6fd4964 100644 +--- a/internal/version/version.go ++++ b/internal/version/version.go +@@ -1,3 +1,3 @@ + package version + +-const Version = "0.14.0" ++const Version = "0.14.1" +diff --git a/package.json b/package.json +index 1d701d6..0f79461 100644 +--- a/package.json ++++ b/package.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, code, acceptance evidence, PR readiness, and post-merge learning", + "bin": { + "metareview": "cli/metareview.js" + + + +``` + +## Review Logs + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) +- release/0.14.1: NEEDS_REVISION () +- release/0.14.1: NEEDS_REVISION () + +## Knowledge And Registries + +Service inventory: none + +No service inventory found. + +Knowledge facts: + +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Run the relevant verification command and pass its output through PR-ready evidence. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. +- .beads/knowledge/metareview.jsonl: --- name: Claude long-lived tokens via setup-token description: Use `claude setup-token` for 1-year OAuth tokens instead of 8-hour ones — requires interactive TTY, cannot be automated type: feedback --- Use `claude setup-token` to generate a 1-year OAuth token for Claude Code agents. This eliminates the 8-hour token expiry that causes agents to crash with `401 OAuth token has expired`. **Why:** The default Claude OAuth flow issues tokens that expire every ~8 hours. The macOS keychain stores a +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. + +## Validation Evidence + +Verification evidence for the 0.14.1 release (re-run after cleaning the tree) +HEAD: 2c4f9414f560680f8451a2b84544452b863704a8 +- go test ./... exited 0 +- bin/metareview version = metareview 0.14.1 + +## GitHub Context + +GitHub context unavailable: pr-number-unavailable + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (re-run after cleaning the tree) (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001 +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002 + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review [open] +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk [open] + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + diff --git a/docs/metareview/context/mrv-20261001-072801661160000-pr-ready-branch-10d735e5-context.md b/docs/metareview/context/mrv-20261001-072801661160000-pr-ready-branch-10d735e5-context.md new file mode 100644 index 00000000..ea9472ba --- /dev/null +++ b/docs/metareview/context/mrv-20261001-072801661160000-pr-ready-branch-10d735e5-context.md @@ -0,0 +1,396 @@ +# metareview pr-ready context + +Run ID: `mrv-20261001-072801661160000-pr-ready-branch-10d735e5` + +## Git + +- Base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Requested base: `c73a1ba6d84733c05c771e424a5f2de86ce7fb1f` +- Head: `2c4f9414f560680f8451a2b84544452b863704a8` +- Branch: `release/0.14.1` +- Reviewer input digest: `sha256:bfcff7698398c4c5f90d8c3e49e6140e3f942ed07ad585a8d91e7719430f8df7` +- Gate effect: `gate` + +## Context Profile + +- Raw diff bytes: `5800` +- Filtered diff bytes: `5800` +- Risk level: `none` +- Generated files excluded: docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md, docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md, docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md, docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md, docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md, docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md, docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md, docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md, docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md, docs/metareview/reviews/mrv-20261001-072259526163000-pr-ready-branch-10d735e5.md + +## Context Shard Plan + +Not sharded. + +## Review Manifest + +- Manifest verdict: `PASS` +- Source manifest hash: not sharded +- Runtime assessment: static-only; runtime not assessed + +### Source Paths + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- internal/version/version.go +- package.json + +### Path Dispositions + +- docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) +- docs/metareview/reviews/mrv-20261001-072259526163000-pr-ready-branch-10d735e5.md: generated (metareview generated review artifact excluded from source manifest) + +### Manifest Blockers + +No manifest blockers. + +## Changed Files + +- .claude-plugin/marketplace.json +- .claude-plugin/plugin.json +- .codex-plugin/plugin.json +- CHANGELOG.md +- internal/version/version.go +- package.json + +## Diff + +```diff +diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json +index 085fa35..d09185a 100644 +--- a/.claude-plugin/marketplace.json ++++ b/.claude-plugin/marketplace.json +@@ -8,7 +8,7 @@ + { + "name": "metareview", + "description": "Internal review harness, adversarial gates, and post-merge learning for coding agents", +- "version": "0.14.0", ++ "version": "0.14.1", + "source": "./", + "author": { + "name": "David Sifry" +diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json +index 248e9e6..c287ffe 100644 +--- a/.claude-plugin/plugin.json ++++ b/.claude-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning. Packaged releases use bin/metareview; source checkout mode requires Go 1.26+, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json +index ca39762..b0590c4 100644 +--- a/.codex-plugin/plugin.json ++++ b/.codex-plugin/plugin.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning, plus FSM workflow runs (metareview fsm).", + "author": { + "name": "David Sifry" +diff --git a/CHANGELOG.md b/CHANGELOG.md +index a9c2b39..ac0e346 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -1,5 +1,47 @@ + # Changelog + ++## 0.14.1 - 2026-10-01 ++ ++### Fixed ++ ++- **The `claude-cli/*` judge runs without the user's hooks, and rejects a turn continued past its ++ verdict.** The codex arm already ran with the user's hooks and plugins off (#193), but the claude ++ arm still loaded the user's settings, so a Stop hook could speak in the judge's session and the ++ recorded verdict could answer the hook instead of the finding. It now passes ++ `--settings '{"disableAllHooks":true}'` (`--bare` would skip the keychain and with it the OAuth ++ session this transport exists to use), and a turn that continues past the verdict is retried and ++ then failed closed — the `--output-format json` envelope exposes only the final result, so the ++ reported turn count (`num_turns`) is the continuation signature. Reported in #193 (bead `mr-bq4`). ++- **Freeform evidence recognizes the tool-failure shapes it was missing.** A text with a success ++ phrase and any failure shape the reader did not enumerate read as *passing* — pytest `no tests ran` ++ (exit 5), `make: *** No rule to make target`, Go `panic:` / `WARNING: DATA RACE`, a shell's ++ `command not found` / `Permission denied` / `Aborted` / `Killed`, `N offenses detected`, and more. ++ The reader now matches a second, **line-anchored** set of shapes: each must start the line in a ++ fixed tool format, with a fixed token before the phrase where the phrase could otherwise appear in ++ prose, so prose that merely names a phrase never reads as a failure. A shape that cannot be pinned ++ that tightly is deliberately not a pattern — prefer an evidence receipt. Tracked as bead `mr-b08`. ++- **`pr-ready` clears a committed review log only when the ledger vouches for every ID under its ++ `## Blocking Findings` section.** The gate used a lenient reading that skipped finding IDs the ++ ledger did not know, so resolving the IDs a local ledger happened to hold retired a log that also ++ listed a blocker nobody's ledger ever held — while `status` still reported it blocking. The gate ++ now uses a strict, blocker-only predicate (an unknown blocking ID is unvouched; the run's ++ `BlockingFindingCount` is the tripwire against a pruned or unknown blocker), and is deliberately ++ **not** strict about the advisory or quoted IDs that would otherwise pin a log unresolved forever. ++ Tracked as bead `mr-ik7`. ++- **The Stop hook breaks its own refusal loop instead of trusting the host's `stop_hook_active`.** ++ Codex reports that flag `false` during hook-driven continuations, so a session blocked on ++ something it could not clear was refused on every turn — a hang, which teaches operators to remove ++ the hook. The hook now counts consecutive refusals per session — a small limit on the *same* ++ blocker set, and a larger session-wide cap for a set that keeps changing — and stands down loudly ++ at either, exactly as the host-driven second pass does, clearing the record on a pass or a ++ stand-down. Its state lives in a private, ownership-checked cache directory and is best-effort: it ++ fails toward blocking, never toward a silent pass. Tracked as bead `mr-j30`. ++ ++### Changed ++ ++- `.pi/` (pi subagent scratch) is gitignored, and the `.claude/settings.json` review-gate note names ++ the post-#173 user-level hook directory rather than the old per-checkout path. ++ + ## 0.14.0 - 2026-09-30 + + ### Added +diff --git a/internal/version/version.go b/internal/version/version.go +index 14be476..6fd4964 100644 +--- a/internal/version/version.go ++++ b/internal/version/version.go +@@ -1,3 +1,3 @@ + package version + +-const Version = "0.14.0" ++const Version = "0.14.1" +diff --git a/package.json b/package.json +index 1d701d6..0f79461 100644 +--- a/package.json ++++ b/package.json +@@ -1,6 +1,6 @@ + { + "name": "metareview", +- "version": "0.14.0", ++ "version": "0.14.1", + "description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, code, acceptance evidence, PR readiness, and post-merge learning", + "bin": { + "metareview": "cli/metareview.js" + + + +``` + +## Review Logs + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) + +## Knowledge And Registries + +Service inventory: none + +No service inventory found. + +Knowledge facts: + +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Run the relevant verification command and pass its output through PR-ready evidence. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. +- .beads/knowledge/metareview.jsonl: --- name: Claude long-lived tokens via setup-token description: Use `claude setup-token` for 1-year OAuth tokens instead of 8-hour ones — requires interactive TTY, cannot be automated type: feedback --- Use `claude setup-token` to generate a 1-year OAuth token for Claude Code agents. This eliminates the 8-hour token expiry that causes agents to crash with `401 OAuth token has expired`. **Why:** The default Claude OAuth flow issues tokens that expire every ~8 hours. The macOS keychain stores a +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. +- .beads/knowledge/metareview.jsonl: Capture review-driven fix: Split the task, use the generated shard plan, or rerun the review with complete context. + +## Validation Evidence + +Verification evidence for the 0.14.1 release (after granting the stale-finding overrides) +HEAD: 2c4f9414f560680f8451a2b84544452b863704a8 +- go test ./... exited 0 +- bin/metareview version = metareview 0.14.1 + +## GitHub Context + +GitHub context unavailable: pr-number-unavailable + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (after granting the stale-finding overrides) (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +No unresolved blockers in the recorded review evidence. + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + diff --git a/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/audit.redacted.jsonl b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/audit.redacted.jsonl new file mode 100644 index 00000000..6ffe86b0 --- /dev/null +++ b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/audit.redacted.jsonl @@ -0,0 +1,15 @@ +{"at":"2026-10-01T07:21:47.443134Z","data":{"allowed_cmds":[],"base_sha":"c73a1ba6d84733c05c771e424a5f2de86ce7fb1f","branch":"release/0.14.1","calibration":false,"created_at":"2026-10-01T07:21:47.443134Z","exported":true,"goldens":[],"head":"2c4f9414f560680f8451a2b84544452b863704a8","initial_kind":"review-lenses","initial_state":"discover","lineage":[],"repo_mode":"advisory","repo_root":".","requested_base":"c73a1ba6d84733c05c771e424a5f2de86ce7fb1f","run_id":"mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e","vars":{"JUDGE":"sha256:0f217e960900a6842e77af0f183a1a7af0717737ad2ca70f9bc008e530a50a8a","JUDGE_EFFORT":"sha256:c082456a7766e23a18db084cd34b6ff510baef506548b897cc80e9b7d3e121c8","REVIEWER":"sha256:f9ef6eedd766691f041bc3387784d8ddf620e282f9997a00e4d54059e1f12f59","REV_EFFORT":"sha256:6c1ff09db3a73dc4a854f695d20d174a848d55f2d743bab2ee1f8fc75be454f3"},"work_dir":".","workflow":"review-loop","workflow_hash":"ec971a725ddb5da96e1c88b013e72653777ecab9c4112ead5dbe0505e7d5fb23","workflow_source":"embedded","writer":"0.14.1"},"iter":0,"prev":"","redacted":["exported","vars","repo_root","work_dir"],"schemaVersion":1,"seq":1,"type":"init"} +{"at":"2026-10-01T07:21:47.474633Z","data":{"head":"2c4f9414f560680f8451a2b84544452b863704a8","status":["docs/metareview/FINDINGS.md","docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md","docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md","docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md","docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md","docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md","docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md"],"tree_hash":"8c039a3693ba0bfe110a2c35b3b06f65a514defaa78d4788bf4f8c21495c8618"},"iter":0,"prev":"c6e59fc062d569b6a96e66298fa485289e8e8382dbd8c85646ea47421b878001","redacted":["status"],"schemaVersion":1,"seq":2,"state":"discover","type":"tree"} +{"schemaVersion":1,"seq":3,"prev":"61ebdb52f41131b8f2b9291c8d1eb85e6217386d3c95074d527b733ffc84295e","at":"2026-10-01T07:21:47.82038Z","type":"needs_input","state":"discover","iter":0,"node":"discover","data":{"head":"2c4f9414f560680f8451a2b84544452b863704a8"}} +{"schemaVersion":1,"seq":4,"prev":"18d19012f22819287e2a3a8b3222c23cc0c543067eca4c0ce593bfc0a17ecf5e","at":"2026-10-01T07:22:34.534214Z","type":"node_output","state":"discover","iter":0,"node":"discover","data":{"output":{"findings":[{"tag":"advisory","file":"CHANGELOG.md","start_line":22,"end_line":38,"issue":"Three 0.14.1 Fixed items close with Tracked as bead mr-XXX with no issue/PR number, while the sibling and every prior entry use Reported in #N.","consequence":"Internal style inconsistency; no issue cross-reference for three fixes.","confidence":78,"severity":"P3"}]}}} +{"at":"2026-10-01T07:22:34.858835Z","data":{"code":"UNSANCTIONED_EDIT","detail":""},"iter":0,"prev":"aa89d21c95c4866ad9f663e64714ba03d3a7152846703e2af471e645b712b3cd","redacted":["detail"],"schemaVersion":1,"seq":5,"state":"discover","type":"warn"} +{"at":"2026-10-01T07:22:34.867234Z","data":{"head":"2c4f9414f560680f8451a2b84544452b863704a8","status":["docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md","docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md","docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md","docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md","docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md","docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md"],"tree_hash":"9837da38bc8b4704d60e513023ab02cd1d6f8d5bf2179e3f56e3d327533bc195"},"iter":0,"prev":"785751982677dd1c76ed187a281b1ee47cbd67f70ee1fe7970eebeea4da7d196","redacted":["status"],"schemaVersion":1,"seq":6,"state":"discover","type":"tree"} +{"schemaVersion":1,"seq":7,"prev":"7ab970d4575fe9113a1d6addac1b914c1d519e44a56a19e5feaf5eb9b6a579a6","at":"2026-10-01T07:22:34.97378Z","type":"delta_applied","state":"discover","iter":0,"node":"discover","data":{"findings":[{"issue_text":"[ADVISORY] Three 0.14.1 Fixed items close with Tracked as bead mr-XXX with no issue/PR number, while the sibling and every prior entry use Reported in #N. Internal style inconsistency; no issue cross-reference for three fixes.","file":"CHANGELOG.md","line":22,"severity":"p3","category":"advisory","source":"lens"}],"output_hash":"8cc3889abbeafca1c0d72e2a02992eb30bb2944ca905db59c2de095bd41129d0"}} +{"at":"2026-10-01T07:22:34.978237Z","data":{"error":{"code":"ERR_FINDINGS_PRESENT","detail":"","gate":"findings_empty"},"name":"findings_empty","passed":false},"iter":0,"prev":"28ccfb11daed4c2c3460a5b829b92c602669d64c2a8195b63471b4963adc4026","redacted":["error.detail"],"schemaVersion":1,"seq":8,"state":"discover","type":"gate"} +{"schemaVersion":1,"seq":9,"prev":"6db5e89a9f041d259b55ecea0449e5b2308833ba75c602c15dea744d77bb5e30","at":"2026-10-01T07:22:34.982162Z","type":"gate","state":"discover","iter":0,"data":{"name":"findings_nonempty","passed":true}} +{"schemaVersion":1,"seq":10,"prev":"ffbafa8c1f7e7fc0da39c448130e48550fbe6c43d7bf528354bea310d65664ed","at":"2026-10-01T07:22:34.985188Z","type":"transition","state":"discover","iter":0,"data":{"from":"discover","to":"adjudicate","gate":"findings_nonempty","to_kind":"match-then-adjudicate","head":"2c4f9414f560680f8451a2b84544452b863704a8"}} +{"schemaVersion":1,"seq":11,"prev":"882899e5cf0e2d1cdb4318a503f4e40184f0c9513f02faf938bada49d6232ebc","at":"2026-10-01T07:22:42.347369Z","type":"llm_call","state":"adjudicate","iter":0,"node":"adjudicate","data":{"kind":"adjudicate","model":"codex/gpt-5.6-sol","effort":"medium","index":0,"input_hash":"cbb5ed12ab9e4936a94f7ea7352cce2443be62f0c2258af657065a01c767951b","verdict":{"reasoning":"The diff does use bead references for three entries and an issue reference for one, but the proposed finding identifies only an internal documentation-style preference. It provides no evidence that every changelog item must have an issue or PR number, and bead IDs are still traceability references. The claim that every prior entry uses “Reported in #N” is also unsupported by the shown context. This is not a merge-blocking defect.","is_real":false,"confidence":0.99},"confidence":0.99,"tokens":{"input":18819,"cache_read":0,"cache_create":0,"output":103,"reasoning":0},"duration_ms":7022}} +{"schemaVersion":1,"seq":12,"prev":"f45aaf83c9c27389d055726a466417f3e3965f51133d1a6713e31af06e9164ca","at":"2026-10-01T07:22:42.354896Z","type":"node_output","state":"adjudicate","iter":0,"node":"adjudicate","data":{"output":{"confirmed":[],"rejected":[{"id":"3fe5c2ca6045","desc":"[ADVISORY] Three 0.14.1 Fixed items close with Tracked as bead mr-XXX with no issue/PR number, while the sibling and every prior entry use Reported in #N. Internal style inconsistency; no issue cross-reference for three fixes.","file":"CHANGELOG.md","line":22,"verdict":"hallucination","confidence":0.99}]}}} +{"schemaVersion":1,"seq":13,"prev":"e1a0868e5c227a792196bd62016408423ff5026c2749fdf13a7b0c7ca98ae35c","at":"2026-10-01T07:22:42.372435Z","type":"delta_applied","state":"adjudicate","iter":0,"node":"adjudicate","data":{"output_hash":"ad209503e843cfef5a16a4e4e2bc5e47b0d9fce24e68da31dad73fea920c7946"}} +{"schemaVersion":1,"seq":14,"prev":"4ad8210a916fbba57198484fd0c019c0041532be5920c542a9a2d63b3948c764","at":"2026-10-01T07:22:42.379528Z","type":"gate","state":"adjudicate","iter":0,"data":{"name":"confirmed_empty","passed":true}} +{"schemaVersion":1,"seq":15,"prev":"c380bdaedcca0fb82c0c18a2401604a0e10cc5d2de1c64c9021214b7bbbd380e","at":"2026-10-01T07:22:42.385479Z","type":"transition","state":"adjudicate","iter":0,"data":{"from":"adjudicate","to":"done","gate":"confirmed_empty","outcome":"clean","head":"2c4f9414f560680f8451a2b84544452b863704a8"}} diff --git a/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/manifest.json b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/manifest.json new file mode 100644 index 00000000..36a027e2 --- /dev/null +++ b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/manifest.json @@ -0,0 +1 @@ +{"schema_version":1,"run_id":"mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e","workflow":"review-loop","workflow_hash":"ec971a725ddb5da96e1c88b013e72653777ecab9c4112ead5dbe0505e7d5fb23","workflow_source":"embedded","exported_at":"2026-10-01T07:28:06.896431Z","source_head":"2c4f9414f560680f8451a2b84544452b863704a8","chain_head":"65fa7b20422324606bf1297d289fb8c3aeff8422dda10a6538f29d743e0bae3f","include_vars":false,"events":15,"redacted":[1,2,5,6,8],"records":[],"sidecars":["workflow.yaml"],"torn_files":[],"origin_checks":[],"bytes":25059,"chain":"redacted"} diff --git a/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/snapshot.json b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/snapshot.json new file mode 100644 index 00000000..a9c0ba55 --- /dev/null +++ b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/snapshot.json @@ -0,0 +1 @@ +{"all_found":[],"allowed_cmds":[],"applied":{"adjudicate@0":true,"discover@0":true},"base_sha":"c73a1ba6d84733c05c771e424a5f2de86ce7fb1f","calibration":false,"confirmed":[],"created_at":"2026-10-01T07:21:47.443134Z","findings":[{"category":"advisory","file":"CHANGELOG.md","issue_text":"[ADVISORY] Three 0.14.1 Fixed items close with Tracked as bead mr-XXX with no issue/PR number, while the sibling and every prior entry use Reported in #N. Internal style inconsistency; no issue cross-reference for three fixes.","line":22,"severity":"p3","source":"lens"}],"goldens":[],"head":"2c4f9414f560680f8451a2b84544452b863704a8","iteration":0,"lineage":[],"mock_tainted":false,"node_outputs":{"adjudicate@0":{"confirmed":[],"rejected":[{"confidence":0.99,"desc":"[ADVISORY] Three 0.14.1 Fixed items close with Tracked as bead mr-XXX with no issue/PR number, while the sibling and every prior entry use Reported in #N. Internal style inconsistency; no issue cross-reference for three fixes.","file":"CHANGELOG.md","id":"3fe5c2ca6045","line":22,"verdict":"hallucination"}]},"discover@0":{"findings":[{"confidence":78,"consequence":"Internal style inconsistency; no issue cross-reference for three fixes.","end_line":38,"file":"CHANGELOG.md","issue":"Three 0.14.1 Fixed items close with Tracked as bead mr-XXX with no issue/PR number, while the sibling and every prior entry use Reported in #N.","severity":"P3","start_line":22,"tag":"advisory"}]}},"nodes_run":["discover","adjudicate"],"outcome":"clean","overflow_handled":false,"prev_unfixed":null,"redacted":true,"repo_mode":"advisory","repo_root":".","run_id":"mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e","schemaVersion":1,"seq":15,"state":"done","status":[],"tokens":{"cache_create":0,"cache_read":0,"input":18819,"output":103,"reasoning":0},"tree_hash":"9837da38bc8b4704d60e513023ab02cd1d6f8d5bf2179e3f56e3d327533bc195","tree_status":["docs/metareview/context/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8-context.md","docs/metareview/context/mrv-20260529-033557589618000-pr-ready-branch-10d735e5-context.md","docs/metareview/context/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8-context.md","docs/metareview/context/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4-context.md","docs/metareview/context/mrv-20260815-065251370442000-pr-ready-branch-10d735e5-context.md","docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md","docs/metareview/reviews/mrv-20260529-025324523756000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-025714176590000-artifact-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md","docs/metareview/reviews/mrv-20260529-033557589618000-pr-ready-branch-10d735e5.md","docs/metareview/reviews/mrv-20260529-034555173358000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-035504633353000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-040503291726000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-040944020335000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-041414954774000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-041820843600000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-042337679587000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-042747403003000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-043454487917000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-044009448370000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-044556751547000-artifact-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md","docs/metareview/reviews/mrv-20260704-230106065809000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260704-230524585125000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md","docs/metareview/reviews/mrv-20260815-065251370442000-pr-ready-branch-10d735e5.md","docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md"],"unfixed":0,"vars":{"JUDGE":"sha256:0f217e960900a6842e77af0f183a1a7af0717737ad2ca70f9bc008e530a50a8a","JUDGE_EFFORT":"sha256:c082456a7766e23a18db084cd34b6ff510baef506548b897cc80e9b7d3e121c8","REVIEWER":"sha256:f9ef6eedd766691f041bc3387784d8ddf620e282f9997a00e4d54059e1f12f59","REV_EFFORT":"sha256:6c1ff09db3a73dc4a854f695d20d174a848d55f2d743bab2ee1f8fc75be454f3"},"warnings":["UNSANCTIONED_EDIT"],"work_dir":".","workflow":"review-loop","workflow_hash":"ec971a725ddb5da96e1c88b013e72653777ecab9c4112ead5dbe0505e7d5fb23","workflow_source":"embedded"} diff --git a/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/workflow.yaml b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/workflow.yaml new file mode 100644 index 00000000..f661642b --- /dev/null +++ b/docs/metareview/fsm/mrv-20261001-072147443134000-fsm-review-loop-review-loop-0a2c955e/workflow.yaml @@ -0,0 +1,17 @@ +workflow: review-loop +version: 1 +vars: + REVIEWER: {default: claude-opus-5} + JUDGE: {required: true} + REV_EFFORT: {default: low} + JUDGE_EFFORT: {required: true} # Pareto-selected with JUDGE (spec §17); pinned to medium under --calibration +states: [discover, adjudicate, done, failed] +transitions: + - {from: discover, to: done, gate: findings_empty, outcome: clean} + - {from: discover, to: adjudicate, gate: findings_nonempty} + - {from: adjudicate, to: done, gate: confirmed_empty, outcome: clean} + - {from: adjudicate, to: done, gate: confirmed_nonempty, outcome: reviewed} +nodes: + discover: {kind: review-lenses, exec: subagent, model: $REVIEWER, effort: $REV_EFFORT} + adjudicate: {kind: match-then-adjudicate, exec: fork, model: $JUDGE, effort: $JUDGE_EFFORT} +repo_mode: advisory diff --git a/docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md b/docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md new file mode 100644 index 00000000..cd520507 --- /dev/null +++ b/docs/metareview/reviews/mrv-20261001-072124444094000-pr-ready-branch-10d735e5.md @@ -0,0 +1,165 @@ +# metareview: pr-ready review + +Run ID: `mrv-20261001-072124444094000-pr-ready-branch-10d735e5` + +Target: `current branch` + +Context pack: `docs/metareview/context/mrv-20261001-072124444094000-pr-ready-branch-10d735e5-context.md` + +Execution mode: `deterministic-local` + +Gate effect: `gate` + +Previous run: `none` + +Attempt: `1/3` + +Reviewer input digest: `sha256:6c4d065afce321da74816ee8b8ec0c13fba163367f476f076b5514f6b505e734` + +Covered paths: `[".claude-plugin/marketplace.json",".claude-plugin/plugin.json",".codex-plugin/plugin.json","CHANGELOG.md","docs/presentations/metareview-first-day.html","docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md","internal/version/version.go","package.json"]` + +## Verdict + +NEEDS_REVISION + +## Reviewer Results + +| Reviewer | Verdict | Blocking | Notes | +| --- | --- | ---: | --- | +| pr-readiness-reviewer | NEEDS_REVISION | 1 | Working tree changes excluded from PR-ready review | +| validation-reviewer | PASS | 0 | No blocking findings. | +| security-reviewer | PASS | 0 | No blocking findings. | +| code-quality-reviewer | PASS | 0 | No blocking findings. | +| architecture-reviewer | NEEDS_REVISION | 1 | Review context risk | +| external-reviewer | PASS | 0 | No blocking findings. | + +## Blocking Findings + +### mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review + +- Reviewer: pr-readiness-reviewer +- Severity: high +- Classification: blocking +- Finding: PR-ready reviews the committed branch diff by default, but non-generated staged, unstaged, or untracked files are present. +- Expected: PR-ready runs on a clean working tree, or the caller explicitly opts into reviewing local dirt with --include-working-tree. +- Found: Dirty files: docs/presentations/metareview-first-day.html, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +- Recommendation: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. + +### mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk + +- Reviewer: architecture-reviewer +- Severity: high +- Classification: blocking +- Finding: The reviewer did not receive complete or bounded source context, so task closure cannot be trusted. +- Expected: Large or incomplete review contexts are split, sharded, or rerun with complete source context before task closure. +- Found: Reasons: DIFF_TRUNCATED, LARGE_DIFF; Raw diff bytes: 579554, filtered diff bytes: 128292; Manifest verdict: NEEDS_REVISION; shards covered: 0 of 5; no shard review results were ingested; manifest blockers: missing cross-shard result; missing shard result for shard-0; missing shard result for shard-0-2; missing shard result for shard-0-3; missing shard result for shard-1; missing shard result for shard-3 +- Recommendation: Split the task, use the generated shard plan, or rerun the review with complete context. + + +## Advisory Findings + +No findings in this class. + + +## Follow-up Findings + +No findings in this class. + + +## Warnings + +No findings in this class. + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, docs/presentations/metareview-first-day.html, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (version bump + CHANGELOG) (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md: PASS_ADVISORY attempt 1/3 (docs/metareview/reviews/mrv-20260704-230917984977000-artifact-2026-07-04-issue-2-stateful-shardable-evidence-b-c26990d4.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +No unresolved blockers in the recorded review evidence. + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + + +## Repository Health Advisory + +- Open on other branches: 3 unresolved blocker(s) in this checkout's findings ledger belong to another live branch, which they still block, or to none (merged and deleted, or outside this history), where they block nothing; none blocks this branch. diff --git a/docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md b/docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md new file mode 100644 index 00000000..06093dbf --- /dev/null +++ b/docs/metareview/reviews/mrv-20261001-072247855001000-pr-ready-branch-10d735e5.md @@ -0,0 +1,179 @@ +# metareview: pr-ready review + +Run ID: `mrv-20261001-072247855001000-pr-ready-branch-10d735e5` + +Target: `current branch` + +Context pack: `docs/metareview/context/mrv-20261001-072247855001000-pr-ready-branch-10d735e5-context.md` + +Execution mode: `deterministic-local` + +Gate effect: `gate` + +Previous run: `none` + +Attempt: `1/3` + +Reviewer input digest: `sha256:ec70abb36dcd8749d0c537f8a950bb488a04e9e2df30592bad4c3f310060af16` + +Covered paths: `[".claude-plugin/marketplace.json",".claude-plugin/plugin.json",".codex-plugin/plugin.json","CHANGELOG.md","internal/version/version.go","package.json"]` + +## Verdict + +NEEDS_REVISION + +## Reviewer Results + +| Reviewer | Verdict | Blocking | Notes | +| --- | --- | ---: | --- | +| pr-readiness-reviewer | NEEDS_REVISION | 2 | Working tree changes excluded from PR-ready review; Unresolved review blockers | +| validation-reviewer | PASS | 0 | No blocking findings. | +| security-reviewer | PASS | 0 | No blocking findings. | +| code-quality-reviewer | PASS | 0 | No blocking findings. | +| architecture-reviewer | NEEDS_REVISION | 1 | Review context risk | +| external-reviewer | PASS | 0 | No blocking findings. | + +## Blocking Findings + +### mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review + +- Carried forward from: `mrv-20261001-072124444094000-pr-ready-branch-10d735e5` (raised by an earlier run; the findings ledger holds its current state) +- Reviewer: pr-readiness-reviewer +- Severity: high +- Classification: blocking +- Finding: PR-ready reviews the committed branch diff by default, but non-generated staged, unstaged, or untracked files are present. +- Expected: PR-ready runs on a clean working tree, or the caller explicitly opts into reviewing local dirt with --include-working-tree. +- Found: Dirty files: docs/presentations/metareview-first-day.html, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +- Recommendation: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. + +### mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk + +- Carried forward from: `mrv-20261001-072124444094000-pr-ready-branch-10d735e5` (raised by an earlier run; the findings ledger holds its current state) +- Reviewer: architecture-reviewer +- Severity: high +- Classification: blocking +- Finding: The reviewer did not receive complete or bounded source context, so task closure cannot be trusted. +- Expected: Large or incomplete review contexts are split, sharded, or rerun with complete source context before task closure. +- Found: Reasons: DIFF_TRUNCATED, LARGE_DIFF; Raw diff bytes: 579554, filtered diff bytes: 128292; Manifest verdict: NEEDS_REVISION; shards covered: 0 of 5; no shard review results were ingested; manifest blockers: missing cross-shard result; missing shard result for shard-0; missing shard result for shard-0-2; missing shard result for shard-0-3; missing shard result for shard-1; missing shard result for shard-3 +- Recommendation: Split the task, use the generated shard plan, or rerun the review with complete context. + +### mrvf-20261001-072247855001000-pr-ready-branch-10d735e5-001: Unresolved review blockers + +- Reviewer: pr-readiness-reviewer +- Severity: high +- Classification: blocking +- Finding: Task, epic, or prior review evidence still contains unresolved blockers. +- Expected: All task and epic review blockers are resolved before PR readiness. +- Found: Blocked targets: release/0.14.1, release/0.14.1 +- Recommendation: Resolve blockers and re-run the relevant task or epic review before PR-ready. + + +## Advisory Findings + +No findings in this class. + + +## Follow-up Findings + +No findings in this class. + + +## Warnings + +No findings in this class. + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001 +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002 + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review [open] +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk [open] + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + + +## Repository Health Advisory + +- Open on other branches: 3 unresolved blocker(s) in this checkout's findings ledger belong to another live branch, which they still block, or to none (merged and deleted, or outside this history), where they block nothing; none blocks this branch. diff --git a/docs/metareview/reviews/mrv-20261001-072259526163000-pr-ready-branch-10d735e5.md b/docs/metareview/reviews/mrv-20261001-072259526163000-pr-ready-branch-10d735e5.md new file mode 100644 index 00000000..7bb25dd4 --- /dev/null +++ b/docs/metareview/reviews/mrv-20261001-072259526163000-pr-ready-branch-10d735e5.md @@ -0,0 +1,180 @@ +# metareview: pr-ready review + +Run ID: `mrv-20261001-072259526163000-pr-ready-branch-10d735e5` + +Target: `current branch` + +Context pack: `docs/metareview/context/mrv-20261001-072259526163000-pr-ready-branch-10d735e5-context.md` + +Execution mode: `deterministic-local` + +Gate effect: `gate` + +Previous run: `mrv-20261001-072247855001000-pr-ready-branch-10d735e5` + +Attempt: `2/3` + +Reviewer input digest: `sha256:248520007eddd7145f0cb55a7213ff8810fbb1570fc91e7a3b24ad7312d7ccd5` + +Covered paths: `[".claude-plugin/marketplace.json",".claude-plugin/plugin.json",".codex-plugin/plugin.json","CHANGELOG.md","internal/version/version.go","package.json"]` + +## Verdict + +NEEDS_REVISION + +## Reviewer Results + +| Reviewer | Verdict | Blocking | Notes | +| --- | --- | ---: | --- | +| pr-readiness-reviewer | NEEDS_REVISION | 2 | Working tree changes excluded from PR-ready review; Unresolved review blockers | +| validation-reviewer | PASS | 0 | No blocking findings. | +| security-reviewer | PASS | 0 | No blocking findings. | +| code-quality-reviewer | PASS | 0 | No blocking findings. | +| architecture-reviewer | NEEDS_REVISION | 1 | Review context risk | +| external-reviewer | PASS | 0 | No blocking findings. | + +## Blocking Findings + +### mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review + +- Carried forward from: `mrv-20261001-072124444094000-pr-ready-branch-10d735e5` (raised by an earlier run; the findings ledger holds its current state) +- Reviewer: pr-readiness-reviewer +- Severity: high +- Classification: blocking +- Finding: PR-ready reviews the committed branch diff by default, but non-generated staged, unstaged, or untracked files are present. +- Expected: PR-ready runs on a clean working tree, or the caller explicitly opts into reviewing local dirt with --include-working-tree. +- Found: Dirty files: docs/presentations/metareview-first-day.html, docs/superpowers/plans/2026-07-04-issue-2-stateful-shardable-evidence-backed-metareview.md +- Recommendation: Commit, stash, or remove the local files, or rerun with --include-working-tree when the local changes are intentionally part of the review. + +### mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk + +- Carried forward from: `mrv-20261001-072124444094000-pr-ready-branch-10d735e5` (raised by an earlier run; the findings ledger holds its current state) +- Reviewer: architecture-reviewer +- Severity: high +- Classification: blocking +- Finding: The reviewer did not receive complete or bounded source context, so task closure cannot be trusted. +- Expected: Large or incomplete review contexts are split, sharded, or rerun with complete source context before task closure. +- Found: Reasons: DIFF_TRUNCATED, LARGE_DIFF; Raw diff bytes: 579554, filtered diff bytes: 128292; Manifest verdict: NEEDS_REVISION; shards covered: 0 of 5; no shard review results were ingested; manifest blockers: missing cross-shard result; missing shard result for shard-0; missing shard result for shard-0-2; missing shard result for shard-0-3; missing shard result for shard-1; missing shard result for shard-3 +- Recommendation: Split the task, use the generated shard plan, or rerun the review with complete context. + +### mrvf-20261001-072247855001000-pr-ready-branch-10d735e5-001: Unresolved review blockers + +- Carried forward from: `mrv-20261001-072247855001000-pr-ready-branch-10d735e5` (raised by an earlier run; the findings ledger holds its current state) +- Reviewer: pr-readiness-reviewer +- Severity: high +- Classification: blocking +- Finding: Task, epic, or prior review evidence still contains unresolved blockers. +- Expected: All task and epic review blockers are resolved before PR readiness. +- Found: Blocked targets: release/0.14.1, release/0.14.1 +- Recommendation: Resolve blockers and re-run the relevant task or epic review before PR-ready. + + +## Advisory Findings + +No findings in this class. + + +## Follow-up Findings + +No findings in this class. + + +## Warnings + +No findings in this class. + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (re-run after cleaning the tree) (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001 +- release/0.14.1: NEEDS_REVISION with unresolved blockers findings: mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002 + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001: Working tree changes excluded from PR-ready review [open] +- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002: Review context risk [open] + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + + +## Repository Health Advisory + +- Open on other branches: 3 unresolved blocker(s) in this checkout's findings ledger belong to another live branch, which they still block, or to none (merged and deleted, or outside this history), where they block nothing; none blocks this branch. diff --git a/docs/metareview/reviews/mrv-20261001-072801661160000-pr-ready-branch-10d735e5.md b/docs/metareview/reviews/mrv-20261001-072801661160000-pr-ready-branch-10d735e5.md new file mode 100644 index 00000000..818a2d57 --- /dev/null +++ b/docs/metareview/reviews/mrv-20261001-072801661160000-pr-ready-branch-10d735e5.md @@ -0,0 +1,146 @@ +# metareview: pr-ready review + +Run ID: `mrv-20261001-072801661160000-pr-ready-branch-10d735e5` + +Target: `current branch` + +Context pack: `docs/metareview/context/mrv-20261001-072801661160000-pr-ready-branch-10d735e5-context.md` + +Execution mode: `deterministic-local` + +Gate effect: `gate` + +Previous run: `mrv-20261001-072259526163000-pr-ready-branch-10d735e5` + +Attempt: `3/3` + +Reviewer input digest: `sha256:bfcff7698398c4c5f90d8c3e49e6140e3f942ed07ad585a8d91e7719430f8df7` + +Covered paths: `[".claude-plugin/marketplace.json",".claude-plugin/plugin.json",".codex-plugin/plugin.json","CHANGELOG.md","internal/version/version.go","package.json"]` + +## Verdict + +PASS + +## Reviewer Results + +| Reviewer | Verdict | Blocking | Notes | +| --- | --- | ---: | --- | +| pr-readiness-reviewer | PASS | 0 | No blocking findings. | +| validation-reviewer | PASS | 0 | No blocking findings. | +| security-reviewer | PASS | 0 | No blocking findings. | +| code-quality-reviewer | PASS | 0 | No blocking findings. | +| architecture-reviewer | PASS | 0 | No blocking findings. | +| external-reviewer | PASS | 0 | No blocking findings. | + +## Blocking Findings + +No findings in this class. + + +## Advisory Findings + +No findings in this class. + + +## Follow-up Findings + +No findings in this class. + + +## Warnings + +No findings in this class. + + +## Suggested PR Evidence + +## metareview PR Evidence + +### Summary + +release/0.14.1 changes .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json, CHANGELOG.md, internal/version/version.go, package.json + +### Validation + +- freeform fallback validation (best-effort; prefer an evidence receipt): Verification evidence for the 0.14.1 release (after granting the stale-finding overrides) (exit 0) + +### Task Review Evidence + +- CHANGELOG.md: PASS (docs/metareview/reviews/mrv-20260908-073527271951000-artifact-changelog-ab09011f.md) +- cmd/metareview/reviewhelp_test.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-062613603963000-task-done-reviewhelp-test-b88768c5.md) findings: mrvf-20260924-062613603963000-task-done-reviewhelp-test-b88768c5-001 +- docs-0.6.0-documentation: PASS (docs/metareview/reviews/mrv-20260705-161047045358000-task-done-docs-0-6-a2ac175a.md) +- docs-fsm-result-contract: PASS (docs/metareview/reviews/mrv-20260705-215610270004000-task-done-docs-fsm-result-contract-cbf40d94.md) +- docs/metareview/evidence/t0.1-finding-identity-rewire.md: PASS (docs/metareview/reviews/mrv-20260901-042205337128000-task-done-t0-1-finding-identity-rewire-01ca0bf9.md) +- docs/metareview/evidence/t1.3-pins-proven-gate-pr-a.md: PASS (docs/metareview/reviews/mrv-20260901-051912009394000-task-done-t1-3-pins-proven-gate-pr-a-51440dbf.md) +- docs/quickstart.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260528-222809220757000-task-done-quickstart-f3ea78a9.md) +- docs/specs/2026-05-27-artifact-review-parallel-subagents.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-193044946912000-task-done-2026-05-27-artifact-review-parallel-subagents-cf4f2168.md) +- docs/specs/2026-05-27-fail-closed-artifact-review-gates.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260527-182255753628000-task-done-2026-05-27-fail-closed-artifact-review-gates-5243a194.md) +- docs/specs/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-033535838240000-task-done-2026-05-28-bounded-review-fsm-escalation-940432d8.md) +- docs/superpowers/plans/2026-05-28-bounded-review-fsm-escalation.md: PASS attempt 1/3 (docs/metareview/reviews/mrv-20260529-050219314715000-task-done-2026-05-28-bounded-review-fsm-escalation-9303e9d8.md) +- docs/superpowers/plans/2026-07-05-issue-2-wu4-review-manifest-shard-aggregation.md: PASS (docs/metareview/reviews/mrv-20260705-055835877369000-task-done-2026-07-05-issue-2-wu4-review-manifest-shard-agg-b924a5ff.md) +- docs/superpowers/plans/2026-09-23-mutation-incremental-1c-proof.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d.md) findings: mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-001, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-002, mrvf-20260924-034929320260000-task-done-2026-09-23-mutation-incremental-1c-proof-380f704d-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2a-gate.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179.md) findings: mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-001, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-002, mrvf-20260924-045211619641000-task-done-2026-09-23-mutation-incremental-2a-gate-ed03c179-003 +- docs/superpowers/plans/2026-09-23-mutation-incremental-2b-views.md: PASS_ADVISORY (docs/metareview/reviews/mrv-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c.md) findings: mrvf-20260924-051035853973000-task-done-2026-09-23-mutation-incremental-2b-views-6f8a9d6c-001 +- docs/tasks/m0-fsm-run-persistence.md: PASS (docs/metareview/reviews/mrv-20260827-130422417348000-task-done-m0-fsm-run-persistence-8a9eddc9.md) +- docs/tasks/m1-m6-fsm-packages.md: PASS (docs/metareview/reviews/mrv-20260827-090548364954000-task-done-m1-m6-fsm-packages-a99c72f1.md) +- docs/tasks/m7-fork-record-export.md: PASS (docs/metareview/reviews/mrv-20260827-104833919009000-task-done-m7-fork-record-export-9dc62119.md) +- docs/tasks/m8-cli-suite-docs.md: PASS (docs/metareview/reviews/mrv-20260827-114104823011000-task-done-m8-cli-suite-docs-46a961bc.md) +- docs/tasks/pr-a-sharded-measurement.md: PASS (docs/metareview/reviews/mrv-20260827-164005027099000-task-done-pr-a-sharded-measurement-8215c1f2.md) +- docs/tasks/pr-b-shard-ingestion.md: PASS (docs/metareview/reviews/mrv-20260827-181704826892000-task-done-pr-b-shard-ingestion-f6a50afe.md) +- docs/tasks/pr-b-slice-3.md: PASS (docs/metareview/reviews/mrv-20260827-181553019412000-task-done-pr-b-slice-3-e224e5b6.md) +- docs/tasks/pr-b-slices-1-2.md: PASS (docs/metareview/reviews/mrv-20260827-181426808610000-task-done-pr-b-slices-1-2-ce580d87.md) +- docs/tasks/process-overrides.md: PASS (docs/metareview/reviews/mrv-20260827-180059866454000-task-done-process-overrides-93d185e3.md) +- fix-node-elicits-proofs: PASS (docs/metareview/reviews/mrv-20260901-183938772835000-task-done-fix-node-elicits-proofs-e988c555.md) +- fix-pin-id-finding-consistency: PASS (docs/metareview/reviews/mrv-20260901-191438733281000-task-done-fix-pin-id-finding-consistency-b6a37c98.md) +- fix-proof-binds-fix-diff: PASS (docs/metareview/reviews/mrv-20260901-204852362514000-task-done-fix-proof-binds-fix-diff-3ad76b46.md) +- github-reviewdecision-prready-fix: PASS (docs/metareview/reviews/mrv-20260705-221742306514000-task-done-github-reviewdecision-prready-fix-3de6a2de.md) +- internal/fsm/gate/gates.go: PASS (docs/metareview/reviews/mrv-20260902-040527894922000-task-done-gates-bca330f8.md) +- internal/fsm/judge/judge.go: PASS (docs/metareview/reviews/mrv-20260902-045920838914000-task-done-judge-b7060768.md) +- internal/fsm/kind/kind.go: PASS_ADVISORY (docs/metareview/reviews/mrv-20260910-153756405005000-task-done-kind-b7bb121c.md) findings: mrvf-20260910-151423657039000-task-done-kind-b7bb121c-001, mrvf-20260910-151423657039000-task-done-kind-b7bb121c-002, mrvf-20260910-151538496642000-task-done-kind-b7bb121c-001 +- internal/gitcontext/gitcontext.go: PASS (docs/metareview/reviews/mrv-20260902-060726814084000-task-done-gitcontext-9e14bb40.md) +- internal/githubcontext/githubcontext.go: PASS (docs/metareview/reviews/mrv-20260902-034259118558000-task-done-githubcontext-37fa1398.md) +- internal/prready/review.go: PASS (docs/metareview/reviews/mrv-20260902-040416607878000-task-done-review-c809e786.md) +- internal/testconv/typescript.go: PASS (docs/metareview/reviews/mrv-20260902-051859934731000-task-done-typescript-4dea666f.md) +- issue-2-wu1: PASS (docs/metareview/reviews/mrv-20260705-012852131814000-task-done-issue-2-wu1-a2da3dbe.md) +- issue-2-wu1-version-0.6.0: PASS (docs/metareview/reviews/mrv-20260705-030845991374000-task-done-issue-2-wu1-version-0-6-69ccbe27.md) +- issue-2-wu2: PASS (docs/metareview/reviews/mrv-20260705-034317422615000-task-done-issue-2-wu2-eb5dad78.md) +- issue-2-wu2-cursor-followup-fix: PASS (docs/metareview/reviews/mrv-20260705-040500203996000-task-done-issue-2-wu2-cursor-followup-fix-e87ecaa9.md) +- issue-2-wu2-prready-filter-fix: PASS (docs/metareview/reviews/mrv-20260705-035954884586000-task-done-issue-2-wu2-prready-filter-fix-d4005ab8.md) +- issue-2-wu2-review-fix: PASS (docs/metareview/reviews/mrv-20260705-035540088635000-task-done-issue-2-wu2-review-fix-05b5e486.md) +- issue-2-wu3: PASS (docs/metareview/reviews/mrv-20260705-050759694908000-task-done-issue-2-wu3-2688b027.md) +- mechanical-precision-lens: PASS (docs/metareview/reviews/mrv-20260831-183207933768000-task-done-mechanical-precision-lens-c79c1389.md) +- multilang-pytest-conv: PASS (docs/metareview/reviews/mrv-20260901-190331877901000-task-done-multilang-pytest-conv-1f2195e7.md) +- multilang-testconv-seam: PASS (docs/metareview/reviews/mrv-20260901-165623149954000-task-done-multilang-testconv-seam-01cc5b3d.md) +- multilang-typescript-conv: PASS (docs/metareview/reviews/mrv-20260901-172216437441000-task-done-multilang-typescript-conv-6cdb50c2.md) +- multilang-vitest-conv: PASS (docs/metareview/reviews/mrv-20260901-174949441189000-task-done-multilang-vitest-conv-56254690.md) +- runchain-headsha-escalation-reset: PASS (docs/metareview/reviews/mrv-20260705-222055675782000-task-done-runchain-headsha-escalation-reset-37b22cb1.md) +- runchain-reset-findings-reconciliation: PASS (docs/metareview/reviews/mrv-20260705-223346154492000-task-done-runchain-reset-findings-reconciliation-6cafdbd1.md) +- t1.1-differentialproof-model: PASS (docs/metareview/reviews/mrv-20260901-001859561454000-task-done-t1-aa37529c.md) +- t1.2-agentedit-reduce-seam: PASS (docs/metareview/reviews/mrv-20260901-002517703556000-task-done-t1-b5a41665.md) +- t1.3-reproduction-engine-pr-b: PASS (docs/metareview/reviews/mrv-20260901-080559565942000-task-done-t1-8af2654f.md) +- t1.4-right-reason-reviewer: PASS (docs/metareview/reviews/mrv-20260901-100944138141000-task-done-t1-ab64ea55.md) +- t1.5-deletion-provable-fix: PASS (docs/metareview/reviews/mrv-20260901-105248210036000-task-done-t1-4ad043b2.md) +- t1.6-trivial-pin-prescreen: PASS (docs/metareview/reviews/mrv-20260901-115747009329000-task-done-t1-b353673e.md) +- t2.1-test-deletion-gate: PASS (docs/metareview/reviews/mrv-20260901-145243731066000-task-done-t2-0fe76ae4.md) +- t2.2-trajectory-monitor: PASS (docs/metareview/reviews/mrv-20260901-154004114739000-task-done-t2-d4fcf27a.md) +- workflows/sdlc-loop-clean.yaml: PASS (docs/metareview/reviews/mrv-20260902-082859947245000-task-done-sdlc-loop-clean-510ba162.md) + +### Epic Review Evidence + +- internal/reviewers/epicready.go: PASS (docs/metareview/reviews/mrv-20260902-035232185408000-task-done-epicready-27fabbd2.md) + +### Recorded-Evidence Blocker Status + +_Blockers carried forward from recorded review evidence; findings this gate run raised are in its review log's `## Blocking Findings` section._ + +No unresolved blockers in the recorded review evidence. + +### External GitHub Review Context + +GitHub context unavailable: pr-number-unavailable + + +## Repository Health Advisory + +- Open on other branches: 3 unresolved blocker(s) in this checkout's findings ledger belong to another live branch, which they still block, or to none (merged and deleted, or outside this history), where they block nothing; none blocks this branch.