agentleFS
PaulRBergPaulRBerg/agent-skills/skills/spreadsheets/SKILL.md

spreadsheets

Skill104 starsChanged 19 days agoMITView on GitHub

Handle tabular data with exact values, minimal diffs, recipient-scoped data handling, atomic writes, and structural validation. 1. Keep precision-sensitive amounts as strings and compute with decimal.Decimal or DuckDB DECIMAL(38, 18), never binary floats. 2. Touch only requested rows, columns, formulas, and formatting. Existing file conventions override house defaults. 3. For newly authored text tables, prefer TSV, UTF-8 without BOM, LF, one trailing newline, lowercase snake_case headers, ISO dates, . decimals, and - nulls. 4. Read unknown text tables with BOM-tolerant…

13 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use docx.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AnthropicSkill

    docx

    Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

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

    line 17
  2. Distinctive:

    Read unknown text tables with BOM-tolerant UTF-8.

    line 22
  3. Distinctive:

    Write in place atomically through a sibling temporary file, validate it, then replace the target.

    line 23
  4. Very specific:

    Treat transaction, bank, exchange, and tax data as user-owned.

    line 26
  5. Very specific:

    Use --external-data only when the cells came from an external or otherwise untrusted source and will be written to a formula-capable …

    line 42
  6. Very specific:

    Prefer qsv --cache-threshold 0 where supported.

    line 59
  7. Distinctive:

    Treat generated financial tables and reports as outputs.

    line 87

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
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.
  2. Touch only requested rows, columns, formulas, and formatting. Existing file conventions override house defaults.
  3. For newly authored text tables, prefer TSV, UTF-8 without BOM, LF, one trailing newline, lowercase snake_case headers, ISO dates, . decimals, and - nulls.
  4. Read unknown text tables with BOM-tolerant UTF-8. Never write a BOM.
  5. Write in place atomically through a sibling temporary file, validate it, then replace the target.
  6. Escape external cells beginning with =, +, or @. A bare - null is exempt. Formula-prefix cells in trusted authored data are observations, not proof of injection.
  7. Treat transaction, bank, exchange, and tax data as user-owned. Use unredacted samples in internal agent reports when materially useful. For public or third-party disclosures, or when the user asks, use --redact-samples.

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

NeedTool
Fast structural preview/validationuv run "<skill-dir>/scripts/peek.py" <file>
Factual local quality profileuv run "<skill-dir>/scripts/profile.py" <file>
Counts, stats, frequencies, select, dedupeqsv
Joins, pivots, aggregation, conversionDuckDB with all_varchar = true
Exact custom transformsuv run Python, stdlib csv, decimal.Decimal
New text table or intentional schema changeRead references/text-table-design.md first
Any .xlsx/.xlsm input or outputRead references/xlsx.md first
Exact transformation/validation recipesRead references/recipes.md only when needed

Prefer qsv --cache-threshold 0 where supported. When qsv stdout must remain TSV, use -o out.tsv. Otherwise, stdout 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.
  2. Inspect with peek.py. When cardinality, formula prefixes, metadata, or available tooling matters, add profile.py. For a no-shape-change edit, save the peek JSON. For intentional row/schema changes, record the expected width and invariants.
  3. 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 you use it, load every column as strings.
  4. Apply the transformation atomically. For idempotent appends with legitimate duplicate rows, use multiset difference rather than set deduplication.
  5. 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.
  6. 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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.