Context
During TOMMY Phase 2 verification, every node downstream of Phase 1: INSPECT ran 2-3 times — doubling Claude API costs and breaking the SplitInBatches loop. The root cause took 6 webhook iterations to isolate.The Pattern
When multiple n8n nodes fan out from a single source and converge back into a single Code node, the Code node runs once per arriving input — not once after all inputs arrive. Setting “Execute Once” doesn’t help because each input is a separate trigger event. Broken architecture:$('NodeName') references to pull data from each upstream node regardless of wiring order.