#302 STEP3 additive field gate — local preparation complete; capture HOLD Gate: .spt/preserved/302/step3-gate.py SHA256: 40f804cb50ac81c12d40b0d81709f6905eea585feb9cbd12432142798dde8172 Interface: python .spt/preserved/302/step3-gate.py --step2 /gate-receipt.json --out Run the unchanged STEP2 gate on an authorized future capture first. The STEP3 command consumes its retained receipt and normalized boundaries; it does not run an analyzer or collector. It verifies predecessor input/output hashes and the pinned STEP2 code. No existing output directory is overwritten. Added predicate: NET_GATEWAY_LOOKUP_BEGIN count, runtime == spt-broker-net, selected broker_pid AND run_id, entire retained log (including startup), must equal zero. Count each BEGIN once; no duration, execution mode, sample-window, or physical-worker filter. Open operations count. This runtime-label condition is ADDITIVE to the existing physical-worker synchronous-span condition, not a replacement. Receipt gateway_lookup_gate records broker_net_count AND total_count (all runtimes, same broker/run scope), plus operation BEGIN records with runtime, TID, sequence and source line. Missing selected epoch leaves counts unknown/NOT_EVALUATED, never a manufactured zero. Existing conditions remain in force via the unchanged STEP2 receipt: >=180000ms usable span; zero stale intervals >=1000ms; >=2 distinct steps on each of three subnets; no synchronous span >=250ms on START broker-worker TIDs; identity, sampling and coverage checks. STEP2 FAIL/INSUFFICIENT reasons are carried forward. Retained STEP2 field positive control: .spt/preserved/302/step3-gate-proof/retained-step2-control/gate-receipt.json SHA256 e4473b6ddf96c411c397852cc0f2d0db4f3e48c28d4c645a88c86134e4f0020d broker_net_count=13; total_count=13; exit1/FAIL. Prior six-span rejection remains, plus broker_runtime_gateway_lookups_nonzero:13. Only7 of the13 BEGINs fall inside the sample window; the count deliberately uses the whole retained log. Local proof: .spt/preserved/302/step3-gate-proof/verification.json 17 executed CLI cases: retained field control; ten inherited healthy/span/rotation/coverage/identity controls; four synthetic normalized-receipt count-filter probes; hash-tamper rejection; overwrite refusal. Filter probes: other runtime => broker0/total1 PASS; mixed other+broker fast/startup => broker1/total2 FAIL; other run/PID excluded; open broker BEGIN counted. Synthetic normalized-receipt probes are explicitly marked NOT field captures or fresh analyzer outputs. 317 predecessor files hash-checked unchanged: STEP2 capture/output, frozen analyzer v1/v2 trees, STEP2 gate source. Unchanged STEP2 gate SHA256: e99958e4ca61cfac931da4ff79539bf420ccaec4556b9543a327a09b6c0f3bb9 Unchanged frozen v2 analyzer SHA256: 6314743db493b01ee01e550bcbed5558ee7e0d86334d019ff65d03e29cfad339 No new capture, analyzer rerun, native build, or ENLYZEAM lifecycle action occurred. STEP2 field acceptance remains FAIL. STEP3 field capture requires explicit Doyle authorization.