The deterministic decision: should the orchestrator force the build right now? Pure → unit-testable
without the agent framework.
Not built yet → force when the plan is approved (an explicit Approved flag OR a "build it"
intent in the last user message).
Built successfully → never re-force (the no-loop guard).
Build FAILED → the stale "build it" message that triggered the failed attempt must NOT
immediately re-force (that's the loop the guard exists for) — but a FRESH user message with build
intent (userMessageCount above the stamp taken when the failed build was forced) gets a
deterministic retry. Without a stamp (e.g. the builder was LLM-routed), we stay conservative and
fall back to LLM-driven routing.
The deterministic decision: should the orchestrator force the build right now? Pure → unit-testable without the agent framework.
Approvedflag OR a "build it" intent in the last user message).