task icon Task

Upload Granola Transcripts

Upload meeting transcripts from Granola for analysis

Requirements
Transcript content (pasted text, single file, or directory path)
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 sliceGetting 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:

  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 stateMeeting Transcripts — if so, update it rather than creating a duplicate
  4. Save to stateMeeting Transcripts with filename format: YYYY-MM-DD - Meeting Title.md
  5. Add frontmatter if missing: title, created_at, attendees (if known), type: transcript
  6. Scan for action items (phrases like "I'll", "we'll", "TODO", "action item", "follow up", "next step"):
    • Extract the commitment and owner if clear
    • Mention them to the user so they can track them in their preferred system
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 CONSECUTIVE read steps in a row, read them all at once (in parallel). Otherwise, do not read a file until you reach that step.

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/work/meetings/*.md` — if so, update it rather than creating a duplicate
4. Save to `documents/work/meetings/*.md` with filename format: `YYYY-MM-DD - Meeting Title.md`
5. Add frontmatter if missing: title, created_at, attendees (if known), type: transcript
6. Scan for action items (phrases like "I'll", "we'll", "TODO", "action item", "follow up", "next step"):
   - Extract the commitment and owner if clear
   - Mention them to the user so they can track them in their preferred system


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.