Build Spreadsheet
Skill8 starsChanged 5 months agoMITView on GitHub
Build a real spreadsheet you can open and start filling today — a job tracker, a simple cashflow, or a lead log — with the right columns designed for your trade and a working .xlsx saved locally. No account needed. Once your workspace is connected, the same tracker can live inside it and keep itself current as your work moves.
- Installs packages
In this repository101 other files it gives its agents.
- templates/CLAUDE.mdCLAUDE.md
- Add a FieldSkill
- Assemble Content PackSkill
- Assemble PackSkill
- Audit My AutomationsSkill
- Audit My DataSkill
- automate-thisSkill
- Brand My WorkspaceSkill
- Break Down A ChannelSkill
- Build Brand StrategySkill
- Build Customer VoiceSkill
- Build DocumentSkill
- Build FormSkill
- Build Knowledge Base From DocsSkill
- Build My ProofSkill
- Build My VoiceSkill
- Build Social StrategySkill
- Build Work Order ProcessSkill
- Cash Flow ForecastSkill
- Coach My CallsSkill
- Compare DocumentsSkill
- Connect A ToolSkill
- Delegate This WorkSkill
- Describe A ProductSkill
- Design My ScenesSkill
- Design Nurture SequenceSkill
- draft-replySkill
- Email Me A ReportSkill
- Estimate My BASSkill
- Extract DocumentSkill
- Find My Next MoveSkill
- Five Day ChallengeSkill
- Follow-up RadarSkill
- Form RadarSkill
- Get Found OnlineSkill
- Grill Me On This DecisionSkill
- import-from-anywhereSkill
- lead-triageSkill
- Learn My BusinessSkill
- Lint DocumentSkill
- Lint FormSkill
- Lint Nurture SequenceSkill
- log-this-callSkill
- make-it-happenSkill
- Make My VideoSkill
- Make Product DemoSkill
- Make Social PostSkill
- Make ThumbnailSkill
- missed-call-recoverySkill
- Nurture HealthSkill
- Onboard Team MemberSkill
- Outstanding DocumentsSkill
- Outstanding InvoicesSkill
- Package My VideoSkill
- Plan My AdsSkill
- Plan My ContentSkill
- Plan My RoadmapSkill
- Plan My YouTubeSkill
- Prep For CallSkill
- Price My WorkSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 54
If they describe something close to one of these, name it back and build that.
- Distinctive: line 55
If it's genuinely a fourth thing (a quoting calculator, a stock list, a planner), design columns for it the same way: a header row that …
- Very specific: line 104
If the wrapper reports the spreadsheet library isn't installed (a line starting BOS_MISSING_DEP:), don't hand-build the file another way …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Build Spreadsheet
You hand the owner a real spreadsheet they can open in Excel or Google Sheets
and start filling the same minute. No account, no setup: pick the slice of the
business the sheet is for, design the columns so they actually fit the trade,
and write a real .xlsx to disk with tools/write_xlsx.py.
The keyless .xlsx is the win. A live workspace version that keeps itself
current is the deeper version you offer afterward, in plain words, once their
workspace is connected.
This is the keyless WRITE path built on the doc-lib-set driver
(knowledge/document-tools-method.md).
The owner never has to think about any of that: they ask for a spreadsheet,
they get a spreadsheet.
Step 1 — Which slice of the business?
Most owners who ask for "a spreadsheet" want one of these. Ask which fits, or infer from what they said and confirm:
- Job tracker — every job in one place: who it's for, what it is, the stage it's at, what it's worth, when it's due. The default for a trade or service business that runs work job by job.
- Simple cashflow — money in and money out by date, with a running balance, so they can see where they stand this month at a glance.
- Lead log — every enquiry as it comes in: who, where from, what they want, what's been done about it, and whether it turned into work.
- Weekly scoreboard — one row a week with the numbers that show whether
the business moved: enquiries in, conversations had, jobs won, cash
collected, plus one slot for the number this quarter turns on (shape per
business-method.md§12.6). Keep it exactly this simple — five or six columns an owner fills in ten minutes on a Monday.
If they describe something close to one of these, name it back and build that. If it's genuinely a fourth thing (a quoting calculator, a stock list, a planner), design columns for it the same way: a header row that matches how they actually talk about the work, in a sensible order.
It's fine to ask one quick question about how they run that part of the business, so the columns fit. Naming the messy part they want tidier is fine in this conversation: the sheet itself stays plainly useful.
Step 2 — Design the columns for that slice
Lay out the header row before writing anything, and shape it to their trade. Starting points (adapt the wording to how they describe it):
- Job tracker:
Job·Customer·Stage·Value·Due date·Notes. Stage is their real stages (e.g. quoted, booked, in progress, done, invoiced) — ask, don't assume. - Simple cashflow:
Date·Description·Money in·Money out·Running balance. One row per movement; the balance column is where the running total goes. - Lead log:
Date·Name·Source·What they want·Status·Next step. Source is where the enquiry came from (referral, website, a call). - Weekly scoreboard:
Week·Enquiries in·Conversations·Jobs won·Cash collected· one column named for the number this quarter turns on (ask what that is; if they don't have one, leave it asThis quarter's number).
Show the planned header row in plain language and confirm it's right before you generate the file. Columns are cheap to change now, annoying to redo once they've typed real data in.
Step 3 — Write the real .xlsx
Build the rows as a JSON array of arrays: the header row first, then a few
example rows so the sheet shows what good looks like (label them clearly as
examples the owner can type over, e.g. an Example in the first cell). Then
write it:
python ~/.claude/bos-run.py tool write_xlsx --out "job-tracker.xlsx" --rows '[["Job","Customer","Stage","Value","Due date","Notes"],["Example: fit-out at 14 Example St","A. Customer","Booked",4200,"2026-07-10","deposit paid"]]' --sheet "Jobs" --header(The ~/.claude/bos-run.py launcher resolves the install location for you. If it is missing, run python tools/setup.py once from the BOS directory to create it.)
--headermakes the first row bold so the columns read as headings.--sheettitles the tab for the slice ("Jobs", "Cashflow", "Leads").- For a cashflow, put a sensible starting balance in the first example row's balance cell, and say in plain words how the running balance works (each row is the one above plus money in, minus money out) so they can keep it going.
If the wrapper reports the spreadsheet library isn't installed (a line starting
BOS_MISSING_DEP:), don't hand-build the file another way and don't hand the
owner a command. Offer the setup in plain language:
To build that spreadsheet I need to add the document tool-kit, a quick free one-time setup on your machine. Want me to sort it?
On a yes, run python ~/.claude/bos-run.py tool check-install --fix (or
python -m pip install openpyxl for the one piece) yourself, confirm it worked,
then re-run the write command. Never tell the owner to run anything. The full
detect-offer-install-verify loop is the canonical one in
knowledge/document-tools-method.md.
Step 4 — Hand it over + offer the deeper version
Tell them what you built, where it saved, and how to keep it going:
✓ Built "job-tracker.xlsx" (saved here, opens in Excel or Google Sheets):
columns: Job · Customer · Stage · Value · Due date · Notes
one example row in there. Type over it and add your own.Then offer the upgrade in plain language, without making it the price of entry:
This one's yours to fill in by hand, and it works today. Once your workspace is connected, I can set up the same tracker to live right inside it and keep itself current as your jobs move along, so you're not retyping anything. No rush though: this sheet stands on its own.
That live, self-updating version is a connected capability. Describe it the way above and leave it there; the keyless file is the real deliverable here.
Hard rules
- ❌ Don't make the owner connect anything to get a usable spreadsheet — the
keyless
.xlsxis the whole point, and it ships first. - ❌ Don't invent columns that don't fit how they run the work — design to the slice and confirm the header row before writing.
- ❌ Don't hand-build the file some other way if the library's missing, and never hand the owner a command — offer the one-time setup in plain language and run the install yourself (see Step 3).
- ❌ Don't promise the live, self-updating version as if it's part of this keyless build — it's the deeper version, offered in words, after.
- ✅ Write a real
.xlsxwithtools/write_xlsx.py, header row bold, a couple of clearly-labelled example rows so the sheet teaches itself. - ✅ Keep the sheet and every label plainly useful and forward-looking: it shows the owner where their work stands.
Output shape
A confirmed header row for the chosen slice, then a one-line confirmation
naming the saved .xlsx, its columns, and the example row — followed by the
plain-language offer of the live, self-updating version once their workspace is
connected.
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
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.

