返回 Skills
worldwonderer/oh-story-claudecode· MIT 内容可用

story-import

逆向导入已有小说。将已写好的小说(半成品或完本)反向解析为标准项目目录结构,兼容 story-long-write / story-short-write 后续写作流程;内部复用 story-long-analyze / story-short-analyze 的拆解管道,按篇幅自动分流。触发方式:/story-import、「导入小说」「反向解析」「导入」「把我的书导进来」。

安装

与 skills.sh 相同的 Command / Prompt 安装方式


name: story-import version: 1.0.0 description: "逆向导入已有小说。将已写好的小说(半成品或完本)反向解析为标准项目目录结构,兼容 story-long-write / story-short-write 后续写作流程;内部复用 story-long-analyze / story-short-analyze 的拆解管道,按篇幅自动分流。触发方式:/story-import、「导入小说」「反向解析」「导入」「把我的书导进来」。" metadata: {"openclaw":{"source":"https://github.com/worldwonderer/oh-story-claudecode"}}

story-import:逆向导入已有小说

你是小说项目逆向工程师。导入按篇幅分流:长篇走 Phase 3-L,短篇走 Phase 3-S。

交付物是写作工程:把作者已有的书重建为可续写的写作工程(项目结构 + 拆文库分析资产)。拆文库/ 属于工程的一部分(喂给项目 对标/),不能当成用完即弃的中间产物,也不能替代交付物本身——交付物应让作者能直接续写。执行时以「建工程」为可见目标,别把「拆文」当成终点或对外标签。


Agent 兼容性:检查专业 agent 是否可用时,按 .claude/agents/{agent}.md.opencode/agents/{agent}.md.codex/agents/{agent}.toml 的顺序查找。Codex 原生子代理调用优先使用同名 agent_type;如果当前 Codex 运行时返回 unknown agent_type 或未暴露 custom-agent registry,必须降级为 solo/direct。检测到 .zcode/ 时同样直接 solo/direct,因为 ZCode 3.3.4 不执行项目 custom agents;报告 Fallback: project custom agents unavailable -> solo。Claude/OpenCode 兼容面保留 subagent_type

核心原则

原则 1:先分析后迁移

先用拆解管道完整拆解小说(输出到 拆文库/),再将分析结果迁移为项目结构。拆文库/ 是写作工程的一部分(分析资产,喂给项目 对标/),保留不丢弃,不是用完即弃的中间产物。

原则 2:复用不重复

深度分析阶段调用现成的拆解管道,不重新发明:长篇运行 /story-long-analyze 的完整拆解管道,短篇运行 /story-short-analyze 的拆解管道。拆解方法论与输出模板由对应 analyze skill 自带,story-import 不执行拆解方法论、不维护这些文件。


Phase 1:确认导入源

Step 1:导入续写入口顺序(先答用户的流程问题)

当用户问"导入续写先走 story-setup 还是 story-import"、"已有小说怎么续写"、"导入流程"这类流程问题时,先直接给出结论,再继续收集原文:

  1. 推荐顺序:先 /story-setup(部署 hooks/agents/AGENTS),新开/刷新会话后运行 /story-import,最后用 /story-long-write 日更/写第N章 续写。
  2. 也可以直接 /story-import:本 skill 会在进入深度分析前检测 .story-deployed 与专业 agent;未部署时会给出"先去 setup"或"继续导入(串行降级)"两种选择。
  3. 已导入过的项目:不要重复跑完整导入;直接进入书名目录,确认 .active-book/追踪/上下文.md 指向正确书目,再用 /story-long-write 日更/story-long-write 写第N章

这段结论必须出现在任何导入源追问之前,避免用户只想确认流程却被直接要求贴原文。

问用户:「你要导入哪本书?请提供文件路径或直接贴文本。」

Step 2:确认意图(写作工程 vs 仅拆文库)

默认目标是完整写作工程(可续写)。若用户意图不明确——是要可续写的工程,还是只要一份拆文库分析——主动询问,不要默认:

「你是想把这本书做成可续写的写作工程(设定/大纲/正文/追踪,能接着写第 N+1 章),还是只要一份拆文库分析?」

  • 要可续写工程 → 走完整 story-import(Phase 2 拆 + Phase 3 迁移)。
  • 只要分析 / 拆文库 → 直接用 /story-long-analyze(短篇 /story-short-analyze),到拆文库为止,不进 Phase 3 迁移。

Step 3:输入方式识别

用户提供路径?
├─ 单文件路径(.txt/.md)
│   └─ 按章节分隔符自动切分
├─ 目录路径
│   └─ 按文件名排序,合并处理
└─ 无路径 → 用户直接贴文本?
              ├─ 是 → 保存到临时文件后处理
              └─ 否 → 提示用户提供源文件

Step 4:基本信息确认

  1. 自动检测:从文本中识别书名(如果有)、总章数、总字数、章节格式
  2. 用户确认
    • 书名:{自动检测或用户输入}
    • 题材类型:{用户提供}
    • 目标平台:{起点/番茄/晋江/其他}
    • 是否完本:{是/否(半成品写到第N章)}
    • 篇幅类型:长篇 / 短篇 —— 按 references/length-routing.md 自动检测(用户显式声明 > 结构信号 > 字数兜底),并向用户复述检测结果请其确认。判定结果决定 Phase 3 走长篇还是短篇路径。
    • 最后一章是否完整:完整章 / 残稿(写了一半)。若是残稿,提示用户并把「残稿到第 N 章」记入上下文,让用户决定是「基于残章续写」还是「先补完再导入」。story-import 只记录用户决定,不替用户选。
  3. 输出确认:向用户展示检测到的章节范围、字数、判定的篇幅类型、最后一章状态,确认后开始分析

Step 5:环境检测前置

在进入 Phase 2 之前,先检测项目是否已部署 story-setup 基础设施:

  • 检测 .story-deployed 是否存在;
  • 优先检测 .claude/agents/ 下的 chapter-extractor.md 是否存在;不存在时再检测 .opencode/agents/,再不存在时检测 .codex/agents/(Phase 2 长篇深度分析的并行 agent)。
  • 如果 .story-deployedtarget_cli 包含 zcode,项目 agents 缺失是 ZCode 3.3.4 的预期状态:不要提示重复部署,直接以串行 solo/direct 进入分析并报告 fallback。

未部署且不是已部署 ZCode 项目时,提示用户:

「检测到当前项目尚未部署写作基础设施。建议先运行 /story-setup 再回来导入,否则深度分析阶段无法使用并行 chapter-extractor agent。」

给用户两个选择:

  1. 先去 setup:暂停导入,运行 /story-setup,部署完成后重新触发 /story-import
  2. 继续导入:接受 Phase 2 降级为串行处理(长篇逐章摘要不并行,速度较慢,但产物完整)。

用户选择记入上下文,Phase 2 据此决定是否走并行模式。

Step 6:原文备份

原文备份由 Phase 2 调用的 analyze 拆解管道负责(analyze 管道前置步骤会把原文复制/保存到 拆文库/{书名}/原文/,对应 story-long-analyze 与 story-short-analyze 的「原文备份(管道前置步骤)」)。Phase 1 只需确认源文件就绪(路径有效或文本已拿到),不在此处单独备份,避免与 analyze 管道重复备份逻辑。


Phase 2:深度分析

按 Phase 1 判定的篇幅类型,调用对应 analyze skill 的完整拆解管道;不要做「复用方法论」式的半流程,要驱动整条管道跑完,拿到全套结构化产物。

篇幅调用的拆解管道产物目录
长篇story-long-analyze 的完整管道(Stage 0-6)拆文库/{书名}/
短篇story-short-analyze 的拆解管道(Stage 2-6)拆文库/{书名}/

调用契约

长篇:自动续跑过 Stage 1 停靠点

story-long-analyze 在 Stage 0+1(黄金三章)后会自动停靠并用 AskUserQuestion 询问是否继续全量拆解(对应 story-long-analyze 的「Stage 1 停靠点」)。但导入场景需要 Stage 2-6 的全套产物(逐章摘要 / 聚合分析 / 剧情/节奏.md / 剧情/情绪模块.md / 设定关系 / 汇总报告 / 文风),缺一不可——否则 Phase 3 迁移会拿到半成品。

当前拆文契约_progress.md 必须是 schema_version: 2,且 剧情/节奏.md剧情/情绪模块.md 是导入必备权威产物。任一缺失都先修复或重跑对应 Stage,不得用摘要文件拼出看似完整的对标视图。

因此调用 story-long-analyze 时必须在一开始就以「完整拆解、一次跑完、不要停下询问」模式驱动管道,命中其「跳过询问」路径(用户开头明确说「完整拆解 / 一次跑完 / 系统拆解 / 别问」时不停靠),让管道自动从 Stage 2 续跑到 Stage 6。

  • 措辞示例:启动深度分析时声明「以『完整拆解、一次跑完、不要停下询问』模式拆解本书,确保 Stage 2-6 全部产出」。
  • 兜底:若运行环境实际仍停在 Stage 1 询问处,story-import 自动选择「继续全量拆解」,绝不把停靠询问甩给用户
  • 环境检测(Phase 1)发现未部署 chapter-extractor agent 且用户选择「继续导入」时,Stage 2 逐章摘要降级为串行处理,产物仍完整,仅速度变慢。

短篇:单一全量管道

story-short-analyze 是单一全量拆解管道(Stage 2-6),无 Stage 1 停靠点,契约较简单:调用后让其跑完 Stage 2-6 即可,无需声明跳过询问。

输出目录

长篇拆文库结构

长篇分析输出到 拆文库/{书名}/,与 story-long-analyze 拆解管道完全一致:

拆文库/{书名}/
├── 原文/
│   └── 原文.txt          # 扩展名随源文件;对话直接贴入的文本存为 原文.md
├── 概要.md
├── 章节/
│   ├── 第1章_深度拆解.md
│   ├── 第1章_摘要.md
│   └── ...               # 每章同时有 第N章_深度拆解.md 和 第N章_摘要.md
├── 快速预览.md
├── 角色/
│   ├── {角色名}.md
│   └── 角色关系.md
├── 剧情/
│   ├── {剧情标题}.md
│   ├── 故事线.md
│   ├── 节奏.md          # 关键信息推进 / 情绪触动点 / 爆发节奏
│   ├── 情绪模块.md      # 读者需求 / 情绪引擎 / 可复现模块
│   └── 散落情节.md
├── 设定/
│   ├── 世界观/         # 背景设定.md / 力量体系.md / 地理.md / 金手指.md(子目录形态)
│   └── 势力/           # {势力名}.md(每势力一文件)
├── 拆文报告.md
├── 文风.md          # Stage 6 文风:写作技法视图 + 原文范例锚点
└── _progress.md

短篇拆文库结构

短篇分析输出到 拆文库/{书名}/,与 story-short-analyze 拆解管道一致:

拆文库/{书名}/
├── 原文/
│   └── 原文.txt          # 扩展名随源文件;对话直接贴入的文本存为 原文.md
├── 拆文报告.md
├── 情节节点.md
└── 写作手法.md

长篇完整管道(Stage 0-6)

管道详细说明见 story-long-analyze(运行 /story-long-analyze),此处仅列概要。

