Tomsawyerhu/Chinese-WebNovel-Skill · 第 2 次运行

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

skill
Tomsawyerhu/Chinese-WebNovel-Skill@96709f47
装进工作目录的 skill
Chinese-WebNovel-Skill
时间
2026-10-31 08:27–08:35(北京时间),8 分钟
轮数
3 轮,工具调用 18 次,按 API 价格折算 $4.36
匿名编号
188(评审只看到这个编号)
盲比
和另外 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 · Hao0321/ai-short-drama · zenstory-ai/oh-story-claudecode · lingfengQAQ/webnovel-writer · 0xsline/short-drama · 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,257 字
# 《验尸官的婚礼》全剧骨架

60 集|竖屏|单集 1–2 分钟|AI 拍摄
用途:管分集大纲和剧本。

## 一、全剧主轴

林晚每集拿出一件看得见的证据,打穿沈家和周启年;每赢一次,离"谁杀了沈峥"更近,也离她签的那份"意外"更近。最后一件证据是她自己的签名。

- 主问题:三年前谁杀了沈峥?
- 代价线:真相成立,就等于她当年签的是假报告。
- 嫌疑走向:宋婉仪(1–30)→ 沈砚(31–36)→ 宋知远(37 起)。
- 证据阶梯:疤 → 签名练习纸 → 蜡块 DNA → 指纹 → 录音 → 颅骨照片 → 金表 → 血迹与袖扣 → 存储卡 → 她的签名。

## 二、底牌(编剧组内部,不得改动)

1. 四年前,林晚与沈峥订婚。沈峥左手虎口有一道七针的疤,是她亲手缝的。
2. 三年前游艇上,沈峥质问宋知远借港口洗钱。宋知远用扳手砸他后脑,推下海;沈峥挣扎时扯掉一枚船锚袖扣,卡进甲板缝。沈砚醉倒在船舱,醒来手上有血,什么都不记得。
3. 出事前一天,沈峥把旧机械表交给林晚:"帮我收着。"表后盖里藏着洗钱账目的存储卡,她至今不知。
4. 宋婉仪只知儿子"落水失踪"。为保住长孙三十岁继承的股份,宋知远替她找来程野整容顶替,对外说"在国外养病",数月后回国。
5. 尸体数日后捞起,面部损毁,按无名尸送检。林晚主检:颅骨凹陷骨折,生前伤,初稿写"他杀"。她看见虎口的疤,当晚打给沈峥,接电话的是程野学的声音:"我在瑞士,挺好的。"她信了。
6. 周启年收了宋知远的钱和金表,逼她改成"意外·礁石撞击",三天火化。她签了字,私留一块组织蜡块和手写初检笔记。
7. "沈峥"回国后推说病后洁癖,手套从不摘,对林晚冷淡;她以为是病,又困在签字的愧疚里。一年前宋知远怕她看穿,让他当众退婚。婚礼交换戒指,是她三年来第一次看见他的左手。
8. 第 22 集给程野投毒的是宋知远,第 37 集前林晚和观众都以为是宋婉仪。

## 三、四段结构

### 第一段 婚礼验尸(1–10)

- 段目标:证明那具无名尸是沈家人。
- 主压迫:沈家当众羞辱,周启年停职。
- 关键拍
  - 1:苏曼丽寄请柬羞辱她。交换戒指时新郎摘下白手套,虎口光洁。闪回解剖台上那道七针疤。林晚起身:"新郎不是沈峥。"
  - 2–3:宋婉仪轻声一句"林法医伤心过度",保安架她出去;"沈峥"说疤去年做了祛疤。周启年在宾客席,次日停了她的职。宋知远递来纸巾,袖扣给特写。
  - 4–6:答谢宴上苏曼丽泼她一身酒,转身塞给她房卡。婚房里搜出一整页"沈峥"签名练习纸。沈家放出"前未婚妻闯婚房"视频,网暴开始。
  - 7–9:周启年下令销毁旧蜡块,她藏的那块躲过一劫。她去取沈砚的 DNA,被当场抓住。沈砚抽了管血拍在桌上:"验出来不是,你就滚出这座城。"
  - 10【卡点】:同胞关系成立。沈砚第一次没笑。周启年打来电话:"签'意外'的,是你。"
- 段末换局:林晚有了内应,也第一次被自己的签名威胁。

### 第二段 剥替身(11–30)

- 段目标:让"沈峥"当众现形,逼出找替身的人。
- 主压迫:宋婉仪,加倒计时:第 28 集"沈峥"满三十岁,签字接股份。
- 关键拍
  - 11–13:周启年宣布私检 DNA 违规,结果作废。宋婉仪放出伪造的林晚精神科就诊记录。
  - 14–17:林晚想通白手套是防指纹的。酒会上苏曼丽"失手"泼酒,逼他摘手套。酒杯指纹和沈峥旧书上的对不上。
  - 18–21:沈砚翻出程野当年的夜场模仿秀视频。林晚找到程野的妹妹程雨,透析费由沈氏账户代付。程野堵她:"别碰她。"林晚:"哪天你没用了,她的透析费也会停。"
  - 22–25:程野"醉酒"倒在车里,林晚看瞳孔断定是投毒,把人救回。程野交出保命录音,是宋婉仪的声音:"从今天起你就是沈峥。他是自己掉下去的。"
  - 26–28:交接仪式上,林晚带着录音、指纹和程野本人进场。程野当众摘下手套和眼镜,宋婉仪现形。
  - 29–30【卡点】:宋婉仪认了:"替身是我找的,可我儿子是落水。"同时周启年把她签字的旧报告发给媒体,热搜:法医收钱改结论。
- 段末换局:替身线收官,命案线开启,林晚从揭发者变成被告。

### 第三段 从意外到他杀(31–45)

- 段目标:推翻"意外",找到凶手。
- 主压迫:立案调查、舆论、周启年。宋知远以"公道舅舅"身份暗中带偏。
- 关键拍
  - 31–33:林晚被立案。宋知远私下递来"宋婉仪给周启年转账"的单据,把锅推给姐姐。
  - 34–36:沈砚坦白那晚他在船上,醒来手上有血。林晚用初检照片还原:颅骨凹陷是扳手的半月形,打击角度推出凶手身高 185 以上、右手持械。沈砚 175,洗清。
  - 37–40:金表编号查到宋知远名下的海外公司,那张单据是假的。周启年在法医中心当众被带走,矛头第一次指向宋知远。
  - 41–42:宋知远要拆卖游艇。林晚、沈砚、苏曼丽夜上游艇,鲁米诺喷过甲板,三年前的血迹泛出蓝光;甲板缝里撬出那枚船锚袖扣。
  - 43–45【卡点】:苏曼丽反水:宋知远捏着苏家的港口许可。她扣下袖扣当苏家的筹码,还作证林晚"栽赃"。林晚被拘。宋知远来探视,袖扣一新一旧:"你签过一次,就能签第二次。"
- 段末换局:凶手清楚了,证据全丢,林晚失去自由。

### 第四段 她自己的签名(46–60)

- 段目标:让宋知远认罪,并亲手推翻自己的报告。
- 主压迫:宋知远出境倒计时,和她的签名。
- 关键拍
  - 46–48:沈砚交出夜上游艇的全程视频,证明袖扣是当场撬出的,林晚取保。沈砚想起哥哥那晚的话:"东西我放在晚晚那儿了。"她撬开表后盖,存储卡里是洗钱账目,和沈峥的一段语音:"如果我出事,去问舅舅。"
  - 49–51:账目里也有苏家港口。林晚找苏曼丽:"拿着它,苏家陪葬;交出来,苏家是证人。"袖扣交回。宋婉仪听完儿子的语音,交出弟弟当年安排替身的转账和那条"就说是意外"的短信,转做证人。
  - 52–54:宋知远要从港口出境,约林晚上游艇"谈条件"。这是林晚设的局,录音全程开着。他举起扳手,船舱里走出戴金丝眼镜的"沈峥",是程野最后一次扮他。宋知远愣住,警灯亮起。
  - 55–58:庭审。辩方举起她签的"意外":"这是鉴定人自己的结论。"林晚当庭:"这份是我签的,是假的。"她撤回原报告,接受追责,写下"死者沈峥,他杀",签上名字。周启年认收钱,宋知远认罪。
  - 59:宋婉仪交出沈氏,程野带着妹妹去自首。苏家被查。
  - 60:墓园。林晚把表放在沈峥墓前。

## 四、管分集与剧本的硬规则

1. 每集必须亮出一件证据,或一件证据被毁、被抹黑。不准空集。
2. 集尾停在变化上(证据露头、被毁、身份被戳穿、局面反转),不停在情绪上。
3. 林晚不抬声调,不哭诉。赢的那一下 = 证据特写 + 一句短话,嘴可以毒。
4. 爽点只落在沈家(含苏曼丽)和周启年。宋知远第 37 集前不输,每次出场都在"帮忙",并带一个伏笔:袖扣、身高、港口三选一。
5. 签名代价线每段至少响一次:第 10、30、45、57 集。
6. 三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),镜头复用,每次多露一点。
7. 信息差以第二节为准。分集大纲每集标明:谁新知道了什么。

## 五、AI 拍摄约束

- 主场景不超过 8 个:婚礼宴会厅、婚房、法医中心(解剖室和主任办公室)、沈家客厅、医院、游艇、法庭、墓园。
- 造型全剧锁死:林晚灰风衣、旧表;程野金丝眼镜、白手套;沈砚敞扣西装、黑耳钉;苏曼丽酒红指甲;周启年金表、胸前老花镜;宋婉仪旗袍、珍珠;宋知远船锚袖扣。
- 每集说话角色不超过 3 个,2–3 场戏。
- 不拍水下、追车、群架;落水、投毒、扳手只拍前后一秒。
- 证据一律给竖屏特写,不听台词也看得懂。

过程

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

第 1 轮

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

思考 2 秒

Bash List directory and read premise file

输入

ls -la && cat premise.md 2>/dev/null; ls .claude/skills/Chinese-WebNovel-Skill/references/modules/

返回

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

