/meeting-notes
Turn a messy transcript into who-owns-what.
The failure this kills
Every call ends the same way. Everyone says “great, let’s do it,” you hang up, and an hour later nobody actually remembers who agreed to do what. So someone — usually you — has to scroll back through the whole transcript and piece it together. Who said they’d handle the client? Was that “Friday” this week or next? And half the things nobody ever put a name on at all.
It’s the boring part, it always slips, and it’s exactly the kind of small admin an AI should just do.
What it does
Paste a transcript or your messy notes and say /meeting-notes (or “turn this into action items”), and the agent reads the whole thing and pulls out what actually happened:
- A clean Action-items table — Owner, Task, and Due date, one row per real commitment.
- Relative dates resolved to real ones. When someone said “next Friday,” it turns that into the actual date on the calendar, anchored to today.
- Gaps flagged, not guessed. If nobody was named, the owner is
[UNASSIGNED]; if no date was set, it’s[NO DATE]. It never invents an owner or a deadline to fill the blank. - Decisions and Open questions, split out separately, so you can see what’s settled and what’s still hanging.
- A ready follow-up message, drafted for you to send — it only drafts, it never sends.
When to reach for it
Any time a group of people talked and someone has to figure out the to-dos. A sales call. Your Monday standup. That forty-message email thread nobody wants to reread. Anywhere the decisions and owners are buried in a wall of text, this hands you the short version you can actually act on.
It’s not just for managers. Founders, ops, sales — anyone who leaves a call and has to remember who owns what by when.
Install
Download SKILL.md and drop it into your agent’s skills directory:
mkdir -p .claude/skills/meeting-notes
curl -o .claude/skills/meeting-notes/SKILL.md https://agentropic.ai/skills/meeting-notes/SKILL.md
Works with Claude Code and any agent that supports the SKILL.md convention. It reads what you paste — no calendar, inbox, or meeting-tool access required.
The bigger idea
The point isn’t the table. It’s that the value of a meeting is the decisions and the follow-through, and both usually evaporate the moment the call ends. Teaching your agent to extract who-owns-what — faithfully, gaps and all, without inventing — is exactly the kind of small, sharp discipline we install during a 1 Week Sprint: by Friday, your team’s calls don’t end in a fog of “wait, who’s doing that?” — they end with the to-dos already written down.
The skill file
This is the entire skill — copy it, or download SKILL.md.
---
name: meeting-notes
description: Turn a raw meeting transcript or messy notes into a clean recap — Decisions, Action items (each with an owner and a due date), and Open questions — plus a short ready-to-send follow-up message. Resolves relative dates ("next Friday") against today's real date, and flags anything with no clear owner or date. Trigger with "/meeting-notes", "turn these notes into action items", "who owns what from this call", or when the user pastes a transcript/notes and wants the decisions and to-dos pulled out. It only extracts what's actually in the notes — it never invents tasks, owners, or dates.
---
# meeting-notes
Take a messy transcript or a dump of meeting notes and turn it into a recap a busy person can actually act on: what was decided, who owns what by when, and what's still open.
## What counts as "the notes"
1. **If the user pasted a transcript or notes**, use exactly that.
2. **If they named a source** ("the standup notes above", "the call transcript"), use that.
3. If there's nothing to work from, ask them to paste the notes or transcript. Don't guess at a meeting that isn't there.
## The rule that overrides everything: extract, don't invent
Every decision, task, owner, and date you output must be **traceable to something actually said in the notes**. If the notes don't name an owner, the owner is `[UNASSIGNED]` — you do not guess who "probably" owns it. If no date was given, it's `[NO DATE]`. If something was discussed but not concluded, it's an Open question, not a Decision. Never invent, never round up a "maybe" into a "decided".
## Resolve relative dates against today
Meetings talk in relative time — "by Friday", "next week", "end of month", "in two days". **Anchor every one of these to today's real calendar date** and output the absolute date (e.g. today is Thu 2026-07-30, so "next Friday" → `2026-08-07`). Get the current date first (e.g. `date +%Y-%m-%d`), then resolve. If a relative date is genuinely ambiguous ("Friday" could be this week or next), pick the nearest sensible one and mark it with a `(?)` so the user can check.
## The output shape
Produce these four blocks, in this order. Keep it tight — this is a recap, not a re-transcription.
**1. Decisions** — a short bulleted list of what was actually agreed. One line each, in plain language.
**2. Action items** — a table:
| Owner | Task | Due | Priority |
|---|---|---|---|
| Priya | Send the revised quote to the client | 2026-08-01 | High |
| [UNASSIGNED] | Book the venue for the offsite | [NO DATE] | Med |
- One row per commitment. Owner = the person named (or `[UNASSIGNED]`). Task = a concrete action starting with a verb. Due = the resolved absolute date (or `[NO DATE]`). Priority = High/Med/Low only if the notes signal it, else Med.
- Put the `[UNASSIGNED]` / `[NO DATE]` rows at the bottom so the gaps are obvious.
**3. Open questions** — things raised but not resolved, and anything blocked waiting on someone. One line each.
**4. Follow-up message** — a short, ready-to-send recap the user can paste into email or chat: a one-line summary, the decisions, and each person's action items. Plain and human, no filler. This is a draft for the user to send — the skill does not send anything.
## Steps
1. Read the notes. Get today's date (`date +%Y-%m-%d`) so relative dates resolve correctly.
2. Pull out decisions, action items (owner/task/due/priority), and open questions — extraction only, per the rules above.
3. Resolve every relative date to an absolute date; flag missing owners/dates.
4. Output the four blocks. If the user asks, also copy the follow-up message to the clipboard (`pbcopy` on macOS; `xclip`/`wl-copy`/`clip.exe` fallbacks) — otherwise just show it.
5. If the notes were long or ambiguous, end with a one-line note on anything you had to flag (`[UNASSIGNED]`, `[NO DATE]`, or a `(?)` date) so the user can fill the gaps.
## Guardrails
- **Extract only — never invent** a task, an owner, or a date that isn't grounded in the notes.
- **The follow-up is a draft, never sent.** The skill produces text; the user sends it.
- **Preserve names and figures exactly** as they appear; don't guess spellings or amounts.
- Keep the recap shorter than the source — if it's as long as the transcript, it isn't doing its job.
- Don't include side-chatter, jokes, or anything clearly off-topic in the action items.
Watch the walkthrough.
Every skill ships with a video on our YouTube channel — one discipline per episode, field-tested.