436abf39d5
gates / gates (push) Failing after 34s
CI went red on the two G-1 commits while the local pre-push hook was GREEN — which this workflow's own alarm mail says outranks whatever the push was for, because it is a finding about the gates themselves. It was. CAUSE, reproduced rather than guessed: scripts/wire_contract_gate.py compares what one component EMITS against what the other can RECEIVE, so it needs the SOURCE of the controller and the agent. The workflow already fetched the controller (for golden-currency) but not the agent, so the gate exited 2 INCONCLUSIVE. Reproduced locally by pointing the gate at a nonexistent agent path: same exit 2, same message. THE LESSON, and it is the reusable half: the pre-push hook runs on a workstation where every sibling is a real clone, so a gate that needs a sibling passes there and is inconclusive here. **The two automated homes are not interchangeable, and a NEW GATE MUST BE CHECKED IN BOTH.** Recorded in the step's own comment beside the fetch. Fixed by giving the gate what it needs. NOT by letting it skip when a sibling is absent — that is the fail-open shape, and it would leave the gate running in NEITHER home, which is the R-29 census failure this runner was built to end and which golden_currency_gate.py's docstring already warns about at length.