《验尸官的婚礼》

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

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

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

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

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

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

结局:宋知远认罪伏法,宋婉仪交出沈氏,程野带着妹妹去自首。林晚当庭推翻自己三年前签的报告,重新写下“死者沈峥,他杀”,签上自己的名字。最后一场,她把那块表放在沈峥的墓前。
README.md
anti_ai_voice
chapter_ending
character_consistency
concept_planning
consistency_review
dialogue
module_template.md
opening
plot_logic
transition
volume_outline

思考

Bash Read module index and volume outline module

输入

cd /scratch/003/ws/003-skeleton/Tomsawyerhu__Chinese-WebNovel-Skill/run-2/.claude/skills/Chinese-WebNovel-Skill/references/modules && cat README.md volume_outline/README.md && ls volume_outline concept_planning plot_logic && cat volume_outline/runtime.md

返回

# 网文专项模块索引

这些模块不是泛写作教程,而是针对某个容易反复出问题的小说环节,提供一套可调用的诊断、选材、规划和落笔流程。

它们的目标不是把问题讲得更抽象,而是让模型在碰到局部硬伤时,不靠空泛建议和句面润色硬凑过去。

## 什么时候优先调用专项模块

当任务已经明显收束到某一个写作环节时,优先走专项模块,而不是只做泛检索或泛建议。

常见信号:

- 用户明确说的是某个局部问题,比如转场、剧情逻辑、人物一致性、章末承接
- 当前文本的问题不在句子漂不漂亮,而在结构桥梁、因果、状态延续、信息组织
- 需要先匹配类似素材,再决定怎么写
- 只靠润色会掩盖问题,不会真正修掉问题

## 专项模块的通用调用顺序

1. 先判断这是不是专项问题,不要把所有问题都当成文风问题。
2. 再选对应模块,先读该模块的 `README.md`。
3. 再按模块自己的推荐顺序进入 `tutorial.md`、`runtime.md` 和例库,不要用总索引去覆盖模块自己的入口顺序。
4. 按模块自己的分层和分类法判断故障点,不要跳过诊断直接套技巧。
5. 在模块例库里匹配 `2-4` 个正例和 `1-2` 个反例,只借结构,不借句面。
6. 先写一版局部计划:
   上一拍留下什么力;
   下一拍必须交代什么变化;
   哪些人物状态、关系状态、信息状态不能丢。
7. 最后再输出诊断、改写方案或正文。

## 当前已接入模块

### 1. 前置规划模块

解决问题:

- 点子能不能写成网文不清
- 题材和消费点混
- 卖点和异常局面不亮
- hook / premise 站不住
- 故事引擎跑不动
- 长度和第一卷方向不清

入口文件:

- [concept_planning/README.md](concept_planning/README.md)
- [concept_planning/tutorial.md](concept_planning/tutorial.md)
- [concept_planning/runtime.md](concept_planning/runtime.md)
- [concept_planning/good_examples.md](concept_planning/good_examples.md)
- [concept_planning/bad_examples.md](concept_planning/bad_examples.md)

### 2. 开头模块

解决问题:

- 开头抓手不足
- 卖点露头太慢
- 异常局面不够立
- 黄金三章递进无力

入口文件:

- [opening/README.md](opening/README.md)
- [opening/tutorial.md](opening/tutorial.md)
- [opening/runtime.md](opening/runtime.md)
- [opening/good_examples.md](opening/good_examples.md)
- [opening/bad_examples.md](opening/bad_examples.md)

### 3. 转场模块

解决问题:

- 时间跳切太硬
- 空间切换突兀
- 情绪承接断裂
- 信息打断不生效
- 视角、回忆、梦境边界不清
- 章末和下一场接不上

入口文件:

- [transition/README.md](transition/README.md)
- [transition/tutorial.md](transition/tutorial.md)
- [transition/runtime.md](transition/runtime.md)
- [transition/good_examples.md](transition/good_examples.md)
- [transition/bad_examples.md](transition/bad_examples.md)

### 4. 对白模块

解决问题:

- 台词太空
- 台词像说明书
- 人物声音不分
- 有情绪,没有刀口
- 有信息,没有压力

入口文件:

- [dialogue/README.md](dialogue/README.md)
- [dialogue/tutorial.md](dialogue/tutorial.md)
- [dialogue/runtime.md](dialogue/runtime.md)
- [dialogue/good_examples.md](dialogue/good_examples.md)
- [dialogue/bad_examples.md](dialogue/bad_examples.md)

### 5. 章末模块

解决问题:

- 章末收得太平
- 没有追更拉力
- 收在总结和讲理上
- 上一章和下一章接不上

入口文件:

- [chapter_ending/README.md](chapter_ending/README.md)
- [chapter_ending/tutorial.md](chapter_ending/tutorial.md)
- [chapter_ending/runtime.md](chapter_ending/runtime.md)
- [chapter_ending/good_examples.md](chapter_ending/good_examples.md)
- [chapter_ending/bad_examples.md](chapter_ending/bad_examples.md)

### 6. 剧情逻辑模块

解决问题:

- 因果断裂
- 动机不足
- 触发不成立
- 后果不落地
- 伏笔和兑现失衡

入口文件:

- [plot_logic/README.md](plot_logic/README.md)
- [plot_logic/tutorial.md](plot_logic/tutorial.md)
- [plot_logic/runtime.md](plot_logic/runtime.md)
- [plot_logic/good_examples.md](plot_logic/good_examples.md)
- [plot_logic/bad_examples.md](plot_logic/bad_examples.md)

### 7. 人物一致性模块

解决问题:

- 人设崩
- 行为跳变
- 情绪断片
- 关系状态断片
- 身体状态和声音连续性丢失

入口文件:

- [character_consistency/README.md](character_consistency/README.md)
- [character_consistency/tutorial.md](character_consistency/tutorial.md)
- [character_consistency/runtime.md](character_consistency/runtime.md)
- [character_consistency/good_examples.md](character_consistency/good_examples.md)
- [character_consistency/bad_examples.md](character_consistency/bad_examples.md)

### 8. 审查模块

解决问题:

- 章节写完后缺统一复查
- 逻辑、人物、转场、章末互相漏检

入口文件:

- [consistency_review/README.md](consistency_review/README.md)
- [consistency_review/tutorial.md](consistency_review/tutorial.md)
- [consistency_review/runtime.md](consistency_review/runtime.md)
- [consistency_review/good_examples.md](consistency_review/good_examples.md)
- [consistency_review/bad_examples.md](consistency_review/bad_examples.md)

### 9. 分卷章纲模块

解决问题:

- 黄金三章递进无力
- 第一卷跑不动
- 前 10-20 章章纲散
- 中段发散
- 卷末没有兑现点

入口文件:

- [volume_outline/README.md](volume_outline/README.md)
- [volume_outline/tutorial.md](volume_outline/tutorial.md)
- [volume_outline/runtime.md](volume_outline/runtime.md)
- [volume_outline/good_examples.md](volume_outline/good_examples.md)
- [volume_outline/bad_examples.md](volume_outline/bad_examples.md)

### 10. 去 AI 味模块

解决问题:

- 表达太模板化
- 情绪只会总结,不会落动作
- 气氛只会套话,不会写场内变化
- 人物说话一个腔调
- 句子太平均、太工整、太像说明

入口文件:

- [anti_ai_voice/README.md](anti_ai_voice/README.md)
- [anti_ai_voice/tutorial.md](anti_ai_voice/tutorial.md)
- [anti_ai_voice/runtime.md](anti_ai_voice/runtime.md)
- [anti_ai_voice/good_examples.md](anti_ai_voice/good_examples.md)
- [anti_ai_voice/bad_examples.md](anti_ai_voice/bad_examples.md)

## 后续适合继续扩展的方向

- 场景任务模块:处理单场戏目标、阻碍、变化和删并压缩

## 使用提醒

- 模块不是拿来替代正文的,而是拿来决定正文该怎么写。
- 模块不是越多越好,只有当问题已经明确集中在某个环节时才调。
- 如果一个问题同时跨多个模块,先修更底层、更硬的那一层,再修更表层的问题。
# 分卷章纲模块

这是一个专门处理长线规划、分卷设计、黄金三章递进和章纲拆分的专项模块。

它主要解决:

- 开了头,但后面怎么跑不清
- 黄金三章有热闹,但没有后续引擎
- 分卷散
- 中段发散
- 章纲只有事件,没有拉力
- 卷末没有兑现点

## 什么时候调用

当任务明确在处理这些问题时,优先调用本模块:

- 用户要你做分卷
- 用户要你写前 10-20 章章纲
- 用户说“中段容易散”“不知道后面怎么跑”
- 已经有 premise,但还没有连载结构

## 建议阅读顺序

1. 先读 [tutorial.md](tutorial.md)。
2. 再读 [runtime.md](runtime.md)。
3. 去 [good_examples.md](good_examples.md) 看结构正例。
4. 去 [bad_examples.md](bad_examples.md) 看最常见的散法。
5. 需要落成可复用大纲时,再对照 [outline_template.md](outline_template.md) 和 [chapter_template.md](chapter_template.md)。
6. 先写卷级计划,再拆章纲。

## 文件说明

- [tutorial.md](tutorial.md)
  把黄金三章、分卷、章纲、卷末兑现统成一套长线结构方法。
- [runtime.md](runtime.md)
  给模型的执行顺序。
- [good_examples.md](good_examples.md)
  给出合格分卷和章纲的结构模板。
- [bad_examples.md](bad_examples.md)
  给出最常见的中段发散和章纲失效类型。
- [outline_template.md](outline_template.md)
  提供卷级大纲模板,方便把结构计划落成统一格式。
- [chapter_template.md](chapter_template.md)
  提供章节模板,方便把卷级规划继续拆到单章。
- [source_index.md](source_index.md)
  标明本模块主要来源。
concept_planning:
README.md
bad_examples.md
good_examples.md
runtime.md
source_index.md
tutorial.md

plot_logic:
README.md
bad_examples.md
good_examples.md
runtime.md
source_index.md
tutorial.md

