Repository navigation
evidence-replay: re-pin EXPECTED_28 to a main-reachable commit - #1152
Conversation
EXPECTED_28 (e73f7be) is reachable only from the unprotected branch staging/introduction-repro-ext-20261027. The same bytes, blob 97a2377, are on main at verification/audits/manuscript/intro-corpus-audit-20261026/introduction-repro-ext/results-121598983127-28.json, introduced by 2714278 (#1132, merge b28888f), which is an ancestor of main. git rev-parse 2714278:<that path> = 97a2377... git rev-parse e73f7be:papers/introduction_repro/results-121598983127.json = 97a2377... sha256 of both = da95b823988f4b19d9944079bff147288540a06611adbe1270ab88ebd5d70d62 Changes: the EXPECTED_28 pin, the path the expected-28 blob check reads, and the header comment. EXPECTED_28_BLOB, the 28-module comparison, the governed-module set (read from the same blob) and every other pin are unchanged. The 28-module result stays unreviewed and not independently verified on main; this re-pin preserves evidence and is not acceptance. Owner ruling #1031 c.6666613671, item B. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011zDyUSyEszk3JJx83uXKKq
|
Owner ruling on scope and merge requirements. amaybaum, Claude Code session chat, 2026-11-05 (after 19:30Z):
The owner also confirmed that #918's paperwork requirement (A) is complete. SC17, SC31 and SC33 remain open under #941 and do not block #918's retirement. Their evidence and accountable homes are preserved. Generated by Claude Code |
Independent review of
|
…r wording (#1152 review) The README's "Relation to .github/workflows/evidence-replay.yml" section said the EXPECTED_28 pin was e73f7be and the dependency unresolved, which the re-pin in this PR makes stale. It now states the pin (2714278, the commit that adds the directory, reachable from main), the blob check, that the replay no longer depends on the staging branch, and that the pin verifies nothing. Lines 16 and 49 (provenance) are unchanged. The file is not in legacy-records.json. Workflow header: "unreviewed" becomes "has no independent review recorded on main"; the retained path is on one line. Pins and steps unchanged. Owner ruling #1152 c.6666823484; independent review of 20aea1e. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011zDyUSyEszk3JJx83uXKKq
Independent review of the final combined diff at
|
Status: independent review ACCEPT WITH CHANGES; README correction applied at
8c2bf6c4775f2b80f133935ba932ebd5378d3b73; review of final combined diff pending; merge not authorized; no dispatch authorized.Authorization: owner ruling #1031 c.6666613671 (amaybaum, 2026-11-05), item B: "Prepare a narrow workflow PR replacing the fragile staging-commit dependency with
2714278aand the corresponding verified path. Before changing the pin, require proof that the replacement reads the same expected evidence bytes and preserves the full 28-module comparison. The 28-module result remains not independently verified; evidence preservation must not become scientific acceptance." The README correction is included under owner ruling #1152 c.6666823484: "limited to accurately describing the evidence location and verification status". Accountable Issue: #941 (theEXPECTED_28obligation). Related: #918, whose closure waits for this to land and pass its checks.Branched from
mainf051916a113c9412b3efbb1ff813ec57c2ed265d;mainhas not been merged in. Head:8c2bf6c4775f2b80f133935ba932ebd5378d3b73(two commits:20aea1e9re-pin,8c2bf6c4README correction and header wording, a fast-forward on20aea1e9). Writer: writer-941.Why
EXPECTED_28wase73f7be3c343ce12c5f64b9dc1485a5a7ba5498c, which is not an ancestor ofmain; its only ref is the unprotected branchstaging/introduction-repro-ext-20261027(head0a8f4930). If that branch went away, thelean-fresh-buildactivity's step "Worktree at the pinned commit…" would fail at thegit fetchofe73f7be3underset -euo pipefail, and the whole activity, including the 14-module comparison that rests onmain, would fail (#941 c.6665390344 §2). §A.42 item 2.Byte-identity proof (object reads in a fresh worktree of
origin/main)git cat-file -p2714278a:verification/audits/manuscript/intro-corpus-audit-20261026/introduction-repro-ext/results-121598983127-28.json97a2377dbfc30987887dffea2b72e423feed079dda95b823988f4b19d9944079bff147288540a06611adbe1270ab88ebd5d70d62e73f7be3:papers/introduction_repro/results-121598983127.json97a2377dbfc30987887dffea2b72e423feed079dda95b823988f4b19d9944079bff147288540a06611adbe1270ab88ebd5d70d62EXPECTED_28_BLOB=97a2377d…read directlyda95b823988f4b19d9944079bff147288540a06611adbe1270ab88ebd5d70d62cmpof the two path reads: byte-identical (114,828 bytes). The same blob is at that path onmainHEADf051916a.Reachability.
2714278a7dd9057a73610658478661065152ca97is an ancestor ofmain(git merge-base --is-ancestor 2714278a origin/mainsucceeds; it is reached through6e72df0c, second parent of the #1132 mergeb28888ff, which is also an ancestor ofmain). Per the ruling,2714278ais used.actions/checkoutwithfetch-depth: 0fetchesmain's history, sogit cat-file -e "$EXPECTED_28^{commit}"succeeds without the fallback fetch.What the workflow reads at
EXPECTED_28(enumerated from the steps)The pinned worktree is created at
LEAN_COMMIT(17b830bc), not atEXPECTED_28; that is unchanged. AtEXPECTED_28the workflow reads exactly one object, in step "Worktree at the pinned commit, tools and expected results from history":git rev-parse "$EXPECTED_28:<path>", compared withEXPECTED_28_BLOB(the edited line). Ate73f7be3the path waspapers/introduction_repro/results-121598983127.json; at2714278ait isverification/audits/manuscript/intro-corpus-audit-20261026/introduction-repro-ext/results-121598983127-28.json. Both resolve to97a2377d.Everything after that reads the blob by id, not through the commit:
git show "$EXPECTED_28_BLOB" > expected-28.json. The commit id also appears inrun.json'sexpected.28entry (provenance only). No other file is read throughEXPECTED_28.The 28-module comparison is unchanged
expected-28.jsonis the same bytes (above), so the comparator's input is identical.expected-28.json["expected"]["modules"]: 28 entries, unchanged.ARCHIVE_COMMIT48b18ac5(unchanged); thefor e in 14 28comparison loop is unchanged.EXPECTED_28_BLOB,EXPECTED_14,EXPECTED_14_BLOB,LEAN_COMMIT,BH_COMMIT,ARCHIVE_COMMITand both black-hole jobs are unchanged.Local check of the edited assertion:
test "$(git rev-parse "2714278a…:verification/…/results-121598983127-28.json")" = "97a2377d…"passes.Files (combined diff against
f051916a: +14 −7).github/workflows/evidence-replay.yml:EXPECTED_28:e73f7be3c343ce12c5f64b9dc1485a5a7ba5498c→2714278a7dd9057a73610658478661065152ca97;EXPECTED_28blob check (line 98, was 92);2714278a, keepse73f7be3as provenance, and states that the 28-module result has no independent review recorded onmainand is not independently verified there, and that the re-pin preserves evidence and is not its acceptance.verification/audits/manuscript/intro-corpus-audit-20261026/introduction-repro-ext/README.md: the paragraph under "Relation to.github/workflows/evidence-replay.yml" (old ll.57–60), which said thee73f7be3pin was unchanged and the dependency unresolved, now states the pin2714278a, the blob check, that the replay does not depend on the staging branch, and that the pin verifies nothing. The heading and the provenance lines 16 and 49 are unchanged. The file is not listed inverification/infrastructure/legacy-records.json, so it is a mutable record.Trigger analysis
evidence-replay.ymlhas onlyworkflow_dispatch. Editing it triggers no run of it on push or pull request. Nothing has been or will be dispatched by this work.fix/expected28-repin-20261105:verify.ymlruns on push tomainonly;bridge-compatibility-research.ymlandbg2-orientation-design.ymlare path-filtered toverification/programmes/oi-qm/…,OIBridge/BridgeFiniteProtocol.leanand their own workflow files, andhidden-sector-replay.ymltomainandverification/programmes/physical-realization/…; neither changed path matches.oret-phasea.yml,pe01-bounded-tests.ymlandproject-board.ymlare dispatch-only. So neither push started a workflow.verify.ymlruns through its ordinarypull_requesttrigger (a synthetic-merge run). No other workflow matches.Local checks (§A.40), at
8c2bf6c4actionlint1.7.12: clean.tools/legacy_records_check.py 8c2bf6c4…: self-test OK; 303 records in 75 closed namespaces intact.tools/v3_verifier.py --receipts 8c2bf6c4…: 53 receipts, all hold.tools/artifact_placement_check.py,tools/duplicate_check.py,tools/staleness_check.py: OK.Scope limits
mainand supports no manuscript claim (§A.42 item 6; §A.46 items 1, 3, 7).staging/introduction-repro-ext-20261027stays at0a8f4930,draft/oi-introductory-paper-20261025at44236326.🤖 Generated with Claude Code
https://claude.ai/code/session_011zDyUSyEszk3JJx83uXKKq