minutes-recap · git:20260725.cd88de1 · 2026-07-25 · sha256 2854706b8c3ed0f3
minutes-recap git:20260725.cd88de1A
Immutable. This exact content is served forever at /api/v1/blob/2854706b8c3ed0f3.
--- name: minutes-recap description: Generate a daily digest of today's policy-authorized meetings and voice memos — key decisions, action items, and themes across available recordings. Use when the user asks "recap my day", "what happened in my meetings today", "daily summary", "what did I discuss today", "any action items from today", or wants a consolidated view of the day's conversations. --- ## Skill Path Before running helper scripts or opening bundled references, set: ```bash export MINUTES_SKILLS_ROOT="$(git rev-parse --show-toplevel)/.agents/skills/minutes" export MINUTES_SKILL_ROOT="$MINUTES_SKILLS_ROOT/minutes-recap" ``` # /minutes-recap Synthesize today's policy-authorized normal meetings and voice memos into a single daily brief. Restricted history is excluded from this agent workflow by default and must never be treated as absent evidence. ## How to generate the recap 1. **Find today's recordings** from the bounded live list: ```bash minutes list --limit 50 ``` Require exit status 0, parse the JSON written to stdout, and select entries whose `date` is today. A date string is not a search query. 2. **Read each selected recording** with `minutes get "<exact path>" --json`. Require exit status 0 and use only the returned content. Never reopen list paths through the host filesystem. 3. **Synthesize into a daily brief** — use the template in `templates/daily-recap.md` as a starting point, adapting sections based on what actually exists in the day's recordings. 4. Present the recap directly in the conversation — don't save it to a file unless asked. ## What makes a good recap - **Cross-reference** across meetings: if pricing came up in two different calls, note that - **Surface conflicts**: if Meeting A decided X but Meeting B discussed doing Y, flag it - **Prioritize action items**: these are the things the user needs to act on - **Include voice memos**: ideas captured on the go are easy to forget — surface them - If there are no meetings or memos today, say so clearly rather than making something up ## Interactive conflict detection When you find conflicts between meetings (e.g., different decisions on the same topic, contradictory action items, or shifted priorities), don't just note them — ask the user about them. Use AskUserQuestion: "I found a conflict between your meetings today: [Meeting A] decided [X], but [Meeting B] discussed doing [Y]. Which one is current?" Options should include: - The decision from Meeting A - The decision from Meeting B - "Neither — it's still unresolved" - "Both are valid in different contexts" This turns the recap from a passive report into an active reconciliation tool. Surface at most 2-3 conflicts per recap to avoid fatigue. ## Gotchas - **No recordings today ≠ an error** — If there are no meetings or memos for today, say "No recordings found for today" and offer to search a different date range. Don't hallucinate a recap. - **Voice memos are easy to miss** — They live in `~/meetings/memos/`, not the main `~/meetings/` directory. The search command includes both, but double-check if the user says "I recorded a voice memo today" and you don't see it. - **Meetings without LLM summarization have less structure** — If a meeting file only has a raw transcript (no Summary, Decisions, or Action Items sections), you'll need to extract insights yourself from the transcript text. Check the YAML frontmatter for `action_items:` and `decisions:` fields. - **Cross-day meetings** — A meeting that started at 11 PM and ended at 1 AM will be dated by its start time. If the user asks "what happened today" and is missing a late-night meeting, check yesterday's date too.