agentleFS
wfukatsuwfukatsu/slide-forge/skills/spreadsheets/SKILL.md

spreadsheets

Skill5 starsChanged 56 days agoMITView on GitHub

Generate line-item spreadsheets — estimates, BOMs, cost breakdowns, comparison tables — as Excel (.xlsx) and/or Google Spreadsheet from one JSON spec; and planning-model spreadsheets (assumptions, scenarios, charts) a deck links to and syncs from. Companion to a deck, and also standalone. Use for: 見積もりを作って, 見積書, 明細表, 費用内訳を Excel に, BOM をスプレッドシートに, cost breakdown spreadsheet, 事業計画をスプレッドシートで, シミュレーションできるシート, スライドの数字をスプレッドシートと連携, planning model, scenario model. Not: free-form or existing-file xlsx work (document-skills:xlsx); reading or analyzing spreadsheets; tables drawn inside slides.

13 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use docx and frontend-design.

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

  • BlockSkill

    frontend-design

    Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never author the two outputs separately — they must stay identical.

    line 24
  2. Very specific:

    Companion to a deck: when the spreadsheet backs a proposal's cost slide (scalar-proposal-slides BOM, etc.), put it in the deck's Drive …

    line 39
  3. Very specific:

    When the workbook is a model people simulate in — a business plan with assumptions, scenarios and charts whose numbers a deck must follow — …

    line 46
  4. Very specific:

    Build: add --gsheet --folder <FOLDER> when a Google Spreadsheet was requested.

    line 110

“Common” is measured: kept by at least 6 in 10 of the 12 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

日本語

Line-item Spreadsheets (Excel + Google Spreadsheet)

Important

  • One spec, two outputs. The JSON spec builds the .xlsx with openpyxl; --gsheet converts that same file into a Google Spreadsheet via Drive. Never author the two outputs separately — they must stay identical.
  • Amounts are formulas, not pasted numbers. Amount = quantity × unit price as a real formula (=D{row}*F{row}), totals as SUM. The user will edit quantities in the delivered file and the totals must follow. Only put literal numbers in cells the user should treat as input (unit price, quantity).
  • Fixes happen in the spec. Regenerate on any change; with the same title and folder, the Google Spreadsheet is updated in place (URL preserved), so the user always holds one link.
  • Run every command from the slide-forge root as cwd — ${CLAUDE_PLUGIN_ROOT} when running from an installed plugin, /path/to/slide-forge on a local clone. Auth and the venv are shared at the repo root (config/, .venv).
  • Never invent prices. Unit prices, tax rates, and discount terms come from the user or their material. Anything unsourced stays a ○○ placeholder flagged in the note row and the report — same rule as deck content.
  • Companion to a deck: when the spreadsheet backs a proposal's cost slide (scalar-proposal-slides BOM, etc.), put it in the deck's Drive folder and keep slide summary and sheet totals consistent — the slide shows the total, the sheet carries the line items.

Planning models linked to a deck

When the workbook is a model people simulate in — a business plan with assumptions, scenarios and charts whose numbers a deck must follow — use scripts/build_model.py instead of build_sheet.py. It writes through the Sheets API (no xlsx), keeps sheet and chart ids across rebuilds, keeps the values readers typed into input cells, and creates the named ranges and charts a deck links to with {{sheet:NAME}} and the sheetsChart figure. scripts/sync_deck.py then carries later changes into the deck. Read references/sheets-link.md before authoring one.

Quick Reference

TaskCommand
Validate the spec (offline, free).venv/bin/python scripts/build_sheet.py spec.json --dry-run
Build xlsx (→ out/sheets/<title>.xlsx).venv/bin/python scripts/build_sheet.py spec.json [--out path.xlsx]
Also create the Google Spreadsheet--gsheet [--folder <Drive folder URL/ID>]
Archive the spec next to it.venv/bin/python scripts/drive_folder.py upload <FOLDER> spec.json
Worked example (estimate with tax summary)examples/estimate-sample.json

Spec format

Full reference in the build_sheet.py docstring; the shape:

{
  "title": "○○様向け ScalarDB 導入見積もり",
  "sheets": [{
    "name": "見積もり明細",
    "heading": "表の見出し(任意)",
    "note": "有効期限・税区分などの注記(任意)",
    "columns": [
      {"header": "数量", "type": "int", "width": 8},
      {"header": "単価(月額)", "type": "currency"},
      {"header": "金額(月額)", "type": "currency", "formula": "=D{row}*F{row}"}
    ],
    "rows": [[...], "…列数は columns と一致。formula 列は null…"],
    "summary": [
      {"label": "小計", "formula": "=SUM(G{first}:G{last})"},
      {"label": "消費税 (10%)", "formula": "=G{s1}*0.1"},
      {"label": "合計", "formula": "=G{s1}+G{s2}", "emphasis": true}
    ]
  }]
}
  • type: text (default) / int / currency (¥#,##0) / percent / date
  • Placeholders: {row} (that data row), {first}/{last} (data range), {s1}, {s2}… (summary rows, forward references only)
  • Multiple sheets per book: put the line-item sheet first, then assumptions / breakdown sheets — estimates without stated assumptions get disputed later, so include an assumptions sheet whenever the numbers depend on region, exchange rate, contract term, or excluded work.

Workflow

  1. Settle the shape before authoring (AskUserQuestion, one round, following references/interactive-intake.md §0/§5 manners): line-item granularity and source material; tax handling (excl./incl. tax/rate); output — xlsx only / Google Spreadsheet too (default: both; lead with the Spreadsheet when the recipient is on Google Workspace); Drive folder (the deck's folder when this backs a deck). Skip anything already specified.
  2. Author the spec and validate offline: --dry-run catches column-count mismatches, unknown types, and bad placeholder references before any API call.
  3. Build: add --gsheet --folder <FOLDER> when a Google Spreadsheet was requested. Upload the spec JSON to the same folder (Drive folder rule).
  4. Verify the numbers — formulas compute in the file, not in the spec, so check them once: export the converted sheet as CSV and confirm the subtotal/total (drive.files().export(fileId=…, mimeType="text/csv") returns computed values), or recompute the expected totals and compare. A wrong column letter in a formula is silent otherwise.
  5. Report: local xlsx path, Google Spreadsheet URL (when created), the Drive folder, and any ○○ placeholders still to be filled by the user.

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.