volume_outline:
README.md
bad_examples.md
chapter_template.md
good_examples.md
outline_template.md
runtime.md
source_index.md
tutorial.md
# 分卷章纲模块运行规则

## 一、什么时候必须调用

出现这些信号时,优先调用本模块:

- 用户要分卷
- 用户要章纲
- 用户要规划前 10-20 章
- 用户担心中段发散
- 已经有设定和开头,但没有稳定连载结构

## 二、先判断卡在哪一层

### 第 1 层:黄金三章层

典型表现:

- 前三章很慢
- 卖点没有递进
- 第三章还没立方向

优先补:

- 第一章异常
- 第二章卖点展开
- 第三章追更理由

### 第 2 层:第一卷层

典型表现:

- 知道开头,后面不知道怎么跑

优先补:

- 卷目标
- 卷冲突
- 卷高潮
- 卷末变化

### 第 3 层:章纲层

典型表现:

- 每章只有事件,没有拉力

优先补:

- 本章目标
- 本章冲突
- 新信息
- 章末拉力

### 第 4 层:中段扩展层

典型表现:

- 支线乱长
- 设定膨胀
- 更新感变弱

优先补:

- 卷目标约束
- 章节删并
- 阶段兑现点

## 三、例库映射

### 1. 如果问题是“前三章不留人”

先看:

- 正例:`good_examples.md` A 组
- 反例:`bad_examples.md` A 组

### 2. 如果问题是“第一卷跑不动”

先看:

- 正例:`good_examples.md` B 组
- 反例:`bad_examples.md` B 组

### 3. 如果问题是“章纲像流水账”

先看:

- 正例:`good_examples.md` C 组
- 反例:`bad_examples.md` C 组

### 4. 如果问题是“中段会散”

先看:

- 正例:`good_examples.md` D 组
- 反例:`bad_examples.md` D 组

## 四、动笔前先写卷级计划

- 第一卷目标是什么:
- 第一卷最大阻力是什么:
- 第一卷最值钱的兑现点是什么:
- 卷末必须怎么变:
- 前 10 章里每 `2-3` 章要给一次什么变化:

## 五、任务类型处理

### 1. 如果用户要你诊断大纲

先输出:

- 卡在黄金三章、第一卷、章纲还是中段扩展
- 最容易散在哪里

### 2. 如果用户要你做分卷

先做:

- 定故事引擎
- 定卷目标
- 定卷末变化

### 3. 如果用户要你拆章纲

默认顺序:

1. 先有卷目标
2. 再拆前 10-20 章
3. 每章都写目标、冲突、新信息、章末拉力

## 六、专项硬规则

- 不要只有卷名,没有卷目标。
- 不要章纲只记“发生了什么”。
- 不要前三章只讲背景。
- 不要把支线放进来却不服务卷目标。
Bash Read outline examples and plot logic rules

输入

cat volume_outline/good_examples.md volume_outline/bad_examples.md | head -300; cat plot_logic/runtime.md | head -120

返回

# 分卷章纲正例库

这份正例库当前先用结构模板组织,重点是让模型看懂“能连载地跑起来”的结构长什么样。

## 快速索引

- A 组:黄金三章递进型
- B 组:第一卷能跑型
- C 组:章纲有拉力型
- D 组:中段不散型

## A 组:黄金三章递进型

### V-G01 第一章立异常

```text
第 1 章立异常。
第 2 章扩卖点。
第 3 章立方向和追更预期。
```

- 该学什么:前三章不是重复一个钩子,而是逐层加码。

### V-G02 每章都新增一种代价

```text
第一章让主角出事。
第二章让代价坐实。
第三章让她必须选一条更危险的路。
```

- 该学什么:黄金三章要有“越来越进局”的感觉。

### V-G03 第三章必须给短期目标

```text
前三章结束时,读者已经知道她接下来最先要赢什么、躲什么、查什么。
```

- 该学什么:第三章不是继续热闹,而是要把追更问题立稳。

### V-G04 卖点露头越来越清

```text
第一章只看到真假千金冲突。
第二章看到事业反打路线。
第三章看到她准备反吃全家流量。
```

- 该学什么:题材消费点要递进展开,不要一次讲完也不要一直不讲。

## B 组:第一卷能跑型

### V-G05 卷目标明确

```text
卷目标明确。
卷冲突持续升级。
卷末有兑现,不是自然收尾。
```

- 该学什么:卷结构要像一段完整推进,不像若干章拼盘。

### V-G06 卷内有主压迫源

```text
这一卷最主要压着主角的,不是很多小麻烦,而是一个稳定的大问题。
```

- 该学什么:第一卷要有主敌、主困境或主门槛,不能只靠零碎事件撑。

### V-G07 卷中段有抬坡

```text
第 1-3 章进局。
第 4-7 章扩冲突。
第 8-10 章把卷高潮推出来。
```

- 该学什么:第一卷不能平着跑,要有明显坡度。

### V-G08 卷末一定换局面

```text
卷末不是把这一卷讲完了就停,而是主角身份、关系或资源必须换一个档位。
```

- 该学什么:卷末兑现点最好能把下一卷入口顺手打开。

## C 组:章纲有拉力型

### V-G09 每章都四件事齐

```text
每章都有目标、阻力、新信息、章末拉力。
```

- 该学什么:章纲不是事件目录,而是更新感目录。

### V-G10 章与章之间有问号传递

```text
上一章解决一个小问题。
同时留下下一个更值钱的问题。
```

- 该学什么:合格章纲要让读者总有“下一章要看什么”的预期。

### V-G11 每两三章有一次明显变化

```text
不是每章都炸。
但每 2-3 章,至少要给一次身份、关系、信息或资源变化。
```

- 该学什么:章纲的节奏感来自阶段变化,不是每章都同强度。

### V-G12 单章目标够具体

```text
这一章不是“推动感情”。
而是“拿到账本”“进到宴会”“逼他说漏一句关键话”。
```

- 该学什么:章纲写得越具体,正文越不容易发散。

## D 组:中段不散型

### V-G13 支线都要回卷目标

```text
所有支线都要么服务卷目标,要么服务卷末兑现。
```

- 该学什么:删掉不能服务阶段目标的漂亮枝蔓。

### V-G14 扩线要带新功能

```text
新人物、新支线、新场景一旦加入,就要么提高压力,要么带来新资源,要么改写信息差。
```

- 该学什么:中段扩展不能只增加热闹密度,要增加结构价值。

### V-G15 阶段小高潮先于卷高潮

```text
中段先给一个小兑现,让读者知道这条线真的在跑,不是在拖。
```

- 该学什么:长线连载中,阶段性回报能防止读者疲劳。

### V-G16 能删并就删并

```text
三章都在做同一种试探时,宁可并成一章半,也别让更新感重复。
```

- 该学什么:中段稳定不靠加戏,很多时候靠删重复。
# 分卷章纲反例库

## 快速索引

- A 组:前三章失效
- B 组:第一卷失焦
- C 组:章纲流水账
- D 组:中段发散

## A 组:前三章失效

### V-B01 先讲背景不成交

```text
前三章还在解释世界规则和人物童年。
```

问题:没有成交,只有准备。

### V-B02 三章都在重复同一场情绪

```text
第一章她委屈。
第二章她还是委屈。
第三章她继续委屈。
```

问题:情绪在重复,局面没递进。

### V-B03 第三章还没给方向

```text
读完第三章,只知道主角很惨,不知道她接下来要干什么。
```

问题:黄金三章没有把追更问题立起来。

### V-B04 卖点到第三章还没露头

```text
简介里说有弹幕、有系统、有真假千金。
结果前三章都还没真正触发这些东西。
```

问题:题材消费点埋得过深,读者在前几章吃不到货。

## B 组:第一卷失焦

### V-B05 第一卷什么都想写

```text
第一卷什么都想写,最后没有核心兑现点。
```

问题:卷没有中心。

### V-B06 没有主压迫源

```text
这一卷今天打脸这个,明天认识那个,后天去新地图,但没有一个持续压着主角的问题。
```

问题:卷像散点合集,不像完整阶段。

### V-B07 卷末自然停,没有换局

```text
卷末只是“这一段先写到这里”,没有身份、关系或资源的大变化。
```

问题:读者感觉不到“这一卷值了”。

### V-B08 卷目标说得太虚

```text
第一卷目标:成长、变强、变优秀。
```

问题:太抽象,无法指导章节设计。

## C 组:章纲流水账

### V-B09 只记发生了什么

```text
第 1 章相遇。
第 2 章吃饭。
第 3 章聊天。
```

问题:记录了事件,没有记录更新价值。

### V-B10 每章都一个强度

```text
每章都是“得知一点消息,再多聊几句,再回家想想”。
```

问题:章纲没有节奏起伏。

### V-B11 没有单章目标

```text
这一章主要写他们关系推进。
```

问题:太虚,正文时很容易发空。

### V-B12 章末不给拉力

```text
每章都收在“今天先这样吧”。
```

问题:章纲层就没把追更欲设计进去。

## D 组:中段发散

### V-B13 刚到主线关键处就开三条支线

```text
刚写到主线关键处,就岔去开三条支线,谁也不推进。
```

问题:没有卷目标约束,故事会越来越松。

### V-B14 新人物只增加热闹

```text
中段不断加新角色,但谁也没带来新压力、新资源或新信息。
```

问题:表面变丰富,结构上却是空转。

### V-B15 小高潮一直不来

```text
主线拖了十几章,始终没有一个阶段性兑现点。
```

问题:读者会觉得一直在蓄力,却没回报。
# 剧情逻辑模块运行规则

## 一、什么时候必须调用

出现这些信号时,优先调用本模块:

- 用户明确说“逻辑不对”“剧情不通”
- 人物做决定前缺少必要触发
- 重要事件像巧合硬推
- 反转和误会只为效果服务,没有前提
- 章节推进像作者搬运,不像局面自然生长

## 二、先判断卡在哪一层

### 第 1 层:动机层

典型表现:

- 人物想做某事,但理由薄
- 人物明明没必要冒险,却硬冒险

优先补:

