{
  "version": "screenplay_reserve_repair.v1",
  "generated_at": "2026-04-15T17:05:53.487388Z",
  "run_dir": "/wwwb/aitools/writer/outputs/quality_gates/s6_step11_focus_recheck_v2/xiyouji_first10_now11_scriptfocus_20260406_v1_recheck_v2",
  "changed_block_count": 1,
  "changed_blocks": [
    {
      "block_id": "EP0001B001",
      "issue_codes": [
        "abstract:residual_fallback_noise"
      ],
      "before_preview": "（灵霄宝殿）\n开篇诗，仙石迸裂、石猴诞生，石猴目运金光，金光惊动天庭，玉帝命千里眼顺风耳探查。\n开篇诗。\n玉帝命千里眼顺风耳探查。\n仙石迸裂、石猴诞生。\n石猴跳入瀑布，发现水帘洞，这不仅是地理上的发现。\n开篇诗与天地开辟，花果山仙石迸裂产石猴，目运金光惊动玉帝。",
      "after_preview": "（灵霄宝殿）\n众猴一下子把“钻进去寻源头者拜为王”这句话喊开了。\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.368421,
          "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": 11,
          "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": 11,
          "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.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
        }
      ]
    }
  }
}