DESK · THEORY
The Workflow · May 13, 2026

Weekly team and investor updates, generated from your meetings

Two drafts every Friday morning. One team-facing, one investor-facing. Both pulled from the week's meeting record. You edit for tone and ship.

What you'll have when you're done

Every Friday morning, two [markdown][8] drafts waiting in your notes folder. One written for your full team, one written for your board, advisors, and key investors. Both pulled from the week's meeting transcripts. You spend twenty minutes editing for tone and the updates ship by 9am Friday.

The "I owe an update" backlog disappears. The updates that used to take two hours to write (or that you kept putting off) become an enjoyable Friday-morning ritual.

Sending updates sucks

Sending team and investor updates sucks. I used to spend hours writing them and I dreaded the whole process. They never felt urgent enough to take time away from building, but they were heavy enough that the cold start always felt like an hour I didn't have.

The cold start is the problem. The actual content of the update already exists. It lived in the conversations I had that week. It's in the sales calls, the leadership 1:1s, the customer feedback, the hiring debriefs. The bottleneck isn't the content; it’s putting it all together (and remembering what I need to put in there).

This workflow closes the bottleneck. [Granola][6] does the capture. Claude does the assembly. I do the editing. And the crazy thing is the updates are WAY better than the ones I used to send, because Claude captures things I would have totally forgotten to add.

What you need first

Step-by-step

Step 1Capture your two templates

Templates teach the prompt what "your voice" looks like. Without them, Claude will write competent updates in generic operator voice. With them, the drafts sound like you on the first pass.

Save two files in your notes folder:

mkdir -p ~/notes/templates
touch ~/notes/templates/team-update-template.md
touch ~/notes/templates/investor-update-template.md

In each file, paste one of your past updates (or write a rough sketch if you don't have one). Then add a short block at the top explaining the audience, tone, length, and sections.

Example for the team template:

# Team update template

Audience: full team, ~40 people, mixed levels.
Tone: candid, specific, no jargon, light humor OK.
Length: roughly 300 words.

Sections:
1. Wins this week
2. What's next
3. What I'm thinking about
4. Where I need help

---

[PASTE 2-3 PAST UPDATES BELOW AS STYLE EXAMPLES]

Repeat for the investor template, adjusting audience (board + advisors + key investors), tone (confident, candid about challenges, specific numbers where available), length (~500 words), and sections (highlights, lowlights, asks, key metrics).

Step 2Write the generation prompt

Save this as ~/.claude/prompts/weekly-updates.md:

Generate two drafts from this week's meeting transcripts in ~/notes/granola/
(last 7 days).

## Team update draft
Read ~/notes/templates/team-update-template.md for audience, tone, length,
and section structure. Match it.

Source meetings: every internal meeting from the past 7 days. Include 1:1s,
leadership team, all-hands prep, and any planning sessions. Exclude
customer-facing calls unless the team needs to know what happened.

Cite source filenames as evidence for each non-trivial claim. Flag anything
the team doesn't already know with [NEW:].

Save to ~/notes/updates/{YYYY-MM-DD}-team.md.

## Investor update draft
Read ~/notes/templates/investor-update-template.md for audience, tone,
length, and section structure. Match it.

Source meetings: leadership team, customer calls (for revenue and pipeline
color), board prep, fundraising conversations.

Confidential team info stays out (compensation specifics, individual
performance issues, internal politics by name). If something is borderline,
leave it out and flag it in a "FOR YOUR DECISION:" note at the end.

Cite source filenames as evidence. Flag any number I should verify before
sending with [VERIFY:].

Save to ~/notes/updates/{YYYY-MM-DD}-investor.md.

The audience-boundary block at the bottom of the investor section is the load-bearing safety. It tells Claude what NOT to leak between the two audiences. Read it once. Tighten it until it matches your own instincts.

Step 3Run the first manual generation

Friday morning, open Claude Code:

cd ~/notes
claude

Paste the prompt. Claude reads the week, applies the templates, and writes both drafts to ~/notes/updates/. The first run takes one to two minutes.

Step 4Edit and ship

Open both drafts. For each:

  1. Read top to bottom once without editing
  2. Cut anything that doesn't sound like you
  3. Verify any numbers flagged with [VERIFY:]
  4. Resolve any [NEW:] flags (decide what's worth surfacing, what isn't)
  5. Resolve any FOR YOUR DECISION: flags in the investor draft
  6. Ship

The first Friday this takes about 45 minutes total. By the third or fourth Friday, both edits combined are under fifteen minutes.

Step 5Tighten the templates over time

Every Friday, the edits you make are signal. If you keep cutting the same kind of paragraph from the team update, drop that section from the template. If you keep adding a "shoutouts" block at the top, add it to the template.

Spend two minutes after shipping each week tightening the template. By month two, the drafts come out close to publish-ready.

Step 6(Optional) Schedule a Friday-morning Routine

Once the prompt is stable and the templates are tight, automate the generation step. Open Claude Code and create a Routine:

Every Friday at 6am:

Run the prompt at ~/.claude/prompts/weekly-updates.md.

After both drafts are saved to ~/notes/updates/, post a short note to my
#friday-updates Slack DM:
"Team draft and investor draft ready in ~/notes/updates/.
 Team: {team-word-count} words. Investor: {investor-word-count} words."

Trigger: scheduled, Fridays 6am.
Connectors: Slack workspace.

Now Friday morning you wake up, see the Slack DM, open the drafts, edit, ship by 9am. Twenty-minute routine. The hardest part of your week becomes the easiest part of your Friday.

How you'll know it's working

Three checks, in order:

  1. The drafts sound like you. Not generic operator voice. If the team draft sounds like a memo a stranger wrote about your company, the template needs more of your past updates pasted in.
  2. You ship the first Friday in under an hour total. Cold start eliminated.
  3. The "I owe an update" backlog clears. No more April 9 update sitting in your drafts in June. The cadence holds because the cost dropped from two hours to twenty minutes.

When it breaks

Where this fits in your harness

This is the communication layer of your [harness][7]. The [Granola → markdown pipeline][3] made every meeting into infrastructure to run workflows from. The [commitment ledger][4] turned that infrastructure into accountability. This workflow turns the same infrastructure into the two updates that keep your company and your investors aligned every week.

Pair it with the content-ideas-from-meetings workflow (forthcoming): both pull from your transcripts, both produce drafts you edit on Friday. The cadence becomes a Friday-morning ritual. See the [Granola pillar][5] for the full pipeline and the other workflows that compound on top.

[1]: /workflows/granola-to-markdown [2]: /workflows/granola-to-markdown [3]: /workflows/granola-to-markdown [4]: /workflows/commitment-ledger [5]: /blog/granola-for-ceos-highest-roi-ai-install [6]: /workflows/what-is-granola [7]: /workflows/what-is-a-harness [8]: /articles/what-is-a-markdown-file

The Thursday 3

Get three workflows like this every Thursday

The Thursday 3 is a free weekly email. Three workflows that put you in the top 1% of CEOs. 90-second read. Every card links back to a step-by-step guide like this one.

Get the newsletter →
The Desk Theory books

The architecture behind this workflow.

Two operator's manuals for the same job, run two different ways. OpenCLAW for the always-on agent harness; Claude Code for the focused-work CLI. Pick one, or get the bundle for $149.

Browse the books · $99 each