# Radio Takeover Signoff Checklist

Status: `radio_takeover_signoff_checklist_manual_review_only_closed_until_human_yes`

Gate summary: `manual_signoff_required=true`; `manual_aftercare_required=true`; `requires_human_approval=true`; `auto_stream_enabled=false`; `provider_credential_check=false`; `mutates_cron=false`.

This is a one-screen local/manual signoff checklist for the Sonic-Forage Intergalactic Radio takeover lane. It follows the takeover script, listener handoff checklist, and aftercare card. It does **not** start a stream, upload media, post on X, check provider credentials, collect payment, run GPU/paid API jobs, train models, expose secrets, use voice-to-shell, or mutate cron.

## Exact approval question

Do you approve using this Sonic-Forage radio takeover signoff checklist to choose zero or one local/manual next route after the aftercare card is rechecked?

## Five signoff checks

1. Reopen `docs/radio/RADIO_TAKEOVER_AFTERCARE_CARD.md` and confirm it still says `radio_takeover_aftercare_card_manual_review_only_closed_until_human_yes`.
2. Reopen `docs/radio/RADIO_TAKEOVER_LISTENER_HANDOFF_CHECKLIST.md` and confirm the listener handoff route remains local/manual.
3. Run `PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py` and confirm the aggregate verifier reports `VERIFY OK afterparty explainer site`.
4. Reopen `docs/streaming/STREAM_REHEARSAL_CHECKLIST.md` and confirm any rehearsal remains manual-run-only.
5. Confirm every closed gate remains closed: `public_posting=false`, `publishes_stream=false`, `records_audio=false`, `uploads_private_media=false`, `provider_credential_check=false`, `starts_gpu=false`, `starts_paid_api=false`, `starts_training=false`, `voice_to_shell=false`, `secret_exposure=false`, and `mutates_cron=false`.

## Zero-or-one next route

Choose exactly zero or one route after the checks pass:

- `signoff_keep_radio_lane_closed_no_action` — keep the radio lane closed when no human show approval is present.
- `signoff_request_human_show_review` — ask an awake human to review the show script, listener handoff, and aftercare card.
- `signoff_prepare_manual_rehearsal_after_yes` — after a human yes, use the existing stream rehearsal checklist as the local/manual route.
- `signoff_record_sanitized_blocker` — record a sanitized blocker if proof paths, source-map, Pages, or verifier checks fail.

## Safe wording

- Radio takeover materials are review-only local proof artifacts.
- The operator may choose zero or one next route after verifier and proof-path rechecks.
- Any public stream, upload, social post, or provider credential check still requires a separate human yes.
- Use Sonic-Forage canonical links and repo-local proof paths only.
- If a check fails, record a sanitized blocker and keep the lane closed.

## Do not say

- The radio show is live.
- Provider credentials were checked.
- A stream was started automatically.
- A social post was published.
- A payment artifact exists without approval.
- GPU or paid API work began.
- Voice-to-shell automation is armed.
- Cron changed itself.

## Blocked without approval

Public posting, social scheduling, livestream or Space creation, stream start/restart, recording, YouTube upload, private-media upload, provider credential check, payment links, invoices, buyer outreach, GPU or paid API jobs, model download/training, voice-to-shell control, secret exposure, and cron mutation.

## Verifier commands

```bash
PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py
python3 -m json.tool docs/data/radio-takeover-signoff-checklist.json
python3 -m py_compile scripts/verify_site.py
git diff --check
git status --short --branch
```

## Proof paths

- `docs/radio/RADIO_TAKEOVER_AFTERCARE_CARD.md`
- `docs/radio/RADIO_TAKEOVER_LISTENER_HANDOFF_CHECKLIST.md`
- `docs/radio/TAKEOVER_SHOW_SCRIPT_DRAFT.md`
- `docs/streaming/STREAM_REHEARSAL_CHECKLIST.md`
- `docs/data/radio-takeover-signoff-checklist.json`
- `docs/data/site-manifest.json`
- `scripts/verify_site.py`
