This directory preserves the benchmark inputs, protocols, raw reports, and negative results behind the short conclusion in the project README.
Historical raw archives may retain normalized host-path shapes, temporary
workspace paths, process identifiers, invocation identifiers, and runner
diagnostics when those bytes are bound by evidence hashes. Generic account
components such as /Users/user/ and /home/user/ are placeholders, not a
contributor identity. Treat those fields as local run provenance, not as setup
instructions or evidence that another machine will use the same paths. New
producers must redact credentials and normalize real account names before
committing artifacts; do not rewrite a frozen archive merely to make its
diagnostics look platform-neutral.
e2e-skills has useful behavior-backed development evidence and concrete open-source adoption, but it does not yet have a passing release-grade benchmark for generalized reviewer accuracy.
- The browser fixture archive completed 36/36 cells: each strong Playwright/Cypress test passed on correct behavior and failed after its paired application fault, while the deliberately weakened test stayed green against that fault.
- The exact-artifact reviewer benchmark contains 12 proven false-green cases and 12 separate clean guards. Ten fault cases are byte-identical operator mutants; two remove only answer-leading comments. It measures recognition of known fault shapes, not production accuracy.
- The current reviewer holdout is a pre-live corpus with 24 expected findings and 24 matched false-positive guards. No live v5 result is claimed.
- The v5 protocol can no longer complete. It preregistered
Claude Code 2.1.220, that build is no longer installed or retained, and v5 requires a complete three-host matrix. Protocol v6 reused the v5 corpus byte-for-byte — identical case and corpus digests — and changed only the frozen CLI identity. v6 stalled the same way: it preregisteredClaude Code 2.1.239, the local installer has since rotated that build away, and six of its nine cells need the Claude host. The build is still served by the vendor channel, so the matrix is recoverable by re-fetching it, not permanently lost. Five partial reports are archived in reviewer-holdout-v6. No v6 result is claimed. - Completed independent robustness gates v4, v5, v7, and v8 all failed their preregistered all-attempt criteria. V6 and v9 were superseded before model calls. V10 is frozen but has not been run.
- Findings have contributed to 14 merged upstream PRs. Those are self-selected case studies, not a representative validation sample.
| Evidence | Status | What it supports | What it does not support |
|---|---|---|---|
| Browser fault injection | Complete, 36/36 cells | The bundled fault operators distinguish strong tests from paired weak tests for the archived fixtures | Reviewer accuracy, generator quality, or production prevalence |
reviewer-fault-causal-v3.json |
12 false-green cases + 12 clean guards; 10 fault cases are byte-identical mutants | Exact linkage between known false-green shapes and reviewer expectations | A sealed or independently sampled holdout |
reviewer-holdout-v5.json |
Pre-live; 24 findings + 24 guards | A balanced public corpus and preregistered evaluation surface | Any live v5 accuracy or skill-lift result |
| Reviewer holdout v6 | Incomplete; 5 of 9 cells, 2 execution-complete | An auditable record of a protocol stalled by local CLI rotation, and one same-host no-skill/catalog-only contrast | Any v6 matrix result, any full arm report, or generalization |
| Independent product reviews | v4/v5/v7/v8 failed; v6/v9 not run; v10 frozen/not run | Repeated adversarial defect discovery and remediation tracking | A passing release gate, full-product coverage, or generalized accuracy |
| Reviewer holdout v2 | Invalidated for performance estimation | An auditable negative result: apparent false positives exposed oracle omissions | A clean precision estimate |
| Debugger protocol | Synthetic 30-case corpus; no independent oracle audit | F1-F15 framework/category coverage and replayable scoring contracts | Independently established debugger accuracy |
- v4: scores 90.50, 92.50, and 91.50; overall
FAILbecause the first attempt reopened a High-severity issue. - v5: scores 87.33, 88.00, and 88.00;
COMPLETE/FAILbecause every attempt reported at least one High-severity issue. - v6:
SUPERSEDED_BEFORE_FREEZE/NOT_RUNafter a prompt-byte accounting defect was found before model calls. - v7: attempts
PASS,PASS,FAIL; overallFAILbecause all three attempts were required to pass. - v8: attempts
INCONCLUSIVE,FAIL,PASS; overallFAIL. - v9: superseded before freeze because its preregistered Codex-only host was unavailable; no model calls were made.
- v10: reduced seven-surface packet frozen for Claude Opus/Fable attempts; no result is claimed until the preregistered run completes.
The archives intentionally retain failed and superseded rounds instead of rewriting the score after defects or oracle problems are discovered.
Packet discontinuity. The README section exclusions that keep a reviewer from being pre-fed this project's own case (README_EXCLUDED_HEADINGS in scripts/evals/run-independent-review.py) named headings that a later README rewrite had renamed or deleted, so the exclusion silently became a no-op and those sections shipped inside the packet. The names have been repaired and the runner now refuses to build a packet when a configured heading no longer resolves. Rounds built before and after that repair used different README content and are not directly comparable.
A protocol pins the CLI builds it was cut against, and require_explicit_runner_path
exists so a run names the build it used instead of whatever is currently on PATH.
Both matter more than they look:
- The installed
codexentry point is a symlink to an auto-updatingcurrentrelease. Between cutting v6 and running it, that pointer moved twice (0.146.0to0.147.0to0.149.0), and Claude Code moved as well. Passing the plain command name makes the recorded identity a race, not a pin. - Pass the versioned install path instead. Retained release directories are what make an older pinned identity reproducible from an ordinary checkout; once the installer rotates a build away, a protocol pinned to it stops being runnable without manual recovery, which is what stalled v5's Claude host.
- Local rotation has now stalled two protocols in a row. v5 pinned
Claude Code 2.1.220and v6 pinned2.1.239; the Claude installer keeps roughly four recent versions, so both pins left the local install within days of being cut. Neither build was deleted at the source: the vendor release channel still serves both, and the runner accepts an explicit--runner-path, so re-fetching the pinned build completes the matrix. What exact-equality enforcement costs is that the protocol cannot be run from a normal checkout the moment the local build rotates, and it buys nothing the comparator's within-matrix identity checks do not already provide.
Treat a pinned identity as reproducible while that exact build is still addressable — on disk, or re-fetchable from the vendor channel, which is a convenience and not a guarantee. This is provenance, not attestation.
The LLM-generated test evidence review tracks 59 named sources: 21 verified, 14 qualified, and 24 not cleared. External studies motivate the methodology, but results from unit testing, custom browser agents, or vendor tools are not presented as measurements of this project.