
Board Memo Cabinet
v0.1.0Generate monthly and quarterly board updates covering product, revenue, finance, hiring, risks, and asks. Replaces the manual board pack assembly process — every slide, table, and narrative section is produced from live data files.
Board Memo Cabinet
agents
Board Analyst
.agents/board-analyst/
Weekly Competitor Landscape Refresh
0 8 * * 1
Weekly Metrics Refresh
0 8 * * 1
Board Reviewer
.agents/board-reviewer/
Board Writer
.agents/board-writer/
Monthly Board Update
0 9 1 * *
Quarterly Board Pack
0 9 1 1,4,7,10 *
3
Agents
4
Jobs
1
Depts
3
Pages
Pulls, validates, and formats all board metrics — revenue, burn, runway, hiring, pipeline, NRR, competitive landscape — from connected systems into clean structured files the Board Writer and Reviewer draw from.
Reviews the board memo draft for accuracy, sourcing, completeness of asks, board-norm compliance, and anything that would cause a board director to push back or ask a question the CEO isn't prepared for.
Writes the board memo and quarterly board pack from the Analyst's metrics table and the CEO's leadership context. Owns narrative structure, the "asks" section, and ensuring every claim in the memo is backed by a sourced number.
Board Memo Cabinet
Three agents — Board Analyst, Board Writer, and Board Reviewer — produce the monthly update and quarterly board pack from live company data. Every metric, narrative, risk flag, and "ask" is a sourced file you can inspect, version, and share directly to DocSend. No more assembling the board pack from a dozen Slack threads the night before.
Keep Salesforce, NetSuite, and Looker. Replace the manual board pack, the PowerPoint slide scramble, and the "who has the latest numbers?" fire drill.
The team
- [[.agents/board-analyst]] — Pulls and validates all board metrics (revenue, burn, runway, hiring, KPIs) from connected systems. Does not write narrative — produces the numbers table the writer draws from.
- [[.agents/board-writer]] — Writes the board memo and metrics packet narrative. Structured, concise, board-ready. Never editorializes without a number.
- [[.agents/board-reviewer]] — Reviews the draft for accuracy, completeness, and board norms. Catches missing asks, unsourced claims, and stale data before the memo ships.
Recurring rhythm
| Cadence | Job | Owner | Output |
|---|---|---|---|
| Monthly (1st 09:00) | [[.jobs/monthly-board-update]] | Board Writer → All | Monthly board update in board-report/ |
| Quarterly (Jan/Apr/Jul/Oct 1st 09:00) | [[.jobs/quarterly-board-pack]] | All agents | Full board pack in board-report/ + archive/ |
| Weekly (Mon 08:00) | [[.jobs/weekly-metrics-refresh]] | Board Analyst | Live metrics refreshed in metrics/latest.md |
| Weekly (Mon 08:00) | [[.jobs/weekly-competitor-landscape]] | Board Analyst | Competitive landscape section updated in competitive/latest.md |
How to run the demo
- Open the [[board-report]] — the full board metrics packet: revenue, burn, runway, hiring, KPIs, competitive landscape, and the "asks."
- Browse [[metrics]] — the live metrics file the Analyst refreshes weekly and the Writer pulls for every memo.
- Browse [[archive]] — past board memos with date slugs, diffs viewable in Git.
Connectors
Required: Salesforce or HubSpot (pipeline, closed ARR, NRR), NetSuite or QuickBooks (P&L, burn, cash), Stripe (MRR, churn, cohorts), Looker or Metabase (KPI dashboards), Workday or Rippling (headcount, open reqs). Recommended: Jira or Linear (product milestone status), Gong (win/loss themes for board narrative), DocSend (board pack delivery tracking).
Related cabinets
- [[../ceo-operating]] — CEO operating cabinet. The board memo draws decisions, risks, and priorities from this cabinet.
- [[../competitive-intelligence]] — Full competitor landscape. The board memo's "competitive landscape" section is a curated cut from this cabinet.
- [[../investor-update]] — Monthly investor update. Board memo and investor update share the same metrics table but have different audiences and formats.
$ git clone --filter=blob:none --sparse https://github.com/hilash/cabinets.git && cd cabinets && git sparse-checkout set board-memo