Agent skill · Data & Analytics

tabular-cleanup

Use when the user has a messy tabular data dump (CSV/TSV/parquet/Excel/JSON) and wants it iteratively cleaned to an inferred data contract — a checklist of deterministic pass/fail checks, not a quality score. A single agent profiles the table, synthesizes a per-column contract compiled into binary checks (types, nulls, duplicates, inconsistent categories, format/range violations, outliers), then applies one targeted transform at a time, keeping it only if it reduces its target check's violations with no regression and no guardrail breach. Stops deterministically when every check passes, every

gaashergithub.com/gaasherGitHub ↗
claude-codeMIT
Install
npx skills add gaasher/Agent-Loop-Skills --skill tabular-cleanup --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 4
SKILL.md size: 16 KB
Bundled scripts: none
Version: 0.2.0
Requires: Requires Python 3.9+
Path: loops/tabular-cleanup/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 146
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Tabular Cleanup Loop A **single agent** that takes a messy data dump (`<artifact>`) to the cleanest defensible state, **no human in the loop** once running. The objective is a **checklist, not a score**: the agent infers a data contract, compiles it into **deterministic binary checks** (each reports a violation *count*, never a weighted float), then each iteration profiles the table, picks the worst open check, applies **one** pandas transform to resolve it, and keeps it only if that check's violations strictly drop with no collateral damage. Every accepted transform appends to a replayable `pipeline.py`; every attempt logs to the `ledger`. The work decomposes into **structure** (parse correctly, one tidy table, sane types) → **contract synthesis** (turn every observed anomaly into a check) → **the fix loop**. Contract synthesis is where quality is won or lost: an issue the profiler notices but never compiles into a check (classically, many spellings of one category) silently survives — a green checklist over dirty data. Checks read the *stored* value, so canonicalization is real work the loop must do, not a check-time trick. ## When to use Use this to autonomously clean a messy

What's inside
Steps it walks through
  1. When to use
  2. Setup
  3. Contract synthesis (the make-or-break step — do not skip)
  4. The checklist
  5. The loop
  6. Stops
  7. Outputs & formats
  8. Constraints
Ships with 3 files
  • examples/run.example.yaml
  • schemas/ledger.schema.json
  • schemas/profile.schema.json
More from Agent-Loop-Skills
All skills →
About this skill
What does the tabular-cleanup skill do?

Use when the user has a messy tabular data dump (CSV/TSV/parquet/Excel/JSON) and wants it iteratively cleaned to an inferred data contract — a checklist of deterministic pass/fail checks, not a quality score. A single agent profiles the table, synthesizes a per-column contract compiled into binary checks (types, nulls, duplicates, inconsistent categories, format/range violations, outliers), then applies one targeted transform at a time, keeping it only if it reduces its target check's violations with no regression and no guardrail breach. Stops deterministically when every check passes, every

How do I install it?

Run `npx skills add gaasher/Agent-Loop-Skills --skill tabular-cleanup --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From gaasher/Agent-Loop-Skills, a repository with 146 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going