Module · M4 · The control layer✅Knowledge checkCheck: the control layer5 questions · Pass at 60%1. Why does the reviewer return the lowercase strings “approve” / “reject” rather than a boolean?Strings are easier for a human to read in the logBecause a boolean arrives at the condition as `True` / `False`, capitalised — so a comparison against `true` fails silently on the approve branchThe product does not support boolean fields in JSONBecause the reviewer is not allowed to be certain2. Where does the ₹50,000 threshold live in the finished build?In the proposer's system prompt, so it knows the limitIn both the proposer's and the reviewer's prompts, for redundancyIn the reviewer's rules only — the proposer has never been told itIn the condition node, as the value it compares against3. Why is the correction loop built with a loop node instead of an edge from the reviewer back to the proposer?The loop node is fasterA canvas may not contain a cycle — the validator blocks it — and count mode gives you a cap and a break conditionAn edge backwards would re-run the triggerIt is a style preference; both work4. The audit node carried four defects through the entire build without anyone noticing. What made it invisible?It only runs on rejected proposals, which are rareIts errors were being swallowed by the node's error handlerIt sits behind the human gate, and no automated run had ever got past the gateIt was added last, after testing had finished5. The reviewer scored a proposal 5/5 with zero violations, while that proposal escalated the case to a colleague who does not exist. Why could it not catch that?It was running at too high a temperatureIts rules did not mention fabricated namesIt sees only the proposal, never the tool results behind it — so it cannot verify a factIt should have been a Core Agent rather than an LLM callCheck answers← Back to Building Production-Ready AI AgentsNext topic →