Ir al contenido

proyecto · tier 1 · 2026

Vera — un agente Chief of Staff para líderes C-level

Un agente de reportería y second brain que corre dentro del Google Workspace de cada líder: Forms capturan los reportes diarios y semanales del equipo, Gemini los resume y consolida, y un wiki en Drive se construye solo desde cada reporte con búsqueda híbrida de embeddings + léxica. Un Cloudflare Worker lo expone a Claude y ChatGPT como servidor MCP de 13 tools. Librería de Apps Script, 421 tests.

Rol
Creador e ingeniero — Xertica
Periodo
jul 2026 — Presente
Ver el repositorio
github.com/JosephRobles23/cos-vera
13tools MCP para Claude y ChatGPT
421tests, Apps Script mockeado
30módulos de runtime en una librería compartida
1Sheet por líder, sin admin central

El problema

Un líder C-level necesita saber, cada día y cada semana, qué logró su equipo, qué lo bloquea, qué cambió y qué amerita su atención — sin perseguir a nadie, sin leer ocho formularios y sin consolidar nada a mano. También necesita llegar a cada reunión con el contexto de cada persona y proyecto ya a la mano.

En Xertica ese ciclo corría sobre personas: alguien enviaba los recordatorios, alguien leía las respuestas, alguien escribía el resumen. Cualquier herramienta que lo reemplazara tenía que correr dentro del Google Workspace del propio líder, con su cuenta y su cuota, sin servidor que operar y sin ticket a TI. Y tenía que acumular memoria, no solo reenviar correos.

Qué construí

Vera es un agente en Apps Script que cada líder posee como copia: su propio Sheet de settings y datos, sus propios Forms Daily y Weekly, su propio equipo. Todo corre como el líder — los correos salen de su cuenta — y nada corre como admin central. La lógica no se copia en cada Sheet: vive en una librería compartida de solo lectura, CoSLib, y el Sheet de cada líder lleva solo un stub delgado que la llama. Un push a la librería llega a todos los líderes; la key de Gemini queda en las Script Properties de la librería y nunca viaja con un Sheet copiado.

Dos disparadores mueven todo. onFormSubmit resume cada fila del reporte con Gemini Flash en el momento en que llega y la ingresa al brain. Un dispatcher cada cinco minutos decide qué toca: invitaciones a la hora configurada, el consolidado del día o de la semana con Gemini Pro, el scan de silencios de quien dejó de reportar, el backfill del histórico y los briefings de Deep Prep antes de cada reunión. Los prompts van en capas y son editables por líder — un archivo de voz, uno de contexto y un system prompt por tarea — con defaults incluidos.

El second brain es un wiki en Drive en markdown con frontmatter: páginas de persona y de proyecto que se construyen solas desde cada reporte y desde las notas de Gemini de las reuniones. La búsqueda es híbrida — vectores de gemini-embedding-2 a 768 dimensiones, int8, fusionados con resultados léxicos por reciprocal rank fusion — y reindexa solo cuando cambia el modelo de embeddings. Encima van un morning briefing, una vista determinista de seguimiento del equipo, el tablero de tareas del propio líder y un bot de Telegram de solo lectura.

La tercera superficie es Vera-MCP: un Cloudflare Worker sin estado que convierte el brain y las tareas de cada líder en 13 tools MCP para su Claude o ChatGPT personal. Es un proxy multi-tenant delgado y sin espejo de la data — OAuth 2.1 con pairing-code identifica al líder, un secreto por tenant verificado por challenge-response autentica al Worker ante la Web App de ese líder, y el id del Sheet nunca viaja en un request, así que el modelo nunca puede apuntar una tool a los datos de otra persona.

Arquitectura

  • Sheet + Forms del líder (stub container-bound) — pestañas de settings, Forms Daily y Weekly, onOpen, host del sidebar, triggers. Sin lógica de negocio.
  • Librería compartida CoSLib — 30 módulos *-runtime.js en un solo namespace de Apps Script: resúmenes, consolidación, invitaciones, forms, prompts, brain, deep prep, briefing, seguimiento, compartir, Telegram, MCP.
  • Dispatcher — un trigger de cinco minutos dueño de todo el timing: invitaciones, consolidación, silencios, backfill, Deep Prep.
  • Puente Gemini — Flash para resúmenes por fila, Pro para consolidados, Flash-Lite para extracción barata, gemini-embedding-2 para el índice.
  • Second brain (Drive) — wiki markdown con frontmatter, búsqueda híbrida RRF, ingesta de notas de Meet, un centro de curación para merges y purgas.
  • Puente de UI — sidebar y diálogos llaman a un único cosRun genérico que despacha a la librería por nombre; sin llamadas nombradas a google.script.run.
  • Web App — botones de follow-up en el correo con tokens de un solo uso; también es el punto de entrada que llama el proxy MCP.
  • Vera-MCP (Cloudflare Worker)createMcpHandler + proveedor OAuth, D1 para el mapa de tenants, KV para el estado OAuth; 13 tools sobre tareas, wiki, Calendar, Deep Prep, reportes y correo.
  • Tests — 421 con node --test, con un harness que mockea los globales de Apps Script; clasp publica la librería.

Evidencia

Vera es tooling interno en Xertica, así que no tiene URL pública — el repositorio es la evidencia. Documenta la arquitectura y los contratos, el runbook de onboarding por líder, la spec del MCP y su log de diseño, y trae 421 tests en verde contra un runtime de Apps Script mockeado.

Aristas