Repository navigation
Conversation
Squashed cherry-pick of fold/b3-contracts-ont-docs (8888574: 263 commits, 63 merges) onto main a5efa14, per the cop's ruling: no main-merges into a PR. Conflicts vs main's B4 fold (#4312, ONT-7 valid-under) resolved to B3, a superset: lint gates 14-22, NAMED_GATES [&str;14], sigma ReservedEntityType kept beside VocabularyMalformed; roadmap.yaml re-aggregated; census + README counts regenerated with the pv built from this tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Quorum receipt (degraded: same-family; author claude-opus-5-5; lanes claude-sonnet-5 + claude-haiku-4-5, headless plan mode, read-only whitelist) @ cf038d3. Scope: the resolutions vs #4317's head 8888574 (sigma.rs union, B3-superset files, README/census regen). Main's B4 content was already reviewed in #4312. sonnet PASS: NAMED_GATES 5→14 keeps valid-under, gate assert 13→22, the ratchet generalizes main's allowlist, README 1851 == census n_files. Its one asserted finding (no local build) is covered by the author's measured |
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
…eview-experiment rows were missing Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (SEC011, DET001) — the ratchet went 6 -> 8
${WORK:?} guards the trap's rm -rf; each case dir comes from mktemp -d, not $RANDOM.
The script's cases and mutants all still pass; the ratchet is back to 6.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…7) and the retitle plan (#4438) epics.yaml carries id, issue, train, budget, successor and absorbs per §2. The GitHub half (13 retitles, new bodies with an empty ## Parked, prior body kept verbatim, +epic on #2870) is plan-A1.json and waits for the cop's OK. Milestones stay for A5, absorbed-epic closes for A4. Pmat-Ticket: PMAT-4438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pmat-Ticket: PMAT-4438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pmat-Ticket: PMAT-4438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… vs 14:16Z snapshot (#4432) Pmat-Ticket: PMAT-4432 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…4438) Pmat-Ticket: PMAT-4438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ody (#4438) The planned bodies predate the v1.5 park/collapse runs, so a wholesale replace would erase their ## Parked and ## Collapsed rows sections. Header-merge keeps the live body verbatim under ## Prior body. Read-back: 13/13; FLOW-014 checked=49 lost=0. Pmat-Ticket: PMAT-4438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…update check Measured by git grep on each origin default branch; the cop creates the issues where an epic has budget (APR-EPIC-001 v1.3 §4b). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…SP technique (closes #2530) 7 of rmedia's 8 real #[kani::proof] harnesses are a fixed window of symbolic f32, each element finite and magnitude-bounded, with real transcendentals. No variant named that, so `strategy: bounded_float` failed to parse, and every harness in the file became invisible to `pv validate`. - types.rs: add BoundedFloat, which displays as `bounded_float`. Per the issue, there is one variant and no `bounded_array`. - kani_gen: generate_bounded_float_body emits Vec<f32> with `x.is_finite() && x.abs() <= MAG` and no stubs. - scoring: weighted 0.9, the same as bounded_int. Both discharge real arithmetic over a bounded domain. - explain: add a one-line description. Test generate_bounded_float_harness: the YAML parses, codegen emits the finite f32 body, and none of the stub_float wording appears. Before the variant existed, the parse fails. aprender-contracts --lib passes 2002/2002, and clippy -D warnings is clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…olved, RED tests for pub(super), wrong module, missing ticket (#4072) ONT-001 row ONT-3a's probe reads `.pc_extract=="fired" and .unresolved==0 and .crates_scanned>1`; the gate emitted pc_resolver/ghosts, so the probe could never pass. Adds both under the spec's names (unresolved = unallowlisted ghosts) and the RED rows the gate lacked: a pub(super) fn resolves, a fn bound under the wrong module is a ghost, an allowlist entry with no ticket is PV-ONT-030. Probe on the repo corpus: checked 254, resolved 253, allowlisted 1, unresolved 0, crates_scanned 7, pc_extract fired -> PASS. F-4: outside a workspace, exit 2 + "decline:". Refs #4072 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mpleted (#4072) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…red — VS-COUNT-001 (closes #2648) 313 of the 667 contracts that carry a verification_summary stated an obligation count that their proof_obligations list did not have (apr-dogfood- coverage-v1: 16 declared, 9 present; ci-infra-v1: 6 declared, 0 present). No reader checked the number, so it drifted from the moment it was typed. validate_contract now derives the count and flags any other value (rule VS-COUNT-001). It is an Error for kernel contracts and a Warning for kind: schema, whose 296 contracts/work/ tickets carry a template summary. The 17 top-level contracts with a drifted count are re-measured, and apr-cli-safety-v1's l2_property_tested (4 against 1 obligation) is capped at 1. Case table vs_count_001_case_table: equal→None, over/under/empty→Error, schema drift→Warning, schema equal→None. Measured: aprender-contracts --lib 2003 passed; --test validate_contracts 10 passed (validate_all_contracts asserts 0 Error over contracts/*.yaml); 0 non-schema drifts in contracts/**; clippy -D warnings clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Pre-merge finding: ONT-3a's spec probe will stay false after this merges, because the bindings report emits 🤖 Generated with Claude Code |
# Conflicts: # docs/roadmaps/roadmap.yaml
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…rom the #4431 receipt; owner 0d no-issue: findings ledger row per APR-EPIC-001 rule 17 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…iews #4197 pt2, main-merge resolutions, rescope, quorum artifact) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…already holds (457/463/480/490 -> 458/464/482/491) workspace-test-shard (1) on a34ac22: REFUSE ordinal N is shared -- ambiguous order. Main owns 457/480/490; 463 collided between two fold fragments (ont2c vs #4197 pt2). Renames only; --list now parses with 0 REFUSE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-4431",
"head": "0cce84279ec08677b8a26cf8d8d1c18c90424189",
"width": 3,
"executor": "agy",
"agreed": true,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "PASS",
"findings": 6
},
{
"lane": 2,
"verdict": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…4427 wraps ci/sections.yml runs in `setsid --wait` lint_passes_on_real_contracts failed 3/3 on shard 3: README's `bash scripts/check_readme_claims.sh` and CLAUDE.md's `bash scripts/check_package_includes.sh` no longer matched a CI line verbatim. normalise now drops a leading `setsid [--wait|-w]`; case table covers the non-prefix and bare forms. Refs #4431 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=true disarmed=true) {
"ticket": "PMAT-4431",
"head": "7a8088d9a7ab39e1fecc9d6fab91994f9365e337",
"width": 3,
"executor": "agy",
"agreed": true,
"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": "PASS",
"findings": 0
},
{
"lane": 2,
"verdict": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ruling); D1 resolved Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ightly (cop ruling b) A new workflow waits for the operator's check-in; the fold lands workflow-free. Refs #4431 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-4431",
"head": "76d6f4886b775d07d5d8d7acdec976563e7d3aeb",
"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": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "NO-VERDICT",
"findings": 0
}
]
} |
|
quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-4431",
"head": "76d6f4886b775d07d5d8d7acdec976563e7d3aeb",
"width": 3,
"executor": "agy",
"agreed": true,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "PASS",
"findings": 1
},
{
"lane": 2,
"verdict": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # docs/roadmaps/roadmap.yaml
…lost the fold's k=36 A PR folded a week ago is still carried by the fold; the heads window followed the run window, so andon-fetch 3 saw #4431 at k 0 (live, 06:0xZ). One 30-day list hits the 1000-row cap (1090 PRs), so fetch in 5-day slices of last update and refuse a slice at the cap. Refs #4513 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… guard section secrets vs plumbing (#4510) (#4512) * fix(ci): plumb secrets.PR_REVIEW_SIGNING_KEY_B64 under its real name, and guard section secrets against their plumbing (#4510) #4441 plumbed the signing key into the fat jobs as `FAT_SECRET_PR_REVIEW_SIGNING_KEY_B: ${{ secrets.PR_REVIEW_SIGNING_KEY_B }}`, with the `64` cut off. ci/sections.yml reads secrets.PR_REVIEW_SIGNING_KEY_B64. An unknown secret expands to "" in GitHub, and an unplumbed one expands to "" in fat_driver, so the CI receipt signer has run with an empty key on every PR since then. Measured on #4431 run 36297914139: "carries an UNSIGNED receipt and PR_REVIEW_SIGNING_KEY_B64 is empty". scripts/check_ci_fat_secrets_plumbed.sh is auto-discovered by guard-tree. It requires every secrets.X read by a section to have a `FAT_SECRET_X: ${{ secrets.X }}` line in ci.yml, and it refuses a key that names one secret while reading another. It passes 6 of 6 self-test rows, including the #4441 line byte for byte. Against this tree it is GREEN; with the ci.yml fix reverted it is RED, rc 1. Pmat-Ticket: PMAT-4510 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(roadmap): regenerate roadmap.yaml for the PMAT-4510 fragment (#4512 guard-tree red) check_roadmap_fragment_required.sh DRIFT: the PR added docs/roadmaps/entries/PMAT-4510.yaml without re-running make roadmap-aggregate. Regenerated; the check is rc=0 at head. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(arm4): the patch-id excludes the quorum verdict, so the fingerprint settles (PMAT-4510) The pr-review receipt's fingerprint (git patch-id of merge-base..head) excluded only evidence/pr-review/<pr>/. A PR also commits its quorum verdict, docs/audits/quorum-*.json, after review. Committing it moved the id the receipt had signed, and committing the receipt moved the diff the quorum had judged, so no receipt could satisfy both. The fingerprint now excludes both receipt paths and nothing else. The self-test proves it both ways: - fingerprint-idempotent: head = +receipt = +quorum = re-stamp - fingerprint-control-moves: docs/audits/other.json still changes the id - receipt-then-quorum binds; receipt-then-other-file does not Mutant (exclusion renamed): 2 red, lib restored by cksum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * evidence(pr-review): #4512 receipt at ee0ff57, unsigned; the CI signer stamps and signs it Exception to L0 ONE-PUSH-PER-RUN: this is a fix for the job currently queued. Run 36386099239 (x86-main, section pr-review-sign) finds no receipt without this commit, exits 0 and signs nothing, so the run could never turn `present` green. Reviewer: agent:claude-sonnet-5/pr-review-4512, a separate invocation (§5). The antigravity lane ran on gemini-3.1-pro-high. Verdict PASS; mutation 3/3 killed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(pr-review): sign this PR's receipt (PR-REVIEW-SKILL-002 v2 §4.3 CI signer) * evidence(pr-review): #4512 receipt, corrected SARIF drivers; stale signature removed for re-signing The first receipt was rejected [B1]. Its SARIF named runs "manual-guard-mutation" and "agy", outside the guard's allowed drivers, and its antigravity results had no failure_scenario. The reviewer (claude-sonnet-5, a separate invocation) corrected both and recomputed findings_ref.sha256. The CI signer's signature was over the old content, so it is removed; the signer re-signs only a receipt with no .minisig. Locally, the one remaining REJECT is the missing signature. No CI run was in progress on d92e035 (the signer's push does not trigger one), so this is the one push for the next run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(pr-review): sign this PR's receipt (PR-REVIEW-SKILL-002 v2 §4.3 CI signer) * fix(PMAT-4510): run the secrets guard in ci / gate; record the operator-ordered fingerprint fix as an AC Quorum r2 on ec4574b: lane 1 (sonnet-5) found the guard ran nowhere. It now runs (case table, then the tree) in x86-main before the sections, in ci.yml, inside the operator's scope line; adds steps only, no permission, trigger or secret change. Lanes 1+2 found the patch-id exclusion outside the ticket's ACs; it was ordered by the operator, verbatim, inside #4512, and the entry now carries that order as its AC. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * fix(PMAT-4510): pr-review-quorum step name states the Arm 4 table's 25 rows check_pr_review_counts derives arm4_rows from the self-test (23 -> 25 after the two receipt-then-quorum / receipt-then-other-file rows) and guard-tree went RED on run 36390402275: the step name still said 23. Name only; no permission, trigger or secret change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * evidence(PMAT-4510): pr-review receipt for cb7c708 + quorum r4 verdict (AGREED 3/3) Receipt: reviewer agent:claude-sonnet-5/pr-review-4512, PASS, guard mutants 5/5 killed; unsigned (CI's pr-review-sign signs it). Quorum r4 on cb7c708: sonnet-5, gemini-3.1-pro-high, haiku-4-5 all PASS. L0: this push follows run 36390402275 (ended, x86-main RED on the count binding cb7c708 fixes). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * chore(pr-review): sign this PR's receipt (PR-REVIEW-SKILL-002 v2 §4.3 CI signer) * fix(PMAT-4510): run the secrets guard steps under setsid --wait check_guard_steps_isolated (#4133) turned CI run 36410817478 red: the two new ci.yml steps invoked the guard directly, sharing the runner's process group. Prefix both, like every neighbouring guard step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * evidence(PMAT-4510): pr-review receipt for 2989217 + quorum r5 verdict (AGREED 3/3) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * chore(pr-review): sign this PR's receipt (PR-REVIEW-SKILL-002 v2 §4.3 CI signer) * feat(pr-review): B1 — the receipt signature is a check run on the head sha, never a commit (#4512) The signer committed a .minisig as github-actions[bot]. That made the PR head a bot commit, and under approval_policy=all_external_contributors a bot head is action_required with 0 jobs, so pull_request_target never fired. B1 (operator-approved 14:52Z; read scope 14:58Z): - pr_review_sign_receipt.sh: PR_REVIEW_SIGN_BIND appends "pr=<N> head=<sha> pid=<patch-id>" to the TRUSTED comment, which minisign's global signature covers. - ci/sections.yml pr-review-sign: contents: read + checks: write. It signs each receipt without a committed .minisig and posts the signatures as a pr-review-signature check run on the PR head. No commit, no push. - check_pr_review_arm4.sh: a receipt without a committed .minisig is judged by that check run (the name, head_sha, app github-actions, success; the latest). minisign -V must pass, and the trusted comment must bind pr=, head= and pid=. 8 new case-table rows (33/33): valid GREEN; unsigned, forged, wrong head, wrong pid, wrong PR, and check on another sha RED; the queue path GREEN. - pr-review-quorum.yml: job-scoped checks: read, GH_TOKEN, ARM4_PR_HEAD_SHA (the resolved head, so no pulls API read is needed). - The #4512 receipt at 5ea016f (diff_patch_id 5f5446..., reviewer sonnet-5). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * evidence(pr-review): #4512 receipt at a42c778 (sonnet-5, DEGRADED, pid 067e29) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 * evidence(pr-review): #4512 a42c77 receipt re-emitted — the guard's A4 rejected the first The divergence ledger counted 2 of 3 agy findings, duplication_coverage.shell had an off-enum value, horizon_branches_total was null, and SARIF driver names were outside the vocabulary. Same reviewer (sonnet-5), same head and patch-id 067e29. Guard ACCEPT under a throwaway key; CI's signer signs it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: aprender-57 --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Closed to bring open PRs under the cap of 10 (18 open). The branch is kept (not deleted), and so is its head. Reopen this PR, or re-cut it from the branch as a PR of at most 4 rows, after the 0.70.0 FINAL, when merge-main is allowed again. Why it was not landed or folded: the required checks Head
Residue NOT carried anywhere, so it must be re-cut from the branch after FINAL. These 28 files exist in neither main, PR-1 nor PR-2:
|
…! names it, and it does not parse Carried from #4431 (42f84fb, GH-4197). #4502 had the deletion, but PR-2 (the #4502 split) did not, so the file was left without a carrier. It is the one file under crates/ that fails kani_assume's fail-closed token count (unbalanced } at :35). Agent: aprender-59 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 353e1d64e84f7872b14c5a67078d18dec062b785) Agent: aprender-88
…4427 wraps ci/sections.yml runs in `setsid --wait` lint_passes_on_real_contracts failed 3/3 on shard 3: README's `bash scripts/check_readme_claims.sh` and CLAUDE.md's `bash scripts/check_package_includes.sh` no longer matched a CI line verbatim. normalise now drops a leading `setsid [--wait|-w]`; case table covers the non-prefix and bare forms. Refs #4431 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 7a8088d) Agent: aprender-66
- pv_surface_gate: VS-COUNT-001 (#2648) had no decision-table row. It now has one: a stated total_obligations of 5 against the fixture's one obligation, which is an Error for kind: kernel. - ont_refusal_receipt: the eight fixture copies of refusal-receipt-v1.yaml had not picked up ONT-8's evidence block. They are re-copied from contracts/ byte for byte. - ont4b_shapes_gate: contracts.nt was re-extracted with pv built from this tree. `pv extract contracts --check` now returns rc 0. - pvl_discharge_leanchecker: the stub-lake cases now pass --leanchecker-unscoped. The CI container has no user systemd, so the #4348 scope probe declined before the stub ran, and neither the accept verdict nor the reject verdict was ever measured. Measured locally: the 4 test binaries pass, 34 of 34 tests. Refs #2648 #4199 Pmat-Ticket: PMAT-4077 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 970e8c4) Agent: aprender-66
…s (ONT-4c Σ class 7) The other ten fixtures in 2dc1c9d already carry a newer, fuller block on PR-2, so only these ten need it. The change is additive only: a readers row plus the class map. No existing line changed. Agent: aprender-6b Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…CES paiml#4315) (paiml#4427) * replace(B2): batch/b2-ci-infra replayed onto main a5efa14 as one tree (REPLACES paiml#4315) Operator ruling 16:15 (via cop): no main-merges into PRs; cut fresh from main. merge-base(main, B2) == main a5efa14, so this tree is exactly B2 tip ffafeca. A linear cherry-pick stopped at commit 4/141 (Makefile, coverage-skips.txt): B2's 30 internal merges carry those resolutions, so the tree is replayed whole. Source commits (141, oldest first): - 2fc52a4 ONT-4c: the plan a quorum can read — five decisions, and the measured baseline they are taken ag - a13eb0f ONT-4c: the grill refused the plan, and the measurement refuses the grills own fix for D4 - 24e9465 ONT-4c: the roadmap entry, after its ONT family (Refs PMAT-3847) - 8e3bbea fix(coverage): skip by EXACT test path from a reasoned list, not 19 substrings (paiml#3839) - edff015 fix(coverage): never mv ~/.cargo/config.toml; exact-skip the zram timing test that blanked the nig - cbcec70 fix(coverage): --ignore-run-fail, failing tests LISTED, and "did not measure" is never a verdict ( - 09030be fix(coverage): no verdict when a test binary was KILLED — --ignore-run-fail swallowed it (paiml#3839) - 02fe2e0 fix(coverage): run aprender-serve's lib tests as per-module processes so none is OOM-killed (paiml#4023 - 8509d07 feat(ladder): paiml#4016 — llama.cpp fit is the placement gate for every ladder cell; no verdict = RE - 71e0224 feat(ladder): paiml#4016 — the fit ctx floor is min(4096, the model's trained context) (cop ruling) - 4a266eb fix(coverage): cap the gpu shard at 4 threads; run named heavy tests solo with measured peak RSS ( - 7c5ffda fix(coverage): chunk the gpu module into <=200-test processes; solos first; run everything before - 082df3c fix(coverage): the merged report must be --workspace; an unqualified report covers only the root f - 6236df8 fix(coverage): scope EVERY llvm-cov report by a derived -p list, plus a guard (paiml#4023) - 8dfaff5 chore(coverage): COV_FLOOR 88 -> 89 after the first complete measurement, 90.26% (paiml#4023) - fed0b56 chore(roadmap): file PMAT-4023 for the coverage-nightly port (paiml#4023) - 96a28d3 fix(coverage): classify the coverage lists; the scope guard refuses a vacuous scan (paiml#4023 quorum l - ee81968 fix(coverage): wire both new guards through guard_tree.sh --no-cargo, with no workflow edit (paiml#4023 - 54157e6 chore(roadmap): regenerate the aggregate for the new fragment (make roadmap-aggregate) - 384ad49 chore(roadmap): PMAT-4016 ticket entry (pmat work add --github-issue 4016) - 526e898 fix(package): four crates no longer ship tests that cannot compile from their .crate (paiml#4130) - 6cd6f36 ci: every guard a workflow step calls directly runs under setsid --wait (paiml#4133) - da71f44 fix(paiml#4130): aprender-core unit tests read repo-root contracts at run time — the paiml#4129/paiml#4048 patt - d1f3c58 fix(paiml#4130): check in aprender-db's generated_contracts.rs like the 25 other crates — a build no - 8868086 PMAT-4016: regenerate the roadmap aggregate (quorum round 1 lane 3, measured) + round-1 artifact - 9cf59b2 docs(audit): paiml#4130 implementation receipt + roadmap entry - c8c7643 ci: setsid --wait for guard calls in EVERY workflow; the guard scans all workflows and the sh/./ f - 10fa952 docs(audit): quorum-PMAT-4130 — 3/3 PASS at 9cf59b2 (gemini-3.1-pro-high, 3.8-flash-high, 3.7- - d5932e5 PMAT-4016: quorum receipt round 2 — 3/3 PASS (gemini 3.1-pro/3.8-flash/3.7-flash), not armed - 7e564b1 evidence(quorum): PMAT-4023 round at 54157e6 (3/3 gemini PASS, agreed) + cop ruling - 517edff ci(guard): check_guard_steps_isolated also refuses the bare form and scans .yaml workflows and com - dcf4823 fix(guard): include!d .rs files enter the formatting gate as a shrink-only ratchet — cargo fmt n - bc08f69 ci(mutants): mutate the WORKSPACE -- the blocking gate never mutated crate code; RED cap + nightly - 514e718 test(mutants gate): a row on the REAL cargo-mutants 27 outcomes.json shape; correct a claim in bc0 - 51b0485 ci(guard): run the mutants gate's case table on every PR via guard-tree - c759952 fix(mutants gate): keep the crates workspace-test excludes out of mutation -- aprender-compute wou - 2fadfd1 fix(mutants-nightly): diff from the last SUCCESSFUL nightly, not "24 hours ago"; anchor the exclud - 29641c0 docs(audit): PMAT-4133 receipt + quorum 3/3 at 517edff (2 agy + 1 haiku) - c5991aa fix(mutants-nightly): read the last successful run over REST, not gh -- the fleet has no gh (paiml#4142 - c5cf8d5 docs(audit): PMAT-4133 ph round lane 1 voided by cop ruling — 2/3, not armable - 0a5eafd docs(audit): degraded quorum receipt for paiml#4142 -- 3/3 PASS at c5991aa - 5743fb4 PVL-001 EV-4: make contracts propagates pv's exit — a failing pv lint | tail exited 0 - 739d80f fix(ci): the KEPT binaries' CLI tests ran nowhere — wire 82 targets capped, refuse a spawning ta - 0bff759 fix(roadmap): regenerate roadmap.yaml for the PMAT-4059 fragment; receipt claimed rc 0 from a pre- - aa0f702 fix(guard): a bare guard chained mid-line is refused too (paiml#4133 ph6 review) - 943cced docs(audit): PMAT-4133 round at the prior head recorded — superseded by the review fix, not coun - 354631a PVL-001 EV-4: the case table reads make's output by here-string, not a pipe into grep -q - 71b62fd audit(PMAT-4059): quorum r2 3/3 PASS at 0bff759 — gemini-3.1-pro-high, claude-sonnet-5, claude - 75f6b6b feat(pin): fleet hosts run ONLY the manifest nightly apr/pv — apr_bin.sh + pv_bin.sh refuse anyt - e6cce2a fix(nightly): per-arch publish, pv, CI-green gate and a SHA manifest (Refs paiml#4189) - f1c6803 PMAT-4186: roadmap entry carries kind:code (the rail's kind-gate refused without it) - b3690ca fix(apr-format): the v2 writer golden was stale since paiml#2254; pin the new one to the old by derivat - 8b15f91 docs(roadmap): paimlGH-4190 work entry - 52be02a fix(nightly): quorum findings — reused night crashed publish; upload-then-swap with retries; no- - 64cd17d chore(paimlGH-4190): the roadmap entry carries kind: code (the kind-gate reads it) - a909632 PMAT-4186: the nightly-pin case table is hermetic — scrub every knob once, pin the marker baseli - d0098f8 fix(nightly): a cancelled build was a permanent verdict; --version must print the crate version (# - 5c6fa5a fix(guard): check_guard_steps_isolated missed a bare guard after elif or in a case arm - 398a362 PMAT-4186: the Actions exemption needs a real run id and is never silent; any non-0/1 mode rc refu - e57562f PMAT-4186: a broken mode rule refuses with a reason, not silently - 30d14f4 docs(nightly): a NIGHTLY_BINS/--bin drift is build-failed, not missing-artifact (quorum r3 note) - 7d7af48 chore(paimlGH-4190): regenerate roadmap.yaml from its fragments (make roadmap-aggregate) - c88a6a7 docs(audit): PMAT-4133 ph8 quorum: 3/3 PASS at 5c6fa5a (degraded: same-family) - 94aa3f4 PMAT-4186: the denylist matches a binary's own sha256 and every object field; a relative override - 56ae4d3 fix(pin): a null generated_at read as fresh, and the rule came from the cwd's checkout - 50abde4 fix(paimlGH-4190): the PROVENANCE const precedes the test's statements (clippy::items_after_statements) - 89884bb fix(pin): zsh named a PATH-found resolver by its bare name; the leak guard never saw nightly_pin.s - 60f4810 fix(paimlGH-4190): the tree-reader ledger lists apr-format --test golden_fixtures (check_tree_reader_te - d87e43c fix(pin): a bare-name rule lookup searched PATH before the cwd - 7e6e08d fix(pin): an unset HOME read as "no fleet marker" and silently meant HEAD mode - 720759b test(pin): zsh rows for an empty HOME; guard $HOME in apr_bin.sh CARGO_HOME defaults - f4fc84c PMAT-4186: quorum receipt — AGREED 3/3 PASS on 720759b - 6adfc02 release: apr binaries embed their commit — APR_GIT_SHA_OVERRIDE from the host checkout (Refs paiml#42 - 519c541 feat(dogfood): paiml#4252 advisory apr-serve lane (gx10 CUDA -> lambda CPU yield) + 3-way serve bench - 0f83b9a fix(dogfood): paiml#4252 lane — one-line state protocol, used_gpu probe (paiml#4146), NO-VERDICT receipt - 92e3c9c fix(dogfood): paiml#4252 lane — one hard budget per ask (default 120 s), 'unavailable' on expiry - 803d335 docs(roadmap): PMAT-4252 entry + implementation receipt (paiml#4252) - 6205968 install.sh: --channel rc installs the newest -rc prerelease (closes paiml#4283) - a0f072f fix(dogfood): budget proven on the yield path; server identity by argv tokens (paiml#4252) - 62eee9c fix(dogfood): yield during model load, bounded probes, gx10-side state dir (paiml#4252) - 8f46a2b docs(receipt): round-2 fixes, watcher test, live yield re-proof on v0.69.3-rc.1; trace grep catche - 5d17cc3 fix(lane): killpg race and --timeout 0 cancelling the alarm (quorum R3, PMAT-4252) - af759e9 fix(lane): an alarm spent in the gx10 leg left lambda unbounded (quorum R4, PMAT-4252) - f1ff895 feat(release): aarch64-apple-darwin apr CPU asset, required by the asset checker (paiml#4292) - f5c28b1 fix(lane): budget alarm as BaseException, reap yielded servers, malformed 200 is a receipt (quorum - f2743de feat(release): darwin lane runs on the self-hosted mini-builder, not hosted macos-14 (paiml#4292) - be8bf8c ci: re-run with the keep-open body line (R-2 reads the event payload, so a rerun cannot see an edi - 8cccb57 ci: re-run with the keep-open body line (R-2 reads the event payload, so a rerun cannot see an edi - cf4a31c fix(lane): reap the killed server even when pid_alive answers 'dead' mid-exit (PMAT-4252) - 7a34570 feat(bins): every [[bin]] --version prints the build SHA via shared aprender-build-sha (Refs paiml#4219 - 69c3b5b Revert "fold paiml#4219 build-sha (feat/4219-build-sha) into B2 batch" - 66beb4d Revert "fold paiml#4282 (feat/4252-apr-dogfood-lane) into B2 batch" - 104c91b Revert "fold paiml#4294 (feat/4292-darwin-arm64-asset) into B2 batch" - c53bb80 chore(roadmap): regenerate aggregate after parking paiml#4282/paiml#4294/paiml#4219 out of B2 - 81f3419 fix(b2): clear the three guard reds the batch introduced - e69d400 chore(roadmap): PMAT-4219 kind:code, in progress (Refs paiml#4219) - c261e8e chore(audit): re-audit --version rows for the build-SHA bins (Refs paiml#4219) - eac1bc4 chore(dogfood): denominator 838 -> 864 after the 26 --version rows (Refs paiml#4219) - 3df7681 Revert "Revert "fold paiml#4219 build-sha (feat/4219-build-sha) into B2 batch"" - 6cc8033 feat(nightly): ship every workspace [[bin]], derived from cargo metadata (paiml#4189) - 2518199 fix(nightly): record probed every bin through a relative path from an empty cwd - b8158df docs(nightly): quorum NITs — stale self-test comment; why --bins none is never probed - e4623ad feat(release): every workspace [[bin]] builds and smokes at the release commit (paiml#4189) - 997e010 fix(binary-debt): run the qwen3-moe live `apr run` falsifier nightly on gx10, fail closed (paiml#4179) - 1385d34 chore(roadmap): PMAT-4179 fragment, kind:code (paiml#4179) - 478a0a0 ONT-4c: README.md, CLAUDE.md, one .apr and one CSV as graded contracts, with their extractors and - ebe54f6 ONT-4c: Σ entity_type_target_class is cross-checked against entity_types, not hand-kept; the spec - e0572d8 ONT-4c: restore the receipt's frontmatter fence and put the test tally in its table row (Refs PMAT - a27844f ONT-4c: receipt status is `complete`, the only value check_receipt_complete accepts for finished w - 8b1577f fix(ci): B2 reds after the paiml#4320 merge — py3.10 TOML reader, build.rs crate docs, tree-reader re - 674ce8e fix(guard): fallback TOML reader skips multi-line strings; parity row says skip, not silence (paiml#431 - 219af85 feat(nightly): ship apr --features cuda as apr-<target>-cuda, judged like every bin plus its libcu - e877e43 fix(lint): backtick APR_GIT_SHA in the three build.rs crate docs (clippy::doc_markdown) (paiml#4315) - 9c5acd0 fix(dogfood): re-derive per_binary/band/cluster baselines after the 26 --version rows (paiml#4315) - c560caa fix(paths): take the 6 shipped /home/noah paths B2 added back out — hardcoded-path ratchet +6 -> - c5b6f9c PMAT-3847: roadmap entry as a fragment + regenerated aggregate (guard-tree: fragment-required, sor - dc1e832 PMAT-3847: CI — shapes ratchet names ONT-4c's four shapes; CLAUDE.md tok/s literals removed - c4fd00a qwen-story-daily builds apr in place instead of cargo-installing into the host's ~/.cargo/bin — - a458e37 docs(audits): PMAT-4346 quorum receipt for c4fd00a -- 3/3 PASS, degraded same-family (agy lane e - 7fadb39 regen: roadmap aggregate after paiml#4346 fold - 7774007 fix(guard): include_fmt.py died on the runners' python 3.10 — no tomllib (paiml#4315) - b2f70a5 ONT-4c: explicit targetClass on the three new shapes; entity-props-ok maps `study` - 366c9bf test(build-sha): kill the 8 mutants B2's mutants job MISSED (paiml#4315) - fa35f3d fix(guard): include_fmt fallback refuses what it cannot read; case table in CI (paiml#4315 quorum) - 5e4bf6b fix(guard,build-sha): quorum round 2 — a stray triple quote refuses; the sha sources are injecte - 3912313 fix(guard): include_fmt fallback refuses an ambiguous multi-line string end (paiml#4315 quorum r3) - 079232a fix(guard): include_fmt fallback reads a line from its opener's delimiter only (paiml#4315 quorum r4) - ea58604 ci(cuda-nightly): run the paiml#4250 G0 serve batched-prefill test where the model exists - 47c4a58 fix(fold): B2 x main guard interactions — fit arg, setsid, no silent truncation - ae8566e PMAT-3847: re-arm ONT-4c's four shapes the v0.69.3 merge-back dropped - 5caa960 fix(fold): B2 x main — duplicate cmd ordinals, and the truncation baseline must not grow - 485940a fix(tests): four crates read their out-of-crate test fixtures at run time, so their published tarb - b07666f roadmap: paimlGH-4129 fragment (kind: code, measured in-tree and tarball proofs) - 74011c7 fix(ptop): the seven ENFORCE include_str!s of tests/ become one run-time test, so `--features ptop - aab7e20 fix(contracts): design_by_contract example reads contracts/ at run time, so `cargo test` builds fr - d6f9f91 fix(contracts): design_by_contract panics in tree on a missing contract, exits 2 only without the - 157ba6d fix(contracts): under .ONESHELL the lint line's `exit $$rc` ended `make contracts` green after lin - 6957787 fold(B2): regenerate roadmap aggregate for the paiml#4129/paiml#4130 fragments - d26f6fa fix(fold): B2 x ONT-4c — two claims name the command CI runs (setsid --wait), graph + ratchet re - 5511ee7 fix(fold): valid-under fixtures carry the merged Σ — B2's D-T1 rule refused main's copy - ffafeca fix(fold): regenerate tree_reader_tests.txt for the merged tree — guard-cargo + shard 2/3 red on Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(b2): free ordinal 457 for the golden-fixtures command; cite the floor const instead of tok/s literals Shards 1-3 REFUSEd: ordinal 455 was taken by main's ont7-valid-under-gate and by B2's apr-format-golden-fixtures. check_no_claim_literals: B2's paiml#4129 edit shifted five baselined doc lines in llama_370m.rs by 37, and the ratchet refuses re-keyed entries. The doc now names AC_SHIP2_010_MIN_DECODE_TPS_RTX4090 instead of repeating the numbers. The baseline is pruned by 22 stale entries (shrink only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(b2): rustfmt 19 include!d files main added after the include-fmt ratchet was cut guard-cargo's include_fmt_ratchet REFUSEd 17 include!d files (+2 test submodules rustfmt follows) that main gained since B2 and that are not in the baseline this PR introduces. Formatted rather than baselined: the baseline may only shrink. Refs paiml#4427 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(b2): real_model_iq_ab over cognitive 25 once rustfmt made pmat measure it — extract worst_normalised check_complexity_ratchet RED NEW: iq4_nl_device_ab_tests.rs::real_model_iq_ab cyclomatic 17 cognitive 28 after 71d0b2a reformatted the file. The normalised-error closure moves to a helper; pmat now reads 9/10 and 9/18. Behaviour unchanged (same loop, same NaN->inf and zero-denominator rules). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(profile): aarch64 syscall table named brk as recvmsg — 34 rows off; regenerated from the kernel headers Fragment 490 wires sprint9_filtering_tests for the first time, and on the gx10 aarch64 runner three of them failed: `echo` never showed brk. It did call it. ld.so's first syscall, brk(NULL), printed as `recvmsg(0x0, 0x0, 0x0) = <heap address>`, because socket..mremap sat two numbers high (brk 216, not 214). 34 aarch64 rows were wrong, with sched_yield and getrandom each listed twice. The x86_64 table had setgid..setsid one high and pkey_mprotect at 302 (prlimit64). Both tables are now regenerated from asm-generic/unistd.h and x86_64 asm/unistd_64.h with the same name set, and they compile on every host. The new abi_numbers tests pin every corrected row against the kernel numbers. They require strictly ascending numbers and unique names, because binary_search depends on both. Run against the old tables, all three fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): docker run --init under the 4 setsid-wrapped container steps — setsid as PID 1 reaps an orphan and exits 1 paiml#4427 wraps guard steps in `setsid --wait`. In the 4 steps that run it inside `docker run`, setsid is the container's PID 1: orphaned grandchildren (the nextest probe's cargo/rustc) reparent to it, its wait() returns one of THEIR pids instead of bash's, and util-linux errs "setsid: wait: Success", rc 1, before the guard prints a verdict. guard-cargo failed this way on gx10-build and yoga-build3 (runs 36182568927 a1/a2); main has no setsid, so it never did. Measured on gx10, image sha256:0569673d, same script + config as main: without --init 3/3 rc=1 'setsid: wait: Success' with --init 3/3 rc=0 'PASS: every key is understood.' without setsid rc=0 PASS --init makes tini PID 1, so orphans are reaped there, not by setsid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * evidence(pr-review): paiml#4427 receipt at a94d31c — DEGRADED (cuda-docs unreachable) Unsigned; the CI signer signs. Guard accepts a throwaway-key-signed copy. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(pr-review): sign this PR's receipt (PR-REVIEW-SKILL-002 v2 §4.3 CI signer) * evidence(pr-review): paiml#4427 receipt at 80aedd8 — DEGRADED Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(b2): two B2 guards read ci.yml, where paiml#4441 left no guard step — point them at ci/sections.yml After the merge with paiml#4441 (5 fat jobs), every old ci.yml job lives in ci/sections.yml, run by scripts/ci/fat_driver.py. - mutants: the step took its --exclude list from the workspace-test nextest line in .github/workflows/ci.yml; that line is now ci/sections.yml:446 only, so the step would exit 'no --exclude list found'. Read it from sections.yml. - check_guard_steps_isolated.sh (paiml#4133): scanned .github/workflows only, so it was blind to every guard step paiml#4441 moved; its self-test mutant found no wrapper to remove in ci.yml (FAIL). Scan ci/*.yml + ci/vendor/*.yml too and mutate ci/sections.yml (absent = FAIL, not a skip). Re-proven in the new scope: a bare invocation planted in ci/sections.yml -> rc=1; self-test 0 failed. - deploy-apr-install.yml (paiml#4460, landed after B2 was cut) called check_tool_versions.sh without setsid --wait; the guard refused it. Wrapped. Refs paiml#4427 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * revert(b2): take ONT-4c (doc contracts + measured-set ratchet) out of B2 — it lands via paiml#4431 Cop ruling on paiml#4427: split. The replay commit 2dcf2ee carried ONT row 4c, and that row put 324 of B2's 342 PR-diff mutants over the on-PR cap of 60 (paiml#4142; the cap is unchanged). This reverts only the ONT-4c paths: aprender-contracts ontology/ + lint/, the pv lint measured-set ratchet (lint.rs, lint_arming.rs), the ont4b/ont4c tests and cmd 530, tests/fixtures/ont, and the ONT-4c corpus rows (claude-md, csv-train, readme-root, model-setfit-slice, shapes.ttl, contracts.nt, ontology.yaml, lint-baseline.json, census.json, ont-model-receipts). The paiml#4219 build-sha and paiml#4129 out-of-tree changes in the same crates stay. aprender-contracts --lib: 1721 passed. aprender-contracts-cli: all green. Refs paiml#4427 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(b2): finish the ONT-4c split — tree-reader registry, CLAUDE.md/README claim fences 321baaa left three derived surfaces still pointing at ONT-4c: - scripts/tree_reader_tests.txt listed ontology::extract::{llm_context,readme} and ont4c_doc_contracts, so guard-cargo and workspace-test step 7 went RED on drift (regenerated with check_tree_reader_tests.sh --update). - CLAUDE.md cited contracts/claude-md.yaml (FALSIFY-DOCS-CLAUDE-001) and carried the ONT-4c bash/text claim-fence split; README.md the same plus the ONT frontmatter and a contract count of 1841. Both revert to the 2dcf2ee^ text; README keeps B2's own workspace-crate count (81, measured with cargo metadata). readme_contract 16/16; check_tree_reader_tests, check_readme_claims, check_readme_numeric_claims, check_ont_ratchet, check_pr_ont_delta green. Refs paiml#4427 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(ci): Σ cargo ids missed "- should panic" tests — 6 passing compute tests read as owed-not-executed libtest prints a #[should_panic] test as `test X - should panic ... ok`; cargo_ids() required `test X ... ok`, so x86-main's full-tier Compute step went RED on six tests that passed (tiling, blis::prepacked, brick::buffer, partition_view). Main is latent: its push tier never runs Σ compute. New self-test row; reverting the regex turns it RED. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(paiml#4427): restore CLAUDE.md claim baseline rows, regen supported.yaml, kill build-sha emit/git_rerun_triggers mutants Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Replaces #4317 (cop ruling 2026-09-25 16:15Z: no main-merges into a PR; a fresh branch from main instead).
One squashed commit on main a5efa14 carrying fold/b3-contracts-ont-docs @88885740d (263 commits, 63 merges). Conflicts with the B4 fold (#4312) were resolved to B3, which is a superset: 22 lint gates, NAMED_GATES [&str;14], sigma ReservedEntityType beside VocabularyMalformed. roadmap.yaml was re-aggregated, and census + README counts were regenerated with the pv built from this tree. Local results: fmt clean; aprender-contracts --lib 2001 passed; ont6_lint_verdict 7 passed; roadmap-fragment and readme-claims guards PASS. #4317's original body follows.
Emergency fold B3 (contracts / ONT / docs), operator 2026-09-24: "We FIRST RIGHT NOW, emergency merge all 80 into 4 batches., the enforce 10 max rule going forward."
Folded sources (each merged
--no-ff, history kept)Closes #4191
Closes #4207
Closes #4108
Closes #4112
Closes #3177
Closes #4081
Closes #4080
Closes #4198
Closes #4071
Closes #4074
Closes #4122
Closes #4075
Refs #4102
Refs #4175
Refs #4070
Refs #4139
Refs #3997
Refs #4002
Refs #3994
Refs #4000
Refs #3999
Refs #4001
Refs #4201
Refs #4202
Refs #4197
Parked (branch kept; re-enters via the next like-batch)
unanchored_but_bindablefrom 297 to 298. The fold was reverted out of the batch.chore/0.69.1-merge-back, which is 678 commits ahead of main (its PR chore: 0.69.1 merge-back — release/0.69.1-batch-2 + rc/0.69.1-x (X2) into main #4046 is closed). They touch CRUX files that do not exist on main (scripts/crux_vllm/*,scripts/lib/crux_cells_*, the README "Verified this release" section), so they cannot fold without the merge-back itself.Batch resolution
NAMED_GATEShas 11 entries.contract_walkexit-1 errors: ObligationsRejected + GateRejected + DischargeRejected (all three kept).workspace-test:needs: [guard-tree, workspace-test-shard](ci(workspace-test): shards wait on guard-tree, so a RED guard stops burning shard runner time (#3177) #4196) plus the release-push skip from ci.yml guards never run on PRs into release/** (or on fold pushes), so batch folds skip guard-cargo/guard-tree until the integration PR #4112.batch_fold.sh --regen), plus the pv-sat witness (make contracts) andtree_reader_tests.txt --update. There are 54 stalecli.rs:Nrows insurface_audit.csv, each re-derived from itsCommands::<Variant>.Local evidence (on this head)
make contracts: rc 0; aprender-contracts lib 1904 passed.cargo test -p aprender-contracts-cli: rc 0.cargo clippy -p aprender-contracts -p aprender-contracts-cli --all-targets -D warnings: rc 0.cargo fmt --all --check0 ·cargo deny check advisories0.Workflow change: #4150, #4163 and #4196 edit
.github/workflows/, so this batch needs a 3/3 quorum and the cop merges it.keep-open: #3994 #3997 #3999 #4000 #4001 #4002 (epics, Refs only)
ont-delta: resolves ONT-2c + ONT-4d + ONT-4e + ONT-5 land together; the PVL-001 EV-2/3/5a/6a/6c/7b/8a/10/11 gates land.
Folded: #3142 PVL-F7 advisory con-leche nightly (9ef6d39, merge of fd06d80)
.github/workflows/conleche-nightly.yml(advisory, cron + dispatch, clean-room pool, no runner-host or secret changes) +crates/aprender-contracts-staging/lean/conleche.sh.degraded: same-family(agy void twice on isolation):/mnt/nvme-raid0/tmp/pvl-a-q3142/VERDICT.md. Evidence:/mnt/nvme-raid0/tmp/pvl-a-3142/EVIDENCE.md(3 runs, 402163 decls accepted).Fixes #4199
🤖 Generated with Claude Code
Closes #4238
Closes #4355 #4357 #4358 #4359
🤖 Generated with Claude Code
Closes ONT-3a: extract:code — bindings resolve fail-closed across the workspace, via syn #4072
Conflict resolution
Untangle (cop ANDON, 2026-09-27):
git merge origin/main@aca6f2d7f6 → merge 1596517, regen b9de7de. No force-push.contracts:recipe|| exitper step + this branch's pv-sat witness lines; both neededcheck_no_claim_literals.shPASS, did not growlocaldecltop_line=|| return 2(multi-line foreign key refused, not dropped)lint-baseline.jsonlists top keys beforereadme/claude_md; ratchet PASS, self-test 34/34cargo metadata --no-depson the merged tree = 82readme_sync.sh --write→ 1855 (census fresh)roadmap_fragments.py aggregate --writeLocal:
cargo check --workspace✅ ·--test readme_contract16/16 ✅ · ont-ratchet ✅ · readme-claims ✅. Owner re-quorums.