Agent skill

Cross Ref Research

by maxim-saplin in maxim-saplin/llm_chess

A skill your agent uses when implementing, extending, auditing, or QAing LLM Chess data/cross-ref workflows: external eval source snapshots, conservative model mapping, runcrossref.py commands…

Apache-2.0Auto-check passedResearch & Science

Install Cross Ref Research

skills CLI
$ npx skills add maxim-saplin/llm_chess --skill cross-ref-research -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install maxim-saplin/llm_chess cross-ref-research --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/maxim-saplin/llm_chess.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/cross-ref-research .claude/skills/cross-ref-research && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cross-ref-research
GitHub stars
136
Token cost
~2.7k tokens
SKILL.md length
1,297 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when implementing, extending, auditing, or QAing LLM Chess data/cross-ref workflows: external eval source snapshots, conservative model mapping, runcrossref.py commands…

  • Works in 5 steps: Read data/cross-ref/README.md for the… → Read… → Run run_cross_ref.py verify before… → …
  • QAing LLM Chess data/cross-ref workflows: external eval source snapshots
  • SKILL.md covers Start Here, Who Owns What, Procedure and Examples, plus 4 more sections
  • Calls uv; reaches epoch.ai

What it does

Cross Ref Research is an agent skill from maxim-saplin/llm_chess. Use when implementing, extending, auditing, or QAing LLM Chess data/cross-ref workflows: external eval source snapshots, conservative model mapping, runcrossref.py commands, generated results, consolidated reports, mapping review, cross-eval reports, reproducibility audits, and verification.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Reproducible research. The repository describes itself as: LLM Chess - evaluating Large Language Models' reasoning and instruction-following abilities by simulating chess games. The licence is Apache-2.0.

When your agent uses it

  • QAing LLM Chess data/cross-ref workflows: external eval source snapshots
  • Conservative model mapping
  • Runcrossref.py commands
  • Generated results

Example prompts

  • “/cross-ref-research”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Read data/cross-ref/README.md for the research workspace shape, artifact roles, and trust boundaries.
  2. Read data/cross-ref/CONSOLIDATED_REPORT.md when the task touches published findings or unresolved mapping caveats.
  3. Run run_cross_ref.py verify before trusting anything in data/cross-ref/results/: it checks whether the checked-in artifacts still…
  4. Choose the narrow task path: output review, mapping row review, command execution, publication, or methodology change.
  5. Work from the repository root. .venv is gitignored, so create it with uv sync if the checkout has none. Non-publish commands default to…

What it can do on your machine

Read from SKILL.md and the folder at commit aaea661. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • epoch.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cross Ref Research loads about 2.7k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 1,297 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from maxim-saplin/llm_chess at commit aaea661, republished under its Apache-2.0 licence (© maxim-saplin). 1,297 words, ~2,730 tokens.

