Step 1 — Read last month's update (read-only)

Open the most recent update in {{updates_folder}} and extract:
  • Last month's figures for every metric this skill tracks (see Step 4).
  • The section order, headings, and tone to reuse verbatim this month.
  • Any plan targets or context it referenced (e.g. "Q-target MRR", "board-approved runway floor").
If {{updates_folder}} has no prior update yet, use the Format table below as the default structure and note in the draft that this is the first run.

Step 2 — Pull revenue metrics from Stripe (read-only)

Pull for the current calendar month:
MetricDefinition
MRRSum of active subscription value, normalized to monthly
MRR growth(this month MRR − last month MRR) / last month MRR
RevenueTotal collected revenue for the month
New / expansion / churned MRRMovement components behind the net MRR delta

Step 3 — Pull product and finance metrics from Postgres (read-only)

Query for the current calendar month:
MetricDefinition
Active accountsAccounts with qualifying activity in the month
Account growthNet new active accounts vs. last month
BurnNet cash spent in the month (cash out − cash in, excluding financing)
RunwayCurrent cash balance ÷ trailing average monthly burn

Step 4 — Compare to last month and to plan

For every metric in Steps 2–3, compute both deltas:
  • Vs. last month — absolute and percentage change from Step 1's figures.
  • Vs. plan — variance against the plan target for this metric (from Step 1 if it was recorded there, else from the plan targets held in memory/skill configuration for {{projectName}}).
Flag anything moving more than one plan-implied standard deviation, or any metric moving in the wrong direction two months running, as a line the narrative must address explicitly — don't bury a miss in a table.

Step 5 — Write the narrative

Match last month's section order exactly. A typical structure:
  1. Headline — one or two sentences on the month's overall trajectory.
  2. Metrics table — MRR, growth, revenue, active accounts, burn, runway, each with last month and plan comparisons.
  3. What moved and why — the flagged variances from Step 4, with the likely driver (a launch, a lost account, a pricing change, etc.) stated plainly rather than hedged.
  4. Asks / notable items — anything the founder has flagged as needing investor visibility this month (hiring, fundraising, a specific ask).
Write the commentary as a draft for a founder to edit, not a finished statement — flag genuine uncertainty (e.g. "likely driven by X — confirm") rather than asserting a cause you can't verify from the data.

Step 6 — Draft into a new document

Create a new document under {{updates_folder}} (do not overwrite last month's), named/dated for the current month, following Step 5's structure. This document is the only thing that leaves the sandbox.

Step 7 — Report where it landed

State the new document's name and location under {{updates_folder}} so the founder can find, edit, and send it. Do not send, share, or publish it yourself.

Run your whole company from one repo you own.

Start with one job and grow from there.

Get started
Investor update draft — SingulaComp Marketplace