阶段名称输入输出完成标志
0概要提取原始文本概要.md + 章节索引章节结构识别完成
1黄金三章前 3 章原文第1章_深度拆解.md / 第2章_深度拆解.md / 第3章_深度拆解.md → 停靠产出快速预览.md(导入场景自动续跑,不停下询问)3 章拆解完成
2逐章摘要分块章节文本章节摘要.md(含情节点+角色+关键信息与扩写技法)。每章10-40情节点(密度150-200字/个,按字数动态调节)。角色过滤(龙套不提取、别名归类)。并行 chapter-extractor agent 模式(未部署 agent 时降级串行)。计数验证:摘要数 == 章节数所有章节处理完成
3聚合分析全部章节摘要剧情/*.md + 剧情/README.md + 剧情/故事线.md + 剧情/节奏.md + 剧情/情绪模块.md故事框架识别(前置)。两步法剧情聚合(先从摘要识别剧情大纲,再按大纲分配情节点)。关键信息推进索引情绪触动点与爆发节奏读者需求 / 情绪引擎 / 可复现模块角色合并(跨章节去重+别名归一)。角色分级(主角/反派/核心配角/功能角色)。散落情节兜底(6步,含覆盖率验证)。质量检查(置信度>=0.85/覆盖率85%-95%/重叠率<=35%)。质量检查通过
4设定+关系阶段 3 合并后角色数据+情节点设定/.md + 角色/.md。两阶段角色模型别名解析(置信度≥0.85自动合并)。设定和关系提取完成
5汇总报告全部输出拆文报告.md(含「读者需求 / 情绪引擎」「关键信息与扩写技法总览」「节奏与情绪触动点」「可复现模块」,并指向 剧情/节奏.md / 剧情/情绪模块.md报告生成完成
6文风拆文报告.md + 章节/第1-3章_深度拆解.md + 章节/*_摘要.md + 原文/原文.txt文风.md(整书级写作技法视图,story-long-write 日更循环必读)文风落盘 拆文库/{书名}/文风.md

短篇拆文管道

管道详细说明见 story-short-analyze(运行 /story-short-analyze),此处仅列概要。

短篇为单一全量管道(Stage 2-6 严格串行),产物落盘 拆文库/{书名}/:Stage 2 结构+情节节点 → Stage 3 情感线+爆点 → Stage 4 反转+写作手法 → Stage 5 人物+开头结尾 → Stage 6 综合评估,最终汇总为 拆文报告.md情节节点.md写作手法.md

分块策略(长篇)

沿用 story-long-analyze 的分块策略(Stage 2 使用 chapter-extractor agent 并行,其他阶段按以下策略分块):

规模策略块大小
<50 章按阶段整体处理无需分块
50-100 章按阶段整体处理无需分块(可选智能分块)
100-500 章按章节分块5-8 章/块
>500 章语义分块:按自然分界切分,无明确分界时按固定章节数均匀切分50-200 章/块

恢复机制

  • 中断时通过进度文件追踪进度
  • 新会话读取进度文件定位断点
  • 从断点所在块的起始章节恢复
  • 长篇进度文件格式沿用 story-long-analyze 拆解管道的进度段落约定,包含当前阶段、最后处理章节、已完成阶段列表、更新时间

质量检查

长篇阶段 3-4 完成前执行质量检查(置信度 >= 0.85,覆盖率 85%-95%,重叠率 <= 35%),由 story-long-analyze 拆解管道自带的质量检查负责。短篇质量检查见 story-short-analyze 各阶段的完成标志。


Phase 3:结构迁移

拆文库/{书名}/ 的分析结果迁移为可被写作 skill 消费的项目结构。

分流路由

按 Phase 1 判定的篇幅类型分流,两条路径产出的工程结构完全不同:

篇幅迁移路径映射规则续写接手
长篇3-L:长篇结构迁移references/structure-mapping-long.mdstory-long-write 日更循环
短篇3-S:短篇结构迁移references/structure-mapping-short.mdstory-short-write Phase 3 逐场景写作

Phase 3-L:长篇结构迁移

拆文库/{书名}/ 的分析结果迁移为 {书名}/ 长篇项目结构。迁移规则详见 references/structure-mapping-long.md

迁移步骤

Step 1:创建项目骨架

{书名}/
├── 设定/
│   ├── 世界观/
│   ├── 角色/
│   └── 势力/
├── 大纲/
├── 正文/
├── 追踪/
├── 对标/
│   └── {书名}/剧情/
└── 参考资料/

Step 2:正文标准化

将原文迁移到 正文/,统一命名格式:第XXX章_章名.md

  • 识别章节分隔符(第X章、Chapter X 等)
  • 提取章节标题
  • 补零对齐编号(第1章 → 第001章)
  • 保留原文内容不变

Step 3:角色文件迁移

拆文库/{书名}/角色/{角色名}.md 迁移到 设定/角色/{角色名}.md

迁移时增加 story-long-write 角色模板字段:

---
name: {角色名}
---

# {角色名}

## 基本信息
- 身份:{}
- 核心特质:{}
- 当前能力:{}
- 核心动机:{}
- 弱点/缺陷:{}

## 出场记录
| 章节 | 关键事件 | 状态变化 |
|------|---------|---------|

角色分级(沿用 story-long-analyze 标准):

等级标准迁移策略
主角出现章节 ≥50% + 推动主线 + 完整成长轨迹完整迁移
反派与主角对立 + 推动核心冲突 + 明确动机完整迁移
核心配角出现章节 ≥20% 或推动重要支线完整迁移
功能角色出现章节 <20% + 作用有限简化迁移

Step 4:关系文件迁移

拆文库/{书名}/角色/角色关系.md 转换为 设定/关系.md,按 structure-mapping-long.md「关系文件转换规则」的目标格式模板输出。

Step 5:同步世界观设定

当前拆文契约已按主题输出 拆文库/{书名}/设定/世界观/*.md设定/势力/*.md。导入时原样同步到项目;世界观/ 必须包含 背景设定.md力量体系.md 小于 200 字并已并入 背景设定.md 时可省略;否则缺失当前必需产物时停止并提示重跑 story-long-analyze Stage 4。不再现场拆分扁平文件。

Step 6:大纲生成

大纲.md(卷级结构):从 剧情/故事线.md剧情/*.md快速预览.md 反推。卷划分采用用户确认制,规则见 structure-mapping-long.md「大纲反推规则」:

  • 原文有明确卷界(存在「第一卷」「卷一」等卷级标题)→ 按原文卷界直接划分,无需询问。
  • 原文无明确卷界不机械按「每卷 20-40 章」硬切。根据故事线/场景切换/大型时间跳跃检测候选卷边界,向用户展示候选划分方案,等待用户确认后才写定卷纲;用户确认前 大纲/大纲.md 只记录候选方案。
# 全书大纲

## 卷级大纲

### 第一卷:{卷名}(约 {X} 万字,{Y} 章)
- 功能:{从剧情分析推断}
- 核心事件:{一句话}
- 起始状态 → 结束状态:{从角色弧线推断}

卷纲:卷划分确认后,从剧情文件聚合生成 大纲/卷纲_第X卷.md,按 structure-mapping-long.md「卷纲反推」模板格式。

细纲:从章节摘要反推生成 大纲/细纲_第XXX章.md

## 细纲(第 N 章)

### 第 N 章:{章名}
- 核心事件:{从摘要中提取}
- 字数目标:{原文实际字数}
- 目标情绪:{从章节基调/情绪曲线提取;未知写 [待补充]}
- 章首钩子:[待补充]
- 爽点:{从情节点推断;无明确证据写 [待补充]}

#### 内容概括(五段式)
- 起因:{从情节点归纳;未知写 [待补充]}
- 发展:{从情节点归纳;未知写 [待补充]}
- 转折:{从情节点归纳;未知写 [待补充]}
- 高潮:{从情节点归纳;未知写 [待补充]}
- 结尾:{从情节点归纳;未知写 [待补充]}

#### 情节安排(多线)
- 主线推进:{从剧情单元索引/摘要反推}
- 辅线推进:{无证据写“无”或 [待补充]}
- 事件线 / 任务线:{外部事件链}
- 感情线 / 关系线:{有证据才写;否则“无显性”或 [待补充]}
- 逻辑线:原因 → 行动 → 结果 → 后果/新问题

#### 人物关系和出场顺序
- 出场顺序:{摘要中角色/势力/关键物件出现顺序}
- 人物关系变化:{本章前 → 本章后;未知写 [待补充]}
- 视角/信息差:{谁知道什么;读者知道什么;主角误判什么;未知写 [待补充]}

#### 情节细化
- 情节点序列:{从摘要情节点反推,每点“谁做了什么 + 功能标签”}
- 行动成本(可无)/收益归属:{有证据才写;行动成本可无、不硬造;未知写 [待补充]}

#### 结尾设定和钩子
- 结尾设定:{收束状态;未解决问题;下一章推动力;未知写 [待补充]}
- 章尾钩子:[待补充]

钩子、人物关系变化、辅线/感情线、行动成本/收益归属等无法由原文摘要稳定判断的字段统一标 [待补充];story-import 只反推有证据的蓝图,不为补齐字段编造关系或副线。

Step 7:追踪文件生成

追踪目录共四个文件,必须按以下顺序生成(后一个文件依赖前一个的产出):

① 追踪/伏笔.md     ← 先生成(角色状态反推的「待回收伏笔」字段依赖此文件)
② 追踪/时间线.md   ← 与伏笔同步或紧随其后
③ 追踪/角色状态.md ← 依赖伏笔.md 已存在
④ 追踪/上下文.md   ← 最后生成(其「角色状态:最近变更」字段依赖角色状态.md)

① 追踪/伏笔.md:从情节点的「铺垫」类型情节点提取潜在伏笔:

# 伏笔追踪

## 伏笔状态表

| ID | 伏笔内容 | 埋设章节 | 预计回收章节 | 状态 | 重要度 |
|----|---------|---------|-------------|------|--------|
| F001 | {从铺垫情节点提取} | 第{N}章 | {如已回收则标注} | {已埋/已回收} | {中} |

② 追踪/时间线.md:从时间标记提取:

# 故事时间线

## 关键事件时序

| 章节 | 故事时间 | 事件 | 涉及角色 | 与主线关系 |
|------|---------|------|---------|-----------|

③ 追踪/角色状态.md:从拆书产物反推每个主要角色的当前状态。反推算法详见 references/character-state-reverse.md

  • 输入来源:拆文库已有产物(角色/{角色名}.md角色/角色关系.md章节/第N章_摘要.md 情节点、剧情/*.md)+ 已生成的 追踪/伏笔.md不重读 原文/
  • 追踪范围:主角、反派、核心配角;功能角色不进入。
  • 输出对齐:严格对齐 character-state-reverse.md「输出格式」的 角色状态.md 标准模板(当前身份 / 当前能力 / 关键关系 / 公众形象 / 待回收伏笔 / 状态变更记录)。
  • 生成时机:必须在 追踪/伏笔.md 之后(步骤「待回收伏笔」依赖伏笔状态)。
  • 半成品书:最后一章为残稿时,角色状态以「残稿之前的最后一个完整章节」为准,文件头注明基准章节。

此文件不可遗漏。story-long-write 的日更写前准备「状态筛选」依赖 追踪/角色状态.md;若缺失,导入书进入日更会永久走「从角色设定和前文推断」的兜底分支,长期降级。

④ 追踪/上下文.md:进度摘要(最后生成,「当前状态」中的角色状态变更引用 角色状态.md):

## 写作进度

- 最后完成章节:第 {N} 章
- 更新时间:{导入日期}
- 本期完成:导入 {N} 章,共 {X} 字

## 当前状态

- 活跃伏笔:{A} 条待回收
- 角色状态:最近变更见 `追踪/角色状态.md`
- 下一章细纲状态:已有
- 注意事项:最后一章为残稿时在此注明残稿到第 N 章及用户选定的续写策略

Step 8:题材定位生成

从拆文报告中提取核心发现,生成 设定/题材定位.md(按 structure-mapping-long.md「题材定位生成」模板格式)。

设定/题材定位.md 必须包含「对标书清单 + 主对标书」段。主对标书最多 1 本;副对标 / 参考对标不限制数量,按用户素材和题材相关性追加到列表,不要截断成“一本副书”。格式:

主对标书: {书名}  # 多本对标时日更默认用哪本的文风;缺失时 story-long-write 用字典序第一本并提示用户补
对标书列表:
  - 书名: {书名 A}
    引用强度: 主  # 主 / 辅 / 参考
    题材类型: {题材}
    相关性: 同题材
    用途: 文风+核心结构
  - 书名: {书名 B}
    引用强度: 辅
    题材类型: {题材}
    相关性: 同题材/弱相关
    用途: {补设定/大纲/模块,不进文风}
  - 书名: {书名 C}
    引用强度: 辅
    题材类型: {题材}
    相关性: 同题材/弱相关
    用途: {补设定/大纲/模块,不进文风}
  - 书名: {书名 D}
    引用强度: 参考
    题材类型: {题材}
    相关性: 同题材/弱相关
    用途: {仅按预算召回摘要}

后续如需快速概览,可另写「对标分析(派生概要)」表;该表不是权威 registry,不得替代 主对标书 与完整 对标书列表

Step 9:对标结构化资产同步

把拆文库的结构化分析资产同步到项目引用视图 {项目}/对标/{书名}/,供 story-long-write 的对标书路径查找优先读取。同步不重新生成内容,保持拆文库为唯一准源:

源路径项目对标路径用途
拆文库/{书名}/剧情/节奏.md{项目}/对标/{书名}/剧情/节奏.mdstory-long-write 读取关键信息推进、情绪触动点、爆发节奏
拆文库/{书名}/剧情/情绪模块.md{项目}/对标/{书名}/剧情/情绪模块.mdstory-long-write 读取读者需求 / 情绪引擎、可复现模块
拆文库/{书名}/剧情/*.md{项目}/对标/{书名}/剧情/*.md剧情单元与故事线参考
拆文库/{书名}/章节/*.md{项目}/对标/{书名}/章节/*.md匹配章摘要和关键信息与扩写技法证据
拆文库/{书名}/角色/*.md{项目}/对标/{书名}/角色/*.md角色功能位参考
拆文库/{书名}/设定/{项目}/对标/{书名}/设定/世界观/势力参考
拆文库/{书名}/拆文报告.md{项目}/对标/{书名}/拆文报告.md人类可读摘要投影

缺失处理

  • 剧情/节奏.md剧情/情绪模块.md导入停下并给修复动作:提示重跑 /story-long-analyze Stage 3+ 或手动补齐对应文件;导入报告写 module_or_rhythm_required_missing,不得继续生成看似完整的对标视图。
  • 其它结构化子目录缺失 → 按既有导入缺失项提示,不阻塞项目创建

Step 10:文风同步

拆文库/{书名}/文风.md 复制到 {项目}/对标/{书名}/文风.md。纯复制,不重新生成。

缺失处理

  • 拆文库没有文风文件(analyze 未跑 Stage 6)→ 导入报告提示用户重跑 /story-long-analyze 后再同步;日更前文风缺失会被 fail-fast 拦截
  • 项目对标已有旧文风文件 → 覆盖(最新拆文产物优先),在导入报告告知

Phase 3-S:短篇结构迁移

拆文库/{书名}/ 的短篇拆文产物迁移为 {短篇标题}/ 短篇工程结构,供 story-short-write Phase 3 逐场景写作无缝接手。迁移规则详见 references/structure-mapping-short.md

短篇工程与长篇完全不同:短篇正文是单文件 正文.md(不切章),不产 追踪/大纲/正文/ 等长篇目录。迁移时严禁误建这些长篇专属目录。

短篇目标工程结构

{短篇标题}/
├── 设定.md              ← 含核心框架 + 对标摘要
├── 小节大纲.md          ← 按段-小节结构反推
├── 正文.md              ← 单文件全文正文
└── 对标/{书名}/         ← 可选:拆文引用视图
    ├── 拆文报告.md
    ├── 情节节点.md
    └── 写作手法.md

迁移步骤

Step 1:正文迁移

拆文库/{书名}/原文/ 的全文迁移为单文件 {标题}/正文.md,按 format-and-structure.md 规范化格式(小节标记 ###1.、段间仅单换行、对话引号按项目/平台约定统一)。原文已是成稿,不重写内容,只规范格式。

Step 2:设定生成

拆文报告.md写作手法.md 反推 {标题}/设定.md,含两个区块:

  • 核心框架:对齐 story-short-write 核心框架模板(基本信息、一句话梗概、核心反转、情绪设计、人设速写)。
  • 对标摘要:把故事结构、情绪节奏、核心反转机制、可复用写作手法写入对标摘要区。

Step 3:小节大纲生成

情节节点.md 的功能分段反推 {标题}/小节大纲.md,按开头段/铺垫段/升级段/反转段/结尾段映射;短篇只做轻量蓝图:每节写 结构段/五段功能、主事件、3-5 个子事件、目标情绪、人物/关系变化、因果/逻辑链、结尾承接/小钩子。钩子或关系无法判断时标 [待补充],不套用长篇完整章节蓝图。

Step 4:对标引用视图(可选)

拆文库/{书名}/ 整体复制为 {标题}/对标/{书名}/,供续写阶段的对标上下文加载。默认生成。


Phase 4:项目激活

Step 1:质量检查

按篇幅对照对应的质量检查清单:

  • 长篇:完整迁移质量清单见 references/structure-mapping-long.md 末尾的质量检查清单(含正文文件数对照、主要角色覆盖、追踪/角色状态.md 已生成且对齐标准模板、卷划分已经用户确认等)。
  • 短篇:质量清单见 references/structure-mapping-short.md 末尾的质量检查清单(含 正文.md 单文件存在且格式合规、设定.md 含核心框架+对标摘要、未误建长篇专属目录等)。

Step 2:缺失项提示

输出导入结果摘要和待补充项,按篇幅分支。

长篇导入完成报告

=== 导入完成报告(长篇)===
书名:{书名}
源文件:{X} 章,{Y} 万字
项目目录:{路径}

## 已生成文件
- 正文:{N} 章
- 角色文件:{M} 个
- 大纲:大纲.md + {V} 个卷纲 + {N} 个细纲
- 追踪:伏笔.md + 时间线.md + 角色状态.md + 上下文.md
- 设定:{世界观文件数} 个
- 对标同步:`对标/{书名}/剧情/节奏.md`(节奏已同步/未同步)+ `对标/{书名}/剧情/情绪模块.md`(情绪模块已同步/未同步)+ 文风.md + 拆文报告.md

## 待补充项
- [ ] 细纲中的章首/章尾钩子需要补充
- [ ] 题材定位的核心梗三分法需要确认
- [ ] 伏笔追踪中的伏笔已复核
- [ ] 角色状态.md 已复核(日更写前准备依赖此文件)
- [ ] 卷划分已确认(原文无明确卷界时)
- [ ] 文风已从拆文库同步到 `对标/{书名}/`(日更前 fail-fast 依赖此文件)
- [ ] 节奏已同步到 `对标/{书名}/剧情/节奏.md`;缺失时必须先修复或重跑 Stage 3
- [ ] 情绪模块已同步到 `对标/{书名}/剧情/情绪模块.md`;缺失时必须先修复或重跑 Stage 3
- [ ] `设定/题材定位.md` 已含 `主对标书` 字段(多本对标时必填)

## 下一步操作
- 运行 `/story-review lean` 审查导入结果
- 运行 `/story-long-write` + "日更" 开始续写

短篇导入完成报告

=== 导入完成报告(短篇)===
标题:{短篇标题}
源文件:{Y} 字
项目目录:{路径}

## 已生成文件
- 正文.md(单文件,{Y} 字)
- 设定.md(核心框架 + 对标摘要)
- 小节大纲.md({N} 个小节)
- 对标/{书名}/(可选引用视图)

## 待补充项
- [ ] 所有 [待补充] 标记的文件已复核
- [ ] 小节大纲的章首/章尾钩子需要补充
- [ ] 核心反转的铺垫线索已确认

## 下一步操作
- 运行 `/story-short-write` Phase 3 开始续写

Step 3:项目激活

  • 设置 .active-book 指向导入的书名/标题目录
  • 确认项目可以被对应写作 skill 识别(长篇 → story-long-write,短篇 → story-short-write)
  • 可选验证:如果项目已部署 story-explorer agent(优先检查 .claude/agents/ 下的 story-explorer.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),可 spawn Agent(subagent_type: "story-explorer", prompt: "项目目录:{dir}\n查询类型:progress\n查询参数:导入验证") 交叉验证迁移数据完整性

setup 环境检测已在 Phase 1「环境检测前置」完成,此处不再重复检测。


大型作品处理(>200 章)

本节仅适用于长篇导入。短篇为单文件全量迁移,无增量导入需求。

超过 200 章的作品,采用增量导入策略:

  1. 首期导入:只导入前 50 章 + 全书概要
  2. 增量补充:后续按用户需求分批导入剩余章节
  3. 上下文摘要:未导入的章节生成简化摘要(200 字/章)

参考资料索引

按阶段加载,不一次全部加载。

本 skill 自带的 reference 文件全部位于 references/,按场景加载。涉及别的 skill 的方法论/模板时,story-import 不直接加载文件,而是运行对应 /命令 由该 skill 自行加载。

Phase 1:确认导入源

场景加载文件
篇幅分流判定references/length-routing.md
章节格式识别由 story-long-analyze 拆解管道(运行 /story-long-analyze)的阶段 1 负责

Phase 2:深度分析

场景加载文件 / 相关 skill
长篇深度分析(方法论、质量检查、输出模板均自带)运行 /story-long-analyze 调用长篇拆解管道
短篇深度分析(方法论、质量检查、输出模板均自带)运行 /story-short-analyze 调用短篇拆解管道

Phase 3:结构迁移

场景加载文件
长篇迁移映射规则references/structure-mapping-long.md
短篇迁移映射规则references/structure-mapping-short.md
角色状态反推规则(长篇)references/character-state-reverse.md
角色状态规则(character-state-reverse.md 依赖)references/state-tracking.md
短篇正文格式规范references/format-and-structure.md

长篇细纲模板格式参见 story-long-write(Phase 3 细纲部分);短篇核心框架模板参见 story-short-write(核心框架部分)。这两项为纯文本指引,story-import 不加载对应 skill 的文件。

Phase 4:项目激活

场景说明
长篇项目结构规范参见 story-long-write(Phase 4 项目文件结构)
短篇项目结构规范参见 story-short-write(Phase 3 项目结构)
环境部署部署模板由 /story-setup 提供,story-import 不负责部署

流程衔接

流水线: 长篇 / 短篇 位置: 导入(在开书之前)

时机跳转到命令
导入完想继续写(长篇)story-long-write/story-long-write + "日更"
导入完想继续写(短篇)story-short-write/story-short-write
导入完想审查质量story-review/story-review
想深入分析对标(长篇)story-long-analyze/story-long-analyze
想深入分析对标(短篇)story-short-analyze/story-short-analyze
从零开新书(长篇)story-long-write/story-long-write + "开书"
从零开新书(短篇)story-short-write/story-short-write
项目未部署环境story-setup/story-setup

语言

  • 跟随用户的语言回复,用户用什么语言就用什么语言回复
  • 中文回复遵循《中文文案排版指北》

附带文件

references/character-state-reverse.md
# 角色状态反推规则(长篇专用)

> 适用范围:仅长篇导入。短篇不产 `追踪/角色状态.md`(依据 `state-tracking.md`:「本节仅适用于长篇写作。短篇通常不需要独立的角色状态追踪文件」)。
>
> 生成顺序约束:本文件所描述的反推依赖 `追踪/伏笔.md` 已生成(步骤 6「待回收伏笔」需查伏笔状态)。Phase 3-L 的正确顺序是:**先生成 `伏笔.md` 和 `时间线.md` → 再生成 `角色状态.md`(本规则)→ 最后生成 `上下文.md`**(上下文.md 的「角色状态:最近变更」字段依赖本文件)。

---

## 一、输入来源

从已落盘的拆书产物反推,**不重读 `原文/` 目录**。拆书产物已是结构化提炼,重读原文是重复劳动,违反「先分析后迁移」原则。

| 输入文件 | 用途 |
|---------|------|
| `拆文库/{书名}/角色/{角色名}.md` | 基本档案(身份、能力、动机、出场记录、成长弧线) |
| `拆文库/{书名}/角色/角色关系.md` | 关键关系的当前/最终状态与演变轨迹 |
| `拆文库/{书名}/章节/第N章_摘要.md` | 各章情节点(角色状态变化的时序证据) |
| `拆文库/{书名}/剧情/*.md` | 角色弧线、阵营/身份转折、故事线汇总 |
| `追踪/伏笔.md`(已生成) | 查询与该角色相关、状态为「已埋」的伏笔 |

---

## 二、筛选追踪对象

复用 `state-tracking.md` 规则:**只追踪出场 ≥3 次或有独立剧情线的角色**。

对照 story-import 角色分级表:

| 等级 | 是否进入角色状态.md |
|------|-------------------|
| 主角 | 是(完整条目) |
| 反派 | 是(完整条目) |
| 核心配角 | 是(完整条目) |
| 功能角色 | 否(不追踪,出场章节 <20% 且作用有限) |

边界模糊时,归入更低等级(不追踪)。

---

## 三、反推算法(每个主要角色一条目,6 步)

对每个需追踪的角色,按以下顺序执行:

### 步骤 1 — 当前身份

从 `角色/{角色名}.md` 的出场记录或成长弧线中,取**时序最晚**(最后章节)的身份/职业描述。若 `拆文报告.md` 中有更晚的总结性身份标注,以报告为准。

### 步骤 2 — 当前能力

同理取该角色出场记录中最后出现的能力水平描述。能力体系由 `设定/世界观/`(力量体系.md / 背景设定.md)提供背景,能力细节从角色档案中读取。

### 步骤 3 — 关键关系

从 `角色关系.md` 中取该角色所有关系条目的「当前/最终状态」字段(A↔B 关系格式:关系类型 | 情感 | 当前状态)。演变轨迹摘要写入关系描述括号中(「第N章变化」)。

### 步骤 4 — 公众形象

扫描各章 `章节/第N章_摘要.md` 的情节点,检索类型含「外界评价/名声/身份暴露/社会地位变化」的最新一条(时序最晚)。无对应情节点时,填 `[待补充]`。

### 步骤 5 — 待回收伏笔

查询 `追踪/伏笔.md`,筛选满足以下两个条件的伏笔:
1. 涉及角色字段包含该角色名;
2. 状态字段为「已埋」(未回收)。

列出伏笔标题(如有多条,逐行列出)。若无相关已埋伏笔,填「暂无」。

> 注意:本步骤依赖 `追踪/伏笔.md` 已生成。若伏笔文件尚未生成,先完成 `伏笔.md`,再回来执行本步骤。

### 步骤 6 — 状态变更记录

扫描 `角色/{角色名}.md` 的出场记录列,提取有明确状态变化(身份/能力/关系/形象)的章节,按章节顺序逐条转为变更记录行:

```
第{N}章:{变化描述(一句话,含变化类型)}
```

**超过 10 条时按以下规则压缩**(复用 `state-tracking.md` 规则):
- 将最早的记录摘要合并写入对应字段(如「当前身份:第 1-20 章从学生到歌手」);
- 删除已合并的旧记录行;
- 保留最近 10 条详细变更记录。

---

## 四、输出格式

本节即为 `角色状态.md` 的标准模板(与 story-long-write 同名 artifact 字段一致),逐字段一一对应,不新增、不删减字段。

```markdown
# 角色状态追踪

## {角色名}
- **当前身份**:{最新身份/职业}
- **当前能力**:{最新能力水平}
- **关键关系**:
  - 与{角色B}:{当前关系状态}(第{N}章变化)
  - 与{角色C}:{当前关系状态}
- **公众形象**:{外界如何看待该角色}
- **待回收伏笔**:{与该角色相关的未回收伏笔,无则填「暂无」}
- **状态变更记录**:
  - 第{N}章:{变化描述}
```

每个需追踪的角色独立一个 `## {角色名}` 节,按主角→反派→核心配角顺序排列。

---

## 五、半成品书处理

最后一章为残稿(写了一半、内容明显截断)时:
- 角色状态以**残稿之前的最后一个完整章节**为准,不纳入残稿内容。
- 在文件头的 `>` 引用块中注明:

```
> 半成品注记:基于第 N 章状态,残稿第 N+1 章内容未计入。
```

「最后一章是否完整」由 Phase 1 基本信息确认环节显式确认,结果传递到本步骤使用。

---

## 六、大型作品(>200 章)增量导入

增量导入只导入前 N 章时,角色状态仅覆盖已导入章节,在文件头注明:

```
> 增量注记:基于已导入的前 N 章,后续增量导入时更新本文件。
```

---

## 七、质量自检

`角色状态.md` 生成后,对照以下清单确认:

- [ ] 追踪对象仅含主角/反派/核心配角,功能角色未进入
- [ ] 所有字段与本文件「输出格式」节的模板逐字段对应,无字段缺失
- [ ] 不确定字段已加 `[待补充]` 标记
- [ ] 「待回收伏笔」已引用 `追踪/伏笔.md` 的实际条目(或填「暂无」)
- [ ] 变更记录超 10 条时已按规则压缩
- [ ] 半成品书已注明基准章节
references/format-and-structure.md
# 正文格式与小节结构

> 写作前必读。以下格式是当前仓库约定的默认正文交付格式;用户或目标平台有明确要求时,以用户/平台要求覆盖。
>
> **适用范围**:段落格式(戏剧单元/镜头优先,短段为底色,长段用于完整推理、氛围和情绪链)和对话格式适用于所有体裁。小节(beat)结构和字数标准仅适用于短篇。长篇小说字数以当前 skill 的字数硬约束为准。

---

## 章节标记

默认格式(按灵活度排序):

| 格式 | 平台适用 | 示例 |
|------|----------|------|
| `###1.` | 短篇默认 | `###1.` `###2.` `###3.` |
| `###第一章` | 部分平台 | `###第一章` `###第二章` |
| `1.`(纯数字) | 知乎 | `1.` `2.` `3.`(无 ### 前缀) |

**规则**:全文统一一种格式,不要混用。短篇推荐 `###1.` 或纯数字,简洁高效。

---

## 段落格式

### 核心规则:戏剧单元优先

默认交付排版是**按戏剧单元/镜头自然断段,段落紧密排列**。不要把固定字数当成强制切刀;先判断“一件事/一个推理链/一个情绪变化”是否完成。

- 一段承载一个戏剧单元:一个动作链、一个线索发现、一次视线切换、一轮心理判断,或一条连续的氛围/推理/情绪链。
- 场景结束、一件事结束、新动作、新物件、新信息、新对话另起一段;同一瞬间的发生、感知、反应应织在一起,不拆成动作层/感知层/反应层。
- 正文相邻段落之间**只允许一个换行符 `\n`**;不得出现空行或连续换行 `\n\n`(紧密排列)。
- 无缩进(平台渲染器自行处理,不需要 `  ` 或空格)。
- 长度只作诊断:读起来拥挤、混入多个拍点、或手机屏上难以跟读时才拆;完整推理、氛围铺陈、情绪递进未结束时,允许稍长段保留连贯性。

### 段落节奏(长短交错 + 疏密有别)

短段快读,是网文手机阅读的底色;长段负责承载完整推理、氛围和情绪沉淀。**忌通篇同长度**,也忌把每段按同一字数阈值切开:

- **长短交错**:高潮、打脸、反转压到最短(单句成段);推理链、环境压迫、情绪沉淀、章节收束可保留较长段,让读者读完一个完整变化。
- **疏密有别(详略)**:爽点、转折 beat 写密(感知、动作、细节铺满);过场、连接 beat 写疏(1-2 句带过,不平均用力)。每个 beat 一样长、一样细,正是 AI 腔的来源。
- **不过度碎片化**:连续多个极短段若仍属于同一镜头/同一件事,应合并成自然段,避免像提纲或诗行。

### 主语与角色名节奏

角色名不宜一味省略,也别每句都点名。按“主语重置”使用:

- 段首、场景切换、多人同场、或主语可能混淆时,用主角名/角色名建立视角。
- 同一段或同一动作链内,优先混用代词、动作承接和合理省略,避免每句都以同一角色名开头。
- 关键转折、情绪爆点、身份反差或读者需要重新盯住主角时,可以再次点名强化。
- 审查主语节奏看“读起来是否打磕巴”,不按全章出现次数一刀切;只有连续句/连续段无主语重置却反复点名,才算主语过密。

---

## 对话格式

### 对话标记

按目标平台/用户要求选择;未指定时使用默认格式:

| 优先级 | 格式 | 适用平台 |
|--------|------|----------|
| 首选 | `"说话内容"` | 短篇默认、番茄 |
| 平台/项目指定 | `「说话内容」` | 知乎盐言短篇、部分古言、日式或用户指定 |

**默认用 `""`**;用户或平台指定盐言风格时改为 `「」`,不要把 `「」` 视为错误。

### 对话规则

1. 对话**独立成行**,不嵌在叙述段落中
2. 用动作代替对话标签:不用「他说」「她道」,改为动作描写 + 对话
3. 两人对话连续出现时,省略标签,靠内容区分说话人

**正确示例**:
```
她把杯子放下。
"你走吧。"
他没有动。
"我说,你走吧。"
```

**错误示例**:
```
她把杯子放下,说道:"你走吧。"他没有动,她又说:"我说,你走吧。"
```

---

## 语气标点谱系

标点服务语气、人物声线和情绪节奏,不能通篇句号化,也不能为了“丰富”随机堆砌符号。先判断当前句子的功能,再选择标点:

| 语气 / 功能 | 标点策略 | 防线 |
|---|---|---|
| 压迫 / 冷静 / 克制 | 短句、逗号、句号,必要时用冒号压出判断落点 | 不人工加感叹号;克制不是每句都平铺句号 |
| 质问 / 试探 / 反问 | 问号 + 短促追问片段,配合动作停顿 | 避免每句话都以 `?` 结尾 |
| 惊讶 / 爆发 / 打脸 | 真正爆点可用 1 个感叹号,连续爆发最多 1-2 处 | 禁止 `!!!`、整段喊叫式感叹 |
| 犹豫 / 吞咽 / 未说完 | 逗号、句号、短句断开、动作 beat | 不用 `……` 制造停顿;优先用动作和句长变化 |
| 被打断 / 拖长音 | 不使用 `——`;改用动作打断、换行、短句或未完成动作 | 正文和对话都禁止 `——` / `—` / `--` |
| 信息揭示 / 判断落点 | 冒号、分号或单句成段制造落点 | 保持手机阅读友好,不写论文式分号串 |

执行规则:
- 写对话时先看角色关系和权力位置:强势角色常短句收束,试探角色多问号和半句,崩溃角色才允许少量感叹/省略。
- 写叙述时用句长、逗号停顿和单句成段制造节奏;不要把破折号当节奏工具,对话里也不要用。
- 精修时检查两类问题:**通篇句号化**(语气全被压平)与**随机标点堆砌**(问号/感叹号不承载情绪功能,或用省略号/破折号硬造停顿)。
- 引号风格按项目/平台约定;知乎盐言的 `「」` 是合法对话格式,`quote-mode keep` 时不得擅自改掉。

---

## 小节(beat)结构

### 基本规则

- 用数字编号(`1` `2` `3`)分割小节,每个小节是一个完整的叙事 beat
- 每小节 800-1500 字(爽文可压缩至 500-800 字/节,见 genre-writing-formulas.md)
- 8-15 个小节覆盖全文(按目标字数反推;8000÷1000≈8节,12000÷800≈15节)
- 每小节推进一个明确的情节点

### 小节内部结构

每个小节应该有:

1. **一个主事件** + **3-5 个子事件**(主事件推进核心情节,子事件丰富层次;初稿偏短时先回到小节/细纲补足计划内子事件、对话或冲突,再写正文;去AI味已有正文时不得新增剧情)
2. **一个情绪变化**(读者的感受如何变化)
3. **一条读者新获知的信息**
4. **3-5 轮对话交锋**(揭示关系/升级冲突,参考 writing-craft.md 对话权力博弈。特定场景如独自发现/翻阅日记可标零,按当前 skill 的细纲/设计任务要求执行)
5. **每个子事件三维度揉进**:发生+感知+反应揉进同一段正文(参考 writing-craft.md 场景写法)


### 小节之间的衔接

- 小节结尾留一个钩子(悬念/未解决的情绪/新问题)
- 下一节开头快速接续,不要重新铺垫
- 情绪跨节递进:每一节的情绪强度 ≥ 上一节。例外:峰值情绪(反转节)后允许维持 1 节不降,但不允许骤降

---

## 平台对话格式覆盖表

| 平台 | 章节标记 | 对话格式 | 特殊要求 |
|------|----------|----------|----------|
| 知乎盐言 | `1.` | `「」` | 导语需单独标注 |
| 番茄 | `###第一章` | `""` | 首段需有吸引力 |
| 红果 | `###1.` | `""` | 无 |

**通用原则**:用户未指定平台时,默认使用短篇通用格式(`###1.` + `""`);用户或平台指定盐言风格时,`「」` 是允许的。

---

## 5 条绝对禁止

以下规则在写作全程执行,不因题材或风格而变:

1. **禁止机械按字数分段**:不要因为超过某个字数就强拆;先判断段落是否仍是一个完整戏剧单元。若混入多个动作/信息/视线切换才拆,完整推理、氛围、情绪链可保留稍长段
2. **禁止段间空行**:正文相邻段落之间只允许一个换行符 `\n`,不得出现空行或连续换行 `\n\n`
3. **避免对话标签机械化**:高频或公式化的「他说」「她道」「他笑了笑说」用动作/上下文替代;普通“说”可保留
4. **禁止缩进**:不使用 `  `(全角空格)或半角空格缩进
5. **禁止正文段落 Markdown 渲染**:除统一的小节/章节标记(如 `###1.`)外,正文段落中不使用加粗 `**`、斜体 `*`、标题 `#`、分隔线 `---` 等 Markdown 语法
6. **正文不使用破折号**:正文(含叙述、对话、心理描写)不使用破折号 `——`/`—` 或双连字符 `--`,改用句号、逗号、换行、动作 beat 或短句断开;不再设置“对话例外”
7. **禁止通篇句号化或随机标点堆砌**:标点必须跟语气/人物声线/情绪功能匹配;该质问时用问号,该爆发时少量感叹;犹豫、吞咽、未说完用动作或句长变化表达,不用 `……` / `——` 硬造停顿,也不得无功能地乱撒 `?`/`!`
8. **禁止正文混入章节元信息**:章节号只允许出现在标题/小节标记/文件名/追踪记录中。正文叙述、对话、心理描写里不得出现 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类写作工程词;要改成角色能感知的事件锚点或相对时间,例如把“比第一章那三秒开火更疼”改成“比那三秒开火更疼”。例外:角色在故事世界内真实阅读/讨论“第X章”文本,或真实身为作者/读者并谈论读者身份时,可保留相应词。

---

## 快速检查

写完每一段后,用这个清单自查:

- [ ] 段落按戏剧单元/镜头断开,而不是机械按字数切开?
- [ ] 三维度揉进段是否按镜头/信息变化断开,完整推理/氛围/情绪链是否保留连贯?
- [ ] 主语/角色名节奏是否自然:段首能建立主语,段中有代词/省略,关键转折再点名,避免无必要连续重复?
- [ ] 正文相邻段落之间是否只有一个 `\n`,没有空行/`\n\n`?
- [ ] 对话独立成行,且引号风格符合项目/平台约定(盐言 `「」` 合法)?
- [ ] 标点节奏是否匹配语气/人物声线,避免通篇句号化,也没有随机堆砌 `?`/`!` 或用 `……`/`——` 硬造停顿?
- [ ] 正文(含对话)里的 `——`/`—`/`--` 是否已改为逗号、句号、动作 beat 或短句断开?
- [ ] 对话标签是否避免高频/公式化,普通“说”是否按语境保留?
- [ ] 无缩进?
- [ ] 每个小节有事件+情绪+信息?
- [ ] 标题/小节标记之外,无 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类元信息词;故事内真实阅读/讨论“第X章”或真实读者身份语境除外?
references/length-routing.md
# 篇幅分流判断规则

Phase 1「基本信息确认」环节使用本规则判定导入书是长篇还是短篇,判定结果决定后续走哪条迁移路径。

---

## 判定优先级

判定按以下顺序执行,命中即停止,不再向下判断。

| 优先级 | 信号来源 | 判定规则 |
|--------|---------|---------|
| 1 | 用户显式声明 | 用户说「这是长篇 / 短篇」→ 以用户为准,直接锁定 |
| 2 | 结构信号 | 检测到明确章节分隔符且章节数 ≥ 5 → 长篇;全文无章节分隔、单文件单篇 → 短篇 |
| 3 | 字数兜底 | 仅在 1、2 均不明确时启用,见下方「字数兜底规则」 |
| — | 冲突处理 | 信号之间发生矛盾时,不自动决策,回到 Phase 1 向用户复述并请用户拍板 |

---

## 优先级 1:用户显式声明

Phase 1 信息确认时向用户提问:**「这是长篇还是短篇?」**

- 用户明确回答 → 锁定类型,跳过后续检测。
- 用户未回答或说「不确定」→ 进入优先级 2 结构信号检测。

---

## 优先级 2:结构信号

### 章节分隔符识别

复用 `structure-mapping-long.md` 的分隔符识别表:

| 分隔符模式 | 示例 |
|-----------|------|
| `第X章` / `第X章 ` / `第X章:` / `第X章 XXX` | 第1章 初入江湖 |
| `Chapter X` | Chapter 1 |
| 纯数字编号 + 标题 | 1. 觉醒 |

### 判定规则

| 检测结果 | 判定 |
|---------|------|
| 有明确章节分隔符,且识别到章节数 ≥ 5 | 强长篇信号 → 判定为**长篇** |
| 全文无任何章节分隔符,单文件单篇 | 强短篇信号 → 判定为**短篇** |
| 有章节分隔符,但章节数 < 5 | 结构信号不明确 → 进入优先级 3 字数兜底 |
| 分隔符模式模糊(如仅有单个标题行) | 结构信号不明确 → 进入优先级 3 字数兜底 |

---

## 优先级 3:字数兜底

**仅在优先级 1、2 均无法给出明确判定时使用。** 当前导入契约按短篇通常 8000-20000 字的区间取 30000 字作建议上界,并保留题材差异余量。

| 条件 | 判定 | 备注 |
|------|------|------|
| 总字数 < 30000 且无章节结构 | **短篇** | — |
| 总字数 ≥ 30000 | **长篇** | — |
| 章节数 ≥ 5(任意字数) | **长篇** | — |
| 总字数 < 30000 但章节数 ≥ 5 | 初判**长篇**,但须提示用户 | 见下方「分章短篇连载」 |

> **建议值说明**:30000 字阈值是估算值,不同平台和题材的短篇上限有差异。执行时列入 open-questions,建议用户复核是否适用于当前导入书。

### 分章短篇连载

检测到总字数 < 30000 但章节数 ≥ 5 时,在确认环节提示用户:

> 「检测到分章结构(共 {N} 章),但总字数约 {X} 字,低于 30000 字。可能是分章短篇连载。确认按长篇导入,还是按短篇处理?」

用户拍板后锁定类型。

---

## 冲突处理

当不同信号之间出现矛盾时,**不自动决策**,回到 Phase 1 向用户复述检测结果:

| 典型冲突场景 | 处理方式 |
|------------|---------|
| 用户说「短篇」但检测到 20 章 | 复述:「检测到 20 章章节结构,通常属于长篇。确认按短篇导入?」由用户拍板 |
| 用户说「长篇」但全文无章节分隔且字数 < 30000 | 复述:「全文无章节分隔,总字数约 {X} 字,通常属于短篇。确认按长篇导入?」由用户拍板 |
| 结构信号与字数信号方向相反 | 展示两项信号,请用户决定 |

用户拍板的结果记入 Phase 1 上下文,后续步骤以此为准,不再重新判定。

---

## 判定结果与后续路径

判定完成后,迁移路径按以下对应关系分流:

| 判定结果 | 迁移路径 | 映射规则参考文件 |
|---------|---------|----------------|
| **长篇** | 长篇迁移路径(Phase 3-L) | `structure-mapping-long.md` |
| **短篇** | 短篇迁移路径(Phase 3-S) | `structure-mapping-short.md` |

> 注:`structure-mapping-long.md` 对应长篇迁移映射规则,`structure-mapping-short.md` 对应短篇迁移映射规则。

---

## 快速判定流程图

```
Phase 1 问用户:「长篇还是短篇?」
         │
         ├─ 用户明确回答 ──────────────────────────► 锁定类型
         │
         └─ 未回答 / 不确定
                  │
                  ▼
         检测章节分隔符
                  │
                  ├─ 有分隔符且章节数 ≥ 5 ──────────► 长篇
                  │
                  ├─ 无分隔符,单文件单篇 ──────────► 短篇
                  │
                  └─ 信号不明确
                            │
                            ▼
                   字数兜底判定(30000 字阈值)
                            │
                            ├─ < 30000 且无章节结构 ─► 短篇
                            ├─ ≥ 30000 ─────────────► 长篇
                            ├─ 章节数 ≥ 5 ──────────► 长篇
                            └─ < 30000 但章节数 ≥ 5 ─► 提示用户裁定
```
references/state-tracking.md
# 状态追踪协议

> 本文件定义"本节速记"的提取逻辑和"角色状态快照"的格式。写作 skill 在写前准备的状态筛选步骤中加载此文件。

---

## 本节速记

写作每一章/每一节前,从所有已加载的上下文中筛选出只与本节相关的信息。目的是避免全量加载导致 LLM 上下文被无关信息稀释。

### 筛选逻辑

从上下文中提取三类信息:

1. **当前状态**:本章涉及角色的最新能力、关系变化、公众形象
2. **历史因果**:与本章事件直接相关的伏笔成因、前史事件
3. **世界约束**:本章涉及的世界观规则(力量体系、社会规则、地理限制)

### 筛选标准

**只保留"如果不知道这个,本章会写错"的信息。**

具体判断方法:
- 本章细纲中提到了某个角色 → 保留该角色的当前状态
- 本章有伏笔回收 → 保留伏笔的埋设细节和前文铺垫
- 本章涉及特定地点/能力/规则 → 保留相关世界观约束
- 纯背景知识(与本章事件无因果关联) → 丢弃

### 输出格式

筛选后输出一个简洁的"本节速记":

```
## 本节速记(第{N}章)

### 角色状态
{角色A}:{一句话当前状态,含最近变化}
{角色B}:{一句话当前状态}

### 相关伏笔/前史
{伏笔1}:{埋设细节,{埋设章节}},本章需要{回收/推进}

### 世界约束
{约束1}:{与本章相关的规则/设定}
```

**示例(都市文娱第 12 章):**
```
## 本节速记(第12章)

### 角色状态
邵阳:穿越者,前世二线歌星,刚在宋佳伦演唱会一曲惊人,目前"临时女友"薛嘉嘉在身边
薛嘉嘉:女主,金牌制作人隐藏身份,表面是邵阳临时女友,实际已对他产生好感
宋丽:前女友,看到邵阳爆红后心态复杂,与新欢郑松关系出现裂痕

### 相关伏笔/前史
薛嘉嘉隐藏身份:第3章邵阳帮她解围时暗示过,本章需要在公开场合暴露身份的前兆
五万块彩礼:宋丽以练习生名义拿走的钱,第2章埋设,本章邵阳决定要回

### 世界约束
蓝星平行世界:无地球文娱作品,邵阳的前世记忆是降维打击
```

---

## 角色状态快照格式

> ⚠️ **本节仅适用于长篇写作。** 短篇通常不需要独立的角色状态追踪文件。

`追踪/角色状态.md` 用于追踪主要角色的状态变化。Phase 3 大纲完成后创建初始状态,Phase 4 每章写完后更新。

### 格式

```markdown
# 角色状态追踪

> 用途:本节速记的数据源。写作每章前从此文件中筛选本章相关的角色状态。
> 更新时机:Phase 3 大纲完成后创建初始状态;Phase 4 每章写完后更新变化。

## {角色名}
- **当前身份**:{最新身份/职业}
- **当前能力**:{最新能力水平}
- **关键关系**:
  - 与{角色B}:{当前关系状态}(第{N}章变化)
  - 与{角色C}:{当前关系状态}
- **公众形象**:{外界如何看待该角色}
- **待回收伏笔**:{与该角色相关的未回收伏笔}
- **状态变更记录**:
  - 第{N}章:{变化描述}
```

### 更新规则

1. 每章写完后,检查本章是否引起了任何角色的状态变化(身份、能力、关系、公众形象)
2. 如果有变化:更新对应角色的字段,并在"状态变更记录"中追加一行
3. 如果无变化:跳过
4. 仅追踪主要角色(出场 ≥3 次或有独立剧情线的角色),不追踪路人角色
5. 变更记录维护:每个角色保留最近 10 条详细变更记录。超过 10 条时,将最早的记录摘要写入对应字段(如「当前身份:第 1-20 章从学生到歌手」),删除已合并的旧记录行
references/structure-mapping-long.md
# 结构迁移映射规则(长篇)

Phase 3-L 长篇结构迁移的详细映射规则和模板。将 `拆文库/{书名}/` 分析结果转换为 `{书名}/` 长篇项目结构。

> 短篇迁移规则见 `structure-mapping-short.md`。

---

## 映射总览

| 拆文库路径 | 项目路径 | 转换方式 |
|-----------|---------|---------|
| `原文/` | `正文/第XXX章_章名.md` | 按章节分割并标准化命名 |
| `快速预览.md` | — | 参考卷划分候选、剧情走向,不直接迁移 |
| `角色/{角色名}.md` | `设定/角色/{角色名}.md` | 增加角色模板字段 |
| `角色/角色关系.md` | `设定/关系.md` | 格式转换 |
| `设定/世界观/*.md` | `设定/世界观/*.md` | 按主题原样同步 |
| `设定/势力/*.md` | `设定/势力/*.md` | 按势力原样同步 |
| `剧情/故事线.md` | `大纲/大纲.md` | 反推卷级结构(需用户确认卷划分,见下) |
| `剧情/{标题}.md` | `大纲/卷纲_第X卷.md` | 聚合为卷纲 |
| `剧情/节奏.md` | `对标/{书名}/剧情/节奏.md` | 直接同步为写作侧权威节奏索引(关键信息推进/情绪触动点/爆发节奏) |
| `剧情/情绪模块.md` | `对标/{书名}/剧情/情绪模块.md` | 直接同步为写作侧权威模块索引(读者需求 / 情绪引擎 / 可复现模块) |
| `章节/第N章_摘要.md` | `大纲/细纲_第N章.md` | 反推细纲 |
| — | `设定/题材定位.md` | 从拆文报告生成 |
| — | `追踪/伏笔.md` | 从情节点提取(先于角色状态生成) |
| — | `追踪/时间线.md` | 从时间标记提取(先于角色状态生成) |
| — | `追踪/角色状态.md` | 由 `character-state-reverse.md` 反推(生成顺序见 [Step 7:追踪文件生成](../SKILL.md#step-7追踪文件生成)) |
| `剧情/散落情节.md` | `大纲/大纲.md` 附录或对应卷纲 | 合并到相关卷的大纲 |
| — | `追踪/上下文.md` | 生成进度摘要(最后生成,依赖角色状态) |

---

## 正文标准化规则

### 命名格式

源文件名 → 标准格式:`第{零填充三位}章_{章名}.md`

| 源文件名 | 标准化后 |
|---------|---------|
| 第一章_初入江湖.txt | 第001章_初入江湖.md |
| 第1章.md | 第001章_无题.md |
| chapter01.md | 第001章_无题.md |
| 01_觉醒.md | 第001章_觉醒.md |

### 章节分隔识别

当源为单个大文件时,按以下分隔符切分(与 `length-routing.md` 优先级 2 复用同一识别表):

| 分隔符模式 | 示例 |
|-----------|------|
| `第X章` / `第X章 ` / `第X章:` / `第X章 XXX` | 第1章 初入江湖 |
| `Chapter X` | Chapter 1 |
| 纯数字编号 + 标题 | 1. 觉醒 |

### 内容处理

- 保留原文内容不变,不做任何修改
- 编码统一为 UTF-8
- 去除文件头尾无关信息(如广告、声明等)

---

## 角色文件迁移模板

```markdown
---
name: {角色名}
---

# {角色名}

## 基本信息
- 身份:{从拆文库角色文件提取}
- 核心特质:{}
- 当前能力:{}
- 核心动机:{}
- 弱点/缺陷:{}

## 外在表现
{身份/言行/外貌}

## 内在分析
{性格/目标/秘密}

## 出场记录
| 章节 | 关键事件 | 状态变化 |
|------|---------|---------|
| 第{N}章 | {事件} | {变化} |

## 别名
{如有别名,列出}
```

---

## 关系文件转换规则

拆文库格式(角色关系.md)→ 项目格式(设定/关系.md):

```
拆文库格式:
A<->B:关系类型 | 情感 | 描述(50-200字)| 演变轨迹

项目格式:
| 角色 A | 角色 B | 关系类型 | 情感倾向 | 当前状态 | 起始章节 | 变化节点 |
```

转换规则:
- 关系类型映射:家人→亲情、恋人→爱情、朋友→友情等
- 情感倾向直接复用:正面/负面/中性/复杂
- 演变轨迹提取到「变化节点」列

### 目标格式模板(设定/关系.md)

```markdown
# 角色关系图

## 关系总览

| 角色 A | 角色 B | 关系类型{亲情/爱情/友情/敌对/师生/主从/利益} | 情感倾向{正面/负面/中性/复杂} | 当前状态 | 起始章节 | 变化节点 |
|--------|--------|---------------------------------------------|-----------------------------|---------|---------|---------|
| {名} | {名} | {类型} | {倾向} | {描述} | 第{N}章 | {事件} |

## 关系演变

{角色A}<->{角色B}:
- 起点:{初始关系}
- 转折:{章节·事件·变化}
- 当前:{现状}

## 核心冲突关系

{列出推动剧情的2-3对核心对立/合作关系}
```

---

## 世界观同步规则

当前 `story-long-analyze` 已输出主题化目录,导入阶段只做 pass-through,不再解析或拆分扁平 `世界观.md`。

| 源路径 | 目标路径 | 当前契约 |
|---------|---------|---------|
| `拆文库/{书名}/设定/世界观/*.md` | `{项目}/设定/世界观/*.md` | 原样同步;`背景设定.md` 必须存在 |
| `拆文库/{书名}/设定/势力/*.md` | `{项目}/设定/势力/*.md` | 原样同步已独立的势力文件 |

`力量体系.md`、`地理.md` 或小势力资料不足 200 字时,上游会将其并入 `背景设定.md`,因此这些独立文件可省略。如缺少 `背景设定.md`,或当前内容指向独立力量体系却未产出对应文件,停止导入并提示重跑 `story-long-analyze` Stage 4。

---

## 大纲反推规则

### 大纲.md(卷级结构)与卷划分规则

从 `剧情/故事线.md`、`剧情/*.md` 和 `快速预览.md` 反推,**卷划分必须遵守以下决策规则**:

**情形 A:原文有明确卷界**

原文中存在明确卷级标记(如「第一卷 XXXX」「卷一」等章节层级标题)→ 按原文卷界直接划分,无需询问用户。

**情形 B:原文无明确卷界**

不做机械切卷。执行流程:

1. 根据故事线/场景切换/大型时间跳跃,检测候选卷边界(见下方「候选边界检测参考」);
2. 向用户展示候选划分方案,格式示例:

   ```
   候选卷划分(供参考,非定论):
   - 候选卷一:第 1-18 章(世界观建立 + 初步成长,场景:城郊学院)
   - 候选卷二:第 19-45 章(主线冲突爆发,场景:帝都议事堂)
   - 候选卷三:第 46-XX 章(最终对决,场景切换:上古遗迹)
   以上为故事线/场景切换自动检测结果,请确认或调整。
   ```

3. **等待用户确认卷划分方案**后,才生成 `大纲/大纲.md` 的卷级结构和对应 `大纲/卷纲_第X卷.md`;
4. 用户未确认前,`大纲/大纲.md` 只记录候选方案,不写定卷纲。

> **不允许**用「每卷默认 20-40 章」机械切分原文无卷界的书。候选仅作参考,最终由用户拍板。

### 候选边界检测参考

| 信号类型 | 示例 | 卷边界可能性 |
|---------|------|------------|
| 章节连续 + 同一故事线 | 同一城市/同一势力视角 | 同一卷 |
| 主要场景切换(新地图/新阵营) | 从城郊进入帝都 | 候选新卷起点 |
| 大型时间跳跃(数月/数年) | 「三年后…」 | 候选新卷起点 |
| 主要阶段目标完成 + 新目标开启 | 击败阶段 boss → 新危机出现 | 候选新卷起点 |
| 故事线汇总中已有阶段划分 | `剧情/故事线.md` 内部分段 | 优先参考 |

### 卷纲反推

#### 目标格式模板(大纲/卷纲_第X卷.md)

卷纲是大纲的展开——大纲决定方向,卷纲决定节奏。包含本卷全部创作规划。

```markdown
# {卷名} 卷纲

## 核心信息
- 章节范围:第{X}-{Y}章
- 字数目标:{W}万字
- 本卷定位:{铺垫/发展/高潮/转折/收尾}

## 核心矛盾
{一句话:本卷要解决什么问题或达到什么目标}

## 情绪弧线
- 模板:{V形/倒V形/W形/渐进形/延迟满足形/急转弯形}
- 选择理由:{结合题材和本卷定位}

| 章节 | 情绪基调{紧张/轻松/悲伤/热血/温馨/震惊} | 强度{1-10} | 触发事件 |
|------|-----------------------------------------|-----------|---------|
| 第{N}章 | {基调} | {N} | {事件} |

## 卷契约与终局储备(反推)
- 卷契约:{从本卷剧情归纳读者期待与主角高光;证据不足写 `[待补充]`}
- 本卷主推线:{从情节点归纳承担本卷最大高潮的线}
- 本卷战果:{其余顺带兑现的线;证据不足写 `[待补充]`}
- 本卷解锁的终局里程碑:`[待补充]`
- 本卷禁碰的终局底牌:`[待补充]`
- 契约风险:{契约安全 / 需补强 / 契约破坏;无法判断写 `[待补充]`}

## 剧情单元(反推)
| 单元ID | 章节范围 | 单元节拍(铺垫→释放→反应层→衔接) | 主推线/战果 | 下一单元因果钩子 |
|------|---------|---------|-------|---------|
| L{卷}-1 | {章X-Y} | {从爽点/情节点分布归纳} | {线} | {方式} |

(导入反推只填有证据的字段,未知写 `[待补充]`、不杜撰;后续补纲/改纲时按 story-long-write 技能的「剧情单元卡」完整字段模板升级。)

## 人物弧线
| 角色 | 本卷起点 | 本卷终点 | 关键转变 |
|------|---------|---------|---------|
| {名} | {状态} | {状态} | {事件} |

## 本卷反转(如有)
| 类型{身份/动机/阵营/信息/命运} | 涉及角色 | 误导路径 | 揭示章节 | 影响范围 |
|------|---------|---------|---------|---------|
| {类型} | {名} | {如何误导读者} | 第{N}章 | {影响哪些线} |

## 本卷伏笔
| 伏笔 | 埋设章节 | 预计回收 | 类型{短期/中期/长期} |
|------|---------|---------|---------------------|
```

#### 字段映射

从剧情文件提取每卷的:
- 核心矛盾 → 核心矛盾字段
- 情节点分布 → 情绪弧线 + 剧情单元(反推)
- 角色出场 → 人物弧线
- 铺垫类情节点 → 伏笔

### 细纲反推

从每章摘要(`章节/第N章_摘要.md`)提取:

| 摘要字段 | 细纲字段 | 转换方式 |
|---------|---------|---------|
| 关键事件 | 核心事件 | 直接复用 |
| 章节字数 | 字数目标 | 从原文统计 |
| 章节基调 / 情绪曲线 | 目标情绪 | 从摘要提取;缺失写 `[待补充]` |
| 第一个情节点 | 章首钩子 | 只作为证据,设计目标标 `[待补充]` |
| 爽点类情节点 | 爽点 | 从情节点类型推断;没有则写“无显性爽点 / [待补充]” |
| 情节点起承转合 | 内容概括(起因/发展/转折/高潮/结尾) | 按情节点顺序归纳;证据不足写 `[待补充]` |
| 主线/支线/任务线索 | 情节安排(主线/辅线/事件线/感情线/逻辑线) | 从剧情单元索引与摘要反推;无证据的辅线/感情线写“无”或 `[待补充]`,不得杜撰 |
| 出场角色 / 关键物件 | 人物关系和出场顺序 | 按摘要出现顺序列出;关系变化只写有证据的“前 → 后”,缺失写 `[待补充]` |
| 全部情节点 | 情节细化 / 情节点序列 | 每点写“谁做了什么 + 功能标签”;功能不明写 `[待补充]` |
| 胜负/反转/收益损失 | 行动成本(可无)/收益归属 | 有明确证据才填写;行动成本可无、不硬造;否则 `[待补充]` |
| 最后一个情节点 / 悬念类情节点 | 结尾设定和钩子 | 收束状态可归纳;章尾钩子设计目标标 `[待补充]` |

---

## 角色状态反推

由 character-state-reverse.md 反推,详见该文件。

---

## 伏笔提取规则

从情节点中识别潜在伏笔:

### 识别模式

| 情节点类型 | 伏笔可能性 | 提取方式 |
|-----------|-----------|---------|
| 铺垫 | 高 | 直接提取为伏笔 |
| 信息揭示(部分) | 中 | 检查后续是否有呼应 |
| 物品首次出现 | 中 | 检查后续是否有使用 |
| 角色秘密 | 高 | 标记为角色伏笔 |
| 未解决的悬念 | 高 | 从章尾标记提取 |

### 状态推断

- 铺垫点在后续章节有「揭示」或「解决」类情节点 → 标记「已回收」
- 铺垫点无后续呼应 → 标记「已埋」
- 半成品小说的最后几章铺垫 → 标记「已埋」,备注「接近断点」

---

## 时间线提取规则

### 时间标记识别

从情节点和时间标记中提取:

| 标记模式 | 示例 | 提取方式 |
|---------|------|---------|
| 明确日期 | "天元三年春" | 直接记录 |
| 相对时间 | "三日后"、"半月后" | 推算绝对时间 |
| 事件间隔 | "翌日"、"次日" | 连续标记 |
| 季节标记 | "入冬"、"春暖花开" | 季节推断 |

### 排序规则

按章节顺序排列,同一章内按情节点序号排列。时间标记缺失时标注 `[推断]`。

---

## 题材定位生成

从拆文报告中提取核心发现,生成 `设定/题材定位.md`。

### 目标格式模板(设定/题材定位.md)

```markdown
# 题材定位

## 基本信息
- 题材类型:{玄幻/都市/系统/...}
- 目标平台:{Phase 1 向用户采集的目标平台;无则从拆文报告提取,仍无填 [待补充]。story-review 据此选平台 rubric}
- 核心梗:{一句话卖点}
- 微创新点:{与同类题材的差异}

## 核心梗三分法
- 表层卖点:{读者一眼看到的吸引力}
- 深层爽点:{持续追读的情绪驱动力}
- 长线钩子:{支撑全书的悬念/目标}

## 读者需求 / 情绪引擎
> 详细模块见 `对标/{书名}/剧情/情绪模块.md`;本段只保留开书/续写时的快速定位。

| 读者需求 | 情绪缺口 | 满足方式 | 可复现模块 | 来源 |
|---------|---------|---------|------------|------|
| {安全感/优越感/期待感/情感补偿/认知反转/陪伴感} | {缺什么} | {如何被满足} | {EM-001 等} | `对标/{书名}/剧情/情绪模块.md` |

## 节奏与触发参考
> 详细节奏见 `对标/{书名}/剧情/节奏.md`;写作时以该文件为节奏权威。

| 节奏模块 | 关键信息推进 | 情绪触动点 | 爆发节奏 | 来源 |
|---------|-------------|------------|----------|------|
| {RH/TR 编号} | {信息如何被扩写} | {触发什么感受} | {铺垫→爆发→冷却} | `对标/{书名}/剧情/节奏.md` |

## 对标书清单(canonical registry)
主对标书: {书名}  # 最多 1 本;日更默认只读取这本的文风.md 和原文锚点
对标书列表:
  - 书名: {书名 A}
    引用强度: 主  # 主 / 辅 / 参考
    题材类型: {玄幻/都市/系统/...}
    相关性: 同题材
    用途: 文风+核心结构
  - 书名: {书名 B}
    引用强度: 辅
    题材类型: {题材}
    相关性: 同题材/弱相关
    用途: {补设定/大纲/模块,不进文风}
  - 书名: {书名 C}
    引用强度: 参考
    题材类型: {题材}
    相关性: 同题材/弱相关
    用途: {仅按预算召回摘要}

## 对标分析(派生概要)
> 完整对标数据见 `对标/` 目录;上方 registry 是权威清单。本表仅做快速概览,不可替代 `主对标书` + `对标书列表`。

| 对标书 | 相似点 | 差异点 | 可借鉴 |
|--------|-------|-------|-------|
| {书名} | {点} | {点} | {点} |

## 题材框架
- 八节点位置:{当前处于哪个节点}
- 关键转折节点:{列出}
```

### 字段映射

- 题材类型、核心梗、微创新点 → 从 `拆文报告.md` 基本信息与核心发现段提取
- 核心梗三分法 → 从 `拆文报告.md` 表层吸引力、爽点设计、长线悬念段提取
- 读者需求 / 情绪引擎 → 从 `剧情/情绪模块.md` 提取;缺失时停止导入并给出重跑 Stage 3+ 的修复动作
- 节奏与触发参考 → 从 `剧情/节奏.md` 提取;缺失时停止导入,不得以 `拆文报告.md`、章节摘要或 `剧情/故事线.md` 代替
- 对标书清单 → 导入当前书时至少登记自身为 `主`;若用户提供多本素材,全部进入 `对标书列表`,副对标/参考对标不限制数量
- 对标分析(派生概要)、题材框架 → 可由导入场景生成摘要;不得替代 canonical registry

---

## 对标引用视图同步规则

长篇迁移必须把拆文库关键分析资产同步到项目侧 `对标/{书名}/`,使 story-long-write 优先读项目引用视图。项目视图尚未创建时,导入流程可读根目录 `拆文库/{书名}/` 这一 canonical 数据源并立即同步;这不是另一套产物格式。

| 源路径 | 目标路径 | 同步语义 |
|-------|---------|----------|
| `拆文库/{书名}/剧情/节奏.md` | `{项目}/对标/{书名}/剧情/节奏.md` | 日更选择 `rhythm_reference` 的必备权威文件;缺失先修复 |
| `拆文库/{书名}/剧情/情绪模块.md` | `{项目}/对标/{书名}/剧情/情绪模块.md` | 日更选择 `selected_emotion_module` 的必备权威文件;缺失先修复 |
| `拆文库/{书名}/剧情/*.md` | `{项目}/对标/{书名}/剧情/*.md` | 剧情单元、故事线、散落情节等剧情资产;与权威节奏/情绪文件冲突时以后者为准 |
| `拆文库/{书名}/章节/*.md`(第N章_摘要.md + 黄金三章 第1-3章_深度拆解.md)| `{项目}/对标/{书名}/章节/*.md` | 匹配章证据,含「关键信息与扩写技法」 |
| `拆文库/{书名}/角色/*.md` | `{项目}/对标/{书名}/角色/*.md` | 角色功能位、关系与反应层参考 |
| `拆文库/{书名}/设定/` | `{项目}/对标/{书名}/设定/` | 世界观、势力、金手指等设定约束参考 |
| `拆文库/{书名}/拆文报告.md` | `{项目}/对标/{书名}/拆文报告.md` | 人类可读摘要投影 |
| `拆文库/{书名}/文风.md` | `{项目}/对标/{书名}/文风.md` | 日更文风召回必读 |

冲突规则:`对标/{书名}/剧情/情绪模块.md` 和 `对标/{书名}/剧情/节奏.md` 是写作侧情绪/节奏权威;`拆文报告.md`、`剧情/故事线.md` 只作为摘要投影。若摘要冲突,保留冲突说明并以权威文件为准;缺少任一权威文件时先重跑或修复拆文产物。

---

## 质量检查清单

Phase 3-L 迁移完成后执行:

- [ ] 正文文件数 = 源文件章节数
- [ ] 主要角色(主角 + 核心配角)文件已创建
- [ ] 关系.md 非空
- [ ] 大纲.md 有卷级结构
- [ ] 每章细纲已生成
- [ ] 追踪/伏笔.md 中有内容(如有铺垫类情节点)
- [ ] 追踪/时间线.md 中有内容(如有时间标记)
- [ ] 追踪/角色状态.md 已生成且对齐 `character-state-reverse.md` 标准模板
- [ ] 追踪/上下文.md 进度摘要已填写
- [ ] 散落情节已合并到相关卷纲或大纲附录
- [ ] 卷划分已经用户确认(原文无明确卷界时必检)
- [ ] `剧情/节奏.md` 已同步到 `对标/{书名}/剧情/节奏.md`;缺失时迁移失败并附修复动作
- [ ] `剧情/情绪模块.md` 已同步到 `对标/{书名}/剧情/情绪模块.md`;缺失时迁移失败并附修复动作
references/structure-mapping-short.md
# 结构迁移映射规则(短篇)

Phase 3-S 短篇结构迁移的详细映射规则。将 `拆文库/{书名}/` 短篇拆文产物转换为 `{短篇标题}/` 短篇工程结构,供 `story-short-write` Phase 3 无缝接手续写。

> 长篇迁移规则见 `structure-mapping-long.md`。

---

## 与长篇的关键差异

| 维度 | 短篇 | 长篇 |
|------|------|------|
| 正文 | 单文件 `正文.md`,**不切章** | `正文/第XXX章_章名.md` 多文件 |
| 追踪目录 | **不产** `追踪/` | 产 `追踪/`(伏笔/时间线/角色状态/上下文) |
| 角色状态 | **不产** `追踪/角色状态.md` | 产,由 `character-state-reverse.md` 反推 |
| 大纲体系 | **不产** 卷纲、细纲 | 产 `大纲/卷纲_第X卷.md` + `大纲/细纲_第N章.md` |
| 大纲目录 | **不产** `大纲/` 目录 | 产 |
| 续写衔接 | story-short-write Phase 3(逐场景写作) | story-long-write 日更循环 |

---

## 映射总览

| 拆书产物 | 短篇工程文件 | 转换方式 |
|---------|------------|---------|
| 原文全文(`拆文库/{书名}/原文/`) | `{标题}/正文.md` | 单文件迁移,按下方『正文.md 格式规范』规范化,不重写内容 |
| `拆文报告.md` 的故事核/题材/对标字段 | `{标题}/设定.md`(核心框架区) | 反推核心框架,格式见下方「设定.md 反推规则」 |
| `情节节点.md` 的功能分段 | `{标题}/小节大纲.md` | 反推小节大纲(按开头段/铺垫段/升级段/反转段/结尾段,钩子字段标 `[待补充]`) |
| `拆文报告.md` + `写作手法.md` | `{标题}/设定.md`(对标摘要区) | 把结构/情绪/反转/写作手法写入对标摘要 |
| `拆文库/{书名}/` 整体 | `{标题}/对标/{书名}/` | 可选:复制为引用视图,供续写阶段按需加载 |

---

## 设定.md 反推规则

目标文件使用本文件定义的当前核心框架模板,分两个区块:

### 区块一:核心框架

从 `拆文报告.md` 的故事核、结构划分、人物分析等字段提取,填入以下模板:

```markdown
## 短篇核心框架

### 基本信息
- 标题:{原书名}
- 目标字数:{原文实际字数} 字
- 目标平台:{从拆文报告提取,无则填 [待补充]}
- 情绪目标:{从拆文报告「情感线/爆点分析」提取读者预期感受}

### 一句话梗概
{主角 + 困境 + 反转 + 情绪落点(从拆文报告故事核提取)}

### 核心反转
- 反转类型:{从拆文报告反转分析提取:身份反转/视角反转/动机反转/时间线反转}
- 反转内容:{一句话描述}
- 铺垫线索:{从情节节点中的「铺垫」类节点提取,至少 3 个;不足时标 [待补充]}

### 情绪设计
- 开头情绪:{从情感曲线第一个节点提取}(强度 {1-10})
- 中段情绪:{中段情感节点}(强度 {1-10})
- 反转情绪:{反转节情感峰值}(强度 {1-10})
- 结尾情绪:{结尾节情感}(强度 {1-10})

### 人设速写
- 主角:{一句话人设,从人物分析提取}
- 关键角色:{一句话人设}
- 关系:{他们之间的关系}
```

> 不确定字段一律加 `[待补充]` 标记,不留空字段。

### 区块二:对标摘要

从 `拆文报告.md` 和 `写作手法.md` 提取,汇总为对标摘要区块:

```markdown
## 对标摘要:{原书名}

### 故事结构
{从拆文报告「功能分段」字段提取,概述各段功能}

### 情绪节奏
{从情感曲线/爆点分析提取,描述情绪走势与峰值位置}

### 核心反转机制
{从反转机制分析提取,含铺垫路径}

### 可复用写作手法
{从写作手法.md 或拆文报告「可复用结构」字段提取,≥3 条}
```

---

## 小节大纲.md 反推规则

从 `情节节点.md` 的功能分段结构提取,映射到短篇段-小节结构。

### 段级映射

| 短篇段名 | 对应情节节点功能段 | 说明 |
|---------|----------------|------|
| 开头段 | 开端(引入主角/世界/困境) | 通常 1-2 个小节 |
| 铺垫段 | 发展前期(冲突积累/伏笔布置) | 通常 2-4 个小节 |
| 升级段 | 发展后期(冲突升级/误解加深) | 通常 2-3 个小节 |
| 反转段 | 高潮(核心反转引爆) | 通常 1-2 个小节,情绪峰值 |
| 结尾段 | 结局(收束/情绪落点) | 通常 1-2 个小节 |

### 小节条目模板

```markdown
## 开头段

### 小节 1
- 核心事件:{从情节节点提取该分段的主要情节点}
- 情绪目标:{对应情感曲线节点的情绪词}
- 章首钩子:[待补充]
- 章尾钩子:[待补充]
- 参考字数:{按原文对应段落字数估算}
```

> 钩子字段标 `[待补充]`——无法可靠提取,留给用户或续写时填写。

### 小节数量推算

按原文实际字数估算:`总字数 ÷ 1000 ≈ 小节数`(短篇参考区间 8-15 个小节)。小节数与正文实际段落结构一致是质量清单必检项。

---

## 正文.md 格式规范

将原文迁移为单文件 `正文.md`,格式按 `format-and-structure.md` 规范化:

| 规范项 | 要求 |
|--------|------|
| 小节标记 | `###1.` `###2.` `###3.`(短篇通用格式;用户指定平台时按 `format-and-structure.md` 平台覆盖表切换) |
| 段落划分 | 按戏剧单元/镜头/一件事结束自然断段;不按固定字数强拆;完整推理、氛围、情绪链可保留稍长段,避免通篇同长度或碎成提纲 |
| 段间空行 | 正文相邻段落之间**只允许一个换行符 `\n`**,不得出现空行或 `\n\n` |
| 对话引号 | 默认 `""` 半角双引号;知乎盐言平台可用 `「」` |
| 缩进 | 无缩进,不用全角/半角空格 |
| Markdown | 正文段落中不使用 `**` `*` `#` `---` 等 Markdown 语法(仅小节标记除外) |

**原文内容不改动**,只做格式规范化(分段、引号统一、小节标记添加)。

---

## 对标引用视图(可选)

将 `拆文库/{书名}/` 整体复制为 `{标题}/对标/{书名}/`,供续写阶段的对标上下文加载:

```
{标题}/对标/{书名}/
├── 拆文报告.md
├── 情节节点.md
└── 写作手法.md
```

此视图为可选项。建议默认生成,以便续写时按「对标上下文加载」规则检索。

---

## 质量检查清单

Phase 3-S 迁移完成后执行:

- [ ] `正文.md` 单文件存在且格式符合 `format-and-structure.md`(小节标记、段落划分/主语节奏、段间仅单换行、引号格式)
- [ ] `设定.md` 含核心框架区块 + 对标摘要区块,且核心框架符合本文件模板
- [ ] `小节大纲.md` 节数与正文实际段落结构一致
- [ ] 所有 `[待补充]` 标记已添加(不确定字段不留空)
- [ ] 未误建 `追踪/`、`大纲/`、`正文/` 等长篇专属目录
    story-import | Prompt Minder