Skip to content

Commit d931e0e

Browse files
committed
Merge branch 'cross-ref'
2 parents 2e9763f + 0517f06 commit d931e0e

46 files changed

Lines changed: 11510 additions & 6815 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
name: cross-ref-research
3+
description: "Use when implementing, extending, auditing, or QAing LLM Chess data/cross-ref workflows: external eval source snapshots, conservative model mapping, run_cross_ref.py commands, generated results, consolidated reports, mapping review, cross-eval reports, reproducibility audits, and verification."
4+
---
5+
# Cross-Ref Research
6+
7+
Use this skill for work under `data/cross-ref/`: adding or maintaining external evals, changing model mappings, regenerating published artifacts, auditing trust status, or updating the consolidated cross-eval report from generated facts.
8+
9+
Do not use this skill for ad hoc leaderboard commentary, fuzzy one-off model matching, or claims that will not be backed by source snapshots, mapping rows, generated artifacts, and runtime checks.
10+
11+
## Start Here
12+
13+
1. Read `data/cross-ref/README.md` for the research workspace shape, artifact roles, and trust boundaries.
14+
2. Read `data/cross-ref/CONSOLIDATED_REPORT.md` when the task touches published findings or unresolved mapping caveats.
15+
3. Choose the narrow task path: output review, mapping row review, command execution, publication, or methodology change.
16+
4. Work from the repository root with `.venv` active. Non-publish commands default to review outputs outside `data/cross-ref/`; use `--publish` only when intentionally updating checked-in generated artifacts.
17+
18+
## Procedure
19+
20+
1. Anchor the task in the smallest controlled surface: source snapshot, mapping CSV, adapter, generated result, report section, or failing command.
21+
2. Preserve the workspace contract: source snapshots, mappings, mapping rationale, generated results, and code live in separate folders.
22+
3. Treat model identity as research. Accept a mapping only when evidence supports the exact model/configuration; keep uncertainty visible as `ambiguous`, `unmatched`, or `excluded`.
23+
4. Run the cheapest check that can disprove the current change before expanding scope. For mapping or adapter edits, that is usually a focused `run_cross_ref.py` command with explicit `/tmp` outputs or `tests/test_cross_ref.py`.
24+
5. Publish generated artifacts only through `data/cross-ref/run_cross_ref.py --publish`. Do not hand-edit files under `data/cross-ref/results/`.
25+
6. Update `data/cross-ref/CONSOLIDATED_REPORT.md` only from generated summaries and reports, then keep caveats explicit when unresolved rows constrain conclusions.
26+
7. Before reporting done, run the task-relevant verification commands and the requested final checks. Use the QA handoff skill when the change is implementation-heavy or affects published artifacts.
27+
28+
## Examples
29+
30+
Existing mapping correction:
31+
32+
```text
33+
1. Inspect data/cross-ref/mappings/{eval_id}.csv and mapping-research notes.
34+
2. Update only rows with evidence; leave weak matches unresolved.
35+
3. Run the eval in review mode or to explicit `/tmp` outputs, then tests/test_cross_ref.py.
36+
4. If publishing, regenerate the eval artifacts, mapping_review.*, and cross-eval outputs as needed.
37+
```
38+
39+
Existing output trust check:
40+
41+
```text
42+
1. Run audit in default review mode while investigating, and add `--publish` only when refreshing checked-in audit outputs.
43+
2. Read audit status fields separately: reproducibility can pass while coverage remains review-needed.
44+
3. Trace headline claims through *_summary.json before editing narrative reports.
45+
```
46+
47+
Adding another eval:
48+
49+
```text
50+
1. Add evals/<eval-folder>/SOURCE.md with provenance, score meaning, columns, and caveats.
51+
2. Add adapter and runner registration.
52+
3. Add mappings/<eval_id>.csv with conservative statuses and rationale.
53+
4. Add focused tests, generate /tmp artifacts, review coverage, then publish through the runner.
54+
```
55+
56+
## Optional Work Splitting
57+
58+
For large mechanical row review or command-output verification, an agent may ask another agent to inspect a bounded slice. Keep the request mechanical, provide exact files and acceptance criteria, and re-check the answer against the source artifacts yourself. These helper notes are not cross-ref artifacts and are not required workflow.
59+
60+
## Edge Cases
61+
62+
- Python and pytest version strings are informational unless a command actually fails.
63+
- ARC `COST (V3)` remains unresolved in located official sources; keep cost interpretation conservative.
64+
- Human baselines and benchmark-system rows stay visible in source and coverage outputs but are excluded from LLM Chess correlation samples.
65+
- Release-controlled correlations are lower than raw Elo correlations; do not present raw correlations as model-capability proof without the timing caveat.
66+
- If generated outputs differ after a rerun, inspect whether the difference comes from source, mapping, code, dependency behavior, or expected artifact metadata before publishing.

