{
  "meta": {
    "contract_version": "screenplay_review_state.v1",
    "issue_taxonomy_version": "screenplay_review_issue_taxonomy.v1",
    "source_screenplay_path": "03d_screenplay.json",
    "generated_at": "2026-04-01T13:48:23Z",
    "last_event_at": "2026-04-01T13:48:23Z"
  },
  "taxonomy": {
    "version": "screenplay_review_issue_taxonomy.v1",
    "issues": [
      {
        "label": "continuity_issue",
        "display_name": "承接问题",
        "description": "相邻 block 或 episode 之间的人物、地点、冲突或行动目标承接不稳定。",
        "severity": "high",
        "priority": 90,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "continuity_guard",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 continuity guard、承接锚点和相邻 block 的压缩写法。"
      },
      {
        "label": "bad_episode_boundary",
        "display_name": "分集边界问题",
        "description": "分集切点不稳，导致 hook、尾钩或集内负载分配失衡。",
        "severity": "high",
        "priority": 85,
        "preferred_scopes": [
          "episode",
          "run"
        ],
        "followup_targets": [
          "episode_split",
          "episode_rebalance",
          "issue_regression"
        ],
        "recommendation": "优先回看 episode split、thin-tail rebalance 与 hook 组织策略。"
      },
      {
        "label": "excerpt_summary_lead",
        "display_name": "摘录式摘要起笔",
        "description": "段落开头仍像从概述里截下一句半成品摘要，常带省略号或半截信息，破坏最终剧本起笔质量。",
        "severity": "medium",
        "priority": 74,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 block 起笔清洗与 fallback lead 生成，避免把带省略号的摘要句或半截概述直接当作正文首句。"
      },
      {
        "label": "summary_tone",
        "display_name": "摘要腔偏重",
        "description": "段落信息虽然完整，但正文仍像概述、结构说明或骨架改写，不像直接可演的场面。",
        "severity": "medium",
        "priority": 72,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 fallback 正文生成、开场入戏顺序和可表演锚点保留策略，避免把 must_keep/conflict 写成解释性概述。"
      },
      {
        "label": "weak_dialogue",
        "display_name": "对白偏弱",
        "description": "对白机会明显的段落被写成摘要、旁白或缺少可表演的对话往来。",
        "severity": "medium",
        "priority": 70,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "dialogue_guard",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 dialogue guard、对白机会判定和 block 内的对白保留策略。"
      },
      {
        "label": "weak_performable_tension",
        "display_name": "可表演张力偏弱",
        "description": "本该落在现场压力、身份高低或群体反应上的段落，被直接写成“尴尬/敬畏/卑微/气氛凝重”等抽象标签，缺少可见反应。",
        "severity": "medium",
        "priority": 69,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先把抽象压力词改写成可见反应：谁被点住、谁卡壳、笑声何时收住、旁人为何不敢接话、谁只能附和。"
      },
      {
        "label": "chronicle_tone",
        "display_name": "编年腔偏重",
        "description": "段落虽然在交代剧情推进，但正文更像章回/编年式串讲或流水账摘要，而不是当场发生的戏。",
        "severity": "medium",
        "priority": 68,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看压缩 block 的 scene-first 写法，减少“这日/次日/后来/回家后”式串讲，把信息落回当场反应、群体异动和冲突压力。"
      },
      {
        "label": "delayed_scene_entry",
        "display_name": "入戏偏慢",
        "description": "本应直接进入发问、动作、反应或冲突的段落，先用过长导语交代时间、站位、关系或背景，导致真正场面被推迟到后一句。",
        "severity": "medium",
        "priority": 67,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先压缩“承接前场/次日/清晨”等长导语，把时间地点收成短锚点，直接从发问、动作、冲突或可见反应切入。"
      },
      {
        "label": "event_bundle_summary",
        "display_name": "多事件打包梗概",
        "description": "一个 block 把前往、拜见、送礼、找人、等待、托门路等多个小事件按流程打包串讲，像办事经过梗概，而不是挑出几个可演瞬间落笔。",
        "severity": "medium",
        "priority": 66,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先从整段流程里挑出最能体现门道、难堪、压迫或转机的几个现场瞬间，不要把多个小事件挨个讲完。"
      }
    ]
  },
  "summary": {
    "run_review_status": "accepted",
    "episodes": {
      "total": 1,
      "unreviewed": 1,
      "accepted": 0,
      "needs_rewrite": 0,
      "open": 1
    },
    "blocks": {
      "total": 4,
      "unreviewed": 2,
      "accepted": 2,
      "needs_rewrite": 0,
      "open": 2
    },
    "issue_counts": {
      "bad_episode_boundary": 0,
      "chronicle_tone": 0,
      "continuity_issue": 0,
      "delayed_scene_entry": 0,
      "event_bundle_summary": 0,
      "excerpt_summary_lead": 0,
      "summary_tone": 0,
      "weak_dialogue": 0,
      "weak_performable_tension": 0
    },
    "issue_summary": [
      {
        "label": "continuity_issue",
        "display_name": "承接问题",
        "description": "相邻 block 或 episode 之间的人物、地点、冲突或行动目标承接不稳定。",
        "severity": "high",
        "priority": 90,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "continuity_guard",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 continuity guard、承接锚点和相邻 block 的压缩写法。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "bad_episode_boundary",
        "display_name": "分集边界问题",
        "description": "分集切点不稳，导致 hook、尾钩或集内负载分配失衡。",
        "severity": "high",
        "priority": 85,
        "preferred_scopes": [
          "episode",
          "run"
        ],
        "followup_targets": [
          "episode_split",
          "episode_rebalance",
          "issue_regression"
        ],
        "recommendation": "优先回看 episode split、thin-tail rebalance 与 hook 组织策略。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "excerpt_summary_lead",
        "display_name": "摘录式摘要起笔",
        "description": "段落开头仍像从概述里截下一句半成品摘要，常带省略号或半截信息，破坏最终剧本起笔质量。",
        "severity": "medium",
        "priority": 74,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 block 起笔清洗与 fallback lead 生成，避免把带省略号的摘要句或半截概述直接当作正文首句。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "summary_tone",
        "display_name": "摘要腔偏重",
        "description": "段落信息虽然完整，但正文仍像概述、结构说明或骨架改写，不像直接可演的场面。",
        "severity": "medium",
        "priority": 72,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 fallback 正文生成、开场入戏顺序和可表演锚点保留策略，避免把 must_keep/conflict 写成解释性概述。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "weak_dialogue",
        "display_name": "对白偏弱",
        "description": "对白机会明显的段落被写成摘要、旁白或缺少可表演的对话往来。",
        "severity": "medium",
        "priority": 70,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "dialogue_guard",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看 dialogue guard、对白机会判定和 block 内的对白保留策略。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "weak_performable_tension",
        "display_name": "可表演张力偏弱",
        "description": "本该落在现场压力、身份高低或群体反应上的段落，被直接写成“尴尬/敬畏/卑微/气氛凝重”等抽象标签，缺少可见反应。",
        "severity": "medium",
        "priority": 69,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先把抽象压力词改写成可见反应：谁被点住、谁卡壳、笑声何时收住、旁人为何不敢接话、谁只能附和。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "chronicle_tone",
        "display_name": "编年腔偏重",
        "description": "段落虽然在交代剧情推进，但正文更像章回/编年式串讲或流水账摘要，而不是当场发生的戏。",
        "severity": "medium",
        "priority": 68,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先回看压缩 block 的 scene-first 写法，减少“这日/次日/后来/回家后”式串讲，把信息落回当场反应、群体异动和冲突压力。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "delayed_scene_entry",
        "display_name": "入戏偏慢",
        "description": "本应直接进入发问、动作、反应或冲突的段落，先用过长导语交代时间、站位、关系或背景，导致真正场面被推迟到后一句。",
        "severity": "medium",
        "priority": 67,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先压缩“承接前场/次日/清晨”等长导语，把时间地点收成短锚点，直接从发问、动作、冲突或可见反应切入。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      },
      {
        "label": "event_bundle_summary",
        "display_name": "多事件打包梗概",
        "description": "一个 block 把前往、拜见、送礼、找人、等待、托门路等多个小事件按流程打包串讲，像办事经过梗概，而不是挑出几个可演瞬间落笔。",
        "severity": "medium",
        "priority": 66,
        "preferred_scopes": [
          "block",
          "episode",
          "run"
        ],
        "followup_targets": [
          "screenplay_fallback",
          "screenplay_prompt_contract",
          "issue_regression"
        ],
        "recommendation": "优先从整段流程里挑出最能体现门道、难堪、压迫或转机的几个现场瞬间，不要把多个小事件挨个讲完。",
        "counts": {
          "run": 0,
          "episode": 0,
          "block": 0,
          "total": 0
        },
        "present": false
      }
    ],
    "event_count": 4
  },
  "run_review": {
    "target_id": "screenplay",
    "episode_count": 1,
    "block_count": 4,
    "status": "accepted",
    "labels": [],
    "reviewer": "codex",
    "review_note": "已补 block 级 spot-check：EP0001B002、EP0001B004 通过，确认这条奇幻寓言样本的关键正文块也具有直接可审阅的场面表达。",
    "updated_at": "2026-04-01T13:48:23Z"
  },
  "episode_reviews": [
    {
      "episode_id": "EP0001",
      "episode_index": 1,
      "title": "第01集 天界争锋·人间令下",
      "block_count": 4,
      "time_modes": [],
      "source_scene_ids": [
        "S0001",
        "S0003",
        "S0005",
        "S0007"
      ],
      "status": "unreviewed",
      "labels": [],
      "reviewer": "",
      "review_note": "",
      "updated_at": ""
    }
  ],
  "block_reviews": [
    {
      "block_id": "EP0001B001",
      "episode_id": "EP0001",
      "episode_index": 1,
      "kind": "dialogue",
      "title": "赴宴途中·女魁星现",
      "presentation_mode": "dialogue",
      "time_modes": [
        "mainline"
      ],
      "source_scene_ids": [
        "S0001"
      ],
      "source_group_ids": [
        "AG0001"
      ],
      "source_beat_ids": [
        "AB0001"
      ],
      "status": "unreviewed",
      "labels": [],
      "reviewer": "",
      "review_note": "",
      "updated_at": ""
    },
    {
      "block_id": "EP0001B002",
      "episode_id": "EP0001",
      "episode_index": 1,
      "kind": "dialogue",
      "title": "瑶池激辩·魁星点额",
      "presentation_mode": "dialogue",
      "time_modes": [
        "flashback"
      ],
      "source_scene_ids": [
        "S0003"
      ],
      "source_group_ids": [
        "AG0002"
      ],
      "source_beat_ids": [
        "AB0002"
      ],
      "status": "accepted",
      "labels": [],
      "reviewer": "codex",
      "review_note": "抽查通过：瑶池争辩直接靠人物针锋相对的对白与神态推进，神话设定没有压成解释稿，戏剧冲突是活的。",
      "updated_at": "2026-04-01T13:48:23Z"
    },
    {
      "block_id": "EP0001B003",
      "episode_id": "EP0001",
      "episode_index": 1,
      "kind": "scene",
      "title": "棋枰闲话·祸根深种",
      "presentation_mode": "dramatize",
      "time_modes": [
        "mainline"
      ],
      "source_scene_ids": [
        "S0005"
      ],
      "source_group_ids": [
        "AG0003"
      ],
      "source_beat_ids": [
        "AB0003"
      ],
      "status": "unreviewed",
      "labels": [],
      "reviewer": "",
      "review_note": "",
      "updated_at": ""
    },
    {
      "block_id": "EP0001B004",
      "episode_id": "EP0001",
      "episode_index": 1,
      "kind": "scene",
      "title": "醉旨催花·牡丹劫火",
      "presentation_mode": "dramatize",
      "time_modes": [
        "mainline"
      ],
      "source_scene_ids": [
        "S0007"
      ],
      "source_group_ids": [
        "AG0004"
      ],
      "source_beat_ids": [
        "AB0004"
      ],
      "status": "accepted",
      "labels": [],
      "reviewer": "codex",
      "review_note": "抽查通过：醉旨催花一段用赌诗、挥毫、传旨和金光飞出形成连续动作链，奇幻设定也能保持现场感。",
      "updated_at": "2026-04-01T13:48:23Z"
    }
  ],
  "events": [
    {
      "event_id": "SRV00001",
      "scope": "run",
      "target_id": "screenplay",
      "action": "updated",
      "status": "accepted",
      "labels": [],
      "reviewer": "codex",
      "review_note": "基于新中文奇幻寓言样本抽查：天界群像、时间层切换与分段对白整体清楚，screenplay gate=pass，当前可判定为轻改可用。该结论仍属于扩样本验收，不等于项目已在更广中文书种上稳定高质量。",
      "timestamp": "2026-03-31T17:41:20Z"
    },
    {
      "event_id": "SRV00002",
      "scope": "block",
      "target_id": "EP0001B002",
      "action": "updated",
      "status": "accepted",
      "labels": [],
      "reviewer": "codex",
      "review_note": "抽查通过：瑶池争辩直接靠人物针锋相对的对白与神态推进，神话设定没有压成解释稿，戏剧冲突是活的。",
      "timestamp": "2026-04-01T13:48:23Z"
    },
    {
      "event_id": "SRV00003",
      "scope": "block",
      "target_id": "EP0001B004",
      "action": "updated",
      "status": "accepted",
      "labels": [],
      "reviewer": "codex",
      "review_note": "抽查通过：醉旨催花一段用赌诗、挥毫、传旨和金光飞出形成连续动作链，奇幻设定也能保持现场感。",
      "timestamp": "2026-04-01T13:48:23Z"
    },
    {
      "event_id": "SRV00004",
      "scope": "run",
      "target_id": "screenplay",
      "action": "updated",
      "status": "accepted",
      "labels": [],
      "reviewer": "codex",
      "review_note": "已补 block 级 spot-check：EP0001B002、EP0001B004 通过，确认这条奇幻寓言样本的关键正文块也具有直接可审阅的场面表达。",
      "timestamp": "2026-04-01T13:48:23Z"
    }
  ]
}
