# summarize-meetings

A skill that reads meeting transcripts in an Obsidian vault, pulls out people, action items and ideas, then writes summary files and links between notes.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 336
- Author: harperreed
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/harperreed/dotfiles/tree/HEAD/.claude/skills-archive/summarize-meetings/SKILL.md
- Updated: 2026-10-15
- HTML: https://affpapa.org/en/nevibecode/skills/summarize-meetings

## What it does

The skill points at `Meetings/transcripts/` and chews through one month at a time, newest first. It lists the files by size, checks whether a summary already exists, and drops the junk: empty templates, scheduling fragments, recordings about recording. Every transcript that survives gets its own subagent, dispatched in waves of 10–15 so the machine does not choke. Anything over 50K is read in chunks with offset/limit.

From each transcript it collects people, tasks, project and blog ideas, concepts, and graph connections. The write-up lands in `Meetings/YYYY-MM-DD-slugified-name-summary.md` with YAML frontmatter, person notes go to `People/`, concepts to `Concepts/`. Everything is wired with `[[wiki-links]]`. Once the wave returns, the skill builds a monthly table showing what was processed, what was skipped and why.

Person notes are only created for full names; a first-name mention gets nothing. Most transcripts come from Granola, and they often have an empty `summary_text` or swapped speaker labels, so the transcript body is what you actually trust. The last step posts a month recap through `mcp__socialmedia__create_post`, which means the socialmedia MCP server has to be configured. Paths in the example prompts assume one particular vault — swap in your own.

## Requirements
- Works with: Obsidian

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add harperreed/dotfiles --skill summarize-meetings -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/summarize-meetings/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/summarize-meetings/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add harperreed/dotfiles --skill summarize-meetings -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/summarize-meetings/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add harperreed/dotfiles --skill summarize-meetings -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/summarize-meetings/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install harperreed/dotfiles summarize-meetings
```

2. **Manually: put the files in place**
- File: `.github/skills/summarize-meetings/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add harperreed/dotfiles --skill summarize-meetings -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/harperreed/dotfiles --path .claude/skills-archive/summarize-meetings
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/summarize-meetings/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add harperreed/dotfiles --skill summarize-meetings -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/harperreed/dotfiles/tree/HEAD/.claude/skills-archive/summarize-meetings/SKILL.md

## When to use it
- work through a month of meeting transcripts
- pull tasks and owners out of a call recording
- create person notes from meeting attendees
- link meetings to concepts in Obsidian
- filter out empty and garbled transcripts before processing

## Example prompts
- Summarize last month's meeting transcripts in `Meetings/transcripts/`
- Process the meeting `2025-01-31-harper-john.md` and list the action items
- Go through the meeting notes and update the knowledge graph

## Similar
- [running-meetings](https://affpapa.org/en/nevibecode/skills/running-meetings.md) — skill · 349 installs
- [meetings](https://affpapa.org/en/nevibecode/skills/meetings.md) — skill · 37 installs
- [wiki-update](https://affpapa.org/en/nevibecode/skills/wiki-update.md) — skill · 3400 installs
- [claude-history-ingest](https://affpapa.org/en/nevibecode/skills/claude-history-ingest.md) — skill · 3000 installs
- [llm-wiki](https://affpapa.org/en/nevibecode/skills/llm-wiki.md) — skill · 699 installs
- [li](https://affpapa.org/en/nevibecode/skills/li.md) — skill · 652 installs

From the same set: [harperreed/dotfiles](https://affpapa.org/en/nevibecode/by/harperreed/dotfiles.md) — 8 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
