a11oy / docs /benchmark-evolution-doctrine.md
betterwithage's picture
sync(space): full source mirror — resolve all GitHub<->Space drift (CTO)
a6a5d8e verified
|
Raw
History Blame Contribute Delete
3.89 kB

Benchmark evolution doctrine

A11oy benchmark claims are evidence artifacts, not slogans. A run is publishable only when the corpus, route, judge panel, receipts, and raw results are immutable and replayable.

This doctrine covers competition-math goals in agi-forecast, theorem/runtime routes in lutar-lean and a11oy, and any future Hugging Face test-results mirror.

Corpus immutability

  • Every corpus has a stable corpusId, corpusVersion, sourceUri, license, canonicalization, sha256 or externally declared digest, and problem-count manifest.
  • A changed prompt, solution, rubric, split, metadata row, or canonicalization rule creates a new corpusVersion.
  • Old corpora are never overwritten. They may be deprecated by pointer only.
  • competition-math problem text may be stored only when license permits. Otherwise store official/source pointers, metadata, and content digests.

Competition-math raw-score honesty

  • Report competition-math benchmark results as raw points: earned_points / possible_points, with year/problem breakdown.
  • Do not say “solved the benchmark” unless a sealed, pre-registered corpus reaches a declared threshold with receipts, reproducible tooling, and unanimous headline judge agreement.
  • Separate answer correctness, proof validity, Lean/formal verification, runtime formula routing, and provenance compliance.
  • Publish failed attempts, retries, time budgets, tool use, and judge disagreements.

Formula routing

Each benchmark item may route to zero or more formulas:

  • FalsePosition
  • MadhavaBound
  • LiuHuiPi
  • SummationInvariant
  • AdversarialRobustness
  • QECLineage
  • ReceiptSubstrate

A formula route is advisory unless backed by:

  1. a theorem-runtime manifest ID;
  2. a runtime file;
  3. a test file;
  4. a validation command;
  5. a current claim status.

Ancient or historical lineage never gives benchmark credit by itself.

Multi-judge panels

Minimum panel:

Judge Role
raw_grader Scores final answer against a rubric.
proof_judge Checks reasoning, theorem use, formalization, or runtime verification.
provenance_judge Checks receipts, corpus digest, tool budget, and claim wording.

Two-of-three agreement may publish a raw result. Unanimous agreement is required for headline claims.

Receipt requirements

Each run emits JSONL receipts containing:

  • runId
  • sourceCommit
  • benchmarkMapSha256
  • corpusSha256 or externalCorpusDigest
  • problemId
  • promptSha256
  • modelId / solverId
  • toolPolicy
  • attemptNumber
  • answerSha256
  • judgePanelSha256
  • rawScore
  • timestamp
  • prev_receipt_hash

Receipts must verify as an append-only chain before a result is mirrored.

Hugging Face test-results publication

GitHub remains canonical. Hugging Face can mirror benchmark outputs to a dataset such as SZLHOLDINGS/a11oy-test-results with:

  • README.md
  • benchmark-map.json
  • results/*.jsonl
  • receipts/*.jsonl
  • MANIFEST.json

The HF dataset must say mirror-not-canonical and point back to GitHub commits, CI runs, receipts, and payload manifests.

CI gates

Block benchmark PRs unless:

  • benchmarks/benchmark-map.json validates;
  • corpus/result digests match bytes on disk or declared external digests;
  • formula routes resolve to docs/theorem-runtime-manifest.json;
  • Competition-math benchmark language remains raw-score/staged unless evidence supports more;
  • receipt JSONL verifies as append-only;
  • HF dry-run includes benchmark/test-results files.

Current state

The current benchmark map is deliberately staged: it defines the operating contract and formula routes, but it does not claim a live benchmark score. The next operational step is a pinned corpus manifest, judge-panel config, and receipt-emitting runner in agi-forecast or a dedicated benchmark package.