Strategy taxonomy
SkillMonitoring & opsName and classify p-hacking strategies, and quantify what each one does to the false-positive rate. Covers the twelve-strategy compendium of Stefan and Schoenbrodt (2023), thirteen econometrics-specific degrees of freedom (clustering doctrine, fixed-effect structure, RDD bandwidth, kernel and inference mode, IV instrument sets and first-stage screening, staggered-DiD estimator and comparison-group choice, synthetic-control donor pools), the search procedures that turn a strategy into a session, and the two between-stage strategies of Adda, Decker and Ottaviani (2020): selective continuation from a pilot to a confirmatory study, which is not p-hacking until the pilot is pooled, and selective reporting between stages. Use when asked what p-hacking is, which strategy a particular analytical choice corresponds to, how much a given researcher degree of freedom inflates type I error, or to enumerate the ways a specific result could have been obtained.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Strategy taxonomy skill
What this skill tells your AI
The instructions your AI receives, as published by brycewang-stanford/auto-empirical-research-skills in skills/73-brycewang-p-hacking-skills/skills/01-phack-taxonomy/SKILL.md and read by ahel’s review.
Read references/taxonomy.md. It is the substance of this skill: 27 strategies
across three layers, each with what is chosen, why it is defensible, and what
it costs in type I error — plus the procedure layer, because the
false-positive rate of a session depends on the order in which knobs are
turned and on when the searcher stops (09-search-procedures). The third
strategy layer is what happens between a pilot and a confirmatory analysis
(Adda, Decker & Ottaviani 2020): continuing only after a promising pilot is
selection, not p-hacking, and keeps its size on a fresh sample; pooling the
pilot into the confirmatory test, or registering only the significant stage,
is.
Quantifying a strategy
python scripts/phack_cli.py simulate --strategy 07_transformation --n-sims 4000
python scripts/phack_cli.py simulate --workflow 09_alternative_tests,01_selective_dv,11_subgroup
python scripts/phack_cli.py simulate --n-sims 4000 # all thirteen simulated strategies
python scripts/phack_cli.py simulate --strategy 26_selective_continuation --report main # 0.05: not p-hacking
python scripts/phack_cli.py simulate --strategy 26_selective_continuation --report pooled # 0.17: it is now
Data are generated under a true null, so fpr_hacked is the probability the
strategy manufactures a false positive. fpr_original is the calibration
check and should land on 0.05.
Using it to classify
When someone describes an analytical choice, the useful question is not "is this p-hacking?" — almost nothing is p-hacking in isolation. It is:
- Which axis of the grid is this? Map it to a numbered strategy.
- Was it fixed before the outcome was seen? A choice made ex ante is a design; the same choice made ex post is a degree of freedom spent.
- How many alternatives were available and how many were tried? This is the multiplicity that inference has to pay for.
- Is the alternative set disclosed? A disclosed search is a multiverse analysis. An undisclosed one is a p-hacked result.
Only question 2 and question 4 separate legitimate work from misconduct. Questions 1 and 3 are just accounting — and the accounting is what this suite automates.
What not to conclude
A high false-positive rate for a strategy does not mean anyone using that strategy is hacking. Outlier exclusion, covariate adjustment and imputation are all necessary in real data. The rates in the table are what happens when the choice is made after seeing the result, repeatedly, and reported as one.
Signals
- GitHub stars
- 4k
- Forks
- 531
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
phack-taxonomy- Source
- github.com/brycewang-stanford/auto-empirical-research-skills
github.com/brycewang-stanford/auto-empirical-research-skills
Related picks
Skill · wshobson
The pick for Pythonpython-pro
Skill · jeffallan
The pick for Pythoninternal-comms
Skill · anthropics
More in Monitoring & opsagent-eval
Skill · affaan-m
More in Monitoring & opsdashboard-builder
Skill · affaan-m
More in Monitoring & opsbabysit
Skill · thedotmack
More in Monitoring & ops