{
  "project_id": "EP01_HQ_2026-08-28_bobo-high-definition",
  "episode_id": "EP01_HQ",
  "episode_number": "1-HQ",
  "title": "第 01 集 HQ：Bobo in the Wrong Box（高畫質重製版）",
  "theme": "EP01 Bobo 小故事原生高畫質重製；與 Draft 進度完全分開",
  "current_stage": "threepass_subtitle_review",
  "progress_percent": 100,
  "blocked": false,
  "blocker": "",
  "next_action": "確認 S02E 新配音與嘴型收尾。",
  "updated_at": "2026-09-21T09:58:25.298630+08:00",
  "stages": [
    {
      "id": "script",
      "name": "HQ 腳本/故事沿用",
      "status": "done",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "沿用目前 EP01 Bobo story structure。"
    },
    {
      "id": "final_story",
      "name": "HQ final story / beat sheet",
      "status": "done",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "已建立 HQ 獨立頁；影片槽重置為 pending。"
    },
    {
      "id": "character_images",
      "name": "HQ 共用角色/場景/Bobo 參考",
      "status": "done",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "已複製 Mia、Leo、Bobo、場景與道具參考圖。"
    },
    {
      "id": "prompts",
      "name": "HQ native HD prompts",
      "status": "pending",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "待逐段撰寫原生 HD prompt。"
    },
    {
      "id": "source_videos",
      "name": "HQ Source clips / native HD I2V",
      "status": "pending",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "尚未產生 HQ source clips。"
    },
    {
      "id": "visual_qa",
      "name": "HQ 視覺 QA",
      "status": "pending",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "待每段 HQ 候選生成後審核。"
    },
    {
      "id": "audio_qa",
      "name": "HQ 音訊 / STT QA",
      "status": "pending",
      "updated_at": "2026-08-28 10:02:28",
      "notes": "不得有 BGM；對白需精確；聲音一致性需另外處理。"
    },
    {
      "id": "assembly",
      "name": "HQ 串接與 web/master 輸出",
      "status": "done",
      "updated_at": "2026-09-19T09:09:42.325508+08:00",
      "notes": "S01–S05 最新版串接完成；S06 已刪除。"
    },
    {
      "id": "final_review",
      "name": "HQ 最終審核 / 交付",
      "status": "pending",
      "updated_at": "2026-08-28 10:02:28",
      "notes": ""
    }
  ],
  "active_issues": [
    {
      "time": "2026-08-28 10:02:28",
      "severity": "production_rule",
      "owner": "主 Hermes / 視覺 Agent / Provider Execution Agent / 審核 Agent",
      "issue": "HQ page must stay independent from current EP01 draft; no low-res draft video should be promoted as HQ final.",
      "required_fix": "Generate native HD clips and only attach accepted HQ outputs to this page."
    },
    {
      "time": "2026-08-28",
      "issue": "p11 retry3 rejected by user: visual semantics did not match Slow down; needs obvious fast-to-slow action."
    },
    {
      "time": "2026-08-28",
      "issue": "p15 prior candidate rejected by user for silent Leo mouth; audio resynced to visible mouth interval."
    }
  ],
  "recent_updates": [
    {
      "time": "2026-08-31",
      "note": "Assembled EP01 HQ full story S01–S10 review candidate from current grouped clips; ffprobe 118.79s / 7.57MB; full-sequence Whisper base checked; silent-window hallucinations treated as advisory."
    },
    {
      "time": "2026-08-30",
      "note": "S04 marked rejected: sudden big cabinet is wrong; must use existing low shelf/low shelf box prompt direction from low-res fix."
    },
    {
      "time": "2026-08-30 12:35:00",
      "note": "S01E changed from 1.20s silence to 0.70s opening silence per user request; S01D accepted fix kept; S01-FULL reassembled and STT verified."
    },
    {
      "time": "2026-08-30 12:20:00",
      "note": "S01D kept as accepted; S01E rebuilt with 1.20s true opening silence and first 0.50s source audio removed; S01-FULL reassembled and STT verified."
    },
    {
      "time": "2026-08-30 12:05:00",
      "note": "S01D first 0.80s hard-muted to remove cut-off speech-like opening; S01-FULL reassembled with fixed S01D and fixed S01E."
    },
    {
      "time": "2026-08-30 11:50:00",
      "note": "S01E first 0.55s changed to hard silence (not fade only); S01-FULL reassembled and STT verified."
    },
    {
      "time": "2026-08-30 11:35:00",
      "note": "S01E opening noise repaired with 0.18s audio fade-in; S01-FULL reassembled with fixed S01E and STT verified."
    },
    {
      "time": "2026-08-30 11:18:00",
      "note": "Added review_status/review_label/review_note to story microsegments and FULL stitched candidates; renderer now shows a story review column like the short phrase table."
    },
    {
      "time": "2026-08-30 11:05:00",
      "note": "Added existing Clip 01 assembled video into visible S01-FULL sequence row so all story groups 01-08 show a FULL stitched candidate."
    },
    {
      "time": "2026-08-30 11:00:00",
      "note": "Assembled story subsegments 02ABC, 03ABCD, 04ABCD, 05ABCD, 06ABCD, 07ABCD, 08AB into full group candidate videos and published them to dashboard data."
    },
    {
      "time": "2026-08-30 10:45:00",
      "note": "Fixed camera_sequence_summary: rebuilt the visible story segment order from current hq_bobo_stepwise_regen generation_clips so S04C-S08A no longer disappear before S08B."
    },
    {
      "time": "2026-08-30 10:38:50",
      "note": "Synced generated HQ story Clip 08B retry3 into plan.json visible story videos and generation_clips; ready for user review."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 8A passed: Mia says they found Bobo before class; no music/no subtitles; candidate ready."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 7D retry2 passed: Leo sees Bobo inside the box; no music; candidate ready. Next: Clip 7E There he is."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 7C retry2 passed: Mia says open slowly; box stays fully closed. Next: Clip 7D slow opening/reveal."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 7B retry3 passed: Leo says My turn with hand on closed prop box; no music; candidate ready. Next: Clip 7C."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 7A retry3 passed: new camera shot with clearly closed prop box; replaces failed 7A/7A retry2. Next: Clip 7B retry2 My turn."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 7A generated from Clip 6D final frame; STT/BGM/visual pass; candidate ready. Next: Clip 7B My turn."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 6D generated from Clip 6C final frame; STT/BGM/visual pass; candidate ready. Next: Clip 7A prop box transition."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 6C generated from Clip 6B final frame; STT/BGM/visual pass; candidate ready. Next: look behind board."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 6B generated from Clip 6A final frame; STT/BGM/visual pass; candidate ready. Next: Clip 6C identify scarf tag."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 6A generated from Clip 5D final frame; STT/BGM/visual pass; candidate ready. Next: Clip 6B I got it."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 5D generated from Clip 5C final frame; STT/BGM/visual pass; candidate ready. Next: Clip 6A red tag behind board."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 5C generated from Clip 5B final frame; STT/BGM/visual pass; candidate ready. Next: Clip 5D read the label."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 5B generated from Clip 5A final frame; STT/BGM/visual pass; candidate ready. Next: Clip 5C Here is the small flashlight."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 5A generated from Clip 4D final frame; STT/BGM/visual pass; candidate ready. Next: Clip 5B Pass it here."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 4D generated from Clip 4C final frame; STT/BGM/visual pass; candidate ready. Next: Clip 5A lower shelf too dark."
    },
    {
      "date": "2026-08-29",
      "item": "HQ story Clip 4C retry6 generated from Clip 4B final frame using MiniMaxH3DirectorConditioning with true first_frame + Mia/Leo/scene/empty-prop refs; STT/BGM/visual pass; candidate ready."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 2C retry2 passed after removing Bobo-like puppet from background; Clip 3A generating from Clip 2C final frame."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 2B generated from Clip 2A final frame; visual/STT/native BGM pass; Clip 2C generating from Clip 2B final frame."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 2A generated from Clip 1E final frame; visual/STT/BGM pass after vocals-only repair; Clip 2B generating from Clip 2A final frame."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 1 assembled from 1A–1E; full sequence STT passed; deployed for review while Clip 2A generates."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 1E generated from Clip 1D final frame; visual/STT/BGM pass after vocals-only repair; story clips migrated to hq_bobo_stepwise_regen section; Clip 2A generating."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 1D generated from Clip 1C final frame; visual/STT/native BGM gate pass; Clip 1E is generating from Clip 1D final frame."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 1C generated from Clip 1B final frame, visuals/STT/BGM pass after vocals-only repair; Clip 1D is generating from Clip 1C final frame."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 1B generated from Clip 1A final frame, visuals/STT/BGM pass after vocals-only repair; Clip 1C is generating from Clip 1B final frame."
    },
    {
      "date": "2026-08-28",
      "item": "HQ story Clip 1A generated at 1344x768, vocals-only BGM repair passed, ready for review; Clip 1B is generating from Clip 1A final frame."
    },
    {
      "date": "2026-08-28",
      "item": "p11 candidate ready: visual pass, clean vocals replacement STT/BGM pass; p07 retry9 running"
    },
    {
      "date": "2026-08-28",
      "item": "p15 candidate ready: visual pass, clean vocals replacement STT/BGM pass; p11 retry3 running"
    },
    {
      "date": "2026-08-28",
      "item": "p13 and p14 approved by user"
    },
    {
      "date": "2026-08-28",
      "item": "p14 Ready candidate ready: STT/BGM/visual pass; p15 running"
    },
    {
      "date": "2026-08-28",
      "item": "p13 candidate ready: visual PASS, clean vocals replacement STT/BGM pass; p14 running"
    },
    {
      "date": "2026-08-28",
      "item": "p10 and p12 approved by user"
    },
    {
      "date": "2026-08-28",
      "item": "p12 pass-it-here candidate ready: STT/BGM pass; fine frames confirm crayon transfer to Mia"
    },
    {
      "date": "2026-08-28",
      "item": "p11 retry2 rejected: STT ok but BGM fail and visual slow/stop warning not clear"
    },
    {
      "date": "2026-08-28",
      "item": "p10 corrected: old 0.90s audio desync removed; new voice starts at 1.65s, STT/BGM pass"
    },
    {
      "date": "2026-08-28",
      "item": "p10 audio-aligned candidate rejected by user: sound and mouth not synchronized"
    },
    {
      "date": "2026-08-28",
      "item": "p11 retry1 rejected: repeated Slow down audio, BGM fail, weak slow/stop visual; p07 retry7 running"
    },
    {
      "date": "2026-08-28",
      "item": "p07 retry6 rejected: rocket/theme poster appeared in background; p11 generation running"
    },
    {
      "date": "2026-08-28",
      "item": "p10 high-five visual PASS; native audio failed; clean High five aligned at 0.90s; STT/BGM pass; candidate ready"
    },
    {
      "date": "2026-08-28",
      "item": "p07 retry5 rejected: bookend idea visible but speaker mismatch; p10 generation running"
    },
    {
      "date": "2026-08-28",
      "item": "p08 and p09 approved by user"
    },
    {
      "date": "2026-08-28",
      "item": "p08 retry3 and p09 retry2 rebuilt with native vocals-only audio; STT/BGM pass; added as review candidates"
    },
    {
      "date": "2026-08-28",
      "item": "p06 3s-aligned Need help approved by user"
    },
    {
      "date": "2026-08-28",
      "item": "p08 retry2 rejected after visual QA: star piece/gap still ambiguous; p09 retry2 Leo voice generation started"
    },
    {
      "date": "2026-08-28",
      "item": "p08 rejected wrong puzzle gap; p09 rejected wrong speaker voice/timing; both removed from active review"
    },
    {
      "date": "2026-08-28",
      "item": "p01 approved by user; p06 Need help moved to 3.00s per user timing feedback; STT/BGM pass"
    },
    {
      "date": "2026-08-28",
      "item": "p06 audio alignment corrected: moved Need help? from 0.8s to 1.50s after user feedback; STT/BGM pass"
    },
    {
      "date": "2026-08-28",
      "item": "p05 approved by user; p09 retry1 visual PASS, native audio BGM failed, aligned clean voice candidate ready"
    },
    {
      "time": "2026-08-28 p01 retry2 early warning candidate ready",
      "actor": "主 Hermes / p01 retry2 QA",
      "event": "p01 retry1 rejected; retry2 stop-before-step visual pass; native BGM failed but clean voice inserted at 0.25s and STT/BGM reverified.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_stop_before_step_retry2_voice_ref_1344x768_20260828_audio_early_aligned_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p01 rejected late warning retry2",
      "actor": "使用者 / 主 Hermes",
      "event": "p01 retry1 rejected: audio still late and Mia speaks after Leo steps/touches hazard. Removed from active review; retry2 required.",
      "artifact": "p01"
    },
    {
      "time": "2026-08-28 p08 puzzle audio-aligned candidate ready",
      "actor": "主 Hermes / p08 QA",
      "event": "p08 retry1 puzzle candidate passed after wide-trim audio alignment; added to HQ dashboard. p07 retry4 is running.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p08_almost_there_puzzle_retry1_voice_ref_1344x768_20260828_audio_aligned_wide_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p01 floor-block audio-aligned candidate ready",
      "actor": "主 Hermes / p01 QA",
      "event": "p01 regenerated as floor-block Watch out; native warning was late, repaired by aligned clean voice at ~0.6s; added to HQ dashboard.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_floor_block_retry1_voice_ref_1344x768_20260828_audio_aligned_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p01_rejected_regenerating_watch_out_floor_block",
      "actor": "使用者 / 主 Hermes",
      "event": "p01 also requested for regeneration; old approved p01 removed from active review until new QA-passing candidate exists.",
      "artifact": "p01"
    },
    {
      "time": "2026-08-28 audio aligned p05 p06 fix",
      "actor": "主 Hermes audio sync repair",
      "event": "Root cause found: clean voice refs contained leading silence; p05/p06 repaired by trimming voice and inserting at ~0.8s, then STT/BGM reverified.",
      "artifact": "p05,p06"
    },
    {
      "time": "2026-08-28 p06 retry2 wobbly-stack candidate ready",
      "actor": "主 Hermes / p06 retry2 QA",
      "event": "p06 retry2 wobbly-stack candidate passed after original clean audio replacement; added to HQ dashboard. p07 retry2 is running.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p06_need_help_wobbly_stack_retry2_voice_ref_1344x768_20260828_original_voice_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p05 retry8 shape-sorter candidate ready",
      "actor": "主 Hermes / p05 retry8 QA",
      "event": "p05 retry8 shape-sorter candidate passed after original clean audio replacement; added to HQ dashboard. p06 retry2 is running.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p05_try_again_shape_sorter_retry8_voice_ref_1344x768_20260828_original_voice_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p05_retry7_rejected_rewrite_shape_sorter_retry8",
      "actor": "使用者 / 主 Hermes",
      "event": "p05 retry7 rejected: meaning not understandable. Rewriting p05 as shape-sorter fail/retry/success.",
      "artifact": "p05"
    },
    {
      "time": "2026-08-28 p05 retry7 color-match candidate ready",
      "actor": "主 Hermes / p05 retry7 QA",
      "event": "p05 retry7 color-match candidate passed after original clean audio replacement; added to HQ dashboard. p06-p15 remain regenerating.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p05_try_again_color_match_retry7_voice_ref_1344x768_20260828_original_voice_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p08_p15_also_rejected_regenerating",
      "actor": "使用者 / 主 Hermes",
      "event": "User extended regeneration scope: p08-p15 also need regeneration. p05-p15 are now all removed from active review until new QA-passing candidates are produced.",
      "artifact": "p05-p15"
    },
    {
      "time": "2026-08-28 p05_p06_p07_rejected_regenerating",
      "actor": "使用者 / 主 Hermes",
      "event": "p05 rejected again; p06 and p07 also requested for regeneration. All three removed from active review until new QA-passing candidates exist.",
      "artifact": "p05,p06,p07"
    },
    {
      "time": "2026-08-28 p05 retry6 block-stack candidate ready",
      "actor": "主 Hermes / p05 retry6 QA",
      "event": "p05 retry6 block-stack candidate passed STT, BGM gate, and visual self-review; added to HQ dashboard.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p05_try_again_no_rocket_block_stack_retry6_voice_ref_1344x768_20260828_native_vocals_only_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p05_retry5_failed_retry6_block_stack",
      "actor": "主 Hermes visual QA",
      "event": "p05 retry5 rejected internally: final success not clear; red ball remained in hand above cup. Starting retry6 with clearer fallen-block then stacked-block success.",
      "artifact": "p05"
    },
    {
      "time": "2026-08-28 p05_retry4_failed_retry5_regen",
      "actor": "主 Hermes QA",
      "event": "p05 retry4 rejected internally: wrong extra word/BGM fail and final success not clear. Starting retry5 with explicit failed start and ball-inside-cup final.",
      "artifact": "p05"
    },
    {
      "time": "2026-08-28 p05_rejected_failure_not_clear_regen_ring_toss",
      "actor": "使用者 / 主 Hermes semantic QA",
      "event": "p05 rejected: failed first attempt is not visually clear enough. Regenerating with clearer ring-toss miss/retry semantics.",
      "artifact": "p05"
    },
    {
      "time": "2026-08-28 p04 approved p05 retry2 candidate ready",
      "actor": "主 Hermes / p05 retry2 QA",
      "event": "p04 approved; p05 retry2 regenerated with no rocket/theme prop, exact STT, BGM gate pass, visual retry semantics pass; added to dashboard.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p05_try_again_no_rocket_sticker_retry2_exact_voice_ref_1344x768_20260828_native_audio.mp4"
    },
    {
      "time": "2026-08-28 p04_approved_p05_reprompt_regenerate",
      "actor": "使用者 / 主 Hermes",
      "event": "p04 approved; p05 requested for same-style prompt rewrite/regeneration. Old p05 removed from active review.",
      "artifact": "p04,p05"
    },
    {
      "time": "2026-08-28 p04 no-rocket surprise-blocks candidate ready",
      "actor": "主 Hermes / p04 reprompt QA",
      "event": "p04 regenerated with no rocket/theme prop; visual surprise-block QA pass; STT/BGM gate pass; added to dashboard.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p04_no_way_no_rocket_surprise_blocks_voice_ref_1344x768_20260828_native_audio.mp4"
    },
    {
      "time": "2026-08-28 p03_approved_p04_reprompt_regenerate",
      "actor": "使用者 / 主 Hermes",
      "event": "p03 approved; p04 requested for prompt rewrite/regeneration. Old p04 removed from active review.",
      "artifact": "p03,p04"
    },
    {
      "time": "2026-08-28 p03 no-rocket turn-taking candidate ready",
      "actor": "主 Hermes / p03 reprompt QA",
      "event": "p03 regenerated with no rocket/theme prop; visual turn-taking self-review pass; cleaned native audio passed STT and Demucs BGM gate.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p03_my_turn_no_rocket_turn_taking_voice_ref_1344x768_20260828_native_vocals_only_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p03 user_requested_reprompt_regenerate",
      "actor": "使用者 / 主 Hermes",
      "event": "User requested p03 prompt rewrite/regeneration. Old p03 candidate removed from active review until new QA pass.",
      "artifact": "p03"
    },
    {
      "time": "2026-08-28 user_approved_p01_p02",
      "actor": "使用者",
      "event": "p01 and p02 short phrase HQ candidates approved by user.",
      "artifact": "p01,p02"
    },
    {
      "time": "2026-08-28 p02 no-rocket early-mia candidate ready",
      "actor": "主 Hermes / p02 semantic+audio QA",
      "event": "p02 regenerated without rocket/theme prop; visual timing self-review pass; cleaned native audio passed STT and Demucs BGM gate.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p02_hold_on_no_rocket_mia_early_voice_ref_1344x768_20260828_native_vocals_only_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p02 rejected timing mouth late leo pressed",
      "actor": "使用者 / 主 Hermes semantic QA",
      "event": "p02 rejected: Mia voice/mouth too late; Leo already pressed before the warning.",
      "artifact": "p02"
    },
    {
      "time": "2026-08-28 13:42:27",
      "actor": "主 Hermes / batch HQ short phrase QA",
      "event": "HQ p02-p15 batch completed: 13 pass, 1 failed internal QA.",
      "artifact": "generated/video/hq_short_phrases_20260828/batch_results_p02_p15.json"
    },
    {
      "time": "2026-08-28 p02-p08 one-by-one catchup sync",
      "actor": "主 Hermes / one-by-one catchup sync",
      "event": "p02–p08 were already generated and audio-QA passed; synced all seven to HQ dashboard now.",
      "artifact": "generated/video/hq_short_phrases_20260828/batch_results_p02_p15.partial.json"
    },
    {
      "time": "2026-08-28 p02 one-by-one HQ sync",
      "actor": "主 Hermes / one-by-one HQ sync",
      "event": "Synced p02 only to HQ dashboard after QA pass, correcting the workflow to one clip at a time.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p02_hold_on_original_prompt_1344x768_20260828_original_voice_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p01 original accepted voice no-bgm candidate",
      "actor": "主 Hermes / audio rebuild",
      "event": "Replaced p01 HQ vocals-only/weird voice with original accepted p01 clean voice line and ran Demucs BGM gate.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_floor_block_retry1_voice_ref_1344x768_20260828_audio_aligned_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 user_rejected_p01_vocals_only_voice_not_original",
      "actor": "使用者 / 主 Hermes audio QA",
      "event": "User rejected p01 HQ vocals-only audio because the voice sounds strange and unlike the original voice line.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_original_prompt_retry2_1344x768_20260828_vocals_only_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 p01 vocals-only no-bgm QA pass",
      "actor": "主 Hermes / Demucs BGM gate",
      "event": "Rebuilt p01 HQ candidate with vocals-only audio and verified no-vocals accompaniment stem is low, addressing user-heard BGM.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_original_prompt_retry2_1344x768_20260828_vocals_only_no_bgm.mp4"
    },
    {
      "time": "2026-08-28 user_heard_bgm_reject_p01_tailmuted",
      "actor": "使用者 / 主 Hermes audio QA",
      "event": "User heard background music in the tail-muted p01 HQ candidate; candidate rejected because automated RMS/STT did not reliably classify music.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_original_prompt_retry2_quiet_tail_1344x768_20260828_tailmuted_after_2p6s.mp4"
    },
    {
      "time": "2026-08-28 p01 retry2 tail-muted audio QA pass",
      "actor": "主 Hermes / audio QA",
      "event": "Created p01 HQ retry2 tail-muted review candidate after raw audio tail failed non-speech-bed QA; verified STT and silent tail.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_original_prompt_retry2_quiet_tail_1344x768_20260828_tailmuted_after_2p6s.mp4"
    },
    {
      "time": "2026-08-28 audio QA fail p01",
      "actor": "主 Hermes / audio QA",
      "event": "Retracted HQ p01 candidate from pass-ready state after independent audio-bed QA found loud non-speech audio after Watch out.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_original_prompt_1344x768_20260828_source.mp4"
    },
    {
      "time": "2026-08-28 10:10 CST",
      "actor": "主 Hermes / ComfyUI H3",
      "event": "Generated HQ p01 Watch out! using the original prompt at native 1344x768 and verified format/STT/contact sheet.",
      "artifact": "generated/video/hq_short_phrases_20260828/ep01_hq_p01_watch_out_original_prompt_1344x768_20260828_source.mp4"
    },
    {
      "time": "2026-08-28 10:02:28",
      "actor": "主 Hermes / dashboard sync",
      "event": "Created a new independent EP01_HQ episode page for native high-definition regeneration.",
      "artifact": "EP01_HQ_2026-08-28_bobo-high-definition/status.json / plan.json / phrase_details.json / assets.json"
    }
  ],
  "final_assembly": {
    "id": "ep01_story_threepass_20260919",
    "title": "EP01 三遍完整成片｜無字幕 → 英文 → 中英文",
    "file": "generated/story_threepass_20260919/review.mp4",
    "video": "generated/story_threepass_20260919/review.mp4",
    "contact_sheet": "generated/story_threepass_20260919/contact.jpg",
    "qa_file": "generated/story_threepass_20260919/qa.json",
    "quality": "1344 × 768 / 24 fps；網頁壓縮預覽，高畫質 master.mp4 已存 Hermes",
    "status": "generated",
    "review_status": "pending_review",
    "review_label": "待確認",
    "duration_seconds": 270.500001,
    "updated_at": "2026-09-19T22:14:35.567058+08:00",
    "notes": "4 分 30.5 秒，已納入 S02 校色與新增 S02E，並修正 S02E 配音和嘴型收尾；S05E 使用原版。三遍依序無字幕／英文／中英雙語，沿用 EP02 字幕樣式。",
    "note": "技術 QA 完成，待確認。",
    "videos": [
      {
        "id": "ep01_story_s01_s05_20260919",
        "title": "EP01 完整故事｜S01–S05",
        "file": "generated/story_s01_s05_20260919/review.mp4",
        "video": "generated/story_s01_s05_20260919/review.mp4",
        "contact_sheet": "generated/story_s01_s05_20260919/contact.jpg",
        "qa_file": "generated/story_s01_s05_20260919/qa.json",
        "quality": "1344 × 768 / 24 fps",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "S02E 動畫已重新生成，修正 Mia 說完後持續張嘴的動作；固定角色配音重新對齊、校正顏色亮度，待確認。",
        "duration_seconds": 90.166667,
        "updated_at": "2026-09-19T22:15:01.298113+08:00",
        "notes": "S01–S05 完整故事，90.167 秒。已納入 S02 校色及新增 S02E。",
        "production_note_before_approval": "新版 S04F 與 S05 五段已納入；台詞、接點、時間軸與校色已檢查，成片待確認。",
        "note": "已納入 S02E 嘴型與配音收尾修正；S05E 使用原版，待確認。"
      },
      {
        "id": "ep01_phrases_p01_p15_20260920",
        "title": "EP01 舊版短句合輯｜待以確認的 P05 三遍版重新替換",
        "file": "generated/phrases_p01_p15_20260920/review.mp4",
        "video": "generated/phrases_p01_p15_20260920/review.mp4",
        "master_file": "generated/phrases_p01_p15_20260920/master.mp4",
        "contact_sheet": "generated/phrases_p01_p15_20260920/contact.jpg",
        "qa_file": "generated/phrases_p01_p15_20260920/qa.json",
        "quality": "1344 × 768 / 24fps；高畫質原檔另存 Hermes",
        "duration_seconds": 211.91666666666663,
        "status": "pending_review",
        "review_status": "pending_review",
        "review_label": "待替換 P05 三遍版",
        "notes": "P05 新三遍版已確認；此既有合輯仍含舊 P05，尚待重新組裝。",
        "updated_at": "2026-09-21T09:42:47.143405+08:00"
      }
    ],
    "master_file": "generated/story_threepass_20260919/master.mp4",
    "latest_teaching_preview": "generated/phrases_p01_p15_20260920/review.mp4"
  },
  "review_history": [
    {
      "at": "2026-09-19T13:45:05.071048+08:00",
      "scope": "Currently published EP01 story clips S01–S05, five scene assemblies and full 85-second story; approval is bound to these video hashes.",
      "user_message": "我審核過了，目前更新上去的都可以用了",
      "record_file": "current_story_approval.json"
    }
  ]
}