{"kind":"run","at":"2026-09-15T12:17:19.678Z","doc":"story-2-2.json","gates":17,"failed":2}
{"kind":"fail","at":"2026-09-15T12:17:19.678Z","doc":"story-2-2.json","gate":"coverage","label":"剧本节拍被恰好一次、按顺序、连续认领（分镜级）","detail":"E02-02#2 的节拍区间 [9, undefined] 不合法（该场共 22 拍）；E02-02#4 的节拍区间 [12, undefined] 不合法（该场共 22 拍）；E02-04#1 的节拍区间 [19, undefined] 不合法（该场共 22 拍）；E02-04#3 的节拍区间 [22, undefined] 不合法（该场共 22 拍）；E02 第 1 场第 9 拍没人认领；E02 第 1 场第 12 拍没人认领；E02 第 1 场第 19 拍没人认领；E02 第 1 场第 22–22 拍没人认领；E02-05#3 的节拍区间 [5, undefined] 不合法（该场共 22 拍）；E02-06#1 的节拍区间 [6, undefined] 不合法（该场共 22 拍）；E02-06#2 的节拍区间 [7, undefined] 不合法（该场共 22 拍）；E02-08#1 的节拍区间 [16, undefined] 不合法（该场共 22 拍）；E02-08#3 的节拍区间 [19, undefined] 不合法（该场共 22 拍）；E02-09#1 的节拍区间 [20, undefined] 不合法（该场共 22 拍）；E02-09#2 的节拍区间 [21, undefined] 不合法（该场共 22 拍）；E02-09#3 的节拍区间 [22, undefined] 不合法（该场共 22 拍）；E02 第 2 场第 5 拍没人认领；E02 第 2 场第 16 拍没人认领；E02 第 2 场第 19–22 拍没人认领"}
{"kind":"fail","at":"2026-09-15T12:17:19.678Z","doc":"story-2-2.json","gate":"h3-structure","label":"H3 首行对齐指令由分镜结构推导逐字对账，切点时刻逐个对","detail":"E02-01 缺「[Shot 2] At 00:04.000,」——切点时刻必须等于前面分镜秒数的累计；E02-01 缺「[Shot 3] At 00:07.000,」——切点时刻必须等于前面分镜秒数的累计；E02-02 缺「[Shot 2] At 00:04.000,」——切点时刻必须等于前面分镜秒数的累计；E02-02 缺「[Shot 3] At 00:07.000,」——切点时刻必须等于前面分镜秒数的累计；E02-02 缺「[Shot 4] At 00:11.000,」——切点时刻必须等于前面分镜秒数的累计；E02-03 缺「[Shot 2] At 00:04.000,」——切点时刻必须等于前面分镜秒数的累计；E02-03 缺「[Shot 3] At 00:08.000,」——切点时刻必须等于前面分镜秒数的累计；E02-04 缺「[Shot 2] At 00:03.000,」——切点时刻必须等于前面分镜秒数的累计；E02-04 缺「[Shot 3] At 00:07.000,」——切点时刻必须等于前面分镜秒数的累计；E02-05 缺「[Shot 2] At 00:04.000,」——切点时刻必须等于前面分镜秒数的累计；E02-05 缺「[Shot 3] At 00:07.000,」——切点时刻必须等于前面分镜秒数的累计；E02-06 缺「[Shot 2] At 00:04.000,」——切点时刻必须等于前面分镜秒数的累计；E02-06 缺「[Shot 3] At 00:08.000,」——切点时刻必须等于前面分镜秒数的累计；E02-07 缺「[Shot 2] At 00:05.000,」——切点时刻必须等于前面分镜秒数的累计；E02-07 缺「[Shot 3] At 00:09.000,」——切点时刻必须等于前面分镜秒数的累计；E02-08 缺「[Shot 2] At 00:03.000,」——切点时刻必须等于前面分镜秒数的累计；E02-08 缺「[Shot 3] At 00:07.000,」——切点时刻必须等于前面分镜秒数的累计；E02-09 缺「[Shot 2] At 00:03.000,」——切点时刻必须等于前面分镜秒数的累计；E02-09 缺「[Shot 3] At 00:06.000,」——切点时刻必须等于前面分镜秒数的累计"}
{"kind":"run","at":"2026-09-15T12:19:53.040Z","doc":"story-2-2.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:20:14.818Z","doc":"story-2-2.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:20:14.881Z","doc":"story-4-4.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:19.712Z","doc":"story-2-2.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:19.778Z","doc":"story-6-6.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:19.843Z","doc":"story-7-7.json","gates":17,"failed":5}
{"kind":"fail","at":"2026-09-15T12:25:19.843Z","doc":"story-7-7.json","gate":"coverage","label":"剧本节拍被恰好一次、按顺序、连续认领（分镜级）","detail":"E07-01#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-01#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-01#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-01#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-02#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-02#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-02#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-03#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-03#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-03#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-04#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-04#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-04#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-04#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-04#5 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-05#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-05#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-05#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-05#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-06#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-06#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-06#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-06#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-06#5 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-07#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-07#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-07#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-07#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-08#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-08#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-08#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-09#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-09#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-09#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-10#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-10#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-10#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-10#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-11#1 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-11#2 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-11#3 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-11#4 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07-11#5 的节拍区间 [undefined, undefined] 不合法（该场共 44 拍）；E07 第 1 场整场没有分镜"}
{"kind":"fail","at":"2026-09-15T12:25:19.843Z","doc":"story-7-7.json","gate":"segment-cap","label":"每段 0 < 总秒数 ≤ 15（一次生成的上限）","detail":"E07-01 共 0 秒；E07-02 共 0 秒；E07-03 共 0 秒；E07-04 共 0 秒；E07-05 共 0 秒；E07-06 共 0 秒；E07-07 共 0 秒；E07-08 共 0 秒；E07-09 共 0 秒；E07-10 共 0 秒；E07-11 共 0 秒"}
{"kind":"fail","at":"2026-09-15T12:25:19.843Z","doc":"story-7-7.json","gate":"cut-length","label":"每个分镜 2–5 秒——短剧的注意力节奏","detail":"E07-01#1 ? 秒；E07-01#2 ? 秒；E07-01#3 ? 秒；E07-01#4 ? 秒；E07-02#1 ? 秒；E07-02#2 ? 秒；E07-02#3 ? 秒；E07-03#1 ? 秒；E07-03#2 ? 秒；E07-03#3 ? 秒；E07-04#1 ? 秒；E07-04#2 ? 秒；E07-04#3 ? 秒；E07-04#4 ? 秒；E07-04#5 ? 秒；E07-05#1 ? 秒；E07-05#2 ? 秒；E07-05#3 ? 秒；E07-05#4 ? 秒；E07-06#1 ? 秒；E07-06#2 ? 秒；E07-06#3 ? 秒；E07-06#4 ? 秒；E07-06#5 ? 秒；E07-07#1 ? 秒；E07-07#2 ? 秒；E07-07#3 ? 秒；E07-07#4 ? 秒；E07-08#1 ? 秒；E07-08#2 ? 秒；E07-08#3 ? 秒；E07-09#1 ? 秒；E07-09#2 ? 秒；E07-09#3 ? 秒；E07-10#1 ? 秒；E07-10#2 ? 秒；E07-10#3 ? 秒；E07-10#4 ? 秒；E07-11#1 ? 秒；E07-11#2 ? 秒；E07-11#3 ? 秒；E07-11#4 ? 秒；E07-11#5 ? 秒"}
{"kind":"fail","at":"2026-09-15T12:25:19.843Z","doc":"story-7-7.json","gate":"ep-duration","label":"每集总时长在剧本目标 ±15% 内","detail":"E07 欠 102 秒（0s / 目标 120s）"}
{"kind":"fail","at":"2026-09-15T12:25:19.843Z","doc":"story-7-7.json","gate":"h3-structure","label":"H3 首行对齐指令由分镜结构推导逐字对账，切点时刻逐个对","detail":"E07-01 首行对齐指令和分镜结构对不上（promptLang=en）；E07-02 首行对齐指令和分镜结构对不上（promptLang=en）；E07-03 首行对齐指令和分镜结构对不上（promptLang=en）；E07-04 首行对齐指令和分镜结构对不上（promptLang=en）；E07-05 首行对齐指令和分镜结构对不上（promptLang=en）；E07-06 首行对齐指令和分镜结构对不上（promptLang=en）；E07-07 首行对齐指令和分镜结构对不上（promptLang=en）；E07-08 首行对齐指令和分镜结构对不上（promptLang=en）；E07-09 首行对齐指令和分镜结构对不上（promptLang=en）；E07-10 首行对齐指令和分镜结构对不上（promptLang=en）；E07-11 首行对齐指令和分镜结构对不上（promptLang=en）"}
{"kind":"run","at":"2026-09-15T12:25:19.910Z","doc":"story-8-8.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:19.981Z","doc":"story-9-9.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:20.048Z","doc":"story-10-10.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:20.114Z","doc":"story-13-13.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:25:20.181Z","doc":"story-14-14.json","gates":17,"failed":0}
{"kind":"run","at":"2026-09-15T12:28:06.989Z","doc":"story-11-11.json","gates":17,"failed":4}
{"kind":"fail","at":"2026-09-15T12:28:06.989Z","doc":"story-11-11.json","gate":"camera-phrase","label":"运镜用 H3 官方词表，且出现在自己的 [Shot k] 段落里","detail":"E11-01#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-01#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-01#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-02#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-02#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-03#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-03#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-04#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-04#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-04#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-04#4 在 h3Prompt 里找不到对应的 [Shot 4] 段落；E11-05#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-05#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-05#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-05#4 在 h3Prompt 里找不到对应的 [Shot 4] 段落；E11-06#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-06#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-07#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-07#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-07#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-08#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-08#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-08#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-09#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-09#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-09#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-10#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-10#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-10#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-11#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-11#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-11#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-12#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-12#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-12#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-13#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-13#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-13#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落；E11-14#1 在 h3Prompt 里找不到对应的 [Shot 1] 段落；E11-14#2 在 h3Prompt 里找不到对应的 [Shot 2] 段落；E11-14#3 在 h3Prompt 里找不到对应的 [Shot 3] 段落"}
{"kind":"fail","at":"2026-09-15T12:28:06.989Z","doc":"story-11-11.json","gate":"h3-structure","label":"H3 首行对齐指令由分镜结构推导逐字对账，切点时刻逐个对","detail":"E11-01 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-02 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-03 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-04 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-05 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-06 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-07 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-08 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-09 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-10 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-11 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-12 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-13 首行对齐指令和分镜结构对不上（promptLang=zh）；E11-14 首行对齐指令和分镜结构对不上（promptLang=zh）"}
{"kind":"fail","at":"2026-09-15T12:28:06.989Z","doc":"story-11-11.json","gate":"h3-dialogue","label":"认领节拍的台词逐字进 H3 提示词的 <d> 块","detail":"E11-02 的 h3Prompt 缺台词「剑心护主？有点意思。可惜…」的 <d> 块；E11-03 的 h3Prompt 缺台词「把玉佩交出来，老夫留她全…」的 <d> 块；E11-04 的 h3Prompt 缺台词「你放开！我跟他拼了！…」的 <d> 块；E11-05 的 h3Prompt 缺台词「别……你是要我别报仇？…」的 <d> 块；E11-05 的 h3Prompt 缺台词「好，我答应你。先治伤，别…」的 <d> 块；E11-05 的 h3Prompt 缺台词「师父就在外面。师姐，撑住…」的 <d> 块；E11-07 的 h3Prompt 缺台词「声带震碎，经脉断了三成。…」的 <d> 块；E11-08 的 h3Prompt 缺台词「能保命。说话，难。…」的 <d> 块；E11-09 的 h3Prompt 缺台词「师父，徒儿想下山寻药。…」的 <d> 块；E11-09 的 h3Prompt 缺台词「寻药？寻到血河宗门口去？…」的 <d> 块；E11-10 的 h3Prompt 缺台词「她替我挡的，我拿命还。…」的 <d> 块；E11-10 的 h3Prompt 缺台词「拿命还？你这条命，先问过…」的 <d> 块；E11-11 的 h3Prompt 缺台词「剑名听雪。老夫年轻时用的…」的 <d> 块；E11-12 的 h3Prompt 缺台词「这剑，替老夫护着你。…」的 <d> 块；E11-12 的 h3Prompt 缺台词「出去之后，别当剑宗的人。…」的 <d> 块；E11-13 的 h3Prompt 缺台词「师姐，等我回来。你的嗓子…」的 <d> 块；E11-14 的 h3Prompt 缺台词「血河宗，早盯上剑心宿主了…」的 <d> 块"}
{"kind":"fail","at":"2026-09-15T12:28:06.989Z","doc":"story-11-11.json","gate":"h3-lang","label":"H3 提示词语言与设定一致（promptLang=zh，正文中文、骨架 token 官方英文格式）","detail":"E11-01 设定中文提示词（promptLang=zh），正文却写成了英文；E11-02 设定中文提示词（promptLang=zh），正文却写成了英文；E11-03 设定中文提示词（promptLang=zh），正文却写成了英文；E11-04 设定中文提示词（promptLang=zh），正文却写成了英文；E11-05 设定中文提示词（promptLang=zh），正文却写成了英文；E11-06 设定中文提示词（promptLang=zh），正文却写成了英文；E11-07 设定中文提示词（promptLang=zh），正文却写成了英文；E11-08 设定中文提示词（promptLang=zh），正文却写成了英文；E11-09 设定中文提示词（promptLang=zh），正文却写成了英文；E11-10 设定中文提示词（promptLang=zh），正文却写成了英文；E11-11 设定中文提示词（promptLang=zh），正文却写成了英文；E11-12 设定中文提示词（promptLang=zh），正文却写成了英文；E11-13 设定中文提示词（promptLang=zh），正文却写成了英文；E11-14 设定中文提示词（promptLang=zh），正文却写成了英文"}
{"kind":"run","at":"2026-09-15T12:31:45.647Z","doc":"story-15-15.json","gates":17,"failed":2}
{"kind":"fail","at":"2026-09-15T12:31:45.647Z","doc":"story-15-15.json","gate":"coverage","label":"剧本节拍被恰好一次、按顺序、连续认领（分镜级）","detail":"E15 第 1 场第 13 拍被 E15-03#4 重复认领；E15 第 1 场第 14 拍被 E15-03#5 重复认领"}
{"kind":"fail","at":"2026-09-15T12:31:45.647Z","doc":"story-15-15.json","gate":"dialogue-fit","label":"认领节拍的台词装得进分镜秒数","detail":"E15-03#3 台词 5.1 秒装不进 3 秒；E15-03#4 台词 5.1 秒装不进 3 秒"}
