Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/nobodyohm-web/thot/excel-author)<a href="https://agentmods.dev/skills/nobodyohm-web/thot/excel-author"><img src="https://agentmods.dev/badge/skills/nobodyohm-web/thot/excel-author.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00016 | $0.02367 |
| Opus 5 | $0.00008 | $0.01184 |
| Sonnet 5 | $0.00003 | $0.00473 |
| Haiku 4.5 | $0.00002 | $0.00237 |
Grade A, and why
excel-author scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to excel-author — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 245 lines — stays where its author put it; the contents beside it link to each section on GitHub.
excel-author
Produce an .xlsx file on disk using openpyxl. Follow the banker-grade conventions below so the model is auditable, flexible, and reviewable by someone other than the person who built it.
Adapted from Anthropic's xlsx-author and audit-xls skills in the anthropics/financial-services repo. The MCP / Office-JS / Cowork-specific branches of the originals are dropped — this skill assumes headless Python.
Output contract
- Write to
./out/<name>.xlsx. Create./out/if it does not exist. - Return the relative path in your final message so downstream tools can pick it up.
- One logical model per file. Do not append to an existing workbook unless explicitly asked.
Setup
pip install "openpyxl>=3.0"
Core conventions (non-negotiable)
Blue / black / green cell color
- Blue (
Font(color="0000FF")) — hardcoded input a human entered. Revenue drivers, WACC inputs, terminal growth, market data. - Black (default) — formula. Every derived cell is a live Excel formula.
- Green (
Font(color="006100")) — link to another sheet or external file.
A reviewer can then scan the sheet and immediately see what's an assumption vs. what's computed.
Formulas over hardcodes
Every calculation cell MUST be a formula string, never a number computed in Python and pasted as a value.
# WRONG — silent bug waiting to happen
ws["D20"] = revenue_prior_year * (1 + growth)
# CORRECT — flexes when the user changes the assumption
ws["D20"] = "=D19*(1+$B$8)"
The only hardcoded numbers permitted:
- Raw historical inputs (actual revenues, reported EBITDA, etc.)
- Assumption drivers the user is meant to flex (growth rates, WACC inputs, terminal g)
- Current market data (share price, debt balance) — with a cell comment documenting source + date
If you catch yourself computing a value in Python and writing the result, stop.
Named ranges for cross-sheet references
Use named ranges for any figure referenced from another sheet, a deck, or a memo.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 245 lines · 16 tokens per session scan A f0228fe29411
excel-author is a skill published in the GitHub repository nobodyohm-web/Thot (0 stars, last pushed 11d ago), licensed MIT. It adds 16 tokens to every session and 2,367 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to excel-author, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
dcf-model
Build discounted cash flow valuation workbooks in Excel.
comps-analysis
Build comparable-company valuation workbooks in Excel.
lbo-model
Build leveraged buyout workbooks with IRR/MOIC in Excel.
3-statement-model
Build integrated IS/BS/CF financial workbooks in Excel.
merger-model
Build M&A accretion/dilution workbooks in Excel.
investor-materials
Create and update pitch decks, one-pagers, investor memos, accelerator applications, financial models, and fundraising materials. Use when the user needs investor-facing documents, projections, use-of-funds tables, milestone plans, or materials that must stay internally consistent across multiple fundraising assets.