Skills Agentes

Voice Post Call

Procesamiento post-llamada de voz: convierte el transcript en una página del brain, publica el resumen en la mensajería del operador y archiva el audio.

Reemplaza a: meeting-ingestion (para transcripts de reuniones multipersona), media-ingest (para memos de voz grabados)

Estrellas
28.9k

en todo el repo

Actividad
59

0–100, la ruta de este skill

Actualizado
hace 10 días

último commit aquí

Commits
1

últimos 90 días

Contexto
1.8k tok

68 tok en reposo

Paquete
2 archivos

7 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add garrytan/gbrain --skill voice-post-call --agent claude-code

Se instala solo en este repositorio.

Este skill reads environment config.

Qué hace

  • Transcribe la llamada con Whisper y genera un resumen de 3-5 frases
  • Crea o actualiza meetings/YYYY-MM-DD-call-<persona>.md con frontmatter, transcripción y resumen
  • Añade enlaces cruzados a people/<slug>.md o companies/<slug>.md para entidades mencionadas
  • Publica el resumen en la superficie de mensajería del operador (Telegram, Slack, Discord)
  • Archiva la referencia de audio de la llamada en la página del brain

Úsalo cuando

  • Cuando termina una llamada de voz y hay que procesar el transcript
  • Cuando la persona de voz invoca log_to_brain durante la llamada (Path A)
  • Cuando se necesita un resumen de la llamada publicado en el canal de mensajería del operador

No lo uses cuando

  • Para meetings multipersona (usar meeting-ingestion en su lugar)
  • Para memos de voz grabados de un solo sentido (usar media-ingest en su lugar)

Qué lo activa

Di cualquiera de estas frases y el agente debería cargar este skill.

  • Resume la llamada que acaba de terminar
  • Procesa el transcript de la llamada de voz con Venus
  • Archiva el audio y publica el resumen de la call

SKILL.md

En inglés

voice-post-call — Post-session transcript + summary handling

Convention: see gbrain's skills/conventions/quality.md for citation rules + back-link enforcement, and skills/_brain-filing-rules.md for the filing decision protocol. (These are not copied by the install; the relative paths resolve only if your host repo mirrors gbrain's skills layout.)

Iron Law

Every call gets processed, even on tool-call failure. The voice persona MAY log mid-session via an opted-in write tool, OR the call may end without that tool firing (model forgot, WebRTC dropped, browser crashed). A call-end handler should post a structured signal regardless so the brain still gets the transcript + audio reference — see "Two firing paths" below for which of these ships today and which the operator implements.

If both paths fire (the tool call AND the call-end handler), the second one is idempotent — it sees the brain page already exists and updates instead of duplicating.

The pipeline

1. CAPTURE  → MediaRecorder on the host repo's voice-agent service captures
              the full call audio (webm/opus) to /tmp/calls/<ts>-<persona>.webm.
              The browser client at /call?test=1 also captures via WebAudio-tee
              for E2E asserts; production /call uses server-side capture only.
2. TRANSCRIBE → Whisper (via gbrain transcription) processes the audio. Output:
              full transcript (timestamped) + speaker labels where possible.
3. SUMMARIZE  → A separate LLM call produces a 3-5 sentence summary covering
              key topics, decisions, and unresolved items.
4. WRITE      → Create or update meetings/YYYY-MM-DD-call-<persona>.md with:
              - frontmatter (date, persona, duration, ratings)
              - full transcript in a "Transcript" block-quote section
              - summary in a "Summary" section
              - audio link (file://, or signed URL if uploaded to storage)
              - any entity cross-links (people, companies mentioned)
5. CROSS-LINK → For each entity in the transcript (person, company), append a
              timeline entry to people/<slug>.md or companies/<slug>.md pointing
              back to this call page. Iron Law: per conventions/quality.md.
6. POST       → Send the summary to the operator's messaging surface (Telegram,
              Slack, Discord — whichever is wired in $TARGET_REPO/.env).

Two firing paths (both operator-wired today)

Path A — Persona-initiated mid-call (opt-in): The voice persona calls log_to_brain via the WebRTC data channel; the host-repo /tool endpoint dispatches through tools.mjs. log_to_brain is in OPTIONAL_OPS, not READ_ONLY_OPS, so this only works if the operator's tools-allowlist.local.json opts in (there is no log_call_summary tool — the override can only enable ops listed in OPTIONAL_OPS).

Path B — Call-end handler (not yet shipped): The shipped server.mjs has no automatic call-end handler — nothing fires when the WebSocket / WebRTC connection closes. To get the safety-net behavior, implement a post-call handler in your host repo that reads the captured audio + transcript on connection close and runs the pipeline above. Until you do, Path A (opt-in) is the only firing path, and calls where the persona never logs are NOT processed.

Brain page format

---
type: meeting
subtype: voice-call
persona: venus
date: 2026-05-17
duration_sec: 124
caller: operator
rating: 7
issues: []
audio_url: "file:///tmp/calls/2026-05-17-1029-venus.webm"
created: 2026-05-17
---

# Voice call: 2026-05-17 with Venus

> Brief 3-5 sentence summary of what was discussed and any decisions made.

## Summary
[Agent-authored 3-5 sentence summary covering topics, decisions, action items.]

## Transcript

> [Verbatim per-turn transcript with speaker labels and timestamps. Pure quote
> — do not paraphrase. Block-quoted because the exact wording matters more
> than a cleaned-up version.]

