# 改编压缩、合并与信息视觉化

## 目录

- [改编契约](#1-先建立改编契约)
- [长材料导入](#长材料导入先建立可追溯语义层)
- [功能账本](#2-用功能账本压缩)
- [按爽点压缩](#先按爽点取舍)
- [信息视觉化](#3-信息视觉化阶梯)
- [因果桥](#4-保住因果桥)
- [重排登记](#重排也要登记)
- [新增登记](#新增也要登记)
- [单集化](#5-单集化而不肢解)
- [登记不等于兑现](#5b-登记不等于兑现)
- [分级审查](#6-规则分级与审查)

改编先找出原著吸引观众的爽点，把它们排到观众能尽早获得回报的位置，再保住让爽点成立的
戏剧功能，为屏幕、单集边界和制作条件寻找合适载体。压缩顺序服从因果与创作者的改编边界。

## 1. 先建立改编契约

| 类别 | 含义 | 处理 |
|---|---|---|
| 不可改承诺 | 核心人物的立场与性情、核心关系、主线、关键选择、结局含义、必要世界规则 | 保持事实与功能 |
| 可换载体 | 叙述顺序、场景、配角、信息出现方式 | 可压缩/合并，但记录替代关系 |
| 可删冗余 | 重复说明、只连接路程的段落、无新状态的复述 | 删除并说明没有损失什么 |
| 未决歧义 | 原材料本身矛盾或授权不清 | 保留问题，不替作者定案 |

不要把“更短”当作唯一目标。删掉的段落可能很短，却承担信任转变；保留的奇观可能很长，
却没有推动人物选择。

### 长材料导入：先建立可追溯语义层

小说、多集散稿或混合格式不能直接交给剧本索引器。保留原始字节与来源说明，由 agent
按章节、场景变化、叙述视角、时间跳转和行动因果做语义分段；每段记录 source span、
人物称谓、地点、生产相关物件、信息权限、戏剧功能和低置信歧义。统计/正则可帮助定位
重复称谓或候选段落，但不能判断人物同一性、关系、场景功能或分集边界。

原始小说或散稿始终保存在不交付的 `输入/`；`项目开发/adaptation-map.jsonl` 只保存
输入文件的 locator、byte/line span、去引用的功能摘要、未解析称谓/物件，以及该功能
保留、合并、换载体、删减或进入哪个候选分集与可能损失。不得把来源原句或连续段落复制到
development，避免交付包把输入材料带出边界。

分集候选按局部戏剧结果和准确交接组织，不按章节号、字数或关键词机械切分。创作者接受
改编与分集决定后，write owner 才写入 `剧集/<EP>/剧本.md`，assets owner 再从
已接受剧本建立该集的 `视觉设定.md`。导入阶段可以展示人物/场景/物品**候选预览**，
但它只是 develop-owned proposal，必须带来源与 `unresolved`，不能写入资产设定集，也不能在
角色合并、删场或道具换载体之前冒充最终资产库。

### 写下游内容时定点回原文

改编不是把原著通读一遍就再也不回头。写分集、写某一集时，经常需要回原文取具体细节——
动作顺序、物件在谁手里、围观者的反应、某句话实际起的作用。这一步有两种稳定的失败：
**查不准**，和**查到了不该用的**。

**查询用事件锚点，不用概念词**。 原著里反复出现的概念词（能力名、境界名、组织名、
主题词）会在几十处命中，返回的片段横跨全书各阶段，很难判断哪一段对应当前进度。事件
锚点是三样具体东西的组合：**谁 + 在哪里或用什么 + 正在做什么或与谁冲突**。锚点越像
一个具体场面，命中越集中。

- 弱：`修炼 突破 功法`
- 强：`<角色名> 后院 药炉 当众被夺`

命中为空时，换一组**更具体**的锚点重查，而不是退回更宽的词——宽词命中更多，可用的更少。

**命中之后回读原文段落，不要凭检索摘要写**。 摘要最先丢掉的正是你要取的东西：动作
先后、谁先开口、东西在谁手里。

**最容易被忽略的一条：命中可能来自故事后段**。 概念词尤其容易把后期章节拉进来。来自
更晚阶段的段落，其中的人物关系、知情范围和能力边界都已经推进过；直接拿它写当前集，
会让人物提前知道此刻不该知道的事，或提前拥有还没得到的手段。这类穿帮很难在后面被发现，
因为它读起来完全通顺。

判定办法：把命中片段的**知情状态**与当前集的进入状态逐项对照——片段里谁已经知道了什么、
谁已经与谁结盟、主角手里已经有什么。任何一项超前，这段就只能作为风格或信息参考，
不能作为当前集的依据。

**召回补细节；把后文提前是改地图**。 已接受的分集契约决定这一集发生什么；回原文是把
已经决定的事写具体。原文后段另有该提前的高光时，把它提前是正当的改编，不是虚构——但它
要作为 `move_earlier` 或 `cold_open` 登记进改编映射、由 develop owner 改分集地图，而不是
在写正文时顺手塞进来。

**`craft_default · STY-22`**：回原文取细节时，用"人物 + 地点/物件 + 当前动作或冲突"
的事件锚点检索，回读命中段落而不是凭摘要写，并在使用前把片段的知情状态与当前集进入
状态对照；超前的片段只作参考。召回只补足已接受契约的细节；要提前后文的情节，先改分集地图。

## 2. 用功能账本压缩

**`STY-07 · reviewed_invariant`**：任何改编处理——合并、换载体、压缩、重排、新增——都保住
原著核心人物的立场与性情、核心关系和主线，不与原著事实相矛盾，创作者已接受的改动除外；人物或
场景合并还要保留戏剧作用、知情范围、关系位置和因果桥。“人更少”不能单独证明合并成功。

立场与性情指这个人对主角是帮、是压还是观望，为什么，以及他做事的方式。压力可以放大、外化：
原著里嘴硬心软、只是不信徒弟能成的老师傅，可以把不信当众说出来，成为第一个看走眼的人；改成处处
使绊子、暗中拆台的对手，就换了一个人。改人物立场或关系不是换载体：映射按实际处理登记，在
`lost_or_changed` 写明改了什么，`creator_acceptance.status` 保持 `pending`，把提议写进简报交创作者决定。

为候选人物、场景和信息记录它承担的功能：

- 谁迫使主角作选择；
- 谁持有证据、秘密、资源或社会许可；
- 哪个场景改变权力、知识、关系、风险或物理状态；
- 哪段建立后续兑现所需的误信/承诺；
- 哪个空间限制让冲突必须现在发生。

### 先按爽点取舍

压缩分两步：先保留观众收益最高的情节点——爽点、糖点、虐点，排名来自原著分析的爽点表；
再删掉不服务这些点的支线，合并功能重复的人物。一个改编实例只保留了原著约六成情节。
若需要控制制作规模，可把核心人物 3–5 人、全剧不超过 20 人、高潮集新增不超过 2 人作为
可覆盖的工艺参考；这些数量与六成比例都不构成保留目标或质量门槛。

集数与章数的关系由爽点分布决定，不按章 1:1 切：没有爽点的长段并进相邻集或删掉，
一章里有两个大爽点时可以拆成两集，后文的高光可以提前。按原著顺序一章一集往下切，
结果通常是拉长而不是压缩，第一个爽点被推到好几集之后。

**`craft_default · STY-28`**：压缩先按爽点表留下热度最高的情节点，再删支线、合并功能重复的
人物；集数跟着爽点分布走，不按章节 1:1 切分。

### 先删线，再合并

删掉整条支线和合并人物是两种操作，判据不同，顺序也不能反。**先删线**：合并是把功能
重新分配给某个人，如果这个人所在的线随后被删，刚做的分配全部作废，而且往往已经带着
它改过分集地图。

删整条线的判据不是"这条线好不好看"，而是**删掉之后主线还成不成立**：

1. **它的兑现是否被保留的线依赖**？这条线的结果如果是别处铺垫的兑现，或是别处兑现的
   铺垫，删掉就断桥。查 `payoff_ids`/`setup_ids` 两个方向，不要只查一个。
2. **主角是否靠它获得行动手段**？某条线是主角获得证据、盟友、权限或技能的唯一来源时，
   删掉它等于让主角在后面凭空拥有这些东西。
3. **它提供的是世界规模还是主线推进**？只负责让世界显得更大的支线，在竖屏连续短剧里
   是最便宜的删除对象——观众为主线的兑现节奏付费，不为世界的广度付费。
4. **它是否是某个信息权限落差的唯一来源**？某条线的作用是让观众知道而主角不知道时，
   删掉它会让后面所有"观众替他着急"的场次一起失效。
5. **删掉后会留下多少孤儿铺垫**？前面为它埋的每一处都要跟着删或改指向。孤儿铺垫比
   支线本身更伤：它们看起来像伏笔，观众会一直等。

**要防的误删**：慢线里常住着让快线成立的条件——铺垫、代价、信息落差。整条删掉之后
快线还在，但它不再打中人。先留好看的线本身没有错；把这些条件压缩或换载体转移到保留的线上，
不必连同慢线整条保留。

删线时把这条线承担的功能逐项列出来（用本节开头的功能账本），标明每一项是**一起删掉**
还是**转移到哪条保留的线**。转移的每一项都要写清接收方多承担了什么；只写"合并到主线"
等于没有交代。

### 合并人物

只有当两个角色的功能可以由同一人的目标、知识范围和关系位置自洽承担时才合并：

1. 两人是否原本知道不同事实？合并后会不会提前泄密？
2. 两人是否分别代表支持与压力？合并后对抗是否消失？
3. 两段关系是否需要不同历史/伦理位置？
4. 同一演员在同一时点能否完成两项行动？
5. 合并后某个背叛、证言或牺牲是否失去代价？

弱合并：“配角太多，所以把两个人改成同事甲。”
可用合并：“门店会计与房东都阻断账本获取；改为房东兼代账人，但把原会计掌握而房东
不知的假发票来源转给另一条证据链。”

### 合并场景

场景可合并需同时满足：时间/地点能连续、两个议程可以同场碰撞、信息出现不改变因果顺序、
合并后每个关键反应仍有空间。不能只因“都在办公室”就把隔日后果塞进同一分钟。

## 3. 信息视觉化阶梯

**`STY-08 · craft_default`**：优先尝试有后果的行为、证据、空间压力或对话策略，
再决定是否保留中性说明。

将“人物知道/回忆/解释”依次尝试转成：

1. **行动后果**：他不报门牌，直接用旧钥匙开门；
2. **可争夺证据**：缺页、录音、伤痕、持物、屏显；
3. **空间行为**：谁挡出口、谁避开座位、谁能触到证物；
4. **对话策略**：试探、误导、讨价、逼供、拒绝，而非中性说明；
5. **声音/主观表达**：VO/OS/主观画面，只有作品明确选择时使用。

视觉化不等于“每句话配一个动作”。来回倒水、走窗边、翻无关文件若不改变议程或证据条件，
只是制造假运动。

## 4. 保住因果桥

压缩时间后逐项检查：

~~~text
原因事实 -> 人物理解 -> 选择 -> 对手反制 -> 可见后果 -> 新压力
~~~

若删除的段落承担“人物为何相信”“对手如何得知”“道具如何到手”，需在新版本建立等价且
可见的桥，不能用一句“原来如此”跳过。

大幅重排时写改编功能对应表：

~~~json
{
  "source_function": "<原功能，不复制长原文>",
  "new_carrier": "<新人物/场景/证据/动作>",
  "preserved": ["<承诺/因果/关系>"],
  "lost_or_changed": ["<可能损失>"],
  "status": "proposed | creator_accepted | unresolved"
}
~~~

### 重排也要登记

改编映射的 `disposition` 取值：`preserve`（保留）、`merge`（合并）、`change_carrier`（换载体）、
`compress`（压缩）、`omit`（删去）、`move_earlier`（提前到更早的集）、`cold_open`（提前做某集
开场，再回到原时序）、`add`（新增原著没有的人物、场景或对手，见[新增也要登记](#新增也要登记)）、
`unresolved`（未决）。

`move_earlier` 和 `cold_open` 带一项因果补偿义务，写进 `causal_compensation`：

- **铺垫要跟着提前**：被提前的一拍依赖哪些事实，每条写清在哪一集、用什么可见载体先埋下；
  来不及埋的，改由开场后的补充交代承担，并写明补在哪里。
- **观众要能定位**：冷开之后回到起点时，观众靠什么知道时间回拨了——字幕卡、同一物件或场所
  的前后对照、一句点明时间的台词；提前到正常时序里的，写清它和前后集的因果怎样接上。
- **原位置要处理**：原来那一拍所在的集现在少了什么，是删去、改成余波，还是由别的爽点顶上。

**`reviewed_invariant · STY-29`**：登记为 `move_earlier` 或 `cold_open` 的映射写明它依赖的
铺垫在哪一集、以什么载体先出现，或观众靠什么定位时间，以及原位置怎样处理；审查者按映射
对照分集记录与剧本，提前的一拍在观众缺少必要事实时出现即为缺陷。

### 新增也要登记

原著没有的东西——一个新人物、一场新编的戏、一个新对手或换掉的对手——单独登记一条 `add`，
不藏在 `change_carrier` 或 `move_earlier` 的备注里：

- `source_span` 指向它插进去的位置，或它服务的那段原著；
- `preserved_functions` 写它承担的功能；
- `addition_rationale` 写两件事：为什么原著已有的人和事承担不了这个功能；核对过哪些原著事实，
  逐条说明不矛盾；
- 在简报「原著没有、本轮新增的内容」里列出，交创作者确认。

节奏档案要的有对手反转、题材卡要的当众压迫，先从原著已有的人和他们真做过的事里找：原著里的
质疑者、起哄的群体、竞争者、规章与期限。某一集原著确实没有对手时，报出档案偏差，或把反转交给
已有的人；不把支持者改成压迫者，也不为凑数新增对手。

**`craft_default · STY-30`**：原著没有的人物、场景或对手登记为 `add`，写明承担的功能、为什么
原著已有的人和事承担不了、核对过哪些原著事实，并列进简报交创作者确认；对手先从原著已有的人和
他们做过的事里找。

## 5. 单集化而不肢解

短剧单集应完成一个局部状态变化，同时保持长线：

- 当集兑现原材料的一部分吸引力；
- 结尾压力由本集选择/后果产生；
- 卡点停在下一次揭晓之前，不靠把本集的局部结果切掉来制造；
- 下一集的进入状态是精确事实，不是“局势更紧张”。

可把一段长叙事拆成多集，但每集都要回答“本集观众具体得到了什么”。

## 5b. 登记不等于兑现

来源事实登记为不可更改后，还要安排它在分集中的落点；只写进简报而不再核对，容易让文档
反复提及同一事实，观众却始终看不到。

判据是一句话：**这条事实，观众在本轮要写的集里从哪一个画面能得到它**？逐条回答，答案只有两种：

- **落在第几集、可见载体是什么**——那个载体必须真的被写进那一集的分集记录与剧本；
- **显式延后到第几集**——写下集号，本轮不欠。

两种都答不出来时，这条事实仍是不可更改的约束，只是落点尚未规划完成；补齐可见载体或
延后集号，不能把它降为备注。

世界设定尤其适合延后。第 1 集只需要观众看懂眼前这场冲突用到的那一条规则，其余设定登记到
它第一次改变人物选择的那一集。把整套设定塞进首集，只会换来大段说明和旁白。

同一个失败也发生在单集内部：分集记录写了“可见载体”“载体直接支持的判断”，剧本却从没演过
那个载体。最常见的一种是需要对照才成立的证据——“装置生效前后哼的同一句，音准完全不同”——
剧本只写了“之后”，“之前”从没上过屏幕，于是这条信息释放在纸面上成立、在画面上不成立。
写完剧本后按分集记录的可见载体逐条回读一遍，比事后审查便宜得多。

**`STY-23 · reviewed_invariant`**：简报登记为不可更改的来源事实，在本轮覆盖范围内要么有一处
写进了分集记录与剧本的可见载体，要么显式标注延后到某一集；分集记录声明的可见载体必须在对应
剧本里实际出现，需要对照才成立的载体两端都要出现。

## 6. 规则分级与审查

- `structural_invariant`：来源与功能对应表、授权边界、铺垫、兑现和交接引用都能解析。
- `reviewed_invariant`：合并没有造成知情穿帮，压缩没有删断因果，新的表现方式保留核心含义，
  人物立场、核心关系和主线没有被改写，创作者已接受的改动除外（STY-07）。
- `craft_default`：优先用选择、证据和空间后果承载说明；有明确风格理由时可以调整。
- `taste_option`：保留旁白、倒叙、多声部人物、慢场或开放结尾均是创作者选择。

审查时引用“原功能 → 新载体 → 损失/保持”，不要用与原材料的表面相似度代替判断。
