Uscha es una metodología spec-driven y tool-agnóstica para desarrollo con agentes de código LLM. Desarrollo asistido por IA con los pies en la tierra: la IA ejecuta, el humano gobierna, la evidencia decide. Sin ceremonia donde no la gana, con rigor donde las stakes lo justifican (caminos críticos, migraciones).
| Gate | Qué lee | |
|---|---|---|
| golden-diff | byte-compare .received vs .approved; exit 0 CLEAN / 1 DIVERGE / 2 NOT-RUN (cero fixtures = NOT-RUN, nunca CLEAN) | BLOQUEA |
| pit-check | XML de PIT (mutation testing = ¿los tests asertan?) — tier programado/incremental, no inner-loop; si el report existe y falla, se persiste con log-gate | BLOQUEA |
| gate-check | estructura del diff (tests borrados/deshabilitados, thresholds bajados o borrados) | BLOQUEA |
| rebuild | snapshot ejecutado vs narrado; exit 1 salvo COVERS | BLOQUEA |
| spec-check · estructura | hechos del SPEC: falta out-of-scope, ACCEPTANCE ausente/vacío (exit 1) | BLOQUEA |
| simplicity-check | caps numéricos (+líneas/crecimiento neto/archivos/anidación/hunk mayor) = hecho | BLOQUEA |
| readiness | KPI 0-100 con caps duros (tests rojos ≤35, BLOCKER/CRITICAL ≤65) — reporta, siempre exit 0; no es un gate | REPORTA |
| simplicity · abstracciones | regex de "tipos nuevos" (falsos positivos con records/DTOs) | AVISA |
| spec-check · prosa | heurística sobre prosa del SPEC (términos vagos, EARS, naming de stack) — --strict para gatear | AVISA |
Exit 1 duro, cortan la cadena. Objetivos, baratos, sin opinión. El agente los corre inline en /uscha-devloop y persiste cada veredicto con log-gate; un fact gate rojo bloquea la convergencia (readiness es un KPI 0-100 que reporta, no un gate).
Reportan, no bloquean (salvo --strict). Un heurístico sobre lenguaje natural que bloquea genera falsos positivos → el dev lo desactiva → gate muerto.
# los gates de hechos corren INLINE en /uscha-devloop y se persisten con log-gate spec → código (agente) → /uscha-devloop corre los gates inline: simplicity · gate-check · pit · golden # exit 0/1, log-gate persiste el veredicto readiness # KPI 0-100: reporta con caps duros, no es exit 0/1 → converge → FRENA en el merge gate → el humano LEE el diff → ship # spec-check (prosa) y abstracciones corren como advisory: informan, no frenan
Lo que una regex no puede juzgar (¿cláusulas contradictorias? ¿está sobre-arquitecturado?) NO se finge determinístico: va al checker no-correlacionado (otra familia de agente, o al menos otro perfil — disciplina de proceso, no lo fuerza el código). Computacional adentro del archivo; inferencial cross-file.
npx --yes @andresmassello/uscha@latest install · luego npx … init en el repo (kit 1.50.0). · Gobierno: la IA ejecuta, la metodología gobierna, la evidencia decide, el humano aprueba.