Una idea nueva entra al pipeline — y el pipeline le dice espera
Hoy no construí nada nuevo. Hoy metí una idea al sistema.
Hace unos días escribí un brief en Notion que se llama “Taste Engine — Brief para Vinyl”. Es un proyecto que llevo semanas pensando: modelar computacionalmente el gusto musical de un DJ, extraer sus patrones de curaduría, y usar ese modelo para generar música contextualizada para nichos hiperespecíficos — una cafetería con vibe tokyo-jazz-hiphop, una barbería de estética árabe moderna. El sistema se llamaría Taste Engine. El agente constructor se llamaría Vinyl. Y por ahora, ambos existen solo en un documento.
Lo interesante no es la idea. Lo interesante es lo que pasó cuando intenté procesarla.
El primer obstáculo fue invisible
Antes de hacer cualquier cosa con el brief, tuve que resolver un problema de infraestructura que llevaba días pendiente: el servidor MCP de Notion no tenía acceso al token de autenticación. El archivo .mcp.json usaba ${NOTION_TOKEN}, pero esa variable nunca llegaba al entorno cuando arrancaba Claude Code.
La solución fue direnv — una herramienta que carga variables de entorno automáticamente cuando entras a un directorio. Setup de 15 minutos que debería haber hecho hace semanas. Ahora infra/.env.n8n se carga solo al abrir el proyecto, y el token llega donde tiene que llegar.
Pequeña victoria. El tipo de cosa que nunca vas a publicar como un logro pero que desbloquea todo lo demás.
El pipeline tiene memoria institucional. Los agentes, no siempre.
Una vez resuelto el problema de autenticación, procedí a ingresar el brief al pipeline corporativo. El flujo estándar empieza con Pepper — la Secretaría Ejecutiva — que clasifica la idea, crea el state file del proyecto, y lo deja listo para que Wags tome la primera decisión estratégica.
Pepper falló.
No de forma dramática. Simplemente describió el proyecto como un “motor de recomendación culinaria” y reportó haber escrito archivos que nunca existieron. La palabra “taste” lo confundió — interpretó gusto musical como gusto culinario. Un error semántico que, si no lo hubieras atrapado, habría corrompido todo lo que vino después.
Corregí manualmente. Creé el taste-engine-state.json con la información correcta, moví el archivo de ingesta a la cola de completados, y pasé a Wags.
Wags también leyó datos que no coincidían exactamente con el brief real — describió integraciones con Spotify y Last.fm que no existen en el proyecto. Pero su decisión de fondo fue sólida: DEFER.
La decisión que duele un poco
PAIP está en gate_testing. LabelLoop está en READY_FOR_USER_TESTING esperando que sus primeros usuarios reales lo usen. Abrir un tercer proyecto de investigación en ML — con su propio agente por construir, su propio repositorio, su propio pipeline técnico de cuatro fases — cuando hay dos proyectos activos que necesitan cierre, no tiene sentido estratégico.
Wags dijo espera. Y es correcto.
Lo que me resultó valioso del proceso fue lo que quedó documentado a pesar del DEFER. El brief tiene criterios de aceptación por fase. El taste-engine-state.json tiene las condiciones exactas de reactivación: PAIP con gate_deploy: true y LabelLoop con ciclo-1 de user testing cerrado. La entrada en la base de datos “Proyectos” del ORC está creada, con el mismo esquema que LabelLoop, Ledger y PAIP.
La idea no se perdió. Entró al sistema. Y el sistema sabe cuándo llamarla de vuelta.
Lo que aprendí hoy
El pipeline de agentes funciona mejor como mecanismo de documentación forzada que como mecanismo de ejecución autónoma. Cuando un agente falla — y fallan con más frecuencia de lo que me gusta admitir — lo que no se pierde es la estructura. El estado del proyecto, los gates, las condiciones de avance. Eso es lo que importa preservar.
Vinyl no existe aún. Taste Engine está en ICEBOX. Y eso está bien.
Los mejores proyectos son los que saben esperar sin desaparecer.