# Phase 3:短篇逐场景写作 本文件中的 `scripts/` 与 `references/` 路径均相对本 skill 根目录。 **格式规范(最高优先级)**:正文只存 `正文.md`,主会话与写手同一套格式:段间只允许一个换行符、不留空行,小节标记与引号全篇统一,按 `设定.md`「平台基调」;没写时沿用 `正文.md` 已有的写法,还没有正文就用 `###1.` 与 `""`;子代理输出不一致时按此重排。 **构思完成检查**:写前先跑 `node {skill 根}/scripts/check-phase2-contract.js --json {短篇目录}`;未返回 exit 0 时,告诉作者设计还缺什么,请其回到构思补完。 **本时刻只靠落盘文件承接构思**:`设定.md`(核心框架、平台基调、题材招式、文风约定、作者已定、反转与揭露、贯穿道具、对标摘要、设计校验;旧项目里揭露写在「反派与揭露方式」「反转铺垫」,按旧名读)与 `小节大纲.md` 为 Phase 2 产出,`正文.md` 为本阶段产出。反转、反派、揭露、付费点与平台基调以两份设计文件为准,不重读构思方法论(workflow-design、short-reversal、submission-craft、villain-and-reveal、冷门题材公式全文);作者在对话里改过、设计文件还没写的,先写回 `设定.md` 再动笔。 **导入项目续写基线**:`设定.md` 存在「本书续写基线」时先读取,用于保持已写内容连贯和写法一致;它不是对标摘要,不参与主/副对标排序,也不复制到 `对标/`。正文从第 N+1 节接着写,已写各节不改。 > 下文的五「段」指开头、铺垫、升级、反转、结尾等结构部分,各含若干数字编号的「小节」;场景内按节拍(beat)安排动作与情绪变化。 **写前加载**:依次读 `short-format.md` 的正文格式、`short-craft.md` 的通用方法、[scene-craft.md](scene-craft.md) 的场景写法,以及 `设定.md` 题材参考指定的唯一 `genre-styles/{题材}.md`。冷门题材按「题材招式」区的公式要点写,腔调按 `short-craft.md`。写羁绊或余韵时按需读 `emotional-methods.md` 对应一斧;`short-deslop.md` 到 Phase 4 去味时再读,初稿先通过完成门槛的 AI 腔检测。 **交付参数先锁定**:用户明确的字数范围优先,严格采用其最小值/最大值与节数;只给单一目标时用目标的 95%-105%;都未给时用 `设定.md` 的目标字数和大纲节数。 **写前参数验收(锁定后、写 `正文.md` 前必跑)**:`node {skill 根}/scripts/check-delivery-contract.js --json --check-contract --min-chars {MIN} --max-chars {MAX} --sections {N} [--min-section-chars {用户逐节下限}] {短篇目录}`。exit 0 只说明参数能同时满足,不算交付;exit 2 即冲突,停在写前,用中文告诉用户字数范围与节数哪里对不上,请其选择调整项,不代改用户约束。 **写前准备**:每个场景动笔前依次确认情绪与技法: - **步骤 1:记忆+召回**:① 本场景目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 具体用在哪个段落?答不出 → 先回读本时刻已加载的参考再动笔。有对标时从 `设定.md`「对标摘要」召回 1-2 个与本场景相关的技法,要细看再查主对标 `对标/{书}/写作手法.md`(没有就用 `拆文库/{书}/`)的对应条目,写入“拆文召回摘要” - **多对标书时**:副对标只用「对标摘要」里构思时已登记的条目(正文阶段不新增召回),作为“副对标召回摘要”;正文只传摘要,不传副书文风或原文 - **步骤 2:指令确认**:用一句话概括本场景的情绪、技法及使用位置;有任务卡点时说明它带来的情绪变化或新证据,确认后开始写作 **写作指令**:写法按 `short-craft.md`(情绪直写与上下文支撑第 2 节、在场叙述第 3 节)与 `scene-craft.md`(三维度揉进与画面分段、疏密与主语节奏),段落与标点按 `short-format.md`,不照搬大纲腔。情绪烈度按 `设定.md` 与题材包的腔调,没写时默认宁烈不温(冲突前置、爽点具体、台词带刺);任务卡点必须直接加重羞辱、误会、背叛、证据、反击或心死节点,删掉无损就压缩。 #### 分批写与子代理 主会话默认按 2-3 节/批写正文,不要求单次 agent spawn 写完 8000+ 字。 - 每批写完后更新短篇目录下 `.story/work/已写小节摘要.md`(3-5 条:已揭示信息、情绪位置、未回收伏笔、下一批衔接句),换对话靠它接上,交付后可删。 - 下一批先读该摘要和 `正文.md` 尾部 300-500 字再续写。 - 只有用户明确要求子代理、主会话上下文不足,或需要隔离试写时,才检查 narrative-writer agent(查找顺序见顶部),可用时按 [agent-calls.md](agent-calls.md)「写正文」派出。 - 无论谁写,写入 `正文.md` 前都按同一格式规范重排,保证主会话与子代理输出一致。 ⚠️ **硬约束只作用于整篇交付范围,不设统一逐节最低字数或行数**。 写完每批后去掉 `--check-contract` 重跑上面命令,取其非空白字符数作整篇累计值(未写完 exit 1 属正常),各节分布按 `short-format.md`「字数统计」;不自写 Python 计数。某节明显短于相邻节时,先核对批准情节点、可见动作和后果是否已经完整;完整就保留,缺失才补回原计划内容。不得为拉齐节长新增冲突、对话、回忆、配角反应或独立事件。整篇以锁定的交付范围为准。 **⚠️ 未进入锁定范围 = 正文未完成。禁止越界后结束;不足只扩已有情节点,超出只压重复解释,不借 repair 新增或删除关键剧情。** **节数守恒**:正文节数必须等于小节大纲规划节数。不得合并多节为一节。如果写作中发现某节不需要独立存在,应回到大纲阶段调整,而非在写作时偷减。 按以下结构写作,占比仅参考,以小节大纲为准。无反转篇按设计写报应兑现或甜度递进;反转线索、误导与揭露要求仅用于有反转的篇目。反派与贯穿道具仅在设计中选用时执行相应要求。 #### 第一段:开头(前 300-500 字) **目标**:3 句话内抓住读者。**必须包含一个开篇钩子**(从下表或题材包「开篇范式」选类型)。 **先写导语**:导语的字数、段落格式和第 1 节怎么接,按 `设定.md`「平台基调」记下的导语写法;旧项目没记时写 150-300 字;导语停在正在发生的一刻时,第 1 节接着往下写;导语已写到结局或后果时,第 1 节可以倒回去讲导语没写的经过。导语交代起因、核心冲突、人设底色与情绪反转,结合具体物件、信息差与留白钩子。首句从事件、动作或信息炸弹起笔,遵守下方开头零环境规则及前 100 字事件密度≥3;剧透钩子放导语后半,留住底牌,也让读者看到主角的后手。 **开头零环境规则**(默认适用;悬疑、惊悚、灾难、强氛围题材可例外): - 前 3 句禁止出现无事件承载的环境描写(灯光、天气、气味、温度、装修) - 前 3 句必须是:事件 / 对话 / 动作 / 信息炸弹,四种之一 - 任务卡点可以作为动作/事件钩子,但必须立刻带出赌注或矛盾,不能先写流程再解释意义 - 环境细节只能揉进角色的动作和感知中自然带出,不能独立成句;例外题材中,环境也必须携带威胁、异常或信息差 - 检查方法:标出前 3 句的主语,如果主语是环境物件(灯光/走廊/房间/天气),重写 开头技巧: | 技巧 | 说明 | 示例 | |------|------|------| | 冲突前置 | 第一句就是矛盾 | 「离婚协议放在桌上,他已经签了。」 | | 信息差钩 | 给读者一个角色不知道的信息 | 「她不知道,对面那个男人已经在计划第三次了。」 | | 反常行为 | 用一个不合常理的行为引起好奇 | 「她把订婚戒指冲进了马桶。」 | | 重生反常 | 重生后做前世绝不会做的事 | 「沈栀心念成灰,支着一口气找到了媒婆:郭家的那个天阉,我来嫁。」 | | 超自然身份 | 开篇揭示非人类身份 | 「我是世上仅存的红衣厉鬼。我不知自己是怎么死的。」 | | 灵魂旁观 | 以灵魂视角描述死亡现场 | 「我的尸体躺在透明棺材里,三个哥哥在外面笑着说:她演得真像。」 | | 悬念句 | 抛出一个需要解释的事实 | 「我死后的第三天,老公发了一条朋友圈。」 | | 替嫁被弃 | 被迫接受不公正的命运 | 「三个月后,我代替皇后的嫡亲公主坐上了去漠北和亲的轿撵。」 | | 代入式提问 | 直接让读者产生共鸣 | 「你有没有在深夜接到过一个不该接的电话?」 | #### 第二段:铺垫(占全文 30-40%) - 用物件/数字/习惯建立羁绊(详见 emotional-methods.md「羁绊铺设」) - 埋入至少 3 个反转线索,分散在不同小节 - 在会改变读者预期、行动方向或关系判断的位置埋钩;连续多个小节只有提问没有局部兑现时再调整,不按固定节数填格(按小节大纲「结尾承接/钩子」列落地) - 小节用数字分割,每小节推进一个情节点 - 情绪强度逐节递增,不允许连续 2 节无情绪变化 - **贯穿道具(设定.md 有才写)第 1 次出现必须在此段完成** - **反派作恶按阶梯递增**(小恶→中恶,按 `设定.md` 反派设计) #### 第三段:升级(占全文 20-30%) - 冲突必须比上一段升级(强度/范围/代价至少一个维度上升) - 插入倒计时钩子或代价钩子制造紧迫感 - 随风险和选择升级提高牵引强度;用新证据、代价、误判修正或局部反击推动,不按固定节数另塞钩子(按题材包) - 埋入误导信息,让读者猜错反转方向 - **数字/金额递增作为叙事工具**(具体数字替代模糊描述,如年限、次数、金额逐步累加再清零) - **场景引擎有变化**:按因果需要切换行动、对话、证据、任务、等待、空间压力与关系选择 #### 第四段:反转(占全文 10-15%) - **按 `设定.md`「反转与揭露」选定的方式揭露真相**,节奏按功能定:证物、证人、偷听撞见这类一次揭露,在一节内揭完,不拖延;剥洋葱每层一节、每层比上一层更痛,前几层分在升级段,只有最后一层落在本段 - 揭示后确保前面铺垫的线索可被回溯(读者能找到「原来如此」的伏笔) - 反转节(分层揭露时指最后一层)的情绪冲击强度必须 > 前面所有节的最高值 - **贯穿道具第 2 次出现必须在此段完成**(意义被颠覆) #### 第五段:结尾(占全文 5-10%) - 最后一节收在悬念或余韵上 - 用安静细节收尾(一个物件、一个动作、一句短话),不写大段抒情 - 结尾方式见下表,参考 emotional-methods.md「余韵钝痛」 - **贯穿道具第 3 次出现(回扣暴击)** 结尾类型: | 类型 | 效果 | 适合情绪 | |------|------|----------| | 余韵式 | 不说完,让读者自己想 | 意难平 | | 呼应式 | 首尾的物件、动作或话语形成呼应闭环 | 治愈、成长 | | 开放式 | 留下悬念 | 细思极恐 | | 反转再反转 | 结尾再来一个小反转 | 震惊 | | 金句式 | 一句话点题 | 共鸣 | 写作中及进入精修前,执行 [SKILL.md](../SKILL.md) Phase 3 的「小节完整性流程」与「完成门槛」。