Three flows, one rule: the human judges, the engine measures
uscha has a front for new systems and a front for existing ones. Both end at the same place — a human verdict the engine can check. These three diagrams show the greenfield flow, the brownfield flow, and the curation mechanism (kit 1.64–1.65) where a single human decision is the only judgment in the loop.
Discovery — you bring the idea, the method proposes the shape
The skill explores first, then asks one question at a time — each with a recommended answer. You confirm or correct; you never author the shape from a blank page. The package is written to the repo as decisions crystallize.
Reverse Discovery — extract facts, then quarantine the claims
The running system's behavior is the truth. The skill extracts facts (map, golden), then authors candidates in quarantine — never specs. The old rule "never author an inferred spec" was renegotiated in ADR-009: you may author candidates, you may never promote them without a verdict.
Curation — one human verdict, everything else measured
This is the differentiator. A candidate is machine-validated; a candidate with no
verdict blocks the PR, naming itself (INV-CURATION-01). The single human decision
splits into three buckets. A fix declares its expected divergence, which the golden
oracle then checks. roundtrip reports traceability by id — advisory, never a gate.
Every node above maps to a real subcommand or invariant in qa_ledger.py (kit 1.65.0).
What is deliberately not here: semantic matching and code generation — both out of scope
(ADR-011) until they can be measured.