Hao0321/ai-short-drama · 第 2 次运行

写了一份全剧骨架,3,000 字(去掉空白计)。

skill
Hao0321/ai-short-drama@a1a00d39
装进工作目录的 skill
ai-short-drama
时间
2026-10-31 08:24–08:30(北京时间),6 分钟
轮数
4 轮,工具调用 17 次,按 API 价格折算 $4.44
匿名编号
491(评审只看到这个编号)
盲比
和另外 20 个参赛者的第 2 次运行各比一场:对照组(不装 skill) · eternityspring/shuohao-skills · zenstory-ai/drama-skills · lixiaoxiao9888-create/manju-laoli-skill · jtydhr88/screenwriting-skills · Shanyin-ai/shanyin-screenwriting-master · lixiaoxiao9888-create/short-drama-factory · adoria111/emma-screenwriting-skills · zhu5859243-free/hongguo-shortdrama-screenwriting · catyiqian/qianqianwriting · zenstory-ai/oh-story-claudecode · lingfengQAQ/webnovel-writer · 0xsline/short-drama · Tomsawyerhu/Chinese-WebNovel-Skill · xindoo/sumeru · LanyXiaosheng/bookflow-skill · dama-cyber/Distilled-Novel-Toolbox · tance-mang/chinese-webnovel-skills · xiaofeng-928/chinese-longnovel-skill · qingyabailu-git/webfiction-write
原始文件
产出和问答记录 · 原始日志

写出的文件

标了标签的是认定为全剧骨架、拿去匿名打包的文件(deliverables.toml)。

验尸官的婚礼_全剧骨架.md 全剧骨架 3,435 字
# 《验尸官的婚礼》全剧骨架

> 60 集×1–2 分钟|竖屏|AI 仿真人。分集大纲与剧本不得与本骨架冲突。

## 一、核心契约

- **观众承诺**:每集林晚亮出一样看得见的证据,打沈家一次脸;每赢一次,离凶手近一步,也离她自己的签名近一步。
- **季问题**:三年前是谁杀了沈峥?林晚敢不敢推翻自己签的报告?
- **为什么不能一次掀牌**:尸体三天内已火化;“意外”结论上签的是她自己的名字,真相一揭,第一个被追责的是她。
- **新鲜变量**:复仇者手里也握着一份假报告。证据越完整,她越接近自首。

## 二、逻辑护栏(已定稿,写作不得违背)

1. 三年前尸体泡海、面部损毁,“沈峥”又在国外“养病”、还给她发过消息;虎口疤不罕见,她当时没起疑。
2. 程野回国后借病疏远她,一年后退婚。“晦气”只是借口,真正的原因是宋婉仪怕法医看穿替身。
3. 宋家知道那道疤,让程野公开场合戴手套;交换戒指必须摘手套,破绽由此出现。
4. 那块旧表是沈峥订婚时送她的。婚礼上“新郎”看见它毫无反应,这是第二个破绽。
5. 尸体手里攥着一枚船锚袖扣,被周启年私藏,用来牵制宋知远;宋知远现在那对袖扣有一枚是新配的。

## 三、证据引擎(每集必守)

1. 每集至少一样**能拍特写**的证据(疤、伤、切片、文书、签名、录音、物件),不能只靠台词。
2. 证据走三步:出示 → 沈家毁证或抹黑 → 林晚用专业换路拿回或反证;同一种毁证手段不连用两次。
3. 每次胜利推进 A 线“谁杀了沈峥”或 B 线“我签的报告”,每 5 集两线都要动。
4. 每个小弧收尾,至少一件证据存进终审证据链,被毁的不算。
5. 林晚只凭证据说话,不靠直觉,不靠别人救场。

## 四、终审证据链(第 60 集庭审全部到位)

| # | 证据 | 首现 | 入链 | 证明 |
|---|---|---:|---:|---|
| 1 | 无名男尸虎口疤的私存照片 | 1 | 6 | 尸体有疤,新郎没有 |
| 2 | 林晚私留的备份组织切片 | 3 | 18 | 与沈砚 DNA 比对:死者是沈峥 |
| 3 | 她最初写“他杀”的手写初稿 | 9 | 33 | 原结论被篡改 |
| 4 | 后脑凹陷伤的形状测量 | 13 | 44 | 凶器是扳手,凶手比沈砚高 |
| 5 | 周启年承认受贿的录音 | 31 | 35 | 改结论是受人指使 |
| 6 | 尸体手中那枚船锚袖扣 | 20(回忆) | 50 | 指向宋知远 |
| 7 | 沈氏港口洗钱账目 | 38 | 55 | 杀人动机 |
| 8 | 程野的证词与整容记录 | 4 | 58 | 替身由谁安排、为什么 |

## 五、五段结构

**第一段 · 婚礼(1–12)**|对手:苏曼丽与沈家亲戚|R0–R1
- 1–3 Pilot:第 1 集,她被当众嘲笑是“晦气前任”;新郎摘手套交换戒指,虎口没有疤,她想起三年前解剖台上那道疤。第 2 集,她用一个法医细节当场反击苏曼丽,随后被赶出婚礼。第 3 集,答谢宴上苏曼丽塞给她求救房卡:踩她的人,在向她求救。
- 4–8:房里见程野耳后整容疤,替身确认。档案照片已被抽走,她用私存照片入链。沈砚登场,不信她。
- 9–12:中心档案“失火”;沈家买通媒体称她“嫉妒成疯的前任”,周启年借机停她的职。关门:替身确认;开门:死者是谁?

**第二段 · 死者是谁(13–30)**|对手:宋婉仪+周启年|R2–R3
- 13–18:停职后在体制外查。沈砚由疑转帮,DNA 确认死者是沈峥,沈砚崩溃。
- 19–24:查程野身份:赌债、整容、被控制的妹妹。宋婉仪用钱和舆论围剿她,并派人销毁切片。
- 25–30:沈峥三十岁的股权交接会定为倒计时。中点(30):林晚当众让“新郎”摘下手套,替身曝光。爽债 D1 回收:当年退婚的根本不是沈峥。**错胜**:舆论认定宋婉仪害死儿子、找替身骗股权,宋知远“大义灭亲”,接管沈氏。集尾,他和林晚握手,袖扣一新一旧。

**第三段 · 凶手会学习(31–45)**|对手:周启年→宋知远|R4
- 31–35:林晚主动设局,录下周启年承认受贿,金表当众被扒。周启年反咬:录音同样证明她签了字。她被立案调查,B 线第一次见血。
- 36–42:宋知远抢先伪造证据,把凶手指向那晚醉酒的沈砚;苏曼丽为家族生意反水,作证沈砚当晚和哥哥吵过架。沈砚被抓,林晚失去内应。
- 43–45:她用伤口测量证明凶器是扳手、凶手比沈砚高,沈砚获释。宋知远第一次被怀疑。

**第四段 · 游艇夜(46–55)**|对手:宋知远|R5
- 46–49:程野想起当年找他整容的是宋知远,成了下一个“意外”目标;林晚救下他,换来出庭作证的承诺。
- 50–52:周启年在看守所遇险,交出藏了三年的袖扣;宋婉仪得知杀子的是亲弟弟,倒戈。
- 53–55:苏曼丽发现宋知远要让苏家顶洗钱的罪,交出港口账目,D5 回收。

**第五段 · 她的签名(56–60)**
- 56:宋知远提出交易:抹掉她的签字记录、恢复职务,换她撤回证据。三年前周启年接受的正是这种交易。她拒绝。
- 57–59:庭审中宋知远以她签过假报告为由,申请排除她全部证据;她当庭承认受迫签字,推翻原报告。
- 60:她重新写下“死者沈峥,他杀”,签上自己的名字。宋知远认罪,宋婉仪交出沈氏,程野带着妹妹去自首。墓前,她放下那块表。

## 六、四条阶梯

- **揭露**:R0 新郎是替身(1)→ R1 私存照片证实无名尸有疤(6)→ R2 死者是沈峥(18)→ R3 替身公开(30)→ R4 凶器是扳手,凶手不是沈砚(44)→ R5 宋知远洗钱杀人(55)。
- **对手**:苏曼丽(近身羞辱,12)→ 宋婉仪(守家族秘密,52 倒戈)→ 周启年(制度守门人,也是她的镜像:同一份报告,相反的选择,35)→ 宋知远(幕后,60)。
- **能力**:看出破绽(1)→ 用专业赢下一局(2–18)→ 主动设局(31)→ 保护他人(46)→ 拒绝捷径(56)。
- **代价**:停职(12)→ 被立案调查(35)→ 失去内应(42)→ 当庭自认(59)。

## 七、人物弧

