Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions .github/workflows/c6-factorial-moment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ name: C6 factorial-moment candidate checks
paths:
- 'frontiers/c6_factorial_moment_20260929/**'
- '.github/workflows/c6-factorial-moment.yml'
- 'tools/d5_c6_replay.py'
- 'tests/**'
workflow_dispatch:

permissions:
Expand All @@ -18,16 +20,23 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Full repository regression suite in both Python modes
run: |
set -euo pipefail
python -B -S -m unittest discover -s tests -v
python -B -O -S -m unittest discover -s tests -v
- name: Verify sources, replay both modes, reject mutants
env:
PYTHONDONTWRITEBYTECODE: '1'
run: |
set -euo pipefail
python -B -S - <<'PY'
import hashlib, json, pathlib, subprocess, sys
import hashlib, json, pathlib
from tools.d5_c6_replay import replay
root = pathlib.Path('frontiers/c6_factorial_moment_20260929').resolve()
manifest = json.loads((root / 'SOURCE_FILES.json').read_text())['files']
present = sorted(p.name for p in root.iterdir())
Expand All @@ -45,15 +54,7 @@ jobs:
expected = (root / 'RESULTS.json').read_bytes()
mutants = ['wrong-elimination', 'touching-balls', 'no-log', 'short-remainder']
for flags in (['-B', '-S'], ['-B', '-O', '-S']):
out = subprocess.run([sys.executable, *flags, script],
check=True, capture_output=True, timeout=300).stdout
if out != expected:
raise RuntimeError('output differs from RESULTS.json under ' + ' '.join(flags))
for m in mutants:
rc = subprocess.run([sys.executable, *flags, script, '--mutant', m],
capture_output=True, timeout=300).returncode
if rc != 1:
raise RuntimeError('mutant ' + m + ' not rejected')
replay(script, expected, mutants, 'factorial', flags, timeout=300)
print(json.dumps({'scientific_effect': 'NONE', 'mathematical_acceptance': False}))
PY
git diff --exit-code
21 changes: 11 additions & 10 deletions .github/workflows/c6-palm-route.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ name: C6 Palm-route checks
paths:
- 'frontiers/c6_palm_route_20260929/**'
- '.github/workflows/c6-palm-route.yml'
- 'tools/d5_c6_replay.py'
- 'tests/**'
workflow_dispatch:

permissions:
Expand All @@ -18,16 +20,23 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Full repository regression suite in both Python modes
run: |
set -euo pipefail
python -B -S -m unittest discover -s tests -v
python -B -O -S -m unittest discover -s tests -v
- name: Verify sources, replay both modes, reject mutants
env:
PYTHONDONTWRITEBYTECODE: '1'
run: |
set -euo pipefail
python -B -S - <<'PY'
import hashlib, json, pathlib, subprocess, sys
import hashlib, json, pathlib
from tools.d5_c6_replay import replay
root = pathlib.Path('frontiers/c6_palm_route_20260929').resolve()
manifest = json.loads((root / 'SOURCE_FILES.json').read_text())['files']
present = sorted(p.name for p in root.iterdir())
Expand All @@ -46,15 +55,7 @@ jobs:
mutants = ['no-slab', 'weak-zeta', 'lambda-too-large', 'series-ratio', 'factorial-power', 'schur-upper',
'forget-mark-power']
for flags in (['-B', '-S'], ['-B', '-O', '-S']):
out = subprocess.run([sys.executable, *flags, script],
check=True, capture_output=True, timeout=600).stdout
if out != expected:
raise RuntimeError('output differs from RESULTS.json under ' + ' '.join(flags))
for m in mutants:
rc = subprocess.run([sys.executable, *flags, script, '--mutant', m],
capture_output=True, timeout=600).returncode
if rc != 1:
raise RuntimeError('mutant ' + m + ' not rejected')
replay(script, expected, mutants, 'palm', flags, timeout=600)
print(json.dumps({'scientific_effect': 'NONE', 'mathematical_acceptance': False}))
PY
git diff --exit-code
21 changes: 11 additions & 10 deletions .github/workflows/d5-dimension-lift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ name: D5 dimension-lift checks
paths:
- 'frontiers/d5_dimension_lift_20260929/**'
- '.github/workflows/d5-dimension-lift.yml'
- 'tools/d5_c6_replay.py'
- 'tests/**'
workflow_dispatch:

