{
  "schema": "sonic_forage.proof_hub_next_decision_compass.v1",
  "generated_utc": "2026-05-06T09:13:39Z",
  "status": "proof_hub_next_decision_compass_manual_review_only_closed_until_human_yes",
  "canonical_namespace": "Sonic-Forage",
  "review_only": true,
  "manual_review_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_cron_mutation_enabled": false,
  "operator_rule": "Pick zero or one next route after reviewing the proof hub; automation may only prepare repo-local docs, manifests, static cards, and verifier coverage.",
  "human_approval_question": "Do you approve exactly one next Sonic-Forage action from this compass, with the specific route, proof path, channel, and rollback plan named before execution?",
  "decision_routes": [
    {
      "id": "keep_building_proof",
      "when_to_choose": "The proof hub needs another local card, checklist, or verifier catch-up before any launch action.",
      "safe_repo_next_step": "Add one local proof artifact, site card, or verifier catch-up in a future bounded cron tick.",
      "primary_proof_hook": "docs/reports/LAUNCH_PROOF_INDEX.md",
      "human_approval_needed_for": "Any public post, upload, outreach, payment, stream, GPU job, training run, dataset release, or cron change.",
      "closed_gate": "No public post, upload, outreach, payment, stream, GPU, training, dataset release, or cron mutation."
    },
    {
      "id": "private_demo_only",
      "when_to_choose": "A human wants a private walkthrough without sending assets or collecting money.",
      "safe_repo_next_step": "Use the private demo buyer-safe script as a local readout only.",
      "primary_proof_hook": "docs/revenue/PRIVATE_DEMO_BUYER_SAFE_SCRIPT.md",
      "human_approval_needed_for": "Contacting anyone, sending follow-up copy, creating invoices, creating payment links, or claiming revenue.",
      "closed_gate": "No outreach automation, no checkout links, no invoice creation, no revenue claim."
    },
    {
      "id": "manual_stream_rehearsal_after_key_rotation",
      "when_to_choose": "A human explicitly wants to rehearse the stream stack after rotating exposed stream keys.",
      "safe_repo_next_step": "Review the stream rehearsal checklist and keep it local/manual until an exact live approval exists.",
      "primary_proof_hook": "docs/streaming/STREAM_REHEARSAL_CHECKLIST.md",
      "human_approval_needed_for": "Starting or restarting RTMP, Twitch, Kick, OBS, Spaces, recording, or any live platform connection.",
      "closed_gate": "No RTMP/Twitch/Kick/OBS start, no stream-key use, no recording, no upload."
    },
    {
      "id": "avatar_local_rehearsal_after_approval",
      "when_to_choose": "A human wants to test the Jimsky avatar locally without public stream or voice-to-shell.",
      "safe_repo_next_step": "Review the avatar rehearsal checklist and first-phrase packet before any local rehearsal.",
      "primary_proof_hook": "docs/avatar/AVATAR_REHEARSAL_CHECKLIST.md",
      "human_approval_needed_for": "Starting microphone listeners, TTS output, OBS control, GPU, paid APIs, or voice-to-shell.",
      "closed_gate": "No microphone listener, no voice-to-shell, no OBS automation, no GPU, no paid API."
    },
    {
      "id": "public_copy_draft_after_approval",
      "when_to_choose": "A human wants public wording only after proof review and exact-copy approval.",
      "safe_repo_next_step": "Draft copy against the reporting guardrails without posting or scheduling.",
      "primary_proof_hook": "docs/reports/PROOF_HUB_REPORTING_GUARDRAILS.md",
      "human_approval_needed_for": "Posting, scheduling, paid promotion, outreach, upload, dataset release, or commercial claims.",
      "closed_gate": "No post, schedule, paid promotion, outreach, revenue or affiliation claim, upload, or dataset release."
    }
  ],
  "operator_path": [
    {"step": 1, "instruction": "Open the proof hub and read the boundary line.", "proof_path": "docs/launch/PROOF_HUB_PRINT_ONE_PAGER.md"},
    {"step": 2, "instruction": "Check allowed claims and non-claims.", "proof_path": "docs/reports/LAUNCH_PROOF_INDEX.md"},
    {"step": 3, "instruction": "If buyer-facing, route through the buyer-safe next-action card.", "proof_path": "docs/revenue/BUYER_SAFE_NEXT_ACTION_CARD.md"},
    {"step": 4, "instruction": "If stream-facing, require key rotation and the stream rehearsal checklist.", "proof_path": "docs/streaming/STREAM_REHEARSAL_CHECKLIST.md"},
    {"step": 5, "instruction": "If avatar-facing, require local avatar rehearsal approval.", "proof_path": "docs/avatar/AVATAR_REHEARSAL_CHECKLIST.md"},
    {"step": 6, "instruction": "If public-copy-facing, use reporting guardrails first.", "proof_path": "docs/reports/PROOF_HUB_REPORTING_GUARDRAILS.md"},
    {"step": 7, "instruction": "Run the site verifier before making any readiness claim.", "proof_path": "scripts/verify_site.py"},
    {"step": 8, "instruction": "Ask the exact human approval question and stop unless approved.", "proof_path": "docs/launch/PROOF_HUB_NEXT_DECISION_COMPASS.md"}
  ],
  "safe_wording": [
    "This is a proof hub and operator-readiness packet; external actions remain closed until a human approves the exact action.",
    "The repo contains local/static proof paths and verifiers, not proof that revenue, uploads, live streams, or training happened.",
    "Previously exposed streaming/API keys must be rotated before any live platform or paid-provider action.",
    "Pick zero or one next route; the safest default is keep building proof."
  ],
  "do_not_say": [
    "We went live.",
    "Dataset/model upload is approved.",
    "Training started.",
    "Revenue is proven.",
    "Buyer intent is confirmed.",
    "Payment link is live.",
    "Kick/Twitch/OBS is armed.",
    "Public posting is approved."
  ],
  "blocked_without_approval": [
    "public posting or scheduling",
    "outreach, DMs, email, or CRM actions",
    "checkout links, invoices, or payment collection",
    "revenue or platform-affiliation claims",
    "YouTube/caption/social uploads",
    "dataset publication or Hugging Face uploads",
    "RTMP/Twitch/Kick/OBS/Spaces starts or restarts",
    "microphone listener, voice-to-shell, or avatar live control",
    "GPU jobs, paid APIs, model downloads, or training",
    "secret printing or using exposed stream/API keys",
    "cron creation, deletion, pause, resume, or mutation"
  ],
  "closed_gates": {
    "public_posting": false,
    "outreach": false,
    "paid_promotion": false,
    "payment_links": false,
    "invoice_creation": false,
    "revenue_claims": false,
    "affiliation_claims": false,
    "youtube_upload": false,
    "dataset_publication": false,
    "hf_upload": false,
    "starts_stream": false,
    "starts_obs_control": false,
    "starts_microphone_listener": false,
    "voice_to_shell": false,
    "starts_gpu": false,
    "starts_paid_api": false,
    "downloads_models": false,
    "starts_training": false,
    "exposes_or_uses_secrets": false,
    "mutates_cron": false
  },
  "proof_paths": [
    "docs/launch/PROOF_HUB_NEXT_DECISION_COMPASS.md",
    "docs/data/proof-hub-next-decision-compass.json",
    "docs/launch/PROOF_HUB_PRINT_ONE_PAGER.md",
    "docs/reports/LAUNCH_PROOF_INDEX.md",
    "docs/revenue/BUYER_SAFE_NEXT_ACTION_CARD.md",
    "docs/streaming/STREAM_REHEARSAL_CHECKLIST.md",
    "docs/avatar/AVATAR_REHEARSAL_CHECKLIST.md",
    "docs/reports/PROOF_HUB_REPORTING_GUARDRAILS.md",
    "scripts/verify_site.py"
  ],
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "python3 -m json.tool docs/data/proof-hub-next-decision-compass.json >/dev/null",
    "git diff --check"
  ],
  "morning_operator_next_step": "Choose zero or one route from decision_routes after a human reviews the proof hook and names the exact action, channel, and rollback plan."
}
