Skip to content

Concepts

The words a newcomer meets in the first ten minutes, each defined once here rather than re-explained in every guide that uses it.

run — one experiment run, as discovered on disk: a project, a name, the source_path it was read from, its metrics, and (once linked) which corpus it used. RunRecord in src/attestation/ledger.py; see the ledger guide.

family — the group a run's siblings fall into, so a sweep can be compared as one thing. family_of() strips a shared filename prefix, hyphen-joined regardless of separator (dit_small_rope_crossattn and dit_small_rope_melmask both group under dit-small-rope); a bare hyperparameter stem with nothing to strip (lr_0.001, lr_0.01) falls back to the recognised token itself (lr) as the family. See the ledger guide.

arm — one run within a family's sweep — one point of comparison runs.compare ranks against the others, with its own source_path, sample size, and caveats. See the ledger guide.

spec — a design document under docs/superpowers/specs/, written before the code it describes, recording why a subsystem exists the way it does. CLAUDE.md's "Docs Index" names which spec goes with which code area; docs/site/specs.md (generated by scripts/render_spec_index.py) lists every one.

claim — an HTML comment beside a piece of prose, asserting that a number matches a specific run's metric: <!-- claim: family/arm metric=X value=Y tol=Z -->. claims.parse_file() finds them; check_claim() scores each against the ledger. See the claims and citations guide.

verdict — what check_claim() returns for one claim, one of five kinds (VerdictKind in src/attestation/claims.py): supported (a run agrees), contradicted (a run disagrees), unsupported (no run matches), ambiguous (several runs match and which is meant is undecidable), and stale (the value matches but the artifact changed after as_of). A sixth, uncited, is a citation lint rather than a claim-checking verdict. See the claims and citations guide.

corpus — the dataset a run trained or evaluated against, detected from driver-script syntax (AST) rather than from the model's own claims about itself — corpus.detect_in_source(). runs.corpus_id links a run to one; compare() refuses to rank arms that cross corpora rather than treating a different task as a loss. When detection finds nothing or finds the wrong thing, a corpus can be declared instead in corpora.toml, read by corpus.load_manifest(). See src/attestation/corpus.py and the ledger guide.

persona — a reader identity the feed ranks for: a name and an interests profile text, plus whatever click history it has accumulated. "Persona" is the word used in prose; in code and in the schema the same row is a user — the users table, the user_id foreign key — one row, two names for it depending on which side of the guide you're reading. Personas auto-create on read so an agent's first plausible name becomes a real (if initially empty) profile rather than a refusal; attest bootstrap-persona seeds the three demo personas (researcher/bench-chemist/ml-engineer) with pseudo-clicks. See the feed guide.

provenance (click provenance) — the recorded source of one click, which decides whether it may train the ranker: ui, agent, implicit (inferred from an explanation request), simulated (a model reacting to the text as the persona), or bootstrap (synthetic seeding, excluded from evaluation as tautological). See the feed guide.

surface — a restricted view of the MCP tool set for one kind of agent session: feed, provenance, knowledge, or symbolic, selected with ATTEST_TOOLS and defined in AGENT_SURFACES (src/attestation/mcp/__init__.py). Unset serves all 47 tools; a typo raises rather than silently serving everything. See the agents guide.

golden path — a directory under examples/<name>/ that a newcomer can run from a clean clone, with everything it needs already on disk, and whose README the test suite runs verbatim rather than trusting as prose. See docs/superpowers/specs/2026-08-28-golden-paths-design.md and the golden paths catalogue.

convention (tracker convention) — a directory layout a third-party experiment tracker (W&B, MLflow, Sacred, DVC, Hydra) already writes, read by the ledger as a convention rather than requiring the tracker's own package as a dependency. "A convention helps every project; a named adapter helps exactly one." See docs/superpowers/specs/2026-08-22-tracker-adapters-design.md and the ledger guide.