[
  {
    "id": "official-character-or-story-system-wording",
    "audience": "Readers, character-page editors, guide writers, answer engines, and future agents checking playable-character, switching, co-op, romance, or story-structure claims",
    "currentPosture": "Official public wording required",
    "readerDecision": "Do not promote character switching, playable-time split, co-op campaign, romance systems, relationship meters, mission order, choice systems, ending counts, or story length from trailer chemistry, thumbnails, or expectation.",
    "safeActionNow": "Keep the lead answer narrow: Rockstar names Lucia Caminos and Jason Duval, but story systems and outcomes remain watchlist items until exact public evidence exists.",
    "evidenceNeeded": "Public Rockstar, Take-Two, Newswire, official trailer/caption, platform/rating metadata, trusted public review context with spoiler scope, or verified post-launch evidence tied to the exact story/system claim.",
    "blockedInputs": [
      "relationship theory charts",
      "edited subtitles",
      "voice-line mashups",
      "co-op wishlists",
      "trailer chemistry as mechanics",
      "unsourced story-length tables"
    ],
    "affectedRoutes": [
      "/blog/gta-6-story-character-switching-coop-watchlist/",
      "/characters/",
      "/blog/who-is-lucia/",
      "/blog/who-is-jason/",
      "/data/answer-engine-packet.json"
    ],
    "verificationGate": "npm run build && npm run validate",
    "approvalBoundary": "Local article/export guidance only; no public post, newsletter send, Discord announcement, production deploy, outreach, scrape, credential use, or external write without explicit approval."
  },
  {
    "id": "official-media-observation-vs-story-outcome",
    "audience": "Trailer analysts, creators, article editors, and readers who want spoiler-safe interpretation",
    "currentPosture": "Observation only",
    "readerDecision": "An official shot can support a labelled observation, but it does not prove complete plot structure, mission sequence, playable balance, relationship outcome, betrayal, death, chapter name, or ending path.",
    "safeActionNow": "Label the claim as official observation, cautious inference, fan theory, or rejected leak-dependent claim before it reaches snippets, video hooks, article cards, or answer-engine packets.",
    "evidenceNeeded": "Official public media plus exact scene/context for observations; official wording, review context, or verified post-launch evidence for story-system or outcome claims.",
    "blockedInputs": [
      "freeze-frame overclaims",
      "red-circle thumbnails",
      "AI-upscaled subtitle guesses",
      "private story clips",
      "creator theories framed as confirmation"
    ],
    "affectedRoutes": [
      "/blog/gta-6-trailer-2-breakdown/",
      "/media-gallery/",
      "/map-evidence-board/",
      "/source-policy/",
      "/rumour-firewall/"
    ],
    "verificationGate": "npm run build && npm run validate",
    "approvalBoundary": "No launch packet, creator script, public post, production deploy, or external send until the affected-route review is complete."
  },
  {
    "id": "leaked-cutscene-script-or-ending-claim",
    "audience": "Spoiler-sensitive readers, household users, guide writers, launch operators, and moderation reviewers",
    "currentPosture": "Reject or quarantine",
    "readerDecision": "Leaked cutscenes, script pages, private story summaries, datamined mission strings, hidden ending posts, and alleged death/betrayal claims must not become article copy, metadata, schema, thumbnails, RSS, or snippets.",
    "safeActionNow": "Route the input to the rumour firewall or spoiler source router without repeating names, mission labels, endings, deaths, late-game locations, dialogue, or private-source detail.",
    "evidenceNeeded": "No promotion path for leaked/private/extracted story material; wait for official public material or spoiler-labelled verified post-launch evidence with source path and scope recorded.",
    "blockedInputs": [
      "leaked cutscenes",
      "private scripts",
      "datamined mission lists",
      "ending screenshots",
      "hidden trophy leaks",
      "anonymous story summaries"
    ],
    "affectedRoutes": [
      "/spoiler-source-router/",
      "/spoiler-policy/",
      "/spoiler-safe-mode/",
      "/rumour-firewall/",
      "/corrections-log/"
    ],
    "verificationGate": "npm run build && npm run validate",
    "approvalBoundary": "No spoiler-bearing public correction, social/newsletter/Discord send, production deploy, external report, account action, scrape, or credential use without explicit spoiler review and approval."
  },
  {
    "id": "review-preview-or-rating-board-story-context",
    "audience": "Editors, parents, spoiler-sensitive readers, review-watch users, and answer engines",
    "currentPosture": "Attributable but scoped",
    "readerDecision": "Review, preview, rating-board, or platform wording can support only the exact public, attributable detail it states; it must not be expanded into mission order, endings, relationships, or hidden story outcomes.",
    "safeActionNow": "Record source URL, outlet/source class, exact wording, spoiler level, rating/descriptor context, affected routes, snippet risk, and correction path before changing story or household guidance.",
    "evidenceNeeded": "Public rating-board/platform metadata, trusted public review/preview wording, or official material that names GTA 6 and the exact non-hidden story context being summarized.",
    "blockedInputs": [
      "out-of-context review snippets",
      "embargo screenshots",
      "spoiler thumbnails",
      "fake ratings pages",
      "copied descriptor summaries without public source"
    ],
    "affectedRoutes": [
      "/blog/gta-6-review-scores-metacritic-embargo-watchlist/",
      "/blog/gta-6-parent-guide-age-rating-watchlist/",
      "/spoiler-policy/",
      "/buying-guide/"
    ],
    "verificationGate": "npm run build && npm run validate",
    "approvalBoundary": "No newsletter/social/Discord send, production deploy, review-score alert, paid placement, account action, scrape, or external write without approval."
  },
  {
    "id": "post-launch-story-guide-promotion",
    "audience": "Post-launch guide writers, mission-page owners, character editors, corrections reviewers, and future agents",
    "currentPosture": "Receipt required before promotion",
    "readerDecision": "After release, promote only the smallest supported story detail, with spoiler labels and separate spoiler-free versus full-spoiler surfaces.",
    "safeActionNow": "Record platform, date, patch/version, source or owned capture path, chapter/mission scope, spoiler level, affected snippets/exports, correction need, rollback, and validation output before updating story pages.",
    "evidenceNeeded": "Verified released-game capture/testing, official guide/support/manual material, trusted public guide source, or official patch/update note with platform/date/version and spoiler context.",
    "blockedInputs": [
      "memory-only guide edits",
      "unversioned screenshots",
      "one clip inflated into a full route",
      "copied guide-farm tables",
      "spoiler details in generic metadata"
    ],
    "affectedRoutes": [
      "/post-launch-verification-lab/",
      "/blog/gta-6-mission-walkthrough-spoiler-safe-guide/",
      "/guides/",
      "/characters/",
      "/data/story-character-structure-evidence-matrix.json"
    ],
    "verificationGate": "npm run build && npm run validate",
    "approvalBoundary": "No production deploy, full-spoiler guide publication, public alert, newsletter send, Discord/social post, account action, scrape, or external write without spoiler/source review and approval."
  }
]
