brain-ingest-gate
Pre-write quality gate for content entering the brain. No raw copies: a bare cp/mv into the brain repo is a bug. Before any new page lands, resolve named…
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,
$ 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.
/meeting-ingestionContext 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,
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
> **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.
This skill guarantees:
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
notable quotes
passes the consistency check before it touches an entity page
(below) passes — every quote grounded, every slug backed by a page and a timeline backlink, every speaker resolved or flagged
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.
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.
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:**
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.
Build the transcript record from whatever arrived. If the input is malformed (empty transcript, summary-only payload with no transcript, in-p
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.
Repo: garrytan/gbrain
Pre-write quality gate for content entering the brain. No raw copies: a bare cp/mv into the brain repo is a bug. Before any new page lands, resolve named…
When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME…
Brain knowledge base operations. The core read/write cycle: brain-first lookup, read-enrich-write loop, source attribution, ambient enrichment, back-linking.…
Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time. Transforms…
Token-hygiene audit of the always-loaded context stack — CLAUDE.md, AGENTS.md, auto-memory MEMORY.md, and the bootstrap-rendered identity files (SOUL.md,…
When the user corrects a factual error, root-cause it immediately. Don't just note the correction — trace the error to its source, fix the source, and prevent…