{
  "version": "screenplay_reserve_repair.v1",
  "generated_at": "2026-04-15T17:09:52.197344Z",
  "run_dir": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2",
  "changed_block_count": 10,
  "changed_blocks": [
    {
      "block_id": "EP0001B004",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（南赡部洲）\n美猴王：神仙。\n石猴闻歌寻声。\n樵夫歌唱《满庭芳》。\n石猴误认樵夫为神仙。\n樵夫解释歌谣来源。\n美猴王在山中听到歌声。",
      "after_preview": "（南赡部洲）\n石猴把“神仙”这句要紧话压低声线，对着美猴王慢慢说开。\n石猴闻歌寻声。\n樵夫歌唱《满庭芳》。\n石猴误认樵夫为神仙。\n樵夫解释歌谣来源。\n美猴王在山中听到歌声。"
    },
    {
      "block_id": "EP0002B001",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（水帘洞）\n祖师：长生之妙道。\n须菩提祖师看了祖师一眼，抬手示意他近前听道。\n祖师：打破盘中暗谜。\n祖师吟诗与悟空应声。\n祖师怒打悟空三下并倒背手关门。\n悟空夜半独自赴约。",
      "after_preview": "（水帘洞）\n须菩提祖师把“长生之妙道”这句要紧话压低声线，对着祖师慢慢说开。\n须菩提祖师看了祖师一眼，抬手示意他近前听道。\n祖师确认悟空“打破盘中暗谜”\n祖师吟诗与悟空应声。\n祖师怒打悟空三下并倒背手关门。\n悟空夜半独自赴约。"
    },
    {
      "block_id": "EP0004B001",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（花果山）\n孙悟空：未入流。\n武曲星君提议弼马温官职。\n孙悟空在御马监尽职养马。\n孙悟空怒推公案、打出南天门。\n孙悟空在灵霄殿不拜玉帝的桀骜姿态。\n孙悟空：弼马温。",
      "after_preview": "（花果山）\n众监官宴席上揭示弼马温为“未入流”小官。\n武曲星君提议弼马温官职。\n孙悟空在御马监尽职养马。\n孙悟空怒推公案、打出南天门。\n孙悟空在灵霄殿不拜玉帝的桀骜姿态。\n石猴一听“弼马温”是未入流小官，当场脸色一沉。"
    },
    {
      "block_id": "EP0004B003",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（水帘洞）\n石猴：齐天大圣。\n猴王轻松击败巨灵神，斧柄断裂。\n哪吒请战，与猴王各变三头六臂激斗。\n猴王用毫毛分身术打伤哪吒，哪吒败回。",
      "after_preview": "（水帘洞）\n猴王对哪吒的嘲讽及“齐天大圣”旗号。\n猴王轻松击败巨灵神，斧柄断裂。\n哪吒请战，与猴王各变三头六臂激斗。\n猴王用毫毛分身术打伤哪吒，哪吒败回。"
    },
    {
      "block_id": "EP0004B005",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（御马监）\n石猴：齐天大圣。\n许旌阳真人向玉帝进言。\n金星入洞宣旨的正式仪式感。\n玉帝任命孙悟空掌管蟠桃园。\n金星解释招安缘由。\n金星入洞宣旨。",
      "after_preview": "（御马监）\n悟空对“齐天大圣”官衔真实性的质疑与确认。\n许旌阳真人向玉帝进言。\n金星入洞宣旨的正式仪式感。\n玉帝任命孙悟空掌管蟠桃园。\n金星解释招安缘由。\n金星入洞宣旨。"
    },
    {
      "block_id": "EP0006B004",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（五行山）\n太上老君：掌中赌赛。\n玉帝请如来救驾。\n斩妖台刀斧雷火无效。\n孙悟空被推入八卦炉。\n孙悟空自述本领与野心。\n太上老君解释金刚之躯成因。\n如来提出“掌中赌赛”，将物理对抗转化为一场关于“界限”与“认知”的较量，为孙悟空的失败埋下伏笔。",
      "after_preview": "（五行山）\n如来把“掌中赌赛”这句要紧话压低声线，对着太上老君慢慢说开。\n玉帝请如来救驾。\n斩妖台刀斧雷火无效。\n孙悟空被推入八卦炉。\n孙悟空自述本领与野心。\n太上老君解释金刚之躯成因。\n如来提出“掌中赌赛”，将物理对抗转化为一场关于“界限”与“认知”的较量，为孙悟空的失败埋下伏笔。"
    },
    {
      "block_id": "EP0006B006",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（兜率宫）\n如来命名‘安天大会’。\n赤脚大仙献交梨火枣。\n王母献蟠桃并提及前事。\n寿星献紫芝瑶草、碧藕金丹。\n寿星：安天大会。\n表面是喜庆宴会。",
      "after_preview": "（兜率宫）\n如来命名‘安天大会’。\n赤脚大仙献交梨火枣。\n王母献蟠桃并提及前事。\n寿星献紫芝瑶草、碧藕金丹。\n如来欣然接受“安天大会”之名及各方献礼。\n表面是喜庆宴会。\n如来欣然接受“安天大会”之名及各方献礼，象征其权威得到天庭全体正式接纳，佛门地位提升。"
    },
    {
      "block_id": "EP0007B006",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（长安城）\n唐太宗：悟空。\n进入土地庙。\n土地及众神参见。\n师徒变作疥癫游僧。\n观音与孙悟空。\n观音与木吒抵达长安。",
      "after_preview": "（长安城）\n石猴把“悟空”这句要紧话压低声线，对着唐太宗慢慢说开。\n进入土地庙。\n土地及众神参见。\n师徒变作疥癫游僧。\n观音与孙悟空。\n观音与木吒抵达长安。"
    },
    {
      "block_id": "EP0009B001",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（幽冥界）\n崔珪：三曹对案。\n魏征书信内容。\n太宗病逝魂灵出窍。\n崔珪承诺送太宗还阳。\n崔珪接驾并解释缘由。",
      "after_preview": "（幽冥界）\n魏征把“三曹对案”这句要紧话压低声线，对着崔珪慢慢说开。\n魏征书信内容。\n太宗病逝魂灵出窍。\n崔珪承诺送太宗还阳。\n崔珪接驾并解释缘由。"
    },
    {
      "block_id": "EP0009B002",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（幽冥界）\n鬼门关遇李渊父子索命。\n崔判官私改生死簿添寿。\n森罗殿十王审问泾河龙王案。\n崔珪：一十三。\n太宗作为阳间人王，在阴间地府接受审判，其个人道德与龙王案责任交织。",
      "after_preview": "（幽冥界）\n鬼门关遇李渊父子索命。\n崔判官私改生死簿添寿。\n森罗殿十王审问泾河龙王案。\n崔珪私自将太宗阳寿从“一十三”改为“三十三”，这是剧情的关键转折，决定了太宗还阳的命运。\n太宗作为阳间人王，在阴间地府接受审判，其个人道德与龙王案责任交织。"
    }
  ],
  "downstream": {
    "dramart_package": {
      "run_dir": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2",
      "package_path": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2/03e_dramart_package.json",
      "upload_script_path": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2/03e_dramart_upload_script.md",
      "content_policy_version": "dramart_package_scope.v1",
      "risk_summary_present": true,
      "asset_action_summary_present": true
    },
    "dramart_storyboard": {
      "run_dir": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2",
      "storyboard_path": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2/05c_dramart_storyboard.json",
      "status": "pass",
      "shot_count": 223,
      "prompt_guard_status": "pass"
    }
  },
  "before": {
    "quality_gate": {
      "status": "warn",
      "broad_status": "warn",
      "top_issues": [
        {
          "id": "text_quality.short_block_ratio",
          "stage": "screenplay",
          "status": "warn",
          "severity": "warn",
          "failure_type": "text_quality_regression",
          "track_view": "delivery",
          "message": "short block ratio exceeds threshold",
          "actual": 0.385965,
          "expected": {
            "max_short_block_ratio": 0.2
          }
        },
        {
          "id": "text_quality.abstract_prose_risk_count",
          "stage": "screenplay",
          "status": "warn",
          "severity": "warn",
          "failure_type": "legacy_pressure_only",
          "track_view": "baseline",
          "message": "abstract prose risk count exceeds threshold",
          "actual": 10,
          "expected": {
            "max_abstract_prose_risk_count": 0
          }
        },
        {
          "id": "text_quality.action_anchor_gap_count",
          "stage": "screenplay",
          "status": "warn",
          "severity": "warn",
          "failure_type": "legacy_pressure_only",
          "track_view": "baseline",
          "message": "action anchor gap count exceeds threshold",
          "actual": 1,
          "expected": {
            "max_action_anchor_gap_count": 0
          }
        }
      ]
    },
    "product_quality": {
      "status": "warn",
      "fail_count": 0,
      "warn_count": 2,
      "issue_count": 2,
      "top_issues": [
        {
          "id": "writing_strategy.action_anchor_gap_count",
          "stage": "writing_strategy",
          "status": "warn",
          "message": "正文应保持动作落点，避免滑回只讲结果不见动作的说明写法",
          "actual": 1,
          "expected": 0
        },
        {
          "id": "writing_strategy.abstract_prose_risk_count",
          "stage": "writing_strategy",
          "status": "warn",
          "message": "正文不能退化成抽象解释或总结式 prose，必须回到可拍信息",
          "actual": 10,
          "expected": 0
        }
      ]
    }
  },
  "after": {
    "quality_gate": {
      "status": "warn",
      "broad_status": "warn",
      "top_issues": [
        {
          "id": "text_quality.short_block_ratio",
          "stage": "screenplay",
          "status": "warn",
          "severity": "warn",
          "failure_type": "text_quality_regression",
          "track_view": "delivery",
          "message": "short block ratio exceeds threshold",
          "actual": 0.350877,
          "expected": {
            "max_short_block_ratio": 0.2
          }
        },
        {
          "id": "text_quality.action_anchor_gap_count",
          "stage": "screenplay",
          "status": "warn",
          "severity": "warn",
          "failure_type": "legacy_pressure_only",
          "track_view": "baseline",
          "message": "action anchor gap count exceeds threshold",
          "actual": 3,
          "expected": {
            "max_action_anchor_gap_count": 0
          }
        }
      ]
    },
    "product_quality": {
      "status": "warn",
      "fail_count": 0,
      "warn_count": 1,
      "issue_count": 1,
      "top_issues": [
        {
          "id": "writing_strategy.action_anchor_gap_count",
          "stage": "writing_strategy",
          "status": "warn",
          "message": "正文应保持动作落点，避免滑回只讲结果不见动作的说明写法",
          "actual": 3,
          "expected": 0
        }
      ]
    }
  }
}