{
  "schema": "wake_report_archive_citation_decision_router.v1",
  "generated_utc": "2026-05-06T15:50:00Z",
  "status": "wake_report_archive_citation_decision_router_manual_report_only_closed_until_human_yes",
  "canonical_namespace": "Sonic-Forage",
  "canonical_repo": "Sonic-Forage/afterparty-forge-explainer-site",
  "purpose": "Compress the archive citation packet QA result into exactly one local/manual next decision before any archived outcome evidence is cited in a wake-report readout.",
  "review_only": true,
  "manual_report_required": true,
  "manual_router_required": true,
  "manual_packet_qa_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,
  "provider_credential_check": false,
  "voice_to_shell": false,
  "secret_exposure": false,
  "human_approval_question": "Do you approve using exactly one Sonic-Forage archive citation decision after the packet QA, with all public/provider/payment/model/secret/cron gates still closed?",
  "proof_paths": [
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_DECISION_ROUTER.md",
    "docs/data/wake-report-archive-citation-decision-router.json",
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_PACKET_QA.md",
    "docs/data/wake-report-archive-citation-packet-qa.json",
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_RECEIPT_TEMPLATE.md",
    "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
    "docs/reports/PAGES_VERIFICATION_RECEIPT.md"
  ],
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "python3 -m json.tool docs/data/wake-report-archive-citation-decision-router.json >/dev/null",
    "git diff --check"
  ],
  "router_checks": [
    {
      "id": "packet_qa_reopened",
      "question": "Was the archive citation packet QA reopened and still green?",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_PACKET_QA.md",
      "expected_signal": "manual_packet_qa_required=true and provider_credential_check=false"
    },
    {
      "id": "receipt_template_ready",
      "question": "Is the archive citation receipt template ready if a human later cites an archive?",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_RECEIPT_TEMPLATE.md",
      "expected_signal": "manual_receipt_required=true and auto_stream_enabled=false"
    },
    {
      "id": "source_map_rechecked",
      "question": "Does the source map still bind report wording to repo-local proof paths?",
      "proof_path": "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
      "expected_signal": "manual_report_required=true and requires_human_approval=true"
    },
    {
      "id": "pages_receipt_rechecked",
      "question": "Does the Pages receipt remain the source for live/static proof currentness?",
      "proof_path": "docs/reports/PAGES_VERIFICATION_RECEIPT.md",
      "expected_signal": "manual Pages verification boundary only"
    },
    {
      "id": "closed_gate_attestation_present",
      "question": "Are posting/upload/stream/outreach/payment/provider/GPU/training/voice-to-shell/secret/cron gates attested closed?",
      "proof_path": "docs/data/wake-report-archive-citation-decision-router.json",
      "expected_signal": "all risky flags are false"
    }
  ],
  "decision_routes": [
    {
      "id": "cite_one_archived_outcome_after_recheck",
      "allowed_next_step": "Use one archived outcome as source evidence in a manual readout only after the packet QA, source map, and Pages receipt are rechecked.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_PACKET_QA.md",
      "closed_gate": "No posting, upload, stream, outreach, payment, provider credential check, GPU/training, voice-to-shell, secret, or cron action is authorized."
    },
    {
      "id": "request_source_map_recheck",
      "allowed_next_step": "Keep the archive reference out of the readout and ask an awake operator to refresh the source-map proof path before use.",
      "proof_path": "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
      "closed_gate": "No archive citation leaves the repo until the source-map recheck is human-approved."
    },
    {
      "id": "record_sanitized_packet_blocker",
      "allowed_next_step": "Record only a sanitized blocker in the manual receipt/log path if packet QA or Pages evidence is stale.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_RECEIPT_TEMPLATE.md",
      "closed_gate": "No provider/key check, contact, upload, payment, or public report is performed by automation."
    },
    {
      "id": "suppress_archive_reference",
      "allowed_next_step": "Suppress the archive reference and use current source-map proof only when there is no new evidence or the archive route is uncertain.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_CHECKLIST.md",
      "closed_gate": "No archived outcome is cited unless a human selects one route after recheck."
    }
  ],
  "safe_wording": [
    "Archive citation is local/manual report prep only.",
    "At most one archived outcome can be reused after proof-path recheck.",
    "If evidence is stale, suppress the archive reference and cite current source-map proof only.",
    "Provider credentials, Kick/Twitch/RTMP sessions, uploads, and payments were not checked or used.",
    "All external and cost-bearing actions remain closed until an awake human gives a separate yes."
  ],
  "do_not_say": [
    "Archive evidence is approved for public posting.",
    "A provider/session/key was verified.",
    "A payment artifact exists without approval.",
    "A buyer or partner was contacted unattended.",
    "A dataset/model/media upload happened unattended.",
    "A GPU/model/training job ran for this router.",
    "A live stream or Space started.",
    "Cron jobs were changed by this tick."
  ],
  "blocked_without_approval": [
    "public posting",
    "YouTube upload",
    "Twitch/Kick/RTMP/OBS/Spaces start",
    "outreach or DMs",
    "payment links or invoices",
    "provider credential checks",
    "HF public release or private-media upload",
    "GPU/model/training jobs",
    "voice-to-shell",
    "cron creation/update/removal"
  ],
  "closed_gates": {
    "public_posting": false,
    "youtube_upload": false,
    "stream_start": false,
    "provider_credential_check": false,
    "outreach": false,
    "payments_or_invoices": false,
    "private_media_upload": false,
    "hf_public_release": false,
    "gpu_or_paid_api": false,
    "model_download_or_training": false,
    "voice_to_shell": false,
    "secret_printing": false,
    "mutates_cron": false
  },
  "morning_operator_next_step": "Choose zero or one route from decision_routes after rechecking packet QA; if uncertain, suppress the archive reference and keep all gates closed."
}
