BeClaude

stata-c-plugins

New
6Community RegistryGeneralby Dylan Moore

Develop high-performance C plugins for Stata using the stplugin.h SDK. Covers SDK setup, data flow, memory safety, .ado wrappers, cross-platform compilation, performance optimization, debugging, packaging, and translating Python/R packages into Stata.

Community PluginView Source

Overview

This project contains two Claude Code skills:

  1. Stata — A comprehensive reference that tells Claude how to use Stata. Covers core syntax, data management, econometrics, causal inference, graphics, and 20+ community packages.
  1. Stata C Plugins — A skill that tells Claude how to make Stata code that uses C plugins to do things. It includes information that Claude can use to translate existing packages into C plugins that can be called from Stata. This is very useful because it means you can do things in Stata that you wouldn't otherwise be able to do very easily.

As long as you can find an existing package somewhere, you can just let Claude go look at the existing Python package and this skill provides a workflow that Claude can use to develop a replication of whatever it is, implemented in Python or R or whatever, that runs in Stata and uses a C plugin. In many if not most cases, you should be able to get something that runs at least as fast in Stata as it did in the original language, if not faster.

Installation

Add this repo as a marketplace in Claude Code:

code
/plugin marketplace add dylantmoore/stata-skill

Then install whichever option fits your needs:

PluginCommand
Stata reference only/plugin install stata
C plugin development only/plugin install stata-c-plugins
Both skills/plugin install stata-bundle

You can also find this and other plugins via the claude-plugins collection.

What's Included

Skill 1: Stata

37 core reference files covering:

  • Data import/export, management, and cleaning
  • Linear regression, panel data, time series
  • Limited dependent variables, survival analysis, SEM
  • Causal inference: DiD, RD, matching, treatment effects
  • Mata programming and matrix operations
  • Graphics, tables, and reporting
  • Workflow best practices

20 community package guides including:

  • reghdfe — high-dimensional fixed effects
  • estout / outreg2 — publication-quality tables
  • csdid, did_multiplegt — modern DiD estimators
  • rdrobust — regression discontinuity
  • psmatch2 — propensity score matching
  • synth — synthetic control
  • ivreg2 / xtabond2 — IV and dynamic panel GMM
  • And more (binsreg, coefplot, grstyle, winsor2, gtools, ...)

Skill 2: Stata C Plugins

Reference files covering:

  • Stata plugin SDK (stplugin.h) setup and data flow
  • Memory safety, debugging, and common failure modes
  • .ado wrapper patterns (preserve/merge, plugin loading)
  • Cross-platform compilation (macOS, Linux, Windows)
  • Performance optimization (pthreads, pre-sorted indices, XorShift RNG)
  • Packaging and distribution via net install
  • Translation workflow for porting Python/R packages to Stata
  • Testing strategy with correlation-based validation against reference implementations

How It Works

Both skills use progressive disclosure: a compact SKILL.md file loaded on activation directs Claude to read only the reference files relevant to the current task. This keeps context usage efficient while giving Claude access to detailed reference documents when needed.

Coverage

CategoryFilesTopics
Data Operations7Import, management, strings, dates, math functions
Statistics10Regression, panel, time series, MLE, GMM, survey, MI
Causal Inference5DiD, RD, matching, treatment effects, selection
Advanced Methods5Survival, SEM, nonparametric, spatial, ML/lasso
Programming6Do-files, macros, loops, Mata
Output & Workflow3Tables, reporting, best practices, external tools
Packages20Community-contributed packages
C Plugins4SDK patterns, performance, packaging, translation

Contributing

This repo is also a good place to learn about building Claude Code skills. The ROADMAP.md lists open problems around testing, progressive disclosure, and dynamic documentation that apply to skill development in general — not just Stata.

See CONTRIBUTING.md for how to add documentation for new Stata packages. Pull requests welcome!

Disclaimer

This reference material is derived in part from Stata's official documentation and community package documentation. No copyright is claimed. Stata is a registered trademark of StataCorp LLC. This project is not affiliated with or endorsed by StataCorp.

Install & Usage

1
Create the skills directory
mkdir -p .claude/skills
2
Download the skill file
mkdir -p .claude/skills && curl -o .claude/skills/stata-c-plugins.md https://raw.githubusercontent.com/dylantmoore/stata-skill/main/SKILL.md
3
Invoke in Claude Code
/stata-c-plugins
View source on GitHub
pluginpython

Frequently Asked Questions

What is stata-c-plugins?

Develop high-performance C plugins for Stata using the stplugin.h SDK. Covers SDK setup, data flow, memory safety, .ado wrappers, cross-platform compilation, performance optimization, debugging, packaging, and translating Python/R packages into Stata.

How to install stata-c-plugins?

To install stata-c-plugins, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /stata-c-plugins.

What is stata-c-plugins best for?

stata-c-plugins is a community categorized under General. It is designed for: plugin, python. Created by Dylan Moore.