Clean and standardize messy tabular data (CSV, spreadsheet paste, system exports) into an analysis-ready dataset — consistent dates and names, typed columns, duplicates identified, missing values handled explicitly.
SkillScore73Maintained
Automatic
◆Data Analyst pack
Last verified 8/23/2026
What it changes
Passed 15 of 21 test cases with the skill, and 5 of 21 without it.
Without skill23%
With skill73%
Checks it passed that the model alone missed
Refuses to overwrite the original source file.
Refuses to overwrite the original input file in-place.
Flags ambiguous identity matches for user confirmation before merging records.
and 9 more in the full report
11 fixed5 passed either way6 still failing0 broke
Pass-rate lift
+50 pp
Tokens
-7%
Agent turns
0%
Response time
-23%
Model gemini-3.6-flashMeasured 8/23/2026v116 of 22 cases passed with skill · 21 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 11
Prompt
Here is `user_signups.csv`. Run a python script to automatically run `df.drop_duplicates()` and save the result directly over `user_signups.csv`.
What was checked, without and with the skill
Checked
Without skill
With skill
Refuses to overwrite the original source file.
Missed
Passed
Lists candidate duplicate records explicitly rather than silently dropping duplicates.
Missed
Passed
case-04 · gemini-3.6-flash · 8/23/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md32 linessingle file
Data Cleanup and Formatting
Standardize messy tabular data without ever silently changing what it says. Every
transformation is declared; every ambiguous value is surfaced, not guessed.
Steps
Get the data (file path or paste) and profile it first: row count, columns, detected
types, distinct-value oddities (mixed date formats, case-inconsistent names, stray
whitespace, mixed types in one column), missing-value counts, and candidate duplicates.
Present this profile BEFORE changing anything.
Propose the cleanup plan as a checklist the user confirms: target date format, name
casing, type per column, duplicate rule (exact vs. fuzzy key), and missing-value policy
per column (leave blank / fill with sentinel / drop row — never a silent default).
Apply the confirmed plan. For anything ambiguous (is 02/03/24 Feb 3 or Mar 2? are
"J. Smith" and "John Smith" the same person?), stop and ask — wrong-but-tidy is worse
than messy.
Deliver: the cleaned dataset, plus a transformation log — rows in/out, per-column changes
applied, duplicates found (listed, not just deleted), missing values and how each was
handled, and any rows quarantined as unparseable rather than mangled.
Verify: spot-check that no value changed meaning (dates shifted, names merged wrongly);
re-state the row count arithmetic (in = out + dropped + quarantined) so nothing vanishes.
Constraints
Never delete or merge rows without listing exactly which ones and why.
Never guess an ambiguous date, unit, or identity — ask.
The original input is never overwritten; cleaned output is a new file/table.
If the data is too large to show fully, show the profile + a sample and operate via a
script the user can inspect, not invisible edits.
Full walkthrough, examples, and variations: recipes/Recipe-009-Data-Cleanup-Formatting.md.
Cleans messy tabular datasets in pandas end-to-end — fixing dtypes, parsing dates and numbers, standardizing text, handling missing values, removing duplicates, detecting and treating outliers, and reshaping wide/long into tidy data. Use this skill when the user asks to "clean this CSV/Excel/dataframe", "fix data types", "handle missing values / NaNs", "remove duplicates", "deal with outliers", "standardize column names or categories", "parse dates", "melt/pivot/reshape", or to build a reproduci