.github/agents/gpt-l.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
name: gpt-l
3+
model: GPT-5.4 mini (copilot)
4+
description: General purpose fast model agent
5+
---
6+
7+
General purpose agent

.github/agents/qa-1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: qa-1
3-
model: Claude Opus 4.7 (copilot)
3+
model: GPT-5.3-Codex (copilot)
44
description: Use for QA
55
---
66

.github/agents/qa-2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: qa-2
3-
model: Gemini 3.1 Pro (Preview) (copilot)
3+
model: GPT-5.4 (copilot)
44
description: Use for QA
55
---
66

.github/agents/qa.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: qa
3-
model: Claude Opus 4.7 (copilot)
3+
model: GPT-5.4 (copilot)
44
description: Use for QA
55
---
66

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Consolidated Cross-Ref Report
2+
3+
## Bottom Line
4+
5+
Epoch ECI is the only supported external eval with a strong enough signal to treat as useful right now. ARC-AGI-2 has a positive Elo/rank relationship, but the prediction fit is baseline-level and the mapping ambiguity is much worse.
6+
7+
Do not sell this as broad benchmark validation. It is a two-eval comparison with unresolved identity debt.
8+
9+
## Signal Table
10+
11+
| Eval | Raw Elo | Release-controlled | Top chess metric | OLS CV |
12+
| --- | --- | --- | --- | --- |
13+
| Epoch ECI | Pearson `0.697`, Spearman `0.698`, `n=66` | Pearson `0.493`, `n=65` | `player_wins_percent`: Pearson `0.637`, Spearman `0.769`, `n=81` | `R2=0.381` vs mean baseline `-0.043`; rank Spearman `0.683` |
14+
| ARC-AGI-2 | Pearson `0.527`, Spearman `0.630`, `n=52` | Pearson `0.384`, `n=52` | `player_wins_percent`: Pearson `0.401`, Spearman `0.607`, `n=55` | `R2=-0.041` vs mean baseline `-0.044`; rank Spearman `0.485` |
15+
16+
Interpretation:
17+
18+
- ECI: usable relationship. The signal survives release-month control, and fold-local OLS beats the mean baseline.
19+
- ARC-AGI-2: weak relationship. Rank ordering is not empty, but calibrated prediction does not beat baseline in a meaningful way.
20+
- Shared signal: `player_wins_percent` is the strongest non-Elo chess metric for both evals.
21+
22+
## Method In One Screen
23+
24+
- Only mapped rows with status `accepted`, `alias`, or `variant-compatible` enter analysis.
25+
- `ambiguous`, `unmatched`, and `excluded` rows stay visible in coverage and mapping review, but do not enter correlations.
26+
- Multiple external rows for one LLM Chess player are deduped by keeping the highest external score.
27+
- Pearson `r` measures linear fit; Spearman `rho` measures rank-order fit.
28+
- Raw Elo correlates external score directly with LLM Chess Elo.
29+
- Release-controlled Elo first predicts each side from release month, subtracts predicted from actual on both sides, then correlates the two residual lists.
30+
- OLS CV uses repeated 5-fold cross-validation over 3 seeds. Feature selection happens inside each training fold, not on the full target sample.
31+
32+
## Coverage Debt
33+
34+
| Eval | Numeric rows | Accepted mappings | Metric sample | Elo sample | Unmatched external rows | High-impact unresolved |
35+
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
36+
| Epoch ECI | 161 | 89 | 81 | 66 | 79 | 15 |
37+
| ARC-AGI-2 | 150 | 65 | 55 | 52 | 92 | 15 |
38+
39+
The audit currently reports `reproducibility_status = pass`, `coverage_status = review-needed`, and `unresolved_row_count = 169`.
40+
41+
## What Raises Signal
42+
43+
1. Resolve high-impact mapping rows first: frontier GPT, Claude, Gemini Deep Think, DeepSeek, Qwen, Kimi, and GLM rows near the top of each leaderboard.
44+
2. Keep plain-model rows separate from reasoning effort, product tier, context-window, benchmark-system, and preview variants unless source evidence proves equivalence.
45+
3. Add more external evals only after their source score semantics and model identities are clear enough to avoid another ambiguity pile.
46+
4. Treat OLS prediction as secondary. The primary signal is still raw and release-controlled Elo correlation plus row-level mapping quality.
47+
48+
## Evidence Pointers
49+
50+
- Methodology and workspace guide: [README.md](README.md)
51+
- ECI summary: [results/eci_summary.json](results/eci_summary.json)
52+
- ARC summary: [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json)
53+
- ECI report: [results/eci.html](results/eci.html)
54+
- ARC report: [results/arc_agi_2.html](results/arc_agi_2.html)
55+
- ECI coverage: [results/eci_coverage.csv](results/eci_coverage.csv)
56+
- ARC coverage: [results/arc_agi_2_coverage.csv](results/arc_agi_2_coverage.csv)
57+
- Mapping sources: [mappings/eci.csv](mappings/eci.csv), [mappings/arc_agi_2.csv](mappings/arc_agi_2.csv)

