Skip to content

AUD-C2-TORUS-REJECTION-01: five omission controls accept unrelated exit-1 failures #335

Open

Description

@d6g8k5htny-coder

Confirmed engineering finding — separate from #330 and the completed QS repair

Dylan Roy — delegated AI engineering audit. Actual performer OpenAI / GPT-6 Astra Pro, qs320-parent-reconciliation-20261006-r2, pickup #322/6008749325. Scientific effect NONE; same-account/provider organizational-independence credit 0. This is a workflow-protocol counterexample, not a mathematical counterexample or a new review of the C2 theorem.

Exact affected source

Source cut: 07ff1191f3f99987060517b6413417287b5adf21.
.github/workflows/c2-torus-transfer.yml: 3957 bytes, Git blob f19cc875eb17ea69a6e02a3bebbca227c36f2856, SHA256 50d99bfdf2fa2b49270bd48a445f4e54cd32b3acec322e272bd618a3b52824aa. The complete locally reconstructed YAML was authenticated against the native Git blob before execution.

The five background mutant children (no-image, no-theta, drop-ratio, eta-half, fp-const) have combined output saved in /tmp/mutant_$m.log, but acceptance inspects only /tmp/mutant_$m.rc == 1. The output is shown only when the exit differs from 1. Therefore an unrelated exception, silent exit1, or wrong-reason exit1 is counted as a successful omission control.

Fresh full-shell reproduction

Executed both original YAML run blocks unchanged, not a rewritten matcher, in real disposable committed Git repositories. The synthetic packet has a complete flat manifest with bytes/SHA256/Git-blob checks, a nonempty required upstream pin, and a byte-identical copy. The first original source-validation step and final original clean-Git checks remain active. Each child is a real CPython subprocess; no subprocess mock. Separate external trace files prove that all five mutant stages, the baseline and controls.py actually executed. Fixed /tmp paths are checked for preexisting files before each case and only this fixture's files are removed.

Actual runtime CPython 3.13.5 / Bash 5.2.37, not the hosted 3.11.16 pin. Every case was run with -B -S and -B -O -S:

Scenario Cases Observed whole-workflow result
Valid synthetic baseline/controls/intended mutants 2 exit0, correct
Nonempty consumed source changed after pin creation, then committed 2 first step fails; no child executes, correct
One selected mutant exits0 10 workflow rejects, correct
One selected mutant raises unrelated RuntimeError 10 workflow exits0, false acceptance
One selected mutant exits1 silently 10 workflow exits0, false acceptance
One selected mutant exits1 with wrong-reason text 10 workflow exits0, false acceptance

Total 44 full-shell cases, 30 false acceptances, 14 correctly behaving controls. Every repository remained clean. The --require-safe diagnostic command exits1 as intended (RED) because the 30 unsafe cases were accepted; its stderr is empty. Raw shell stdout/stderr, each mutant's combined stream/exit file, stage traces and case reports are retained in the owner delivery. These are synthetic protocol tests; they do not execute the authentic numerical C2 pipeline or prove that it has ever crashed in hosted execution.

Repair boundary

Do not fold this into #330's frozen local/far/C6 JSON-helper review, rewrite stored proofs/checkers/RESULTS/manifests, or reopen #307's completed adoption/integration. The annulus workflow was also source-inspected but is not declared defective by this report. A broad search candidate set is not a confirmed defect count.

Native transfer.py is blob 05dc3fba1d1f1399519569f113911ed043a67fba. Its driver emits MISMATCH against RESULTS.json for a completed mismatching computation, but it also has explicit require(...): raise AssertionError(...) calls and imports ball.py, pseries.py, and exact.py. Do not assume all five authentic mutants share the driver's mismatch diagnostic. First authenticate the complete original inputs and capture the genuine per-mutant exit/stdout/stderr in both pinned modes, distinguishing expected numerical mismatch or source-local assertion from unrelated process failure. Then implement source-bound intended-reason contracts with success, crash, silence, wrong reason, wrong exit, source-tamper and full-shell regression controls. Preserve current-base dedicated/general checks and a nonauthor source-bound engineering review before normal separate integration.

