{
  "status": "radio_takeover_aftercare_card_manual_review_only_closed_until_human_yes",
  "canonical_namespace": "Sonic-Forage",
  "canonical_repo": "Sonic-Forage/afterparty-forge-explainer-site",
  "canonical_pages": "https://sonic-forage.github.io/afterparty-forge-explainer-site/",
  "review_only": true,
  "manual_review_required": true,
  "manual_aftercare_required": true,
  "manual_show_approval_required": true,
  "requires_human_approval": true,
  "auto_post_enabled": false,
  "auto_upload_enabled": false,
  "auto_stream_enabled": false,
  "auto_record_enabled": false,
  "auto_payment_enabled": false,
  "auto_outreach_enabled": false,
  "auto_gpu_enabled": false,
  "auto_paid_api_enabled": false,
  "auto_training_enabled": false,
  "auto_cron_mutation_enabled": false,
  "provider_credential_check": false,
  "voice_to_shell": false,
  "secret_exposure": false,
  "human_approval_question": "Do you approve using this Sonic-Forage radio takeover aftercare card to choose zero or one local/manual next step after a human review?",
  "aftercare_checks": [
    {
      "step": "Reopen the listener handoff checklist and confirm the stream gates remain closed.",
      "proof_path": "docs/radio/RADIO_TAKEOVER_LISTENER_HANDOFF_CHECKLIST.md",
      "expected_signal": "auto_stream_enabled=false"
    },
    {
      "step": "Reopen the takeover script and confirm it is still review-only.",
      "proof_path": "docs/radio/TAKEOVER_SHOW_SCRIPT_DRAFT.md",
      "expected_signal": "radio_takeover_show_script_draft_review_only_closed_until_human_yes"
    },
    {
      "step": "Recheck the parseable listener handoff manifest.",
      "proof_path": "docs/data/radio-takeover-listener-handoff-checklist.json",
      "expected_signal": "manual_listener_handoff_required=true"
    },
    {
      "step": "Run the aggregate verifier before any report copy.",
      "proof_path": "scripts/verify_site.py",
      "expected_signal": "VERIFY OK afterparty explainer site"
    },
    {
      "step": "Open the proof hub card and confirm the aftercare link is visible.",
      "proof_path": "docs/index.html",
      "expected_signal": "Radio Takeover Aftercare Card"
    }
  ],
  "zero_or_one_next_routes": [
    {
      "id": "keep_radio_lane_closed_no_action",
      "allowed_next_step": "Record no new radio action because no human approval changed.",
      "proof_path": "docs/data/radio-takeover-listener-handoff-checklist.json",
      "closed_gate": "public_posting=false"
    },
    {
      "id": "request_human_show_review",
      "allowed_next_step": "Ask an awake human to review the script and handoff before any rehearsal.",
      "proof_path": "docs/radio/RADIO_TAKEOVER_LISTENER_HANDOFF_CHECKLIST.md",
      "closed_gate": "provider_credential_check=false"
    },
    {
      "id": "revise_takeover_script_locally",
      "allowed_next_step": "Make a local docs-only wording or proof-path revision, then rerun the verifier.",
      "proof_path": "docs/radio/TAKEOVER_SHOW_SCRIPT_DRAFT.md",
      "closed_gate": "auto_upload_enabled=false"
    },
    {
      "id": "prepare_one_manual_rehearsal_after_yes",
      "allowed_next_step": "Use the existing rehearsal checklist only after a human explicitly approves a local rehearsal.",
      "proof_path": "docs/streaming/STREAM_REHEARSAL_CHECKLIST.md",
      "closed_gate": "auto_stream_enabled=false"
    }
  ],
  "safe_wording": [
    "This radio lane is a review-only proof artifact.",
    "Sonic-Forage is the canonical namespace for the proof hub and repo.",
    "The aftercare card chooses zero or one local/manual next route.",
    "No public stream, upload, provider credential check, payment artifact, outreach, GPU/training, voice-to-shell, secret exposure, or cron mutation is authorized here.",
    "Verifier output and repo-local proof paths should be rechecked before any report."
  ],
  "do_not_say": [
    "The radio show aired.",
    "Listeners joined live.",
    "A stream provider was configured.",
    "Credentials were checked.",
    "Payments or sponsors are active.",
    "A GPU or paid API generated the show.",
    "The schedule was changed by automation.",
    "A public post or upload happened automatically."
  ],
  "blocked_without_approval": [
    "Start a livestream or Space.",
    "Upload audio or video to YouTube, X, Kick, Twitch, or any public platform.",
    "Check or print provider credentials.",
    "Post, schedule, reply, DM, or run paid promotion.",
    "Create payment links, invoices, wallets, or checkout pages.",
    "Start GPU, paid API, model download, or training jobs.",
    "Record microphone input or private media.",
    "Enable voice-to-shell or shell control from chat.",
    "Expose secrets, .env values, tokens, or private dataset contents.",
    "Create, edit, or delete cron jobs."
  ],
  "proof_paths": [
    "docs/index.html",
    "docs/data/site-manifest.json",
    "docs/radio/TAKEOVER_SHOW_SCRIPT_DRAFT.md",
    "docs/data/radio-takeover-show-script.json",
    "docs/radio/RADIO_TAKEOVER_LISTENER_HANDOFF_CHECKLIST.md",
    "docs/data/radio-takeover-listener-handoff-checklist.json",
    "docs/streaming/STREAM_REHEARSAL_CHECKLIST.md",
    "scripts/verify_site.py"
  ],
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "git diff --check",
    "git status --short --branch"
  ],
  "closed_gates": {
    "public_posting": false,
    "publishes_stream": false,
    "youtube_upload": false,
    "x_posting": false,
    "auto_stream_enabled": false,
    "auto_upload_enabled": false,
    "auto_record_enabled": false,
    "auto_payment_enabled": false,
    "auto_outreach_enabled": false,
    "provider_credential_check": false,
    "starts_gpu": false,
    "starts_paid_api": false,
    "downloads_models": false,
    "starts_training": false,
    "voice_to_shell": false,
    "secret_exposure": false,
    "mutates_cron": false
  }
}