- 欲望
- 恐惧
- 现实压力

### 第 2 层:触发层

典型表现:

- 事情会发生,但“为什么现在发生”不清

优先补:

- 导火索
- 倒计时
- 外部逼迫

### 第 3 层:决策层

典型表现:

- 人物做法和既有人设、处境不匹配

优先补:

- 备选方案为什么行不通
- 当前选择为什么最符合他

### 第 4 层:后果层

典型表现:

- 事件发生了,但没有实质变化

优先补:

- 局面变化
- 关系变化
- 资源变化
- 风险变化

### 第 5 层:兑现层

典型表现:

- 前面埋了很多,后面没用
- 后面想收一个大点,前面没种
- 反转、误会、掉马、打脸只靠最后一翻

优先补:

- 回收点
- 兑现方式

## 三、例库映射

### 1. 如果问题是“人物为什么要这么做不成立”

先看:

- 正例:`good_examples.md` A 组
- 反例:`bad_examples.md` A 组

### 2. 如果问题是“事件为什么偏偏现在发生不成立”

先看:

- 正例:`good_examples.md` B 组
- 反例:`bad_examples.md` B 组

### 3. 如果问题是“人物为什么偏偏这么选不成立”

先看:

- 正例:`good_examples.md` C 组
- 反例:`bad_examples.md` C 组

### 4. 如果问题是“反转、误会、掉马太硬”

先看:

- 正例:`good_examples.md` D 组
- 反例:`bad_examples.md` D 组

### 5. 如果问题是“这一章发生了,但像没发生”

先看:

- 正例:`good_examples.md` E 组
- 反例:`bad_examples.md` E 组

## 四、动笔前先写因果链计划

- 人物现在最强的动机是什么:
- 现在的导火索是什么:
- 人物为什么只能或更可能这么选:
- 这一选最直接会造成什么局面变化:
- 这变化怎么推到下一章:

思考 223 秒

Bash Search local corpus for similar examples

输入

cd /scratch/003/ws/003-skeleton/Tomsawyerhu__Chinese-WebNovel-Skill/run-2/.claude/skills/Chinese-WebNovel-Skill && python3 scripts/search_corpus_examples.py --keyword '退婚' --limit 4 2>&1 | head -60; python3 scripts/search_corpus_examples.py --keyword '法医' --limit 3 2>&1 | head -40

返回

[ARTICLE] A095 《为了报恩,我和喜欢养蛇的江驰野订下婚约。》
标签: 弹幕/评论|都市婚恋|甜虐关系
路径: data/articles/0095-樱花树下.txt
摘要: 在一起三年,看到那些蛇,我依旧害怕。江驰野不管我的哭闹。重欲的他每次都会带着蛇跟我一起亲热。粗暴地擦过我眼?的泪,嗤笑:「娇?。」??次我跟他说:「能不能别让蛇上床。」他神情散漫拒绝:「忍不了就退婚。」我正要去哄他时,眼前出现弹幕:【?配就是矫情,都三年了还怕蛇,装什么。】

[ARTICLE] A135 《50岁岁良辰年年鑫》
标签: 古言/宫廷|都市婚恋
路径: data/articles/0135-50岁岁良辰年年鑫.txt
摘要: 媚色如刀:为君化作绕指柔我是整个大梁最尊贵、最有钱的女子,皇帝亲封的灵毓郡主,未来的太子妃。可是在大婚前一晚,太子为了女使林容微,要与我退婚。他以为我是因为他,才被封为郡主。却不知,只有我选中的皇子,才能成为太子。我坐在价值万金的石榴树下,看着一脸坚定的孟良洲。

[EXCERPT] A135-opening 《50岁岁良辰年年鑫》
类型: 开头钩子
标签: 古言/宫廷|都市婚恋|开头钩子|关系破裂|人设亮相
路径: data/articles/0135-50岁岁良辰年年鑫.txt | 段落: 1-5
媚色如刀:为君化作绕指柔
我是整个大梁最尊贵、最有钱的女子,皇帝亲封的灵毓郡主,未来的太子妃。
可是在大婚前一晚,太子为了女使林容微,要与我退婚。
他以为我是因为他,才被封为郡主。
却不知,只有我选中的皇子,才能成为太子。

思考

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

输入

/scratch/003/ws/003-skeleton/Tomsawyerhu__Chinese-WebNovel-Skill/run-2/验尸官的婚礼_全剧骨架.md

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

60 集|竖屏|单集 1–2 分钟|AI 拍摄
用途:管住分集大纲和剧本。本稿不含分集大纲和正文。

## 一、全剧主轴

林晚每集拿出一件看得见的证据,打穿沈家和周启年;每赢一次,离"谁杀了沈峥"更近,也离她自己签的那份"意外"更近。最后一件证据,是她自己的签名。

- 主问题:三年前谁杀了沈峥?
- 代价线:真相成立,就等于她当年签的是假报告。
- 嫌疑走向:宋婉仪(1–30)→ 沈砚(31–36)→ 宋知远(37 起)。
- 证据阶梯:虎口的疤 → 签名练习纸 → 蜡块 DNA → 指纹 → 录音 → 颅骨照片 → 金表 → 血迹与袖扣 → 表里的存储卡 → 她自己的签名。

## 二、底牌(编剧组内部,不得改动)

1. 四年前,林晚与沈峥订婚。沈峥左手虎口有一道七针的疤,是她亲手缝的。
2. 三年前,游艇上,沈峥当面质问宋知远借港口洗钱。宋知远用船用扳手砸他后脑,把人推下海;沈峥挣扎时扯掉一枚船锚袖扣,卡进甲板缝。沈砚醉倒在船舱,醒来手上有血,什么都不记得。
3. 出事前一天,沈峥把旧机械表交给林晚:"帮我收着。"表后盖里藏着洗钱账目的存储卡,林晚至今不知道。
4. 宋婉仪只知道儿子"落水失踪"。为保住长孙三十岁继承的股份,宋知远替她找来程野整容顶替,对外说"在国外养病"。
5. 尸体几天后被捞起,面部损毁,按无名尸送检。林晚主检,颅骨凹陷骨折,生前伤,初稿写"他杀"。她看见虎口那道疤,当晚打给沈峥,接电话的是程野模仿的声音:"我在瑞士,挺好的。"她信了。
6. 周启年收了宋知远的钱和一块金表,逼她改成"意外·礁石撞击",三天内火化。她签了字,私下留了一块组织蜡块和手写的初检笔记。
7. 一年前,"沈峥"回国,第一件事就是当众退婚:宋知远不许一个法医离这张脸太近。所以婚礼那天,林晚是第一次近距离看见替身。
8. 第 22 集程野被投毒,是宋知远下的手。第 37 集之前,林晚和观众都以为是宋婉仪。

## 三、四段结构

### 第一段 婚礼验尸(1–10)

- 段目标:证明那具无名尸是沈家人。
- 主压迫:沈家当众羞辱,周启年停她的职。
- 关键拍:
  - 1:苏曼丽寄请柬来羞辱她。交换戒指时新郎摘下白手套,虎口光洁。闪回解剖台上那道七针疤。林晚起身:"新郎不是沈峥。"
  - 2–3:宋婉仪轻声一句"林法医伤心过度",保安把她架出去;"沈峥"说疤去年做了祛疤。周启年坐在宾客席,第二天停了她的职。宋知远递来纸巾,袖扣给特写。
  - 4–6:答谢宴上苏曼丽泼她一身酒,转身把房卡塞进她手里。婚房里搜出一整页"沈峥"签名的练习纸。沈家反手放出"前未婚妻闯婚房"的视频,网暴开始。
  - 7–9:周启年下令清库、销毁旧蜡块,她藏的那块躲过去了。要比对沈家 DNA,她去找沈砚,被当场抓住。沈砚自己抽了管血拍在桌上:"验出来不是,你就滚出这座城。"
  - 10【卡点】:同胞关系成立。沈砚第一次没笑。周启年打来电话:"签'意外'的,是你。"
- 段末换局:林晚有了内应,也第一次被自己的签名威胁。

### 第二段 剥替身(11–30)

- 段目标:让"沈峥"当众现形,逼出找替身的人。
- 主压迫:宋婉仪,加一个倒计时:第 28 集"沈峥"满三十岁,签字接股份。
- 关键拍:
  - 11–13:周启年宣布私检 DNA 程序违规,结果作废。宋婉仪放出伪造的林晚精神科就诊记录。
  - 14–17:林晚想通白手套是防指纹用的。酒会上苏曼丽"失手"泼酒,逼他摘下手套。酒杯上的指纹和沈峥旧书上的对不上。
  - 18–21:沈砚翻出程野当年在夜场演模仿秀的视频。林晚找到程野的妹妹程雨,她的透析费由沈氏账户代付。程野堵住林晚:"别碰她。"林晚:"哪天你没用了,她的透析费也会停。"
  - 22–25:程野"醉酒"倒在车里,林晚看瞳孔,断定是投毒,把人救回来。程野交出保命录音,是宋婉仪的声音:"从今天起你就是沈峥。他是自己掉下去的。"
  - 26–28:股份交接仪式上,林晚带着录音、指纹和程野本人进场。程野当众摘下手套和眼镜,宋婉仪现形。
  - 29–30【卡点】:宋婉仪认了:"替身是我找的,可我儿子是落水。"同一时刻,周启年把林晚三年前签字的报告发给媒体,热搜:法医收钱改结论。
- 段末换局:替身线收官,命案线开启。林晚从揭发者变成被告。

### 第三段 从意外到他杀(31–45)

