skills/spreadsheets/SKILL.md
Use when CSV, TSV, or Excel (.xlsx) is the primary input/output: inspect, transform, validate, convert, recalc formulas, or create/fix spreadsheets. Do not trigger when tabular data is incidental.
npx skillsauth add paulrberg/dot-agents spreadsheetsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Handle tabular data with exact values, minimal diffs, local privacy, atomic writes, and structural validation.
decimal.Decimal or DuckDB DECIMAL(38, 18), never
binary floats.snake_case
headers, ISO dates, . decimals, and - nulls.=, +, or @; a bare - null is exempt. Formula-prefix cells in trusted
authored data are observations, not proof of injection.Resolve helper paths from this SKILL.md. Profile unknown data before choosing a transformation tool:
uv run "<skill-dir>/scripts/profile.py" <file> --redact-samples
The JSON output has schema_version: 2. It reports structural facts, header quality, cardinality/statistics when qsv is
available, frequency facts, formula-prefix cells, workbook metadata, and local tool availability. It contains no tool
recommendations and does not infer identifiers from uniqueness. Choose the tool from the requested transformation,
provenance, output format, and preservation requirements.
Use --external-data only when the cells came from an external or otherwise untrusted source and will be written to a
formula-capable consumer. With that flag, formula-prefix cells affect status; without it, legitimate formulas such as
=SUM(...) remain factual observations and do not fail the profile.
| Need | Tool |
| ------------------------------------------ | --------------------------------------------------- |
| Fast structural preview/validation | uv run scripts/peek.py <file> --redact-samples |
| Factual local quality profile | uv run scripts/profile.py <file> --redact-samples |
| Counts, stats, frequencies, select, dedupe | qsv |
| Joins, pivots, aggregation, conversion | DuckDB with all_varchar = true |
| Exact custom transforms | uv run Python, stdlib csv, decimal.Decimal |
| Any .xlsx/.xlsm input or output | Read references/xlsx.md first |
| Exact transformation/validation recipes | Read references/recipes.md only when needed |
Prefer qsv --cache-threshold 0 where supported. When qsv stdout must remain TSV, use -o out.tsv; stdout otherwise
defaults to CSV.
peek.py --redact-samples; add profile.py when cardinality, formula prefixes, metadata, or available
tooling matters. For a no-shape-change edit, save the peek JSON. For intentional row/schema changes, record the
expected width and invariants.peek.py --strict --expect-like <before-report>;peek.py --strict --expect-columns <n> plus task-specific counts/keys;--house;uv run scripts/recalc.py <file.xlsx> and require success.For human output, lead with ### 📊 Spreadsheet — ✅ updated only after the write and required validation pass, or
### 📊 Spreadsheet — 🔎 inspected, no files written for read-only work. On required validation failure, use
### 📊 Spreadsheet — ⛔ not deliverable. Do not paste private profile JSON or decorate cells, headers, formulas,
paths, commands, or diagnostics.
Never hand-edit generated .pool.tsv, .annual.tsv, or Markdown reports. After source edits, run just tsv-check,
then just cli::write-changed. Cap private output to counts and file references unless raw rows were requested.
Completion requires the requested artifact, an intentional diff, atomic replacement where applicable, and structural plus domain validation evidence.
development
Refactor naming and repository structure exhaustively while preserving behavior and external contracts.
tools
Uses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to `--slim` mode (MCP configuration).
testing
Audit an entire repository with fresh eyes for correctness errors, bugs, omissions, duplication, inconsistencies, and other evidenced mistakes; fix every safe issue and verify the result.
development
Autonomous overnight codebase improvement with bounded runtime, evidence-gated changes, and verification.