| 人物 | 错误信念 → 结局选择 | 底线/学习 |
|---|---|---|
| 林晚 | “我是被逼的,所以签字不算我的” → 亲手推翻、亲手重签 | 只认证据,包括对自己不利的证据 |
| 程野 | “活下去就得当别人” → 以自己的名字自首 | 妹妹是他唯一的软肋 |
| 沈砚 | “那晚我什么都不记得” → 面对自己的醉酒 | 由嘲讽者变内应,被冤不退出 |
| 苏曼丽 | “家族生意高于一切” → 反水一次后交出账目 | 只反水一次,第二次选择自己 |
| 宋婉仪 | “儿子是意外死的,保住股份就是保住他” → 交出沈氏 | 绝不伤害儿子 |
| 周启年 | “收钱改个字,不算杀人” → 遇险后交出袖扣、出庭作证 | 怕死胜过怕丢脸 |
| 宋知远 | “我在替沈家赚钱” → 认罪伏法 | 毁证→伪证→嫁祸→灭口→收买,每次换招 |

## 八、爽债账

| ID | 开债 | 小额回收 | 全额回收 |
|---|---|---:|---:|
| D1 | 当众退婚,骂她“晦气” | 2 | 30 |
| D2 | 苏曼丽当众羞辱 | 3 | 55 |
| D3 | 媒体称她“疯女” | 18 | 30 |
| D4 | 周启年逼签、停职 | 31 | 35 |
| D5 | 苏曼丽反水 | 45 | 55 |
| D6 | 宋知远嫁祸沈砚 | 44 | 60 |
| D7 | 她自己的签名 | 35 | 60 |

同一种羞辱最多重复一次,第三次须由林晚设局反打。

## 九、分集与 AI 生产约束

- 每集只有一个主转折;集尾钩子在证据出现、身份相撞、错胜、倒计时、情感真相之间轮换,“大人物到门口”全剧最多三次。
- 固定资产 ID:林晚的风衣和旧表、程野的白手套(30 集后不再戴)、沈砚的耳钉、宋知远的袖扣(一新一旧)、周启年的金表。沈峥与程野同脸,回忆戏用冷色调和虎口疤区分。
- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布、器械特写。

过程

按时间顺序。点开工具调用能看到完整的输入和返回;思考的内容 Claude Code 不对外输出,日志里只有「在这里思考过多久」。

第 1 轮

输入:
/ai-short-drama 我要给一部短剧写全剧骨架,要求在 premise.md 里,写好存成文件放在当前目录。

思考

Bash List directory and read premise file

输入

ls -la && cat premise.md 2>/dev/null; ls .claude/skills/ai-short-drama .claude/skills/ai-short-drama/references

返回

total 16
drwxr-xr-x  4 user  wheel   128 Oct 30 17:24 .
drwxr-xr-x  4 user  wheel   128 Oct 30 17:24 ..
drwxr-xr-x  4 user  wheel   128 Oct 30 17:24 .claude
-rw-r--r--  1 user  wheel  4233 Oct 30 17:24 premise.md
这是一张选题卡。它要拍成 60 集竖屏短剧,每集 1–2 分钟,全部由 AI 拍。
请交一份全剧骨架:整部剧怎么走,用来管住后面的分集大纲和剧本。
只交骨架,不写分集大纲和剧本正文,3000 字以内。

《验尸官的婚礼》

标签:女频、大女主、复仇、悬疑、豪门

一句话卖点:被退婚的女法医去参加前未婚夫的婚礼,一眼认出新郎是替身:真新郎三年前就躺在她的解剖台上。

观众代入谁:林晚,被当众退婚的女法医,冷静、专业,靠本事翻盘

爽点落在谁脸上:沈家一家,和三年前逼她签字的周启年

故事靠什么往前推:每一集她都要拿出一样看得见的证据:一道疤、一张切片、一段录音。沈家每次都想办法毁掉证据、抹黑她;她每赢一次,就离“三年前是谁杀了沈峥”更近一步,也离她自己签过的那份假报告更近一步。

人物:
- **林晚**(女主 · 法医)
  - 样子:28 岁,齐耳短发,素颜,常穿一件深灰长风衣;左手腕戴一块男式旧机械表,表带磨白了。说话不抬声调。
  - 小传:市法医中心的法医,干了七年。四年前和沈家长子沈峥订婚,一年前被“沈峥”当众退婚,说她天天摸死人、晦气。三年前她解剖过一具无名男尸,最初写的是“他杀”,被周启年逼着改成“意外”,签了字,这是她心里的一根刺。冷静,嘴不饶人,认证据不认人。
- **程野**(新郎 · 顶着沈峥的脸的替身)
  - 样子:30 岁,和沈峥一样的脸、一样的金丝眼镜;婚礼上一直戴着白手套,左手虎口光洁,没有疤。
  - 小传:欠了一身赌债的模仿演员。三年前被宋家找去整容,学沈峥说话、走路、签名,替他活着。他不知道沈峥是怎么死的,只知道自己哪天没用了,也会“意外”。
- **沈砚**(沈家二少 · 沈峥的弟弟)
  - 样子:26 岁,寸头,西装从来不扣扣子,右耳一枚黑耳钉,笑起来像什么都不在乎。
  - 小传:从小跟在哥哥后面。三年前哥哥从国外“养病”回来,他第一个觉得不对,可没人信他。那晚游艇上他也在,喝醉了,什么都记不清,这件事他谁都没说。一开始不信林晚这个法医,后来成了她在沈家唯一的内应。
- **苏曼丽**(新娘 · 苏家千金)
  - 样子:26 岁,长卷发,永远带着全妆,酒红色指甲。
  - 小传:苏家和沈氏一起做港口生意,她嫁进沈家是两家的买卖。新婚夜她就觉得丈夫不对,却不敢说。前期带头踩林晚,答谢宴上偷偷把求救的房卡塞给她;为了家里的生意,后面还会反水一次。
- **周启年**(法医中心主任 · 三年前逼她签字的人)
  - 样子:55 岁,花白背头,老花镜挂在胸前,腕上一块和工资不相称的金表。
  - 小传:林晚的老领导。三年前收了宋知远的钱,把那具无名男尸的结论从“他杀”改成“意外”,逼林晚签字,三天内火化。
- **宋婉仪**(沈家主母 · 沈峥、沈砚的母亲)
  - 样子:52 岁,盘发,素色旗袍,珍珠耳环,说话永远轻声细语。
  - 小传:丈夫早逝,靠弟弟宋知远撑起沈氏。按老爷子的遗嘱,长孙沈峥三十岁接手沈氏一半的股份,人没了就归二房。三年前儿子“落水”,她为了保住股份找人顶替了他,一直以为儿子是意外死的。
- **宋知远**(宋婉仪的弟弟 · 沈氏海外业务负责人)
  - 样子:48 岁,高个子,笑容和气,袖口总是一对船锚形状的银袖扣。
  - 小传:沈家人眼里最可靠的舅舅。借沈氏的海外港口洗钱,三年前被沈峥发现,在游艇上用扳手砸了他的后脑,推下海;之后买通周启年改了结论,又让姐姐以为是意外。全剧最后的对手。

结局:宋知远认罪伏法,宋婉仪交出沈氏,程野带着妹妹去自首。林晚当庭推翻自己三年前签的报告,重新写下“死者沈峥,他杀”,签上自己的名字。最后一场,她把那块表放在沈峥的墓前。
.claude/skills/ai-short-drama:
CHANGELOG.md
CONTRIBUTING.md
LICENSE
README.md
SKILL.md
agents
evals
examples
references
scripts
tests

.claude/skills/ai-short-drama/references:
automation.md
evidence-registry.md
genre-engines.md
platform-strategy.md
production-pipeline.md
quality-compliance.md
story-architecture.md
studio-workflow.md
templates.md

思考 1 秒

Bash Read story architecture reference and template headings

输入

cd /scratch/003/ws/003-skeleton/Hao0321__ai-short-drama/run-2/.claude/skills/ai-short-drama/references && wc -l *.md && cat story-architecture.md && grep -n "^#" templates.md

返回

      72 automation.md
     147 evidence-registry.md
     199 genre-engines.md
     123 platform-strategy.md
     244 production-pipeline.md
     115 quality-compliance.md
     240 story-architecture.md
     207 studio-workflow.md
     291 templates.md
    1638 total
# 爆款短劇故事架構

本檔管理 Premise Contract、揭露、敵人、爽債、季弧與單集節奏。它不是固定秒表;平台、集長與觀眾決定密度。

## 目錄

