Upload Granola Transcripts
Requirements
Transcript content (pasted text, single file, or directory path)
Instructions
You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).
1
Ask the user how they want to upload their Granola transcripts:
- Paste — Copy transcript from Granola and paste it here
- Single file — Upload one transcript file
- Multiple files — Drag exported files from Finder into Sauna
If they're unsure how to get transcripts, offer to explain (read Getting Granola Transcripts).
2
Based on their choice:
Paste: Accept the pasted content. Ask for a meeting title and date if not included.
Single file: Accept the uploaded file. Read it to understand the content.
Multiple files: Accept the uploaded files. List what was received (filename, title from frontmatter if present). Confirm before processing.
3
For each transcript:
- Parse any frontmatter (title, date, attendees, granola_id)
- If no frontmatter, extract what you can from the content or ask the user
- Check if a file with the same granola_id already exists in
Granola Transcripts — if so, update it rather than creating a duplicate
- Save to
Granola Transcripts with filename format:
YYYY-MM-DD - Meeting Title.md - Add frontmatter if missing: title, created_at, attendees (if known), type: transcript
4
Report what was saved (new vs updated). Show the list of transcripts now in the collection. Offer to help analyze or search the transcripts.
To run this task you must have the following required information:
> Transcript content (pasted text, single file, or directory path)
If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.
---
You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).
Add all steps to your todo list now and begin executing.
## Steps
1. Ask the user how they want to upload their Granola transcripts:
1. **Paste** — Copy transcript from Granola and paste it here
2. **Single file** — Upload one transcript file
3. **Multiple files** — Drag exported files from Finder into Sauna
If they're unsure how to get transcripts, offer to explain (read `./skills/sauna/[skill_id]/references/meetings.granola.finding.md`).
2. Based on their choice:
**Paste**: Accept the pasted content. Ask for a meeting title and date if not included.
**Single file**: Accept the uploaded file. Read it to understand the content.
**Multiple files**: Accept the uploaded files. List what was received (filename, title from frontmatter if present). Confirm before processing.
3. For each transcript:
1. Parse any frontmatter (title, date, attendees, granola_id)
2. If no frontmatter, extract what you can from the content or ask the user
3. Check if a file with the same granola_id already exists in `./documents/granola-transcripts/*` — if so, update it rather than creating a duplicate
4. Save to `./documents/granola-transcripts/*` with filename format: `YYYY-MM-DD - Meeting Title.md`
5. Add frontmatter if missing: title, created_at, attendees (if known), type: transcript
4. Report what was saved (new vs updated). Show the list of transcripts now in the collection. Offer to help analyze or search the transcripts.