Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIGitHub CopilotGitHub CopilotGemini CLIGemini CLI+20 more

    Data Cleanup with Change Log

    1

    Messy CSV or spreadsheet paste in; an analysis-ready table plus a log of every transformation made.

    Free

    0 installsSecurity scanned
    Data Cleanup with Change Log

    Data Cleanup with Change Log

    Example session with this skill installed

    Clean this data - it's an export of event signups from two different forms:

    name,email,signup_date,company,ticket_type,amount
    "Garcia, Maria",maria.garcia@acme.com,03/04/2026,ACME Corp,Early Bird,$149
    maria garcia,Maria.Garcia@acme.com,2026-03-04,Acme Corporation,early bird,149.00
    Tom Becker,tom.becker@northwind.io,4/15/26,Northwind,Standard,199
    Priya N.,priya@lumen.dev,15/04/2026,Lumen,Standard,$199.00
    J. Okafor,,2026-04-18,Okafor Consulting,VIP,450
    Lee Chen,lee.chen@globex.com,April 20 2026,Globex,Standard,
    Sam Ruiz,sam.ruiz@initech.com,2026-04-22,Initech,Comp,0
    Tom Becker,tom.becker@northwind.io,2026-04-15,Northwind Inc.,Standard,199
    Ana Silva,ana.silva@globex.com,2026-04-25,globex,student,79

    • Read your context and instructions
    • Compiled the data cleanup
    • Generated the data export

    I've cleaned all 9 signups and produced two new files: one keeps every row with problems flagged, and one merges the duplicates down to 7 attendees. Your original paste is saved as-is in signups_raw.csv. Its checksum didn't change after the script ran. I compared each cleaned row with the raw one by eye, and no value changed meaning.

    Rows: 9 in → 7 attendees + 2 merged duplicates. Nothing was dropped or quarantined.

    What changed

    ColumnChange
    name"Garcia, Maria" → "Maria Garcia"; all-lowercase "maria garcia" → "Maria Garcia". I left "Priya N." and "J. Okafor" as entered rather than invent full names.
    emailLowercased (only "Maria.Garcia@" changed)
    signup_dateAll dates now YYYY-MM-DD. "4/15/26" → 2026-04-15, "15/04/2026" → 2026-04-15, "April 20 2026" → 2026-04-20.
    company"globex" → "Globex" to match the existing spelling. Other names are as entered.
    ticket_typeCapitalised consistently: "early bird" → Early Bird, "student" → Student. VIP is unchanged.
    amountRemoved "$" and set to 2 decimals. "0" for the Comp ticket is kept as a real 0.00, not treated as missing.

    Duplicates (exact match on email, ignoring case)

    • Rows 1 + 2, Maria Garcia: same person, ticket and amount. The two rows give different company names (see below).
    • Rows 3 + 8, Tom Becker: identical except "Northwind" vs "Northwind Inc."
    • Lee Chen and Ana Silva share the globex.com domain but have different emails, so I kept them as separate people.

    I didn't guess these

    Row 1's date, "03/04/2026", can't be read safely on its own. The export mixes MM/DD ("4/15/26") and DD/MM ("15/04/2026"), so it could be March 4 or April 3. I left it blank in the per-row file. The merged record uses row 2's unambiguous 2026-03-04.
    2.

    Two people have conflicting company names: "ACME Corp" vs "Acme Corporation", and "Northwind" vs "Northwind Inc." For now the merged file keeps the first spelling.
    3.

    Lee Chen has no amount. Other Standard tickets are 199, but they could have used a discount or comp, so I left it blank.
    4. J. Okafor has no email. It's left blank, and with no email this record can never be matched as a duplicate.

    Decisions needed

    • Which company spellings should be the official ones?
    • Should Lee Chen's amount stay blank or be set to 199.00?
    • Is the merge right, keeping 7 attendees?

    Once you answer, I'll update the script and rerun it.

    Files

    All in [your working folder], written 2026-10-01:

    FileWhat it is
    signups_raw.csvYour paste, unchanged
    signups_clean_rows.csvAll 9 rows cleaned, with duplicate_of and review_flags columns
    signups_clean_deduped.csv7 attendees with source_rows and flags. Provisional until you answer the questions above.
    clean_signups.pyThe script that produced both files, so you can rerun it and see exactly what it does

    data-cleanup-with-change-log.csv

    CSV · data export

    Generated

    Example file from a real run - the skill writes it into your workspace.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    For anyone about to analyze an export with mixed date formats, duplicate rows, and inconsistent names. It standardizes the data without silently changing what it says: every transformation is declared, and every ambiguous value is surfaced instead of guessed.

    What you get

    • A cleaned dataset as a new file. Your original is never overwritten.
    • A change log: rows in and out, per-column changes, and how each missing value was handled.
    • Duplicates listed, not just deleted, with the rows they came from.
    • Row-count arithmetic (in = out + merged + dropped + quarantined), so nothing vanishes.
    • The script it used, when it runs one, so you can inspect and rerun it.

    What it refuses to do

    • Guess an ambiguous date (is 03/04 March 4 or April 3?), a unit, or whether two names are the same person.
    • Merge or delete rows without listing exactly which ones and why.
    • Fill a missing value with an invented one.

    It is designed to show you a profile of the data and a cleanup plan before changing anything. In the non-interactive demo below there was no one to approve the plan, so it applied it in one pass and listed every judgment call for you to decide.

    What's in the zip

    • SKILL.md: the skill.
    • references/recipe.md: the full step-by-step recipe with examples and variations.
    • evals/: test cases you can run to check its behavior.

    From the open-source Claude Code Recipes collection.

    How to install

    Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.

    ~30 seconds
    1. 1

      Download the ZIP

      Free skills download straight away. Paid skills unlock right after purchase.

    2. 2

      Unzip into your skills folder

      Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.

    3. 3

      Ask your agent to use it

      Restart the agent if it was already running. It picks the skill up automatically - no config needed.

    Skills folder by agent

    Click the path to copy it. Create the folder if it does not exist yet.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Free forever

    No account required to browse

    Trust & safety

    Security scanned

    Verified clean 1 day ago

    • Free to download with an account

    Listed1 day ago

    What's inside

    Frequently Asked Questions