reproducible-pipelines
This skill covers reproducible research pipelines and replication packages
Install / Use
npx skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill reproducible-pipelinesInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of reproducible-pipelines
reproducible-pipelines scores 92/100 on our quality scale, 504th of 1,657 Automation skills we index (top 31%).
Its SKILL.md is 13 KB long, well organised into 50 sections with 7 code examples: a thorough specification that gives an agent plenty to work with.
With 4,360 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 3 days ago, so reproducible-pipelines is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-27. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
reproducible-pipelines compared with similar skills
All 4 of these similar skills score higher than reproducible-pipelines; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| reproducible-pipelines (this skill)by brycewang-stanford | 92 | 4.4k | 3d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 85.6k | 11d ago | CLAUDE.md |
| rufloby ruvnet | 100 | 73.3k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 83.9k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install reproducible-pipelines?
- Run
npx skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill reproducible-pipelines. The install tabs above show the steps for each supported agent. - Which AI agents does reproducible-pipelines work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is reproducible-pipelines safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is reproducible-pipelines still maintained?
- The repository was last updated 3 days ago, so reproducible-pipelines is actively maintained.
Skill content
View source on GitHubname: reproducible-pipelines argument-hint: "<pipeline tool or reproducibility concern>" description: >- This skill covers reproducible research pipelines and replication packages. Use when the user is setting up a research project directory structure, configuring workflow managers (Make, Snakemake, DVC), managing computational environments, preparing replication packages for journal submission, or debugging reproducibility failures. Triggers on "reproducible", "replication package", "Makefile", "Snakemake", "DVC", "pipeline", "workflow manager", "data versioning", "conda environment", "Docker", "seed management", "AEA data editor", "replication", "project structure", or "submission checklist".
Reproducible Pipelines
Reference for building reproducible research pipelines: from project directory structure to automated workflows to journal-ready replication packages. Every computational result should be regenerable from raw data by running a single command.
When to Use This Skill
Use when the user is:
- Setting up a new empirical research project
- Building or debugging a Makefile/Snakemake/DVC pipeline
- Preparing a replication package for journal submission
- Managing computational environments (conda, Docker, renv)
- Tracking data provenance or versioning large datasets
- Debugging "works on my machine" reproducibility failures
Skip when:
- The task is about estimation methodology (use
causal-inferenceorstructural-modelingskill) - The task is git workflow management (see
workflows-work/references/worktree-patterns.md) - The task is about orchestrating Claude agents (see
slfg/references/orchestration-patterns.md)
Where to Start
- New project? Start with Directory Structure below
- Adding a workflow manager? Jump to Workflow Managers (Make / Snakemake / DVC)
- Preparing for submission? Jump to Pre-Submission Checklist
Project Directory Structure
Use a standardized layout from the start. This is the structure expected by most replication reviewers:
project/
├── README.md # Master documentation (how to replicate)
├── Makefile # Or Snakefile — single entry point
├── environment.yml # Conda environment (or requirements.txt)
├── data/
│ ├── raw/ # Original, immutable data files
│ │ └── README.md # Data sources, access instructions, citations
│ ├── intermediate/ # Cleaned/transformed data (gitignored, regenerable)
│ └── final/ # Analysis-ready datasets (gitignored, regenerable)
├── code/
│ ├── 01_clean.py # Data cleaning
│ ├── 02_build.py # Variable construction, merges
│ ├── 03_estimate.py # Main estimation
│ ├── 04_robustness.py # Robustness checks
│ └── 05_tables_figures.py # Output generation
├── output/
│ ├── tables/ # LaTeX/CSV tables (gitignored, regenerable)
│ └── figures/ # PDF/PNG figures (gitignored, regenerable)
├── docs/
│ ├── brainstorms/ # Research brainstorming docs
│ ├── plans/ # Implementation plans
│ └── codebook.md # Variable definitions
├── tests/ # Validation tests
│ ├── test_clean.py
│ └── test_estimates.py
└── paper/
└── manuscript.tex # The paper itself
Key principles:
data/raw/is immutable — never modify raw data files- Everything in
intermediate/,final/,output/is regenerable — gitignore it - Number scripts to indicate execution order (or rely on the workflow manager)
- Keep
README.mdas the single entry point for replicators
.gitignore for Research Projects
# Data (too large for git; document in README how to obtain)
data/raw/*.csv
data/raw/*.dta
data/raw/*.parquet
data/intermediate/
data/final/
# Generated output (reproducible from code)
output/tables/
output/figures/
# Environment
.conda/
__pycache__/
*.pyc
.ipynb_checkpoints/
# Large files managed by DVC
*.dvc
# OS
.DS_Store
Thumbs.db
# IDE
.vscode/
.idea/
Workflow Managers
Make (Recommended Default)
Make is universally available, well-understood, and sufficient for most research pipelines. Use it unless you have a specific reason for something else.
# Makefile — Top-level research pipeline
.PHONY: all clean tables figures
# Default target: reproduce everything
all: output/tables/main_results.tex output/figures/event_study.pdf
# === DATA CLEANING ===
data/intermediate/clean.parquet: data/raw/survey_2020.csv code/01_clean.py
python code/01_clean.py
# === VARIABLE CONSTRUCTION ===
data/final/analysis.parquet: data/intermediate/clean.parquet code/02_build.py
python code/02_build.py
# === ESTIMATION ===
output/estimates/main.pkl: data/final/analysis.parquet code/03_estimate.py
python code/03_estimate.py
output/estimates/robustness.pkl: data/final/analysis.parquet code/04_robustness.py
python code/04_robustness.py
# === TABLES AND FIGURES ===
output/tables/main_results.tex: output/estimates/main.pkl output/estimates/robustness.pkl code/05_tables_figures.py
python code/05_tables_figures.py --tables
output/figures/event_study.pdf: output/estimates/main.pkl code/05_tables_figures.py
python code/05_tables_figures.py --figures
# === UTILITIES ===
clean:
rm -rf data/intermediate/ data/final/ output/
tables: output/tables/main_results.tex
figures: output/figures/event_study.pdf
Make best practices:
- Each target lists its exact dependencies (both data and code)
- Changing any dependency triggers recomputation of downstream targets
make -j4runs independent targets in parallel (e.g., tables and figures simultaneously)make -ndry run shows what would be executed without running anything- Use
.PHONYfor targets that don't correspond to files
Snakemake (For Complex Pipelines)
Use Snakemake when the pipeline has many steps, parameter sweeps, or needs cluster execution.
# Snakefile
configfile: "config.yaml"
rule all:
input:
"output/tables/main_results.tex",
"output/figures/event_study.pdf"
rule clean_data:
input:
raw="data/raw/survey_2020.csv"
output:
clean="data/intermediate/clean.parquet"
script:
"code/01_clean.py"
rule build_analysis:
input:
clean="data/intermediate/clean.parquet"
output:
analysis="data/final/analysis.parquet"
script:
"code/02_build.py"
rule estimate:
input:
data="data/final/analysis.parquet"
output:
estimates="output/estimates/{spec}.pkl"
params:
seed=config["seed"]
script:
"code/03_estimate.py"
# Snakemake advantages over Make:
# - Python syntax (easier for researchers)
# - Built-in wildcards for parameter sweeps
# - Cluster execution (SLURM, SGE)
# - Conda environment per rule
# - Automatic DAG visualization: snakemake --dag | dot -Tpdf > dag.pdf
DVC (Data Version Control)
Use DVC when you need to version large data files that don't fit in git.
# Initialize DVC in an existing git repo
dvc init
# Track a large data file
dvc add data/raw/survey_2020.csv
# Creates data/raw/survey_2020.csv.dvc (small metadata file, tracked by git)
# The actual data is in .dvc/cache
# Configure remote storage
dvc remote add -d myremote s3://my-bucket/dvc-cache
# Push data to remote
dvc push
# Collaborator pulls data
dvc pull
DVC pipeline integration:
# dvc.yaml
stages:
clean:
cmd: python code/01_clean.py
deps:
- data/raw/survey_2020.csv
- code/01_clean.py
outs:
- data/intermediate/clean.parquet
estimate:
cmd: python code/03_estimate.py
deps:
- data/final/analysis.parquet
- code/03_estimate.py
outs:
- output/estimates/main.pkl
params:
- seed
- n_bootstrap
Enhanced DVC: remote storage and experiment tracking:
# Remote storage options
dvc remote add -d s3remote s3://my-bucket/dvc-cache # AWS S3
dvc remote add -d gcsremote gs://my-bucket/dvc-cache # Google Cloud
dvc remote add -d sshremote ssh://server.edu/path/cache # SSH server (common for university HPC)
dvc remote add -d localremote /data/shared/dvc-cache # Shared NFS mount
# Visualize pipeline DAG
dvc dag # ASCII DAG in terminal
dvc dag --dot | dot -Tpdf > pipeline.pdf # PDF visualization
# Parameter tracking and comparison
# params.yaml — centralize all tunable parameters
# DVC auto-tracks params files listed in dvc.yaml
dvc params diff HEAD~1 # Compare current params to last commit
dvc params diff main feature-branch # Compare across branches
# Metrics: track experiment outcomes
# In dvc.yaml: add metrics: [output/metrics.json] to a stage
dvc metrics show # Show all tracked metrics
dvc metrics diff HEAD~3 # Compare metrics across commits
# Partial pipeline execution
dvc repro estimate # Run only the 'estimate' stage and its deps
dvc repro --force # Re-run even if inputs haven't changed
# Pull only what you need (for large datasets)
dvc pull data/final/analysis.parquet.dvc # Pull only one file
dvc fetch --run-cache # Prefetch cached stage outputs
DVC best practices for research:
- Commit
dvc.lockto git — it records the exact state of all outputs - Use
params.yamlfor all tunable parameters (seeds, model specs, sample cutoffs); DVC tracks changes automatically - On HPC clusters: configure SSH remote pointing at shared storage so collaborators don't re-run expensive stages
dvc metricsis useful for tracking bias/RMSE across Monte Carlo runs; commitmetrics.jsonto see history
Which Workflow Manager to Use
| Factor | Make | Snakemake | DVC | pytask | |--------|------|-----------|-----|--------| | Complexity | Simple pipelines (< 20 targets) | Complex pipelines, parameter sweeps | Data-heavy pipelines | Mixed-language projects | | Learning curve | Low (most researchers know it) | Medium (Python-like syntax) | Medium (git-like commands) | Medium (Python decorators) | | Cluster support | Manual (submit scripts) | Built-in (SLURM, SGE) | Via CML | Via plugins | | Data versioning | No | No | Yes (core feature) | No | | Availability | Everywhere | pip install | pip install | pip install | | Reviewer familiarity | Very high | Medium | Lower | Lower |
pytask (Python-Native DAG)
pytask — Python-native DAG manager using decorated functions with type-annotated dependencies. First-class plugins for Stata, R, Julia. pixi run pytask rebuilds the entire project. Good for mixed-language economics projects.
Recommendation: Start with Make. Switch to Snakemake if you need cluster execution or parameter sweeps. Add DVC if data files are too large for git. Consider pytask if your team prefers Python-native tooling and works across multiple languages.
Additional References
references/stata-and-crosslang.md— Stata master.do patterns, batch mode, ado versioning, Stata anti-patterns; cross-language tolerance thresholds (R/Stata/Python) and systematic discrepancy trap tablereferences/environment-and-seeds.md— conda/renv/Docker environment management, random seed management by language, results caching strategiesreferences/replication-package.md— AEA-compliant replication package structure: README template, data availability statement, computational requirements, output map
Common Anti-Patterns
| Anti-Pattern | Problem | Better Approach |
|--------------|---------|-----------------|
| Jupyter notebooks as the pipeline | Non-linear execution, hidden state, hard to automate | Use .py scripts orchestrated by Make; notebooks only for exploration |
| Absolute file paths (/Users/me/data/...) | Breaks on any other machine | Use relative paths from project root; configure data directory in a single config file |
| pip install without version pinning |
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
85.6kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ruflo
73.3k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
Scrapling
83.9k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