- 段目标:推翻"意外",找到凶手。
- 主压迫:立案调查、舆论、周启年。宋知远以"公道舅舅"的身份暗中带偏方向。
- 关键拍:
  - 31–33:林晚被立案调查。宋知远私下见她,递来"宋婉仪当年给周启年转账"的单据,把锅推给姐姐。
  - 34–36:沈砚坦白那晚他也在船上,醒来手上有血。林晚用初检照片还原:颅骨凹陷是扳手的半月形,从打击角度推出凶手身高 185 以上、右手持械。沈砚身高 175,嫌疑洗清。
  - 37–40:金表编号查到宋知远名下的海外公司,那张单据是假的。周启年在法医中心当众被带走。矛头第一次指向宋知远。
  - 41–42:宋知远要把游艇拆解卖掉。林晚、沈砚、苏曼丽夜上游艇,鲁米诺喷过甲板,三年前的血迹泛出蓝光;从甲板缝里撬出那枚船锚袖扣。
  - 43–45【卡点】:苏曼丽反水,因为宋知远捏着苏家的港口许可。她把袖扣留作苏家的筹码,还作证林晚"栽赃"。林晚被拘。宋知远来探视,袖口一对袖扣一新一旧:"你签过一次,就能签第二次。"
- 段末换局:凶手已经清楚,证据却全丢了,林晚失去自由。

### 第四段 她自己的签名(46–60)

- 段目标:让宋知远认罪,并亲手推翻自己的报告。
- 主压迫:宋知远出境倒计时,还有她自己的签名。
- 关键拍:
  - 46–48:沈砚交出夜上游艇的全程视频,证明袖扣是当场撬出来的,林晚取保。沈砚想起哥哥那晚说过的话:"东西我放在晚晚那儿了。"她撬开表后盖,取出存储卡:洗钱账目,还有沈峥的一段语音:"如果我出事,去问舅舅。"
  - 49–51:账目里也有苏家的港口。林晚找到苏曼丽:"拿着它,苏家陪葬;交出来,苏家是证人。"袖扣交了回来。宋婉仪听完儿子的语音,翻出当年弟弟安排替身的转账,和那条"就说是意外"的短信,转做证人。
  - 52–54:宋知远准备从港口出境,约林晚上游艇"谈条件"。录音全程开着,这是林晚设的局。他举起扳手,船舱里走出戴金丝眼镜的"沈峥":程野最后一次扮沈峥。宋知远愣住,警灯亮起。
  - 55–58:庭审。辩方举起她当年签的"意外":"这是鉴定人自己的结论。"林晚当庭说:"这份是我签的,是假的。"她撤回原报告,接受追责,重新写下"死者沈峥,他杀",签上名字。周启年认了收钱,宋知远认罪。
  - 59:宋婉仪交出沈氏。程野带程雨去自首。苏家被查,苏曼丽的婚姻被判无效。
  - 60:墓园。林晚把那块表放在沈峥墓前。
- 全剧收束:主问题和代价线在同一个动作里落地:她签下自己的名字。

## 四、管分集与剧本的硬规则

1. 每集必须有一件事:亮出一件证据,或者一件证据被毁、被抹黑。不准空集。
2. 集尾停在变化上:证据露头、证据被毁、身份被戳穿、局面反转。不停在情绪上。
3. 林晚不抬声调,不哭诉。赢的那一下就是证据特写加一句短话,嘴可以毒。
4. 爽点只落在沈家(含苏曼丽)和周启年身上。宋知远第 37 集前不输,每次出场都在"帮忙",并且带一个伏笔:袖扣、身高、港口,三选一。
5. 签名代价线每段至少响一次:第 10、30、45、57 集。
6. 三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),反复用同样的镜头,每用一次多露一点。
7. 信息差以第二节为准。分集大纲每集要标明:这一集谁新知道了什么。

## 五、AI 拍摄约束

- 主场景不超过 8 个:婚礼宴会厅、婚房、法医中心(解剖室和主任办公室)、沈家客厅、医院、游艇、法庭、墓园。
- 造型全剧锁死不换:林晚是灰风衣加旧表;程野是金丝眼镜加白手套;沈砚是敞扣西装加黑耳钉;苏曼丽是酒红指甲;周启年是金表和胸前的老花镜;宋婉仪是旗袍和珍珠;宋知远是船锚袖扣。
- 每集说话的角色不超过 3 个,场次 2–3 场。
- 不拍水下、追车、群架。落水、投毒、扳手只拍前一秒和后一秒。
- 证据一律给竖屏特写,观众不听台词也能看懂。

返回

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

输入

cd /scratch/003/ws/003-skeleton/Tomsawyerhu__Chinese-WebNovel-Skill/run-2 && python3 -c "
import re;t=open('验尸官的婚礼_全剧骨架.md').read()
print('非空白字符',len(re.sub(r'\s','',t)));print('汉字',len(re.findall(r'[一-鿿]',t)))"

返回

非空白字符 3195
汉字 2447

思考 2 秒

Agent:
初稿已写完,汉字 2447 个,但连标点在内有 3195 字,超了 3000 的上限。正在压缩。
Bash Trim wording and recount characters

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("用途:管住分集大纲和剧本。本稿不含分集大纲和正文。","用途:管住分集大纲和剧本。"),
("最后一件证据,是她自己的签名。","最后一件证据是她自己的签名。"),
("沈砚醉倒在船舱,醒来手上有血,什么都不记得。","沈砚醉倒在船舱,醒来手上有血,什么都不记得。"),
("尸体几天后被捞起,面部损毁,按无名尸送检。林晚主检,颅骨凹陷骨折,生前伤,初稿写\"他杀\"。","尸体几天后捞起,面部损毁,按无名尸送检。林晚主检:颅骨凹陷骨折,生前伤,初稿写\"他杀\"。"),
("一年前,\"沈峥\"回国,第一件事就是当众退婚:宋知远不许一个法医离这张脸太近。所以婚礼那天,林晚是第一次近距离看见替身。","一年前\"沈峥\"回国,第一件事就是当众退婚:宋知远不许法医离这张脸太近。婚礼那天,是林晚第一次近看替身。"),
("第 22 集程野被投毒,是宋知远下的手。第 37 集之前,林晚和观众都以为是宋婉仪。","第 22 集给程野投毒的是宋知远,第 37 集前林晚和观众都以为是宋婉仪。"),
("宋婉仪轻声一句\"林法医伤心过度\",保安把她架出去;","宋婉仪轻声一句\"林法医伤心过度\",保安架她出去;"),
("周启年坐在宾客席,第二天停了她的职。","周启年在宾客席,次日停了她的职。"),
("答谢宴上苏曼丽泼她一身酒,转身把房卡塞进她手里。","答谢宴上苏曼丽泼她一身酒,转身塞给她房卡。"),
("周启年下令清库、销毁旧蜡块,她藏的那块躲过去了。要比对沈家 DNA,她去找沈砚,被当场抓住。","周启年下令销毁旧蜡块,她藏的那块躲过一劫。她去取沈砚的 DNA,被当场抓住。"),
("宋婉仪,加一个倒计时:第 28 集\"沈峥\"满三十岁,签字接股份。","宋婉仪,加倒计时:第 28 集\"沈峥\"满三十岁,签字接股份。"),
("林晚想通白手套是防指纹用的。酒会上苏曼丽\"失手\"泼酒,逼他摘下手套。酒杯上的指纹和沈峥旧书上的对不上。","林晚想通白手套是防指纹的。酒会上苏曼丽\"失手\"泼酒,逼他摘手套。酒杯指纹和沈峥旧书上的对不上。"),
("林晚找到程野的妹妹程雨,她的透析费由沈氏账户代付。","林晚找到程野的妹妹程雨,透析费由沈氏账户代付。"),
("程野\"醉酒\"倒在车里,林晚看瞳孔,断定是投毒,把人救回来。","程野\"醉酒\"倒在车里,林晚看瞳孔断定是投毒,把人救回。"),
("股份交接仪式上,林晚带着录音、指纹和程野本人进场。程野当众摘下手套和眼镜,宋婉仪现形。","交接仪式上,林晚带着录音、指纹和程野本人进场。程野当众摘下手套和眼镜,宋婉仪现形。"),
("同一时刻,周启年把林晚三年前签字的报告发给媒体,热搜:法医收钱改结论。","同一时刻,周启年把林晚签字的旧报告发给媒体,热搜:法医收钱改结论。"),
("替身线收官,命案线开启。林晚从揭发者变成被告。","替身线收官,命案线开启,林晚从揭发者变成被告。"),
("宋知远以\"公道舅舅\"的身份暗中带偏方向。","宋知远以\"公道舅舅\"身份暗中带偏。"),
("林晚被立案调查。宋知远私下见她,","林晚被立案。宋知远私下见她,"),
("林晚用初检照片还原:颅骨凹陷是扳手的半月形,从打击角度推出凶手身高 185 以上、右手持械。沈砚身高 175,嫌疑洗清。","林晚用初检照片还原:颅骨凹陷是扳手的半月形,打击角度推出凶手身高 185 以上、右手持械。沈砚 175,洗清。"),
("金表编号查到宋知远名下的海外公司,那张单据是假的。周启年在法医中心当众被带走。矛头第一次指向宋知远。","金表编号查到宋知远名下的海外公司,那张单据是假的。周启年在法医中心当众被带走,矛头第一次指向宋知远。"),
("宋知远要把游艇拆解卖掉。","宋知远要拆卖游艇。"),
("鲁米诺喷过甲板,三年前的血迹泛出蓝光;从甲板缝里撬出那枚船锚袖扣。","鲁米诺喷过甲板,三年前的血迹泛出蓝光;甲板缝里撬出那枚船锚袖扣。"),
("苏曼丽反水,因为宋知远捏着苏家的港口许可。她把袖扣留作苏家的筹码,还作证林晚\"栽赃\"。","苏曼丽反水:宋知远捏着苏家的港口许可。她扣下袖扣当苏家的筹码,还作证林晚\"栽赃\"。"),
("宋知远来探视,袖口一对袖扣一新一旧:","宋知远来探视,袖扣一新一旧:"),
("凶手已经清楚,证据却全丢了,林晚失去自由。","凶手清楚了,证据全丢了,林晚失去自由。"),
("宋知远出境倒计时,还有她自己的签名。","宋知远出境倒计时,和她自己的签名。"),
("沈砚交出夜上游艇的全程视频,证明袖扣是当场撬出来的,林晚取保。沈砚想起哥哥那晚说过的话:","沈砚交出夜上游艇的全程视频,证明袖扣是当场撬出的,林晚取保。沈砚想起哥哥那晚的话:"),
("她撬开表后盖,取出存储卡:洗钱账目,还有沈峥的一段语音:","她撬开表后盖,存储卡里是洗钱账目,和沈峥的一段语音:"),
("宋婉仪听完儿子的语音,翻出当年弟弟安排替身的转账,和那条\"就说是意外\"的短信,转做证人。","宋婉仪听完儿子的语音,交出弟弟当年安排替身的转账和那条\"就说是意外\"的短信,转做证人。"),
("宋知远准备从港口出境,约林晚上游艇\"谈条件\"。录音全程开着,这是林晚设的局。他举起扳手,船舱里走出戴金丝眼镜的\"沈峥\":程野最后一次扮沈峥。宋知远愣住,警灯亮起。","宋知远要从港口出境,约林晚上游艇\"谈条件\"。这是林晚设的局,录音全程开着。他举起扳手,船舱里走出戴金丝眼镜的\"沈峥\",是程野最后一次扮他。宋知远愣住,警灯亮起。"),
("她撤回原报告,接受追责,重新写下","她撤回原报告,接受追责,写下"),
("- 全剧收束:主问题和代价线在同一个动作里落地:她签下自己的名字。","- 全剧收束:主问题和代价线落在同一个动作上:她签下自己的名字。"),
("每集必须有一件事:亮出一件证据,或者一件证据被毁、被抹黑。不准空集。","每集必须亮出一件证据,或一件证据被毁、被抹黑。不准空集。"),
("林晚不抬声调,不哭诉。赢的那一下就是证据特写加一句短话,嘴可以毒。","林晚不抬声调,不哭诉。赢的那一下 = 证据特写 + 一句短话,嘴可以毒。"),
("宋知远第 37 集前不输,每次出场都在\"帮忙\",并且带一个伏笔:袖扣、身高、港口,三选一。","宋知远第 37 集前不输,每次出场都在\"帮忙\",并带一个伏笔:袖扣、身高、港口三选一。"),
("三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),反复用同样的镜头,每用一次多露一点。","三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),镜头复用,每次多露一点。"),
("信息差以第二节为准。分集大纲每集要标明:这一集谁新知道了什么。","信息差以第二节为准。分集大纲每集标明:谁新知道了什么。"),
("造型全剧锁死不换:林晚是灰风衣加旧表;程野是金丝眼镜加白手套;沈砚是敞扣西装加黑耳钉;苏曼丽是酒红指甲;周启年是金表和胸前的老花镜;宋婉仪是旗袍和珍珠;宋知远是船锚袖扣。","造型全剧锁死:林晚灰风衣、旧表;程野金丝眼镜、白手套;沈砚敞扣西装、黑耳钉;苏曼丽酒红指甲;周启年金表、胸前老花镜;宋婉仪旗袍、珍珠;宋知远船锚袖扣。"),
("每集说话的角色不超过 3 个,场次 2–3 场。","每集说话角色不超过 3 个,2–3 场戏。"),
("证据一律给竖屏特写,观众不听台词也能看懂。","证据一律给竖屏特写,不听台词也看得懂。"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)));print('汉字',len(re.findall(r'[一-鿿]',t)))
EOF

