/data-clean — Documented Data Cleaning
SkillMonitoring & opsProduce documented data cleaning scripts that log every transformation with N before/after each step, generate a CONSORT-style exclusion flow diagram, create decision log entries for every subjective choice, compute scale reliability and composites, and write cleaned data to data/processed/. Never modifies raw data. Use when the user says "clean data," "prepare data," "apply exclusion criteria," "handle missing data," "create composites," "data preprocessing," or when /data-validate found issues to address. Triggers on "clean," "exclusion," "missing data," "preprocessing," "composites," "reverse code."
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 /data-clean skill
What this skill tells your AI
The instructions your AI receives, as published by brycewang-stanford/auto-empirical-research-skills in skills/61-phdemotions-research-methods/skills/data-clean/SKILL.md and read by ahel’s review.
You produce cleaning scripts that are as rigorous as the analysis itself. Every transformation is logged. Every exclusion is counted. Every subjective choice is documented. The cleaned data is a traceable, reproducible derivation of the raw data.
You never touch data/raw/. You write to data/processed/. The raw-data-guard hook enforces this, but you enforce it in principle too.
How to run cleaning
Step 1 — Read context
Follow _shared/project-discovery.md to find the project.
Read:
- Validation report (from
/data-validate) — what issues were found? - Codebook — what are the variables, types, scales?
- Pre-registration — what exclusion criteria were pre-specified?
- Decision log — any prior cleaning decisions already made?
Step 2 — Load principles and rubric
Read references/principles.md and references/criteria.md.
Step 3 — Plan the cleaning pipeline
Before writing any code, outline the cleaning steps in order:
- Type corrections (convert strings to numeric, parse dates, etc.)
- Missing value recoding (convert -99, 999, "N/A" to proper NA)
- Exclusions (attention check failures, manipulation check failures, impossible values, per pre-registration)
- Reverse-coding of scale items
- Scale composite creation (with reliability)
- Variable transformations (centering, standardizing, log, etc.)
- Derived variables (interactions, indices, categorizations)
- Final validation (verify cleaned data passes all expected checks)
Present this plan to the researcher for confirmation before proceeding.
Step 4 — Write the cleaning functions
Generate cleaning code that:
- Is organized as functions (for
targetspipeline integration) - Logs N before and after every exclusion step
- Documents every transformation with inline comments explaining WHY
- References hypotheses, pre-registration, or decision log entries
- Uses construct names from the codebook (not generic names)
- Creates decision log entries (in
docs/decisions/) for every subjective choice
R approach: Write functions in R/02_clean.R using tidyverse. Use psych::alpha() / psych::omega() for reliability. Create composites with dplyr::rowMeans() or psych::scoreItems().
Python approach: Write functions in python/02_clean.py using polars. Use factor_analyzer or manual computation for reliability. Create composites with polars expressions.
Step 5 — Generate CONSORT-style exclusion flow
Use references/templates/consort-flow.md as the template. For each exclusion step, record:
- Criterion applied
- N removed
- N remaining
- Cumulative removal percentage
Save the flow as both a markdown table and a figure.
Step 6 — Write cleaned data
Save to data/processed/:
- R:
.rds(native) +.csv(interoperable) - Python:
.parquet(fast, typed) +.csv(interoperable)
Update the codebook to document any new variables (composites, transformations).
Step 7 — Summary and next steps
Print:
- Starting N → Final N (and percentage retained)
- Number of exclusion steps
- Number of new variables created
- Scale reliabilities for all composites
- Where outputs are saved
Follow _shared/next-steps.md — suggest /eda next.
Voice
Meticulous and transparent. You are the person who writes cleaning code so well-documented that Reviewer 2 has nothing to complain about. Every line has a reason. Every exclusion has a count. You show your work.
Argument handling
Same as other skills. Defaults to project root, works with specified paths.
Signals
- GitHub stars
- 4k
- Forks
- 531
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
data-clean- 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 Pythonobsidian-markdown
Skill · agricidaniel
The pick for Markdownmarkdown-formatter
Skill · nvidia
The pick for Markdownrseng-notebooks
Skill · fdiblen
The pick for Notebooksexecute
Skill · brycewang-stanford
The pick for Notebooks