workbook-compiler
Skill1 starsChanged 53 days agoMITView on GitHub
Compiles SOPs, handover notes, link directories and workflow maps into a finished, styled Google Sheets manual — multi-tab, colour-coded, with chips, zebra banding, frozen headers, dropdowns, checkboxes, hover notes and collapsible groups. Use when asked to turn SOPs or a handover into a workbook, build a training manual or run sheet in Google Sheets, package a pack for a new hire, or when an existing workbook "looks terrible" and needs formatting, row/column sizing or a colour system. Also use for the Google Sheets API mechanics behind it (batchUpdate, cell formatting, conditional formatting, data validation, protected ranges, dimension groups, PDF export). Not for local .xlsx files (use xlsx) or written documents (use docs).
In this repository2 other files it gives its agents.
- knowledge-compilerSkill
- prompts-compilerSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Use it when any of these is true:
- Very specific: line 41
Do not use it for local .xlsx files (use xlsx) or prose documents (use docs).
- Distinctive: line 50
Run these stages in order.
- Very specific: line 111
Every cell is a sentence a busy person reads at 5pm.
- Distinctive: line 117
No filler: Delete "please note", "in order to", "it is important that".
- Distinctive: line 142
Never hand back a workbook you have not read back.
- Distinctive: line 202
Do not invent a link: If a URL is missing, leave the cell empty and ask.
≈ “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
SOP Manual Compiler
Turn a pile of procedures into a workbook someone can actually work from.
The unit of output is a multi-tab Google Sheet: a role card you read once, a workflow map you search by trigger, step tables you follow, a directory that answers "where's the sheet", hidden rules that stop silent failures, and a run sheet you tick per event.
This skill is a compiler, not a formatter. Given SOPs, links and workflow notes it generates the manual. Given a workbook that already exists, it repairs it. The design system and the API recipes are the same in both directions.
When to use
Use it when any of these is true:
- "Turn these SOPs into a sheet / manual / handover pack."
- "Build a training manual / run sheet / onboarding workbook in Google Sheets."
- "Package this for a new hire" — role handover, team onboarding, a process someone else runs.
- "The sheet looks terrible" / "make it readable" / "format it properly" / "adjust the rows and columns."
- "Add a dashboard tab / a directory / a checklist" to an existing workbook.
- The work touches the Google Sheets API through Composio:
batchUpdate, formatting, conditional formatting, data validation, protection, PDF export.
Do not use it for local .xlsx files (use xlsx) or prose documents (use docs). It
compiles into Google Sheets. Related siblings that share the "ingest messy source → emit a
structured artifact" shape: knowledge-compiler and prompts-compiler (they emit
Markdown/PDF; this emits a workbook).
The pipeline
Run these stages in order. Each one has a reference file with the detail.
| # | Stage | What happens | Reference |
| 1 | Ingest | Read the source notes. Collect every artifact they name. | references/source-extraction.md |
| 2 | Extract | Pull triggers, ordered steps, owners, blockers, tools, gotchas, voice. | references/source-extraction.md |
| 3 | Structure | Assign each extracted block to a tab archetype. | references/tab-archetypes.md |
| 4 | Write | Draft the cell text in the house voice. | references/content-voice.md |
| 5 | Style | Apply the design system over the raw values. | references/design-system.md |
| 6 | Wire | Formulas, validation, chips, groups, protection, notes. | references/api-mechanics.md |
| 7 | Verify | Read back and compare against intent. | this file, §Verify |
| 8 | Export | Optional PDF. Know what Google exposes and what it blocks. | references/print-export.md |
Never style before the values are in. Formatting a sheet, then overwriting the cells, wipes the banding. Values → dimensions → formats → chips → conditional rules → validation → groups → protection. That order exists because each later step reads the geometry the earlier one set (row heights depend on text; zebra depends on row indices; groups depend on the final row map).
Stage 1–2: what you are compiling
The richest source is a vault SOP. It already carries the fields you need — you are re-sorting a document into a workbook, not inventing content.
| SOP element | Becomes |
Name / Purpose | the tool/step row's what it does |
Sub Category | the family / section it belongs to |
How (numbered steps) | the ordered artifacts in the workflow map, or the step table's rows |
Why | the reason column — never drop this, it is what makes a manual teachable |
Success Criteria | the done when conditions |
Changes for next version | hidden rules and gotchas |
Tools (link) | a directory row, with type + owner |
Status / Version | the status chip and footer |
Source types and how to treat each: references/source-extraction.md.
Stage 3: the eight tab archetypes
Pick the minimum set that answers the reader's real questions. Most packs land on six to
eight. Full definitions: references/tab-archetypes.md.
| Archetype | Answers | Typical shape |
| Role card | Who am I, what do I own, who do I wait on | label + paragraph rows, a ping table |
| Workflow map | Something happened — what do I do, in what order | ID · trigger · ordered artifacts · how-to · blocked by · owner |
| Step table | How do I do this one workflow, click by click | step · action · where · gotcha |
| Directory | Where does this live | resource · type · search phrase · trigger · owner · link |
| Hidden rules | What looks right but is wrong | # · rule · why · what breaks |
| Folder map | Where does this file go | folder · goes in · never goes in · link |
| Loom index | How do I learn this tacit step | # · title · trigger covered · link · status |
| Run sheet | Is this done, for this event | step rows × entity columns of checkboxes + a progress formula |
Stage 4: the voice
Every cell is a sentence a busy person reads at 5pm. references/content-voice.md has the
rules; the short version:
- Lead with the action. "Send from the central dummy account…" — not "It is recommended that…"
- Carry the why. A step without a reason gets skipped the moment it's inconvenient.
- Name the failure. "A file in Downloads is not filed — the banner generator fetches from that folder."
- No filler. Delete "please note", "in order to", "it is important that".
- One idea per line inside a cell. Use
\nbetween numbered steps so they render as a list.
Stage 5–6: the design system
Full palette, type and mechanics: references/design-system.md. The load-bearing ideas:
- Colour is navigation, not decoration. Each workflow family owns an accent; the ID cell is a solid chip in that colour and the section row carries a matching tint. You find "the C block" without reading.
- Chips encode type. In a directory, Sheet = green, Doc = blue, Drive = gold, Form = purple, Site = teal, Account = red, Tool = grey. Type reads before the word.
- Zebra inside blocks. Alternate rows only within a family, so the eye tracks a line across without the banding fighting the section tints.
- Amber means blocked. Conditional formatting, not manual fill — so it stays true as content changes.
- Frozen header + frozen ID column. The row identity survives a horizontal scroll.
- Gridlines off, borders on. Cleaner than the default grid, and prints better.
Stage 7: verify
Never hand back a workbook you have not read back. Minimum checks:
GET_SPREADSHEET_INFO— tab list, order, frozen counts, hidden gridlines.- Spot-read one range per tab — confirm values, not just the write acknowledgment.
- Confirm links are clickable, not dead text (they must have been written
USER_ENTERED; aFORMULA-render read shows=HYPERLINK(...)). - Confirm conditional formatting exists where a rule was added.
- Confirm the row heights fit: no cell whose text needs more lines than its height allows.
Writes report success even when a range auto-adjusted. Trust the read, not the receipt.
Stage 8: export
Google exposes no page-setup API. The sheet-level print export route is blocked (307
redirect); the Drive whole-file export works and returns a PDF. Binary cannot pass back
through the Composio proxy — extract the S3 key from the returned URL and upload with
GOOGLEDRIVE_UPLOAD_FILE. Details and the manual fallback: references/print-export.md.
Scripts
Copy these into the Composio remote workbench (the helpers proxy_execute, run_composio_tool
are preloaded there) or adapt the pure functions into any harness.
| Script | Does |
scripts/fit_rows.py | Computes per-row pixel heights from wrapped text in known column widths |
scripts/style_tab.py | Builds batchUpdate requests for headers, body, sections, zebra, borders, chips |
scripts/sheets_batch.py | Thin wrappers: send a batchUpdate, batch-get ranges, update values |
They are pure builders plus a thin sender — the payloads are plain dicts, so they work with or without Composio.
Build order (memorise this)
create spreadsheet
→ add tabs (no index when creating in parallel)
→ write values (RAW, or USER_ENTERED for links/formulas)
→ column widths
→ row heights (computed from the values you just wrote)
→ cell formats (header / body / section / zebra / borders)
→ chips (ID, type, status)
→ conditional formatting (blockers, owners, HOLD)
→ data validation (dropdowns, checkboxes)
→ dimension groups (collapsible families)
→ protection (headers, legend, ID columns)
→ verifyHard rules
- Never write generated files by hand. Change the source, recompile.
- One task lives in one place. A workflow map row references a directory row; it does not duplicate it.
- Do not invent a link. If a URL is missing, leave the cell empty and ask.
- Don't style what you haven't written. Banding applied before values disappears.
- The manual is the source of truth; the workbook is its rendering. Keep them consistent.
Related
references/source-extraction.md·references/tab-archetypes.mdreferences/design-system.md·references/content-voice.mdreferences/api-mechanics.md·references/layout-math.md·references/print-export.md- Siblings:
knowledge-compiler,prompts-compiler
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.