返回

非空白字符 3074
汉字 2331

思考 1 秒

Bash Trim further and recount

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("林晚每集拿出一件看得见的证据,打穿沈家和周启年;每赢一次,离\"谁杀了沈峥\"更近,也离她自己签的那份\"意外\"更近。","林晚每集拿出一件看得见的证据,打穿沈家和周启年;每赢一次,离\"谁杀了沈峥\"更近,也离她签的那份\"意外\"更近。"),
("宋知远用船用扳手砸他后脑,把人推下海;","宋知远用扳手砸他后脑,推下海;"),
("出事前一天,沈峥把旧机械表交给林晚:\"帮我收着。\"表后盖里藏着洗钱账目的存储卡,林晚至今不知道。","出事前一天,沈峥把旧机械表交给林晚:\"帮我收着。\"表后盖里藏着洗钱账目的存储卡,她至今不知。"),
("苏曼丽寄请柬来羞辱她。","苏曼丽寄请柬羞辱她。"),
("沈家反手放出\"前未婚妻闯婚房\"的视频,网暴开始。","沈家放出\"前未婚妻闯婚房\"视频,网暴开始。"),
("沈砚自己抽了管血拍在桌上:","沈砚抽了管血拍在桌上:"),
("周启年宣布私检 DNA 程序违规,结果作废。","周启年宣布私检 DNA 违规,结果作废。"),
("沈砚翻出程野当年在夜场演模仿秀的视频。","沈砚翻出程野当年的夜场模仿秀视频。"),
("沈砚坦白那晚他也在船上,醒来手上有血。","沈砚坦白那晚他在船上,醒来手上有血。"),
("账目里也有苏家的港口。林晚找到苏曼丽:","账目里也有苏家港口。林晚找苏曼丽:"),
("周启年认了收钱,宋知远认罪。","周启年认收钱,宋知远认罪。"),
("集尾停在变化上:证据露头、证据被毁、身份被戳穿、局面反转。不停在情绪上。","集尾停在变化上(证据露头、被毁、身份被戳穿、局面反转),不停在情绪上。"),
("爽点只落在沈家(含苏曼丽)和周启年身上。","爽点只落在沈家(含苏曼丽)和周启年。"),
("不拍水下、追车、群架。落水、投毒、扳手只拍前一秒和后一秒。","不拍水下、追车、群架;落水、投毒、扳手只拍前后一秒。"),
("- 关键拍:\n","- 关键拍\n"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)));print('汉字',len(re.findall(r'[一-鿿]',t)))
EOF

返回

非空白字符 3042
汉字 2302

思考 2 秒

Bash Final trim and recount

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("- 全剧收束:主问题和代价线落在同一个动作上:她签下自己的名字。\n",""),
("证据阶梯:虎口的疤 → 签名练习纸 → 蜡块 DNA → 指纹 → 录音 → 颅骨照片 → 金表 → 血迹与袖扣 → 表里的存储卡 → 她自己的签名。","证据阶梯:疤 → 签名练习纸 → 蜡块 DNA → 指纹 → 录音 → 颅骨照片 → 金表 → 血迹与袖扣 → 存储卡 → 她的签名。"),
("宋婉仪只知道儿子\"落水失踪\"。","宋婉仪只知儿子\"落水失踪\"。"),
("林晚有了内应,也第一次被自己的签名威胁。","林晚有了内应,也第一次被自己的签名威胁。"),
("主压迫:沈家当众羞辱,周启年停她的职。","主压迫:沈家当众羞辱,周启年停职。"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)));print('去markdown符号',len(re.sub(r'[\s#\-*|]','',t)));print('汉字',len(re.findall(r'[一-鿿]',t)))
EOF

返回

非空白字符 3000
去markdown符号 2931
汉字 2264

思考

Bash Trim for margin under limit

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("婚房里搜出一整页\"沈峥\"签名的练习纸。","婚房里搜出一整页\"沈峥\"签名练习纸。"),
("程野堵住林晚:","程野堵她:"),
("辩方举起她当年签的\"意外\":","辩方举起她签的\"意外\":"),
("苏家被查,苏曼丽的婚姻被判无效。","苏家被查,苏曼丽婚姻无效。"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)))
EOF

返回

非空白字符 2992
Read ./验尸官的婚礼_全剧骨架.md

输入

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

返回

