{
  "schema": "sonic_forage.wake_report_stoplight_card.v1",
  "generated_utc": "2026-05-06T11:45:00Z",
  "status": "wake_report_stoplight_card_manual_report_only_closed_until_human_yes",
  "canonical_namespace": "Sonic-Forage",
  "canonical_repo": "Sonic-Forage/afterparty-forge-explainer-site",
  "canonical_pages_url": "https://sonic-forage.github.io/afterparty-forge-explainer-site/",
  "review_only": true,
  "manual_report_required": true,
  "manual_review_required": true,
  "manual_stoplight_required": true,
  "requires_human_approval": true,
  "auto_post_enabled": false,
  "auto_upload_enabled": false,
  "auto_stream_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,
  "voice_to_shell": false,
  "secret_exposure": false,
  "purpose": "Give the awake operator a one-screen red/yellow/green stoplight before any wake-report copy is used, while preserving all public, commercial, media, provider, secret, and cron gates closed.",
  "stoplight_states": [
    {
      "state": "green_local_only",
      "meaning": "Local verifier passed, proof paths exist, wording is source-backed, and no external action is requested.",
      "allowed_next_step": "manual internal readout or keep-building-proof",
      "proof_path": "docs/reports/WAKE_REPORT_OPERATOR_SIGNOFF_CHECKLIST.md"
    },
    {
      "state": "yellow_needs_human_yes",
      "meaning": "A human wants a public post, upload, stream, outreach, payment, provider run, or report delivery beyond local review.",
      "allowed_next_step": "ask the exact approval question and wait for a human yes",
      "proof_path": "docs/reports/WAKE_REPORT_OPERATOR_HANDOFF_CARD.md"
    },
    {
      "state": "red_stop",
      "meaning": "Any proof path is missing, verifier failed, copy overclaims, a secret/provider credential is needed, or more than one next route is bundled.",
      "allowed_next_step": "stop and choose keep-building-proof",
      "proof_path": "docs/launch/PROOF_HUB_NEXT_DECISION_COMPASS.md"
    }
  ],
  "operator_route": [
    {
      "step": "Run the local verifier before reading any report copy.",
      "proof_path": "docs/reports/WAKE_REPORT_FINAL_READOUT_CHECKLIST.md",
      "expected_signal": "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py is listed and required."
    },
    {
      "step": "Open the signoff checklist and answer every yes/no question.",
      "proof_path": "docs/reports/WAKE_REPORT_OPERATOR_SIGNOFF_CHECKLIST.md",
      "expected_signal": "If any answer is no or unknown, the route stops."
    },
    {
      "step": "Use the source map for every positive claim.",
      "proof_path": "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
      "expected_signal": "Claims map to repo-local proof paths and non-claims are explicit."
    },
    {
      "step": "Use Pages/currentness only as read-only evidence.",
      "proof_path": "docs/reports/PAGES_VERIFICATION_RECEIPT.md",
      "expected_signal": "Cache-busted probe commands are documented without publishing or mutating cron."
    },
    {
      "step": "Choose exactly zero or one next route.",
      "proof_path": "docs/launch/PROOF_HUB_NEXT_DECISION_COMPASS.md",
      "expected_signal": "No bundled external action is allowed without a separate human yes."
    },
    {
      "step": "If delivery copy is still local/manual, use the delivery envelope and stop.",
      "proof_path": "docs/reports/WAKE_REPORT_DELIVERY_ENVELOPE.md",
      "expected_signal": "Manual-report-only delivery copy and do-not-say lines are present."
    }
  ],
  "safe_wording": [
    "green means local proof only, not publication",
    "yellow means exact human approval required",
    "red means stop and keep building proof",
    "repo-local proof paths before claims",
    "one next route only"
  ],
  "do_not_say": [
    "The launch was posted.",
    "The stream is live.",
    "A buyer was contacted.",
    "Revenue is proven.",
    "OpenAI endorsed the project.",
    "The dataset was made public.",
    "GPU or training jobs ran.",
    "Secrets or provider tokens were checked.",
    "Cron was changed to continue this action."
  ],
  "blocked_without_approval": [
    "public posting, scheduling, replies, DMs, or Spaces",
    "YouTube, caption, dataset, or private-media upload",
    "OBS, RTMP, Twitch, Kick, livestream, or recording start/restart",
    "outreach, CRM, email, calls, forms, or buyer contact",
    "checkout, payment links, invoices, wallet, or revenue collection",
    "revenue, buyer, sponsorship, attendance, endorsement, or affiliation claims",
    "GPU, paid API, model download, training, Modal, RunPod, or provider execution",
    "voice-to-shell, secret inspection/printing, credential probing, or cron mutation"
  ],
  "proof_paths": [
    "docs/index.html",
    "docs/reports/WAKE_REPORT_STOPLIGHT_CARD.md",
    "docs/reports/WAKE_REPORT_OPERATOR_SIGNOFF_CHECKLIST.md",
    "docs/reports/WAKE_REPORT_OPERATOR_HANDOFF_CARD.md",
    "docs/reports/WAKE_REPORT_DELIVERY_ENVELOPE.md",
    "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
    "docs/reports/WAKE_REPORT_FINAL_READOUT_CHECKLIST.md",
    "docs/reports/PAGES_VERIFICATION_RECEIPT.md",
    "docs/launch/PROOF_HUB_NEXT_DECISION_COMPASS.md"
  ],
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "python3 -m json.tool docs/data/wake-report-stoplight-card.json >/dev/null",
    "python3 -m py_compile scripts/verify_site.py",
    "git diff --check"
  ],
  "human_approval_question": "Do you approve using this Sonic-Forage wake report stoplight card as the final red/yellow/green boundary before any external report, post, upload, stream, payment, outreach, provider, secret, voice-to-shell, or cron action?",
  "closed_gates": {
    "public_posting": false,
    "youtube_upload": false,
    "dataset_upload": false,
    "outreach": false,
    "payment_links": false,
    "invoice_creation": false,
    "claim_revenue": false,
    "claim_openai_affiliation": false,
    "starts_stream": false,
    "obs_or_rtmp_action": false,
    "records_audio": false,
    "uploads_private_media": false,
    "starts_gpu": false,
    "starts_paid_api": false,
    "starts_training": false,
    "model_download": false,
    "voice_to_shell": false,
    "secret_exposure": false,
    "mutates_cron": false
  },
  "morning_operator_next_step": "Pick green, yellow, or red. Green stays local/manual, yellow waits for a human yes, and red stops into keep-building-proof."
}