1. [Premise Contract](#1-premise-contract)
2. [四條階梯](#2-四條階梯)
3. [季與 micro-arc](#3-季與-micro-arc)
4. [單集 beat map](#4-單集-beat-map)
5. [Cliffhanger 類型](#5-cliffhanger-類型)
6. [爽債與伏筆帳](#6-爽債與伏筆帳)
7. [角色與反派](#7-角色與反派)
8. [低質敘事反模式](#8-低質敘事反模式)

## 1. Premise Contract

每案先填:

```text
Audience:
Surface / format:
Public identity:
Hidden truth or advantage:
Core injustice / pressure:
Immediate desire:
Irreversible season goal:
Audience promise:
Fresh mechanism:
AI-native visual promise:
Why the hero cannot reveal everything now:
Season question:
End transformation:
```

### 好 premise 的三種張力同時存在

- **外在:** 敵人、制度、災難或倒數。
- **人際:** 誰信/不信主角,誰會因真相受傷。
- **內在:** 主角的錯誤信念或代價,不因能力變強自動消失。

## 2. 四條階梯

### 2.1 Reveal Ladder

避免第一集把所有牌翻完:

| 層 | 典型揭露 | 效果 |
|---|---|---|
| R0 | 異常徵兆 | 讓觀眾知道他不是表面那樣 |
| R1 | 單一技能/記憶 | 贏第一次小局 |
| R2 | 資源/人脈 | 改變局部權力 |
| R3 | 組織地位/血統 | 全場重新站隊 |
| R4 | 隱藏目的/犧牲 | 重新解讀前面行為 |
| R5 | 世界/系統真相 | 改變季問題 |

不是每部都要六層。先設最大秘密,再反推可分割證據。

### 2.2 Antagonist Ladder

```text
E1 近身羞辱者:能立刻傷害日常
E2 守門人:掌握機會、名譽或資源
E3 組織權力:能改規則
E4 幕後對手:理解主角能力並主動反制
E5 鏡像敵人:與主角相似,但做出相反道德選擇
```

每次升級要改變問題類型,不只是把敵人數值變大。

### 2.3 Competence Ladder

- 看見問題
- 用有限能力解一局
- 主動設局
- 承擔他人/組織
- 放棄捷徑或改寫規則

### 2.4 Cost Ladder

- 隱藏的麻煩
- 關係代價
- 資源/名譽代價
- 身份暴露
- 核心價值抉擇

沒有 Cost Ladder 的外掛只會降低懸念。

## 3. 季與 micro-arc

### Pilot 3 集

| 集 | 功能 | 必須交付 |
|---|---|---|
| E1 | 證明 premise | 公開壓制 + 異常牌 + 不可逆事件 |
| E2 | 證明爽感 | 第一筆小債回收 + 更高風險 |
| E3 | 證明連載 | 第一次公開反轉 + 新敵人/真相層 |

### 每 3–5 集一個 micro-arc

```text
Setup debt → attempts → local payoff → consequence → higher-order question
```

micro-arc 結尾同時做到:關一扇門、開一扇更大的門。

### 30 集參考骨架

| 集數 | 功能 |
|---|---|
| 1–3 | Premise proof;第一個小爽點 |
| 4–6 | 局部勢力與第一盟友;R1 |
| 7–10 | 第一公開勝利;E1 結束、E2 登場 |
| 11–15 | 主角主動布局;代價首次傷及關係;R2 |
| 16–20 | 中點錯勝/身份逼近暴露;E3 |
| 21–24 | 反派學習並反制;主角失去原優勢 |
| 25–27 | R3/R4 重解前情;終局選擇形成 |
| 28–30 | 償還主要爽債、解 season question、保留下一季新問題 |

60 集不是把每格拉長一倍;要增加第二條角色弧、第二個制度層或中段世界轉向。

## 4. 單集 beat map

### 社群 discovery 版:30–60 秒

```text
0–3s   Cold open:視覺不公、異常結果或危機已發生
3–12s  Context under pressure:只補理解當下選擇所需資訊
12–35s Escalation:對手加碼,主角不能退
35–50s Turn + payoff/progress:權力/資訊/關係不可逆改變
最後 3–7s Cliffhanger + end image
```

### App/連載版:60–120 秒

```text
0–5s    重接上一集 + 新刺激,不完整重播
5–25s   新壓力與本集目標
25–65s  行動、阻礙、選擇
65–95s  Turn 與局部回收
最後 5–10s 新資訊/新危機/揭露門檻
```

秒數是起稿 heuristic。若台詞多、物理複雜或情緒需要停頓,減少事件,不把語速加到不可演。

### Scene 檢查

每場必須至少改變一項:

- 誰掌權
- 誰知道什麼
- 誰信任誰
- 誰擁有物/證據
- 目標或代價
- 空間與安全狀態

如果什麼都沒改,只是把小說旁白念完,刪掉或合併。

## 5. Cliffhanger 類型

1. **Recognition:** 權力人物認出主角,但稱呼尚未出口。
2. **Evidence:** 關鍵證據出現,尚未公開內容。
3. **Decision:** 主角做出不可逆選擇,尚未看到代價。
4. **Reversal:** 以為勝利,真正權力者進場。
5. **Deadline:** 災難/任務/婚約/審判倒數開始。
6. **Identity collision:** 兩個身份線即將相撞。
7. **Rule exception:** 已知規則第一次失效。
8. **Emotional truth:** 一句話讓前面關係全部重解。

### 假 cliffhanger

- 把一句正常台詞切一半
- 下一集第一秒證明毫無後果
- 每集都是「大人物剛到門口」
- 角色能一句話化解卻集體不說
- 重播上一集佔掉本集大半

## 6. 爽債與伏筆帳

### Payoff Debt

```text
Debt ID:
Opened episode:
Injustice / promise:
Audience expected payoff:
Due window:
Escalation beats:
Paid episode:
Payoff changes what:
```

原則:

- E1 開的至少一筆小債在 E2–E3 償還。
- 大債可以晚還,但途中必有證據、局部勝利或權力移動。
- 同一種羞辱最多重複一次;第三次必須改變形式或由主角主動設局。

### Foreshadow Ledger

- 每個伏筆必有 planted、reinforced、paid。
- 不為續集硬加從未出現的雙胞胎、秘寶或系統規則。
- 伏筆回收要改變角色選擇,不只是觀眾知道 trivia。

## 7. 角色與反派

### 主角五欄

```text
Wants:本集會主動追求什麼
Needs:長期要學會什麼
False belief:他相信但不完全正確的事
Power:能改局的資源/能力
Cost:使用 power 會失去什麼
```

### 反派五欄

```text
Goal:不以「欺負主角」為唯一人生目標
Leverage:現在能傷害什麼
Belief:為何覺得自己有理
Learning:看到主角哪張牌後會怎麼調整
Boundary:哪件事連他也不做,或何時跨過界
```

好反派會逼主角改策略;鏡像反派會逼主角回答「我有同樣力量,為何不成為他」。

## 8. 低質敘事反模式

- **只加集數不加狀態:** 多集結束後權力、資訊、關係都沒變。
- **爽點通膨:** 每次都靠更大頭銜,沒有更難選擇。
- **主角被動等認領:** 所有翻盤靠別人進場跪下。
- **反派失智:** 明知主角強仍用完全相同方式挑釁。
- **系統代寫人生:** 主角只接受任務,沒有價值選擇。
- **重生全知:** 改變前史後仍精準知道全部未來。
- **身份揭露即結局:** 沒有規劃身份之後的 season question。
- **情緒只有喊:** 用大聲台詞替代證據、行動與反應。
- **旁白解決一切:** 重要事件沒被演出。
- **懸念作弊:** 隱藏鏡頭已經拍到、角色已經知道的資訊。
1:# AI 短劇工作模板
3:## 目錄
16:## 1. Opportunity Map
19:# Opportunity Map — [市場/平台/日期]
21:## 一句話結論
24:## 已驗證需求
29:## 飽和與缺口
34:## 原創組合
41:## 最小驗證
47:## 2. Greenlight Sheet
50:# Greenlight — [概念名]
69:## 3. Premise Contract
95:## 4. Series Bible
98:# Series Bible — [標題/版本/日期]
100:## Premise Contract
103:## 世界與系統規則
107:## 角色卡
111:## Reveal Ladder
115:## Antagonist Ladder
119:## Payoff Debt Ledger
123:## Entity Registry
126:## 結局護欄
132:## 5. 三集 Pilot
144:## 6. 單集可拍劇本
147:# EP [N] — [集名]
155:## Scene 1 — [地點 ID/日夜]
166:## Scene 2...
168:## 集尾 Cliffhanger
174:## Continuation Capsule
183:## 7. Production Pack JSON
266:## 8. Audit/實驗日誌
269:# Audit — [作品/集數/日期]
271:## 觀察
278:## 診斷
284:## 下一個單變量實驗

思考

Read ./.claude/skills/ai-short-drama/references/templates.md

输入

{
 "file_path": "/scratch/003/ws/003-skeleton/Hao0321__ai-short-drama/run-2/.claude/skills/ai-short-drama/references/templates.md",
 "offset": 69,
 "limit": 75
}

返回

69	## 3. Premise Contract
70	
71	```yaml
72	title: 暫名
73	market: 市場
74	surface: 平台或發行表面
75	format: ai_live_action | 2d_motion_comic | 3d | anthropomorphic
76	episode_duration_seconds: 60
77	planned_episodes: 30
78	
79	protagonist:
80	  public_identity: 大家以為他是誰
81	  hidden_truth: 他真正是誰/能做什麼
82	  desire: 他主動要得到什麼
83	  wound_or_fear: 什麼讓他不願直接亮牌
84	  constraint_or_cost: 為何不能立刻全力解決
85	
86	engine: 主爽感引擎
87	core_injustice: 第一筆必須償還的不公
88	audience_promise: 觀眾每個 micro-arc 可期待什麼
89	season_question: 觀眾追完整季想知道的問題
90	fresh_twist: 具體的新規則/代價/關係/視角
91	ai_advantage: AI 能帶來什麼非裝飾性的優勢
92	ending_contract: 結局至少需要兌現什麼
93	```
94	
95	## 4. Series Bible
96	
97	```markdown
98	# Series Bible — [標題/版本/日期]
99	
100	## Premise Contract
101	[貼上已核准版本]
102	
103	## 世界與系統規則
104	| 規則 ID | 能做什麼 | 不能做什麼 | 成本 | 漏洞/反例 |
105	|---|---|---|---|---|
106	
107	## 角色卡
108	| ID | 公開身份 | 隱藏真相 | 欲望 | 恐懼/錯誤信念 | 資源/能力 | 表演/聲音錨 |
109	|---|---|---|---|---|---|---|
110	
111	## Reveal Ladder
112	| 層級 | 揭露內容 | 誰知道 | 證據 | 改變的權力 | 目標集 |
113	|---:|---|---|---|---|---:|
114	
115	## Antagonist Ladder
116	| 層級 | 對手 | 控制的資源 | 會如何學習 | 主角付出的代價 | 收束集 |
117	|---:|---|---|---|---|---:|
118	
119	## Payoff Debt Ledger
120	| Debt ID | 開債事件 | 情緒 | 最晚償還 | 償還方式 | 升級出的新問題 |
121	|---|---|---|---:|---|---|
122	
123	## Entity Registry
124	[依 production-pipeline.md 建立角色、地點、道具、服裝、聲音 ID]
125	
126	## 結局護欄
127	- 必須兌現:
128	- 不可背叛的角色選擇:
129	- 不可用巧合解決:
130	```
131	
132	## 5. 三集 Pilot
133	
134	```markdown
135	| 集 | Cold open | Pressure/選擇 | Dominant turn | Payoff/Progress | Cliffhanger | State delta | 驗證假設 |
136	|---:|---|---|---|---|---|---|---|
137	| 1 | | | | | | | premise 可讀性 |
138	| 2 | | | | 第一個小回報 | | | 世界/表演接受度 |
139	| 3 | | | 第一次公開反轉 | | 更高階對手/代價 | | 追更能力 |
140	```
141	
142	每列不得只寫情緒。`State delta` 要能回答「本集播完後,什麼永久不同?」
143	

思考 125 秒

Bash Skim compliance guardrails reference

输入

sed -n 1,60p quality-compliance.md | head -60; grep -n -i "60" genre-engines.md | head

返回

# 品質與合規護欄

## 目錄

1. 品質門檻
2. 連載一致性 QA
3. 低質模式
4. 權利與人格
5. 中國大陸發布注意
6. 發布前檢查表

## 1. 品質門檻

### 故事

- 首集清楚建立主角欲望、壓力與表面/真實差距。
- 每集有事件,不以設定介紹替代劇情。
- turn 改變資訊、權力、關係、資源或風險。
- payoff debt 有開、有期限、有償還,不連續虐待觀眾。
- cliffhanger 產生新的具體預測,不是句子說到一半。

### 畫面

- 主角色臉型、年齡、髮型、身形、服裝組與識別物一致。
- 同一場的時間、光源、空間方位與道具位置連續。
- 角色真的互動;避免整集只有單人正臉輪流開口。
- 時間、文字、手指、口型、物理和物件數量經人工抽查。
- 只在動的物體上使用合理動態模糊,重要事件可讀。

### 聲音

- 聲線 ID 穩定,情緒方向來自角色目標,不只寫「更激動」。
- 對白可說、可呼吸;避免每句同節奏、過度播音腔。
- 口型明顯不準時改 shot、縮短台詞或以反應鏡頭遮接。
- 音樂不覆蓋關鍵證據、笑點、呼吸或權力轉折。

### 剪輯

- 第一個可理解事件儘早出現。
- cut 服務於視線、動作與權力轉移,不為快而亂切。
- 字幕安全區、斷句、說話人與時序正確。
- 結尾保留真正的懸念畫面,不再加一段解釋把鉤子說死。

## 2. 連載一致性 QA

逐集比較前一集 `continuation_capsule`:

- 誰知道哪個秘密?
- 誰持有哪件道具/證據?
- 傷勢、妝髮、服裝與污損是否延續?
- 關係是陌生、懷疑、結盟、決裂還是公開敵對?
- 系統資源、冷卻、任務、代價是否正確?
- 已揭露的牌是否被角色或觀眾莫名忘記?
- 已償還的羞辱是否又原樣重演?
- 地點、日夜、通勤與事件順序是否可能?

任何更改都寫入 registry 或 state ledger,不只在 prompt 臨時補一句。

## 3. 低質模式

思考

Write ./验尸官的婚礼_全剧骨架.md

输入

/scratch/003/ws/003-skeleton/Hao0321__ai-short-drama/run-2/验尸官的婚礼_全剧骨架.md

# 《验尸官的婚礼》全剧骨架

> 60 集 × 1–2 分钟|竖屏|AI 仿真人|女频大女主·悬疑复仇。本骨架管住后续分集大纲与剧本,冲突时以本文件为准;要改先改这里。

## 一、核心契约

- **观众承诺**:每集林晚亮出一样看得见的证据,打沈家一次脸;每赢一次,离凶手近一步,也离她自己的签名近一步。
- **季问题**:三年前是谁杀了沈峥?林晚敢不敢推翻自己签的报告?
- **为什么不能一次掀牌**:尸体三天内已火化;“意外”结论上签的是她自己的名字,真相一揭,第一个被追责的是她。
- **新鲜变量**:复仇者手里也握着一份假报告。证据越完整,她越接近自首。
- **AI 优势**:同一张脸两个人(沈峥/程野),靠虎口疤、白手套、回忆色调区分。

## 二、逻辑护栏(补充设定,写作不得违背)

1. 三年前尸体泡海、面部损毁;当时“沈峥”人在国外“养病”,还给她发过消息。虎口疤不罕见,所以她当时没起疑。
2. 程野回国后借病疏远她,一年后退婚。“晦气”只是借口,真正的原因是宋婉仪怕法医看穿替身。
3. 宋家知道那道疤,所以让程野在公开场合戴手套。婚礼交换戒指必须摘手套,这是破绽出现的时刻。
4. 那块旧表是沈峥订婚时送她的。婚礼上“新郎”看见它毫无反应,这是第二个破绽。
5. 船锚袖扣原本有一对。尸体手里攥着其中一枚,被周启年私藏下来,用来牵制宋知远;宋知远现在戴的那一对,其中一枚是新配的。

## 三、证据引擎(每集必守)

1. 每集至少一样**能拍特写**的证据:疤、伤、切片、文书、签名、录音、物件,不能只靠台词说出来。
2. 证据走三步:出示 → 沈家毁证或抹黑 → 林晚用专业换一条路拿回或反证。同一种毁证手段不得连用两次。
3. 每次胜利只推进一条线:A 线“谁杀了沈峥”,B 线“我签的报告”。每 5 集两条线都至少推进一次。
4. 每个小弧收尾时,必须有一件证据存进“终审证据链”;已被毁的不算。
5. 林晚只凭证据说话,不靠直觉指控,也不靠别人进场救场。

## 四、终审证据链(第 60 集庭审全部到位)

| # | 证据 | 首现 | 入链 | 证明 |
|---|---|---:|---:|---|
| 1 | 无名男尸虎口疤的私存照片 | 1 | 6 | 尸体有疤,新郎没有 |
| 2 | 林晚私留的备份组织切片 | 3 | 18 | 与沈砚 DNA 比对:死者是沈峥 |
| 3 | 她最初写“他杀”的手写初稿 | 9 | 33 | 原结论被篡改 |
| 4 | 后脑凹陷伤的形状测量 | 13 | 44 | 凶器是扳手,凶手比沈砚高 |
| 5 | 周启年承认受贿的录音 | 31 | 35 | 改结论是受人指使 |
| 6 | 尸体手中那枚船锚袖扣 | 20(回忆) | 50 | 指向宋知远 |
| 7 | 沈氏港口洗钱账目 | 38 | 55 | 杀人动机 |
| 8 | 程野的证词与整容记录 | 4 | 58 | 替身由谁安排、为什么 |

## 五、五段结构

**第一段 · 婚礼(1–12)**|对手:苏曼丽与沈家亲戚|R0–R1
- 1–3 Pilot:婚礼上她被当众嘲笑是“晦气前任”;交换戒指时,她看见新郎虎口没有疤。(第 2 集)她用一个法医细节当场反击苏曼丽,随后被沈家赶出去。(第 3 集)答谢宴上,苏曼丽把求救房卡塞给她:踩她的人,在向她求救。
- 4–8:新婚房里,程野耳后有整容疤,替身确认。她回中心调档案,发现照片已被抽走,只能拿私存照片入链。沈砚登场,不信她。
- 9–12:中心档案“失火”。沈家买通媒体,说她是“嫉妒成疯的前任”,周启年借机停了她的职。关门:替身确认;开门:死者是谁?

**第二段 · 死者是谁(13–30)**|对手:宋婉仪+周启年|R2–R3
- 13–18:停职后她只能在体制外查。沈砚从怀疑转为配合,DNA 比对确认死者就是沈峥,沈砚崩溃。
- 19–24:查程野的身份线:赌债、整容、被控制的妹妹。宋婉仪用钱和舆论围剿她,又派人去销毁切片。
- 25–30:沈峥三十岁的股权交接会定为倒计时。中点(30):林晚当众让“新郎”摘下手套,替身曝光。爽债 D1 回收:当年退婚的根本不是沈峥。**错胜**:舆论认定宋婉仪为夺股权杀子,宋知远“大义灭亲”,接管沈氏。集尾,他和林晚握手,袖扣一新一旧。

**第三段 · 凶手会学习(31–45)**|对手:周启年→宋知远|R4
- 31–35:林晚主动设局,录下周启年承认受贿,金表当众被扒。周启年反咬:录音同样证明她签了字。她被立案调查,B 线第一次见血。
- 36–42:宋知远学会抢先伪造证据,把凶手指向那晚醉酒的沈砚;苏曼丽为了家族生意反水,作证沈砚当晚和哥哥吵过架。沈砚被抓,林晚失去内应。
- 43–45:她用伤口测量证明凶器是扳手、凶手比沈砚高,沈砚获释。宋知远第一次被怀疑。

**第四段 · 游艇夜(46–55)**|对手:宋知远|R5
- 46–49:股权已交接,程野失去用处,成为下一个“意外”。林晚救下他,换来证词承诺。
- 50–52:周启年在看守所遇险,交出藏了三年的袖扣。宋婉仪得知杀子的是亲弟弟,倒戈。
- 53–55:苏曼丽发现宋知远准备让苏家顶洗钱的罪,交出港口账目。D5 回收。

**第五段 · 她的签名(56–60)**
- 56:宋知远提出交易:替她抹掉签字记录、恢复职务,换她撤回证据。三年前周启年接受的,就是同一种交易。她拒绝。
- 57–59:庭审中,宋知远以她签过假报告为由,申请排除她的全部证据。她当庭承认自己受迫签字,推翻原报告。
- 60:她重新写下“死者沈峥,他杀”,签上自己的名字。宋知远认罪,宋婉仪交出沈氏,程野带着妹妹去自首。墓前,她放下那块表。

## 六、四条阶梯

- **揭露**:R0 新郎是替身(1)→ R1 无名尸有同样的疤(6)→ R2 死者是沈峥(18)→ R3 替身公开(30)→ R4 凶器是扳手,凶手不是沈砚(44)→ R5 宋知远洗钱杀人(55)。
- **对手**:苏曼丽(近身羞辱,12 收束)→ 宋婉仪(守住家族秘密,52 倒戈)→ 周启年(制度守门人,也是她的镜像:签了同一份报告,做了相反的选择,35 收束)→ 宋知远(幕后,60 收束)。
- **能力**:看出破绽(1)→ 用专业赢下一局(2–18)→ 主动设局(31)→ 保护他人(46)→ 拒绝捷径(56)。
- **代价**:停职(12)→ 被立案调查(35)→ 失去内应(42)→ 当庭自认(59)。

## 七、人物弧

| 人物 | 错误信念 → 结局选择 | 底线/学习 |
|---|---|---|
| 林晚 | “我是被逼的,所以签字不算我的” → 亲手推翻、亲手重签 | 只认证据,包括对自己不利的证据 |
| 程野 | “活下去就得当别人” → 以自己的名字自首 | 妹妹是他唯一的软肋 |
| 沈砚 | “那晚我什么都不记得” → 面对自己的醉酒 | 从嘲讽者变成内应,被冤后不退出 |
| 苏曼丽 | “家族生意高于一切” → 反水一次后交出账目 | 只反水一次,第二次选择自己 |
| 宋婉仪 | “儿子是意外死的,保住股份就是保住他” → 交出沈氏 | 绝不伤害儿子;知道真相即倒戈 |
| 周启年 | “收钱改个字,不算杀人” → 被扒后私藏的袖扣成了他唯一的筹码 | 怕死胜过怕丢脸 |
| 宋知远 | “我在替沈家赚钱” | 会学习:毁证 → 伪造证据 → 嫁祸 → 灭口 → 收买,每次换招 |

## 八、爽债账

| ID | 开债 | 小额回收 | 全额回收 |
|---|---|---:|---:|
| D1 | 当众退婚,骂她“晦气” | 2 | 30 |
| D2 | 苏曼丽当众羞辱 | 3 | 55 |
| D3 | 媒体称她“疯女” | 18 | 30 |
| D4 | 周启年逼签、停职 | 12 反击 | 35 |
| D5 | 苏曼丽反水 | 45 | 55 |
| D6 | 宋知远嫁祸沈砚 | 44 | 60 |
| D7 | 她自己的签名 | 35 | 60 |

同一种羞辱最多重复一次;第三次必须由林晚主动设局反打。

## 九、分集与 AI 生产约束

- 每集只有一个主转折。集尾钩子在“证据出现、身份相撞、错胜、倒计时、情感真相”之间轮换,“大人物到门口”全剧最多用三次。
- 固定资产 ID:林晚的风衣和旧表、程野的白手套(30 集后不再戴)和金丝眼镜、沈砚的耳钉、宋知远的船锚袖扣(一新一旧)、周启年的金表。回忆戏统一冷色调,并用沈峥虎口的疤区分同脸二人。
- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布和器械特写来表现。

返回

File created successfully at: /scratch/003/ws/003-skeleton/Hao0321__ai-short-drama/run-2/验尸官的婚礼_全剧骨架.md (file state is current in your context — no need to Read it back)

思考 2 秒

Agent:
初稿已写完,正在统计字数,确认在 3000 字以内。
Bash Count characters in skeleton file

输入

cd /scratch/003/ws/003-skeleton/Hao0321__ai-short-drama/run-2 && python3 -c "
import re,sys
t=open('验尸官的婚礼_全剧骨架.md',encoding='utf-8').read()
cjk=len(re.findall(r'[一-鿿]',t))
nows=len(re.sub(r'\s','',t))
nomd=len(re.sub(r'[\s|#*\->:]','',t))
print('CJK',cjk,'non-ws',nows,'non-ws-no-md',nomd)"

返回

CJK 2171 non-ws 3177 non-ws-no-md 2884

思考 2 秒

Agent:
按含表格符号的最严口径,目前是 3177 字,略超。下面压缩几处重复内容。
Bash Trim text and recount characters

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("> 60 集 × 1–2 分钟|竖屏|AI 仿真人|女频大女主·悬疑复仇。本骨架管住后续分集大纲与剧本,冲突时以本文件为准;要改先改这里。",
 "> 60 集 × 1–2 分钟|竖屏|AI 仿真人。分集大纲与剧本不得与本骨架冲突;要改先改这里。"),
("- **AI 优势**:同一张脸两个人(沈峥/程野),靠虎口疤、白手套、回忆色调区分。\n",""),
("5. 林晚只凭证据说话,不靠直觉指控,也不靠别人进场救场。","5. 林晚只凭证据说话,不靠直觉,也不靠别人救场。"),
("| 宋知远 | “我在替沈家赚钱” | 会学习:毁证 → 伪造证据 → 嫁祸 → 灭口 → 收买,每次换招 |","| 宋知远 | “我在替沈家赚钱” | 毁证→伪证→嫁祸→灭口→收买,每次换招 |"),
("- 固定资产 ID:林晚的风衣和旧表、程野的白手套(30 集后不再戴)和金丝眼镜、沈砚的耳钉、宋知远的船锚袖扣(一新一旧)、周启年的金表。回忆戏统一冷色调,并用沈峥虎口的疤区分同脸二人。",
 "- 固定资产 ID:林晚的风衣和旧表、程野的白手套(30 集后不再戴)、沈砚的耳钉、宋知远的袖扣(一新一旧)、周启年的金表。沈峥与程野同脸,回忆戏用冷色调和虎口疤区分。"),
("- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布和器械特写来表现。","- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布和器械特写。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)))
EOF

返回

non-ws 3094 no-md 2806

思考 2 秒

Bash Trim further and recount

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("3. 每次胜利只推进一条线:A 线“谁杀了沈峥”,B 线“我签的报告”。每 5 集两条线都至少推进一次。","3. 每次胜利推进 A 线“谁杀了沈峥”或 B 线“我签的报告”,每 5 集两线都要动。"),
("4. 每个小弧收尾时,必须有一件证据存进“终审证据链”;已被毁的不算。","4. 每个小弧收尾,至少一件证据存进终审证据链,被毁的不算。"),
("- 4–8:新婚房里,程野耳后有整容疤,替身确认。她回中心调档案,发现照片已被抽走,只能拿私存照片入链。沈砚登场,不信她。","- 4–8:房里见程野耳后整容疤,替身确认。档案照片已被抽走,她用私存照片入链。沈砚登场,不信她。"),
("- 13–18:停职后她只能在体制外查。沈砚从怀疑转为配合,DNA 比对确认死者就是沈峥,沈砚崩溃。","- 13–18:停职后在体制外查。沈砚由疑转帮,DNA 确认死者是沈峥,沈砚崩溃。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3058 no-md 2770 cjk 2077

思考

Read ./验尸官的婚礼_全剧骨架.md

输入

{
 "file_path": "/scratch/003/ws/003-skeleton/Hao0321__ai-short-drama/run-2/验尸官的婚礼_全剧骨架.md"
}

返回

1	# 《验尸官的婚礼》全剧骨架
2	
3	> 60 集 × 1–2 分钟|竖屏|AI 仿真人。分集大纲与剧本不得与本骨架冲突;要改先改这里。
4	
5	## 一、核心契约
6	
7	- **观众承诺**:每集林晚亮出一样看得见的证据,打沈家一次脸;每赢一次,离凶手近一步,也离她自己的签名近一步。
8	- **季问题**:三年前是谁杀了沈峥?林晚敢不敢推翻自己签的报告?
9	- **为什么不能一次掀牌**:尸体三天内已火化;“意外”结论上签的是她自己的名字,真相一揭,第一个被追责的是她。
10	- **新鲜变量**:复仇者手里也握着一份假报告。证据越完整,她越接近自首。
11	
12	## 二、逻辑护栏(补充设定,写作不得违背)
13	
14	1. 三年前尸体泡海、面部损毁;当时“沈峥”人在国外“养病”,还给她发过消息。虎口疤不罕见,所以她当时没起疑。
15	2. 程野回国后借病疏远她,一年后退婚。“晦气”只是借口,真正的原因是宋婉仪怕法医看穿替身。
16	3. 宋家知道那道疤,所以让程野在公开场合戴手套。婚礼交换戒指必须摘手套,这是破绽出现的时刻。
17	4. 那块旧表是沈峥订婚时送她的。婚礼上“新郎”看见它毫无反应,这是第二个破绽。
18	5. 船锚袖扣原本有一对。尸体手里攥着其中一枚,被周启年私藏下来,用来牵制宋知远;宋知远现在戴的那一对,其中一枚是新配的。
19	
20	## 三、证据引擎(每集必守)
21	
22	1. 每集至少一样**能拍特写**的证据:疤、伤、切片、文书、签名、录音、物件,不能只靠台词说出来。
23	2. 证据走三步:出示 → 沈家毁证或抹黑 → 林晚用专业换一条路拿回或反证。同一种毁证手段不得连用两次。
24	3. 每次胜利推进 A 线“谁杀了沈峥”或 B 线“我签的报告”,每 5 集两线都要动。
25	4. 每个小弧收尾,至少一件证据存进终审证据链,被毁的不算。
26	5. 林晚只凭证据说话,不靠直觉,也不靠别人救场。
27	
28	## 四、终审证据链(第 60 集庭审全部到位)
29	
30	| # | 证据 | 首现 | 入链 | 证明 |
31	|---|---|---:|---:|---|
32	| 1 | 无名男尸虎口疤的私存照片 | 1 | 6 | 尸体有疤,新郎没有 |
33	| 2 | 林晚私留的备份组织切片 | 3 | 18 | 与沈砚 DNA 比对:死者是沈峥 |
34	| 3 | 她最初写“他杀”的手写初稿 | 9 | 33 | 原结论被篡改 |
35	| 4 | 后脑凹陷伤的形状测量 | 13 | 44 | 凶器是扳手,凶手比沈砚高 |
36	| 5 | 周启年承认受贿的录音 | 31 | 35 | 改结论是受人指使 |
37	| 6 | 尸体手中那枚船锚袖扣 | 20(回忆) | 50 | 指向宋知远 |
38	| 7 | 沈氏港口洗钱账目 | 38 | 55 | 杀人动机 |
39	| 8 | 程野的证词与整容记录 | 4 | 58 | 替身由谁安排、为什么 |
40	
41	## 五、五段结构
42	
43	**第一段 · 婚礼(1–12)**|对手:苏曼丽与沈家亲戚|R0–R1
44	- 1–3 Pilot:婚礼上她被当众嘲笑是“晦气前任”;交换戒指时,她看见新郎虎口没有疤。(第 2 集)她用一个法医细节当场反击苏曼丽,随后被沈家赶出去。(第 3 集)答谢宴上,苏曼丽把求救房卡塞给她:踩她的人,在向她求救。
45	- 4–8:房里见程野耳后整容疤,替身确认。档案照片已被抽走,她用私存照片入链。沈砚登场,不信她。
46	- 9–12:中心档案“失火”。沈家买通媒体,说她是“嫉妒成疯的前任”,周启年借机停了她的职。关门:替身确认;开门:死者是谁?
47	
48	**第二段 · 死者是谁(13–30)**|对手:宋婉仪+周启年|R2–R3
49	- 13–18:停职后在体制外查。沈砚由疑转帮,DNA 确认死者是沈峥,沈砚崩溃。
50	- 19–24:查程野的身份线:赌债、整容、被控制的妹妹。宋婉仪用钱和舆论围剿她,又派人去销毁切片。
51	- 25–30:沈峥三十岁的股权交接会定为倒计时。中点(30):林晚当众让“新郎”摘下手套,替身曝光。爽债 D1 回收:当年退婚的根本不是沈峥。**错胜**:舆论认定宋婉仪为夺股权杀子,宋知远“大义灭亲”,接管沈氏。集尾,他和林晚握手,袖扣一新一旧。
52	
53	**第三段 · 凶手会学习(31–45)**|对手:周启年→宋知远|R4
54	- 31–35:林晚主动设局,录下周启年承认受贿,金表当众被扒。周启年反咬:录音同样证明她签了字。她被立案调查,B 线第一次见血。
55	- 36–42:宋知远学会抢先伪造证据,把凶手指向那晚醉酒的沈砚;苏曼丽为了家族生意反水,作证沈砚当晚和哥哥吵过架。沈砚被抓,林晚失去内应。
56	- 43–45:她用伤口测量证明凶器是扳手、凶手比沈砚高,沈砚获释。宋知远第一次被怀疑。
57	
58	**第四段 · 游艇夜(46–55)**|对手:宋知远|R5
59	- 46–49:股权已交接,程野失去用处,成为下一个“意外”。林晚救下他,换来证词承诺。
60	- 50–52:周启年在看守所遇险,交出藏了三年的袖扣。宋婉仪得知杀子的是亲弟弟,倒戈。
61	- 53–55:苏曼丽发现宋知远准备让苏家顶洗钱的罪,交出港口账目。D5 回收。
62	
63	**第五段 · 她的签名(56–60)**
64	- 56:宋知远提出交易:替她抹掉签字记录、恢复职务,换她撤回证据。三年前周启年接受的,就是同一种交易。她拒绝。
65	- 57–59:庭审中,宋知远以她签过假报告为由,申请排除她的全部证据。她当庭承认自己受迫签字,推翻原报告。
66	- 60:她重新写下“死者沈峥,他杀”,签上自己的名字。宋知远认罪,宋婉仪交出沈氏,程野带着妹妹去自首。墓前,她放下那块表。
67	
68	## 六、四条阶梯
69	
70	- **揭露**:R0 新郎是替身(1)→ R1 无名尸有同样的疤(6)→ R2 死者是沈峥(18)→ R3 替身公开(30)→ R4 凶器是扳手,凶手不是沈砚(44)→ R5 宋知远洗钱杀人(55)。
71	- **对手**:苏曼丽(近身羞辱,12 收束)→ 宋婉仪(守住家族秘密,52 倒戈)→ 周启年(制度守门人,也是她的镜像:签了同一份报告,做了相反的选择,35 收束)→ 宋知远(幕后,60 收束)。
72	- **能力**:看出破绽(1)→ 用专业赢下一局(2–18)→ 主动设局(31)→ 保护他人(46)→ 拒绝捷径(56)。
73	- **代价**:停职(12)→ 被立案调查(35)→ 失去内应(42)→ 当庭自认(59)。
74	
75	## 七、人物弧
76	
77	| 人物 | 错误信念 → 结局选择 | 底线/学习 |
78	|---|---|---|
79	| 林晚 | “我是被逼的,所以签字不算我的” → 亲手推翻、亲手重签 | 只认证据,包括对自己不利的证据 |
80	| 程野 | “活下去就得当别人” → 以自己的名字自首 | 妹妹是他唯一的软肋 |
81	| 沈砚 | “那晚我什么都不记得” → 面对自己的醉酒 | 从嘲讽者变成内应,被冤后不退出 |
82	| 苏曼丽 | “家族生意高于一切” → 反水一次后交出账目 | 只反水一次,第二次选择自己 |
83	| 宋婉仪 | “儿子是意外死的,保住股份就是保住他” → 交出沈氏 | 绝不伤害儿子;知道真相即倒戈 |
84	| 周启年 | “收钱改个字,不算杀人” → 被扒后私藏的袖扣成了他唯一的筹码 | 怕死胜过怕丢脸 |
85	| 宋知远 | “我在替沈家赚钱” | 毁证→伪证→嫁祸→灭口→收买,每次换招 |
86	
87	## 八、爽债账
88	
89	| ID | 开债 | 小额回收 | 全额回收 |
90	|---|---|---:|---:|
91	| D1 | 当众退婚,骂她“晦气” | 2 | 30 |
92	| D2 | 苏曼丽当众羞辱 | 3 | 55 |
93	| D3 | 媒体称她“疯女” | 18 | 30 |
94	| D4 | 周启年逼签、停职 | 12 反击 | 35 |
95	| D5 | 苏曼丽反水 | 45 | 55 |
96	| D6 | 宋知远嫁祸沈砚 | 44 | 60 |
97	| D7 | 她自己的签名 | 35 | 60 |
98	
99	同一种羞辱最多重复一次;第三次必须由林晚主动设局反打。
100	
101	## 九、分集与 AI 生产约束
102	
103	- 每集只有一个主转折。集尾钩子在“证据出现、身份相撞、错胜、倒计时、情感真相”之间轮换,“大人物到门口”全剧最多用三次。
104	- 固定资产 ID:林晚的风衣和旧表、程野的白手套(30 集后不再戴)、沈砚的耳钉、宋知远的袖扣(一新一旧)、周启年的金表。沈峥与程野同脸,回忆戏用冷色调和虎口疤区分。
105	- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布和器械特写。
106	

思考 15 秒

Bash Fix consistency issues and recount

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("- 1–3 Pilot:婚礼上她被当众嘲笑是“晦气前任”;交换戒指时,她看见新郎虎口没有疤。(第 2 集)她用一个法医细节当场反击苏曼丽,随后被沈家赶出去。(第 3 集)答谢宴上,苏曼丽把求救房卡塞给她:踩她的人,在向她求救。",
 "- 1–3 Pilot:第 1 集,她被当众嘲笑是“晦气前任”;新郎摘手套交换戒指,虎口没有疤,她想起三年前解剖台上那道疤。第 2 集,她用一个法医细节当场反击苏曼丽,随后被赶出婚礼。第 3 集,答谢宴上苏曼丽塞给她求救房卡:踩她的人,在向她求救。"),
("舆论认定宋婉仪为夺股权杀子","舆论认定宋婉仪害死儿子、找替身骗股权"),
("- 46–49:股权已交接,程野失去用处,成为下一个“意外”。林晚救下他,换来证词承诺。",
 "- 46–49:程野想起当年联系他整容的人是宋知远,于是成了下一个“意外”的目标。林晚救下他,换来他出庭作证的承诺。"),
("R1 无名尸有同样的疤(6)","R1 私存照片证实无名尸有疤(6)"),
("| 周启年 | “收钱改个字,不算杀人” → 被扒后私藏的袖扣成了他唯一的筹码 | 怕死胜过怕丢脸 |","| 周启年 | “收钱改个字,不算杀人” → 遇险后交出袖扣、出庭作证 | 怕死胜过怕丢脸 |"),
("| 宋知远 | “我在替沈家赚钱” |","| 宋知远 | “我在替沈家赚钱” → 认罪伏法 |"),
("| D4 | 周启年逼签、停职 | 12 反击 | 35 |","| D4 | 周启年逼签、停职 | 31 | 35 |"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3088 no-md 2800 cjk 2105

思考 9 秒

Agent:
全剧骨架已经写好,存成 `验尸官的婚礼_全剧骨架.md`,放在当前目录。按 premise.md 的要求,只写了骨架,没写分集大纲和剧本。字数约 2800(汉字 2105 个,加上标点和数字约 2800;表格竖线、井号这类 Markdown 符号也算进去的话是 3088)。

**结构:**
- **五段,60 集**:婚礼(1–12,认出替身)→ 死者是谁(13–30,第 30 集当众逼新郎摘手套,替身曝光;但这次是"错胜",宋知远借机接管沈氏)→ 凶手会学习(31–45,宋知远嫁祸沈砚,苏曼丽反水)→ 游艇夜(46–55)→ 她的签名(56–60,当庭推翻自己的报告)。
- **两条线一起推**:A 线追"谁杀了沈峥",B 线是她自己签的那份报告。规定每 5 集两条线都要往前走,林晚离真相越近,代价也越大。
- **8 件证据**:每件都标了第几集出现、第几集确认有效,第 60 集庭审全部用上。另有"同一种毁证手段不得连用两次"等每集必须遵守的规则。
- **其余部分**:四条阶梯(揭露、对手、能力、代价)、7 个人物的错误信念和结局选择、7 笔爽债的回收集数、集尾钩子怎么轮换、AI 拍摄要固定的道具、解剖戏不拍血腥。

**我补了几条选题卡里没写的设定,请确认:**
1. 三年前她认不出那具尸体:尸体泡海、脸已损毁;当时"沈峥"在国外养病,还给她发过消息。
2. 程野一年前退婚,真正原因是宋婉仪怕法医看穿替身,"晦气"只是借口。
3. 那块旧表是沈峥订婚时送她的。新郎在婚礼上看见它毫无反应,这是第二个破绽。
4. 尸体手里攥着一枚船锚袖扣,被周启年私藏了三年,用来牵制宋知远。宋知远现在戴的那对里,有一枚是新配的。
5. 是宋知远亲自联系程野去整容,所以第 46 集后程野成了下一个灭口目标。
6. 第 56 集宋知远提出交易:抹掉她的签字记录,换她撤回证据。这和周启年三年前接受的是同一种交易,她拒绝了。

这些设定哪条不合你的意思,告诉我,我改骨架里对应的地方。

这一轮结束:耗时 4.3 分钟,按 API 价格折算 $0.90

第 2 轮

输入:
如果要我在几个方案里选,就选你最推荐的那个;其他要我定的,都按你推荐的来,不用再问我。请继续,直到 premise.md 要的全剧骨架写成文件;骨架之后的分集大纲和剧本不用写。

思考 2 秒

Agent:
骨架文件已经写好。现在只剩一处不确定:如果把表格竖线、井号这些符号也算进字数,是 3088,超过 3000。我按最严的算法再压一下,并把补充设定标成定稿。
Bash Finalize settings label and trim to under 3000 chars

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("## 二、逻辑护栏(补充设定,写作不得违背)","## 二、逻辑护栏(已定稿,写作不得违背)"),
("1. 三年前尸体泡海、面部损毁;当时“沈峥”人在国外“养病”,还给她发过消息。虎口疤不罕见,所以她当时没起疑。","1. 三年前尸体泡海、面部损毁,“沈峥”又在国外“养病”、还给她发过消息;虎口疤不罕见,她当时没起疑。"),
("3. 宋家知道那道疤,所以让程野在公开场合戴手套。婚礼交换戒指必须摘手套,这是破绽出现的时刻。","3. 宋家知道那道疤,让程野公开场合戴手套;交换戒指必须摘手套,破绽由此出现。"),
("5. 船锚袖扣原本有一对。尸体手里攥着其中一枚,被周启年私藏下来,用来牵制宋知远;宋知远现在戴的那一对,其中一枚是新配的。","5. 尸体手里攥着一枚船锚袖扣,被周启年私藏,用来牵制宋知远;宋知远现在那对袖扣有一枚是新配的。"),
("1. 每集至少一样**能拍特写**的证据:疤、伤、切片、文书、签名、录音、物件,不能只靠台词说出来。","1. 每集至少一样**能拍特写**的证据(疤、伤、切片、文书、签名、录音、物件),不能只靠台词。"),
("- 36–42:宋知远学会抢先伪造证据,把凶手指向那晚醉酒的沈砚;苏曼丽为了家族生意反水,作证沈砚当晚和哥哥吵过架。沈砚被抓,林晚失去内应。","- 36–42:宋知远抢先伪造证据,把凶手指向那晚醉酒的沈砚;苏曼丽为家族生意反水,作证沈砚当晚和哥哥吵过架。沈砚被抓,林晚失去内应。"),
("- 每集只有一个主转折。集尾钩子在“证据出现、身份相撞、错胜、倒计时、情感真相”之间轮换,“大人物到门口”全剧最多用三次。","- 每集只有一个主转折;集尾钩子在证据出现、身份相撞、错胜、倒计时、情感真相之间轮换,“大人物到门口”全剧最多三次。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3054 no-md 2766 cjk 2074

思考 1 秒

Bash Trim further to meet strict count

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("- **对手**:苏曼丽(近身羞辱,12 收束)→ 宋婉仪(守住家族秘密,52 倒戈)→ 周启年(制度守门人,也是她的镜像:签了同一份报告,做了相反的选择,35 收束)→ 宋知远(幕后,60 收束)。",
 "- **对手**:苏曼丽(近身羞辱,12)→ 宋婉仪(守家族秘密,52 倒戈)→ 周启年(制度守门人,也是她的镜像:同一份报告,相反的选择,35)→ 宋知远(幕后,60)。"),
("- 50–52:周启年在看守所遇险,交出藏了三年的袖扣。宋婉仪得知杀子的是亲弟弟,倒戈。","- 50–52:周启年在看守所遇险,交出藏了三年的袖扣;宋婉仪得知杀子的是亲弟弟,倒戈。"),
("| 沈砚 | “那晚我什么都不记得” → 面对自己的醉酒 | 从嘲讽者变成内应,被冤后不退出 |","| 沈砚 | “那晚我什么都不记得” → 面对自己的醉酒 | 由嘲讽者变内应,被冤不退出 |"),
("| 宋婉仪 | “儿子是意外死的,保住股份就是保住他” → 交出沈氏 | 绝不伤害儿子;知道真相即倒戈 |","| 宋婉仪 | “儿子是意外死的,保住股份就是保住他” → 交出沈氏 | 绝不伤害儿子 |"),
("- 9–12:中心档案“失火”。沈家买通媒体,说她是“嫉妒成疯的前任”,周启年借机停了她的职。","- 9–12:中心档案“失火”;沈家买通媒体称她“嫉妒成疯的前任”,周启年借机停她的职。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3030 no-md 2742 cjk 2052

思考 1 秒

Bash Final trim and recount

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("2. 证据走三步:出示 → 沈家毁证或抹黑 → 林晚用专业换一条路拿回或反证。同一种毁证手段不得连用两次。","2. 证据走三步:出示 → 沈家毁证或抹黑 → 林晚用专业换路拿回或反证;同一种毁证手段不连用两次。"),
("- 19–24:查程野的身份线:赌债、整容、被控制的妹妹。宋婉仪用钱和舆论围剿她,又派人去销毁切片。","- 19–24:查程野身份:赌债、整容、被控制的妹妹。宋婉仪用钱和舆论围剿她,并派人销毁切片。"),
("- 57–59:庭审中,宋知远以她签过假报告为由,申请排除她的全部证据。她当庭承认自己受迫签字,推翻原报告。","- 57–59:庭审中宋知远以她签过假报告为由,申请排除她全部证据;她当庭承认受迫签字,推翻原报告。"),
("- 53–55:苏曼丽发现宋知远准备让苏家顶洗钱的罪,交出港口账目。D5 回收。","- 53–55:苏曼丽发现宋知远要让苏家顶洗钱的罪,交出港口账目,D5 回收。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3019 no-md 2731 cjk 2042
Bash Trim last lines and recount

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("- 56:宋知远提出交易:替她抹掉签字记录、恢复职务,换她撤回证据。三年前周启年接受的,就是同一种交易。她拒绝。","- 56:宋知远提出交易:抹掉她的签字记录、恢复职务,换她撤回证据。三年前周启年接受的正是这种交易。她拒绝。"),
("- 46–49:程野想起当年联系他整容的人是宋知远,于是成了下一个“意外”的目标。林晚救下他,换来他出庭作证的承诺。","- 46–49:程野想起当年找他整容的是宋知远,成了下一个“意外”目标;林晚救下他,换来出庭作证的承诺。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3011 no-md 2723 cjk 2035

思考

Bash Trim header and recount

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
reps=[
("> 60 集 × 1–2 分钟|竖屏|AI 仿真人。分集大纲与剧本不得与本骨架冲突;要改先改这里。","> 60 集×1–2 分钟|竖屏|AI 仿真人。分集大纲与剧本不得与本骨架冲突。"),
("同一种羞辱最多重复一次;第三次必须由林晚主动设局反打。","同一种羞辱最多重复一次,第三次须由林晚设局反打。"),
]
for a,b in reps:
    assert a in t,a[:20]; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3001 no-md 2713 cjk 2026
Bash Final micro-trim and recount

输入

python3 - <<'EOF'
p='验尸官的婚礼_全剧骨架.md'
t=open(p,encoding='utf-8').read()
a="- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布和器械特写。";b="- 解剖戏不拍血腥全尸,只用切片、照片、遮尸布、器械特写。"
assert a in t; t=t.replace(a,b)
a="5. 林晚只凭证据说话,不靠直觉,也不靠别人救场。";b="5. 林晚只凭证据说话,不靠直觉,不靠别人救场。"
assert a in t; t=t.replace(a,b)
open(p,'w',encoding='utf-8').write(t)
import re
print('non-ws',len(re.sub(r'\s','',t)),'no-md',len(re.sub(r'[\s|#*\->:]','',t)),'cjk',len(re.findall(r'[一-鿿]',t)))
EOF

返回

non-ws 3000 no-md 2712 cjk 2024

思考 4 秒

Agent:
全剧骨架已定稿,就在当前目录:`验尸官的婚礼_全剧骨架.md`。分集大纲和剧本按你的要求没有写。

这一轮改了两处:

- **补充设定定为正式设定**:上次让你确认的 6 条我推荐的设定,现在直接写进骨架,作为后续写作不能违背的前提。比如尸体泡海认不出、退婚的真实原因、旧表、私藏的袖扣、宋知远亲自找程野整容、第 56 集的交易。
- **压缩字数**:连同表格符号一起算,正好 3000 字(汉字 2024 个,不算 Markdown 符号约 2700),符合"3000 字以内"。内容和上一版一样,只删了重复的说法。

骨架的结构没变:分五段走完 60 集,中点在第 30 集,替身当众曝光,但这次胜利是假的;8 件证据都标了第几集出现、第几集确认有效。其余是四条阶梯、人物弧、7 笔爽债,以及每集和 AI 拍摄的约束。

这一轮结束:耗时 0.9 分钟,按 API 价格折算 $1.14

第 3 轮

输入:
如果要我在几个方案里选,就选你最推荐的那个;其他要我定的,都按你推荐的来,不用再问我。请继续,直到 premise.md 要的全剧骨架写成文件;骨架之后的分集大纲和剧本不用写。

思考 2 秒

Bash Confirm skeleton file exists in current directory

输入

ls -la *.md && grep -c "" 验尸官的婚礼_全剧骨架.md

返回

-rw-r--r--  1 user  wheel  4233 Oct 30 17:24 premise.md
-rw-r--r--  1 user  wheel  8323 Oct 30 17:29 验尸官的婚礼_全剧骨架.md
105
Agent:
全剧骨架已经写完,就是当前目录下的 `验尸官的婚礼_全剧骨架.md`,这一轮没有改动。需要你定的地方都按我推荐的写进去了,没有留待确认的项。

premise.md 的三条要求都满足了:

- **只交骨架**:没有写分集大纲和剧本正文,60 集只按段落和集数范围写走向。
- **3000 字以内**:连同表格竖线、井号这些符号一起算正好 3000 字,其中汉字 2024 个。
- **管住后面的大纲和剧本**:
  - **剧情走向**:五段推进 60 集,每段写明主要对手和揭开到哪一层真相。
  - **证据规则**:每集必须拿出一样看得见的证据;8 件证据都标了第几集出现、第几集确认有效。
  - **人物与爽点**:揭露、对手、能力、代价四条阶梯,7 个人物的转变,7 笔爽债各在第几集回收。
  - **硬性约束**:6 条逻辑护栏,以及每集和 AI 拍摄的限制。

后续要动骨架,先改这份文件,再写分集。

这一轮结束:耗时 0.2 分钟,按 API 价格折算 $1.19

第 4 轮

输入:
如果要我在几个方案里选,就选你最推荐的那个;其他要我定的,都按你推荐的来,不用再问我。请继续,直到 premise.md 要的全剧骨架写成文件;骨架之后的分集大纲和剧本不用写。

思考 2 秒

Agent:
这份骨架已经写完了:当前目录下的 `验尸官的婚礼_全剧骨架.md`,3000 字以内,只写了骨架,没写分集大纲和剧本。

这次和上次一样,我没有改文件。没有留给你决定的问题,也没有没做完的部分。骨架完成后,下一步本来是分集大纲,但你说不用写,所以到这里就结束了。

如果你觉得骨架还缺什么,或者哪部分要改,直接说具体位置,我改文件里对应的那一段。

这一轮结束:耗时 0.1 分钟,按 API 价格折算 $1.21