# Meeting Transcript Notes

> Transform meeting transcripts into structured notes. Optimized for Google Meet transcripts generated by Gemini, but works with any markdown-formatted meeting transcript. Reads transcript files, organizes them into summary/decisions/action items, and saves as markdown after user confirmation.

- Skill: `yoochankim/meeting-transcript-notes` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yoochankim/meeting-transcript-notes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yoochankim/meeting-transcript-notes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: yoochankim (https://skillmd.com/u/yoochankim)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yoochankim/meeting-transcript-notes

---


# Meeting Transcript Notes

Transforms markdown meeting transcripts into structured meeting summaries.
Best results with Google Meet transcripts generated by Gemini, but compatible
with any MD transcript that includes speaker names and timestamps.

## Configuration

Before first use, confirm these paths match your setup:

- **Inbox:** where new transcripts are dropped
- **Summary:** where AI-generated summaries are saved
- **Archive:** where processed originals are moved

Default paths (edit to match your environment):

```
INBOX:   ~/meeting-notes/inbox/
SUMMARY: ~/meeting-notes/summary/
ARCHIVE: ~/meeting-notes/archive/
```

## Workflow

### Step 1: Discover & Select Transcript Files

Folder structure:

```
meeting-notes/
├── inbox/      ← new transcripts dropped here
├── summary/    ← AI-generated summaries saved here
└── archive/    ← processed originals moved here
```

1. Search the `inbox/` folder for files matching `*.md` (using Glob)
2. **If inbox is empty:** notify the user and stop. Do not proceed.
3. **Always** present the list of found files and ask the user to choose which file(s) to process
4. Never auto-select, even if only one file is found
5. If the transcript was provided directly in chat (not as a file), skip this step

### Step 2: Read Transcript & Extract Metadata

1. Read the selected MD file using Read (split into chunks if large)
2. **If the file cannot be parsed or appears malformed** (e.g., no speaker
   names, no timestamps, binary content), notify the user and ask how to
   proceed.
3. Extract metadata:
   - **Meeting title**: Infer from filename or first heading (e.g., `Weekly Product Sync`)
   - **Meeting date**: Extract from filename or content (e.g., `2026_02_10` → `2026-02-10`)
   - **Attendees**: Extract unique speaker names. For Gemini-style transcripts,
     use Grep pattern `\*\*\w+ \w+:\*\*`. For other formats, look for `Name:`,
     `[Name]`, or `**Name**`
   - **Meeting duration**: Calculate from first/last timestamps if available

### Step 3: Generate Structured Summary

Generate a summary using only information explicitly in the transcript.
No speculation or fabricated content.

**Important Rules:**
- Only include information explicitly mentioned in the transcript
- Ask the user if anything is unclear
- Always use **full names** as they appear in the transcript
- Write content in the **same language as the transcript**
- **Section titles are always in English** regardless of transcript language

**Output Format:**

```markdown
# {Meeting Title} - {YYYY-MM-DD}

## Attendees
- {Attendee Full Name 1}
- {Attendee Full Name 2}
- ...

## Executive Summary
1. {Key takeaway 1 — most important decision or outcome}
2. {Key takeaway 2 — strategic implication or urgent action}
3. {Key takeaway 3 — sprint/team focus for this period}

## Summary
1. **{Topic}**: {Summary of discussion}
2. **{Topic}**: {Summary of discussion}
...

## Decisions
1. {Decision made}
...

## Action Items
| # | Owner | Task | Deadline |
|---|-------|------|----------|
| 1 | {Full Name} | {Task description} | {Deadline or TBD} |
```

### Step 4: User Review

1. Display the generated summary in chat
2. Ask the user: "Is this summary accurate? Let me know if anything needs revision."
3. Apply any requested changes and re-confirm before saving

### Step 5: Save File

After user approval:

1. Save summary to the configured `summary/` folder
2. Filename: `{YYYY-MM-DD} {Meeting Title} - Summary by AI.md`
   - Example: `2026-03-15 Weekly Product Sync - Summary by AI.md`
3. **If a file with that name already exists:** ask the user whether to
   overwrite or append a suffix (e.g., `- v2`).
4. Move the original transcript from `inbox/` to `archive/`
5. *(Optional)* Append action items to todos.md using the **action-item-extractor**
   skill if it is installed.
   Skill location: `skills/action-item-extractor/SKILL.md`
6. Inform the user of the saved file path

## Automated Inbox Monitoring

This skill can run automatically on a schedule. To enable:

1. Configure your agent to check `inbox/` periodically
2. When new `.md` files are found, trigger this skill automatically
3. Skip the file selection step — process all new files
4. Move processed files to `archive/`