data/cross-ref/README.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Cross-Ref Research Workspace
2+
3+
## Purpose
4+
5+
This workspace tests whether frozen external benchmark scores line up with LLM Chess outcomes after conservative model identity mapping.
6+
7+
This README is the operating guide. It should stay stable across result refreshes: use it for layout, artifact roles, commands, and methodology. Use [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md) and the per-eval result artifacts for current findings.
8+
9+
## Artifact Map
10+
11+
| Artifact | Role |
12+
| --- | --- |
13+
| [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md) | Cross-eval findings, current caveats, and research next steps. |
14+
| [results/eci_summary.json](results/eci_summary.json), [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json) | Machine-readable per-eval facts used for reporting. |
15+
| [results/eci.html](results/eci.html), [results/arc_agi_2.html](results/arc_agi_2.html) | Human-readable per-eval reports. |
16+
| [results/eci_coverage.csv](results/eci_coverage.csv), [results/arc_agi_2_coverage.csv](results/arc_agi_2_coverage.csv) | Row-level coverage and inclusion surfaces. |
17+
| [mappings/eci.csv](mappings/eci.csv), [mappings/arc_agi_2.csv](mappings/arc_agi_2.csv) | Runtime model-identity source of truth. |
18+
| [mapping-research](mapping-research) | Evidence notes behind mapping decisions. |
19+
| [evals/eci/SOURCE.md](evals/eci/SOURCE.md), [evals/arc-agi-2/SOURCE.md](evals/arc-agi-2/SOURCE.md) | External source provenance and score semantics. |
20+
| [evals/eci/epoch_eci_apr_2026.csv](evals/eci/epoch_eci_apr_2026.csv), [evals/arc-agi-2/arc-agi-2-apr-2026.csv](evals/arc-agi-2/arc-agi-2-apr-2026.csv) | Frozen external source snapshots. |
21+
22+
## Methodology
23+
24+
### Pipeline
25+
26+
1. Parse each frozen external snapshot into normalized rows with one numeric target score.
27+
2. Map external model names to canonical LLM Chess player names through the mapping CSVs.
28+
3. Include only `accepted`, `alias`, and `variant-compatible` mappings in statistics.
29+
4. Keep `ambiguous`, `unmatched`, and `excluded` rows visible in coverage outputs, but out of correlations.
30+
5. Join included mappings to LLM Chess rows by canonical player name.
31+
6. If multiple external rows map to one chess player, keep the highest external score for that player.
32+
7. Compute non-Elo metric relationships on `metric_analysis_rows_max_dedupe`.
33+
8. Compute Elo relationships on `elo_analysis_rows_max_dedupe`, which requires non-null external score and LLM Chess Elo.
34+
35+
The mapping step is intentionally conservative. A plausible name match is not enough when reasoning mode, product tier, context window, benchmark system, or preview status could change the identity of the model being evaluated.
36+
37+
## Statistics
38+
39+
- Pearson `r`: linear correlation. Larger absolute value means a straighter line.
40+
- Spearman `rho`: rank correlation. Larger absolute value means the ordering agrees more, even if the line is not clean.
41+
- Raw Elo correlation: `corr(external_score, llm_chess_elo)` on the Elo sample.
42+
- Simple `R2`: Pearson `r` squared for one single metric against the external score.
43+
- OLS CV: repeated 5-fold cross-validation over 3 seeds. Features are selected inside each training fold from predeclared non-Elo chess metrics, then scored on held-out rows.
44+
45+
### Release-Controlled Elo
46+
47+
Raw Elo correlation uses two lists: external scores and LLM Chess Elo values. Release-controlled Elo uses the same final correlation operation, but first replaces both lists with release-date residuals.
48+
49+
Starting from the Elo sample, keep rows with usable release-month metadata:
50+
51+
1. Convert each model release date to a release-month value.
52+
2. Fit a linear model that predicts external score from release month.
53+
3. Subtract predicted external score from actual external score. This gives one external-score residual per row.
54+
4. Fit a separate linear model that predicts LLM Chess Elo from release month.
55+
5. Subtract predicted Elo from actual Elo. This gives one Elo residual per row.
56+
6. Compute Pearson correlation between the two residual lists.
57+
58+
In formula form:
59+
60+
```text
61+
raw_elo = corr(external_score, llm_chess_elo)
62+
63+
external_residual = external_score - predict(external_score from release_month)
64+
elo_residual = llm_chess_elo - predict(llm_chess_elo from release_month)
65+
66+
release_controlled_elo = corr(external_residual, elo_residual)
67+
```
68+
69+
The release-controlled value answers a stricter question: among models with comparable release timing, do models that beat their date-based external-score expectation also beat their date-based chess-Elo expectation? It removes only the linear release-month trend, not every possible time-related confounder.
70+
71+
## Interpretation Boundaries
72+
73+
- Correlation is association, not causation.
74+
- Raw Elo correlation can be inflated by chronology because newer models often improve across many benchmarks at once.
75+
- Release-controlled correlation is a timing check, not a full causal adjustment.
76+
- OLS CV is a prediction check; it can fail even when rank correlation is positive.
77+
- Mapping uncertainty is part of the result. Do not hide unresolved rows just because they are excluded from statistics.
78+
79+
## Review Order
80+
81+
1. Read [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md) for the cross-eval bottom line and current caveats.
82+
2. Inspect [results/eci.html](results/eci.html) and [results/arc_agi_2.html](results/arc_agi_2.html) for per-eval detail.
83+
3. Check [results/eci_summary.json](results/eci_summary.json) and [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json) when a claim needs machine-readable backing.
84+
4. Use [results/eci_coverage.csv](results/eci_coverage.csv), [results/arc_agi_2_coverage.csv](results/arc_agi_2_coverage.csv), and the mapping CSVs to review row-level inclusion decisions.
85+
5. Use `mapping-review` or `audit` commands below for generated review surfaces that are not necessarily checked in.
86+
87+
## Commands
88+
89+
From the repository root with `.venv` active:
90+
91+
```bash
92+
.venv/bin/python data/cross-ref/run_cross_ref.py eci
93+
.venv/bin/python data/cross-ref/run_cross_ref.py arc_agi_2
94+
.venv/bin/python data/cross-ref/run_cross_ref.py cross-eval
95+
.venv/bin/python data/cross-ref/run_cross_ref.py mapping-review
96+
.venv/bin/python data/cross-ref/run_cross_ref.py audit
97+
```
98+
99+
Default runs write scratch review outputs. Add explicit `--summary-output`, `--report-output`, `--csv-output`, or `--html-output` paths when you need a stable temporary artifact. Use `--publish` only after reviewing outputs and intentionally updating checked-in generated artifacts.
100+
101+
Focused examples:
102+
103+
```bash
104+
.venv/bin/python data/cross-ref/run_cross_ref.py mapping-review --status ambiguous --eval-id eci
105+
.venv/bin/python data/cross-ref/run_cross_ref.py rerun-diff eci
106+
.venv/bin/python data/cross-ref/run_cross_ref.py cross-eval --summary-output /tmp/cross_ref_summary.json
107+
```
108+
109+
## Layout
110+
111+
- [evals](evals): frozen external source snapshots and provenance notes.
112+
- [mappings](mappings): mapping CSVs read by the runner.
113+
- [mapping-research](mapping-research): evidence notes for mapping decisions.
114+
- [model-identity](model-identity): generated LLM Chess model inventory.
115+
- [results](results): checked-in per-eval summaries, coverage files, and human reports.
116+
- [adapters](adapters), [framework](framework), and [run_cross_ref.py](run_cross_ref.py): normalization, analysis, and publication code.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"""Adapters for external evaluation sources."""

0 commit comments

Comments
 (0)