Skip to content

Codex layer lane and adjudication judge default to effort max (standing GPT-6 rule); rules-only PR - #505

Merged
seathatflowsinourveins merged 1 commit into
mainfrom
claude/codex-lane-default-effort-max-20260929
Sep 29, 2026
Merged

seathatflowsinourveins merged 1 commit into
mainfrom
claude/codex-lane-default-effort-max-20260929

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes: the Codex layer lane (tools/sota-convergence/codex_lane.py) and the Codex judge/refuter (adjudicate.py codex) default to --effort max, the standing GPT-6 rule, instead of high. It updates the recipe step 4 and the README blind-wave example that passed --effort high, five tests that asserted the old lane default, two resume-test fixtures that would otherwise have hidden their own rule, the append-only lane-provenance.json registry, and adds a decision record. It touches no verdict row, wave or sealed artifact (codex_lane.py is a TRUST_PATHS file of scripts/verdict_review_gate.py, so it travels alone).
  • Base commit: 5cfa2400
  • Lane: lane:foundation (tools/, recipes/, tests/, docs/; manifests/evidence.json changes only file hashes).
  • Owned paths touched: tools/sota-convergence/codex_lane.py, tools/sota-convergence/adjudicate.py, tools/sota-convergence/lane-provenance.json, tools/sota-convergence/README.md, recipes/sota-convergence-practice.md, tests/test_codex_lane.py, docs/decisions/2026-09-29-codex-lane-default-effort.md (new), manifests/evidence.json.

SOTA sources

  • The repository's own recorded rule for GPT-6 judgment lanes, which this PR makes the lane default: docs/decisions/2026-09-27-model-currency.md (Codex CLI 0.157.1 row: gpt-6-astra at model_reasoning_effort=max), docs/decisions/2026-09-26-codex-worker-lane.md ("max is what every GPT-6 step here runs at") and recipes/README.md ("max, not the user default ultra"; ultra sends xhigh for gpt-6-astra per the bundled model catalog).
  • Codex CLI codex exec -c model_reasoning_effort=<effort> (openai/codex, the installed 0.157.1): the lane passes the value through unchanged, so the change is the default only.
  • The registry mechanism is the repository's own (tools/sota-convergence/lane-provenance.json, append-only; tests/test_verdict_lane_vendoring.py).

Evidence-class table

Claim Evidence class Command / receipt
tests.test_codex_lane passes 76 of 76 on unmodified origin/main and fails 5 after the default flip alone (TMPDIR outside /tmp); the hand-off's 49 of 76 is what the suite gives on unmodified main with the default TMPDIR because an empty /tmp/.git exists on this host local_integration TMPDIR=/dev/shm/effort-tmp python3 -m unittest tests.test_codex_lane (main: OK 76; flipped: FAILED failures=5); the same command without TMPDIR on main: FAILED failures=49, each --export ... is inside the git repository /tmp
Each resume rule (model, provenance, effort) is still tested on its own after the flip local_integration (mutation check on a scratch copy, restored) removing the model rule fails test_a_return_with_an_unknown_or_other_model_reruns_...; removing the provenance rule fails test_a_return_from_older_lane_code_or_prompt_reruns_... and others; removing the effort rule fails EffortResumeTests.test_a_return_made_at_another_effort_is_not_resumed
Trust-path tests pass on the final tree local_integration test_codex_lane 76, test_verdict_lane_vendoring 14, test_adjudicate 116, test_verdict_review_gate 167, test_landscape 95, test_record_verdicts 125, all OK
The full suite shows no failure caused by the change local_integration TMPDIR=/dev/shm/effort-tmp python3 -m unittest discover -s tests -t .: 7563 tests, 16 failures and 2 errors, 783 skipped. 12 of the 18 (test_adoption_launchd 6, test_adoption_bootstrap_macos 3, test_adoption_version_probes 2, test_adaptive_paper_metrics 1: signal, interrupt and timing tests) pass in isolation on this tree and on unmodified origin/main, so they failed only under the full run's machine load. The other 6 (test_codex_worker_lane: codex app-server, initialize: the server exited with code 1) fail with an identical set on unmodified origin/main
The registry entries name the current bytes and no existing entry changed local_integration, source_review registered codex_lane_py_sha256 and adjudicate_py_sha256 equal the sha256 of the files (5662227f8c51…, 81645780e37d…); an independent review compared every prior entry with the base file
No verdict row, wave or sealed artifact changes local_integration python3 scripts/verdict_review_gate.py --base origin/main --head HEAD: "no verdict rows changed"
Call duration of the layer lane at max not_measured recorded as a residual in the decision record; for scale only, 3 of 52 max GPT-6 jobs of another lane ran over the lane's 900 s default (maximum 977 s)

