Every output has a reasoning chain. Every claim you can click on.
Not a new module — a layer that wraps every existing module (Orchestrator, CardioRisk, Discovery, Structural Intelligence) with an inspectable reasoning trail. Every response body already carries a trace_id. A single GET /trace/{trace_id} retrieves which router rule fired, which modules were invoked, which model versions ran, and a deterministically-templated human-readable summary — no LLM in the audit layer, same discipline as the router.
Storage: Phase 1 in-memory ring buffer (non-blocking per PRD Risk §1). Neo4j :QueryTrace durable persistence per PRD §3 is a Phase 2 swap-in behind the same GET /trace/{id} contract.
Fires a live Discovery-module prediction on the backend, extracts the returned trace_id, retrieves the full trace, and shows the reasoning chain — proving the wire-level tracing loop actually runs across modules.
Single source of truth per PRD Risk §2. Every module PRD references these exact values; no module redefines its own vocabulary.
Auto-refreshes every 15 seconds. Click any row to load the full trace above.