minutes-graph
minutes-graph enables cross-meeting entity queries on people and topics extracted from your meeting history, answering relationship questions that full-text search cannot. Use it when asking about co-occurrences between entities, first mentions of terms, frequency trends over time, or any query requiring structured data across all meetings rather than simple text matching.
git clone --depth 1 https://github.com/silverstein/minutes /tmp/minutes-graph && cp -r /tmp/minutes-graph/tooling/skills/goldens/claude/minutes-graph ~/.claude/skills/minutes-graphSKILL.md
# /minutes-graph Minutes builds relationship rankings, exact person profiles, and commitments from one supervised, process-private SQLite projection of stable policy-authorized Markdown plus confirmed identity corrections. One ordered snapshot authority spans corpus and corrections, and the worker is hard-limited for memory, output, and wall time. Topic research uses the separately bounded live-source search boundary. Both paths re-attest policy before returning facts. Do not fall back to a retired durable index or read meeting files directly. ## Privacy boundary - Never walk meeting files, parse frontmatter yourself, or read raw transcripts for this skill. - Never run `graph_build.py` or read `~/.minutes/graph/index.json`; those are retired legacy surfaces. - Never create a replacement graph cache, spreadsheet, JSON file, or database. - Never pass `--include-restricted`. Restricted meetings are intentionally absent from this agent-facing skill. - Treat any authorization, resource-budget, correction-race, or projection error as a hard stop. Do not fall back to filesystem reads. ## Available commands - `minutes people --json` — bounded relationship rankings and losing-touch signals. - `minutes commitments --json` — bounded graph commitments. - `minutes people merge <canonical> <alias...>` — confirm an identity correction in the local vocabulary; uncertain names are never merged automatically. - `minutes person "<name>"` — bounded person profile. - `minutes research "<topic>"` — bounded topic research. ## Workflow 1. Classify the request and use the narrowest command above. 2. Require exit status 0. Use only the bounded native result and never substitute filesystem reads. 3. For a proposed alias, show the suggestion and ask for confirmation before running `minutes people merge`; a wrong merge is worse than no merge. 4. Do not imply that restricted history or a relationship fact is absent when any command fails. ## Output Return only the bounded native result. Never invent rankings, commitments, or relationship signals from raw files. ## Gotchas - A failed person profile cannot be interpreted as “never met.” Report the source unavailable. - Do not imply that a later sensitivity change proves a historical fact absent; report only the current authorized projection. - Alias suggestions are evidence, not permission to rewrite identity. Require explicit confirmation before merging. - Use `minutes research "<topic>"` for bounded company, product, or topic research. If it fails, report the source unavailable; never fall back to raw corpus reads.
Fast non-interactive briefing before any meeting — auto-detects your next calendar event, pulls relationship history, surfaces open commitments, and produces a one-page brief in under 30 seconds. Use this whenever the user says "brief me", "give me a quick brief", "what's coming up", "background on my next call", "who am I meeting next", "brief me on Sarah", "I have a call in 10 min", "quick rundown", or right before walking into a meeting. Different from /minutes-prep — brief is the fast hook-fireable version that doesn't ask questions and doesn't set goals. Use brief when speed matters; use prep when the user wants to think hard about goals first.
Manage old recordings — find large files, archive old meetings, delete processed originals. Use when the user says "clean up recordings", "how much space are meetings using", "delete old recordings", "archive meetings", "manage meeting storage", or asks about disk space from minutes.
Post-meeting debrief — analyzes what happened, compares outcomes to your prep intentions, tracks decision evolution. Use when the user says "debrief", "what just happened in that meeting", "what did we decide", "debrief that call", "post-meeting", "what changed", or right after stopping a recording.
Surface recent voice memos and ideas captured from any device. Use when the user asks "what ideas did I have?", "what were my recent memos?", "what did I record while walking?", or wants to recall a captured thought.
Extract facts from meetings and update your knowledge base — person profiles, chronological log, and index. Use when the user asks "ingest my meetings", "update my knowledge base", "extract facts from meetings", "sync meetings to wiki", "backfill knowledge", or wants their PARA/Obsidian/wiki profiles updated from conversation data.
Health-check your meeting knowledge for contradictions, stale commitments, and decision conflicts. Use when the user asks "any conflicts in my meetings", "check for stale action items", "lint my meetings", "consistency check", "are there contradictions", or wants to audit their decision history.
List recent meetings and voice memos. Use when the user asks "what meetings did I have", "show my recent recordings", "any meetings today", "list my voice memos", or wants an overview of their meeting history. Also use when they need to find a specific meeting by browsing rather than searching.
Self-coaching analysis of your own behavior across meetings — talk-time ratio, filler words, hedging language, monologue length, energy patterns, and (when meetings are tagged via /minutes-tag) what your behavior in winning meetings looks like vs losing ones. Use this whenever the user says "how did I do", "review my last meeting", "mirror", "self-review", "show my patterns", "coach me", "where am I weak", "talk time", "am I improving", "what do I do in meetings I win", "feedback on me", or asks for any kind of personal feedback on their own meeting behavior. This is the rare skill that gives the user a mirror to their own habits — surface it whenever they show curiosity about their own performance, even if they don't use the word "mirror".