All layers. No simplified picture. Two paths, one bottleneck, zero free decisions by the model.
Built once. Read by all. No downstream module re-classifies the request from raw text. What the frame says is authoritative — for Orchestrator, Thinking, Task Loop, and Output simultaneously.
live_claim ≠ meaning ≠ operationWhat the user says, what it means, and what the system is allowed to do — three separate layers. The contract is set once before any tool is considered. Thinking, Replan, and Observer all read the same immutable contract. No module may reinterpret it.
done = required_evidence ⊆ observed_evidenceDone does not mean "tool returned success." Done means the required evidence types were actually collected. No LLM, no guessing — deterministically measurable.
tool_name → Task Loop executor → MCP clientThe tool name chosen upstream carries straight through the Task Loop executor to a generic MCP client / catalog dispatch — no per-domain branching. Zero LLM, no model involved. A CRON/SKILL/generic domain-router config exists but has no wired consumer in the executed path yet.