Awesome-Agent-Skills-for-Empirical-Research robustness-table
Generates robustness check code and formats results as a combined table. Use for sensitivity analysis.
install
source · Clone the upstream repo
git clone https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/29-quarcs-lab-project20XXy/dot-claude/skills/robustness-table" ~/.claude/skills/brycewang-stanford-awesome-agent-skills-for-empirical-research-robustness-table && rm -rf "$T"
manifest:
skills/29-quarcs-lab-project20XXy/dot-claude/skills/robustness-table/SKILL.mdsource content
Generate Robustness Checks and Table
Given a baseline regression, generate code for standard robustness checks and format the results as a publication-ready table.
Arguments
— notebook reference and baseline specification description (e.g., "notebook-02 baseline OLS with GDP on life expectancy")$ARGUMENTS
Steps
-
Read the specified notebook and locate the baseline regression:
- Look for estimation commands (Python:
,statsmodels
; R:linearmodels
,lm
,fixest
; Stata:felm
,reg
,reghdfe
)ivregress - Identify the dependent variable, independent variables, fixed effects, and clustering
- Look for estimation commands (Python:
-
Ask the user which robustness checks to include:
- Alternative control variable sets (drop/add controls)
- Alternative fixed effects specifications
- Different standard error clustering levels
- Subsample analysis (e.g., by region, time period, income group)
- Winsorized or trimmed dependent variable
- Alternative dependent variable (e.g., log vs level)
- Placebo tests (randomized treatment, pre-period outcome)
- Alternative estimation methods (e.g., OLS vs Poisson, logit vs probit)
-
Generate code cells in the notebook for each robustness specification:
- Each cell should be self-contained (loads data, runs regression, stores results)
- Use consistent variable naming for results collection
-
Create a summary cell that collects all results into a single table:
- Cell directive:
(or#| label: tbl-robustness
for Stata)*| - Cell directive:
(or#| tbl-cap: "Robustness checks"
for Stata)*| - Format: baseline in column (1), each robustness check in subsequent columns
- Follow academic conventions: coefficient (SE), significance stars, N, R², FE indicators
- Stata caveat: Do NOT use
prefix for Stata text output — use a plain label (e.g.,tbl-
)stata-robustness
- Cell directive:
-
Optionally export the table to
as a standalone file (LaTeX or CSV)tables/ -
Sync the Jupytext pair:
uv run jupytext --sync notebooks/<name>.md -
Show the embed shortcode for
:index.qmd{{< embed notebooks/<name>.ipynb#tbl-robustness >}}
Error handling
- If the baseline regression is not found, ask the user to point to the specific cell.
- If the notebook uses a language not recognized, ask for guidance on the estimation syntax.