1	# 《验尸官的婚礼》全剧骨架
2	
3	60 集|竖屏|单集 1–2 分钟|AI 拍摄
4	用途:管住分集大纲和剧本。
5	
6	## 一、全剧主轴
7	
8	林晚每集拿出一件看得见的证据,打穿沈家和周启年;每赢一次,离"谁杀了沈峥"更近,也离她签的那份"意外"更近。最后一件证据是她自己的签名。
9	
10	- 主问题:三年前谁杀了沈峥?
11	- 代价线:真相成立,就等于她当年签的是假报告。
12	- 嫌疑走向:宋婉仪(1–30)→ 沈砚(31–36)→ 宋知远(37 起)。
13	- 证据阶梯:疤 → 签名练习纸 → 蜡块 DNA → 指纹 → 录音 → 颅骨照片 → 金表 → 血迹与袖扣 → 存储卡 → 她的签名。
14	
15	## 二、底牌(编剧组内部,不得改动)
16	
17	1. 四年前,林晚与沈峥订婚。沈峥左手虎口有一道七针的疤,是她亲手缝的。
18	2. 三年前,游艇上,沈峥当面质问宋知远借港口洗钱。宋知远用扳手砸他后脑,推下海;沈峥挣扎时扯掉一枚船锚袖扣,卡进甲板缝。沈砚醉倒在船舱,醒来手上有血,什么都不记得。
19	3. 出事前一天,沈峥把旧机械表交给林晚:"帮我收着。"表后盖里藏着洗钱账目的存储卡,她至今不知。
20	4. 宋婉仪只知儿子"落水失踪"。为保住长孙三十岁继承的股份,宋知远替她找来程野整容顶替,对外说"在国外养病"。
21	5. 尸体几天后捞起,面部损毁,按无名尸送检。林晚主检:颅骨凹陷骨折,生前伤,初稿写"他杀"。她看见虎口那道疤,当晚打给沈峥,接电话的是程野模仿的声音:"我在瑞士,挺好的。"她信了。
22	6. 周启年收了宋知远的钱和一块金表,逼她改成"意外·礁石撞击",三天内火化。她签了字,私下留了一块组织蜡块和手写的初检笔记。
23	7. 一年前"沈峥"回国,第一件事就是当众退婚:宋知远不许法医离这张脸太近。婚礼那天,是林晚第一次近看替身。
24	8. 第 22 集给程野投毒的是宋知远,第 37 集前林晚和观众都以为是宋婉仪。
25	
26	## 三、四段结构
27	
28	### 第一段 婚礼验尸(1–10)
29	
30	- 段目标:证明那具无名尸是沈家人。
31	- 主压迫:沈家当众羞辱,周启年停职。
32	- 关键拍
33	  - 1:苏曼丽寄请柬羞辱她。交换戒指时新郎摘下白手套,虎口光洁。闪回解剖台上那道七针疤。林晚起身:"新郎不是沈峥。"
34	  - 2–3:宋婉仪轻声一句"林法医伤心过度",保安架她出去;"沈峥"说疤去年做了祛疤。周启年在宾客席,次日停了她的职。宋知远递来纸巾,袖扣给特写。
35	  - 4–6:答谢宴上苏曼丽泼她一身酒,转身塞给她房卡。婚房里搜出一整页"沈峥"签名练习纸。沈家放出"前未婚妻闯婚房"视频,网暴开始。
36	  - 7–9:周启年下令销毁旧蜡块,她藏的那块躲过一劫。她去取沈砚的 DNA,被当场抓住。沈砚抽了管血拍在桌上:"验出来不是,你就滚出这座城。"
37	  - 10【卡点】:同胞关系成立。沈砚第一次没笑。周启年打来电话:"签'意外'的,是你。"
38	- 段末换局:林晚有了内应,也第一次被自己的签名威胁。
39	
40	### 第二段 剥替身(11–30)
41	
42	- 段目标:让"沈峥"当众现形,逼出找替身的人。
43	- 主压迫:宋婉仪,加倒计时:第 28 集"沈峥"满三十岁,签字接股份。
44	- 关键拍
45	  - 11–13:周启年宣布私检 DNA 违规,结果作废。宋婉仪放出伪造的林晚精神科就诊记录。
46	  - 14–17:林晚想通白手套是防指纹的。酒会上苏曼丽"失手"泼酒,逼他摘手套。酒杯指纹和沈峥旧书上的对不上。
47	  - 18–21:沈砚翻出程野当年的夜场模仿秀视频。林晚找到程野的妹妹程雨,透析费由沈氏账户代付。程野堵她:"别碰她。"林晚:"哪天你没用了,她的透析费也会停。"
48	  - 22–25:程野"醉酒"倒在车里,林晚看瞳孔断定是投毒,把人救回。程野交出保命录音,是宋婉仪的声音:"从今天起你就是沈峥。他是自己掉下去的。"
49	  - 26–28:交接仪式上,林晚带着录音、指纹和程野本人进场。程野当众摘下手套和眼镜,宋婉仪现形。
50	  - 29–30【卡点】:宋婉仪认了:"替身是我找的,可我儿子是落水。"同一时刻,周启年把林晚签字的旧报告发给媒体,热搜:法医收钱改结论。
51	- 段末换局:替身线收官,命案线开启,林晚从揭发者变成被告。
52	
53	### 第三段 从意外到他杀(31–45)
54	
55	- 段目标:推翻"意外",找到凶手。
56	- 主压迫:立案调查、舆论、周启年。宋知远以"公道舅舅"身份暗中带偏。
57	- 关键拍
58	  - 31–33:林晚被立案。宋知远私下见她,递来"宋婉仪当年给周启年转账"的单据,把锅推给姐姐。
59	  - 34–36:沈砚坦白那晚他在船上,醒来手上有血。林晚用初检照片还原:颅骨凹陷是扳手的半月形,打击角度推出凶手身高 185 以上、右手持械。沈砚 175,洗清。
60	  - 37–40:金表编号查到宋知远名下的海外公司,那张单据是假的。周启年在法医中心当众被带走,矛头第一次指向宋知远。
61	  - 41–42:宋知远要拆卖游艇。林晚、沈砚、苏曼丽夜上游艇,鲁米诺喷过甲板,三年前的血迹泛出蓝光;甲板缝里撬出那枚船锚袖扣。
62	  - 43–45【卡点】:苏曼丽反水:宋知远捏着苏家的港口许可。她扣下袖扣当苏家的筹码,还作证林晚"栽赃"。林晚被拘。宋知远来探视,袖扣一新一旧:"你签过一次,就能签第二次。"
63	- 段末换局:凶手清楚了,证据全丢了,林晚失去自由。
64	
65	### 第四段 她自己的签名(46–60)
66	
67	- 段目标:让宋知远认罪,并亲手推翻自己的报告。
68	- 主压迫:宋知远出境倒计时,和她自己的签名。
69	- 关键拍
70	  - 46–48:沈砚交出夜上游艇的全程视频,证明袖扣是当场撬出的,林晚取保。沈砚想起哥哥那晚的话:"东西我放在晚晚那儿了。"她撬开表后盖,存储卡里是洗钱账目,和沈峥的一段语音:"如果我出事,去问舅舅。"
71	  - 49–51:账目里也有苏家港口。林晚找苏曼丽:"拿着它,苏家陪葬;交出来,苏家是证人。"袖扣交了回来。宋婉仪听完儿子的语音,交出弟弟当年安排替身的转账和那条"就说是意外"的短信,转做证人。
72	  - 52–54:宋知远要从港口出境,约林晚上游艇"谈条件"。这是林晚设的局,录音全程开着。他举起扳手,船舱里走出戴金丝眼镜的"沈峥",是程野最后一次扮他。宋知远愣住,警灯亮起。
73	  - 55–58:庭审。辩方举起她签的"意外":"这是鉴定人自己的结论。"林晚当庭说:"这份是我签的,是假的。"她撤回原报告,接受追责,写下"死者沈峥,他杀",签上名字。周启年认收钱,宋知远认罪。
74	  - 59:宋婉仪交出沈氏。程野带程雨去自首。苏家被查,苏曼丽婚姻无效。
75	  - 60:墓园。林晚把那块表放在沈峥墓前。
76	
77	## 四、管分集与剧本的硬规则
78	
79	1. 每集必须亮出一件证据,或一件证据被毁、被抹黑。不准空集。
80	2. 集尾停在变化上(证据露头、被毁、身份被戳穿、局面反转),不停在情绪上。
81	3. 林晚不抬声调,不哭诉。赢的那一下 = 证据特写 + 一句短话,嘴可以毒。
82	4. 爽点只落在沈家(含苏曼丽)和周启年。宋知远第 37 集前不输,每次出场都在"帮忙",并带一个伏笔:袖扣、身高、港口三选一。
83	5. 签名代价线每段至少响一次:第 10、30、45、57 集。
84	6. 三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),镜头复用,每次多露一点。
85	7. 信息差以第二节为准。分集大纲每集标明:谁新知道了什么。
86	
87	## 五、AI 拍摄约束
88	
89	- 主场景不超过 8 个:婚礼宴会厅、婚房、法医中心(解剖室和主任办公室)、沈家客厅、医院、游艇、法庭、墓园。
90	- 造型全剧锁死:林晚灰风衣、旧表;程野金丝眼镜、白手套;沈砚敞扣西装、黑耳钉;苏曼丽酒红指甲;周启年金表、胸前老花镜;宋婉仪旗袍、珍珠;宋知远船锚袖扣。
91	- 每集说话角色不超过 3 个,2–3 场戏。
92	- 不拍水下、追车、群架;落水、投毒、扳手只拍前后一秒。
93	- 证据一律给竖屏特写,不听台词也看得懂。
94	

思考 16 秒

Agent:
全剧骨架写好了,存在当前目录:`验尸官的婚礼_全剧骨架.md`。

**篇幅:** 不算空白一共 2992 字(标点和 Markdown 符号也算在内),其中汉字 2264 个,在 3000 字以内。只写了骨架,没写分集大纲和正文。

**文件结构:**
1. **全剧主轴**:主问题、代价线、嫌疑人顺序(宋婉仪 → 沈砚 → 宋知远)、证据阶梯,从"疤"一路排到"她的签名"。
2. **底牌**:三年前的真实时间线,给编剧组内部用,写明"不得改动",后面分集管信息差就以这里为准。
3. **四段结构**:1–10、11–30、31–45、46–60。每段写了目标、主要压力、关键情节点和段末局面变化。第 10、30、45 集设为卡点,林晚签字这件事分别在第 10、30、45、57 集被翻出来。
4. **硬规则**:每集必须有一件证据亮出来或被毁掉;集尾停在局面变化上;宋知远第 37 集前不能输;三年前的闪回统一用一组冷色镜头。
5. **AI 拍摄约束**:主场景不超过 8 个;每个人的造型全剧固定;每集最多 3 个说话角色;不拍水下、追车和打斗;证据一律给特写。

**选题卡里没有、我补进去的设定**(不合适可以直接改):
- 虎口那道疤是林晚当年亲手给沈峥缝的七针。三年前她在尸体上看见这道疤,当晚打电话给沈峥,接电话的是程野学的声音,所以她没往下想。
- "沈峥"一年前才回国,回来就当众退婚。这样婚礼才是林晚第一次近距离看到替身,解释了她为什么之前没发现。
- 白手套是为了不留指纹;第 28 集"沈峥"满三十岁、签字接股份,作为第二段的倒计时。
- 尸检推出凶手身高 185 以上,这一点洗清了沈砚。凶手打人时扯掉的船锚袖扣卡在游艇甲板缝里,宋知远现在戴的一对是一新一旧。
- 那块旧表是沈峥出事前一天交给林晚的,表后盖里藏着洗钱账目的存储卡和他的一段语音。结局林晚把表放到墓前,就接上了这条线。
- 第 22 集给程野下毒的是宋知远,但第 37 集之前,林晚和观众都以为是宋婉仪。
- 苏曼丽反水,是因为宋知远捏着苏家的港口许可。她扣下袖扣是为了给苏家留筹码,后来交回来也是出于利益,不是良心发现,所以全剧她只反水这一次。
- 高潮是程野最后一次扮成沈峥,在游艇上当面撞上宋知远。

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

第 2 轮

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

思考 18 秒

Agent:
这个骨架文件上一轮已经写好了。我按选题卡逐条核对了一遍,发现一处时间线和选题卡冲突,正在修。

