skills/voice-note-ingest/SKILL.md
Ingest a voice note with exact-phrasing preservation (never paraphrased). Routes content to originals/, concepts/, people/, companies/, ideas/, personal/, or voice-notes/ based on a decision tree. The user's exact words are the signal.
npx skillsauth add garrytan/gbrain voice-note-ingestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Convention: see conventions/quality.md for citation rules, back-link enforcement, and exact-phrasing requirements.
Convention: see _brain-filing-rules.md for the filing decision protocol.
The user's exact words are the insight. Never paraphrase. Never clean up. The vivid, unpolished, stream-of-consciousness phrasing captures something that cleaned-up prose does not. Preserve it in block quotes. The Analysis section can interpret; the transcript section is sacred.
"The ambition-to-lifespan ratio has never been more fucked"User noted the tension between ambition and mortalityThe user sends an audio or voice message via any channel (Telegram, voice
memo upload, openclaw audio attachment). The host agent typically provides
the transcript text. If not, transcribe via gbrain transcription (Groq
Whisper by default; OpenAI fallback for audio > 25MB segmented via ffmpeg).
1. STORE → Upload original audio to gbrain storage backend
(S3 / Supabase Storage / local — pluggable per
src/core/storage.ts).
2. TRANSCRIBE → Use the agent-provided transcript verbatim, OR call
gbrain transcription if no transcript was supplied.
3. ROUTE → Apply the decision tree (below) to find the right
destination directory.
4. WRITE → Create / update the destination brain page; preserve the
verbatim transcript in a block-quoted "User's Words"
section.
5. CROSS-LINK → For every entity mentioned (person, company), add a
timeline back-link from THEIR brain page to THIS one
(Iron Law per conventions/quality.md).
Apply in order. First match wins. If multiple categories apply, file to the primary directory and cross-link to the others.
Original idea, observation, or thesis — the user is expressing a
novel thought, framework, or connection THEY generated.
→ originals/<slug>.md. Use the user's vivid language for the slug.
About a world concept they encountered — a framework or model
someone else created that the user is referencing.
→ concepts/<slug>.md.
About a specific person — new information, opinion, or observation
about someone.
→ Update people/<person>.md timeline.
About a specific company — new info about a company.
→ Update companies/<company>.md timeline.
A product or business idea — something that could be built.
→ ideas/<slug>.md.
A personal reflection — therapy-adjacent, emotional, identity.
→ Append to appropriate personal/<slug>.md.
None of the above / random thought / doesn't fit cleanly —
→ voice-notes/YYYY-MM-DD-<slug>.md (catch-all).
Multiple categories? Create the primary page, then cross-link to all others. If the voice note covers a person AND a novel idea, create the originals/ page AND update the person's timeline.
For ALL voice-note-derived pages, include this skeleton:
---
title: "[Title derived from content]"
type: [original | concept | voice-note | ...]
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: [voice-note, relevant-tags]
sources:
voice-note:
type: voice_note
storage_path: "[gbrain storage URL or relative path]"
acquired: YYYY-MM-DD
acquired_via: "voice note from <channel>"
---
# Title
> Executive summary of what was said and why it matters.
## User's Words
> "Exact transcript, verbatim, preserving every word, hesitation, and verbal
> tic. This is the primary source material. Do not edit."
🔊 [Audio]([gbrain storage URL or relative path])
## Analysis
[What this means, why it matters, connections to other thinking. The
analysis is the agent's interpretation; the transcript above is sacred.]
## See Also
- [Related brain pages with relative links]
---
## Timeline
- **YYYY-MM-DD** | voice note from <channel> — [Brief description]
[Source: voice note, <channel>, YYYY-MM-DD]
Include timestamps when available:
[Source: voice note, <channel>, YYYY-MM-DD HH:MM PT]
YYYY-MM-DD-<brief-slug>.<ext> (e.g.,
2026-04-13-rick-rubin-creative-philosophy.ogg)This skill handles ONE voice note at a time. Each is its own ingest cycle. No batching.
🔊 [Audio] link back to it.skills/signal-detector/SKILL.md — same exact-phrasing pattern for
text-channel idea captureskills/idea-ingest/SKILL.md — for typed-text idea ingestionskills/conventions/quality.md — citation + back-link rulesThis skill guarantees:
writes_to: (when applicable).quality.md, brain-first.md, _brain-filing-rules.md) are followed.The full behavior contract is documented in the body sections above; this section exists for the conformance test.
The skill's output shape is documented inline in the body sections above (see "Output", "Brain page format", or equivalent). The literal section header here exists for the conformance test (test/skills-conformance.test.ts).
tools
--- name: query-helper triggers: - find a page tools: - search - query writes_pages: false --- # query-helper This skill helps you query the brain. The first prose line becomes the description when no `description:` frontmatter is present.
testing
# broken This SKILL.md has no YAML frontmatter fence. It must still be listed (with the directory name as its name and empty triggers), never throw.
documentation
Read, enrich, and write brain pages with source attribution.
testing
Migrate a brain from gbrain-base (or any pack) to gbrain-base-v2's 14-canonical-type taxonomy via gbrain onboard --check + the unify-types Minion handler. Collapses 94 noisy types to 15 canonical with subtypes, alias rows, and link rows. Triggers when an agent notices pack_upgrade_available, type_proliferation, or asks "what is the canonical taxonomy / how do I clean up my page types".