Loop abierto vs. grafo medido: por qué existe uscha
El agente ejecuta · el método gobierna · la evidencia decide · el humano aprueba.
Hay dos formas de poner un agente de IA a trabajar sobre código. La diferencia entre ellas es, literalmente, la razón de ser de uscha.
Los dos paradigmas
- investiga
- modifica código
- ejecuta tests
- revisa el resultado
- ¿resuelto?
- termina — o decide qué intentar, y vuelve al loop
- reproducir el bug
- ¿lo reproduce? — no → pedir info
- hallar causa · intentar fix
- ¿pasan los tests? — no → volver a corregir
- revisión
- ¿aprobado? — no → corregir
El pecado del loop abierto
Mirá el rombo de la izquierda: REVISA RESULTADO → ¿RESUELTO?
¿Quién contesta ese "¿resuelto?"? El agente, evaluándose a sí mismo. Ese es el agujero de todo el paradigma de loop abierto: el modelo decide cuándo terminó, narra que está listo, y vos le creés. No hay nada afuera del agente que lo contradiga.
uscha fue diseñado para cerrar exactamente ese agujero. Su doctrina:
Lo medido le gana a lo narrado. Los hechos bloquean; las conjeturas avisan.
uscha ES el grafo — pero con dos vueltas de tuerca
La columna derecha describe casi literalmente el dev-loop de uscha:
| Grafo genérico de fix | uscha |
|---|---|
| Reproducir bug / ¿lo reproduce? | regression-capture / caracterización: reproducir ANTES de tocar |
| Hallar causa → fix → tests | build con los tests como guardrail entre pasos |
| ¿Pasan? NO → volver a corregir | el loop de convergencia acotado (no infinito) |
| Revisión → ¿aprobado? | el QA loop (code-review / judgment-day) medido por el ledger |
| ¿Aprobado? SÍ → termina | la compuerta humana (merge gate) |
Y por encima de ese grafo de fix vive el macro-grafo de fases —
idea → discovery → spec → adr/constitution → build → qa loop → verify → producción —
un FSM derivado que el mirador dibuja como "el sendero".
Usar un grafo no es la novedad; muchos frameworks ya predican "definí el grafo de estados". Lo propio de uscha son dos cosas que el diagrama insinúa pero no dice:
-
Quién contesta las compuertas. En el loop abierto, "¿resuelto?" lo contesta
el agente. En uscha, cada compuerta —
¿pasan?,¿aprobado?— la contesta evidencia medida: el ledger, los gates, la cobertura, el golden. Se saca el juicio de la cabeza del modelo y se lo pone en un artefacto determinista y auditable. - El loop no desaparece: se enjaula. Sigue existiendo, pero adentro de un nodo del grafo (el de convergencia de QA), y es acotado: converge, o escala a un humano cuando se estanca (plateau / stop-signal). Nunca es el "decide qué intentar" que gira para siempre.
Una honestidad
uscha no es "dibujá cualquier grafo que quieras". Es un pipeline fijo de fases +
loops acotados adentro + compuertas medidas. Lo que VOS definís no es la topología,
son las guardas: SPEC.md, ACCEPTANCE.md,
CONSTITUTION.md, los invariantes. Esos son los límites que el agente no puede
cruzar; el grafo macro ya viene dado.