{
  "status": "launch_proof_index_draft_closed_until_human_yes",
  "requires_human_approval": true,
  "human_approval_question": "Do you approve using this proof index as the evidence map for a public/manual launch report, with the exact copy and media selected by an awake operator?",
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "git diff --check",
    "git status --short --branch"
  ],
  "closed_gates": {
    "public_posting": false,
    "outreach": false,
    "paid_promotion": false,
    "claim_revenue": false,
    "claim_openai_affiliation": false,
    "publishes_stream": false,
    "records_audio": false,
    "uploads_private_media": false,
    "youtube_upload": false,
    "caption_upload": false,
    "payment_link_creation": false,
    "invoice_execution": false,
    "starts_gpu": false,
    "starts_paid_api": false,
    "downloads_models": false,
    "starts_training": false,
    "submits_hackathon": false,
    "mutates_cron": false
  },
  "proof_paths": [
    "docs/reports/LAUNCH_PROOF_INDEX.md",
    "docs/index.html",
    "docs/data/site-manifest.json",
    "docs/youtube/FACELESS_YOUTUBE_TRAINING_RELEASE_PACK.md",
    "docs/data/youtube-training-pack.json",
    "docs/youtube/CAPTIONS_TRANSCRIPTS_PACK.md",
    "docs/data/youtube-captions-pack.json",
    "docs/assets/flyers/afterparty_forge_launch_flyer_manifest.json",
    "docs/social/X_THREAD_DRAFTS.md",
    "docs/data/x-thread-drafts.json",
    "docs/revenue/PRIVATE_DEMO_BUYER_SAFE_SCRIPT.md",
    "docs/data/private-demo-buyer-script.json",
    "docs/launch/SCREEN_CHECKLIST.md",
    "docs/data/launch-screen-checklist.json",
    "docs/livestream/TWITTER_SPACE_LIVESTREAM_RUNBOOK.md",
    "docs/framework/AFTERPARTY_FORGE_FRAMEWORK_DEPLOY_USE_GUIDE.md",
    "docs/entity-tools/AFTERPARTY_FORGE_ENTITY_TOOL_DECK.md",
    "docs/data/entity-tools-manifest.json"
  ],
  "claims": [
    {
      "id": "static_proof_hub_exists",
      "allowed_wording": "A static proof hub exists and references videos, manifests, launch art, and approval gates.",
      "proof_paths": ["docs/index.html", "docs/data/site-manifest.json"],
      "expected_success_signal": "HTML parses and site manifest references required artifacts."
    },
    {
      "id": "videos_are_packaged",
      "allowed_wording": "Narrated recap/showcase/Unicode videos are stored in the repo for manual review and embedding.",
      "proof_paths": ["docs/assets/video/afterparty_forge_morning_recap.mp4", "docs/assets/video/afterparty_forge_world_showcase.mp4", "docs/assets/video/afterparty_forge_unicode_future_ui.mp4"],
      "expected_success_signal": "Verifier requires the MP4 paths and the page references them."
    },
    {
      "id": "faceless_youtube_pack_manual_only",
      "allowed_wording": "Title/description/chapters/thumbnail/export paths are prepared; upload is not automatic.",
      "proof_paths": ["docs/youtube/FACELESS_YOUTUBE_TRAINING_RELEASE_PACK.md", "docs/data/youtube-training-pack.json", "docs/assets/thumbnails/afterparty_forge_youtube_thumbnail_clean.png"],
      "expected_success_signal": "Manifest keeps manual_upload_required=true and auto_upload_enabled=false."
    },
    {
      "id": "captions_accessibility_ready_manual_only",
      "allowed_wording": "VTT/SRT captions and transcript are packaged for review; caption upload is manual only.",
      "proof_paths": ["docs/youtube/CAPTIONS_TRANSCRIPTS_PACK.md", "docs/data/youtube-captions-pack.json", "docs/youtube/captions/afterparty_forge_unicode_future_ui_en.vtt", "docs/youtube/captions/afterparty_forge_unicode_future_ui_en.srt"],
      "expected_success_signal": "Caption manifest parses and cue counts match files."
    },
    {
      "id": "launch_art_review_only",
      "allowed_wording": "QR proof-hub flyers and history/livestream story flyers exist as review-only launch art.",
      "proof_paths": ["docs/assets/flyers/afterparty_forge_launch_flyer_manifest.json", "docs/assets/flyers/afterparty_forge_launch_square_flyer.png", "docs/assets/flyers/afterparty_forge_history_story_flyer.png", "docs/assets/flyers/afterparty_forge_live_stream_story_flyer.png"],
      "expected_success_signal": "Flyer manifest keeps posting/promotion gates closed and QR target is the proof hub."
    },
    {
      "id": "manual_social_copy_exists",
      "allowed_wording": "X thread drafts are prepared for copy/paste review only; no post/schedule/reply/DM happened.",
      "proof_paths": ["docs/social/X_THREAD_DRAFTS.md", "docs/data/x-thread-drafts.json"],
      "expected_success_signal": "Manifest keeps manual_post_required=true and auto_post_enabled=false."
    },
    {
      "id": "buyer_safe_demo_lane_exists",
      "allowed_wording": "A buyer-safe private demo script exists; no payment, invoice, outreach, or revenue claim is enabled.",
      "proof_paths": ["docs/revenue/PRIVATE_DEMO_BUYER_SAFE_SCRIPT.md", "docs/data/private-demo-buyer-script.json", "docs/revenue/FIRST_DOLLAR_OFFER_LADDER.md"],
      "expected_success_signal": "Private demo manifest keeps outreach/payment gates false."
    },
    {
      "id": "manual_launch_runbooks_exist",
      "allowed_wording": "Screen checklist and Twitter Space/livestream runbook are operator instructions, not automated broadcast actions.",
      "proof_paths": ["docs/launch/SCREEN_CHECKLIST.md", "docs/livestream/TWITTER_SPACE_LIVESTREAM_RUNBOOK.md", "docs/data/launch-screen-checklist.json"],
      "expected_success_signal": "Manual-run-only flags are true and auto-stream flags are false."
    },
    {
      "id": "framework_is_forkable",
      "allowed_wording": "Framework deployment/use guide and entity tools map are present for builders to inspect and adapt.",
      "proof_paths": ["docs/framework/AFTERPARTY_FORGE_FRAMEWORK_DEPLOY_USE_GUIDE.md", "docs/entity-tools/AFTERPARTY_FORGE_ENTITY_TOOL_DECK.md", "docs/data/entity-tools-manifest.json"],
      "expected_success_signal": "Required docs/manifests exist and verifier requires closed gates."
    }
  ],
  "human_only_actions": [
    "Review exact public copy, media, links, and screenshots.",
    "Decide whether to manually post X thread drafts or keep them private.",
    "Decide whether to manually upload YouTube video/captions.",
    "Decide whether to run a private buyer demo and what price/offer is allowed.",
    "Approve any payment/invoice/outreach action separately after a real buyer asks to buy."
  ],
  "non_claims": [
    "No verified revenue or customer purchase is claimed.",
    "No OpenAI affiliation or endorsement is claimed.",
    "No livestream, Twitter Space, YouTube upload, caption upload, social post, DM, or outreach is claimed.",
    "No GPU training, model download, wallet/payment action, or cron mutation is claimed."
  ]
}
