pedrohcgs/stata-replication
End-to-end Stata replication pipeline — scaffolds numbered `.do` files in `scripts/stata/`, executes them via the `stata-mcp` MCP server, captures logs and outputs to `scripts/stata/_outputs/`, and produces publication-ready tables (esttab) and figures (graph export). Mirrors `/data-analysis` for R-first projects. Use when user says "stata replication", "set up Stata pipeline", "scaffold the .do files", "run Stata analysis", "AEA replication package in Stata", or when a project's analysis language is Stata not R.
npx skills add https://github.com/pedrohcgs/claude-code-my-workflow --skill stata-replication
/stata-replication — Stata pipeline scaffold + executionBuild a complete Stata replication pipeline in scripts/stata/: numbered .do files following .claude/rules/stata-code-conventions.md, executed via the stata-mcp MCP server, with outputs landing in scripts/stata/_outputs/.
do scripts/stata/99_run_all.do./data-analysis./data-analysis is the right fit; consider extending the convention rule for Python or porting one of these skills.stata-mcp installedThis skill requires the stata-mcp MCP server. Install once per user:
claude mcp add stata-mcp --scope user -- uvx stata-mcp
The MCP server provides command-guarded Stata execution (refuses destructive operations like !/shell/erase), RAM monitoring, and Stata Language Server pairing. Maintained by SepineTam, 171 stars on GitHub as of 2026-05.
If stata-mcp is not installed, the skill halts at Phase 0 with installation instructions.
stata-mcp is registered in the user's MCP configuration. If not → halt with install instructions.scripts/stata/ directory exists or can be created..claude/rules/stata-code-conventions.md — every emitted .do file follows this convention.--from-r flag is set, locate the existing R pipeline at scripts/R/ and use it as a translation source. Apply the Stata → R pitfalls table from replication-protocol.md in reverse.Emit (or update) these files in scripts/stata/, each conforming to the header convention from stata-code-conventions.md:
scripts/stata/
├── 00_install.do # ssc install, set globals, paths, sessionInfo capture
├── 01_clean.do # raw → cleaned panel
├── 02_descriptive.do # summary tables, balance (iebaltab), attrition
├── 03_analyze.do # main regression specs (reghdfe / ivreg2 as needed)
├── 04_robustness.do # alt specs, sensitivity
├── 05_tables_figures.do # esttab .tex outputs + graph export PDFs
└── 99_run_all.do # do "01_clean.do" / do "02_..." / ...
If the paper or data source suggests specific specs (e.g., DiD with reghdfe, IV with ivreg2, RD with rdrobust), tailor 03_analyze.do accordingly.
--no-execute)For each script in numbered order:
stata-mcp to execute the .do file.scripts/stata/_outputs/NN_log.smcl per the header convention) and the resulting .dta / .tex / .pdf outputs.For long-running scripts (> 2 minutes), use the Monitor tool to stream stdout — same pattern documented in /data-analysis and /audit-reproducibility.
scripts/stata/_outputs/.sessionInfo.txt was captured (package versions)./audit-reproducibility if a manuscript exists — it now handles Stata .dta outputs via haven/pyreadstat (Pass 4.3).If --from-r was set, run the R version of the same analysis (assumed to live at scripts/R/) and compare:
replication-protocol.md tolerance).Discrepancies are surfaced for the user to investigate — typical culprits: clustering df, default options (logit vs probit for PS), bootstrap seed handling.
/data-analysis — R analogue. Same pipeline shape, different language./audit-reproducibility — reads both .rds and .dta outputs. Cross-checks manuscript claims against the produced values. Updated in v1.9.0 to handle Stata outputs./review-paper — if the paper exists and cites tables/figures produced by this pipeline, /review-paper auto-invokes /audit-reproducibility (per cross-artifact-review.md)..dta files. Never. All transformations happen via the .do files; .dta outputs are derived and reproducible.99_run_all.do. This is the AEA-mandated one-command entry point. Build it even for small projects., robust by default. Use , cluster(id) at the appropriate level — see stata-code-conventions.md §6.esttab and \input{} — see stata-code-conventions.md §4..do file starts with version 18 per the convention..claude/rules/stata-code-conventions.md — the discipline contract..claude/rules/replication-protocol.md — tolerance thresholds (applies across R / Stata / Python).Long Stata fits (multi-hour bootstrap with cluster bootstrap, large reghdfe with millions of observations, simulation studies) should be background-launched and tailed with the Monitor tool — same pattern as /data-analysis and /audit-reproducibility for R / Python. The .do file logs to SMCL; the Monitor tool follows stderr so Claude can react to errors mid-stream.
Take pedrohcgs/stata-replication from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference uvx.
Without those the skill loads but fails at the first command.