Skip to content
Data
Skill

/meeting-ingestion

Ingest meeting transcripts from ANY meeting recorder into brain pages with attendee enrichment, entity propagation, and timeline merge. One unified pipeline: normalize the source into a standard transcript record, split multi-meeting recordings, resolve speakers by evidence,

From plugin
gbrain
30k77 skills
Install
$ npx -y skills add garrytan/gbrain --skill meeting-ingestion --agent claude-code

How 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 from ANY meeting recorder into brain pages with attendee enrichment, entity propagation, and timeline merge. One unified pipeline: normalize the source into a standard transcript record, split multi-meeting recordings, resolve speakers by evidence,

SKILL.md

meeting-ingestion.SKILL.md
name: meeting-ingestion
version: 2.2.0
description: |
  Ingest meeting transcripts from ANY meeting recorder into brain pages with
  attendee enrichment, entity propagation, and timeline merge. One unified
  pipeline: normalize the source into a standard transcript record, split
  multi-meeting recordings, resolve speakers by evidence, create the page,
  pass every surprising claim through the consistency check (transcript +
  brain + plausibility), enrich every entity, then run the verification
  checklist — substance AND sequence. A meeting is NOT fully ingested until
  the enrich skill has processed every entity AND the verification checklist
  passes, including the sequence verify (PASS or explicit user waive).
triggers:
  - "meeting transcript"
  - "process this meeting"
  - "meeting notes"
  - "meeting recorder"
  - "ingest this recording"
  - "capture meetings"
  - "audit this meeting"
  - "check the sequence"
  - "did I get the order right"
  - meeting transcript received
tools:
  - search
  - query
  - get_page
  - put_page
  - add_link
  - add_timeline_entry
  - get_timeline
  - chronicle_day
mutating: true
writes_pages: true
writes_to:
  - meetings/
  - people/
  - companies/
upstream:
  - meeting-ingestion@fc834ee
  - meeting-gold-standard@fc834ee
  - chronology-guard@fc834ee

Meeting Ingestion Skill — Unified Pipeline

> **Filing rule:** Read `skills/_brain-filing-rules.md` before creating any new page.

> **Convention:** See `skills/conventions/quality.md` for Iron Law back-linking, and > `skills/conventions/brain-first.md` for the lookup chain — resolve every name > against the brain BEFORE reaching for external lookups.

Contract

This skill guarantees:

  • Works with ANY meeting recorder — AI notetaker export, webhook payload, share

link, raw audio transcription, or manual paste. The normalized transcript record (below) is the contract; per-source fetch/parse is the host agent's job

  • One brain page per REAL meeting — multi-meeting recordings are split first
  • Meeting page created with attendees, summary, key decisions, action items,

notable quotes

  • Speakers resolved by evidence, never by guess
  • Recorder auto-summaries treated as CLAIMS, not facts — every surprising claim

passes the consistency check before it touches an entity page

  • EVERY attendee gets a people page (created or updated)
  • EVERY company discussed gets entity propagation
  • Timeline entries on ALL mentioned entities (timeline merge)
  • Back-links created bidirectionally
  • Meeting is NOT fully ingested until enrich runs for every entity
  • The meeting is never REPORTED as ingested until the verification checklist

(below) passes — every quote grounded, every slug backed by a page and a timeline backlink, every speaker resolved or flagged

  • The narrated SEQUENCE is verified independently of substance: a sequence

contradiction BLOCKS ingestion until fixed or explicitly waived by the user

Every attendee and company mentioned MUST get a back-link from their page to the meeting page. An unlinked mention is a broken brain.

Any recorder, one pipeline

Meeting content arrives from many sources: an AI notetaker (Granola and Circleback are common examples), a phone voice memo, a video-call transcript export, or a transcript the user pastes directly. Do NOT build per-vendor pipelines or paraphrase this skill in ad-hoc instructions — normalize whatever the source provides into the transcript record below, then run the shared phases. Source-specific logic ends at normalization.

The normalized transcript record

Before running the pipeline, reduce the input to this shape (mentally or as a scratch file — it does not get written to the brain as-is):

source: "<recorder name, or 'manual'>"
source_id: "<unique recording id from the source, if any>"
title: "Meeting Title"
date: YYYY-MM-DD
time: "HH:MM TZ"               # null if unknown
duration: "45m"                # null if unknown
attendees:                     # the SOURCE'S notion of who was there —
  - name: "..."                # may need correction during speaker resolution
    email: "..."               # only if the source provides it
    role: "..."                # only if known
transcript_segments:           # structured form when the source diarizes
  - speaker: "..."             # resolved name OR "UNKNOWN_N" if unresolved
    speaker_raw: "..."         # the source's raw speaker label, for traceability
    text: "..."
raw_transcript_text: "..."     # the complete transcript. NEVER truncate.
source_summary: "..."          # the recorder's AI summary if present — a CLAIM, not a FACT
source_url: "..."              # link back to the source platform, if any

**Invariants:**

  • `raw_transcript_text` is complete and untruncated. Always.
  • `attendees` is a claim by the source. People invited ≠ people present.
  • `source_summary` is TWO lossy layers deep (speech-to-text, then AI

summarization). Both layers confabulate. Verify before writing anything from it into the brain.

Retain the raw transcript when the source provides one: file it as a sidecar page (e.g. `meetings/YYYY-MM-DD-{slug}-transcript`) or keep the source file reachable, and link it from the meeting page. The transcript is the canonical evidence for every quote and claim check downstream.

**Redact before you retain.** A raw transcript routinely captures pasted secrets and PII (a read-aloud API key, a screen-shared token, a private phone number). Before writing the sidecar, scan for secret-shaped strings (`sk-…`, `ghp_…`, `AKIA…`, bearer tokens, long hex/base64 blobs) and PII, and redact matches to labeled placeholders — same deterministic deny-list / `runPrivacyLint` model as `conversation-archive`. "Untruncated" means the transcript's substance, never a live credential.

Phases

Phase 1: Normalize the input

Build the transcript record from whatever arrived. If the input is malformed (empty transcript, summary-only payload with no transcript, in-p

Read more
Ships withgbrain

Give the agent you already use a memory you control. GBrain stores explicit facts with their sources, supports corrections and withdrawal, and makes the same memory available across your agents.

Get the whole plugin
Stats
29,802
Stars
4,444
Forks
Active
Maintenance
TypeScript
Language
MIT
License
3d ago
Last commit
5mo ago
Created

Repo: garrytan/gbrain

Other skills on gbrain.

brain-ops
Skill

brain-ops

Brain knowledge base operations. The core read/write cycle: brain-first lookup, read-enrich-write loop, source attribution, ambient enrichment, back-linking.…

@garrytan@garrytanView Skill