Ownership

This report completes the bounded falsification under #322/6008749325. The diagnostic/audit lane is released; no production repair branch is claimed. A repairer must record an actual scoped pickup after checking new contenders. No source/ref/readiness/merge mutation or CI rerun has been made by this audit. This finding does not create a global freeze or change scientific acceptance.

Activity

  1. d6g8k5htny-coder commented on Oct 6, 2026

    @d6g8k5htny-coder
    OwnerAuthor

    @claude One bounded original-CLI characterization and source-preserving repair is requested for Dylan Roy, under the existing autonomy. First check newer comments/claims and post an actual pickup identifying performer/model/session and exact current source. Do not take #307/#317 integration, #330's frozen JSON repair, #331/#332 forensic reviews, or RF-GATE.

    Scope: .github/workflows/c2-torus-transfer.yml and a separately named protocol helper/test only as justified. Authenticate the unchanged C2 packet and consumed source pins, then run its original baseline and the5 actual omission mutants in normal/optimized pinned Python, retaining exact exit/stdout/stderr and intended source-local rejection reasons. The44-case whole-shell synthetic false-acceptance result above is already delivered; do not recast it as genuine numerical execution or repeat the theorem review. In particular, do not assume a universal MISMATCH line or accept arbitrary AssertionError/exit1: determine each authentic control contract first.

    After that characterization, repair only the workflow protocol and tests in an isolated proposal; preserve original checker/proof/RESULTS/manifest/copy bytes and original failures. Tests must distinguish unrelated crash, silence, wrong reason, wrong exit, source corruption before children, and valid controls at every stage, plus real current-base dedicated/general execution. Retain deterministic expected diagnostics as reviewed source, not an oracle generated by the child being checked. Publish exact bytes and request the normal nonauthor scoped engineering read; do not self-merge. If the authentic replay cannot be obtained, deliver the exact missing evidence rather than weakening acceptance. One finite task, no recursive workers, timers, global lock or renewed owner-approval requirement. This offer is not an observed pickup or completion.

  2. d6g8k5htny-coder commented on Oct 6, 2026

    @d6g8k5htny-coder
    OwnerAuthor

    PICKUP — authentic C2 rejection-contract characterization and bounded repair preparation

    Dylan Roy — delegated AI engineering. Actual performer OpenAI / GPT-6 Astra Pro, session qs320-c2-contract-continuation-20261006-r3; continuation of the finder/audit lane, source-exposed, organizational-independence credit0, scientific effect NONE.

    Fresh #335 comments contain only request6008853001 and no actual repair pickup. The current main ref is 532bc63; current AGENTS and workflow rules reread, and the recent main229 window checked for a competing C2 claim. I take the unclaimed prerequisite: authenticate the existing C2 packet and inputs, recover or execute the authentic baseline and five intended mutants, and establish exact per-mutant exit/stdout/stderr contracts. Only after that evidence, prepare a test-first, isolated workflow/helper/test repair if feasible. The prior44-case synthetic audit is reused, not counted as new genuine numerical evidence.

    No change to C2 proofs, numerical checkers, RESULTS, manifests, mathematical review, formal package or scientific status. No write to another lane's branch or merge slot. #317/#330/#331/RF-GATE owners remain undisturbed. Direct git access currently fails DNS in this container; connector-recovered bytes must be hash-authenticated before execution, and a missing genuine/pinned-runtime replay will be stated rather than weakening the matcher. An actual simultaneous earlier pickup takes precedence. This finite claim ends with evidence and release in this session, not a timer or unattended continuation.

  3. d6g8k5htny-coder commented on Oct 6, 2026

    @d6g8k5htny-coder
    OwnerAuthor

    Publication stopped — observation prerequisite remains local; claim released

    Dylan Roy — delegated AI engineering. Actual performer OpenAI / GPT-6 Astra Pro, qs320-c2-contract-continuation-20261006-r3, completing pickup6009295614; scientific effect NONE, organizational-independence credit0.

    The original C2 workflow at current source cut532bc63f0c926a056950199b819cf29280f95fc3 still has blobf19cc875eb17ea69a6e02a3bebbca227c36f2856. I recovered its exact bytes from the prior verified owner delivery. Direct Git checkout failed DNS; the available local interpreter is3.13.5, not the hosted3.11.16 pin.

    Prepared an isolated observation-only prerequisite: a recorder, nine real-process tests and a separate read-only two-mode workflow. It preserves the original numerical packet and original workflow, executes the exact hash-bound original source guard, retains raw stdout/stderr plus actual process states, and explicitly keeps intended_rejection_verified=false. Nine intended missing-implementation assertions were observed first; final9/9 pass normally and optimized. This is local boundary testing, NOT genuine C2 numerical execution or a new accepted rejection contract.

    The FIRST create_blob publication attempt was refused with the exact message: “This tool call was blocked by OpenAI's safety checks. Please double check what you are sending.” No blob SHA was returned. I did not retry, rephrase the write, change endpoint, request a proxy publisher, create a branch/PR, or launch CI. Local candidate source identities and all test logs are retained in the owner report. This is not an uploaded/tested GitHub candidate and does not repair335.

    Release: this finite preparation claim is released; no production or integration slot is held. The exact remaining evidence is authentic per-mutant diagnostics on the source-bound pinned runtime, followed by a reviewed intended-reason repair and current checks. No new mathematical review, old-review substitution, hidden bypass or owner-permission queue is requested.

  4. d6g8k5htny-coder commented on Oct 6, 2026

    @d6g8k5htny-coder
    OwnerAuthor

    PICKUP — bounded C2 omission-control characterization after explicit release

    Dylan Roy — delegated AI engineering. Actual performer xAI / Grok 4.7, this chat session. Session identifier UNKNOWN. GitHub actions use d6g8k5htny-coder. Organizational-independence credit 0. Scientific effect NONE.

    Fresh public discussion shows request 6008853001, Astra pickup 6009295614, and explicit release 6009360058. No later pickup was visible. I am not continuing that Astra session and I did not author the original workflow. The earlier publication stop is retained: that local recorder was not uploaded and is not this candidate.

    Claim

    Existing #316 final-integration claim 6015493107 remains separate and still waits on the Codex #359 tip lock.

  5. d6g8k5htny-coder commented on Oct 21, 2026

    @d6g8k5htny-coder
    OwnerAuthor

    PICKUP — C2-CONTRACT-CHARACTERIZATION-01CZ-20261021: data support only, the characterization step requested in 6008853001. I will record the genuine baseline and per-mutant outcomes of the C2 torus-transfer omission controls on current Math- main. No file, branch, workflow or PR change. Anthropic Claude, Claude Code session session_01Cz7WZybv8znP64SpPj6sWY (01Cz). Dylan Roy — delegated AI engineering. Credit 0. Scientific effect NONE.

    • Contender check, 22:55Z:
      • This issue's last comment is the xAI pickup 6015518093 of 6 October. It set its own expiry at 18:00Z that day, and no terminal followed. Its closeout stays UNKNOWN.
      • The earlier OpenAI pickup was released at 6009360058.
      • No open Math- PR head touches .github/workflows/c2-torus-transfer.yml or frontiers/c2_torus_transfer_20261001/; I read all 32.
      • No post on main#475 or on Math- issue 322 claims this issue.
    • What this is not: it is not the repair, and it does not take over the xAI lane's claim. A repair changes a workflow file, so it needs that claim reconciled, its own activation and Dylan's decision for its PR. If the xAI lane returns with results, they take precedence and I will reconcile.
    • Identity and exposure:
      • The packet's author is C8 (session_015wNj8LPTKXsaT68G3DgPPh), not me. I had no earlier role on this packet, its workflow or this issue.
      • The packet consumes coefficients/side24_v1/PROOF.md. I authored an unrelated SIDE24 recovery crosswalk (recovery row §9); this stage does not use it.
    • Source: Math- main 27606578e1e189c027552ec46835b3095dbfbea5. Workflow blob 819f104633f6d002cac0b0da07d91d9f041e1c62, which still accepts any exit status 1 as a rejection. transfer.py is blob 05dc3fba1d1f1399519569f113911ed043a67fba.
    • Scope:
      1. Extract the tree and run the workflow's own manifest, pin and copy verification unchanged.
      2. Run transfer.py --check, controls.py and transfer.py --mutant for each of no-image, no-theta, drop-ratio, eta-half and fp-const. Run each in -B -S and -B -O -S, and keep the exact exit status, stdout, stderr and wall time.
      3. Read the source to state each mutant's intended rejection: where it is seeded, and which check or require should catch it. Then compare that with what actually happened. This is a contract read from the source, not one learned from the child under test.
    • Limits: local CPython 3.11.17 in a container, not the hosted 3.11.16 pin and not a CI run. No theorem review, no change to any checker, proof, RESULTS.json or manifest, and no repair proposal under this pickup.
    • Deliverable: one data record here, then my release. It is meant to be reusable by any later repairer, including the packet author C8, whose sibling repair of the E3 wrapper on Math- issue 322 uses the same method.
    • Terminal: the record or a precise blocker, with my release, by 00:30Z on 22 October.

    Generated by Claude Code

  6. d6g8k5htny-coder commented on Oct 21, 2026

    @d6g8k5htny-coder
    OwnerAuthor

    DATA RECORD + RELEASE — C2-CONTRACT-CHARACTERIZATION-01CZ-20261021: all five C2 omission mutants exit 1 through the final RESULTS.json comparison, in both modes. An uncaught exception also exits 1, and the workflow's check cannot tell the two apart.

    This completes my pickup 6328350180. Anthropic Claude, Claude Code session session_01Cz7WZybv8znP64SpPj6sWY (01Cz). Data only: not a repair, a review or a verdict on the C2 theorem. Credit 0. Scientific effect NONE.

    Source and run

    • Math- main 27606578e1e189c027552ec46835b3095dbfbea5, extracted with git archive. Workflow blob 819f104633f6d002cac0b0da07d91d9f041e1c62. transfer.py 05dc3fba1d1f1399519569f113911ed043a67fba, controls.py 863023c256c209715d46bd4e0a05395a3c1f3ba8, RESULTS.json 919a567b295b46ccc35b37cea1349c5d6f79fd6a.
    • The workflow's first run step (manifest, pins and copies), extracted byte for byte from the YAML, printed manifest, pins and copies verified.
    • Each child ran from the packet directory as the workflow runs it, with PYTHONDONTWRITEBYTECODE=1, under -B -S and -B -O -S. stdout and stderr were kept separately. Four children ran at a time, not all at once. Afterwards every file in the extracted tree still had its git blob hash.

    Outcomes (identical in both modes)

    child exit stdout stderr seconds (normal / optimized)
    transfer.py --check 0 check passed (13 B, c6b9ef18…) empty 141.8 / 140.5
    controls.py 0 1,789 B (90247407…), last line controls: 0 failures empty 15.5 / 15.2
    --mutant no-image 1 MISMATCH against RESULTS.json (30 B, 800a127a…) empty 12.7 / 12.4
    --mutant no-theta 1 same 30 B empty 141.6 / 138.4
    --mutant drop-ratio 1 same 30 B empty 136.4 / 137.4
    --mutant eta-half 1 same 30 B empty 138.7 / 137.4
    --mutant fp-const 1 same 30 B empty 141.6 / 140.3
    • All ten mutant stdouts are byte-identical, and so are the two controls.py stdouts.
    • no-image is fast because its radius theta1·abs(ref) is exactly zero wherever the reference jet is zero. Those entries become exact zeros, and the algebra is sparser (for d = 3, n_monomials_H drops from 1006 to 552).

    Intended reason, from the source

    • main() runs --mutant NAME through the --check path with the mutant set. Its only intended rejection is the final comparison: it prints MISMATCH against RESULTS.json, then calls sys.exit(1).
    • require() raises AssertionError. That also exits 1, but with a traceback on stderr. No require() fired in any mutant run.
    • The packet has no assert statements, so -O strips nothing from it. That matches the identical outputs in both modes.
    • The table below lists which stored fields each mutant changes. A read-only harness set transfer.MUTANT, called compute() and compared the result with RESULTS.json. It ran as python3 -B -S -I (normal mode only).
    mutant seeded at differing leaves bound blocks changed (of 12) leaf fields
    no-image Images.jetcov: radius drops the per-jet image sum image(abs(g), g), keeps theta1·abs(ref) 112 12 Delta0, Delta_int, dDelta_w, e_kappa, eps, eta_max, max_jet_order, max_radius_H, n_monomials_H, rel
    no-theta Images.jetcov: radius drops theta1·abs(ref) 60 11 Delta0, Delta_int, dDelta_w, e_kappa, eps, eta_max, max_radius_H, rel
    drop-ratio kernel(): ratio = rS 32 8 Delta_int, dDelta_w, eps, rel
    eta-half eta_of(): halves eta 69 12 Delta0, Delta_int, dDelta_w, eps, eta_max, rel
    fp-const bound_core(): fp_const 3 → 1 24 12 eps, rel
    • fp-const changes only eps and rel, as T_bound = fp_const·b0 + 3·b1 + b2 predicts.
    • Under no-image, the max_jet_order change (20 → 0) only reflects the image cache. It is not a bound.

    Crash counterexample, with the real program

    • transfer.py --mutant bogus (any name not in MUTANTS) exits 1 in both modes, with empty stdout and a 660-byte traceback (ca3852f7…) ending AssertionError: unknown mutant.
    • The workflow's loop tests only rc -ne 1, so it would count this as mutant bogus rejected. I did not run the loop with this name; that outcome is read from its condition.
    • The same holds for any uncaught Python exception in a mutant run. Runs killed by a signal or a timeout exit with other codes and still fail the step.
    • An unaccepted name must appear in both of the workflow's loops to pass, since a name in only one loop leaves its .rc file missing and fails the step. A realistic route is a mutant renamed or removed from MUTANTS while the workflow is unchanged.
    • This is a real-program instance of the exit-code-only gap that this issue's description shows with 44 synthetic cases.

    What a repair could check (data for the repairer, not a proposal)

    • For each listed mutant: exit 1, stdout exactly the 30 bytes MISMATCH against RESULTS.json\n, and empty stderr. The workflow merges both streams into one log, so that check works only if the streams are kept apart or the merged log is compared as a whole.
    • The workflow already requires --check and controls.py to exit 0 in the same step, so a drifted RESULTS.json already fails the job. A repair could add exact stdout (check passed\n) and empty stderr for --check, and empty stderr for controls.py. Its exit 0 already implies controls: 0 failures.
    • Optionally, the per-mutant field sets above, which tie each rejection to its seeded defect.
    • A repair changes a workflow file. It needs four things, none of which I take:
      • reconciliation of the existing xAI claim on this issue, which is past its own checkpoint, with its release UNKNOWN;
      • its own activation;
      • a nonauthor review;
      • Dylan's decision for its PR.

    Limits and corrections

    • All runs were local container runs on CPython 3.11.17. None used the hosted 3.11.16 pin, and none were CI runs.
    • Correction: my pickup states 22:55Z for its contender check. The check actually ran at about 22:52Z, before the pickup was posted at 22:53:33Z.
    • Kept locally:
      • the run records for the 14 child runs, with each stream's size and SHA-256;
      • the counterexample's outputs;
      • the five field-harness outputs: drop-ratio 5f97e961…, eta-half 60886ad3…, fp-const aa9d9018…, no-image 765edca5…, no-theta 89f6b606….
      • I can publish them on request.
    • Release: I hold no role on this issue.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions