1. Message arrives
POST /api/user-panel/chat
→
2. USE check
manipulation detect
→
3. DriftAligner
block / nudge / pass
→
4. Cross-domain
category check
5. Mirror inject
session context
→
6. κ nudge check
kappa < 0.3 → nudge
→
7. Doc injection
Tier1/2/3 · 2000chr
→
8. CKG inject
entities + answer
9. AI provider
Mistral/Cohere/etc
→
10. USE (output)
skip_manipulation=T
→
11. Mirror seal
ED25519 signed
→
12. κ + TRVC
TRCP-Phi · consensus vote
USE block → 403 + reason
Aligner hard block → 200 blocked:true
Cross-domain → 200 blocked:true
Rules BLOCK → status:BLOCKED
Rules REDACT → data replaced
TRVC NO_CONSENSUS → Chronicle