skills/meeting-debrief/SKILL.md
Post-meeting harvest. Pulls past meetings with a target (person, company, or client slug) from Granola, extracts the new facts/decisions/sentiment/action-items, diffs against existing institutional knowledge, and writes the deltas back to the wiki and client memory without clobbering hand-edits. Use whenever the user finishes a meeting and wants to log it ("debrief that call", "add the meeting to the wiki", "log this", "I just got off the phone with X — capture it"), or wants to retroactively backfill multiple past meetings into the knowledge base. Triggered by phrases like "debrief", "log the call", "capture that meeting", "update the wiki from", "I just had a call with", "/meeting-debrief".
npx skillsauth add rdfitted/claude-code-setup meeting-debriefInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Post-meeting flip side of meeting-prep. Meeting-prep reads institutional knowledge to build a briefing; meeting-debrief harvests fresh meeting content and writes it back to that institutional knowledge. Always diff against what's already there — never clobber hand-edits, never duplicate decisions, never re-state contacts already in the table.
meeting-prep natural follow-through when the meeting happens/client-meetings or the granola skill)/sync-client <slug>)/curate-learnings)/meeting-prep)Flexible. Any of:
/meeting-debrief <slug> — e.g. /meeting-debrief summit-rb (debrief the latest meeting for a known client)/meeting-debrief <name> — e.g. /meeting-debrief Aaron Warshaw/meeting-debrief <email> — e.g. /meeting-debrief [email protected]/meeting-debrief <slug-or-name> last N — debrief the most recent N meetings/meeting-debrief <slug-or-name> since YYYY-MM-DD — debrief everything since a date/meeting-debrief <doc-id> — debrief a specific Granola documentDefault behavior with just a target and no range: debrief the single most recent meeting with that target. Backfills require explicit last N or since arguments — keeps single-meeting debriefs from accidentally rewriting the world.
Resolve the target to a client slug if one exists:
~/.claude/clients/CLIENTS.md for a matching slug~/.ai-docs/wiki/clients/ for a matching page~/.claude/clients/*/CLIENT.md and ~/.ai-docs/wiki/clients/*.md for the name/email/companyIf slug found → known client, will update existing files
If no slug found → cold/new contact, will create the full institutional record (mirror meeting-prep Phase 5)
Find the meeting(s):
granola skill (granola_api.py list-meetings <slug>), or fall back to the local cache via the /client-meetings pattern%APPDATA%\Granola\cache-v6.json for matches in title, notes_plain, notes_markdown, and people[].email/namelast N / since YYYY-MM-DD filter if provided; otherwise pick the single most recentFetch the content:
granola_api.py panels <doc-id> (richer than raw notes)granola_api.py transcript <doc-id> — microphone = Ryan, system = other participantsstate["transcripts"][doc_id]Read everything that exists, in full, so the diff is honest:
~/.ai-docs/wiki/clients/<slug>.md (if exists)~/.claude/clients/<slug>/CLIENT.md (if exists)~/.claude/clients/<slug>/context.md (if exists)~/.claude/clients/<slug>/decisions.md (if exists)~/.claude/clients/<slug>/status.md (if exists)~/.claude/clients/CLIENTS.md~/.ai-docs/wiki/index.md and log.md (so we know what's already registered)Comb the panel + transcript for the following categories. Tag each item as NEW or ALREADY KNOWN after diffing against Phase 2.
decisions.md with date + rationale + source (granola doc id).status.md Next Steps with owner and deadline.context.md Pain Points table with notes and quick-win-candidate flag.status.md Stage and CLIENTS.md one-liner if material.CLIENT.md Key Contacts notes or context.md.context.md Pitch Framing section.context.md.CLIENT.md Adjacent / Partner Contacts or Linked Entity sections.The user routinely hand-edits these files between sessions (e.g. Billy's St. Peter's Prep / Maui Mikes background was hand-added). Never overwrite. Always append or surgically insert.
Rules:
Edit (string replacement) rather than Write (full overwrite) wherever practicalException: if a file genuinely doesn't exist yet (brand-new client), Write is fine for the initial scaffold.
Show the user:
NEW items clearly markedpatterns/, practices/, research/). Don't auto-flow upward — surface for the user to decide.Wait for confirmation (or proceed automatically if the user's invocation was clearly "just do it, I trust you" — read the room).
Apply changes in this order:
Wiki client page (~/.ai-docs/wiki/clients/<slug>.md):
last_updated: in frontmatter to today's datelearned_from: frontmatter listClient memory files (~/.claude/clients/<slug>/):
CLIENT.md — new contacts, new background facts on existing contactscontext.md — pain points, pitch framing, tech signals, operating-profile updatesdecisions.md — append new decisions with ## YYYY-MM-DD — <title> blocksstatus.md — update Stage if changed, refresh Next Steps, add to Watch Items if warranted, update Last TouchpointIndices:
~/.ai-docs/wiki/index.md — only if it's a brand-new client page~/.claude/clients/CLIENTS.md — update the one-liner if stage or material facts changedWiki log (~/.ai-docs/wiki/log.md) — append:
## YYYY-MM-DD | update | <slug> debrief — <N> meeting(s) processed (granola <doc-id>). <one-line summary of biggest deltas>.
Or for a brand-new client: use the add operation as in the Summit RB precedent.
If Phase 5 surfaced generalizable patterns, ask whether the user wants to run /curate-learnings to flow them up to the global wiki (patterns/practices/research). Don't do it automatically — that's a separate decision per the wiki schema.
NEW vs ALREADY KNOWN. Don't duplicate decisions, contacts, or action items.~/.claude/clients/<slug>/) NOT the wiki page if it's deeply personal. The wiki page is more searchable and more likely to be referenced cross-context; the clients/ folder is the operational vault./meeting-debrief summit-rb
/meeting-debrief Aaron Warshaw
/meeting-debrief [email protected]
/meeting-debrief ubs last 3
/meeting-debrief tog since 2026-05-01
/meeting-debrief 1197d26d-28e0-4585-8a65-080ce1ebd617
C:\Users\USERNAME\.ai-docs\wiki\C:\Users\USERNAME\.ai-docs\schema.mdC:\Users\USERNAME\.ai-docs\wiki\log.mdC:\Users\USERNAME\.ai-docs\wiki\index.mdC:\Users\USERNAME\.claude\clients\C:\Users\USERNAME\.claude\clients\CLIENTS.md%APPDATA%\Granola\cache-v6.jsonC:\Users\USERNAME\.claude\skills\granola\SKILL.mdpython ~/.claude/skills/granola/scripts/granola_api.py {list-meetings|panels|transcript|mine-sentiment} .../meeting-prep <name|email> — pre-meeting research briefing (companion skill — this skill is the post-meeting counterpart)/client-meetings <slug> — view cached meetings without writing anything backgranola skill — full Granola API access (used internally by this skill)/sync-client <slug> — full refresh of a client memory folder from all sources (broader scope than this)/curate-learnings — flow project-DNA learnings up to the global wiki (separate, more deliberate decision)/wiki add|update|lint|search — direct wiki managementEnd every debrief with:
**Debrief written.** <N> meeting(s) processed.
- Wiki: <path> (<sections updated>)
- Client memory: <files updated>
- Log: <log entry>
- Curate-learnings candidates: <count or "none">
Keep the closing summary tight so the user can verify at a glance.
development
Restore from the Kopia backup repo in one of two opinionated modes. **wikis** (frequent, default) syncs per-project `.ai-docs/` directories from backup to local project trees — used to move compound-knowledge wikis between machines via the backup drive as sneakernet. **full** (rare) restores all sources to original paths for greenfield machine rebuild. Use when the user says "restore wikis", "sync wikis from backup", "pull the wikis", "I plugged in the backup drive on this machine", "rebuild this machine", "greenfield restore", or "restore everything". For ad-hoc single-file restores, use `backup-ops restore` instead.
documentation
# /bp-iterate Iterate the Fitted Business Plan(s). Manages the **internal canonical** and the **external partner/investor variant**, snapshot-on-version-bump lineage, redaction enforcement between variants, and cross-document coupling. ## When this runs - User says `/bp-iterate`, "iterate the BP," "bump the BP," "update the business plan," "version up the BP," "create / update / refresh the external variant" - A material trigger fires per the BP's own Iteration Log (first 2 new closes / fundi
tools
Run Kopia-based backups of key Windows files and config to an external drive. Use when the user says "back up", "run a backup", "snapshot", "the backup drive is plugged in", or wants to set up / configure backups for the first time. Handles initial repo setup, drive detection by volume label, source enumeration, and snapshot creation with structured exclusions.
testing
Secondary backup operations against the Kopia repo — verify integrity, run maintenance/prune, mirror to a second destination, restore files/folders, or run a quick top-up snapshot of hot directories. Use when the user says "verify backups", "check backup integrity", "prune old snapshots", "restore from backup", "mirror backups to cloud", "quick backup", "top up the backup", or asks about backup health. For the primary backup run, use the `backup` skill instead.