← ClaudeAtlas

data-convertlisted

Re-express structured data to hit a DIFFERENT target — map a source (system A's export) onto another system's import CONTRACT, and/or RESHAPE its structure (wide↔long, nested JSON↔flat table, split one file into many, union many into one). Use when the user wants to "convert this to X's format", "map these columns to the import template", "get this into the format System B needs", "reshape / pivot / unpivot this", "flatten this JSON", "split this file by column", "combine these files", or "prepare this for upload/import". Works INTENT-FIRST: proposes the target shape from the contract + purpose, you confirm, it applies deterministically and writes a reusable **conversion card** (Markdown + an embedded JSON spec) a future agent re-runs after sense-checking the source. Delegates cleaning to data-tidy; never invents values; live inputs (FX) are pinned/user-approved, not fetched. NOT data cleaning (data-tidy), NOT matching two record sets (data-reconcile), NOT raw file-format-only conversion.
moonlight-lupin/data-toolkit · ★ 0 · Data & Documents · score 72
Install: claude install-skill moonlight-lupin/data-toolkit
# Data Convert Take a **clean-enough** source and re-express it in the **structure or contract a downstream system requires**. The interoperability counterpart to `data-tidy`: **tidy = quality** (messy → clean, same-ish shape); **convert = interoperability** (clean → a *different* structure/contract). If the source is messy, convert **delegates the cleaning to `data-tidy` first**, then converts the clean result. > **Two jobs, often combined:** > 1. **Contract mapping** — map a source onto *another system's* import contract (columns, order, > types, required fields). Unmapped sources are reported; required-but-missing rows follow > `rules.on_missing_required` (`flag` / `exclude` / `error`) — never invent values. > 2. **Structural reshape** — `unpivot` (wide→long), `pivot` (long→wide), `flatten`/`nest` > (JSON↔table), `split` (one file→many by a key), `union` (many→one with column alignment). ## Workflow ```python import sys; sys.path.insert(0, "scripts") from convert import (load_spec, render_card, convert_file, convert_rows, sense_check, render_report) ``` > **Run from the skill directory** (`skills/data-convert/`). The `scripts` path resolves > to this skill's `scripts/` subdirectory where `convert.py` lives. ### 1. Intent first — what's the target, and why? Establish the **source**, the **target contract** (another system's import spec — its columns, order, required fields, formats) and the **purpose**. Once you understand the purpose you