{
  "version": "screenplay_issue_regression.v1",
  "generated_at": "2026-04-01T02:26:08.233280Z",
  "manifest_path": "goldens/screenplay/issue_samples_v1/manifest.json",
  "labels_path": "goldens/screenplay/issue_samples_v1/labels.json",
  "runs_root": "outputs",
  "checks": [
    {
      "id": "SPIS0001.gate.status",
      "sample_id": "SPIS0001",
      "run_dir": "outputs/adaptation_round2_script_smoke_20260328_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "pass",
      "expected": "pass"
    },
    {
      "id": "SPIS0001.gate.max_failure_count",
      "sample_id": "SPIS0001",
      "run_dir": "outputs/adaptation_round2_script_smoke_20260328_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0001.gate.metric.0",
      "sample_id": "SPIS0001",
      "run_dir": "outputs/adaptation_round2_script_smoke_20260328_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "upload_script_char_count",
        "value": 1616,
        "op": "lt"
      },
      "expected": {
        "key": "upload_script_char_count",
        "value": 2000,
        "op": "lt"
      }
    },
    {
      "id": "SPIS0001.gate.metric.1",
      "sample_id": "SPIS0001",
      "run_dir": "outputs/adaptation_round2_script_smoke_20260328_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "episode_count",
        "value": 1,
        "op": "eq"
      },
      "expected": {
        "key": "episode_count",
        "value": 1,
        "op": "eq"
      }
    },
    {
      "id": "SPIS0002.gate.status",
      "sample_id": "SPIS0002",
      "run_dir": "outputs/screenplay_upload_contract_smoke_20260329_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "pass",
      "expected": "pass"
    },
    {
      "id": "SPIS0002.gate.max_failure_count",
      "sample_id": "SPIS0002",
      "run_dir": "outputs/screenplay_upload_contract_smoke_20260329_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0002.gate.metric.0",
      "sample_id": "SPIS0002",
      "run_dir": "outputs/screenplay_upload_contract_smoke_20260329_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "upload_script_char_count",
        "value": 1503,
        "op": "lt"
      },
      "expected": {
        "key": "upload_script_char_count",
        "value": 2000,
        "op": "lt"
      }
    },
    {
      "id": "SPIS0002.gate.metric.1",
      "sample_id": "SPIS0002",
      "run_dir": "outputs/screenplay_upload_contract_smoke_20260329_v1",
      "issue_type": "short_upload_script",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "episode_count",
        "value": 1,
        "op": "eq"
      },
      "expected": {
        "key": "episode_count",
        "value": 1,
        "op": "eq"
      }
    },
    {
      "id": "SPIS0003.gate.status",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "warn",
      "expected": "warn"
    },
    {
      "id": "SPIS0003.gate.max_failure_count",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0003.gate.min_warning_count",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate warning count reaches expected floor",
      "actual": 5,
      "expected": {
        "min_warning_count": 5
      }
    },
    {
      "id": "SPIS0003.gate.check_status.0",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_character_bio_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_character_bio_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0003.gate.check_status.1",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_visual_card_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_visual_card_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0003.gate.check_status.2",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_voice_card_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_voice_card_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0003.gate.check_status.3",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_asset_binding_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_asset_binding_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0003.gate.check_status.4",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_identity_summary_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_identity_summary_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0003.gate.metric.0",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "missing_character_bio_ratio",
        "value": 0.060606,
        "op": "gt"
      },
      "expected": {
        "key": "missing_character_bio_ratio",
        "value": 0.05,
        "op": "gt"
      }
    },
    {
      "id": "SPIS0003.gate.metric.1",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "missing_visual_card_ratio",
        "value": 0.114286,
        "op": "gt"
      },
      "expected": {
        "key": "missing_visual_card_ratio",
        "value": 0.05,
        "op": "gt"
      }
    },
    {
      "id": "SPIS0003.gate.metric.2",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "missing_voice_card_ratio",
        "value": 0.114286,
        "op": "gt"
      },
      "expected": {
        "key": "missing_voice_card_ratio",
        "value": 0.05,
        "op": "gt"
      }
    },
    {
      "id": "SPIS0003.gate.metric.3",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "missing_asset_binding_ratio",
        "value": 0.114286,
        "op": "gt"
      },
      "expected": {
        "key": "missing_asset_binding_ratio",
        "value": 0.05,
        "op": "gt"
      }
    },
    {
      "id": "SPIS0003.gate.metric.4",
      "sample_id": "SPIS0003",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "dramart_bio_gap",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "missing_identity_summary_ratio",
        "value": 0.114286,
        "op": "gt"
      },
      "expected": {
        "key": "missing_identity_summary_ratio",
        "value": 0.05,
        "op": "gt"
      }
    },
    {
      "id": "SPIS0004.gate.status",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "pass",
      "expected": "pass"
    },
    {
      "id": "SPIS0004.gate.max_failure_count",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0004.screenplay.block_exists.0",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "",
        "lead_scene_id": "S0057"
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0004.screenplay.character_binding.0.0",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "required character binding is present",
      "actual": [
        {
          "entity_uid": "E000037",
          "name": "望舒",
          "canonical_name": "望舒",
          "display_name": "望舒",
          "type": "人物",
          "subtype": "",
          "visual_card_id": "VC000037",
          "voice_card_id": "VO000037",
          "asset_binding_id": "AB000037",
          "identity_conflict": {},
          "conflict_group_id": ""
        },
        {
          "entity_uid": "E000003",
          "name": "李凡",
          "canonical_name": "李凡",
          "display_name": "李凡",
          "type": "人物",
          "subtype": "",
          "visual_card_id": "VC000003",
          "voice_card_id": "VO000003",
          "asset_binding_id": "AB000003",
          "identity_conflict": {},
          "conflict_group_id": ""
        },
        {
          "entity_uid": "E000061",
          "name": "茯苓",
          "canonical_name": "茯苓",
          "display_name": "茯苓",
          "type": "人物",
          "subtype": "",
          "visual_card_id": "VC000061",
          "voice_card_id": "VO000061",
          "asset_binding_id": "AB000061",
          "identity_conflict": {},
          "conflict_group_id": ""
        },
        {
          "entity_uid": "E000076",
          "name": "虚星道祖",
          "canonical_name": "虚星道祖",
          "display_name": "虚星道祖（人物）",
          "type": "人物",
          "subtype": "",
          "visual_card_id": "VC000076",
          "voice_card_id": "VO000076",
          "asset_binding_id": "AB000076",
          "identity_conflict": {
            "queue_type": "duplicate_name_cross_type",
            "conflict_group_id": "CFG0006",
            "type_codes": [
              "概念法则",
              "人物"
            ],
            "preferred_entity_id": "E000031",
            "role": "alternate",
            "rank": 2,
            "entity_count": 2
          },
          "conflict_group_id": "CFG0006"
        }
      ],
      "expected": {
        "entity_uid": "E000076",
        "type": "人物",
        "display_name": "虚星道祖（人物）",
        "conflict_group_id": "CFG0006"
      }
    },
    {
      "id": "SPIS0004.screenplay.block_exists.1",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "",
        "lead_scene_id": "S0095"
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0004.screenplay.character_binding.1.0",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "required character binding is present",
      "actual": [
        {
          "entity_uid": "E000037",
          "name": "望舒",
          "canonical_name": "望舒",
          "display_name": "望舒",
          "type": "人物",
          "subtype": "",
          "visual_card_id": "VC000037",
          "voice_card_id": "VO000037",
          "asset_binding_id": "AB000037",
          "identity_conflict": {},
          "conflict_group_id": ""
        },
        {
          "entity_uid": "E000003",
          "name": "李凡",
          "canonical_name": "李凡",
          "display_name": "李凡",
          "type": "人物",
          "subtype": "",
          "visual_card_id": "VC000003",
          "voice_card_id": "VO000003",
          "asset_binding_id": "AB000003",
          "identity_conflict": {},
          "conflict_group_id": ""
        },
        {
          "entity_uid": "E000055",
          "name": "系统",
          "canonical_name": "系统",
          "display_name": "系统",
          "type": "系统面板",
          "subtype": "系统",
          "visual_card_id": "VC000055",
          "voice_card_id": "VO000055",
          "asset_binding_id": "AB000055",
          "identity_conflict": {},
          "conflict_group_id": ""
        },
        {
          "entity_uid": "E000022",
          "name": "尊天魔",
          "canonical_name": "尊天魔",
          "display_name": "尊天魔（生物种族）",
          "type": "生物种族",
          "subtype": "",
          "visual_card_id": "VC000022",
          "voice_card_id": "VO000022",
          "asset_binding_id": "AB000022",
          "identity_conflict": {
            "queue_type": "duplicate_name_cross_type",
            "conflict_group_id": "CFG0002",
            "type_codes": [
              "生物种族",
              "概念法则"
            ],
            "preferred_entity_id": "E000111",
            "role": "alternate",
            "rank": 2,
            "entity_count": 2
          },
          "conflict_group_id": "CFG0002"
        },
        {
          "entity_uid": "E000123",
          "name": "灰蛇",
          "canonical_name": "灰蛇",
          "display_name": "灰蛇",
          "type": "生物种族",
          "subtype": "妖兽",
          "visual_card_id": "VC000123",
          "voice_card_id": "VO000123",
          "asset_binding_id": "AB000123",
          "identity_conflict": {},
          "conflict_group_id": ""
        }
      ],
      "expected": {
        "entity_uid": "E000022",
        "type": "生物种族",
        "display_name": "尊天魔（生物种族）",
        "conflict_group_id": "CFG0002"
      }
    },
    {
      "id": "SPIS0004.screenplay.block_exists.2",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "",
        "lead_scene_id": "S0001"
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0004.screenplay.location_binding.2.0",
      "sample_id": "SPIS0004",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "same_name_conflict_binding",
      "status": "pass",
      "severity": "error",
      "message": "required location binding is present",
      "actual": [
        {
          "entity_uid": "E000001",
          "name": "墨竹山",
          "canonical_name": "墨竹山",
          "display_name": "墨竹山（地点）",
          "type": "地点",
          "subtype": "山岳/洞天",
          "visual_card_id": "VC000001",
          "voice_card_id": "",
          "asset_binding_id": "AB000001",
          "identity_conflict": {
            "queue_type": "duplicate_name_cross_type",
            "conflict_group_id": "CFG0001",
            "type_codes": [
              "地点",
              "组织"
            ],
            "preferred_entity_id": "E000104",
            "role": "alternate",
            "rank": 2,
            "entity_count": 2
          },
          "conflict_group_id": "CFG0001"
        }
      ],
      "expected": {
        "entity_uid": "E000001",
        "type": "地点",
        "display_name": "墨竹山（地点）",
        "conflict_group_id": "CFG0001"
      }
    },
    {
      "id": "SPIS0005.gate.status",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "warn",
      "expected": "warn"
    },
    {
      "id": "SPIS0005.gate.max_failure_count",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0005.gate.min_warning_count",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate warning count reaches expected floor",
      "actual": 5,
      "expected": {
        "min_warning_count": 1
      }
    },
    {
      "id": "SPIS0005.gate.check_status.0",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_character_bio_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_character_bio_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0005.screenplay.block_exists.0",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "EP0001B002",
        "lead_scene_id": ""
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0005.screenplay.block_source_scene_count.0",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "block source scene count meets minimum",
      "actual": 2,
      "expected": {
        "min_source_scene_count": 2
      }
    },
    {
      "id": "SPIS0005.screenplay.block_char_count.0",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length meets minimum",
      "actual": 310,
      "expected": {
        "min_char_count": 250
      }
    },
    {
      "id": "SPIS0005.screenplay.block_dialogue.0",
      "sample_id": "SPIS0005",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "over_merge_guard",
      "status": "pass",
      "severity": "error",
      "message": "block dialogue presence matches expectation",
      "actual": true,
      "expected": true
    },
    {
      "id": "SPIS0006.gate.status",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "warn",
      "expected": "warn"
    },
    {
      "id": "SPIS0006.gate.max_failure_count",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0006.gate.min_warning_count",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate warning count reaches expected floor",
      "actual": 5,
      "expected": {
        "min_warning_count": 1
      }
    },
    {
      "id": "SPIS0006.gate.check_status.0",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "dramart.missing_character_bio_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "dramart.missing_character_bio_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0006.screenplay.block_exists.0",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "EP0001B002",
        "lead_scene_id": ""
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0006.screenplay.block_source_scene_count.0",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "block source scene count meets minimum",
      "actual": 2,
      "expected": {
        "min_source_scene_count": 2
      }
    },
    {
      "id": "SPIS0006.screenplay.block_char_count.0",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length meets minimum",
      "actual": 310,
      "expected": {
        "min_char_count": 280
      }
    },
    {
      "id": "SPIS0006.screenplay.block_dialogue.0",
      "sample_id": "SPIS0006",
      "run_dir": "outputs/daozu_mainline_full50_20260329_v1",
      "issue_type": "weak_dialogue_guard",
      "status": "pass",
      "severity": "error",
      "message": "block dialogue presence matches expectation",
      "actual": true,
      "expected": true
    },
    {
      "id": "SPIS0007.gate.status",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "pass",
      "expected": "pass"
    },
    {
      "id": "SPIS0007.gate.max_failure_count",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0007.screenplay.episode_exists.0",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "screenplay episode exists for labeled assertion",
      "actual": "EP0001",
      "expected": "matching episode"
    },
    {
      "id": "SPIS0007.screenplay.episode_block_count.0",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "episode block count meets minimum",
      "actual": 6,
      "expected": {
        "min_block_count": 6
      }
    },
    {
      "id": "SPIS0007.screenplay.episode_source_scene_count.0",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "episode source scene count meets minimum",
      "actual": 10,
      "expected": {
        "min_source_scene_count": 8
      }
    },
    {
      "id": "SPIS0007.screenplay.episode_opening_hook.0",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "episode opening hook presence matches expectation",
      "actual": true,
      "expected": true
    },
    {
      "id": "SPIS0007.screenplay.episode_ending_hook.0",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "episode ending hook presence matches expectation",
      "actual": true,
      "expected": true
    },
    {
      "id": "SPIS0007.screenplay.episode_title_length.0",
      "sample_id": "SPIS0007",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "episode_boundary_guard",
      "status": "pass",
      "severity": "error",
      "message": "episode title length meets minimum",
      "actual": 10,
      "expected": {
        "min_title_length": 6
      }
    },
    {
      "id": "SPIS0008.gate.status",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "pass",
      "expected": "pass"
    },
    {
      "id": "SPIS0008.gate.max_failure_count",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0008.screenplay.episode_exists.0",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "screenplay episode exists for labeled assertion",
      "actual": "EP0016",
      "expected": "matching episode"
    },
    {
      "id": "SPIS0008.screenplay.episode_max_block_count.0",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "episode block count stays within maximum",
      "actual": 2,
      "expected": {
        "max_block_count": 2
      }
    },
    {
      "id": "SPIS0008.screenplay.episode_max_source_scene_count.0",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "episode source scene count stays within maximum",
      "actual": 2,
      "expected": {
        "max_source_scene_count": 2
      }
    },
    {
      "id": "SPIS0008.screenplay.episode_opening_hook.0",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "episode opening hook presence matches expectation",
      "actual": true,
      "expected": true
    },
    {
      "id": "SPIS0008.screenplay.episode_ending_hook.0",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "episode ending hook presence matches expectation",
      "actual": true,
      "expected": true
    },
    {
      "id": "SPIS0008.screenplay.episode_title_length.0",
      "sample_id": "SPIS0008",
      "run_dir": "outputs/daozu_conflict_downstream_full50_20260330_v1",
      "issue_type": "bad_episode_boundary",
      "status": "pass",
      "severity": "error",
      "message": "episode title length meets minimum",
      "actual": 9,
      "expected": {
        "min_title_length": 6
      }
    },
    {
      "id": "SPIS0009.gate.status",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "pass",
      "expected": "pass"
    },
    {
      "id": "SPIS0009.gate.max_failure_count",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0009.screenplay.block_exists.0",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "EP0003B002",
        "lead_scene_id": "S0014"
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0009.screenplay.block_source_scene_count.0",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block source scene count meets minimum",
      "actual": 1,
      "expected": {
        "min_source_scene_count": 1
      }
    },
    {
      "id": "SPIS0009.screenplay.block_char_count.0",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length meets minimum",
      "actual": 126,
      "expected": {
        "min_char_count": 100
      }
    },
    {
      "id": "SPIS0009.screenplay.block_max_char_count.0",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length stays within maximum",
      "actual": 126,
      "expected": {
        "max_char_count": 140
      }
    },
    {
      "id": "SPIS0009.screenplay.block_dialogue.0",
      "sample_id": "SPIS0009",
      "run_dir": "outputs/adaptation_regression_20260328_v2",
      "issue_type": "weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block dialogue presence matches expectation",
      "actual": false,
      "expected": false
    },
    {
      "id": "SPIS0010.gate.status",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "warn",
      "expected": "warn"
    },
    {
      "id": "SPIS0010.gate.max_failure_count",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0010.gate.min_warning_count",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate warning count reaches expected floor",
      "actual": 2,
      "expected": {
        "min_warning_count": 2
      }
    },
    {
      "id": "SPIS0010.gate.check_status.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "manual_review.block_needs_rewrite_count",
        "status": "warn"
      },
      "expected": {
        "id": "manual_review.block_needs_rewrite_count",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0010.gate.check_status.1",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "manual_review.issue.weak_dialogue_count",
        "status": "warn"
      },
      "expected": {
        "id": "manual_review.issue.weak_dialogue_count",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0010.gate.metric.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "manual_review_block_needs_rewrite_count",
        "value": 1,
        "op": "gte"
      },
      "expected": {
        "key": "manual_review_block_needs_rewrite_count",
        "value": 1,
        "op": "gte"
      }
    },
    {
      "id": "SPIS0010.gate.metric.1",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "manual_review_weak_dialogue_count",
        "value": 1,
        "op": "gte"
      },
      "expected": {
        "key": "manual_review_weak_dialogue_count",
        "value": 1,
        "op": "gte"
      }
    },
    {
      "id": "SPIS0010.screenplay.block_exists.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "EP0001B001",
        "lead_scene_id": "S0001"
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0010.screenplay.block_source_scene_count.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block source scene count meets minimum",
      "actual": 1,
      "expected": {
        "min_source_scene_count": 1
      }
    },
    {
      "id": "SPIS0010.screenplay.block_char_count.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length meets minimum",
      "actual": 130,
      "expected": {
        "min_char_count": 120
      }
    },
    {
      "id": "SPIS0010.screenplay.block_dialogue.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "block dialogue presence matches expectation",
      "actual": false,
      "expected": false
    },
    {
      "id": "SPIS0010.manual_review.run_status",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "manual run review status matches expectation",
      "actual": "accepted",
      "expected": "accepted"
    },
    {
      "id": "SPIS0010.manual_review.block_exists.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "manual block review exists for labeled assertion",
      "actual": "EP0001B001",
      "expected": "matching block review"
    },
    {
      "id": "SPIS0010.manual_review.block_status.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "manual block review status matches expectation",
      "actual": "needs_rewrite",
      "expected": "needs_rewrite"
    },
    {
      "id": "SPIS0010.manual_review.block_label.0.0",
      "sample_id": "SPIS0010",
      "run_dir": "outputs/shuihu_acceptance_smoke_20260331_v1",
      "issue_type": "opening_bridge_weak_dialogue_issue",
      "status": "pass",
      "severity": "error",
      "message": "manual block review label is present",
      "actual": [
        "weak_dialogue"
      ],
      "expected": "weak_dialogue"
    },
    {
      "id": "SPIS0011.gate.status",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "warn",
      "expected": "warn"
    },
    {
      "id": "SPIS0011.gate.max_failure_count",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0011.gate.min_warning_count",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "gate warning count reaches expected floor",
      "actual": 1,
      "expected": {
        "min_warning_count": 1
      }
    },
    {
      "id": "SPIS0011.gate.check_status.0",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "text_quality.template_leak_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "text_quality.template_leak_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0011.gate.metric.0",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "template_leak_block_count",
        "value": 1,
        "op": "gte"
      },
      "expected": {
        "key": "template_leak_block_count",
        "value": 1,
        "op": "gte"
      }
    },
    {
      "id": "SPIS0011.screenplay.block_exists.0",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "EP0001B008",
        "lead_scene_id": ""
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0011.screenplay.block_source_scene_count.0",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "block source scene count meets minimum",
      "actual": 1,
      "expected": {
        "min_source_scene_count": 1
      }
    },
    {
      "id": "SPIS0011.screenplay.block_char_count.0",
      "sample_id": "SPIS0011",
      "run_dir": "outputs/xiyouji_acceptance_smoke_20260331_v1",
      "issue_type": "screenplay_template_leakage",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length meets minimum",
      "actual": 297,
      "expected": {
        "min_char_count": 180
      }
    },
    {
      "id": "SPIS0012.gate.status",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "gate status matches expected issue signal",
      "actual": "warn",
      "expected": "warn"
    },
    {
      "id": "SPIS0012.gate.max_failure_count",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "gate failure count stays within expected bound",
      "actual": 0,
      "expected": {
        "max_failure_count": 0
      }
    },
    {
      "id": "SPIS0012.gate.min_warning_count",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "gate warning count reaches expected floor",
      "actual": 1,
      "expected": {
        "min_warning_count": 1
      }
    },
    {
      "id": "SPIS0012.gate.check_status.0",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "gate check status matches expected value",
      "actual": {
        "id": "text_quality.expository_voiceover_lead_ratio",
        "status": "warn"
      },
      "expected": {
        "id": "text_quality.expository_voiceover_lead_ratio",
        "status": "warn"
      }
    },
    {
      "id": "SPIS0012.gate.metric.0",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "gate metric matches expected comparator",
      "actual": {
        "key": "expository_voiceover_lead_block_count",
        "value": 1,
        "op": "gte"
      },
      "expected": {
        "key": "expository_voiceover_lead_block_count",
        "value": 1,
        "op": "gte"
      }
    },
    {
      "id": "SPIS0012.screenplay.block_exists.0",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "screenplay block exists for labeled assertion",
      "actual": {
        "block_id": "EP0003B002",
        "lead_scene_id": "S0015"
      },
      "expected": "matching block"
    },
    {
      "id": "SPIS0012.screenplay.block_source_scene_count.0",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "block source scene count meets minimum",
      "actual": 1,
      "expected": {
        "min_source_scene_count": 1
      }
    },
    {
      "id": "SPIS0012.screenplay.block_char_count.0",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "block screenplay text length meets minimum",
      "actual": 350,
      "expected": {
        "min_char_count": 180
      }
    },
    {
      "id": "SPIS0012.screenplay.block_dialogue.0",
      "sample_id": "SPIS0012",
      "run_dir": "outputs/dongzhou_acceptance_smoke_20260401_v1",
      "issue_type": "expository_voiceover_lead",
      "status": "pass",
      "severity": "error",
      "message": "block dialogue presence matches expectation",
      "actual": true,
      "expected": true
    }
  ],
  "summary": {
    "check_count": 100,
    "failure_count": 0,
    "done_label_count": 12,
    "evaluated_sample_count": 12
  },
  "status": "pass"
}