{ }  flow.md #012 · Mi nuevo flujo  archivo
El Diario de AlpacaTech
// edition: 012 · sunday, 05 jul read: ~4 min

Mi nuevo flujo.

Los jueves en mi empresa hablamos de IA. Y el otro día mi CTO me la dejó botando.

Estábamos hablando de cómo montar tareas grandes con agentes. Y me soltó algo así como: «¿Y si en vez de un agente enorme haciéndolo todo, montas uno que reparta el trabajo en varios más pequeños y los coordine?».

Un orquestador con subagentes debajo. El agente de arriba solo dirige, y los demás hacen sus cosas.

Parece que es un patrón que escuchó en un podcast, y decía que para determinadas tareas funcionaba mejor. Él solo lo mencionó de pasada.

Pero a mí se me quedó en la cabeza toda la semana.

¿Por qué? Porque esto me permitía mejorar el flujo de trabajo que siempre te presumo en los vídeos. Sí, ese que es un prompt enorme.

Gracias a Forge, el IDE que yo mismo me monté, cada vez que empiezo con una tarea se genera una sesión de Claude que ejecuta todo el flujo que describe ese prompt.

El esqueleto lleva meses siendo el mismo. Se abre un worktree, se enriquece el ticket, se escribe un plan, se implementa y se revisa. Si la cosa toca varios repos, monto varios agentes en paralelo usando los team agents de Claude, uno por repo, y otro que coordina sin escribir nada.

La implementación iba sola. Pero para el enriquecimiento y para el plan siempre pedía aprobación humana. Dos gates: dos «oye, ¿esto te parece bien?» con un humano al otro lado que verifique.

El humano era yo. Y apenas le hacía caso.

Cuando el plan aparecía en pantalla, le daba a aprobar sin leerlo entero la mitad de las veces. Era teatro. Un gesto para sentir que seguía al mando de algo que ya no estaba mirando de verdad ni me preocupaba (porque el output era bastante bueno).

Así que esta semana los he quitado los dos.

Además, he añadido dos cosas nuevas que ya llevaba mucho escuchando.

el flujo
$ forge run ticket
/goal  definición de terminado innegociable
  ↳ si algo falla, no se declara hecho
/loop  el fallo vuelve a quien lo escribió
  ↳ se corrige y se revisa hasta quedar limpio
learn  cada lección se guarda
  ↳ el que escribe la lee antes de empezar
− 2 gates humanos  (eran teatro)

La primera es una meta (un /goal). Una definición de terminado que el agente no puede negociar. Un ticket solo está hecho cuando pasan todas las comprobaciones que dejé escritas y la revisión queda limpia. Si algo falla, no se declara terminado: vuelve a la fase que toque y lo intenta otra vez. Como ya no hay un humano en la puerta, esa meta es lo único que decide cuándo se acaba.

La segunda son los loops (/loop). Y esta cuesta muchos tokens. Antes la revisión era de un solo tiro: salían cosas y ahí se quedaban esperando a que alguien las cogiera. Ahora los fallos vuelven a los agentes que escribieron el código, se corrigen, se vuelve a revisar, y así hasta que queda limpio. Con un tope para que no consuma todos los límites.

Pero lo mejor es la tercera capa.

Un sistema para que el flujo aprenda de sus propias revisiones. La idea es simple: cada vez que el revisor encuentra el mismo tipo de problema, esa lección se guarda. Y la próxima vez, el que escribe el código la lee antes de empezar, y ya no comete el fallo.

Algo que el revisor detecta una vez se convierte en algo que el que escribe ya hace bien desde el principio. Con el tiempo revisas menos, porque hay menos que corregir. Yo decido qué lecciones se guardan, eso sí.

Cuando repartes el trabajo en subagentes, la tentación es pensar que cuantos más, mejor. Pues no.

Lo que descubrimos es que meter más subagentes no da más calidad. La calidad sale de la coordinación: de quién junta lo que han visto los demás y se queda con lo que importa.

Y hay cosas que directamente no se pueden trocear. Puedes repartir la revisión de un montón de detalles sueltos, pero juzgar si el cambio entero se sostiene, si la arquitectura tiene sentido, eso se queda en una sola cabeza. Un trozo no puede opinar sobre el todo.

Que es, más o menos, lo mismo que pasa cuando gestionas un equipo de personas. Metes a más gente en un proyecto y muchas veces solo consigues ir más lento. Todo se sostiene sobre quien coordina, y sobre aceptar que hay decisiones que no se reparten por mucho que quieras.

Sé que tendré que iterar y pulir mucho la parte de revisión. En la primera prueba, una tarea sencilla con dos repositorios, tardó más de 6 horas y me consumió el límite semanal (espero poder trabajar sin problemas hasta el jueves, que se renueva).

Pero de momento,
ha nacido el bicho.

Esta semana lo sigo iterando. Ya te iré contando cómo evoluciona. Hacía tiempo que algo no me hacía tanta ilusión: montar las piezas y ver cómo encajan me ha devuelto la curiosidad de cuando empecé.

En los vídeos casi nunca bajo a este nivel de detalle. Aquí sí. No espero que copies el flujo entero. Solo quería enseñarte en lo que ando metido, por si te pica el gusanillo de montar algo tuyo.

(Y si quieres el mega prompt, respóndeme a este correo y te lo paso.)

P.D. sigo sin usar Fable y vivo muy bien.

// appendix
$ weekly.log

Tres apuntes de la semana

+
funcionó
Dejarme ver.
Estaba apesadumbrado con mi papel en la empresa: soy quien más aporta, pero ni se me tiene en cuenta ni se cuenta del todo conmigo. Enseñé el flujo que había montado, me dejé ver, y por fin el CTO me puso un one-to-one para la semana que viene. Si haces algo que puede ayudar e impactar, que se vea.
~
aprendí
Que esto todavía me ilusiona.
El chispazo de montar el flujo me tuvo enganchado hasta que me obligué a apagar el ordenador a las nueve de la noche. Y no era nada vistoso ni funcional aún, solo algo para empezar a probar. Hacía tiempo que no sentía esas ganas de traer algo a la vida, y ojalá no se pierdan pasen los años que pasen.
me bloqueó
El loop engineering.
Monté un flujo de review con un code reviewer «ligero» delante de la orquestación con subagentes. De ligero nada: solo las etapas, dos pasadas en un repo y tres en otros, se fueron a más de dos horas y media. La tarea entera, más de seis. Me pasé el día desatascando el propio flujo que venía a ahorrarme trabajo.
$ picks

Te recomiendo

podcast
// me lo recomendó mi CTO

The AI Curve

spotify · podcast sobre IA

Lo estoy escuchando este finde. Nada del hype desmedido ni de la bullshit de siempre: reflexiones pausadas y tranquilas sobre la IA como lo que es, una herramienta, y cómo aprovecharla al máximo. Se agradece.

$ open spotify · The AI Curve
video
Si estudias esto, la IA te reemplazará pronto
// nuevo en el canal
title: "Si estudias esto, la IA te reemplazará pronto"
// de qué va
↳ una tier list de áreas de programación según lo tocadas que están por la IA
↳ spoiler: al tier S es imposible que la IA le haga daño en unos 10 años
$ inbox

De la comunidad

J
@JulianGarcia-q7b6r
▶ youtube · hace 3 días
«Últimamente con la IA muchas veces me siento bastante inútil, porque programar se siente como si la mayoría de cosas que hiciera se pudieran optimizar, resumir, etc. Eso me genera a veces el sentimiento de que no vale ni la pena escribir sintaxis y me siento un poco inútil sin la IA. Veo todos tus vídeos jeje, sigue subiéndolos.»
// reply tienes razón, pero ojo con la trampa: la IA siempre va a encontrar algo que optimizar. Si le pides que busque, busca; y siempre encuentra. Nosotros le pasamos una auditoría del proyecto y casi todo eran cosas demasiado ingenuas como para gastar ni un token en ellas. Decidimos no tocar nada. Sigue haciendo falta criterio y saber qué merece la pena de verdad. Eso no te lo quita ninguna herramienta.
// tu turno

¿Quieres el mega prompt?

Responde a este correo y te paso el prompt enorme con el que corre todo el flujo. Y si andas montando algo tuyo, cuéntamelo. Lo leo todo (poquito a poco).

$ reply --to=newsletter@alpacatech.dev 
↳ asunto: quiero el mega prompt
// firma
~/alpacatech $
$ subscribe

¿Te ha gustado? Cada domingo escribo una así.

Acabas de leer una edición de El Diario de AlpacaTech. Si quieres recibir la próxima en tu bandeja, apúntate.

// ~4 min de lectura · domingos a las 09:00