Download SKILL.mdSave it as .claude/skills/cross-ref-research/SKILL.md (or your agent's skills folder).
name
cross-ref-research
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.

Cross-Ref Research

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.

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.

Start Here

  1. Read data/cross-ref/README.md for the research workspace shape, artifact roles, and trust boundaries.
  2. Read data/cross-ref/CONSOLIDATED_REPORT.md when the task touches published findings or unresolved mapping caveats.
  3. Run run_cross_ref.py verify before trusting anything in data/cross-ref/results/: it checks whether the checked-in artifacts still correspond to current inputs, and exits non-zero when they do not.
  4. Choose the narrow task path: output review, mapping row review, command execution, publication, or methodology change.
  5. Work from the repository root. .venv is gitignored, so create it with uv sync if the checkout has none. Non-publish commands default to review outputs outside data/cross-ref/; use --publish only when intentionally updating checked-in generated artifacts.

Who Owns What

The script owns every derived number; the agent owns every judgment. See "Stage Ownership" in data/cross-ref/README.md for the stage-by-stage table.

  • Agent-owned: mapping_status and llm_chess_player decisions plus their rationale/open_questions/evidence_refs, evals/*/SOURCE.md, CONSOLIDATED_REPORT.md, reviewing generated output, and the choice to --publish.
  • Script-owned: normalization, score parsing, the mapping merge, status filtering, the join to elo_refined.csv, dedupe, all statistics, coverage and drop reasons, artifact writing, and provenance hashes.
  • Everything you decide lands in a mapping CSV or a .md file. Nothing you decide is written into data/cross-ref/results/.

Procedure

  1. Anchor the task in the smallest controlled surface: source snapshot, mapping CSV, adapter, generated result, report section, or failing command.
  2. Preserve the workspace contract: source snapshots, mappings, mapping rationale, generated results, and code live in separate folders.
  3. Treat model identity as research, in both directions. Map a model when the evidence is clear — a counterpart that exists in elo_refined.csv and fits the reasoning-effort rule belongs in the comparison. Hold a row as ambiguous, unmatched, or excluded when identity is genuinely uncertain; a mismatched or unclear reasoning effort is not grounds to hold, because effort resolves coverage-first by direction-aware nearest-tier substitution. The goal is the mapping that reflects the evidence: neither inventing matches nor withholding obvious ones.
  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.
  5. Publish generated artifacts only through data/cross-ref/run_cross_ref.py --publish. Do not hand-edit files under data/cross-ref/results/.
  6. Update data/cross-ref/CONSOLIDATED_REPORT.md only from generated summaries and reports, then keep caveats explicit when unresolved rows constrain conclusions.
  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.

Examples

Existing mapping correction:

text
1. Inspect data/cross-ref/mappings/{eval_id}.csv and mapping-research notes.
2. Update only rows with evidence; leave weak matches unresolved.
3. Run the eval in review mode or to explicit `/tmp` outputs, then tests/test_cross_ref.py.
4. If publishing, regenerate the eval artifacts, mapping_review.*, and cross-eval outputs as needed.

Existing output trust check:

text
1. Run audit in default review mode while investigating, and add `--publish` only when refreshing checked-in audit outputs.
2. Read audit status fields separately: reproducibility can pass while coverage remains review-needed.
3. Trace headline claims through *_summary.json before editing narrative reports.

Adding another eval:

text
1. Add evals/<eval-folder>/SOURCE.md with provenance, score meaning, columns, and caveats.
2. Add adapter and runner registration.
3. Add mappings/<eval_id>.csv with conservative statuses and rationale.
4. Add focused tests, generate /tmp artifacts, review coverage, then publish through the runner.

Refreshing an External Snapshot

Refreshing an existing eval's source snapshot with newer upstream data has its own steps beyond the examples above. Work through them in order.

  1. Fetch upstream into a scratch file and keep the snapshot schema identical to the prior file. Record the canonical machine-readable URL in the eval's SOURCE.md so the next refresh starts from it (for ECI it is https://epoch.ai/data/eci_scores.csv, the published overall index; the leaderboard page renders that data dynamically and offers no direct download).
  2. Re-key the mapping to the new rows. The mapping joins on (eval_row_id, eval_model_label), and eval_row_id is the row position assigned at normalize time, so a changed row set or order needs a fresh key. Index the existing mapping by eval_model_label, carry each retained model's reviewed decision onto its new position, and drop rows for models upstream no longer lists.
  3. Reconcile the mapping with current data. Map new upstream models that have a clear LLM Chess counterpart, following the reasoning-effort rule in README.md: an exact effort match wins; unstated or unclear external effort assumes the highest (assume-highest); a stated effort absent from LLM Chess takes the nearest available tier in the same direction (nearest-tier), so high/xhigh/max go up, low/minimal go down, and medium breaks ties upward. Name the clause in reasoning_rule_applied. Revisit inherited mappings too, since a newly added LLM Chess model can be the better match — for example GPT-5.4 moves to gpt-5.4-high once that run exists. Keep a row unmatched when identity is genuinely uncertain or no counterpart exists, note why in open_questions, and raise true identity conflicts with the maintainer.
  4. Update the snapshot name and its references. Snapshots are date-named, so rename to the new date and update the adapter SOURCE_PATH, SOURCE.md, the README.md artifact map, mapping-research/<eval>.md, and any filename assertions in tests/test_cross_ref.py.
  5. Separate the data effect from any code change. Checked-in results/ baselines may predate the current code (signs: llm_chess_inputs.data_quality is null, or prediction.ols.in_sample is present). For a clean data-only diff, regenerate the baseline by running current code on the previous inputs — check the old snapshot and mapping out to /tmp — then diff the new run against that baseline.
  6. Read the test results in context. tests/test_cross_ref.py pins dataset-derived counts and correlations, so a refresh will move several of them; refresh those expectations as part of the change and confirm the structural assertions still hold.
Show full SKILL.md (425 more words)Show less

Mistake Metrics (wrong actions / wrong moves / mistakes)

Logs before 2025-03-16 underreported wrong actions and wrong moves, so the error/discipline metrics (wrong_actions_per_1000moves, wrong_moves_per_1000moves, mistakes_per_1000moves, and the player_wrong_* counts) are excluded from analysis by default. Do not quietly re-enable them.

  • Each model row in elo_refined.csv carries min_game_date (earliest game start). A model is trustworthy for these metrics only when min_game_date >= 2025-03-16 — then every game is post-fix, so the published full-history value is already clean. The cutoff lives in one place: framework/data_quality.MISTAKE_STATS_TRUSTED_AFTER.
  • To use these metrics in research, request clean mode: run_cross_ref.py <eval> --mistake-stats clean_only (or run_analysis(..., mistake_stats="clean_only")). It drops every model with min_game_date before the cutoff (or missing) and re-enables the repaired rate metrics for the remaining sample. It is research-only and refuses --publish; published artifacts always run with mistake_stats="excluded".
  • Policy is drop, never recover: a model whose earliest game predates the cutoff is dropped whole, even if it also has later games. We do not recompute individual models from a post-cutoff subset.
  • min_game_date is produced by data/get_refined_csv.py during the normal build; it is the only run-date provenance carried into the aggregate, so prefer it over model release dates for any "was this tested after X" question.

Optional Work Splitting

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.

Edge Cases

  • Python and pytest version strings are informational unless a command actually fails.
  • The mapping is keyed by eval_row_id (the normalize-time row position) together with eval_model_label, so re-key it whenever a snapshot's rows change order or membership (see Refreshing an External Snapshot).
  • A rerun-diff is a clean data comparison only when the baseline results/ were generated by the current code; regenerate the baseline first if they may be older.
  • ARC COST (V3) remains unresolved in located official sources; keep cost interpretation conservative.
  • Human baselines and benchmark-system rows stay visible in source and coverage outputs but are excluded from LLM Chess correlation samples.
  • Release-controlled correlations are lower than raw Elo correlations; do not present raw correlations as model-capability proof without the timing caveat.
  • If generated outputs differ after a rerun, inspect whether the difference comes from source, mapping, code, dependency behavior, or expected artifact metadata before publishing.
  • The error/discipline metrics are excluded by default and only usable via --mistake-stats clean_only; see "Mistake Metrics" above. Never present them from a default run, and never publish a clean-only run.

© maxim-saplin, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/cross-ref-research of maxim-saplin/llm_chess.

Open the folder on GitHubat commit aaea661

Compare with similar skills

Cross Ref Research next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cross Ref Research compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cross Ref Research this skillmaxim-saplin/llm_chess136—~2.7kAutomated safety check: PassApache-2.0
Peer ReviewK-Dense-AI/claude-scientific-writer2.4k2 repos~3.1kAutomated safety check: NotesMIT
CHARLS Paper Reproduction Guidexjtulyc/MedgeClaw6171 repos~1.8kAutomated safety check: PassNone
Compute Environment Setupaipoch/open-science5.5k—~2.6kAutomated safety check: PassApache-2.0
Figure Styleaipoch/open-science5.5k—~5.1kAutomated safety check: PassApache-2.0
Add Bactopia Toolbactopia/bactopia522—~4.1kAutomated safety check: PassMIT

Similar skills

  • Peer Review

    K-Dense-AI/claude-scientific-writer

    Prepare evidence-bounded, constructive peer-review drafts and structured manuscript assessments.

    2.4k GitHub starsUsed in 2 repos~3.1k tokens
    Research & ScienceAuto-check: notes
  • Guides an agent through reproducing papers built on the CHARLS health and retirement survey, from variable mapping to cognition, depression and isolation scores.

    617 GitHub starsUsed in 1 repo~1.8k tokens
    Research & ScienceAuto-check passed
  • Compute Environment Setup

    aipoch/open-science

    Prepares setup instructions and a named activation file for a user-managed software environment on an Open-Science SSH or Slurm compute host.

    5.5k GitHub stars~2.6k tokensUpdated today
    Research & ScienceAuto-check passed
  • Figure Style

    aipoch/open-science

    Publication-grade correctness and legibility rules for final-deliverable scientific figures, not exploratory plots.

    5.5k GitHub stars~5.1k tokensUpdated today
    Research & ScienceAuto-check passed
  • Add Bactopia Tool

    bactopia/bactopia

    Scaffold a complete Bactopia Tool across all three tiers -- module, subworkflow, and workflow entry point under workflows/bactopia-tools/.

    522 GitHub stars~4.1k tokensUpdated 2 mo ago
    Research & ScienceAuto-check passed
  • Modeling Code and Result Contracts

    yushui2022/MathModel-Skill

    Generates result-evidence contracts, tables and runnable q1 to q3 modeling code scaffolds for a math modeling paper from a model route, a data plan and cleaned data.

    454 GitHub stars~1.4k tokensUpdated 3 days ago
    Research & ScienceAuto-check passed

More from maxim-saplin/llm_chess

  • QA Handoff

    maxim-saplin/llm_chess

    Quality gate protocol between implementation and handoff. An agent skill from maxim-saplin/llm_chess.

    136 GitHub stars~354 tokensUpdated yesterday
    Auto-check passed

Questions about Cross Ref Research

What does Cross Ref Research do?

A skill your agent uses when implementing, extending, auditing, or QAing LLM Chess data/cross-ref workflows: external eval source snapshots, conservative model mapping, runcrossref.py commands…. Cross Ref Research is an agent skill from maxim-saplin/llm_chess.py commands, generated results, consolidated reports, mapping review, cross-eval reports, reproducibility audits, and verification.

When should I use Cross Ref Research?

Cross Ref Research fits situations like: QAing LLM Chess data/cross-ref workflows: external eval source snapshots; conservative model mapping; runcrossref.py commands; generated results.

How do I install Cross Ref Research in Claude Code?

Run `npx skills add maxim-saplin/llm_chess --skill cross-ref-research -a claude-code`. Or copy the skill folder (.agents/skills/cross-ref-research in maxim-saplin/llm_chess) into .claude/skills/cross-ref-research in your project. Claude Code loads it when a task matches its description.

How do I install Cross Ref Research in Codex?

Run `npx skills add maxim-saplin/llm_chess --skill cross-ref-research -a codex`. Or copy the skill folder (.agents/skills/cross-ref-research in maxim-saplin/llm_chess) into .agents/skills/cross-ref-research in your project. Codex loads it when a task matches its description.

Can I use Cross Ref Research in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add maxim-saplin/llm_chess --skill cross-ref-research -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cross-ref-research, .gemini/skills/cross-ref-research, .github/skills/cross-ref-research and .opencode/skills/cross-ref-research in your project.

What does Cross Ref Research need to run?

Going by SKILL.md and its folder, Cross Ref Research needs the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does Cross Ref Research access the network?

SKILL.md names 1 domain. In commands or code: epoch.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Cross Ref Research safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cross Ref Research use?

Cross Ref Research is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cross Ref Research use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cross Ref Research?

Skills that share tags, products or a category with Cross Ref Research: Peer Review (K-Dense-AI/claude-scientific-writer, 2.4k stars), CHARLS Paper Reproduction Guide (xjtulyc/MedgeClaw, 617 stars), Compute Environment Setup (aipoch/open-science, 5.5k stars) and Figure Style (aipoch/open-science, 5.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cross Ref Research?

maxim-saplin (a GitHub user) maintains it in maxim-saplin/llm_chess, which has 136 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.

Source: maxim-saplin/llm_chess on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.