Local commands run

$ python3 scripts/validate.py
exit 0  {"components": 69, "hashed_files": 8083, "profiles": 4, "receipts": 171, "status": "passed"}
$ TMPDIR=/dev/shm/effort-tmp python3 -m unittest tests.test_codex_lane tests.test_verdict_lane_vendoring tests.test_adjudicate tests.test_verdict_review_gate tests.test_landscape tests.test_record_verdicts
593 tests, each module OK
$ TMPDIR=/dev/shm/effort-tmp python3 scripts/verdict_review_gate.py --base origin/main --head HEAD
verdict-review-gate: no verdict rows changed (base 5cfa2400e3eb)
$ python3 scripts/component_matrix.py --write && python3 scripts/new_host_grand_list.py --write
no generated file changed
$ TMPDIR=/dev/shm/effort-tmp python3 -m unittest discover -s tests -t .
Ran 7563 tests: 16 failures, 2 errors (12 pass in isolation, 6 fail identically on unmodified main; see the table)

Decision record

docs/decisions/2026-09-29-codex-lane-default-effort.md: the defect, the decision, the evidence, alternatives, the consequence and what would overturn it. An independent review of the first commit found one test-isolation defect (two resume fixtures built at high would have let the effort mismatch hide the model and provenance rules) and four record defects (the consequence was understated as effort-only, the adjudication registry entry was described incompletely, some claims had no supporting measurement, the timeout risk at max was unrecorded); this head repairs them.

Consequence for other sessions, in one line: any Codex lane return or adjudication produced with the previous codex_lane.py/adjudicate.py bytes, at any effort, cannot be recorded from a checkout with the new bytes (record_verdicts.py refuses other lane code) and is not resumed; finish an in-flight wave before this merges or rerun it after.

  • flag: DEFAULT_TIMEOUT stays 900 s; pass --timeout for a layer that needs longer at max, or raise the default in a follow-up once the layer lane's own durations are measured.
  • flag: docs/grand-catalog-handbook.md still says the 2026-09-22 wave ran at high; that is a dated fact about that wave and stays.

Host evidence

Not applicable (no evidence/hosts/ files).

Checklist

  • New/changed GitHub Actions are pinned to a full commit SHA with a version comment (none changed).
  • New/changed workflows declare top-level permissions: contents: read (none changed).
  • No secrets are printed, logged or committed; no new required secret was added.
  • No new paid hosting, subscription or billing surface was introduced.
  • Peer-owned untracked files and worktrees were preserved.

🤖 Generated with Claude Code

… standing GPT-6 rule requires