permissions:
Expand All @@ -18,16 +20,23 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Full repository regression suite in both Python modes
run: |
set -euo pipefail
python -B -S -m unittest discover -s tests -v
python -B -O -S -m unittest discover -s tests -v
- name: Verify sources, replay both modes, reject mutants
env:
PYTHONDONTWRITEBYTECODE: '1'
run: |
set -euo pipefail
python -B -S - <<'PY'
import hashlib, json, pathlib, subprocess, sys
import hashlib, json, pathlib
from tools.d5_c6_replay import replay
root = pathlib.Path('frontiers/d5_dimension_lift_20260929').resolve()
manifest = json.loads((root / 'SOURCE_FILES.json').read_text())['files']
present = sorted(p.name for p in root.iterdir())
Expand All @@ -47,15 +56,7 @@ jobs:
'row-operation-third', 'euler-coefficient', 'adjugate-sign', 'one-soft-direction',
'flat-shell', 'weight-one-less-power']
for flags in (['-B', '-S'], ['-B', '-O', '-S']):
out = subprocess.run([sys.executable, *flags, script],
check=True, capture_output=True, timeout=600).stdout
if out != expected:
raise RuntimeError('output differs from RESULTS.json under ' + ' '.join(flags))
for m in mutants:
rc = subprocess.run([sys.executable, *flags, script, '--mutant', m],
capture_output=True, timeout=600).returncode
if rc != 1:
raise RuntimeError('mutant ' + m + ' not rejected')
replay(script, expected, mutants, 'd5', flags, timeout=600)
print(json.dumps({'scientific_effect': 'NONE', 'mathematical_acceptance': False}))
PY
git diff --exit-code
110 changes: 110 additions & 0 deletions reviews/d5_c6_workflow_repair_20261005/REPLAY_SCOPE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# D5/C6 named-rejection workflow repair

Dylan Roy - delegated AI engineering work. Actual author: OpenAI / GPT-6 Astra
Pro, `lm006-continuation-wrapper-repair-20261005`. Scientific effect **NONE**;
shared-account/provider organizational-independence credit **0**. This addresses
Math-#314, under pickup 6007256016 and contract clarification 6007291547. It does
not modify the scientific checkers, their proof packets, manifests or outputs.
Current execution and review dispositions belong to the PR's source-bound record.

## Why an adapter is necessary

The original three workflows accepted any mutant process exiting 1, including
an unrelated RuntimeError; they also ignored baseline stderr. D5 and C6 Palm
intentionally raise uncaught AssertionError through their own `require` function.
Factorial instead emits JSON with an exact failed-check set. Requiring empty
stderr and JSON directly from every unchanged original CLI would reject genuine
D5/Palm controls. The repair translates only their authentic assertion carrier.

`tools/d5_c6_replay.py` runs the full original script in a fresh child process.
For D5/Palm it accepts only an exact AssertionError class, argument message,
checker filename and final `(check_group, require)` traceback pair. It then emits
an identified JSON rejection with empty stderr. The parent also requires the
adapter's exact serialized bytes, including its single final newline. Output preceding the exception
is not suppressed and therefore fails the parent. All other exceptions propagate
as failures. The parent requires exit 1, empty stderr and an exact typed JSON
record. Normal completion is not rejection.

Factorial retains its original JSON output. The parent requires exactly its
baseline object/scope/check schema, exactly one mapped false check, all remaining
checks true, and `passed` false. Duplicate keys, nonfinite numbers, floats,
coerced Boolean/integer values, missing/extra fields and trailing data fail.
Every baseline must exit 0, reproduce the frozen RESULTS.json bytes and have
empty stderr. The complete ordered mutant inventory is mandatory in both modes.

The original workflow membership/size/hash checks and final tracked Git-diff
check are retained. This is not a general sandbox or an authenticity guarantee
against a malicious replacement of an entire reviewed repository. A process
protocol does not prove the mathematical claim tested by a finite checker.

