fbdeme

Source Backed Numbers — Data skill for Claude Code

Data community

Claude Code skill: never hand-type experiment numbers into docs — save results as per-item JSON, generate LaTeX tables + inline-number macros from it and \input them, regenerate on data change.

How to install Source Backed Numbers

This entry records only its repository, not the path inside it, so there is no exact command to give. Open fbdeme/source-backed-numbers and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Source Backed Numbers does

Claude Code skill: never hand-type experiment numbers into docs — save results as per-item JSON, generate LaTeX tables + inline-number macros from it and \input them, regenerate on data change. Caught 5 hand-transcription errors in one paper write-up.

Alternatives in Data

  • Context Mode — Benchmark Results — Benchmarked against real outputs from popular Claude Code MCP servers, Skills, and dev tools 5.6k ★
  • Portaljs Architect — Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from your needs, t 2.3k ★
  • SVG Diagram — Agent skill that draws architecture, flowchart, sequence, data-flow and lifecycle diagrams as hand-placed SVG 414 ★

README

source-backed-numbers

A [Claude Code](https://claude.com/claude-code) skill that stops experimental numbers from being hand-typed into documents. Results live in JSON; the document *generates* its tables and *imports* its inline numbers from that JSON, so a reported number can never drift from its source.

  • Experiments emit JSON, per-item — logs get lost; per-dataset/seed scores stay, so any mean / rank / "X ≥ Y on N%" / tie-count is recomputable and re-sliceable.
  • Documents generate + import — one small script turns the JSON into \input-able tables and \newcommand{\numX}{..} macros; prose never contains a literal result number.
  • Regenerate + audit — data changes → re-run the generator; grep the doc for stray digits.
  • Metric transparency — the ranking metric / aggregation is explicit in code and caption.

Distilled from a paper write-up where hand-transcription had silently introduced five wrong numbers — a mean-rank from the wrong metric + model pool, a loose "78–100%" that was really 93%, an unsupported "gap widens with scale", a "7 of 13 datasets" true only on a different metric, and an effective rank copied from the wrong model. Every one is impossible under generate-don't-type.

Install

git clone https://github.com/fbdeme/source-backed-numbers ~/.claude/skills/source-backed-numbers

Then invoke with `/source-backed-numbers`, or Claude loads it when you write up experiment numbers.

Use

Copy the starter generator into your document directory and adapt the two example blocks:

cp scripts/gen_numbers.py /paper/build_tables.py
# point RESULTS at your eval JSONs, fill in your tables + macros, then:
python paper/build_tables.py         # writes generated/{tab_*.tex, numbers.tex}

The document `\input{generated/numbers.tex}` (macros) and `\input{generated/tab_x}` (tables); prose uses `\numX`, never a literal. A number that can't start as a JSON (from a checkpoint, a saved model) gets a tiny re