skills/50-brycewang-aer-skills/skills/aer-consistency/SKILL.md
Use when auditing a finished or near-finished AER, AER:Insights, or AEJ manuscript for internal consistency: headline numbers across abstract, introduction, results, and tables; sample sizes; log-point and percentage-point conversions; cross-references; and in-text-citation/bibliography matching. Apply after the body and exhibits exist, before aer-referee-sim and aer-submission.
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research aer-consistencyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Referees and editors run cheap integrity checks before engaging with ideas: does the abstract's number appear in the tables? Do the Ns add up? Does "Table 4" exist? Does every citation resolve? A single mismatch reframes the entire report from "is this right?" to "what else is wrong?" — and for AI-assisted manuscripts these mismatches are the modal failure, because text and tables are often generated in separate passes.
This skill is the full-manuscript integrity audit. It is mechanical by design: every check below has a yes/no answer obtained by comparing two artifacts, not by judgment. Run it after every revision round, not only before first submission.
aer-referee-sim (so the simulated referees attack substance, not
typos) and before aer-submissionBuild a register of every number that appears more than once in the manuscript, then verify each row against its single source of truth (the table or the replication output):
NUMBER SOURCE ABSTRACT INTRO RESULTS CONCL MATCH
4.2 log points Tab 3 col 4 yes yes yes yes OK
s.e. 1.1 Tab 3 col 4 yes no yes no OK
$84 billion cited source no yes no yes OK
N = 37,824 Tab 1 no no yes no OK
Rules:
The conversion table for prose claims about coefficients:
| Outcome form | Coefficient β means | Exact percent effect | |---|---|---| | log(Y), binary D | 100·β log points | 100·(e^β − 1) | | log(Y), log(X) | elasticity | β% per 1% of X | | Y in levels, binary D | β units of Y | 100·β / mean(Y) | | Y is a rate (share) | β·100 percentage points | 100·β / baseline rate percent |
Checks:
aer-robustness on null-result discipline).aer-tables-figures sets it; this
audit verifies it held).\ref / \autoref resolves; no "Table ??" anywhere in the PDF.aer-literature's integrity protocol; this audit confirms it was run and
the ledger has no open rows.For each empirical claim in the abstract, introduction, and conclusion, record where the evidence lives:
CLAIM EVIDENCE STATUS
"raises 90/10 ratio by 4.2 log points" Tab 3 c4 OK
"driven by gains at the top" Fig 3 / Tab 4 OK
"absent in retail and construction" Tab 5 c2-c3 OK
"consistent with skill-biased adoption" Sec V battery OK (consistency claim)
aer-paper-body
rules.docs/claim-evidence-ledger.csv: use label:<tex-label> for manuscript
exhibits, cite:<bib-key> for externally sourced claims, and
file:<relative-output> for generated output files. Rows must be OK or
PASS before handoff.Run the bundled script for the deterministic LaTeX checks (citations two-way, ref/label two-way, duplicate labels, abstract word count):
python3 skills/aer-consistency/scripts/audit_manuscript.py paper.tex references.bib
python3 skills/aer-consistency/scripts/audit_manuscript.py paper_dir references.bib \
--claim-ledger paper_dir/docs/claim-evidence-ledger.csv
Extract every number from the abstract and introduction (grep for digits); locate each in a table or a cited source; build the register.
Recompute the sample funnel and the unit conversions by hand — these are arithmetic, not judgment.
Diff the table files in the manuscript against the replication package's
output/tables/ — they must be the same files, not lookalikes
(aer-replication requires this anyway).
Produce the consistency report (below) and fix every FAIL before handing off.
AUDIT RESULT DETAIL
1 headline numbers PASS 12 numbers, 12 matched
2 sample sizes FAIL Tab 4 N=37,824 vs Tab 1 N=37,284
3 units and conversions PASS 2 exact conversions applied
4 stars vs SEs PASS
5 cross-references PASS 31 refs, 0 dangling
6 citations two-way FAIL 2 bib entries uncited
7 claim-evidence map PASS 9 claims mapped
Fix-and-rerun until all PASS. The report travels with the handoff so
aer-referee-sim and aer-submission know the floor is solid.
Bundled with the installed skill, no repository checkout needed --- read it before the repo resources below:
references/audit-checklist.md --- manual audit passes plus what the bundled script does and does not catchWhen working from the AER-skills repository or plugin bundle, load only the relevant resource:
examples/replication-package-skeleton/docs/exhibit-register.mdexamples/replication-package-skeleton/docs/claim-evidence-ledger.csvskills/aer-paper-body/SKILL.mdskills/aer-literature/SKILL.mddocs/style-guide.mdAUDITS PASSED: <n>/7
HEADLINE NUMBERS MATCHED: <n>/<n>
OPEN FAILURES: <list, or "none">
ABSTRACT WORD COUNT: <n>/100
CITATION LEDGER: <closed / open rows remain>
CLAIM-EVIDENCE LEDGER: <n> claims, <closed / open rows remain>
NEXT SKILL: <aer-referee-sim | aer-submission>
tools
Autonomous multi-round research review loop using MiniMax API. Use when you want to use MiniMax instead of Codex MCP for external review. Trigger with "auto review loop minimax" or "minimax review".
tools
Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".
tools
Autonomous multi-round research review loop using MiniMax API. Use when you want to use MiniMax instead of Codex MCP for external review. Trigger with "auto review loop minimax" or "minimax review".
tools
Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".