Skip to content

Pre-registered benchmark suite for plan-composition conditions - #54

Merged
alanshurafa merged 7 commits into
masterfrom
claude/coevolution-benchmarks-plan-694e39
Aug 30, 2026
Merged

Pre-registered benchmark suite for plan-composition conditions#54
alanshurafa merged 7 commits into
masterfrom
claude/coevolution-benchmarks-plan-694e39

Conversation

@alanshurafa

@alanshurafa alanshurafa commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • add the frozen pre-registration, eight-task corpus, A/B/C/D generation matrix, three-judge blind comparison harness, sanitization, quota ledger, and report generator
  • keep condition C as an exploratory panel: Fable compose, independent Codex/GLM/Kimi critiques, then blind Fable synthesis
  • adapt the benchmark panel and GLM judge to the direct Z.AI and Kimi HTTP providers introduced on master
  • preserve direct-provider token provenance and make captured-cost reporting explicit about unavailable provider prices
  • add hermetic direct-HTTP stubs and prerequisite checks so benchmark tests never make live calls

Completed pilot

The permitted two-task pilot is complete; the full eight-task batch was not started.

  • generation: 2 tasks x 4 conditions = 8/8 complete
  • degraded cells: 0
  • judging: Fable 12/12, Codex 12/12, GLM 12/12 verdict files
  • unjudged pairs: 0
  • sanitize leaks: 0
  • judge failures: 0
  • report: benchmarks/reports/pilot1.md

The pilot is directional only. Its pre-registered B-vs-A primary result is “No evidence” at N=2. Exploratory condition C led the Fable and Codex rankings and won all six of their pair comparisons; GLM recorded 4.5/6 wins, with position-swap disagreement retained as position_biased rather than forced into a winner.

Verification

  • bash benchmarks/run-benchmark.sh --check
  • bash benchmarks/run-benchmark.sh --dry-run
  • fresh full repository gate: 41/41 suites green
  • panel contract: 107/107 assertions
  • judging contract: 15/15 scenarios
  • report contract: 16/16 scenarios
  • live pilot generation: t1 and t7, all conditions complete
  • live judge matrix: 36/36 expected verdict files
  • frozen pre-registration and corpus unchanged after the original branch push

Operational notes

  • raw results, credentials, and machine-local notes remain ignored and are not part of this PR
  • the full 8-task batch remains intentionally unstarted
  • no frozen corpus or pre-registration content was changed during installation or pilot completion

alanshurafa and others added 4 commits August 29, 2026 16:41
…extraction

Pre-registered A/B/C/D benchmark per approved plan (dual-reviewed v2).
Judge internals extracted from judge-bounce.sh unchanged (byte-diff
golden test) so cross-condition judging can share blinding and
evidence verification. Corpus frozen before any generation runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Phase 2-5 of the pre-registered benchmark: run-benchmark.sh (resumable
task x condition matrix with GLM quota ledger and MAX_PATH guard),
run-panel.sh (condition C critique panel), judge-matrix.sh + report.sh
(three-judge blind pairwise protocol). All test suites stubbed, $0.

tests/run-all.sh gains --jobs and --resume with a per-suite checkpoint
ledger: interrupted runs continue instead of restarting, and the pass
gate is cumulative across runs on the same tree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pr-emitter's orphan-cleanup glob claimed pel-code-sandbox-* dirs it
never creates, and code-proposer sandboxes lived in machine-global
/tmp — so any concurrent suite (or straggler EXIT trap) could delete a
live sandbox mid-canary. Surfaced by run-all --jobs; latent before.
Scope proposer sandboxes to the suite's own TMPDIR and drop the
foreign glob. Verified: both suites green run concurrently (--jobs 2).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 29, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-29T23:51:25.451198Z e8bcebb PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e8bcebbc17

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

**Primary comparison: B-vs-A** — does the cross-vendor Codex bounce beat stock
Fable? Decision rule, with 8 tasks, using the primary judge's sign test:

- B "helps" only at **>=7/8 decisive wins** (p<0.05, two-sided).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Correct the two-sided sign-test threshold

Seven wins in eight independent decisive trials has an exact two-sided binomial p-value of 0.0703125, not p<0.05; only 8/8 reaches a two-sided 5% threshold. As written, the preregistration and report.sh can label a non-significant result as “B helps”; either use an 8/8 threshold or explicitly preregister a one-sided test.

Useful? React with 👍 / 👎.

Comment on lines +654 to +657
if [[ -f "$out" ]] && verdict_is_valid "$out"; then
log "INFO: $task $seat $x vs $y — verdict already present, skipping."
SKIPPED=$((SKIPPED + 1))
return 0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Rejudge pairs when their inputs change

When a documented --force-cell t3/B reruns generation, every existing pair verdict involving B still passes this shallow validity check and is skipped, even though the stored prompt_sha256 refers to the old sanitized plan. The resulting report combines new generation artifacts with judgments of old artifacts; validate the stored prompt/document hashes against the current task and sanitized inputs before reusing a verdict.

AGENTS.md reference: AGENTS.md:L148-L150

Useful? React with 👍 / 👎.

Comment on lines +573 to +577
for attempt in 1 2; do
: > "$raw"; : > "$errf"
(
GLM_MODEL="$JUDGE_MODEL_GLM"
invoke_glm "$prompt_file" "$raw" "$errf" false

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Apply the GLM quota ledger during judging

With the default 8 tasks and 4 surviving conditions, this path dispatches 96 GLM trials without consulting or debiting glm-ledger.json. This contradicts the runbook's promised daily budget/pending-quota behavior, so a normal judging run can exhaust the free-tier allowance mid-batch instead of parking before dispatch; gate and debit each two-trial GLM pair using the shared ledger helpers.

AGENTS.md reference: AGENTS.md:L153-L154

Useful? React with 👍 / 👎.

Comment thread tests/run-all.sh
Comment on lines +173 to +174
if [[ "$RESUME" == true && -f "$LEDGER_DIR/$name.result" ]] \
&& read -r prev _ < "$LEDGER_DIR/$name.result" && [[ "$prev" == "PASS" ]]; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Scope resumed test results to the current tree

A ledger entry contains only PASS <elapsed>, so --resume skips the suite even after HEAD, tracked files, or the suite itself changes. Reusing the default .run-ledger after a checkout or edit can therefore report the new tree green without testing it; store and compare a tree/input fingerprint before accepting a prior PASS.

Useful? React with 👍 / 👎.

alanshurafa and others added 3 commits August 30, 2026 13:19
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
@alanshurafa
alanshurafa merged commit 2622c09 into master Aug 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant