Loops y bubbles
Bubbles
Sección titulada «Bubbles»Una bubble es un agente con un rol. Cada vez que el loop llega a ella, la bubble hace una pasada: lee lo que le pasó la bubble anterior, trabaja (lee archivos, escribe código, ejecuta comandos, según lo permita su rol) y termina con un veredicto.
Los roles:
| Rol | Qué hace | Puede escribir archivos |
|---|---|---|
| Arquitecto | Planifica el trabajo y su estructura | Solo documentos |
| Planificador | Divide el trabajo en tarjetas | No |
| Diseño | Escribe DESIGN.md y le da al programador una dirección visual |
Solo documentos |
| Programador | Escribe el código | Sí |
| Revisor | Lee el trabajo y hace la revisión visual de las apps con interfaz | No |
| Pruebas | Escribe y ejecuta pruebas | Sí |
| Reparador | Arregla lo que encontró una revisión o una prueba | Sí |
| Documentador | Escribe documentación | Solo documentos |
| Investigador | Busca información en la web | No |
| Seguridad | Revisa el trabajo en busca de vulnerabilidades | No |
| Creativo, Viabilidad | Proponen ideas y las juzgan, para tableros que generan su propio trabajo | No |
| Subloop | No ejecuta ningún agente. Abre un Sub-loop y desvía hacia él (ver más abajo) | No |
| Wait | No ejecuta ningún agente. Retiene un loop hasta que pase algo, como que otro loop termine o llegue una tarjeta | No |
| Propio | Una bubble a medida: sus entradas, sus salidas, su propósito y lo que se le permite hacer | Según se configure |
Veredictos
Sección titulada «Veredictos»Cada pasada termina con uno de cuatro resultados:
- PASS y PARTIAL son el juicio del propio agente de que el trabajo está bien o parcialmente bien.
- FAIL es el juicio del agente de que no lo está. Un FAIL puede desviarse a un reparador.
- ERROR significa que el agente en realidad nunca se ejecutó: el proveedor estaba caído, el modelo no pudo responder, falta un ajuste. Un ERROR por una caída o por un ajuste que falta nunca se desvía a un reparador. Una pasada que se queda sin pasos sí.
Al soltar una bubble sobre otra, forman un loop. Para añadir más, se sueltan sobre el ring. El orden alrededor del ring es el orden de las pasadas, y las conexiones se dibujan solas a partir de ese orden.
Un Sub-loop cuelga de una bubble Subloop en su loop padre. Cuando se cumple la condición de la bubble, el loop padre espera mientras el Sub-loop se ejecuta y después continúa donde lo dejó. Por defecto, eso ocurre cuando falla la bubble anterior: una revisión fallida va a un Reparador, y el loop retoma en la bubble Subloop.
El campo Desviar cuando de la bubble Subloop elige la condición. Cada una se muestra con su código, con esta línea debajo:
| Desviar cuando | Qué comprueba |
|---|---|
ON_FAIL (por defecto) |
El paso informó un fallo |
VULNERABILITY_FOUND |
El paso informó un fallo, la misma comprobación que ON_FAIL, con nombre para una revisión de seguridad |
ON_PASS |
El paso pasó |
TASKS_EMPTY |
No queda nada en la cola |
El paso es la propia bubble Subloop, que no ejecuta ningún agente: informa un fallo mientras algo anterior a ella en el loop siga informando uno, y pasa en cuanto se haya respondido a cada fallo.
Con qué frecuencia elige entre Cada vez que se cumpla la condición y Una vez y después seguir en el loop principal.
Carpetas
Sección titulada «Carpetas»Cada loop que escribe código es dueño de una carpeta dentro del proyecto, y dos loops no pueden compartir una. Las bubbles de un loop pueden leer todo el proyecto. Las herramientas de archivos siempre limitan un loop a su carpeta. Sus comandos quedan limitados a ella por el sistema operativo solo con Aislar los comandos del agente activado en Ajustes. Un loop sin bubble que escriba no necesita carpeta. Un Sub-loop escribe en la carpeta de su loop principal.
Ejecución
Sección titulada «Ejecución»Pulsar Play en el tablero para ejecutar todos los loops, o en un loop para ejecutar solo ese. Varios loops se ejecutan a la vez, cada uno en su propio carril. Los loops comparten el trabajo a través del Task Book y de los archivos en disco, no a través de la conversación de los demás.
- Pausa deja terminar la pasada en curso; después el botón dice Parar, que detiene al instante y descarta esa pasada.
- Play después de una pausa continúa donde se quedó el loop.
- Un loop nunca toma una tarjeta Draft; solo empieza con las Approved. Draft es donde se revisa el trabajo antes de que ningún loop empiece con él.
Topes y detenciones
Sección titulada «Topes y detenciones»Cada loop tiene tres topes, definidos en sus ajustes:
| Tope | Por defecto | Detiene el loop cuando |
|---|---|---|
| Máx. ejecuciones del loop | 100 | ha hecho esa cantidad de pasadas |
| Máx. errores por paso | 8 | una bubble ha fallado esa cantidad de veces seguidas |
| Tope total de errores del loop | 15 | el loop ha fallado esa cantidad de veces en total |
Un loop también se detiene cuando una bubble sigue produciendo el mismo cambio, o cuando no hay nada que pueda hacer (por ejemplo, todas las tarjetas siguen en Draft). Un loop detenido dice por qué en un aviso y en su panel del canvas. Un loop con límite de uso alcanzado lo dice solo en su panel. Una vez corregida la causa, pulsar Play, que reinicia los contadores del loop y lo vuelve a ejecutar desde donde se detuvo.
Los límites de uso y las caídas del proveedor no gastan los topes de errores, salvo que el loop tenga Continuar tras error activado. Un loop con límite de uso alcanzado espera y se reanuda solo cuando el proveedor indica cuánto esperar; una caída genera un aviso y espera a que se pulse Play.