codex_lane.py's DEFAULT_EFFORT and `adjudicate.py codex --effort` were "high", and recipes/sota-convergence-practice.md
step 4 and the tools/sota-convergence/README.md blind-wave example passed --effort high, so a caller who followed
them ran the lanes below the recorded rule (docs/decisions/2026-09-27-model-currency.md, 2026-09-26-codex-worker-lane.md).
Both defaults, the recipe, the README example and the --effort help now say max. Five tests that asserted the old
lane default (three default-run model assertions, the dry-run command, one resume fixture) assert max. The
append-only lane-provenance.json gains an entry in the codex and adjudication lists for the new bytes.
With TMPDIR outside /tmp the lane suite passes 76 of 76 before the change and 5 tests needed updating after it;
the 49-of-76 reported in the hand-off comes from the Codex sandbox's empty /tmp/.git, not from the flip.
Its own pull request: codex_lane.py is a verdict_review_gate TRUST_PATHS file; no verdict row, wave or sealed
artifact is touched.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 29, 2026
@seathatflowsinourveins
seathatflowsinourveins merged commit 7a95cf4 into main Sep 29, 2026
30 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the claude/codex-lane-default-effort-max-20260929 branch September 29, 2026 14:46
seathatflowsinourveins pushed a commit that referenced this pull request Sep 29, 2026
…lure count

#505 (7a95cf4, native-agent-stack-76) set the Codex lane and adjudication default effort to max, so
the item leaves the "Unresolved" list and a short "Resolved since" paragraph names the change. The
record said the flip fails 49 of the 76 tests in tests/test_codex_lane.py. That count came from one
scratch run with no unmodified control and did not reproduce: two clean runs on the tree before #505
fail 5 tests from the constant alone (TMPDIR under /tmp and outside it) and the unmodified tree
passes 76 of 76. The mistake goes in the anti-pattern log with its rule (run the same command on the
unmodified tree first). Both files' hashes are registered on main's manifest in the same commit.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Sep 29, 2026
…lure count

#505 (7a95cf4, native-agent-stack-76) set the Codex lane and adjudication default effort to max, so
the item leaves the "Unresolved" list and a short "Resolved since" paragraph names the change. The
record said the flip fails 49 of the 76 tests in tests/test_codex_lane.py. That count came from one
scratch run with no unmodified control and did not reproduce: two clean runs on the tree before #505
fail 5 tests from the constant alone (TMPDIR under /tmp and outside it) and the unmodified tree
passes 76 of 76. The mistake goes in the anti-pattern log with its rule (run the same command on the
unmodified tree first). Both files' hashes are registered on main's manifest in the same commit.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Sep 29, 2026
…its failure count (#507)

* Dispatch record: close the GPT-6 lane effort item and correct its failure count

#505 (7a95cf4, native-agent-stack-76) set the Codex lane and adjudication default effort to max, so
the item leaves the "Unresolved" list and a short "Resolved since" paragraph names the change. The
record said the flip fails 49 of the 76 tests in tests/test_codex_lane.py. That count came from one
scratch run with no unmodified control and did not reproduce: two clean runs on the tree before #505
fail 5 tests from the constant alone (TMPDIR under /tmp and outside it) and the unmodified tree
passes 76 of 76. The mistake goes in the anti-pattern log with its rule (run the same command on the
unmodified tree first). Both files' hashes are registered on main's manifest in the same commit.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Dispatch record: add the tool owner's control evidence to the correction

native-agent-stack-76 reports that its own unmodified control, run in a clean worktree with the default
TMPDIR while an empty /tmp/.git existed on the host (gone since), failed the same 49 tests with the error
"--export ... is inside the git repository /tmp". The record and the anti-pattern row now say that the
equal count suggests the earlier scratch run measured that environment, not the flip, and that this
record did not reproduce it or keep its own error text. Hashes re-registered in the same commit.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Dispatch record: attribute each fact of the correction to its source

An automated review of #507 noted that the correction said the 49-test count "came from a scratch run
with no unmodified control" while the owner's record shows the same 49 on unmodified main under the
default TMPDIR while an empty /tmp/.git existed. The paragraph now states what the owner's record shows
(49 failures from that environment, 76 of 76 with TMPDIR outside /tmp, 5 after the flip alone), that
this section's 49 matched it from an uncontrolled scratch run whose error text was not kept, that
/tmp/.git no longer existed when this was checked and clean runs show 5 failures, and the check to make
before trusting a test count from a worktree under /tmp. Hashes re-registered in the same commit.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

---------

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant