/meeting-ingestion
Ingest meeting transcripts into brain pages with attendee enrichment, entity propagation, and timeline merge. A meeting is NOT fully ingested until the enrich skill has processed every entity.
$ npx -y skills add garrytan/gbrain --skill meeting-ingestion --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/meeting-ingestion
Context preview
The summary Claude sees to decide when to auto-load this skill.
Ingest meeting transcripts into brain pages with attendee enrichment, entity propagation, and timeline merge. A meeting is NOT fully ingested until the enrich skill has processed every entity.
SKILL.md
meeting-ingestion.SKILL.mdname: meeting-ingestion
version: 1.0.0
description: |
Ingest meeting transcripts into brain pages with attendee enrichment, entity
propagation, and timeline merge. A meeting is NOT fully ingested until the
enrich skill has processed every entity.
triggers:
- "meeting transcript"
- "process this meeting"
- "meeting notes"
- meeting transcript received
tools:
- search
- query
- get_page
- put_page
- add_link
- add_timeline_entry
mutating: true
writes_pages: true
writes_to:
- meetings/
- people/
- companies/
Meeting Ingestion Skill
> **Filing rule:** Read `skills/_brain-filing-rules.md` before creating any new page.
Contract
This skill guarantees:
- Meeting page created with attendees, summary, key decisions, action items
- EVERY attendee gets a people page (created or updated)
- EVERY company discussed gets entity propagation
- Timeline entries on ALL mentioned entities (timeline merge)
- Meeting is NOT fully ingested until enrich runs for every entity
- Back-links created bidirectionally
> **Convention:** See `skills/conventions/quality.md` for Iron Law back-linking.
Every attendee and company mentioned MUST get a back-link from their page to the meeting page. An unlinked mention is a broken brain.
Phases
Phase 1: Parse the transcript
Extract from the transcript:
- Attendees (names, roles if available)
- Date, time, duration
- Key topics discussed
- Decisions made
- Action items with owners
- Companies and projects mentioned
Phase 2: Create meeting page
# {Meeting Title} — {Date}
**Attendees:** {list with links to people pages}
**Date:** {YYYY-MM-DD}
**Duration:** {if available}
## Summary
{3-5 bullet key outcomes}
## Key Decisions
{Decisions with context}
## Action Items
{Tasks with owners and deadlines}
## Discussion Notes
{Structured notes by topic}Phase 3: Attendee enrichment (MANDATORY)
For EACH attendee: 1. `gbrain search "{name}"` — does a people page exist? 2. If NO → create via enrich skill (this is mandatory, not optional) 3. If YES → update compiled truth with meeting context 4. Add timeline entry on the person's page: `gbrain timeline-add <person-slug> <date> "Attended <meeting-title>"`
**Note (v0.10.1):** Once the meeting page is written via `gbrain put`, the auto-link post-hook automatically creates `attended` links from the meeting to each attendee whose page is referenced as `[Name](people/slug)`. You don't need to call `gbrain link` for attendees. You DO still need `gbrain timeline-add` for dated events (auto-link only handles links, not timeline entries).
Phase 4: Entity propagation (MANDATORY)
For each company, project, or concept discussed: 1. Check brain for existing page 2. Create/update as needed 3. Add timeline entry referencing the meeting 4. Back-link from entity page to meeting page
Phase 5: Timeline merge
The same event appears on ALL mentioned entities' timelines. If Alice met Bob at Acme Corp, the event goes on Alice's page, Bob's page, AND Acme Corp's page.
Phase 6: Sync
`gbrain sync` to update the index.
Output Format
Meeting page created. Report: "Meeting ingested: {N} attendees enriched, {N} entities updated, {N} action items captured."
Anti-Patterns
- Creating the meeting page without enriching attendees
- Skipping entity propagation ("I'll do that later")
- Not merging timelines across all mentioned entities
- Creating attendee stubs without meaningful content
- Filing meeting pages without cross-linking to all participants
Read more
name: meeting-ingestion version: 1.0.0 description: | Ingest meeting transcripts into brain pages with attendee enrichment, entity propagation, and timeline merge. A meeting is NOT fully ingested until the enrich skill has processed every entity. triggers: - "meeting transcript" - "process this meeting" - "meeting notes" - meeting transcript received tools: - search - query - get_page - put_page - add_link - add_timeline_entry mutating: true writes_pages: true writes_to: - meetings/ - people/ - companies/
Meeting Ingestion Skill
> **Filing rule:** Read `skills/_brain-filing-rules.md` before creating any new page.
Contract
This skill guarantees:
- Meeting page created with attendees, summary, key decisions, action items
- EVERY attendee gets a people page (created or updated)
- EVERY company discussed gets entity propagation
- Timeline entries on ALL mentioned entities (timeline merge)
- Meeting is NOT fully ingested until enrich runs for every entity
- Back-links created bidirectionally
> **Convention:** See `skills/conventions/quality.md` for Iron Law back-linking.
Every attendee and company mentioned MUST get a back-link from their page to the meeting page. An unlinked mention is a broken brain.
Phases
Phase 1: Parse the transcript
Extract from the transcript:
- Attendees (names, roles if available)
- Date, time, duration
- Key topics discussed
- Decisions made
- Action items with owners
- Companies and projects mentioned
Phase 2: Create meeting page
# {Meeting Title} — {Date}
**Attendees:** {list with links to people pages}
**Date:** {YYYY-MM-DD}
**Duration:** {if available}
## Summary
{3-5 bullet key outcomes}
## Key Decisions
{Decisions with context}
## Action Items
{Tasks with owners and deadlines}
## Discussion Notes
{Structured notes by topic}Phase 3: Attendee enrichment (MANDATORY)
For EACH attendee: 1. `gbrain search "{name}"` — does a people page exist? 2. If NO → create via enrich skill (this is mandatory, not optional) 3. If YES → update compiled truth with meeting context 4. Add timeline entry on the person's page: `gbrain timeline-add <person-slug> <date> "Attended <meeting-title>"`
**Note (v0.10.1):** Once the meeting page is written via `gbrain put`, the auto-link post-hook automatically creates `attended` links from the meeting to each attendee whose page is referenced as `[Name](people/slug)`. You don't need to call `gbrain link` for attendees. You DO still need `gbrain timeline-add` for dated events (auto-link only handles links, not timeline entries).
Phase 4: Entity propagation (MANDATORY)
For each company, project, or concept discussed: 1. Check brain for existing page 2. Create/update as needed 3. Add timeline entry referencing the meeting 4. Back-link from entity page to meeting page
Phase 5: Timeline merge
The same event appears on ALL mentioned entities' timelines. If Alice met Bob at Acme Corp, the event goes on Alice's page, Bob's page, AND Acme Corp's page.
Phase 6: Sync
`gbrain sync` to update the index.
Output Format
Meeting page created. Report: "Meeting ingested: {N} attendees enriched, {N} entities updated, {N} action items captured."
Anti-Patterns
- Creating the meeting page without enriching attendees
- Skipping entity propagation ("I'll do that later")
- Not merging timelines across all mentioned entities
- Creating attendee stubs without meaningful content
- Filing meeting pages without cross-linking to all participants
Search gives you raw pages. GBrain gives you the answer. It's the brain layer your AI agent has been missing — the only one that does synthesis, graph traversal, and gap analysis in one box.
Repo: garrytan/gbrain
Other skills on gbrain.
- /voice-persona-mars
Route to Mars (introspective thought partner / demo showman voice persona). Used when the operator wants depth, meaning, or impressive social demos rather than logistics. Mars handles SOLO mode (philosophy, presence, patterns) and DEMO mode (tool-driven showmanship)
Open skill - /voice-persona-venus
Route to Venus (sharp executive-assistant voice persona). Used for logistics — calendar, tasks, recent messages, brain lookups — at sub-second phone-call latency. The default voice persona unless DEFAULT_PERSONA=mars is set.
Open skill - /voice-post-call
Post-call handling for a voice session — turn the transcript into a brain page, post the summary to the operator's messaging surface, archive the audio. Belt-and-suspenders: fires both from a tool the voice persona can call mid-call AND from the automatic call-end handler in
Open skill - /retrieval-reflex
When/what to retrieve — open the brain page for a salient entity before answering from memory.
Open skill - /academic-verify
Verify a research claim or academic citation by tracing it through publication → methodology → raw data → independent replication. Routes through perplexity-research for the actual web lookup, then formats results as a citation-checked brain page. Use when a
Open skill - /archive-crawler
Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump). Filters for high-value content (the user's own writing, ideas, relationships) and surfaces it interactively. REFUSES TO RUN without an explicit gbrain.yml
Open skill

