Repository navigation
Conversation
Freezes spec §2–§5, the analysis code (stats.rs), the analysis plan and prompt v1 under prereg_sha ef51087dc79b… before any measurement (S-1). New crate aprender-review-experiment (publish = false); harness CLI is an example, not a [[bin]]. Planted §3 edit turns prereg-check and FALSIFY-REX-PREREG-001 RED; restore → GREEN. Receipt: docs/audits/rex-001/rex-00-receipt.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#4356 Phase 0: no declared label admits apr-serve review jobs on any host; cells stay NotRun{NoDeclaredExecutor} until infra#1088 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ation check — Refs #4357 corpus_version review-corpus-v1@787d2026256cc08b. P 50 (cargo-mutants listing, markers stripped), R 50 (revert-the-fix, comment-only hunks dropped), G 50 (green, unreverted, pre-cutoff). 45 dev / 105 test; 70 test defect items. Diffs are outside git (items-v1.tar sha256 70dffe56…). Contracts review-corpus-v1 (FALSIFY-RCV-001..003) and review-corpus-contamination-v1 (FALSIFY-RCC-001..003); planted train leak RED (rc=101) -> GREEN. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…FY-RXR-001..003) — Refs #4358 Harness drives apr serve /v1/chat/completions at greedy/seed 4354/512 tokens, never truncates (context refusal -> NotRun{ContextOverflow}), seeded run order + 10% rerun. Scorer denominators are the EXPECTED item set; raw outputs are sha-checked and the verdict re-parsed. Receipts verify with minisign when --pubkey is given. Three falsifiers planted RED and restored GREEN (docs/audits/rex-001/rex-03-receipt.md). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…03) — 6/6 NotRun{NoDeclaredExecutor}, S-7 — Refs #4359
Every §2.1 cell has exactly one admission row; a silent cell rejects the file, Admitted
needs a parity receipt at or above a cited threshold, and no admitted cell raises S-7
(`rex admission-check` exits 10). With infra#1088 open, all six cells are NotRun, so S-7
fires and the experiment STOPs. The §7 premise "apr parity vs llama.cpp" is false at
v0.69.3 (GPU-vs-CPU only); the oracle is an explicit field. The S-6 operator ruling is
recorded in the receipt.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`rex score --pilot --split dev` projects the test-split Wilson half-width on recall at the pilot estimate (design p = 0.5 when the pilot has no defect in its denominator) and grows the corpus above 0.12 or when the width cannot be computed. Runtime counts the 10 % re-run; no warm sample is None, not zero. The spec's ~0.117 is the Wald width; the frozen Wilson width is ~0.114. Contract rex-pilot-projection-v1 (FALSIFY-RXP-001..003), each planted RED at pilot_tests.rs:22/:29/:38 and green after restore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 4B shadow lane already runs inside the quorum rail (paiml-implement #420, advisory-lane.sh); `rex ledger` reads what it records in each quorum receipt and holds it to REX-07: every quorum carries a shadow row (no advisory_lane, or lane `off`, is missing), a lane that did not answer is Unknown{LaneUnavailable}, and the shadow is uncounted and leaves the width at the counted lanes. On the live PMAT-405 receipt it emits a correct row (gx10-cuda PASS, width 3) and exits 0. Contract review-ledger-v1, FALSIFY-RXL-001..003 each planted RED at ledger_tests.rs:49/:66/:85 and green after restore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
) `rex ladder REPORT_JSON` reads only a locked, confirmatory rex-001-report-v1 and returns the 4B lane's rung: shadow by default, tripwire on H4 (explicit holds + CI lower bound ≥ 0), vote on H4 ∧ H5, capped by the §4.5 hardware ruling. H5 alone stays shadow (R-11). Contract rex-promotion-ladder-v1; FALSIFY-RXG-001..003 each planted RED at ladder_tests.rs:31/:55/:72 and green after restore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g is RED (Refs #4365) review-lane-perf-ratchet-v1 (§5.1). `rex ratchet record` turns a tag's warm, non-rerun receipts on the primary cell into per-item wall times; `rex ratchet check` arms after 3 tags and compares each later tag with the best earlier one by a paired bootstrap of the Harrell–Davis p95 ratio (ALPHA from the prereg). Exit 10 on RED. Finding (FALSIFY-RXR-002): the §4 unpaired CI-overlap rule, and a paired nearest-rank p95, both miss a planted +10% at n=130; the HD paired rule catches it 40/40 with 0/40 false alarms at 3% per-item run noise. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#4366) - champion.rs: five fail-closed §5.4 gates, 20 evaluations per sealed test version (refusals spend nothing, R-6), pin-bump promotion with rollback sha, two-consecutive-gold-escape demotion. - fewshot.rs: B1b retrieval from non-test gold only (R-2), never the query; guard() scans each fenced block alone. Finding: a gold `- defect at` line after a fence joins the last hunk, so a whole-text scan missed a sealed test diff in a rendered prompt (RXF-003 pins it). - `rex challenge` (exit 0 promoted / 10 rejected / 11 refused); score_cmd uses verify_signed. - contracts/review-champion-challenger-v1.yaml (RXC-001..003, RXF-001..003). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pt (Refs #4367) - b2.rs: one review-b2-loop-v1 row per B2 tier from the refusal ledger (refusal-receipt-v1): ready only on an acceptance receipt, verb_refused on a ledger row, unledgered otherwise — an absent refusal is not acceptance. teacher_receipt(): sha, count, k, m=1, 0 test hits over the non-test pool; fails closed on an empty sealed index. - `rex b2 status|teacher-receipt` (status exits 11 while any row is NotRun). - contracts/review-b2-loop-v1.yaml (FALSIFY-RXB-001..003). - At HEAD all four rows read unledgered: distill/finetune/merge/quantize have no measured qwen35 refusal row (EPIC #4002 owns the verbs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t dispatch time only (Refs #4354) Operator ruling 2026-09-25 (cop-inbox/handoff/ruling-r9-b.md, sha b6db6866c604). lambda-cuda may run the apr SHADOW lane only as rung 2: rung 1 (gx10-cuda) returned NotRun and the GPU lock is free at dispatch. No resident serve, no preloaded weights, no REX cells, no teacher/finetune jobs; other R-9 exclusions stand. A lock taken mid-round = NotRun{Busy}, ladder continues, no retry on the same cell. Fallback order gx10-cuda -> lambda-cuda -> intel-wgpu -> mini-metal -> intel-cpu -> NotRun{NoExecutor}. S-4, G7 and the lambda-minutes metric follow R-9. R-9 is §6, outside the §2-§5 prereg span: FALSIFY-REX-PREREG-001..003 pass, the lock is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ha carried; holds() needs identity_gaps == 0 (Refs #4354) - Shadow is now Verdict{verdict,cell,backend} | NotRun(NoExecutor|Busy| Timeout|ContextOverflow|TrainActive) | Refused{cell,removed_by: ladder|gpu-proof|parse}, deny_unknown_fields. Unknown::LaneUnavailable {why: free text} is gone: one spelling with receipt-lint. - The receipt's advisory_lane.row carries it; a missing or unparsable row is a violation, never a silent Unknown. - weights_sha256 is read from the receipt, and Coverage::holds() requires identity_gaps == 0. - FALSIFY-RXL-004 (no weights sha => holds() false) and RXL-005 (free-text reason fails to parse), each killed by its mutant (holds() clause dropped; deny_unknown_fields dropped). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a row (Refs #4354) Operator ruling PRM-001 v2 items 3, 4 and 6 (cop-inbox/handoff/ruling-prm-v2.md). v1 was locked with 0 data rows, so nothing becomes exploratory (R-1). Locked (§3-§4, stats.rs, analysis plan): - H1 = VERDICT identity across cells (verdict_divergence); bytes descriptive. - H4 = one rule: paired bootstrap of p4B - min(pHaiku, pAgy), min taken inside each resample (bootstrap_vs_min_voter); Holm-adjusted one-sided p decides, CI report-only. ladder.rs reads p_holm (report schema v2). - H5 decided on class-R recall only; per-class P/R recall + precision descriptive (paired_parsed_class; Scored carries its class). - §4.1 admission oracle = the cell's parity.oracle; llama.cpp@d1d3c3396 where declared (#4444), else apr-parity-gpu-cpu + H1 verdict check. - §4.6 train-active falls through the dispatch ladder, never blocks; lane rows use the #436 Verdict|NotRun|Refused spelling. - κ on per-item errors, apr vs each voter (error_kappa, kappa_andon). Unlocked: §0.4/R-11 zero-weight shadow; R-9/S-4/§9.1 lambda accounting (experiment cells, teacher, resident serve: 0 min; shadow rung 2 measured). Falsifiers: min-inside-resample differs from pick-once on tied voters; byte-only diff does not reject H1; RXG-004 CI is report-only; prereg 001-003. 90/90 lib tests; pv validate both contracts; clippy -D warnings clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ith the cop's pending-instrument ruling; §9 report IN_PROGRESS Spec copied from the cop handoff (sha e8764b72adbe) and amended with §1.1: T0 found none of the §1 verify commands exist; G1/G7/G10/G11/G13 are [U]-pending-instrument tied to T1/T10/T1/T6/T16; G2/G4 are #436 scope; G12's command replaced (apr has no --model-arch). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, fails closed Five fleet hosts, 2026-09-25: cleanupPeriodDays 36500 on all five; files older than 30 d lambda-labs 3278, intel 290, gx10 1, mini 0, yoga 0 (matches infra#1135 T0). An unreachable host prints UNREACHABLE and exits 1. Case table: unset/numeric/no-settings key, planted old file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ruling agent-trace item 6. FALSIFY-TPA-001 (planted AWS key quarantined) and TPA-002 (planted test-split diff refused) fail 4/4 against admit() admitting everything. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…aled-test hit refuses Ruling agent-trace item 6. src/pool.rs: admit() gives each JSONL row one verdict. Admitted | Quarantined (secret hit, held byte-identical, never redacted) | Refused (sealed-test diff or sha, via contamination::Index, checked first) | Unchecked (empty sealed index admits nothing). The scanner has no regex dependency, scans JSON-unescaped strings, and uses whole-word prefixes. Contract training-pool-admission-v1 (TPA-001..004; pv validate: 0 errors). RED->GREEN: 4/4 fail on the stub at b177c3af8, 4/4 pass here; crate lib 87/87; clippy -D warnings clean. Mutants killed: no-unescape, no-refuse, no-quarantine, empty-index-admits, no-boundary. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… reports nothing PRA-001 T6. Secret scan = union of builtin detectors and the gitleaks v8.30.1 ruleset vendored verbatim as data (MIT, sha256-pinned), interpreted in-process in Rust. 20 run-time-built canaries, per-rule ablation, AWS doc key (gitleaks-allowlisted) caught by builtin only. Contract renamed from training-pool-admission-v1. This commit's scan() clears its hits: TAS-001/003/004 and both case tables are RED (5 failed, 91 passed). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Refs #4354
scan() returns its hits. Mutation table (tests run: secret + pool): killed no-gitleaks, no-builtin, no-allowlists, no-entropy, no-unescape, no-translate, and-allows; survived no-keywords (equivalent: the keyword prefilter is a speed-up, every upstream regex already requires its keyword). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Refs #4354
…ash-only index PRA-001 T7. FALSIFY-RCC-004 plants a sealed diff with whitespace, blank-line, partial-rename and re-base perturbation into a candidate pool. The exact checks (diff sha, hunk sha) miss it; the Index stores sketches but does not scan them yet, so RCC-004 is red (110/111). cluster.rs (MOSS-normalised 12-token shingles, bottom-64 MinHash, 0.7 containment), RCC-005/006 and the contract v1.1 land here with it. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…item is refused PRA-001 T7. Index::scan now checks each text's shingles against the sealed sketches: >= 0.7 of an item's bottom-64 sketch present is a `cluster` hit, so the perturbed sealed item is Refused at pool admission (111/111). False-positive probe, 391 real .rs commit diffs from origin/main, all 152,490 ordered pairs: 7 clustered at k=12 (0.005%), all one family of templated beat test files (copies with renamed identifiers); k=5 gave 469. Mutation table: whitespace skip, rename, header skip, marker, min-shingles, blank-line skip, threshold and scan removal are all killed. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pend-only outcome joins; v1 rows still read (Refs #4354) v1 kept each counted lane's findings as a count, so every quorum lost its (input, output, findings) triple. v2 keeps the text verbatim and the lane's agent-trace-v1 input/output shas. Text that was never captured is None, a trace gap, never an empty list that would train as 'no issues'. - read_row dispatches on schema; both v1 shapes written under that name (402aff8 tagged shadow, 89d994b typed #436 shadow) still parse. - v1::Row::migrate keeps the count, leaves text/shas None, and refuses a legacy shadow (no cell/backend, so no typed #436 form). - OutcomeJoin: the latest join by at wins; the row is never rewritten. - contracts/review-ledger-v2.yaml carries FALSIFY-RXL-001..008; v1's stale Unknown{LaneUnavailable} equation now points at the typed form. Mutants killed (3/3): migrate invents Some(vec![]), trace_gap ignores missing text, an unknown schema read as v1. Crate lib 103/103, clippy -D warnings clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Top-k=20 teacher-logit blob per PRA-001 §2.7: u32 ids, T=1 log-softmax (f16), logsumexp_full (f32), retained mass M (f16) so 1−M is the true tail. Closed JSON header, zstd LE columns, one shared validator for encode and decode. Raw 130 B/token at k=20; encoded M6 needs real apr serve rows (top-k capture not yet in apr serve). FALSIFY-SPL-001..004 in contracts/sparse-logits-v1.yaml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…te in a valid frame) (Refs #4354) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…independence-v1) New module kappa_probe.rs (stats.rs, spec §2–§5 and analysis-plan.md are untouched: prereg-locked). κ_err = the frozen stats::error_kappa on per-item error indicators vs GOLD, shadow lane vs every counted lane, over matured gold rows of one split. Unparsed verdicts, silver/pending/quarantined rows and pending/closed_unmerged outcomes are excluded, never counted as errors. A pair under min_n, or with κ undefined, is `insufficient` and prints no number. `rex lane-kappa` prints the scoreboard; with --candidate it gates: δ and min_n come only from the run manifest's lane_independence block, registered strictly before training started. Exit 12 = S-14 andon (κ rise > δ on any counted lane, a lane missing or insufficient on either side, an unusable manifest, or --candidate without --manifest). FALSIFY-LIND-001..004 were planted RED against a stub (4/4 failed), then GREEN. Four mutants each kill the falsifier they target: gate `>`→`>=` (003), no gold filter (001), registered_at `>=`→`>` (004), gate ignores the manifest's min_n (002; it first survived and got its own assertion). CLI smoke: exit 0 scoreboard, 12 on a voter-copying candidate, 12 with no manifest, 2 usage. `make lane-kappa ROWS=F [SPLIT=val] [MIN_N | MANIFEST CANDIDATE]` wraps it. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…g_sha f0b4e4ac) (Refs #4354) - docs/specifications/PRM-001-prometheus.md = handoff v3, sha256 c9b52d08d7eb. - rex-prereg-v2 now locks v3 §2–§5 + stats.rs + analysis plan v2 + prompt v1 in docs/audits/prm-001/prereg.lock. The 17:09Z draft lock (1f4acb3d) is void. - v1 lock docs/audits/rex-001/prereg.lock (ef51087d) restored byte-exact from 5f0ae10 and never edited again (operator). The v1 spec §2–§5 and v1 plan are restored byte-exact too; FALSIFY-REX-PREREG-004 keeps them verifying. - v1 spec gains a superseded banner above §0 (outside §2–§5). - stats.rs: H7 max-pair gate `h7_holds` (δ-free, undecided on any undefined κ); the v2 silver-step `kappa_andon` is removed (v3 has no silver pool). - A planted §3 edit on disk: `rex prereg-check` rc=1 (DRIFT spec_s2_s5). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # README.md # contracts/census.json
… own cluster (Refs #4354) FALSIFY-TDD-001..004 fail 4/4 against the one-cluster-per-item stub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… fingerprint, closed by union-find, named by earliest member (Refs #4354) Reuses cluster.rs (shingles, bottom-64 sketch, containment); no second MinHash. Candidates from an inverted index over sketch hashes; a pair matches when either sketch is >=0.7 contained in the other's shingles. Tiny diffs merge only on identical normalised tokens. Cluster id = min (at, id), order-independent, for the PRM-C9 split guard. FALSIFY-TDD-001..004 GREEN; TDD-003's chain asserts X!~Z as its premise. Mutants 8/9 killed; survivor >= -> > on the 0.7 threshold is boundary-equivalent on these fixtures. pv validate: 0 errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…et per index snapshot (Refs #4354) datacard::Snapshot reads index/agent-trace-v1/YYYY/MM/DD.jsonl in path order; a bad line or foreign schema is an error naming file:line, never a skipped row. The snapshot id is sha256(sha256sum manifest)[..16]. croissant() emits the Croissant 1.0 + RAI 1.0 JSON-LD card (aggregate counts only), datasheet() the seven-section Datasheet, write_snapshot() both plus the manifest under datacard/<snapshot>/: idempotent, and a hand-edited card is refused, not overwritten. validate() is a structural Croissant checker in Rust, since mlcroissant is Python (S-PY). Public-eligible = gold ∧ local ∧ secret-clean. FALSIFY-TDC-001..006 green; pv validate clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ide the datacard (Refs #4354) PRM-001 v2 folds PRA T14 into PRM-C14, which adds the weekly receipt. Per ISO week it records quorums/day, rows, index bytes and the CAS blobs the rows address: stored bytes, plus raw bytes read from the zstd frame header (RFC 8878). It checks them against the G15 [O] band (50-200 quorums/day, <= 0.45 TB/yr raw): within | outside | unmeasured. A missing blob or an undeclared raw size reads unmeasured, never within. weekly.json is written with the card under the same hand-edit rule. FALSIFY-TDC-007/008. These were written after the code, not RED-first; their RED proof is 10 hand mutants: 9 killed at first, and the survivor (the TB/yr cap had no case) is killed by the added 4.29 GB/day row. TDC-006 now also pins 'bad json'. For TDC-001..006, 10 of 12 mutants were killed; skip-bad and leak are equivalent (still refused / Snapshot keeps no row content). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v3 renumbered the gates (G15 is now the branch row). The receipt's key, constants, contract text and test name follow. Refs #4354 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…figure research-design-pr-agent-qwen-3.5.md gains a SUPERSEDED banner pointing at PRM-001 v3; its body is unchanged. The figure is the operator's v3 export (PROMETHEUS-v3-dark-4k.png, sha256 078be9ce93b7…). The spec text is authoritative over the figure's known caption deltas. Refs #4354 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…l-excluding pool rebuild (Refs #4354, #4446) terms.rs validates provider, exact model_id (no family alias; local = weights sha256), access_channel consistent with provider, and terms_ref {https url, date, UTC fetched_at}. rebuild() takes first-class --exclude-provider / --exclude-channel args; a row with any gap is refused by every rebuild. public_release() keeps local rows only (§2.11). Not legal advice; S-6 governs. 7/7 terms tests, clippy -D warnings clean, pv validate ok; 10/10 planted mutants killed (sha length, https, month range, UTC Z, refused->kept, public-release google, alias rule, channel/provider check, channel exclusion, vertex mapping). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st be refused; stub admits all FALSIFY-TAP-001..004 against a provenance() that returns Ok: 4 fail. Reuses PRM-C12 terms.rs (tags, Provider). label_source is a provisional gold marker pending PRM-C10. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-gold rows before the secret scan
Verdict::Ineligible(Prov{Hosted,Untagged,NotGold}); provenance() runs after the
sealed check and before quarantine, so a hosted row is never quarantined (and
never released from it). Mutants killed: no-prov, no-hosted-first, any-label,
untagged-ok, notjson-ok, prov-after-secret.
Refs #4354
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… lane, strata weights over distinct diffs Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…p, one-rung steps (FALSIFY-RXG-005..008) 7 of 9 ladder tests fail on the stub. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ability ≥ 0.95, speed), vote on 20 agreeing tie-breaks, lambda S-4 cap, one-rung steps rex ladder REPORT_JSON [--current RUNG]. 9/9 ladder tests, 159 lib tests, clippy -D warnings clean, 26/26 hand mutants killed. Refs #4354 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs #4354 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #4354 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1858) Caught by the PMAT-4354 degraded-quorum sonnet lane: six contracts added on rex/001 after the main merge were missing from census.json and README. Refs #4354 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
|
Superseded by #4459 (rex/001). The cop ruled at 07:12Z, and aprender-59's audit found prm-l to be an older subset of rex/001: |
Pull request was closed
|
Correction to the ancestry line above. |
PRM-L: land PRM-001 v3 (PROMETHEUS) and the rex/001 work on main
Refs #4354 · ticket PMAT-4354
What lands
docs/specifications/PRM-001-prometheus.md: spec v3, byte-exact with the operator handoff (sha256c9b52d08d7eb…).docs/audits/prm-001/prereg.lock(prereg_sha f0b4e4ac…). It covers PRM-001 §2–§5,stats.rs, the v2 analysis plan and prompt v1.docs/audits/rex-001/prereg.lock(ef51087d…) stays byte-frozen.falsify_rex_prereg_004proves it still verifies.stats::h7_holds: v3 H7 is δ-free. It holds when κ_err(qwen, each voter) ≤ max voter–voter κ_err, and it is undecided when any κ is undefined.review-experiment-protocol.md(above §0; §2–§5 are untouched, so the v1 lock verifies) and onresearch-design-pr-agent-qwen-3.5.md.h7_holds, plus G-PROV admissionrex ladder --current)contracts/census.jsonand the README counts are regenerated: 1858 contracts, 81 workspace crates.Figure
docs/specifications/figures/prometheus-flow.pngis the operator's v3 export (PROMETHEUS-v3-dark-4k.png, sha256078be9ce93b7…).The spec text is authoritative. The figure has three known text deltas against v3; the operator will re-export, and none of them blocks this PR:
Verification
cargo test -p aprender-review-experiment --lib: 155/155 pass. clippy-D warningsis clean, andcargo fmt --checkis clean.rex prereg-checkreturnsrex-prereg-v2 OK prereg_sha=f0b4e4ac…. A planted §3 edit gives DRIFT (rc=1).readme_contract: 16/16.check_readme_claims.shreturns rc=0.cargo deny check advisoriesis ok.fb367bf7fis 3/3 and not degraded: sonnet-5 APPROVE, agy gemini-3.1-pro-high PASS (run from a standalone full clone, away from shared-.git ref churn), haiku-4-5 APPROVE. The receipt is on the private fleet store (PMAT-4354 agy-r4).fb367bf7fand re-verified.No transcripts, trace blobs or secrets are in this diff: data files carry hashes and metadata only.
🤖 Generated with Claude Code