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.
Installs into .claude/skills of the current project.
Are you the author of Meeting Ingestion?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/timurgaleev-meeting-ingestion)
---
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
- page_get
- page_put
- link
- add_timeline_event
mutating: true
writes_pages: true
writes_to:
- meetings/
- people/
- companies/
---
# Meeting Ingestion Skill
> **Filing rule:** Read `_brain-filing-rules.md` (via `get_skill _brain-filing-rules`)
> 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 events on ALL mentioned entities (timeline merge)
- Meeting is NOT fully ingested until enrich runs for every entity
- Back-links created bidirectionally
> **Convention:** See `conventions/quality.md` (via `get_skill conventions/quality`)
> 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
Write the page with `page_put` under `meetings/`:
```markdown
# {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. `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 a timeline event on the person's page:
`add_timeline_event` with the person's slug, the meeting date, and
`"Attended <meeting-title>"`
**Note:** Typed-link derivation runs when the meeting page is written via
`page_put`: `attended` links from the meeting to each attendee whose page
is referenced as `[Name](people/slug)` are derived from the page body. If
a mention is NOT a resolvable page reference, create the link explicitly
with `link` (kind `attended`). You DO always need `add_timeline_event`
for dated events — link derivation only handles links, not timeline
entries.
### Phase 4: Entity propagation (MANDATORY)
For each company, project, or concept discussed:
1. Check the brain for an existing page (`search`, then `page_get`)
2. Create/update as needed (`page_put`)
3. Add a timeline event referencing the meeting (`add_timeline_event`)
4. Back-link from entity page to meeting page (`link`)
### 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: Index freshness
No manual sync step: pages written via `page_put` are indexed on write,
and the server's background cycle handles embeddings and maintenance. If
you imported companion files outside the page API, run `memrain reindex`
from the shell.
## 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