TASK_ID = RF_HANDOFF_CHANNEL_TEST_001 TASK_TITLE = Verify the bidirectional Git handoff channel without SDR SOURCE_BRANCH = video-development EXPECTED_HEAD = bc55d0516dc1ee36cefa1ff096e7d86f60645303 REQUIRES_APPROVAL = NO HARDWARE_ACCESS = NO RF_RX = NO RF_TX = NO ALLOW_COMMIT = NO ALLOW_PUSH = RX_RESULT_ONLY RISK_LEVEL = GREEN # Model-free handoff channel test Run this gate before RF001A_OTA_CAPTURE_003 and while the MAIN watcher is active: python -B tools/rf_handoff_smoke.py --hold-seconds 7 The script uses the real origin configured in the main RX checkout. It publishes a synthetic READY result to the existing origin/rx-node branch, waits seven seconds, then publishes a synthetic COMPLETE result. Both publications may change only: docs/handoff/results/RX_RESULT.json docs/handoff/results/RX_RESULT.md The MAIN watcher must observe both states and must not request RED approval. Its state file must record both channel_test_ready_digest and channel_test_complete_digest. The final remote state must be CAPTURE_COMPLETE, with rx_ready_for_tx false. A synthetic READY state must not remain active. The script and watcher do not access SDR hardware, do not run hackrf_transfer and do not authorize any RF transmission. Required report: TASK_ID = RF_HANDOFF_CHANNEL_TEST_001 READY PUBLISH = PASS / FAIL READY REMOTE HEAD = MAIN WATCHER RECEIVES READY = PASS / FAIL COMPLETE PUBLISH = PASS / FAIL COMPLETE REMOTE HEAD = MAIN WATCHER RECEIVES COMPLETE = PASS / FAIL FINAL REMOTE STATE = CAPTURE_COMPLETE / OTHER REAL RX = NOT_RUN RF TX = 0 If any field fails, do not start the hardware RX task. STOP.