{
  "stages": [
    {
      "id": "check-and-smoke",
      "output": "Check the local tools, install pinned dependencies, and run the free two-input smoke before starting an episode."
    },
    {
      "id": "scout-topics",
      "output": "Probe live YouTube search velocity and Google Trends for three pre-validated viral Socratic hooks with zero API keys."
    },
    {
      "id": "choose-the-conversation",
      "output": "Choose a same-universe cast or a crossover, then approve the script, title and question.",
      "approvalRequired": true
    },
    {
      "id": "critique-script",
      "output": "Run the deterministic 5-stage Socratic retention linter on drafted dialogue before voice synthesis to guarantee 85+ quality and eliminate pre-synthesis waste with zero API costs."
    },
    {
      "id": "supply-gameplay-and-voices",
      "output": "Provide one authorized gameplay file and one audio file per dialogue turn. Optionally choose the credited background bed or supply another authorized music file. This release does not download gameplay or generate voices."
    },
    {
      "id": "prepare-captions",
      "output": "The coding agent prepares speaker assignments, measured turn durations and phrase timestamps. Review synchronization against the actual speech."
    },
    {
      "id": "render-and-inspect",
      "output": "Use the unchanged official compositor, inspect the MP4 and receipt, then watch and listen before accepting the result.",
      "approvalRequired": true
    },
    {
      "id": "distribute-episode",
      "output": "Author platform-tailored copy for YouTube Shorts, Instagram Reels, TikTok, and X, present for review, and dispatch to connected channels via runtime/publish.mjs. Writes live receipts to outputs/episode.distribution.json.",
      "approvalRequired": true
    }
  ]
}
