Source profileQuality 88/100

PaulRBerg/agent-skills/skills/spreadsheets/SKILL.md

spreadsheets

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.

Source repository stars
68
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Handle tabular data with exact values, minimal diffs, local privacy, atomic writes, and structural validation.

Best for

  • Use when CSV, TSV, or Excel (.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/PaulRBerg/agent-skills --skill "skills/spreadsheets"
Safe inspection promptEditorial

Inspect the Agent Skill "spreadsheets" from https://github.com/PaulRBerg/agent-skills/blob/2c47aa0b01d513aaa36e0c8271cc8c524734eaee/skills/spreadsheets/SKILL.md at commit 2c47aa0b01d513aaa36e0c8271cc8c524734eaee. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    1. Inspect with 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. 2. Decide whether fo…

    Inspect with peek.py --redact-samples; add profile.py when cardinality, formula prefixes, metadata, or availableDecide whether formula-prefix cells are dangerous from provenance and output context. Decide the smallest tool thatApply the transformation atomically. For idempotent appends with legitimate duplicate rows, use multiset difference
  2. 02

    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,…

    Keep precision-sensitive amounts as strings and compute with decimal.Decimal or DuckDB DECIMAL(38, 18), neverTouch only requested rows, columns, formulas, and formatting. Existing file conventions override house defaults.For newly authored text tables, prefer TSV, UTF-8 without BOM, LF, one trailing newline, lowercase snakecase
  3. 03

    Factual Profiling

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

    Resolve helper paths from this SKILL.md. Profile unknown data before choosing a transformation tool:The JSON output has schemaversion: 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…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 f…
  4. 04

    Tool Routing

    Prefer qsv --cache-threshold 0 where supported. When qsv stdout must remain TSV, use -o out.tsv; stdout otherwise defaults to CSV.

    Prefer qsv --cache-threshold 0 where supported. When qsv stdout must remain TSV, use -o out.tsv; stdout otherwise defaults to CSV.
  5. 05

    prb-finance

    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.

    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 requeste…Completion requires the requested artifact, an intentional diff, atomic replacement where applicable, and structural plus domain validation evidence.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score88/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars68SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
PaulRBerg/agent-skills
Skill path
skills/spreadsheets/SKILL.md
Commit
2c47aa0b01d513aaa36e0c8271cc8c524734eaee
License
MIT
Collected
2026-08-04
Default branch
main
View the original SKILL.md

Spreadsheets

Handle tabular data with exact values, minimal diffs, local privacy, 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. Keep transaction, bank, exchange, and tax data local. Redact samples unless raw rows were explicitly requested.

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> --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.

Tool Routing

NeedTool
Fast structural preview/validationuv run scripts/peek.py <file> --redact-samples
Factual local quality profileuv run scripts/profile.py <file> --redact-samples
Counts, stats, frequencies, select, dedupeqsv
Joins, pivots, aggregation, conversionDuckDB with all_varchar = true
Exact custom transformsuv run Python, stdlib csv, decimal.Decimal
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; stdout otherwise defaults to CSV.

Workflow

  1. Inspect with 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.
  2. 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.
  3. Apply the transformation atomically. For idempotent appends with legitimate duplicate rows, use multiset difference rather than set deduplication.
  4. 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 scripts/recalc.py <file.xlsx> and require success.
  5. 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. Do not paste private profile JSON or decorate cells, headers, formulas, paths, commands, or diagnostics.

prb-finance

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.

Alternatives

Compare before choosing