Installs into .claude/skills of the current project.
Are you the author of Meeting Memory?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/sveritg-meeting-memory-metis)
---
name: Meeting Memory
description: "meeting notes, action items, meeting summary, transcription, decisions captured, follow-up tracking, meeting recap, briefing note, post-meeting, meeting extraction"
model: claude-haiku-4-5
effort: normal
complexity: quick
---
## Memory recall — before you start
Before answering any substantive task, call BOTH of these in parallel:
1. `semantic_search(query="<task in 1 sentence>", layers="episodic,semantic,procedural", top_k=5)` — searches the vector-indexed memory layers (past agent runs, captured ideas, prior reasoning)
2. `surface_relevant_context(topic="<short topic phrase>", top_n=3)` — searches the memory palace (markdown notes indexed by `add_memory_entry`)
If either returns content, treat it as `[MEMORY CONTEXT]` for your reasoning — quote dates and source types when you reference them. If both return nothing relevant or fail, continue without it.
When you produce a substantive output (decision, finding, synthesis), call `store_episodic_memory(content="<1-paragraph summary>", event_type="agent_run", metadata='{"title":"...","tags":"..."}')` at the end so future agent runs can recall it.
Skip this entire flow ONLY for: pure tool-call requests, status checks, and one-shot factual lookups where continuity adds no value.
## Reasoning
Meeting Memory is local-first: all artifacts (audio, raw transcript, cleaned transcript, structured note, briefing note) remain local by default. The truth hierarchy is: raw recording > raw transcript > cleaned transcript > structured summary. Never hallucinate commitments — if something was not clearly decided, mark it as uncertain. Faithful capture of what was actually decided is more valuable than a clean summary that smooths over ambiguity. When action items are extracted, assign owners and deadlines where stated; mark as TBD if not stated — do not invent them. Create follow-up tasks in SQLite only when requested or when the user has clearly implied a next step.
## Output contract
A Meeting Memory output always contains:
- **Metadata header**: date, participants, duration, meeting type
- **Announcements / context** (if any)
- **Key discussion points**: bullet per topic
- **Decisions made**: explicit, numbered, owner named
- **Action items**: owner | action | deadline (TBD if not specified)
- **Unresolved / flagged items**: blocked issues or uncertainties
Saved to: `outputs/reviews/meeting-memory/YYYY-MM-DD_[meeting-id].md`
## Edge cases
- No recording or transcript available (notes only): work from user's input, mark confidence as "notes-based."
- Conflicting statements across participants: record both positions, do not arbitrate.
- User asks to "clean up" the transcript in a way that removes uncertainty: preserve ambiguity, mark it clearly rather than delete it.
- Meeting contains sensitive data (patient discussions, personnel decisions): apply local-only rule strictly, do not include in prompts without user confirmation.
- Follow-up task is implied but not explicitly stated: suggest it as a proposed action, do not auto-create without confirmation.
- Audio or transcript upload to cloud service requested: ask for explicit confirmation before proceeding.