Artefact audit prompt¶
The evidence-first review of one deliverable against the code and the data. One reviewer, one artefact, one round; produces a single report in which every check cites its source. This is the generic spine; a per-deliverable verification playbook may add artefact-specific checks on top.
Fill <artifact> (e.g. paper_00, mini_course), <reviewer>
(claude | ds | mimo), <round>.
AUDIT <artifact> — reviewer: <reviewer>, round: <round>
Source under review: docs/publications/<artifact>/
Read the source files (.qmd / .md), NOT the rendered PDF / .tex / _site —
those can be stale.
Write your report to: tmp/<reviewer>_<artifact>_round<round>_check.md
IRON RULE — evidence is mandatory:
Every "pass"/"fail" on a number, a formula, or a figure must cite a concrete
source: a data-file path + the quoted value, OR code at file:line, OR the
figure's mtime. It is forbidden to declare something "verified" by checking
only that a number is consistent with another sentence in the document. If
you cannot open the source, write "NOT VERIFIED (reason)", never "pass".
CHECKS (for each: open the source, quote the value, compare it to the text):
1. NUMBERS vs DATA. For every number/table in the source, open the canonical
data file and compare. Distinguish canonical/frozen data from working
data: if the text cites a value that is not in the canonical snapshot (or
the snapshot predates a bugfix the text mentions), it is STALE — flag it.
If a data directory is missing or git-ignored, say so.
2. DERIVED QUANTITIES (%, effect sizes, peaks, asymmetries, table sums):
RECOMPUTE them from the source numbers/parameters, using the REAL defaults
in the code (not the values baked into a standalone figure). Do not accept
consistency with the prose as proof.
3. DEFINITIONS / FORMULAS vs CODE. Diff every formula and algorithm (metrics,
agents, dynamics, perturbations) against the implementation — cite
file:line.
4. FIGURES & STALENESS. Does each figure exist? Compare mtime(figure) against
mtime(data/script that generates it): if the figure is older than the data
or than a fix the text cites, it is stale — flag it. Spot-check: a value
stated in a caption must exist in the data.
5. CROSS-REFS & TABLES. Every reference resolves to a definition; every table
is referenced. List the broken ones (with file:line).
6. CITATIONS. Every citation resolves in the bibliography. For citations that
support a CLAIM, verify the primary source exists and that the source text
actually supports the claim — no claim without its source. Check
year/version. Report entries cited but absent, and present but never cited.
7. ARGUMENT CHAINS & CLAIMS. Are the headline findings supported? Hunt for
OVER-CLAIM: the abstract/intro asserting more than the body supports.
Compare abstract vs body vs conclusions on the numbers.
8. NON-DETERMINISTIC (LLM) DATA. LLM pilots are one realisation: verify the
aggregate on disk matches the text; claims must be directional, not point
estimates; flag anything presented as robust that is noise at small N.
ROUND >= 2: first VERIFY that every fix from the previous round was actually
applied (quote file:line evidence; do not trust the prior report), then look
ONLY for new or residual findings. Actively hunt your OWN mistakes and the
over-cautious flags from the previous round.
ANTI-PATTERNS (do not):
- do not validate a number against another sentence — re-derive it from the
source;
- do not read the rendered PDF/.tex for values (it can be stale): use the
source + data;
- do not invent per-seed values or citations; if you do not have them, say so;
- distinguish "the document is internally consistent" from "the document
matches the code and data".
OUTPUT:
- One severity per finding: blocker (factual error) / important / minor —
each with file:line, quoted evidence, and a proposed fix.
- "Verification log": a table of what you checked against which source (with
the values).
- "Not verified (and why)": everything you could not open or recompute.
- "Possible false positives of mine": items you are unsure about.
- "No new findings" is a VALID outcome — do not invent problems to fill the
report.
Why these checks (observed failure modes)¶
The check list and the iron rule exist because reviewers — human and model — repeatedly failed in specific, predictable ways. See reviewer roles for the catalogue. The short version: reviewers mark things "verified" for internal coherence without opening the data, ratify a wrong fix because it reads consistently, quote stale rendered output, or invent values. Each check above closes one of those holes.