问题出在沈砚的小传:选题卡写的是"三年前哥哥从国外'养病'回来",可我的底牌写成了"一年前才回国"。这样一来,替身其实顶着沈峥的身份和林晚订了两年婚,我得把"她为什么两年都没认出来"重新圆上。
Bash Fix timeline conflict and recount

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("4. 宋婉仪只知儿子\"落水失踪\"。为保住长孙三十岁继承的股份,宋知远替她找来程野整容顶替,对外说\"在国外养病\"。",
 "4. 宋婉仪只知儿子\"落水失踪\"。为保住长孙三十岁继承的股份,宋知远替她找来程野整容顶替,对外说\"在国外养病\",几个月后回国。"),
("7. 一年前\"沈峥\"回国,第一件事就是当众退婚:宋知远不许法医离这张脸太近。婚礼那天,是林晚第一次近看替身。",
 "7. \"沈峥\"回国后说病后洁癖,手套从不摘,对林晚冷淡疏远;她以为是病,又困在签字的愧疚里,没往下想。一年前宋知远怕她看穿,让他当众退婚。婚礼交换戒指,是林晚三年来第一次看见他的左手。"),
("三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),镜头复用,每次多露一点。",
 "三年前的戏只用一组冷色闪回(解剖台、游艇甲板、那通电话),镜头复用,每次多露一点。"),
("宋婉仪轻声一句\"林法医伤心过度\",保安架她出去;","宋婉仪轻声一句\"林法医伤心过度\",保安架她出去;"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)))
EOF

返回

非空白字符 3037

思考

Agent:
改完超出 37 字,再压一下别处的措辞。
Bash Trim to fit limit and recount

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("\"沈峥\"回国后说病后洁癖,手套从不摘,对林晚冷淡疏远;她以为是病,又困在签字的愧疚里,没往下想。一年前宋知远怕她看穿,让他当众退婚。婚礼交换戒指,是林晚三年来第一次看见他的左手。",
 "\"沈峥\"回国后推说病后洁癖,手套从不摘,对林晚冷淡;她以为是病,又困在签字的愧疚里。一年前宋知远怕她看穿,让他当众退婚。婚礼交换戒指,是她三年来第一次看见他的左手。"),
("对外说\"在国外养病\",几个月后回国。","对外说\"在国外养病\",数月后回国。"),
("周启年收了宋知远的钱和一块金表,逼她改成\"意外·礁石撞击\",三天内火化。她签了字,私下留了一块组织蜡块和手写的初检笔记。",
 "周启年收了宋知远的钱和金表,逼她改成\"意外·礁石撞击\",三天火化。她签了字,私留一块组织蜡块和手写初检笔记。"),
("同一时刻,周启年把林晚签字的旧报告发给媒体,热搜:法医收钱改结论。","同时周启年把她签字的旧报告发给媒体,热搜:法医收钱改结论。"),
("宋知远私下见她,递来\"宋婉仪当年给周启年转账\"的单据,把锅推给姐姐。","宋知远私下递来\"宋婉仪给周启年转账\"的单据,把锅推给姐姐。"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)))
EOF

返回

非空白字符 3014
Bash Final trim, recount, show revised backstory

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
R=[
("三年前,游艇上,沈峥当面质问宋知远借港口洗钱。","三年前游艇上,沈峥质问宋知远借港口洗钱。"),
("尸体几天后捞起,面部损毁,按无名尸送检。","尸体数日后捞起,面部损毁,按无名尸送检。"),
("她看见虎口那道疤,当晚打给沈峥,接电话的是程野模仿的声音:","她看见虎口的疤,当晚打给沈峥,接电话的是程野学的声音:"),
("段末换局:凶手清楚了,证据全丢了,林晚失去自由。","段末换局:凶手清楚了,证据全丢,林晚失去自由。"),
]
for a,b in R:
    assert a in t, a
    t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)));print('汉字',len(re.findall(r'[一-鿿]',t)))
EOF
grep -n "^[2-8]\. " 验尸官的婚礼_全剧骨架.md | head -8

返回

非空白字符 3008
汉字 2270
18:2. 三年前游艇上,沈峥质问宋知远借港口洗钱。宋知远用扳手砸他后脑,推下海;沈峥挣扎时扯掉一枚船锚袖扣,卡进甲板缝。沈砚醉倒在船舱,醒来手上有血,什么都不记得。
19:3. 出事前一天,沈峥把旧机械表交给林晚:"帮我收着。"表后盖里藏着洗钱账目的存储卡,她至今不知。
20:4. 宋婉仪只知儿子"落水失踪"。为保住长孙三十岁继承的股份,宋知远替她找来程野整容顶替,对外说"在国外养病",数月后回国。
21:5. 尸体数日后捞起,面部损毁,按无名尸送检。林晚主检:颅骨凹陷骨折,生前伤,初稿写"他杀"。她看见虎口的疤,当晚打给沈峥,接电话的是程野学的声音:"我在瑞士,挺好的。"她信了。
22:6. 周启年收了宋知远的钱和金表,逼她改成"意外·礁石撞击",三天火化。她签了字,私留一块组织蜡块和手写初检笔记。
23:7. "沈峥"回国后推说病后洁癖,手套从不摘,对林晚冷淡;她以为是病,又困在签字的愧疚里。一年前宋知远怕她看穿,让他当众退婚。婚礼交换戒指,是她三年来第一次看见他的左手。
24:8. 第 22 集给程野投毒的是宋知远,第 37 集前林晚和观众都以为是宋婉仪。
80:2. 集尾停在变化上(证据露头、被毁、身份被戳穿、局面反转),不停在情绪上。
Bash Trim last few characters and recount

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
a="用途:管住分集大纲和剧本。"; b="用途:管分集大纲和剧本。"
assert a in t; t=t.replace(a,b)
a="主压迫:宋知远出境倒计时,和她自己的签名。"; b="主压迫:宋知远出境倒计时,和她的签名。"
assert a in t; t=t.replace(a,b)
a="林晚当庭说:\"这份是我签的,是假的。\""; b="林晚当庭:\"这份是我签的,是假的。\""
assert a in t; t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)))
EOF

返回

非空白字符 3004
Bash Trim remaining characters and recount

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
for a,b in [("沈砚 175,洗清。","沈砚 175,洗清。"),("袖扣交了回来。","袖扣交回。"),("程野带程雨去自首。","程野带程雨自首。"),("墓园。林晚把那块表放在沈峥墓前。","墓园。林晚把表放在沈峥墓前。")]:
    assert a in t; t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)))
EOF

返回

非空白字符 2999

思考 2 秒

Bash Restore ending wording to match premise

输入

python3 - <<'EOF'
import re
f='验尸官的婚礼_全剧骨架.md'
t=open(f).read()
for a,b in [("程野带程雨自首。","程野带着妹妹去自首。"),("宋婉仪交出沈氏。","宋婉仪交出沈氏,"),("苏家被查,苏曼丽婚姻无效。","苏家被查。")]:
    assert a in t; t=t.replace(a,b)
open(f,'w').write(t)
print('非空白字符',len(re.sub(r'\s','',t)))
EOF
grep -n "59:" 验尸官的婚礼_全剧骨架.md

返回

非空白字符 2993
74:  - 59:宋婉仪交出沈氏,程野带着妹妹去自首。苏家被查。

思考 6 秒

Agent:
全剧骨架定稿了,文件还是当前目录下的 `验尸官的婚礼_全剧骨架.md`。不算空白一共 2993 字,在 3000 字以内。按你说的,分集大纲和剧本都没写。

**这一轮改了一处和选题卡矛盾的地方。** 选题卡里沈砚的小传写的是"三年前哥哥从国外'养病'回来",我上一版却写成替身"一年前才回国",两边对不上。现在按选题卡改过来了:替身三年前出事后几个月就回国,推说病后有洁癖,手套从不摘,对林晚很冷淡。林晚以为是病,又一直背着签假报告的愧疚,所以没往下想。婚礼上交换戒指,是她三年来第一次看见他的左手。这样"一眼认出替身"说得通了,白手套也从头到尾都有用:先是藏住没有疤的虎口,后面又是防留指纹。

另外为了压字数,删掉了结尾那句"苏曼丽婚姻无效",第 59 集现在只写"苏家被查"。第 59 集还把"程野带程雨自首"改回了选题卡的原话"带着妹妹去自首",免得读成妹妹也去自首。其余结构没有动,还是四段:1–10、11–30、31–45、46–60,卡点在第 10、30、45 集。

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

第 3 轮

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

思考 3 秒

Bash Check the final file against premise requirements

输入

ls -la *.md && python3 -c "
import re;t=open('验尸官的婚礼_全剧骨架.md').read();print(len(re.sub(r'\s','',t)))
for k in ['认罪','交出沈氏','带着妹妹去自首','死者沈峥,他杀','墓前','苏曼丽反水','内应','醉倒']: print(k, k in t)"

返回

-rw-r--r--  1 user  wheel  4233 Oct 30 17:27 premise.md
-rw-r--r--  1 user  wheel  8596 Oct 30 17:34 验尸官的婚礼_全剧骨架.md
2993
认罪 True
交出沈氏 True
带着妹妹去自首 True
死者沈峥,他杀 True
墓前 True
苏曼丽反水 True
内应 True
醉倒 True

思考 4 秒

Agent:
全剧骨架已经写完,就是当前目录下的 `验尸官的婚礼_全剧骨架.md`。这一轮没有再改内容,只把文件和 premise.md 又对了一遍:

- **格式**:60 集竖屏、每集 1–2 分钟、AI 拍摄,文件里专门有一节写拍摄约束。只写了骨架,没写分集大纲和剧本。
- **字数**:不算空白一共 2993 字,在 3000 字以内。
- **结局**:都写进去了:宋知远认罪,宋婉仪交出沈氏,程野带着妹妹去自首,林晚当庭推翻自己的报告并重新写下"死者沈峥,他杀",最后把表放在沈峥墓前。
- **人物**:选题卡要的都在:苏曼丽反水一次,沈砚成为内应、藏着游艇醉酒的秘密,周启年收钱逼林晚签字,宋婉仪一直以为儿子是意外死的。
- **时间线**:上一轮已经按选题卡改成"三年前替身回国",和沈砚的小传对得上了。

需要你定的地方,我都按自己推荐的定了,在文件里没有留待选的方案。

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