/meeting-closeout
The gap between walking out of a meeting and the next context switch is where decisions and promises evaporate. This closes one meeting the moment it ends — while you still remember who said they'd do what — and locks it down.
It is the single-meeting, in-the-moment ritual. It is not the bulk "catch up all my synced notes" pass (process-meetings) and not pre-meeting prep (meeting-prep).
Step 1 — Get the meeting
Work from whichever exists, in this order:
- Notes the user just pasted or dictated — the common case; use them directly even if the meeting was never synced.
- The meeting they name ("my 3pm with Acme") — pull it via
get_meeting_context. - The user's configured meeting source — read
meeting_sourcesinSystem/user-profile.yaml. If anotes_folderis set, search that folder for the meeting by title, attendee, and date before anything else. A configured source always outranks improvised discovery. - A provider-neutral source note elsewhere in the vault — if the named meeting
was not returned, search the vault by meeting title, attendee, and date. This
includes notes created by ClickUp AI and other recorders. Provider-neutral
discovery is not only
00-Inbox/Meetings/. Exclude Dex internals, dependency folders, archives that fall outside the requested date, and binary files. Prefer QMD when available, otherwise use a bounded Markdown filename/content search. Read the matched note before treating it as the meeting.
Source boundary (hard rule). Meeting notes come from the vault (and the
configured meeting_sources folder) only. Never go looking in external services —
Google Drive, Gemini notes, Notion, email, or any connected tool — for a meeting
the vault doesn't have, unless the user explicitly points at that source for this
meeting in this conversation. Auto-generated notes from an unconfigured source can
describe a different meeting or contain invented content, and a closeout built on
them is worse than no closeout.
If there are no notes and no matching vault note, the search is over — ask for the notes (or a two-line recap) — do not fabricate a summary of a meeting you can't see, and do not widen the search to external tools.
Step 2 — Extract the closeout essentials
Pull only what the notes support — never invent a decision or an owner the meeting didn't produce:
- Decisions — what was actually decided (not everything discussed).
- Action items + owner + due — each task, who owns it, by when. Name the owner explicitly; if the notes don't say, mark it "owner TBD" rather than guessing.
- Your commitments — what you personally promised (these are the trust-critical ones; they feed the same promise-tracking as
commitments). - Open questions — unresolved threads to revisit.
- The single next step — the one thing that moves this forward.
Step 3 — People (respect the entity setting)
Identify attendees and update existing person pages with the relevant context (via lookup_person). For people who don't have a page yet, follow the vault's entity_creation setting — auto creates, suggest (the default) offers, off just tracks. Do not hard-create person pages against the user's setting.
Step 4 — Turn actions into tasks (confirm-gated, never automatic)
Offer to create tasks from the action items and your commitments. Nothing is written without per-item confirmation. For each one the user approves, call Work MCP create_task (carry the owner, due, and the meeting as source; infer the pillar per the CLAUDE.md rules), then read back the created task IDs. Items the user skips are left out; a failed create_task is reported as not created, never counted as done.
Step 5 — Capture, then confirm what happened
Save the closeout to the original source note when one was discovered, wherever it
lives. Do not silently copy a ClickUp or other provider note into
00-Inbox/Meetings/. Use 00-Inbox/Meetings/ only when the notes were pasted or
dictated and have no source file. Then confirm the real result by reading it back:
the note path saved, the tasks created (by ID), and which person pages were updated.
Never report "captured / done" without those in hand.
Quality bar
A good closeout leaves the meeting's decisions, owned actions, your commitments, and one next step captured while they're fresh — each grounded in what was actually said — so nothing important is lost between the meeting and the next thing. Owners are named or honestly TBD; nothing is created the user didn't confirm.
Anti-patterns (do not do these)
- Re-running the bulk sync/catch-up over many meetings — that's
process-meetings; closeout is this one meeting. - Inventing decisions, owners, or commitments the notes don't support — mark unknowns TBD instead.
- Auto-creating tasks without per-item confirmation, or person pages against the
entity_creationsetting. - Claiming "captured / done" without reading back the saved note path and created task IDs.
- Dumping the whole transcript back as "notes" instead of extracting decisions and owned actions.
Degradation
- No pasted notes and no matching synced meeting → ask for the notes; never fabricate a recap.
entity_creation: off→ track people, don't create pages;suggest→ offer, don't auto-create.- A
create_taskcall fails → report that item as not created; don't count it. - QMD/semantic search absent → link people/projects by keyword; the closeout still runs.
Track Usage (Silent)
Update System/usage_log.md to mark meeting-closeout as used. Analytics (Silent): call track_event with event_name meeting_closed_out and properties tasks_created and decisions_captured (counts only — no meeting content, no names). Fires only if the user opted into analytics; no action if it returns "analytics_disabled".