{
  "method": {
    "ground_truth_root": "/Users/sk/Documents/recurve/xingyue-animation-review/datasets/v1.2/output",
    "manifest_files": [
      "/Users/sk/Documents/recurve/xingyue-animation-review/datasets/v1.2/output/manifest_可用.jsonl"
    ],
    "run_root": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826",
    "matched_by": "exact Version ID / review-delivery video filename stem",
    "intervals": "native GT and delivery t intervals",
    "primary_tolerance_s": 1.0,
    "type_aware": true,
    "type_family_mapping": {
      "QB": [
        "blur"
      ],
      "LQ": [
        "deformation"
      ],
      "TECH": [
        "black",
        "deformation",
        "flicker",
        "freeze",
        "judder"
      ],
      "LIP": [
        "lipsync"
      ]
    },
    "formal_precision_available": false
  },
  "ground_truth": {
    "all_manifest_rows": 612,
    "matched_raw_rows": 100,
    "cleaned_rows": 87,
    "excluded_rows": 13,
    "reference_cleaned_rows": 87,
    "matches_reference_cleaned_rows": true,
    "excluded": [
      {
        "defect_id": "TD-9846f50ddee2",
        "project": "P12",
        "episode": "EP25",
        "comment": "02:45 配音：カリアン 说的“原本就这么没有防备心吗？”（もともとこんなに無防備なのか？）中，“这么”（こんなに）的部分听起来有些结巴/卡顿",
        "reason": "audio-only stutter outside current visual/lip scope"
      },
      {
        "defect_id": "TD-2825fbd0fa12",
        "project": "P12",
        "episode": "EP25",
        "comment": "00:14.740 希望可以保持起码这个清晰度",
        "reason": "reference-quality comment, not a defect"
      },
      {
        "defect_id": "TD-693acd778110",
        "project": "P16",
        "episode": "EP26",
        "comment": "00:12.474 这卡清晰度OK",
        "reason": "reference-quality comment, not a defect"
      },
      {
        "defect_id": "TD-36b2ffdd7550",
        "project": "P16",
        "episode": "EP30",
        "comment": "01:53.485 这里停顿太长了",
        "reason": "pacing or hold-duration feedback outside current scope"
      },
      {
        "defect_id": "TD-9ab3ac126336",
        "project": "P16",
        "episode": "EP30",
        "comment": "00:38.291 这个画面的画质和清晰度是正常的",
        "reason": "reference-quality comment, not a defect"
      },
      {
        "defect_id": "TD-f0dd36339601",
        "project": "P17",
        "episode": "EP27",
        "comment": "02:37 文件的文字中稍微混入了一些日语，看起来像是 AI 特有的作画崩坏，让人感到违和 （如果变成更让人认不出是文字的形状，违和感反而会小一些）",
        "reason": "OCR/localization artifact outside current scope"
      },
      {
        "defect_id": "TD-9340e6dff607",
        "project": "P18",
        "episode": "EP29",
        "comment": "00:38~00:47 ベアティ 的头身比看起来偏矮/偏低（因为是以原作的 Q 版/变形画风为原型画出来的，所以显得有违和感）",
        "reason": "body proportion/style consistency outside current scope"
      },
      {
        "defect_id": "TD-d8878b86597b",
        "project": "P21",
        "episode": "EP06",
        "comment": "00:37 台词：“一直张着嘴（ずっと口開けて）” → 听成了“ずと口開けて”",
        "reason": "spoken-word or pronunciation issue outside lip-motion scope"
      },
      {
        "defect_id": "TD-b17cf6da0f1f",
        "project": "P21",
        "episode": "EP06",
        "comment": "00:50.869 这里画质和清晰度都很好，可以作为标准画质",
        "reason": "reference-quality comment, not a defect"
      },
      {
        "defect_id": "TD-614ece0773b2",
        "project": "P21",
        "episode": "EP14",
        "comment": "00:48 ローベル 的左手指变成了 4 根",
        "reason": "finger-count issue outside current scope"
      },
      {
        "defect_id": "TD-e6048de63c21",
        "project": "P21",
        "episode": "EP14",
        "comment": "00:26~00:34 ルース 的手指变成了 3 根",
        "reason": "finger-count issue outside current scope"
      },
      {
        "defect_id": "TD-4f3968a954a4",
        "project": "P21",
        "episode": "EP14",
        "comment": "01:46.887 这里的清晰度和画质就很好，能不能以这个作为标准统一一下",
        "reason": "reference-quality comment, not a defect"
      },
      {
        "defect_id": "TD-33a6fac3c3b4",
        "project": "P22",
        "episode": "EP19",
        "comment": "00:22~00:27 アナスタシア 靠里侧的手指，大拇指虽然被挡住了但能看到 5 根手指",
        "reason": "finger-count issue outside current scope"
      }
    ]
  },
  "run": {
    "delivery_episodes": 26,
    "missing_delivery_episode_dirs": []
  },
  "overall": {
    "hits": 72,
    "total": 87,
    "recall": 0.8275862068965517
  },
  "by_project": {
    "P12": {
      "hits": 6,
      "total": 10,
      "recall": 0.6
    },
    "P16": {
      "hits": 20,
      "total": 23,
      "recall": 0.8695652173913043
    },
    "P17": {
      "hits": 1,
      "total": 2,
      "recall": 0.5
    },
    "P18": {
      "hits": 2,
      "total": 3,
      "recall": 0.6666666666666666
    },
    "P20": {
      "hits": 4,
      "total": 5,
      "recall": 0.8
    },
    "P21": {
      "hits": 32,
      "total": 35,
      "recall": 0.9142857142857143
    },
    "P22": {
      "hits": 7,
      "total": 9,
      "recall": 0.7777777777777778
    }
  },
  "by_episode": {
    "P12/EP24": {
      "hits": 1,
      "total": 2,
      "recall": 0.5
    },
    "P12/EP25": {
      "hits": 5,
      "total": 8,
      "recall": 0.625
    },
    "P16/EP26": {
      "hits": 3,
      "total": 3,
      "recall": 1.0
    },
    "P16/EP27": {
      "hits": 4,
      "total": 5,
      "recall": 0.8
    },
    "P16/EP28": {
      "hits": 2,
      "total": 3,
      "recall": 0.6666666666666666
    },
    "P16/EP29": {
      "hits": 5,
      "total": 6,
      "recall": 0.8333333333333334
    },
    "P16/EP30": {
      "hits": 6,
      "total": 6,
      "recall": 1.0
    },
    "P17/EP25": {
      "hits": 1,
      "total": 2,
      "recall": 0.5
    },
    "P18/EP21": {
      "hits": 1,
      "total": 2,
      "recall": 0.5
    },
    "P18/EP24": {
      "hits": 1,
      "total": 1,
      "recall": 1.0
    },
    "P20/EP21": {
      "hits": 1,
      "total": 2,
      "recall": 0.5
    },
    "P20/EP23": {
      "hits": 3,
      "total": 3,
      "recall": 1.0
    },
    "P21/EP01": {
      "hits": 13,
      "total": 14,
      "recall": 0.9285714285714286
    },
    "P21/EP06": {
      "hits": 2,
      "total": 2,
      "recall": 1.0
    },
    "P21/EP07": {
      "hits": 1,
      "total": 1,
      "recall": 1.0
    },
    "P21/EP11": {
      "hits": 1,
      "total": 1,
      "recall": 1.0
    },
    "P21/EP12": {
      "hits": 3,
      "total": 3,
      "recall": 1.0
    },
    "P21/EP13": {
      "hits": 7,
      "total": 8,
      "recall": 0.875
    },
    "P21/EP14": {
      "hits": 2,
      "total": 2,
      "recall": 1.0
    },
    "P21/EP15": {
      "hits": 3,
      "total": 4,
      "recall": 0.75
    },
    "P22/EP17": {
      "hits": 1,
      "total": 1,
      "recall": 1.0
    },
    "P22/EP18": {
      "hits": 5,
      "total": 5,
      "recall": 1.0
    },
    "P22/EP19": {
      "hits": 0,
      "total": 2,
      "recall": 0.0
    },
    "P22/EP21": {
      "hits": 1,
      "total": 1,
      "recall": 1.0
    }
  },
  "by_type": {
    "LIP": {
      "hits": 8,
      "total": 9,
      "recall": 0.8888888888888888
    },
    "LQ": {
      "hits": 4,
      "total": 8,
      "recall": 0.5
    },
    "QB": {
      "hits": 48,
      "total": 55,
      "recall": 0.8727272727272727
    },
    "TECH": {
      "hits": 14,
      "total": 17,
      "recall": 0.8235294117647058
    }
  },
  "candidate_totals": {
    "all": 1040,
    "visual": 730,
    "lipsync": 310
  },
  "episode_candidates": [
    {
      "project": "P12",
      "episode": "EP24",
      "version_id": "08d5a789-7eca-460d-aafd-51dd672f0e91",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P12/EP24/review-delivery.json"
    },
    {
      "project": "P12",
      "episode": "EP25",
      "version_id": "25fdea03-44f1-4a52-8c76-539790dbd78a",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 8,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P12/EP25/review-delivery.json"
    },
    {
      "project": "P16",
      "episode": "EP26",
      "version_id": "0e5bb56c-64bd-4870-8d2a-28413ff1fdff",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 3,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P16/EP26/review-delivery.json"
    },
    {
      "project": "P16",
      "episode": "EP27",
      "version_id": "5c5499b6-c368-4182-ae54-196dc48e0896",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 5,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P16/EP27/review-delivery.json"
    },
    {
      "project": "P16",
      "episode": "EP28",
      "version_id": "c1978ebb-9d6b-4593-8b87-99faecdb9e52",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 3,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P16/EP28/review-delivery.json"
    },
    {
      "project": "P16",
      "episode": "EP29",
      "version_id": "ea447aa2-0779-444a-a627-d2795363c253",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 6,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P16/EP29/review-delivery.json"
    },
    {
      "project": "P16",
      "episode": "EP30",
      "version_id": "d75d6362-d604-447b-a734-c49e28ca9c9f",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 6,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P16/EP30/review-delivery.json"
    },
    {
      "project": "P17",
      "episode": "EP25",
      "version_id": "28643026-4264-4f2a-a45e-108b578020a5",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P17/EP25/review-delivery.json"
    },
    {
      "project": "P17",
      "episode": "EP27",
      "version_id": "a561b35e-0cd7-4bbe-9e75-18d6796d6de6",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 0,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P17/EP27/review-delivery.json"
    },
    {
      "project": "P18",
      "episode": "EP21",
      "version_id": "b3b56539-5b38-4016-b48e-f5760e7a317d",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P18/EP21/review-delivery.json"
    },
    {
      "project": "P18",
      "episode": "EP24",
      "version_id": "e69e1dd1-a812-4e67-8a3b-6bc7f3be1bd6",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 1,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P18/EP24/review-delivery.json"
    },
    {
      "project": "P18",
      "episode": "EP29",
      "version_id": "e74efcba-e2d2-4655-931f-b1580ff4a70d",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 0,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P18/EP29/review-delivery.json"
    },
    {
      "project": "P20",
      "episode": "EP21",
      "version_id": "a133c0b2-2efa-41e2-a8fc-eab6a86ab688",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P20/EP21/review-delivery.json"
    },
    {
      "project": "P20",
      "episode": "EP23",
      "version_id": "bf44721f-bc40-4d20-90c5-9ad9d66fdaba",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 3,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P20/EP23/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP01",
      "version_id": "98102dc4-ed08-4547-beba-8f719bc911ec",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 14,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP01/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP06",
      "version_id": "4f1690c8-e788-47e7-999c-06ca70ef7b98",
      "candidate_count": 40,
      "visual_count": 30,
      "lipsync_count": 10,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP06/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP07",
      "version_id": "e938087f-cc3a-494f-9eb2-ec49511f71cf",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 1,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP07/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP11",
      "version_id": "ac886ce5-ad23-4c58-b8e4-82254603cbbb",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 1,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP11/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP12",
      "version_id": "d73bc8a9-4954-4ca5-8e5f-9cd356c9a110",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 3,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP12/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP13",
      "version_id": "55c245aa-8bff-42d1-805b-529485195f51",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 8,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP13/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP14",
      "version_id": "b155b44e-1837-4d72-98d3-ecd182de9747",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP14/review-delivery.json"
    },
    {
      "project": "P21",
      "episode": "EP15",
      "version_id": "2fe23521-1692-4a97-be12-60108c7d13b8",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 4,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P21/EP15/review-delivery.json"
    },
    {
      "project": "P22",
      "episode": "EP17",
      "version_id": "feeb4b8b-5623-4383-b181-74f70cb3c282",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 1,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P22/EP17/review-delivery.json"
    },
    {
      "project": "P22",
      "episode": "EP18",
      "version_id": "0950edfa-5982-47c1-bcd3-dc730a549b95",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 5,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P22/EP18/review-delivery.json"
    },
    {
      "project": "P22",
      "episode": "EP19",
      "version_id": "ca7b3ad4-b5ee-436f-8269-b16e3e1a8be8",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 2,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P22/EP19/review-delivery.json"
    },
    {
      "project": "P22",
      "episode": "EP21",
      "version_id": "4bfd0cc6-3a22-4ce2-92e5-0205615437c2",
      "candidate_count": 40,
      "visual_count": 28,
      "lipsync_count": 12,
      "clean_gt_rows": 1,
      "declared_selected_count": 40,
      "declared_total_budget": 40,
      "actual_within_40": true,
      "declared_budget_within_40": true,
      "selected_count_matches_items": true,
      "delivery_path": "/Users/sk/Documents/recurve/xingyue-animation-review/technical-review/runs/p12-p22-batch-v6-target40-20260826/P22/EP21/review-delivery.json"
    }
  ],
  "misses": [
    {
      "defect_id": "TD-fa83d805782d",
      "project": "P12",
      "episode": "EP24",
      "version_id": "08d5a789-7eca-460d-aafd-51dd672f0e91",
      "types": [
        "TECH"
      ],
      "allowed_families": [
        "black",
        "deformation",
        "flicker",
        "freeze",
        "judder"
      ],
      "comment": "┗和 00:21 处撕纸的动作衔接得不自然",
      "gt_start_s": 20.0,
      "gt_end_s": 23.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 10.1,
      "nearest_type_aware_item": {
        "event_id": "event-0002",
        "queue_type": "visual",
        "queue_rank": 2,
        "families": [
          "deformation",
          "flicker",
          "judder"
        ],
        "start_s": 4.82,
        "end_s": 9.9,
        "risk_score": 1.2459
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0007",
        "queue_type": "lipsync",
        "queue_rank": 12,
        "families": [
          "lipsync"
        ],
        "start_s": 20.8,
        "end_s": 27.6,
        "risk_score": 1.08
      }
    },
    {
      "defect_id": "TD-047c546dd5b3",
      "project": "P12",
      "episode": "EP25",
      "version_id": "25fdea03-44f1-4a52-8c76-539790dbd78a",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "03:20.190 清晰度不够",
      "gt_start_s": 199.0,
      "gt_end_s": 202.0,
      "miss_class": "compatible-family-outside-1s",
      "nearest_type_aware_distance_s": 2.05,
      "nearest_type_aware_item": {
        "event_id": "event-0080",
        "queue_type": "visual",
        "queue_rank": 26,
        "families": [
          "blur",
          "flicker"
        ],
        "start_s": 204.05,
        "end_s": 205.7,
        "risk_score": 0.6739
      },
      "nearest_any_family_distance_s": 2.05,
      "nearest_any_family_item": {
        "event_id": "event-0080",
        "queue_type": "visual",
        "queue_rank": 26,
        "families": [
          "blur",
          "flicker"
        ],
        "start_s": 204.05,
        "end_s": 205.7,
        "risk_score": 0.6739
      }
    },
    {
      "defect_id": "TD-3f7a2982026a",
      "project": "P12",
      "episode": "EP25",
      "version_id": "25fdea03-44f1-4a52-8c76-539790dbd78a",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "01:21.289 脸上相对于男性更模糊",
      "gt_start_s": 80.0,
      "gt_end_s": 83.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 2.208,
      "nearest_type_aware_item": {
        "event_id": "event-0082",
        "queue_type": "visual",
        "queue_rank": 28,
        "families": [
          "blur"
        ],
        "start_s": 76.167,
        "end_s": 77.792,
        "risk_score": 0.4449
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0010",
        "queue_type": "lipsync",
        "queue_rank": 2,
        "families": [
          "lipsync"
        ],
        "start_s": 82.7,
        "end_s": 90.7,
        "risk_score": 2.054
      }
    },
    {
      "defect_id": "TD-eec773f7f220",
      "project": "P12",
      "episode": "EP25",
      "version_id": "25fdea03-44f1-4a52-8c76-539790dbd78a",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "02:46.433 耳朵清晰度有问题，头发的高光颜色不对",
      "gt_start_s": 165.0,
      "gt_end_s": 168.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 2.333,
      "nearest_type_aware_item": {
        "event_id": "event-0064",
        "queue_type": "visual",
        "queue_rank": 15,
        "families": [
          "blur",
          "deformation"
        ],
        "start_s": 154.93,
        "end_s": 162.667,
        "risk_score": 0.956
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0021",
        "queue_type": "lipsync",
        "queue_rank": 8,
        "families": [
          "lipsync"
        ],
        "start_s": 167.0,
        "end_s": 169.0,
        "risk_score": 1.667
      }
    },
    {
      "defect_id": "TD-f02f47454536",
      "project": "P16",
      "episode": "EP27",
      "version_id": "5c5499b6-c368-4182-ae54-196dc48e0896",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "00:21.478 面部模糊",
      "gt_start_s": 20.0,
      "gt_end_s": 23.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 11.75,
      "nearest_type_aware_item": {
        "event_id": "event-0002",
        "queue_type": "visual",
        "queue_rank": 16,
        "families": [
          "blur",
          "deformation",
          "flicker",
          "judder"
        ],
        "start_s": 0.32,
        "end_s": 8.25,
        "risk_score": 0.9714
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0002",
        "queue_type": "lipsync",
        "queue_rank": 5,
        "families": [
          "lipsync"
        ],
        "start_s": 20.3,
        "end_s": 26.2,
        "risk_score": 2.0
      }
    },
    {
      "defect_id": "TD-f048703f21d2",
      "project": "P16",
      "episode": "EP28",
      "version_id": "c1978ebb-9d6b-4593-8b87-99faecdb9e52",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "00:26.510 感觉稍微有点糊，但是如果和其他镜头差别不大的话，可以忽略，我是觉得面部比身体模糊一些",
      "gt_start_s": 25.0,
      "gt_end_s": 28.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 4.167,
      "nearest_type_aware_item": {
        "event_id": "event-0064",
        "queue_type": "visual",
        "queue_rank": 28,
        "families": [
          "blur"
        ],
        "start_s": 14.583,
        "end_s": 20.833,
        "risk_score": 0.7303
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0004",
        "queue_type": "lipsync",
        "queue_rank": 6,
        "families": [
          "lipsync"
        ],
        "start_s": 24.8,
        "end_s": 28.7,
        "risk_score": 2.0
      }
    },
    {
      "defect_id": "TD-607ae2ce7f14",
      "project": "P16",
      "episode": "EP29",
      "version_id": "ea447aa2-0779-444a-a627-d2795363c253",
      "types": [
        "TECH"
      ],
      "allowed_families": [
        "black",
        "deformation",
        "flicker",
        "freeze",
        "judder"
      ],
      "comment": "00:15.015 这个上摇镜头有点卡顿感",
      "gt_start_s": 14.0,
      "gt_end_s": 17.0,
      "miss_class": "compatible-family-outside-1s",
      "nearest_type_aware_distance_s": 1.85,
      "nearest_type_aware_item": {
        "event_id": "event-0006",
        "queue_type": "visual",
        "queue_rank": 9,
        "families": [
          "blur",
          "deformation",
          "judder"
        ],
        "start_s": 18.85,
        "end_s": 21.77,
        "risk_score": 1.0491
      },
      "nearest_any_family_distance_s": 1.85,
      "nearest_any_family_item": {
        "event_id": "event-0006",
        "queue_type": "visual",
        "queue_rank": 9,
        "families": [
          "blur",
          "deformation",
          "judder"
        ],
        "start_s": 18.85,
        "end_s": 21.77,
        "risk_score": 1.0491
      }
    },
    {
      "defect_id": "TD-dcf59aa6c857",
      "project": "P17",
      "episode": "EP25",
      "version_id": "28643026-4264-4f2a-a45e-108b578020a5",
      "types": [
        "LQ"
      ],
      "allowed_families": [
        "deformation"
      ],
      "comment": "00:17 ~00:24 グレン 的脸部变成了双重线条，作画崩坏了",
      "gt_start_s": 17.0,
      "gt_end_s": 24.0,
      "miss_class": "compatible-family-outside-1s",
      "nearest_type_aware_distance_s": 1.45,
      "nearest_type_aware_item": {
        "event_id": "event-0024",
        "queue_type": "visual",
        "queue_rank": 14,
        "families": [
          "blur",
          "deformation",
          "flicker",
          "judder"
        ],
        "start_s": 25.45,
        "end_s": 30.28,
        "risk_score": 1.008
      },
      "nearest_any_family_distance_s": 1.45,
      "nearest_any_family_item": {
        "event_id": "event-0024",
        "queue_type": "visual",
        "queue_rank": 14,
        "families": [
          "blur",
          "deformation",
          "flicker",
          "judder"
        ],
        "start_s": 25.45,
        "end_s": 30.28,
        "risk_score": 1.008
      }
    },
    {
      "defect_id": "TD-2583deb09dc9",
      "project": "P18",
      "episode": "EP21",
      "version_id": "b3b56539-5b38-4016-b48e-f5760e7a317d",
      "types": [
        "LIP"
      ],
      "allowed_families": [
        "lipsync"
      ],
      "comment": "03:37 ベアティ：“……能给我吗？”（……をいただけませんか？）这句台词没有配音（如果要配上这句台词的话，画面里的嘴巴也没有动）",
      "gt_start_s": 216.0,
      "gt_end_s": 219.0,
      "miss_class": "compatible-family-outside-1s",
      "nearest_type_aware_distance_s": 2.1,
      "nearest_type_aware_item": {
        "event_id": "lipsync-event-0030",
        "queue_type": "lipsync",
        "queue_rank": 4,
        "families": [
          "lipsync"
        ],
        "start_s": 211.2,
        "end_s": 213.9,
        "risk_score": 1.9
      },
      "nearest_any_family_distance_s": 1.1,
      "nearest_any_family_item": {
        "event_id": "event-0097",
        "queue_type": "visual",
        "queue_rank": 14,
        "families": [
          "deformation"
        ],
        "start_s": 213.6,
        "end_s": 214.9,
        "risk_score": 1.0142
      }
    },
    {
      "defect_id": "TD-eb30e90bff2b",
      "project": "P20",
      "episode": "EP21",
      "version_id": "a133c0b2-2efa-41e2-a8fc-eab6a86ab688",
      "types": [
        "TECH"
      ],
      "allowed_families": [
        "black",
        "deformation",
        "flicker",
        "freeze",
        "judder"
      ],
      "comment": "00:24.713 入镜很有卡顿感",
      "gt_start_s": 23.0,
      "gt_end_s": 26.0,
      "miss_class": "compatible-family-outside-1s",
      "nearest_type_aware_distance_s": 1.75,
      "nearest_type_aware_item": {
        "event_id": "event-0022",
        "queue_type": "visual",
        "queue_rank": 2,
        "families": [
          "blur",
          "deformation"
        ],
        "start_s": 18.93,
        "end_s": 21.25,
        "risk_score": 1.2196
      },
      "nearest_any_family_distance_s": 1.75,
      "nearest_any_family_item": {
        "event_id": "event-0022",
        "queue_type": "visual",
        "queue_rank": 2,
        "families": [
          "blur",
          "deformation"
        ],
        "start_s": 18.93,
        "end_s": 21.25,
        "risk_score": 1.2196
      }
    },
    {
      "defect_id": "TD-fb3d5a1bb82a",
      "project": "P21",
      "episode": "EP01",
      "version_id": "98102dc4-ed08-4547-beba-8f719bc911ec",
      "types": [
        "LQ"
      ],
      "allowed_families": [
        "deformation"
      ],
      "comment": "00:17.832 眼睛内容上有点不对，好像是有点液化还是设计都变了？另外颜色也不对了",
      "gt_start_s": 16.0,
      "gt_end_s": 19.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 2.27,
      "nearest_type_aware_item": {
        "event_id": "event-0021",
        "queue_type": "visual",
        "queue_rank": 5,
        "families": [
          "blur",
          "deformation",
          "flicker"
        ],
        "start_s": 21.27,
        "end_s": 30.04,
        "risk_score": 1.1754
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0002",
        "queue_type": "lipsync",
        "queue_rank": 6,
        "families": [
          "lipsync"
        ],
        "start_s": 17.4,
        "end_s": 18.3,
        "risk_score": 1.19
      }
    },
    {
      "defect_id": "TD-83142f6b13c3",
      "project": "P21",
      "episode": "EP13",
      "version_id": "55c245aa-8bff-42d1-805b-529485195f51",
      "types": [
        "LQ"
      ],
      "allowed_families": [
        "deformation"
      ],
      "comment": "00:48 伯爵夫人的左手形状变得有点奇怪",
      "gt_start_s": 47.0,
      "gt_end_s": 50.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 4.35,
      "nearest_type_aware_item": {
        "event_id": "event-0038",
        "queue_type": "visual",
        "queue_rank": 2,
        "families": [
          "blur",
          "deformation",
          "flicker"
        ],
        "start_s": 54.35,
        "end_s": 62.208,
        "risk_score": 1.2
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "event-0035",
        "queue_type": "visual",
        "queue_rank": 16,
        "families": [
          "flicker"
        ],
        "start_s": 49.13,
        "end_s": 49.45,
        "risk_score": 1.0247
      }
    },
    {
      "defect_id": "TD-e12fdeb05685",
      "project": "P21",
      "episode": "EP15",
      "version_id": "2fe23521-1692-4a97-be12-60108c7d13b8",
      "types": [
        "LQ"
      ],
      "allowed_families": [
        "deformation"
      ],
      "comment": "01:14 剪刀的形状看起来有点走样变形",
      "gt_start_s": 73.0,
      "gt_end_s": 76.0,
      "miss_class": "compatible-family-outside-1s",
      "nearest_type_aware_distance_s": 3.27,
      "nearest_type_aware_item": {
        "event_id": "event-0045",
        "queue_type": "visual",
        "queue_rank": 14,
        "families": [
          "blur",
          "deformation",
          "flicker",
          "judder"
        ],
        "start_s": 79.27,
        "end_s": 84.458,
        "risk_score": 1.0686
      },
      "nearest_any_family_distance_s": 1.917,
      "nearest_any_family_item": {
        "event_id": "event-0075",
        "queue_type": "visual",
        "queue_rank": 25,
        "families": [
          "blur"
        ],
        "start_s": 68.833,
        "end_s": 71.083,
        "risk_score": 0.7589
      }
    },
    {
      "defect_id": "TD-88bd8d60893d",
      "project": "P22",
      "episode": "EP19",
      "version_id": "ca7b3ad4-b5ee-436f-8269-b16e3e1a8be8",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "03:04.755 面部模糊",
      "gt_start_s": 183.0,
      "gt_end_s": 186.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 7.375,
      "nearest_type_aware_item": {
        "event_id": "event-0057",
        "queue_type": "visual",
        "queue_rank": 15,
        "families": [
          "blur",
          "deformation"
        ],
        "start_s": 165.27,
        "end_s": 175.625,
        "risk_score": 0.9827
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "lipsync-event-0030",
        "queue_type": "lipsync",
        "queue_rank": 3,
        "families": [
          "lipsync"
        ],
        "start_s": 180.7,
        "end_s": 183.1,
        "risk_score": 2.062
      }
    },
    {
      "defect_id": "TD-8be355e8834b",
      "project": "P22",
      "episode": "EP19",
      "version_id": "ca7b3ad4-b5ee-436f-8269-b16e3e1a8be8",
      "types": [
        "QB"
      ],
      "allowed_families": [
        "blur"
      ],
      "comment": "01:33.327 有变模糊的情况",
      "gt_start_s": 92.0,
      "gt_end_s": 95.0,
      "miss_class": "wrong-family-only",
      "nearest_type_aware_distance_s": 2.75,
      "nearest_type_aware_item": {
        "event_id": "event-0042",
        "queue_type": "visual",
        "queue_rank": 8,
        "families": [
          "blur",
          "deformation",
          "judder"
        ],
        "start_s": 97.75,
        "end_s": 112.037,
        "risk_score": 1.1578
      },
      "nearest_any_family_distance_s": 0.0,
      "nearest_any_family_item": {
        "event_id": "event-0040",
        "queue_type": "visual",
        "queue_rank": 2,
        "families": [
          "deformation",
          "flicker",
          "judder"
        ],
        "start_s": 93.27,
        "end_s": 94.57,
        "risk_score": 1.2022
      }
    }
  ],
  "budget_check": {
    "limit": 40,
    "episode_count": 26,
    "passing_episodes": 26,
    "all_pass": true,
    "violations": []
  }
}
