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.