# Process Transcript

> Convert VTT meeting transcripts from meetings/incoming/ into structured markdown notes in meetings/

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

---


Process all VTT meeting transcripts from `meetings/incoming/` into structured markdown notes in `meetings/`.

## Available scripts

- **`scripts/parse-vtt.py`** — Parses raw VTT files into Markdown files with YAML frontmatter (date, attendees) and a clean `Speaker: text` transcript (blank line between each turn). Supports `--output-dir` to control where `.md` files are written.

## Steps

1. **Find VTT files**: Check both `meetings/incoming/` and `~/Downloads/` for `.vtt` files. **Automatically process, without asking, every `.vtt` file modified within the last 24 hours** (plus anything already sitting in `meetings/incoming/`). List the files you selected with their `stat` timestamps so the user can see what was picked, but do not wait for confirmation. Ignore older files unless the user explicitly asks for them. If no recent files are found in either location, tell the user and stop.

2. **Parse VTT files**: Run the bundled script on the confirmed files, always outputting to `meetings/incoming/`. Use **absolute paths** for both the script and the output to avoid working-directory issues:

   ```bash
   SKILL_SCRIPT="$(ls "${PWD}/.claude/skills/process-transcript/scripts/parse-vtt.py" "${HOME}/.claude/skills/process-transcript/scripts/parse-vtt.py" 2>/dev/null | head -1)" && uv run "$SKILL_SCRIPT" --output-dir meetings/incoming <file1>.vtt <file2>.vtt
   ```

   This creates `.md` files in `meetings/incoming/` with frontmatter and transcript already formatted.

3. **Read each generated `.md` file** and determine:
   - **Date**: Already in the frontmatter. Verify it looks correct.
   - **Slug**: Pick a descriptive slug in kebab-case based on the transcript content (e.g. `strategy`, `progress-sync`, `brainstorm`, `planning`, `one-on-one`, `kickoff`, etc.).
   - **Title**: Add a `# Meeting Title` heading above the `## Transcript` section.
   - **Summary**: Add a brief 2-3 sentence summary of what the meeting was about between the title and the transcript.

   **Important**: Do not rewrite the transcript through the model. Only prepend the title and summary to the file generated by the script. Keep the transcript output from the script as-is.

4. **Move the file** to `meetings/YYYY-MM-DD-<slug>.md`.

5. **After processing**, report which files were created, then **always delete the processed source `.vtt` files** (from `~/Downloads/` and/or `meetings/incoming/`) without asking.

