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
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.jsen 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-2para 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
cosRungenérico que despacha a la librería por nombre; sin llamadas nombradas agoogle.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;clasppublica 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.