uscha.dev
cómo funciona

Tres flujos, una regla: el humano juzga, el motor mide

uscha tiene un frente para sistemas nuevos y uno para los que ya existen. Los dos terminan en el mismo lugar — un veredicto humano que el motor puede chequear. Estos tres diagramas muestran el flujo greenfield, el brownfield, y el mecanismo de curación (kit 1.64–1.65) donde una única decisión humana es el único juicio del loop.

1 · greenfield

Discovery — vos traés la idea, el método propone la forma

La skill explora primero, después pregunta de a una — cada una con una respuesta recomendada. Vos confirmás o corregís; nunca authoreás la forma desde una hoja en blanco. El paquete se escribe al repo a medida que las decisiones cristalizan.

hasta que converge Idea + material de referencia opcional: docs, URLs, código existente Explora antes de preguntar lee refs y código primero Propone la forma una pregunta a la vez, cada una con respuesta recomendada DECISIÓN HUMANA Confirmar o corregir ARTEFACTOS · EN EL REPO SPEC · ADRs · ACCEPTANCE CONTEXT · DOMAIN-MODEL · RISKS → /uscha-devloop build + loop de QA medido
artefacto decisión humana paso de skill / motor
2 · brownfield

Reverse Discovery — extraer hechos, después poner en cuarentena las afirmaciones

El comportamiento del sistema que corre es la verdad. La skill extrae hechos (mapa, golden), después authorea candidatas en cuarentena — nunca specs. La regla vieja "nunca authorees un spec inferido" se renegoció en ADR-009: podés authorear candidatas, nunca podés promoverlas sin un veredicto.

re-chequea hasta 0 Sistema existente comportamiento observable = verdad Map — hechos SYSTEM-MAP · bordes · deps HUMANO APRUEBA · INV-GOLDEN-01 Characterize → golden .received → STOP → .approved CANDIDATAS · CUARENTENA discovery/*.md · evidence + confidence GATE MEDIDO · subcmd 34 curation-check exit 2 malformado · 1 sin juzgar · 0 ok VEREDICTO HUMANO preserve · fix · undefined una candidata a la vez BEHAVIOR-LEDGER.md + ADR append-only, verificado contra git Summary → el humano escribe el SPEC solo de candidatas YA JUZGADAS
artefacto gate medido decisión humana paso de skill
3 · lo nuevo · 1.64–1.65

Curación — un veredicto humano, todo lo demás medido

Este es el diferenciador. Una candidata se valida a máquina; una candidata sin veredicto bloquea el PR, nombrándose a sí misma (INV-CURATION-01). La única decisión humana se abre en tres buckets. Un fix declara su divergencia esperada, que el oráculo golden después chequea. roundtrip reporta trazabilidad por id — advisory, nunca un gate.

CANDIDATA · discovery/*.md evidence.type · refs · confidence MEDIDO valida frontmatter + refs refs resuelven · confinadas al repo · inference⇒low GATE · subcmd 34 curation-check sin veredicto → bloquea pr-ready, nombrando la candidata LA ÚNICA DECISIÓN HUMANA DEL LOOP VEREDICTO HUMANO preserve  ·  fix  ·  undefined preserve promover tal cual fix promover + divergencia declarada undefined excluida ORÁCULO · golden-diff golden.divergences.json declarada+diverge=ok · declarada+idéntica=ROJO roundtrip (subcmd 35) · advisory · trazable por id · exit 0 siempre
candidata / artefacto gate medido el veredicto humano advisory

Cada nodo de arriba mapea a un subcomando o invariante real de qa_ledger.py (kit 1.65.0). Lo que deliberadamente no está acá: matching semántico y generación de código — ambos fuera de alcance (ADR-011) hasta que se puedan medir.