PMO Agent × LPDI — 2026-04-13 · Para Roberto Aguirre
Frank pide algo → bot ejecuta mal → Frank se frustra
→ yo parcho el prompt → reinicio → bot ejecuta mal de otra forma
→ Frank se frustra más → yo parcho otra cosa → reinicio
→ bot crashea → reinicio → funciona 2h → crashea → reinicio...
SubprocessCLITransport se corrompen después de queries largas o cancelaciones. Esto causa crashes periódicos que requieren restart manual. El error es siempre el mismo:
RuntimeError: aclose(): asynchronous generator is already runningNo hay fix disponible sin upgrade del SDK de Anthropic. Solo puedo reiniciar.
Hoy (2026-04-13): el bot murió a las ~16:37 (respuesta vacía "0 chars"), Frank esperó 12+ minutos, reinicié, funcionó ~2h, murió otra vez a las ~18:44, Frank esperó otra hora, reinicié otra vez. Mismo error, mismo fix, mismo resultado temporal.
Los 7 parches que agregué en 2 días:
| # | Parche | ¿Funcionó? |
|---|---|---|
| 1 | "Roberto = Tech Lead" + silencio sobre costos | Sí parcialmente |
| 2 | "Consultar BM antes de responder sobre estado" | Sí verificado 2-3 veces |
| 3 | "Verificación con curl/TestSprite antes de reportar UI" | No verificado Frank no dio feedback después de la crisis |
| 4 | "Sensibilización al esfuerzo humano" | Sin evidencia no se activó antes del siguiente crash |
| 5 | "No afirmar guardado en BM sin haber escrito" | Sin evidencia la sesión terminó |
| 6 | Referencia a biblia-hub-central como fuente de verdad | Sin evidencia |
| 7 | Límites de LinkedIn (solo redacción) | N/A no se probó |
Solo 2 de 7 parches tienen evidencia real de funcionamiento. Los otros 5 nunca se probaron porque el bot crasheó antes, la sesión terminó, o Frank cambió de tema.
El viernes, Frank pidió cambiar un texto en el Hub Central. El resultado:
Frank (Slack) PMO Bot (Slack) Roberto + Claude Code
───────────── ─────────────── ─────────────────────
"Necesito cambiar el H1 Documenta en Linear
del estado 2 y el orden (LAP-99), guarda en BM,
de las cards" confirma a Frank con path
del doc y # de Linear.
Lee el LAP-99 de Linear
+ la biblia del Hub Central.
Ejecuta el cambio.
Build local → push → Vercel.
Verifica con curl + Playwright.
"Frank, LAP-99 está en
producción. Verificado:
[screenshot]. ¿Confirmas
o hay ajustes?"
"Perfecto, cerrado" Cierra LAP-99 en Linear
| Aspecto | Modelo actual (bot ejecuta) | Modelo propuesto (bot coordina) |
|---|---|---|
| Tiempo de Roberto | Igual (destraba cuando crashea) | Igual (ejecuta en su cadencia, misma dedicación) |
| Calidad de ejecución | Baja (errores, reversos, falsos ✅) | Alta (verificado con Playwright, 39/39 checks) |
| Frustración de Frank | Alta (20 msgs para 1 cambio, "me rindo") | Baja (escribe spec una vez, recibe resultado verificado) |
| Crashes del bot | Cada 2-4h (SDK bug, no fix disponible) | No importa (el bot no ejecuta código, solo coordina) |
| Latencia de entrega | Minutos (cuando funciona), horas (cuando crashea) | Horas/día siguiente (cadencia de Roberto), pero sin rework |
| Prompt del bot | 966 líneas, rendimientos decrecientes | ~300 líneas (solo reglas de PMO, sin reglas de ejecución de código) |
| Rework | Alto (Frank repite 10 veces) | Bajo (se ejecuta contra spec firmada) |
Si no quieres quitar completamente la ejecución de código del bot, hay una opción intermedia:
Esto preserva la velocidad para las cosas simples (donde el bot sí funciona) y escala las complejas (donde el bot falla consistentemente).
Generado por Claude Code · 2026-04-13 · Para Roberto Aguirre