paulrberg/agent-skills

spreadsheets

"Use when CSV, TSV, or Excel (.xlsx) is the primary input/output: design or review text-table schemas; inspect, transform, validate, convert, or recalc formulas; or create/fix spreadsheets. Do not trigger when tabular data is incidental."

First seen Jun 10, 2026

Installation

$ npx skills add paulrberg/agent-skills --skill spreadsheets

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from paulrberg/agent-skills · top by installs.

npx skills add paulrberg/agent-skills

Browse all from paulrberg/agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 70
License LICENSE.md
Default branch main
Open issues 4
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,031 B
  • docs SUMMARY.md 256 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 222 installs

SKILL.md

Spreadsheets

Handle tabular data with exact values, minimal diffs, recipient-scoped data handling, atomic writes, and structural validation.

Invariants

  1. Keep precision-sensitive amounts as strings and compute with decimal.Decimal or DuckDB DECIMAL(38, 18), never

binary floats.

  1. Touch only requested rows, columns, formulas, and formatting. Existing file conventions override house defaults.
  2. For newly authored text tables, prefer TSV, UTF-8 without BOM, LF, one trailing newline, lowercase snake_case

headers, ISO dates, . decimals, and - nulls.

  1. Read unknown text tables with BOM-tolerant UTF-8; never write a BOM.
  2. Write in place atomically through a sibling temporary file, validate it, then replace the target.
  3. Escape external cells beginning with =, +, or @; a bare - null is exempt. Formula-prefix cells in trusted

authored data are observations, not proof of injection.

  1. Treat transaction, bank, exchange, and tax data as user-owned. Use unredacted samples in internal agent reports when

materially useful; use --redact-samples for public or third-party disclosures or when the user asks.

Factual Profiling

Resolve helper paths from this SKILL.md. Profile unknown data before choosing a transformation tool:

uv run "<skill-dir>/scripts/profile.py" <file>

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.

Tool Routing

Need Tool
Fast structural preview/validation uv run "<skill-dir>/scripts/peek.py" <file>
Factual local quality profile uv run "<skill-dir>/scripts/profile.py" <file>
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
New text table or intentional schema change Read references/text-table-design.md first
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.

Workflow

  1. For a new text table or intentional schema change, read references/text-table-design.md and record the intended

table interface plus migration surface.

  1. Inspect with peek.py; 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.

  1. Decide whether formula-prefix cells are dangerous from provenance and output context. Decide the smallest tool that

preserves values and formatting. Avoid pandas unless necessary; if used, load every column as strings.

  1. Apply the transformation atomically. For idempotent appends with legitimate duplicate rows, use multiset difference

rather than set deduplication.

  1. Validate:

- unchanged shape: peek.py --strict --expect-like <before-report>; - changed shape: peek.py --strict --expect-columns <n> plus task-specific counts/keys; - authored house TSV: add --house; - formulas: uv run "<skill-dir>/scripts/recalc.py" <file.xlsx> and require success.

  1. Report paths, row/column effects, validation, and any workbook features that could not be preserved.

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. Include profile JSON only when it materially supports the report, and keep JSON, cells, headers, formulas, paths, commands, and diagnostics undecorated.

Generated Financial Artifacts

Treat generated financial tables and reports as outputs. Before editing, identify their source inputs and the project-provided validation and regeneration commands. Edit only the sources, validate them, then regenerate affected outputs; never hand-edit generated tables or reports. Cap financial output to counts and file references unless raw rows materially support the task or were requested. Perform an external-disclosure review before sending financial data outside the agent workspace.

Completion requires the requested artifact, an intentional diff, atomic replacement where applicable, and structural plus domain validation evidence. A new or changed text-table schema also requires a defined table interface and a complete migration of affected producers, consumers, existing rows, generated artifacts, and validators.