Repository navigation
Research audit: X2 acceptance boundary for the selected owner map (no new kappa) - #1312
Conversation
…owner map (no new kappa) One named selected supplier obligation (X2, pending-axis disjointness across idle children of one physical family) traced through every checker on the reproduce path. X2 is enforced only by the review-time composition research/community-batch1099-audit/check_frontier1094.py; make frontier1094-verify and the community-batch1099 CI job do not re-run it for the selected supplier. A one-integer DATA-PHASES mutation preserves every role-level aggregate, is accepted by the complete R1-R7/X1 rule set, and is rejected only at X2; first X2-directed rejection controls included. Contributed by Navinor with help from opencode. X2 rule and owner audit by Josie Elliston (CrocSwap#1091), owner map by Rohan Arun (CrocSwap#1094), frozen verifier chain from Hao Yan's CrocSwap#858 lineage, batch1099 composition by Douglas Colkitt.
|
100-PR batch review at This remains open after scoped triage. Next review step: X2 semantic counterexample and source trace replay pass after fixture hydration. Clarify that missing semantic recomputation differs from acceptance of mutated pinned inputs: source-hash checks can reject the mutation. Full mutated-chain acceptance was not executed; narrow the structural-blindness claim or demonstrate the exact source-bound acceptance path. This is a specific continuation point, not a rejection or a request to redo already recorded checks. Completed local evidence is retained separately from outstanding whole-head obligations. Batch review, attribution and evidence. Thank you for the contribution. |
…ource-bound hash-pin path
|
Follow-up to the batch review note (reviewer comment, batch review doc) on Old claim wording (README answer paragraph, PR body, TASK.json evidence):
New claim wording (README.md answer paragraph, RESULT.json
Where hash/pin vs semantic rejection happens (new
Executed evidence, from one command (
So the demonstrated gap is semantic recomputation: no executed checker on Verification on the corrected tree
Remaining open obligations (substance unchanged, wording narrowed)
Credit is unchanged: the X2 rule and the independent owner audit are Josie Elliston's (#1091), the audited owner map is Rohan Arun's #1094 on Jeremy Kothe's T16 lineage, and the batch1099 composition is Douglas Colkitt's. Aaron Wang, with help from opencode. |
Adversarial audit of one selected supplier obligation; no new κ. Navinor, with help from opencode. Apache-2.0.
Task selection:
adversarial-audittrack viascripts/choose_research_task.py(OS-random nonceca8debca8488dd850dd6c0afb7398632), cardsupplier-boundary-audit(scope keydcdb0fa8e49b08a958d0), refined to one named condition. Base commitbce54fb3f895cbe5cd4c0eb477c3afeed100190f; audited source head0fc329d0bec93ca7cd288eaea1295172e8789810(the selected owner map, #1094).Question and answer
The card asks: does one selected supplier obligation follow from its actual source-bound checks?
Obligation X2: pending axes of distinct idle children of one physical family are disjoint, so a family's hosts on different children never share a cell (stated and checked in Josie Elliston's owner audit, #1091).
Answer: no. X2's acceptance does not follow from the selected record's
reproducecommand. It is enforced exactly once, at batch1099 review time, byresearch/community-batch1099-audit/check_frontier1094.py(pinned in the record'sproof_supplements). Neithermake frontier1094-verify(stageshistorical-source,baseline1042-cold/reuse,rare-pattern-exchanges) norscripts/verify_selected_result.py(record and hash validation only, no subprocess execution) nor thecommunity-batch1099.ymlCI job (which runsresearch/t16-owner-audit-seed67/verify.py --fetchfor its pinned claim list, #1022 through #1087, excluding the selected supplier) executes that composition. The frozen verifier chain the replay does run (upstream1087.tar.gz, Jeremy Kothe's PR 1087 chain with Hao Yan's (FanPUYen) PR 858 T16 edits) keys hosted cells per(owner, child, port)int16/indep16.pyand asserts onlylen(pending) == rankper child incode/audit_allcold.py; cross-child cell sharing is outside its rule set.Minimal adversarial instance
One integer in the pinned
DATA-PHASES.jsonpending axes: child 1's axis 131072 at port 0 replaced by 13, already pending for child 0 (children 0 and 1 are distinct idle children of the same physical family place). Exactly one differing integer; every rank, window, role count, width and profile aggregate is preserved.geometry()rejects it:X2: children [0, 1, 14] share axes at port 0.With only the X2 check suppressed,
geometry()returns an identical geometry object and the complete R1–R7/X1 rule set accepts the fixture. The X2 rule is the only rule that reads pending axes.Concrete damage: roles at time 3 and time 6 (both helper 476, owner replica 0, family 224, port 0, offset 0, width 8) resolve the same pending axis 13 of family 224 — one physical cell written twice — while every role-level rule accepts both.
A second mutation (one axis duplicated inside a single child's list) is rejected at X2 as well. Both are failure controls with single-locus, rank-preservation and null-mutation guards.
The existing rejection batteries contain no X2-directed mutant: the owner audit's 11 controls and the frozen chain's 6 independent-t16 controls. This PR supplies the first two, answering the card's method ("construct one semantically invalid but superficially well-formed fixture and test rejection").
Reproduce
Expected:
PASS_PR1094_X2_ACCEPTANCE_BOUNDARY_AUDIT. Fresh run on Python 3.13 (Windows) in this session returned that status with both mutants rejected at X2. Deterministic record and exact input pins inresearch/owner-x2-acceptance-boundary/RESULT.json. The repo suitepython3 -B -m unittest discover -s tests -p 'test_research_*.py'(withPYTHONUTF8=1) runs 20 tests with 5 errors and 1 skip — identical with this change stashed. The 5 errors are pre-existing environmental failures intest_research_onboarding.PackageTestson this Windows checkout (core.autocrlf=truebreaks the temp-fixture scaffold commit comparison); they do not involve this package.Files changed (new package only;
upstream/, frozen pins and selected record unchanged)research/owner-x2-acceptance-boundary/README.md— task card, trace table, evidence, open next questions.research/owner-x2-acceptance-boundary/verify.py— stdlib-only harness (positive control, M1/M2 mutants, cell-collision witness, blindness measurement, control inventory, enforcement trace).research/owner-x2-acceptance-boundary/RESULT.json— deterministic record with source pins.research/owner-x2-acceptance-boundary/TASK.json,VERIFY.json,SOURCES.json— scope metadata and replay manifest.Remaining obligations (not claimed)
The full
make frontier1094-verifycold replay with the mutated phases was not run (needs the published frontier1042 baseline artifacts and cold replay time); frozen-chain acceptance of the mutant is code-trace evidence, not execution.No claim other than the selected inputs was re-audited; the historical owner-boundary-audit package was used as a method example only.
This is a checker-coverage audit of one named obligation: not a construction, not a supplier change, not a κ claim, and not a proof of hosting soundness (X2 itself is enumerated on the pinned phases, not proved universally).
Credit and predecessor attribution
X2's rule wording and the independent owner audit are Josie Elliston's (#1091), reused unchanged as a library. The selected owner map is Rohan Arun's #1094 on Jeremy Kothe's T16 owner-map lineage (#1050 and successors); the frozen verifier chain is Jeremy Kothe's PR 1087 chain with Hao Yan's (FanPUYen) PR 858 T16 edits; the batch1099 composition and review are Douglas Colkitt's; independent endpoint pricing is Sagar Thakrar's #1069. Nearest concurrent findings: #1277 (the reuse replay discards its ancestry recheck) — same replay-coverage class, different obligation, credited for the direction; #1209 audits pending-axis independence of the selected data semantically, while this PR tests which checkers reject a corrupted fixture at all.
Audit by Navinor with help from opencode.