Repository navigation
Conversation
…200 EV-7a, PMAT-4347, GH-4122 EV-5a Takes the aprender-contracts / -cli / -staging trees and the additive aprender-common cli_roles module from #4502's r7 A head 0be7c00, plus the cooperative-matrix delete (#4347) and the PVL ci/explicit-test-commands.d rows. Workspace versions stay at main's. Generated files are excluded (discharge-summary.json, Lean Axioms pin); 98 regenerates them as the single writer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…key) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ire); generated ontology files stay main's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… row 5, clippy -D warnings) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit afb58c0)
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
… builds --locked) L0 exception: fixes running job --locked (run 36388075483, mac-check job 108817628569). The build.rs env_key build-dep lines added provable-contracts edges without re-resolving the lock; cargo check --locked failed on the stale lock at b4ebf93. Edges only, no new packages. Receipt: intel cargo check --workspace --all-targets --locked rc=0, 0 errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(tree-reader drift)
workspace-test-shard step 7 (check_tree_reader_tests) failed in run 36388847584:
PR-1 adds aprender-contracts{,-cli} test targets without their registry rows.
Moves #4502's 12 contracts-cli .cmd wiring files into PR-1 instead of parking
11 targets in the unwired baseline (baseline unchanged), carries fb's m52
ordinal renames (457->459 golden-fixtures, 480->483 facade-e2e) that the moved
457/480 files need, and regenerates scripts/tree_reader_tests.txt.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent: aprender-88
…-debt re-key) Local run of the wired contracts-cli targets on PR-1 failed (ont4b_shapes_gate, shapes_vacuity, ont_entity_properties, ...: 'entity.type has no Σ entity_type_target_class mapping'): PR-1 carried #4502's contracts code but not its tests/fixtures/ont updates (164 files). Moves them in. Row 4: cherry-picked 50ab758 (contracts/binary-debt-v1.yaml re-key). (cherry picked from commit 50ab758) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
roadmap aggregate, pv census, pv extract (contracts.nt + shapes.ttl) and the README CONTRACT_COUNT blocks, regenerated with the pv built from this tree; fixed points asserted: make roadmap-aggregate-check, pv extract --check, readme_sync.sh --check. Agent: aprender-88
… file (ENOTDIR) — chmod 0o555 does not stop root, CI runs as root Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-01 (cherry picked from commit 3e65448) Agent: aprender-88
… gate runs (#4502 row 2) lint_passes_on_real_contracts requires the refinement gate to RUN whenever CI is set; the gate compares HEAD with merge-base(HEAD, origin/main), else the origin/main tip. The workspace-test-shard section clones at depth 1 and only the tier step's pull_request arm fetched a main, so workflow_dispatch / merge_group / push shards had no base and shard 3 panicked "the refinement gate declined" (run 36384418038). Per the operator ruling (2026-09-28 09:41): pin the EVENT's base commit -- pull_request.base.sha, merge_group.base_sha, push's `before` -- as refs/remotes/origin/main; the origin/main tip only for workflow_dispatch. A missing or zero base fails the step with ::error (no silent skip). Placed after the tier step, whose pull_request arm would otherwise overwrite origin/main with main's tip. ci.yml is unchanged: it has no generator; fat_driver reads ci/sections.yml at run time. Agent: aprender-41 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit cd587d6a5b317467b4eac3b5c10b65ecf2656f8a) Agent: aprender-88
…ontracts tests read shard 1 of run 36391942814 failed ont2c_tracked_ofn_and_report_are_fresh: contracts/ontology.ofn and tbox-report.json are required-tracked writer outputs of contracts/ontology.yaml. PR-1's ontology.yaml is byte-identical to #4502 integ (f7858ca), so integ's outputs are the fresh ones; taken with the PVL discharge summary + Lean axioms the discharge-check target reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
…e ordinals 761/762 (#4502 row 3) Shard1 step 13 REFUSEd two ordinals that each named two fragments: 458 (apr-format-golden-fixtures + contracts-cli ont8_evidence_gate) and 481 (facade-e2e + contracts-cli pvl_comparator). A shared ordinal leaves the run order ambiguous. The two contracts-cli fragments move to 761 and 762. Both commands are byte-identical; nothing else names these files. check_explicit_test_commands.sh --check: base origin/fb/4502-a-diag rc=1 (2 REFUSE), this commit rc=0 (101 fragments, no shared ordinal). Refs #4502 Agent: aprender-cb Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 59d6911a04a30b5f609fb67c11ca1aba32ad4381) Agent: aprender-88
…usal-ok fixture follows the contract - pv_surface_gate: #4502 carries VS-COUNT-001 (#2648) in validator.rs with no row in the decision table, so every_rule_in_the_validator_source_appears_in_the_table failed. Add a Case: one obligation, stated total 2, Error. - ont_refusal_receipt: #4502 changed contracts/refusal-receipt-v1.yaml but not its byte-for-byte copy in tests/fixtures/ont/refusal-ok; copy it. Agent: aprender-fb Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 036beee) Agent: aprender-88
…ce is not vacuous; shapes_n 66; all 8 refusal fixtures - extract:binary (ONT-4g) refused every [workspace] root whose snapshot is absent, even one whose manifests declare zero bin targets. The ont fixtures (code-bound, ...) are such roots, so PV-ONT-012 turned the shapes gate red there (ont4b2_code_lean_w3c 343). Refuse only when the census names targets; new unit test for the 0-bin root, the 3-target absent-snapshot test stays red. - ont4b_shapes_gate (338): the later ONT-10 slices added nine binary shapes; name them, 57 -> 66 (measured by `pv extract contracts --check` at 036beee). - ont_refusal_receipt (430): the other seven refusal-* fixtures carry the contract too; copy it to all. Agent: aprender-fb Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 23122d3) Agent: aprender-88
… (pv discharge gen-axioms) The copy taken from integ f7858ca binds a root set PR-1's contracts do not have, so pvl_discharge_check::the_real_lean_tree_passes_the_ev_6a_probe rejected it as differing from its regeneration. Written by the in-tree pv at 4f01e3f. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
…te, binding 233/233, ladder doc - contracts/kernel-fusion-v1.yaml: call_site back to :371/:374/:377. The 0be7 copy cites :394/:397/:400, but the +23-line shift in kernels_generate_gemm_cuda.rs is PR-2's; PR-1 and main have FusedQKVKernel at :371 (tripwire leaf #8). - contracts/binding.yaml: 233/233, the mutant set PR-1's tree derives. 237 is PR-2's (leaf #13, check_pr_review_counts). - verification-ladder.md: moved in from PR-2 (blob 597d344, identical there), because levels.rs (ONT-2a andon, a keep row) asserts it (leaf #6). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
…-stated The yaml went back to main (075c5bf). surface_audit.csv carries the 98 cli.rs rows that match PR-1's cli.rs (blob 487a124), not main's 76. The cited feature ratio is now 144/886 (16.3%) wherever a cluster ratio appears. check_dogfood_coverage: PASS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
cooperative.rs was never compiled (no mod in shaders/mod.rs, no caller since coop_gemm_bench was deleted), so contract cooperative-matrix-gemm-v1 bound a kernel that does not exist, and CooperativeTiling.lean backed it with rfl tautologies (A*B = A*B, sum = sum) that contracts.nt recorded as grounded. Deleted: the shader, both contract copies, the book page, Challenge/, CooperativeTiling.lean + its imports and Axioms.lean pins, and the 17 empty contract_inv_cooperative_gemm! blocks. Regenerated census, contracts.nt, README count, pv-sat witness. The proved RoundingModel lemmas move to 0.70.1 (fp16-cublas-gemm-v1), not copied here. discharge-summary.json is NOT hand-edited: it is pv discharge run output (comparator + leanchecker) and must be regenerated by that run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry-picked 098fae4 per COP 09:0xZ: KEEP #4347 + take the coop delete) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
… batch's, regen contractCount, add the binary snapshot lint_passes_on_real_contracts:38 reported 135 SHACL errors at e13e9eb. README.md, CLAUDE.md and Makefile are taken from 0be7c00 (fb/4502-a-diag), README contractCount is regenerated from contracts/census.json (1837 -> 1889, `bash scripts/readme_sync.sh --write`), and evidence/binary/snapshot.jsonl (binary-snapshot/v1, 30 lines) is taken from 0be7c00. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-01 Agent: aprender-88
… 30 bin targets The 0be7c00 snapshot names #4437's renamed bins, which this tree's manifests do not declare (20 extractor errors). Regenerated here with 0be7c00's writer: `bash scripts/dogfood_surfaces.sh --snapshot` (release profile, git_sha 05c0979df3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-01 Agent: aprender-88
… PR-1 strict_test_binding (tripwire leaf #5) found 23 PR-1 contracts citing tests PR-1 lacks, and shapes :459 NoFocus (01) found bin contracts with no matching [[bin]] because PR-1 lacks #4437's Cargo.toml renames. COP 09:0xZ: drop them; do not carry the renames. All 29 are byte-identical on split/ont10-rest-0.70, so this is a move, not a loss. Gate-graph check: outside contracts.nt (regenerated) and each other, nothing in the tree references them; no #4199/#4200/#4122/#4347 row does. apr-version-traceability-v1.yaml goes back to main (PR-2 carries the edit). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
… rc=0) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
…s.ttl, README; extract re-run after readme_sync to reach the fixed point) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
…ter the CooperativeTiling delete (456) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-88
… (VS-COUNT-001) 8981d46 carried main's verification_summary.total_obligations: 16 back into PR-1, but the contract has 9 proof_obligations and PR-1 ships the VS-COUNT-001 validator, so validate_all_contracts failed and the lint validate gate failed under every full run (lint_passes_on_real_contracts meet=Fail, lint_findings_on_failure, ont2b gate mode, ont7). 0be7c00 carries 9. contracts.nt needs `pv extract contracts` after this. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-01
Measured with cargo mutants on lambda (--lib, per file): - code.rs 22/22 caught (19 from shard 12, 3 in type_member) - cli_surface.rs 12/13; 387:5 positive_control -> true is a zero-arg self-check over a const and is left for a ruling, not skipped - claims.rs 2/2 (fences, prose_lines), json/github.rs 1/1 (refused_saying) contracts --lib: 2200 passed. tree_reader_tests.txt gains the ontology::extract row the workspace-test shards failed on. Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e char is one byte `m * c.len_utf8()` is `m * 1` for the only two fence chars (`` ` ``, `~`), so the `* -> /` mutant (claims.rs:88:19, #4588 shard 8) was equivalent. No skip, no equivalents row: the arithmetic is gone. Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nts in ratchet mode (C188) - scripts/tree_reader_tests.txt: regenerated (check_tree_reader_tests.sh --update); its drift was the ws-test 1/2/3 + guard-cargo red. - gate: the MUTANTS-RATCHET block of #4647 (#4646), byte-identical and at the same spot, so this PR's own run does not wait for #4647, and the merge with #4647 is a clean identical change (merge-tree: 0 conflicts). Every check above the block is unchanged; the RESTORE PR #4648 deletes it after crates.io. Refs #4646 Agent: aprender-ca Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=true disarmed=true) {
"ticket": "PMAT-4502,PMAT-4199,PMAT-4200,PMAT-4347,PMAT-4166,PMAT-4139,PMAT-4604,PMAT-4369",
"head": "5296a9fef738be14d037a3e7c6c2476a73b28102",
"width": 3,
"executor": "agy",
"agreed": false,
"auto_merge": {
"checked": true,
"was_armed": true,
"disarmed": true,
"note": "auto-merge was armed from an earlier round; disarmed before lanes launched"
},
"lanes": [
{
"lane": 1,
"verdict": "FAIL",
"findings": 2
},
{
"lane": 2,
"verdict": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
…nd that the mutants rules are off on purpose until #4648 Quorum lane finding (q-4587c, sonnet): the comment named ci/mutants-debt.tsv and scripts/check_mutants_debt_ratchet.sh as the blocking rule, but on a branch without #4647 neither exists. Same block text in #4647/#4587/#4588 so the three still merge without conflict. No check changed. Pmat-Ticket: PMAT-4646 Agent: aprender-ca Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd that the mutants rules are off on purpose until #4648 Quorum lane finding (q-4587c, sonnet): the comment named ci/mutants-debt.tsv and scripts/check_mutants_debt_ratchet.sh as the blocking rule, but on a branch without #4647 neither exists. Same block text in #4647/#4587/#4588 so the three still merge without conflict. No check changed. Pmat-Ticket: PMAT-4646 Agent: aprender-ca Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd that the mutants rules are off on purpose until #4648 Quorum lane finding (q-4587c, sonnet): the comment named ci/mutants-debt.tsv and scripts/check_mutants_debt_ratchet.sh as the blocking rule, but on a branch without #4647 neither exists. Same block text in #4647/#4587/#4588 so the three still merge without conflict. No check changed. Pmat-Ticket: PMAT-4646 Agent: aprender-ca Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sonnet seat (agent:claude-sonnet-5-5/pr-4587-review), base 00052c0. Verdict DEGRADED (782-file diff sampled), 0 errors. The mutants rules being unreachable is the operator's C188(a) ratchet order; restore is #4648. Pmat-Ticket: PMAT-4502 Agent: aprender-ca Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-4502,PMAT-4199,PMAT-4200,PMAT-4347,PMAT-4166,PMAT-4139,PMAT-4604,PMAT-4369",
"head": "ee9d92bab5c0ff2527c06895a82aedc6e25708b9",
"width": 3,
"executor": "agy",
"agreed": false,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "PASS",
"findings": 0
},
{
"lane": 2,
"verdict": "FAIL",
"findings": 2
},
{
"lane": 3,
"verdict": "FAIL",
"findings": 2
}
]
} |
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-4502,PMAT-4199,PMAT-4200,PMAT-4347,PMAT-4166,PMAT-4139,PMAT-4604,PMAT-4369",
"head": "ee9d92bab5c0ff2527c06895a82aedc6e25708b9",
"width": 3,
"executor": "agy",
"agreed": false,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "PASS",
"findings": 0
},
{
"lane": 2,
"verdict": "FAIL",
"findings": 1
},
{
"lane": 3,
"verdict": "FAIL",
"findings": 2
}
]
} |
…s, K11 shapes.rs, K12 challenge.rs (cursor-free rewrites), K13 proof_status, K14 lint/extract K10/K11/K12 measured 14/14, 27/27, 50/50 caught; K13/K14 mutation runs were cut by the lambda reboot (NOT_MEASURED). Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r that hunk only; A' mutants-table-scope kept Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sonnet seat (agent:claude-sonnet-5-5/pr-4587-review), base 430be65. Verdict DEGRADED: delta-only sample (32fc88e..HEAD) of a 784-file diff; duplication/agy/mutation not run on this head (not_measured). ci.yml merge hunk: comment-only, mutants-table-scope intact, no gate weakened. diff_patch_id c0ed4ceedd. Unsigned: the key is a CI secret. Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, K2 code.rs tests ported refines_gate.rs:181 (refines_pairs) and :207 (passed) now asserted. claims.rs gets K3 fences tests (lane C 79:10, 113:29) and fence_close slices m bytes as fence_open does (88:19 was equivalent: the fence char is one byte). K2 code.rs tests from #4587 kill 237:71, 255:38. Measured: 48 tested 46 caught (filter artifacts re-run under full --lib: 11/11 caught). Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…judged by the #4647 ratchet section The intel mutants-shard runs hit the 720m timeout on every past run, so the A' survivor table cannot finish. With no head refs listed, the mutants section is report-only and ci/mutants-debt.tsv stays shrink-only (#4647). Prepared LOCAL ONLY, pending the operator's choice. Pmat-Ticket: PMAT-4502 Agent: aprender-07 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rename release:ModelCell Re-ran the hotspot check that §4 requires before B2 and OBS-05, git only, against origin/main 316dee2. Trial merges used the old git merge-tree, with one positive and two negative controls. Every conflict in B2 (6 code files) and OBS-05 (ontology/shapes.rs) comes from one commit, 989cb01 (fold(0.70) #4655). Of the added lines in the ONT-10 PR heads, #4587/#4588/#4589/#4611 have 99-100% on main and #4615 has 93%; the not-on-main controls score 2.6% and 11.2%. So the "after ONT-10" condition is met in content. B2 duplicates nothing on main, but the class release:ModelCell now means two things. On main, v1 (since 989cb01) uses it for a non-generating model-command cell whose shape requires release:row. Seg 7's v2 uses it for a cell derived from kernel cells whose shape requires release:usesKernel. B2 renames its class before the PR. This is a static reading; no cargo was run (C277). Agent: la-0.71 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Closed with a pointer (0.70.2 backlog, aprender-78): this PR's content landed on main in #4655 (989cb01, "fold(0.70): #4587+#4588 …"). Measured: of the 786 files it touches, the only ones whose PR-side change is absent from main are contracts/census.json, one witness json (generated, regenerated on main) and two |
…rex crate snapshot Step 3 of 3 (PMAT-4524). This commit restores the branch's content on the 28 paths that step 1 pre-set to main's bytes, merged with main's changes to them. Main's copy of crates/aprender-review-experiment is the branch's 066d43a (REX-04), landed through fold #4655 (#4587/#4588), plus #4588's mutant-killing tests. I 3-way merged each path on the branch commit closest to main's copy, then resolved the hunks that were left as a union. - crate: the branch's rows (C6, C11, C14, S1, ...) and all of main's tests. Two of main's tests were moved onto the branch API with their assertions unchanged. execution_problems became check_executed_fields (identical body). The prereg lock-header test now expects the re-locked rex-prereg-v2 header. - aprender-serve: generate() keeps main's cancel-before-decode fix (#4325), plus the branch's prompt reuse (#4445/#4274) and logprobs steps (#4026). qwen35_prompt carries main's request-tools change (#4650). - surface_audit.csv: main's rows. Every cited line is remapped through the branch's edits to commands_enum.rs, cuda_chat_backend.rs, openai_handlers.rs and router.rs (9/9 spot checks match main's source lines). - Regenerated files: roadmap.yaml by roadmap-aggregate (plus the PMAT-4524 entry), README counts by readme-sync, tree_reader_tests.txt by check_tree_reader_tests.sh --update. Cargo.lock is main's lockfile plus cargo metadata. Refs #4354, #4524 Pmat-Ticket: PMAT-4524 Agent: rex Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Split PR-1 of 2 of #4502. Per the operator plan, the split is a MOVE of #4502: PR-1 ∪ PR-2 = #4502's diff.
What: the contracts layer from #4502 r7 A
0be7c00372. That is:crates/aprender-contracts{,-cli,-macros,-staging}andcontracts/aprender-commoncli_rolesmodulebuild_helper::env_keybuild.rs in every binding crate, plus its build-depc1's #4069 ONT-4c4 commits stay in (HARD KEEP).
Rows (operator rulings, relayed by the cop): all four PVL rows stay: #4199, #4200 and #4122 (the ONT-10 → ONT-5 → EV-9 dependency; gate-named rows never move), plus #4347. #4347 now carries 098fae4, which deletes the dead cooperative-matrix chain and clears the live f16 axiom. 29 contracts whose tests or
[[bin]]live in PR-2 moved to PR-2; they are byte-identical there, and no kept row references them. PR-1 also takes 01's shapes fix: README, CLAUDE.md and the Makefile from the batch, plus the binary snapshot for PR-1's 30 bins.Tripwire leaves fixed in this push (3c2a40a): 456 (ev11 baseline 129), 461 (EV-6a), lean-reach, 290, 343, 430 (fb), kernel-fusion call_site, binding 233/233, verification-ladder, the Axioms.lean regen, the dogfood ledger (144/886, G2.6 T2 PASS), and strict_test_binding. The generated set is regenerated once via
batch_fold.sh --regen.keep-open: PR-1 is half of the #4502 MOVE. Its rows (#4069, #4122, #4199, #4200, #4347, #4369) are closed by #4502 / PR-2, not by this half.
ont-delta: none — contract sources only. The generated ontology set is regenerated once in this push, and PR-2's single-writer regen owns the ontology delta.
Still red on intel at 3c2a40a (pre-push local receipt): 338 (ont4b tracked graph / corpus shapes), 472 (ont4d subsumption: pv exit 2), 480 (ONT-4c5 Unknown(NoFocus)). Owners are being routed; they are not fixed by this push.
Folded in (operator P4, 17:15Z, one push; cop 18:05Z):
C2: publish pv (aprender-contracts-cli) 0.69.4 + deps for B1 gate tool (L20) #4604 C2: pv set at 0.69.4 — aprender-build-sha, aprender-update, aprender-contracts-macros, aprender-common, aprender-contracts, aprender-contracts-cli. update-check + build-sha are OFF by default; binary-release.yml builds pv with them (operator B2). pv publishes from this PR's merge commit after clean-room (B3). keep-open: C2: publish pv (aprender-contracts-cli) 0.69.4 + deps for B1 gate tool (L20) #4604 closes on the crates.io publish, not on merge.
Shard 3 fix: the root lib-test container sets safe.directory=/workspace so the pinned origin/main resolves (run 36449404284 job 109019972318).
N-1: the pv: a shapes gate reports Pass AND armed over ZERO focus nodes — aggregate swallows decline: NoFocus #3610 exemption is a contract-level
allow_empty:map, so the fleet-pinned pv 0.69.1 parses release-readiness-v1 (job 109019972501).x86-main reds from run 36462668621 (81cd662):
make contractscalledscripts/contracts_gate.sh, which only PR-2 carries, so main's step-list recipe is restored here (make_contracts_propagates.sh 17/17, mutants included). That test's fixture now reads the pv version the waypv_bin.shdoes (the crate first). Incheck_facade_compat.sh, CURRENCY and PUBLISH ORDER compare against the version this tree publishes for the fronted crate, as R3 already did (identical when unscoped; unreadable = FAIL). Facade pins are 0.69.4 and the facade lock is regenerated. On intel: PASS 32 ok, and a 0.69.3-pin mutant is RED.Facade guard: exact scoped allowlist (ff5c834). Quorum q-pr1-r81cd2 on 81cd662 (gemini FAIL, sonnet PASS, haiku PASS) found that comparing a crate against its own version let a coordinated off-workspace drift pass.
pub_vernow admits the workspace version, or the EXACT versionscoped_verdeclares for that crate (C2: publish pv (aprender-contracts-cli) 0.69.4 + deps for B1 gate tool (L20) #4604: six crates at 0.69.4). Case table, intel clone at ff5c834:<unread>), never a passMain merged in once (f766fc7, brings fix(ci): plumb secrets.PR_REVIEW_SIGNING_KEY_B64 under its real name; guard section secrets vs plumbing (#4510) #4512's signing-key secret name).
PR-2 (the rest of #4502): #4588.
A′ survivor table (operator ruling 2026-09-29 06:36Z)
CI builds the survivor table itself. A table typed up by hand does not count.
mutants-table-scopedecides whether the head ref is inci/mutants-table-refs.txt(PR-1 and PR-2 for 0.70). On every PR it also re-proves the gate rule and the checker.mutants-shard(matrix 1..16, clean-room) checks out the PR head sha and computesgit diff <merge-base>...HEAD. Each job writesmeta.json(head sha, diff sha256, run id),list.txt(the full universe) andoutcomes.jsonfor--shard K-1/16.mutants-tableverifies before it trusts. RED on any of:MUTANTS_MAX_MISSED(default 0).evidence/mutants-equiv/<PR>.tsv, a pr-review receipt that names the mutant with reviewer ≠ author, and a.minisigthat verifies against the base branch's.github/pr-review.pub.gaterequiresmutants-table == successfor a listed ref (GATE-MUTANTS-TABLE-RULE). The one-jobmutantssection hands a listed ref over to the table (has_rs=false). For any other ref it is unchanged.Proof (G3): the case tables, re-run at this head
missing mutant → RED · wrong sha → RED · wrong diff → RED · complete table → GREEN (checker, 24 rows). Gate rule: 14 rows, and 3 planted weak rules are all RED.
output
Mutation proof: I disabled 16 separate checks with sed, one at a time. Each one turns the checker's self-test RED. Review: three Sonnet lanes, receipt
evidence/pr-review/4587/b132bf3c34….🤖 Generated with Claude Code