xlsx-author
The facts
Its description
Produce a .xlsx file on disk (headless) instead of driving a live Excel workbook — for managed-agent sessions with no open Office app.
The description the agent reads to decide when to use it.
When it starts
This one is picked by the session mode rather than by anything a person says: it applies when the agent is running headless (managed-agent / CMA mode) with no open Office app and needs to hand back an Excel workbook as a file artifact. It is the file-producing fallback for those runs, so the trigger is the environment, not a user's phrasing.
A model's summary of when it is used.
What leads to it
- gl-reconciler calls this gl-reconciler, line 33
- kyc-screener calls this kyc-screener, line 33
- month-end-closer calls this month-end-closer, line 30
- statement-auditor calls this statement-auditor, line 30
- valuation-reviewer calls this valuation-reviewer, line 29
- datapack-builder requires this datapack-builder, line 311
- dcf-model requires this dcf-model, line 760
Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.
Licence
Apache-2.0, from LICENSE
The terms its author shares it under, which let it be shown here.
The text
Most marks come from matching words in the file, so treat them as pointers.
xlsx-author
Use this skill when running headless (managed-agent / CMA mode) and you need to deliver an Excel workbook as a file artifact rather than editing a live workbook via mcp__office__excel_*.
Output contract
- Write to
./out/<name>.xlsx. Create./out/if it does not exist. - Return the relative path in your final message so the orchestration layer can collect it.
How to build the workbook
Write a short Python script and run it with Bash. Use openpyxl:
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill
wb = Workbook()
ws = wb.active; ws.title = "Inputs"
ws["B2"] = "Revenue"; ws["C2"] = 1_250_000_000
ws["C2"].font = Font(color="0000FF") # blue = hardcoded input
calc = wb.create_sheet("DCF")
calc["C5"] = "=Inputs!C2*(1+Inputs!C3)" # black = formula
wb.save("./out/model.xlsx")Raw lines 15 to 31Conventions (mirror audit-xls)
- Blue / black / green. Blue = hardcoded input, black = formula, green = link to another sheet/file.
- No hardcodes in calc cells. Every calculation cell is a formula; every input lives on an Inputs tab.
- Named ranges for any value referenced from a deck or memo.
- Balance checks. Include a Checks tab that ties (BS balances, CF ties to cash, etc.) and surfaces TRUE/FALSE.
- One model per file. Do not append to an existing workbook unless explicitly asked.
When NOT to use
If mcp__office__excel_* tools are available (Cowork plugin mode), use those instead — they drive the user's live workbook with review checkpoints. This skill is the file-producing fallback for headless runs.
From anthropics/financial-services at 6056506, 2026-10-28. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.