## Authentic source cut and measured contracts

Repository `d6g8k5htny-coder/Math-`, source cut
`2f8b6f372be383d752e9dd30d38234faa977243c`.

| Family | Unchanged checker path | Git blob |
|---|---|---|
| D5 | `frontiers/d5_dimension_lift_20260929/lift_exact_check.py` | `460efe46126bb1b7b45954a7a8e0ef2f8e93c739` |
| Palm | `frontiers/c6_palm_route_20260929/palm_exact_check.py` | `6b0c73baeeb2ac566160e23cc405daec07eb7585` |
| Factorial | `frontiers/c6_factorial_moment_20260929/c6_check.py` | `0adaf6382e89af8ce2537c994013d0c5e05b011d` |

All three original baselines and every mutant were actually executed normally
and under optimization: 48 native processes total. The 10 D5 and 7 Palm messages
and originating groups agree across modes and are recorded in the helper and
independently in the test fixtures. The 4 factorial failures are respectively
ELIMINATION, PACKING, RADIAL and REMAINDER. The unmodified baseline identities are:

| Family | Bytes | RESULTS.json SHA-256 |
|---|---:|---|
| D5 | 5184 | `ae9ca864ff9db1f239910fa7c349c297aa1b5ffbd9863786ca20a61a6c1814e5` |
| Palm | 2775 | `7812de453ff1efd77ffc2431874243713615ce4fcc0e55f2beae991e24f6f6bc` |
| Factorial | 285 | `82ef312659552ef7fd783e188961df62088764ef79f575e3b29720585f32109f` |

The predecessor workflow blobs, used for red-phase controls, are respectively
`06a9c445bc8ae7b4af78bdb1ddee41f533e3a7db`,
`9dba863a2c1c155d8fa267da2de9cc91d8bce186`, and
`6d3a141555d4ed98f9ab9c1e6ff36e00683282da`.

## Regression and hosted execution boundary

```sh
python -B -S -m unittest discover -s tests -p test_d5_c6_workflows.py -v
python -B -O -S -m unittest discover -s tests -p test_d5_c6_workflows.py -v
```

The suite has 16 methods. Its workflow tests use 238 real committed temporary
Git repositories per outer mode, with hash-consistent synthetic checker/output
fixtures. They execute the entire original or repaired verification shell step,
including its membership/hash checks and final Git-diff command. No subprocess
is mocked. Every one of the 21 named mutant stages is targeted separately in
both child modes. Additional helper tests verify baseline/mutant timeout stages,
unknown-label exits, inventory completeness and strict JSON types.

The fixture scripts are not scientific evidence. They deliberately use small
synthetic baselines where no numerical reproduction claim is being made. A
predecessor replay can use the current test file with `WORKFLOW_SOURCE_ROOT`
pointing to a checkout containing the original three workflow blobs; the helper
unit tests still use the current helper while those workflow fixtures execute
the original shell code. Expected failures demonstrate the old admission defect.

All three workflows now run full repository `tests/` discovery in both outer
Python modes, with explicit fail-fast shell settings. Full-history checkout is
needed by the existing historical proof-reachability tests. Trigger paths cover
the helper and `tests/**`; existing action SHAs, Python 3.11.16, original process
timeouts, job timeouts, permissions and mathematical packet paths are unchanged.

Local source copies were authenticated before execution. Complete local GitHub
checkout was unavailable, so local full-repository discovery and original full
packet-membership verification are not claimed. Dedicated hosted jobs must run
the full repository tests and actual complete scientific packets at the tested
candidate. A general green formal/downstream check alone does not establish that
these three dedicated workflows executed. A later source/base requires its own
applicable checks; old receipts must not be rebound.

## Nonclaims

No D5/C6 theorem, Gaussian regression step, continuum argument, Palm law, global
closure, formal alignment, Lean source, scientific register or prize is changed.
Nonauthor technical review and eligible nonauthor/nonreader integration remain
separate from this author-side repair and its tests. The exact historical proof
and checker bytes remain available without edits or retrospective acceptance.
Loading
Loading