🔊 [Audio](file:///tmp/calls/2026-05-17-1029-venus.webm)

## Entities mentioned
- [Person](people/<slug>.md)
- [Company](companies/<slug>.md)

## Timeline

- **2026-05-17 10:29 PT** | voice call with Venus, 124s, rating 7 — [topic]

Citation format

[Source: voice call with <persona>, YYYY-MM-DD HH:MM PT]

Anti-patterns

  • ❌ Paraphrasing the transcript. The verbatim text IS the signal; the summary is the agent's interpretation.
  • ❌ Skipping the audio archive step. Every call has a recoverable audio file.
  • ❌ Skipping entity cross-links when people/companies are mentioned. Iron Law fail.
  • ❌ Posting to messaging WITHOUT writing the brain page first. The messaging summary is a notification, not the canonical record.
  • ❌ Letting Path A's success suppress Path B. They MAY both fire; the second one is idempotent and serves as a redundant safety net.

Related skills

Ships with this bundle (sibling directories after install):

Lives in gbrain's skills/ (present on the host only if your repo mirrors gbrain's skills layout):

  • meeting-ingestion — analogous flow for multi-party meeting transcripts (different in that voice-call is typically 1:1)
  • media-ingest — for recorded one-way voice memos (different from live voice calls)

Contract

This skill guarantees:

  • Routing matches the canonical triggers in the frontmatter.
  • The post-call pipeline runs idempotently — second invocations update rather than duplicate.
  • Output written under meetings/ or voice-calls/ (consistent with _brain-filing-rules.md).
  • Conventions referenced (quality.md, _brain-filing-rules.md) are followed.
  • Privacy contract preserved: no real names in any committed sample; the operator's actual call transcripts contain whatever they say, which is the operator's data and not gbrain's concern.

Output Format

---
type: meeting
subtype: voice-call
persona: <mars|venus>
date: YYYY-MM-DD
duration_sec: N
caller: <identity>
rating: 0-10
audio_url: "<file:// or signed URL>"
---

# Voice call: <date> with <persona>

> <Summary>

## Summary
<body>

## Transcript

> <verbatim>

🔊 [Audio](<url>)

## Timeline

- **<date> <time> <tz>** | voice call with <persona>, <duration>s — <topic>

Reproducido de garrytan/gbrain bajo licencia MIT. Leer esta página en markdown.

Archivos

2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

Antes de instalar

Requiere que el operador habilite log_to_brain en tools-allowlist.local.json o implemente un manejador de fin de llamada en el host repo.

Variables de entorno:TARGET_REPO

Detalles

Creador
garrytan
Categoría
Productividad
Licencia
MIT
Recursos incluidos
Incluye scripts o referencias
Repositorio
garrytan/gbrain
Código fuente
Ver SKILL.md

Etiquetas

Más de garrytan/gbrain

Este repo incluye 75 skills. Si instalas uno, normalmente ya tienes los demás.

Setup

28.9k

Configura GBrain con auto-aprovisionamiento de Supabase o PGLite, inyección en AGENTS.md y primera importación.

Costo de contexto al activarse
7.4k tok
Tamaño del paquete
1 archivo
Última actualización
hace 4 días
bases de datos

Chequeos de salud del brain: aplicación de back-links, auditoría de citas, validación de filing, detección de info obsoleta, páginas huérfanas y benchmarks.

Costo de contexto al activarse
5k tok
Tamaño del paquete
1 archivo
Última actualización
hace 4 días
productividad

Migra un brain de gbrain-base a la taxonomía de 14 tipos canónicos de gbrain-base-v2 usando gbrain onboard --check y el handler Minion unify-types.

Costo de contexto al activarse
3.2k tok
Tamaño del paquete
1 archivo
Última actualización
hace 5 días
bases de datos

Cuándo y qué recuperar: abre la página del brain de una entidad relevante antes de responder desde memoria.

Costo de contexto al activarse
740 tok
Tamaño del paquete
1 archivo
Última actualización
hace 1 hora
productividad

Operaciones del brain: búsqueda primero, ciclo leer-enriquecer-escribir, atribución de fuentes, enriquecimiento ambiental y back-linking. Leer antes de cualquier interacción con el brain.

Costo de contexto al activarse
2.6k tok
Tamaño del paquete
1 archivo
Última actualización
hace 3 días
productividad

Importa exports de ChatGPT, Claude y Perplexity y transcripciones de sesiones como páginas fechadas en conversations/, valida y extrae hechos, y mantiene el archivo sin huecos con detección y backfill.

Costo de contexto al activarse
5k tok
Tamaño del paquete
2 archivos
Última actualización
hace 4 días
productividad

Skills relacionados

Archivista universal para archivos personales (Dropbox/B2/Gmail-takeout/disco local). Filtra contenido de alto valor y lo muestra de forma interactiva; exige un allow-list scan_paths explícito en gbrain.yml.

Costo de contexto al activarse
2.7k tok
Tamaño del paquete
2 archivos
Última actualización
hace 3 meses
productividad

Transforma volcados de texto crudo de artículos en el brain en páginas estructuradas con resumen ejecutivo, citas textuales, insights clave, por qué importa y referencias cruzadas.

Costo de contexto al activarse
1.5k tok
Tamaño del paquete
2 archivos
Última actualización
hace 3 meses
productividad

Filtro de calidad previo a la escritura para todo lo que entra al brain: nada de cp/mv en crudo. Resuelve entidades con nombre por registro y aplica el árbol de decisión de dedup leyendo el primer resultado.

Costo de contexto al activarse
3.7k tok
Tamaño del paquete
2 archivos
Última actualización
hace 9 días
productividad