aer-identification — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited aer-identification (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
In AER-track empirical economics, identification is the paper. This skill routes among canonical designs, modern defaults, and referee-facing diagnostics.
If the design is fragile, return to aer-topic-selection; writing cannot save it.
Is treatment assignment plausibly random conditional on observables?
├── Yes, by design (RCT, lottery) → run the RCT analysis; register PAP via AEA RCT Registry
└── No → identification must come from variation
├── Sharp threshold in a running variable → RDD (sharp or fuzzy)
├── Discrete policy change in some units, not others, over time → DiD
│ ├── Single treatment date → canonical 2×2 DiD
│ └── Staggered adoption → Callaway-Sant'Anna or Borusyak-Jaravel-Spiess
├── Endogenous regressor + plausibly exogenous shifter → IV
│ ├── Shifter × pre-existing exposure shares → shift-share / Bartik
│ └── Single instrument → weak-IV-robust inference if F < 50
├── One treated unit / aggregate intervention → synthetic control
└── None of the above → reconsider the questionUse TWFE if and only if:
Otherwise, TWFE produces biased and often sign-flipped estimates.
Do not use TWFE. Use one of:
csdid (Stata), did (R). Identifies group-time average treatment effects (ATT(g,t)); estimands are doubly robust; supports event-study aggregation.did_multiplegt.Required diagnostics:
A flat pre-trend is necessary but not sufficient. Report:
The first-stage F > 10 rule is obsolete. Modern conventions:
Use weakivtest (Stata), ivDiag (R), or the Olea-Pflueger effective F statistic.
The IV's credibility depends on a story, not a test. State the exclusion restriction in one sentence in the introduction and defend it with:
Two valid sources of identification, with very different implications:
Pick one explicitly. Do not hand-wave between the two.
rdrobust.rdplot with the binning method explicitly statedIf the paper uses a field experiment:
A common confusion: identification answers whether X causes Y; mechanism answers why. Mechanism evidence should not weaken the identification of the main effect. Run:
<!-- tool-bindings --> When a StatsPAI MCP server is connected, select the validated tool, then let it run the estimator — do not hand-roll the design. The methodological choice still comes from the decision tree above; this table is only the execution surface. The full registry and chained workflow live in skills/aer-statspai/SKILL.md.
| Design / diagnostic | Call (StatsPAI) | Do not hand-roll |
|---|---|---|
| Staggered DiD ATT(g,t) | callaway_santanna then aggte | a pooled two-way fixed-effects regression |
| Imputation / dCDH variants | did_imputation, sun_abraham, did_multiplegt | event-study leads and lags assembled by hand on staggered data |
| Forbidden-comparison weight | bacon_decomposition | eyeballing whether TWFE is "probably fine" |
| Pre-trends (joint, not visual) | event_study, pretrends_test | declaring parallel trends from a plot alone |
| IV under weak instruments | ivreg with anderson_rubin_ci, effective_f_test | a first-stage-F-only 2SLS table |
| Shift-share / Bartik | bartik | a Bartik IV with no Rotemberg-weight report |
| RDD (local-linear, RBC) | rdrobust, rdbwselect, rdplot, rddensity | a high-order global-polynomial RDD |
| Synthetic control | synth, augsynth, gsynth, sdid, synth_time_placebo, synth_loo | SCM with no placebo or leave-one-out inference |
| Design / estimator selection | detect_design, preflight, recommend | guessing the estimator before profiling the data |
<!-- /tool-bindings -->
Bundled with the installed skill, no repository checkout needed --- read it before the repo resources below:
references/estimator-playbook.md --- per-design estimands, modern defaults, diagnostics, and referee-objection response scriptsWhen working from the repo or plugin bundle, load only the relevant resource:
docs/methods-reference.mdtemplates/stata/03_main_did.do, templates/r/03_main_did.R, or templates/python/main_did.pyexamples/aer-exemplars.md and examples/modern-aer-exemplars.mdUse the methods reference before prose: it fixes the estimand, diagnostic, inference method, and citation that the manuscript must report.
Do not advance to robustness or writing until, for the chosen design, all are true:
Write the gate decision before routing onward:
STRATEGY: IV
FIRST STAGE: effective F = 7.8; 2SLS CI is not primary
ROBUST INFERENCE: AR 95% CI = [-0.14, 0.52]
PLACEBO: beta = 0.003 (p = 0.71)
DECISION: advance with directional headline onlySTRATEGY: <DiD | IV | RDD | SCM | shift-share | RCT>
MODERN ESTIMATOR USED: <yes / no / which>
REQUIRED DIAGNOSTICS REPORTED: <list>
INFERENCE METHOD: <robust / cluster-robust / AR / wild bootstrap / permutation>
WEAK-IV / TWFE / POLY-ORDER RED FLAGS: <list or "none">
NEXT SKILL: aer-robustness~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.