{
  "schema": "sonic_forage.wake_report_archive_citation_archive_summary_decision_router.v1",
  "generated_utc": "2026-05-06T20:04:28Z",
  "status": "wake_report_archive_citation_archive_summary_decision_router_manual_report_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/",
  "purpose": "Route the archive-citation archive summary QA result into exactly zero or one manual wake-report readout decision without starting external actions.",
  "review_only": true,
  "manual_report_required": true,
  "manual_archive_summary_decision_required": true,
  "manual_archive_summary_qa_required": true,
  "manual_source_map_recheck_required": true,
  "manual_pages_receipt_recheck_required": true,
  "manual_packet_qa_recheck_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 this local archive-citation summary decision router after QA passes and before any manual readout cites archived evidence?",
  "source_paths": [
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_QA_CHECKLIST.md",
    "docs/data/wake-report-archive-citation-archive-summary-qa-checklist.json",
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_CARD.md",
    "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
    "docs/reports/PAGES_VERIFICATION_RECEIPT.md"
  ],
  "decision_preconditions": [
    {
      "id": "qa_checklist_passed",
      "question": "Did the archive summary QA checklist pass every local proof-path question?",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_QA_CHECKLIST.md",
      "closed_gate": "QA is local review only and cannot deliver or post a report."
    },
    {
      "id": "source_map_current",
      "question": "Was the wake report source map reopened from the current commit?",
      "proof_path": "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
      "closed_gate": "Source-map review does not check provider credentials or publish anything."
    },
    {
      "id": "pages_boundary_known",
      "question": "Was the Pages verification receipt or blocker boundary checked?",
      "proof_path": "docs/reports/PAGES_VERIFICATION_RECEIPT.md",
      "closed_gate": "Pages receipt review is evidence only, not a deployment or public-post action."
    },
    {
      "id": "packet_qa_current",
      "question": "Was archive citation packet QA checked before reuse?",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_PACKET_QA.md",
      "closed_gate": "Packet QA cannot approve outreach, uploads, payment, stream, GPU, or training."
    },
    {
      "id": "verifier_result_current",
      "question": "Was the current site verifier result recorded before the route is selected?",
      "proof_path": "scripts/verify_site.py",
      "closed_gate": "Verifier status is local only; no cron or provider action is triggered."
    }
  ],
  "decision_routes": [
    {
      "id": "route_current_source_map_only",
      "allowed_next_step": "Use the current source-map wording only and omit archived citation reuse from the manual readout.",
      "proof_path": "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
      "closed_gate": "Manual delivery remains separate human-approved work."
    },
    {
      "id": "route_one_archive_citation_after_recheck",
      "allowed_next_step": "Cite exactly one archived outcome only after QA, source-map, Pages-boundary, packet-QA, and verifier checks are current.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_QA_CHECKLIST.md",
      "closed_gate": "The citation is paste-ready local wording, not a fresh external-result claim."
    },
    {
      "id": "route_sanitized_blocker_to_human",
      "allowed_next_step": "Record a sanitized blocker for the awake operator if any proof path, Pages boundary, or verifier result is stale.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_RETRIEVAL_CHECKLIST.md",
      "closed_gate": "Escalation is a local note until a human chooses a separate action."
    },
    {
      "id": "route_suppress_archive_reference",
      "allowed_next_step": "Suppress archived-evidence wording when any precondition cannot be proven in the current tree.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_REUSE_GUARDRAILS.md",
      "closed_gate": "Suppression creates no delivery, posting, outreach, payment, upload, stream, provider, GPU, training, or cron action."
    }
  ],
  "router_steps": [
    {
      "step": "Open the QA checklist and confirm every decision precondition is yes or documented as blocker.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_QA_CHECKLIST.md",
      "expected_signal": "QA is current and every required proof path exists."
    },
    {
      "step": "Choose exactly zero or one decision route from this router.",
      "proof_path": "docs/data/wake-report-archive-citation-archive-summary-decision-router.json",
      "expected_signal": "Only one route is selected for a manual report boundary."
    },
    {
      "step": "If one archived citation is chosen, keep the line source-backed and avoid fresh external-result claims.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_CARD.md",
      "expected_signal": "The line references existing archive/source-map evidence only."
    },
    {
      "step": "If any check is stale, route to sanitized blocker or suppress archive reference.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_REUSE_GUARDRAILS.md",
      "expected_signal": "No external action starts from the blocker or suppression route."
    },
    {
      "step": "Before any delivery outside the repo, fill the existing delivery receipt template manually after approval.",
      "proof_path": "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_DELIVERY_RECEIPT_TEMPLATE.md",
      "expected_signal": "Receipt remains manual and approval-gated."
    }
  ],
  "safe_wording": [
    "Archive-citation summary decision routing is ready for local/manual review.",
    "Use current source-map evidence first; cite at most one archived outcome after recheck.",
    "Suppress archive references when source freshness, Pages boundary, packet QA, or verifier status is unclear.",
    "No provider credentials were checked by this router.",
    "No stream, upload, outreach, payment, GPU, paid API, training, or cron action occurred."
  ],
  "do_not_say": [
    "Fresh buyer contact happened unattended.",
    "A payment artifact exists without approval.",
    "Provider credentials were checked by this router.",
    "The archive citation proves a fresh external result.",
    "A public post or upload was authorized.",
    "A stream or live provider was started.",
    "A model, GPU, or training job was launched.",
    "Cron behavior was changed by this router."
  ],
  "blocked_without_approval": [
    "public posting or scheduling",
    "dataset or private media upload",
    "streaming, OBS, RTMP, Twitch, Kick, or Spaces actions",
    "payment links, checkout, invoices, or revenue claims",
    "outreach, replies, DMs, or email",
    "provider credential checks or token handling",
    "GPU jobs, paid APIs, model downloads, or training",
    "voice-to-shell or cron mutation"
  ],
  "closed_gates": {
    "public_posting": false,
    "uploads": false,
    "streams_or_live_providers": false,
    "payments_or_revenue_claims": false,
    "outreach": false,
    "provider_credential_check": false,
    "gpu_or_paid_api_jobs": false,
    "model_downloads_or_training": false,
    "voice_to_shell": false,
    "secret_exposure": false,
    "cron_mutation": false
  },
  "proof_paths": [
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_DECISION_ROUTER.md",
    "docs/data/wake-report-archive-citation-archive-summary-decision-router.json",
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_QA_CHECKLIST.md",
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_ARCHIVE_SUMMARY_CARD.md",
    "docs/reports/WAKE_REPORT_ARCHIVE_CITATION_PACKET_QA.md",
    "docs/reports/WAKE_REPORT_SOURCE_MAP.md",
    "docs/reports/PAGES_VERIFICATION_RECEIPT.md",
    "scripts/verify_site.py"
  ],
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "python3 -m json.tool docs/data/wake-report-archive-citation-archive-summary-decision-router.json >/dev/null",
    "git diff --check"
  ],
  "morning_operator_next_step": "After the archive summary QA checklist passes, choose exactly one local/manual router option or suppress archived-evidence wording; do not deliver, post, upload, stream, pay, train, check provider credentials, or change cron from this card."
}
