Meeting Transcript Processor.
Granola transcripts become structured notes with attendees, decisions, and action items. Filed automatically. This build wraps the cairns-ingest skill with a meeting-shaped entry point so every call you record lands in your second brain the same way, with the same structure, every time.
- A one-step path for every meeting paste the transcript, say 'process this meeting', and the agent does attendee extraction, decision pulling, action-item routing, and the L3/L2 Chain of Density Card Catalog Layer (Card Catalog Layer for short) write.
- Attendees, decisions, and actions become first-class fields not buried in a paragraph. The agent picks them out of the transcript so your future self can scan one meeting card and know what was said and what's owed.
- Every transcript inherits Cairns provenance raw transcript preserved verbatim at L3, dense card at L2 Chain of Density Card Catalog Layer with retrieval hooks, optional L1 waypoint when a decision lands. The skill you already know does the work.
Process your first meeting transcript.
Hand the build off to Claude in one paste. The agent reads the cairns-ingest skill, confirms your vault shape, then walks one real meeting transcript through the full pipeline with the meeting-specific field extraction layered on top.
How this fits in the OS.
A second brain vault on your computer (default ~/Documents/second-brain), the Cairns L1 / L2 Chain of Density Card Catalog Layer (Card Catalog Layer for short) / L3 folder skeleton in place, an Obsidian (or any markdown-friendly) viewer pointed at the vault, and a transcript source you can paste or hand the agent (Granola is the cleanest, but any structured meeting transcript works).
The cairns-ingest skill that ships in the workshop repo at .claude/skills/cairns-ingest/SKILL.md. This build does not replace the skill. It wraps it with a meeting-shaped entry point that extracts attendees, decisions, and action items before the chain-of-density loop runs.
Every recorded call lands in your second brain the same way. Scan one meeting card and you know who was there, what was decided, and what's owed. The transcript stays verbatim at L3 in case you ever need to audit a quote.
What you'll build.
An honest framing first. This is not a new skill. It is a meeting-shaped entry point on top of cairns-ingest, the skill that already handles every other knowledge source you feed into your vault. You are not writing a new piece of software. You are teaching your agent the shape of a meeting transcript so the ingest flow does the right thing for this source type without you having to nudge it every time.
The output is one L3 raw file and one L2 Chain of Density Card Catalog Layer dense card per meeting, written atomically, in the same vault as everything else. The L2 Chain of Density Card Catalog Layer card has structured fields at the top so the dense summary doesn't have to carry every detail.
Meeting transcripts have a shape generic source ingestion does not exploit. There is always an attendee list. There are almost always decisions and action items. The plain cairns-ingest flow would write a perfectly good dense card, but the card would bury "Sara owes the deck by Friday" in a paragraph. The meeting entry point pulls that into a labeled field, so future you (and future agent) finds it in one glance.
What lands on disk per meeting.
Two files write atomically. A third file (an L1 waypoint) appends only if a decision in the meeting changes your standing context.
cairns/L3/transcripts/YYYY-MM-DD-meeting-<slug>.md. The complete verbatim transcript, no summarization, with frontmatter (source: granola, captured_at, meeting_date, attendees_raw). This is the evidence layer. If a quote ever matters, it lives here.
cairns/L2/cards/YYYY-MM-DD-meeting-<slug>.md. Frontmatter plus four labeled fields up top: Attendees, Decisions, Action items, Open questions. Then the chain-of-density dense summary (120 to 180 words). Then retrieval hooks and a backlink to L3.
cairns/L1/<category>.md. One short line, only if a decision in this meeting affects active work, people, or operating context. The skill always asks before touching L1. Most meetings do not warrant a waypoint.
The agent does the writing. You see the paths and the extracted fields at the end and confirm them.
What changes for you.
The pipeline is the easy part. The bigger thing is how you treat meetings once they have somewhere reliable to land. Three shifts you will feel:
- You stop hoping you'll remember. The minute a call ends, "process this meeting" sends the transcript through the pipeline and you can close the tab. The structured card holds the decisions and actions so your head doesn't have to.
- Action items stop falling through. They have a labeled section in every card, in the same place, every time. Open three meeting cards from the last week and you can see everything you owe and everyone owes you in one scan.
- Your future agent inherits the room. Future Claude sessions can scan the L2 Chain of Density Card Catalog Layer cards and answer "what did we decide about the workshop launch?" or "who said they'd handle the API key rotation?" without you re-litigating the call. The transcript is right there if the agent needs to double-check a quote.
Before you start.
Three prerequisites, all quick:
- Cairns is set up. You've worked through The Cairns Three Tiers and you have the L1, L2 Chain of Density Card Catalog Layer, and L3 folder skeleton in your vault. This build writes into folders that have to exist.
- A transcript source you can hand the agent. Granola is the cleanest because it labels speakers and exports clean markdown. Any other transcript works too: a Zoom transcript run through your transcription tool of choice, a Fathom export, a meeting note you typed by hand. The pipeline does not care where the text came from, only that it is text the agent can read.
- An Obsidian (or equivalent) viewer pointed at your vault. Not required for the build to work, but the moment you see the first meeting card show up in the file tree with attendees and decisions broken out at the top, the loop closes and you stop wanting to dump meetings anywhere else.
Walk through the build.
Confirm the cairns-ingest skill is in place
~5 minThis build wraps the cairns-ingest skill. The skill file should already be in your workshop repo at .claude/skills/cairns-ingest/SKILL.md. Confirm it exists and that Claude Code can see it before you go further.
Open .claude/skills/cairns-ingest/SKILL.md in our local workshop repo. Read it end to end and tell me back: (1) the nine-step workflow, (2) the exact L2 Chain of Density Card Catalog Layer card frontmatter template, (3) the L1 promotion gate rule, (4) the atomic write pattern. I want to confirm the spec is current before we use it for meeting transcripts.
The agent does this for you. You are not parsing the spec by hand. Claude reads it, summarizes the workflow, and confirms the behavior you should expect. If anything looks different from what's on this card, the local spec wins. It's the source of truth.
Verify the vault folders for meetings exist
~5 minMeetings land at L3 under a transcripts subfolder and at L2 Chain of Density Card Catalog Layer under the cards subfolder. The skill will create missing folders if you ask, but it is cleaner to know the layout up front.
cairns/L3/transcripts/for raw verbatim meeting transcriptscairns/L2/cards/for dense Chain-of-Density cards (one per meeting)cairns/L1/for any waypoint files the agent proposes after a meeting
Check my second brain vault at ~/Documents/second-brain (Windows: my Documents folder). If any of these folders are missing, create them: cairns/L3/transcripts/, cairns/L2/cards/, cairns/L1/. Confirm the final tree by listing each path and whether it existed already or was created in this run.
The agent does this for you. One pass, three folders, no manual file-tree clicking. If your vault is already set up from the Second-Brain Capture or Decision Logging builds, this step is a no-op and the agent will tell you so.
Hand the agent a real transcript and the meeting shape
~15 minPick one real meeting you actually want to remember. A team check-in, a client call, a sales conversation, an internal strategy discussion. The first run should produce a card you would have written by hand if you had the time. Test runs do not teach you what the pipeline is for.
Then tell Claude what shape to extract on top of the standard ingest flow:
I'm processing a Granola meeting transcript using the cairns-ingest skill with a meeting-specific entry layer. Classify the source as source_type: meeting. Before you run the chain-of-density loop, extract these four fields from the transcript and put them at the top of the L2 Chain of Density Card Catalog Layer card in a clearly labeled section: Attendees (full normalized list), Decisions (one bullet per decision, in the form "we decided X because Y"), Action items (one bullet per item, in the form "owner: action, due: date if known"), Open questions (anything left unresolved). If an action item has no clear owner in the transcript, mark it owner: unassigned rather than guessing. After the fields, run the chain-of-density loop exactly as the skill specifies. The transcript I want to process is: [paste the transcript here].
The agent will write L3 raw first (verbatim, no summarization), build the L2 Chain of Density Card Catalog Layer card in a temp stage outside the vault, validate frontmatter and backlinks, then atomically copy into the vault. If any write fails, the skill rolls back every file it copied during the run and tells you which paths need attention.
quality: speakers_unlabeled. The L3 raw stays as-is; you keep the option to relabel later when you have a cleaner source.
Approve the L1 promotion (or skip it)
~5 minThe cairns-ingest skill never silently writes to L1. After the L3 and L2 Chain of Density Card Catalog Layer files land, the agent asks whether anything in this meeting changes your standing context. Most meetings do not. The ones that do (a hiring decision, a project pivot, a new active client, a tool switch) deserve one short line in the right L1 file.
Two correct answers here:
- Yes, promote one waypoint. Tell the agent which decision matters and where it should land (typically
cairns/L1/work-builds.mdfor project shifts,cairns/L1/people.mdfor people changes, or a personal waypoint file likemy-projects.mdif it is something only you carry). The skill appends one line under 220 characters with a pointer back to the L2 Chain of Density Card Catalog Layer card. - No, skip L1. The meeting was important enough to log but the call does not change how the agent should reason about your standing context. The L2 Chain of Density Card Catalog Layer card stays reachable by name; L1 stays clean.
The agent does this for you. You are deciding yes or no on a one-line promotion. The agent composes the line, picks the file, and waits for your confirmation before writing.
Read back the paths and the extracted fields
~5 minThe last move is the read-back. The skill should already do this on its own (step nine of the ingest workflow), but if it skips it, bring it back.
Read back every path you wrote in this run, the extracted Attendees, Decisions, and Action items at the top of the L2 Chain of Density Card Catalog Layer card, and any L1 waypoint line that landed. Show me the dense summary verbatim. I want to confirm the meeting's shape before we close out.
This is where you catch a misattributed action item, a decision that lost a nuance in the dense summary, or an attendee the agent missed. Fix it now, not three weeks from now when you're trying to figure out why the card says Sara when it was Hunter.
When it works.
You'll see four things settle into a rhythm:
- Every meeting card has the same four fields at the top. Open three cards from the last week. Attendees, Decisions, Action items, Open questions. Same order, same labels. You stop hunting for what was decided.
- Action items become a scannable list. Ask the agent "what action items do I owe across all meetings from the last two weeks?" The agent can answer by reading the L2 Chain of Density Card Catalog Layer cards. No filesystem grep.
- L3 transcripts stay verbatim. Open
cairns/L3/transcripts/a month in. Every file is a complete transcript, no summarization, no editing. If you ever need to audit a quote, it's there. - L1 stays tight. Most meetings did not earn a waypoint. The ones that did (your call with that one client, the day you decided to ship four cards instead of seven) read as a short curated list, not a wall of meeting summaries.
If you get stuck.
Common failure modes, ranked by how often they bite people:
- The agent summarizes the L3 raw transcript. Never acceptable. The L3 layer is the evidence layer; it stays verbatim. If you see a shortened transcript at L3, the skill skipped step three of its own workflow. Quote the spec back to the agent, re-run, and check L3 before accepting the run.
- Action items have no owners. Sometimes the transcript genuinely doesn't name an owner. The fix is to mark those as
owner: unassignedand let the card make the gap visible. The card surfacing "three unassigned actions" is more useful than the card silently guessing. - Decisions and action items blur together. A decision is "we picked X." An action item is "someone will do X." If your cards have these mixed, give the agent one sentence of correction and re-run. The labels are doing the work; if they're sloppy, the future-scan benefit collapses.
- The dense summary is too long. The chain-of-density target is 120 to 180 words. If the L2 Chain of Density Card Catalog Layer card is running 250+, the agent skipped the densification loop. Ask it to rewrite the summary at the same length until it hits the target. Density is the whole point of the L2 Chain of Density Card Catalog Layer.
- You're trying to process a meeting with no transcript. The pipeline needs text. Notes scribbled during a call work, but the structured fields will be sparse because the source is sparse. Either run the audio through a transcription tool first (Granola is the cleanest path) or accept that the card will be lighter than usual.
Still stuck? Post the transcript snippet, the agent's response, and what you expected, in the workshop Slack. Someone in the cohort is solving the same thing.
Where to go next.
You wired up the meeting-shaped entry point. Two natural next moves on the shelf: