PluginBench
Skill
Pass
Audit score 90

story-import

worldwonderer/oh-story-claudecode

Reverse-parse existing novels into standard project structures for seamless continuation with story-long-write or story-short-write.

What is story-import?

story-import converts completed or partial novels into structured writing projects compatible with ongoing writing workflows. It analyzes the source text using existing decomposition pipelines (story-long-analyze or story-short-analyze), then migrates the analysis results into a project structure ready for continuation. Use this when you have an existing novel you want to integrate into a managed writing system.

  • Automatically detects novel length (long-form vs. short-form) and routes to appropriate analysis pipeline
  • Runs complete decomposition analysis (Stage 0-6 for long-form, Stage 2-6 for short-form) to extract structure, characters, plot, and settings
  • Preserves analysis artifacts in `拆文库/` as reusable writing assets, not disposable intermediates
  • Migrates analyzed content into standard project directories compatible with story-long-write or story-short-write
  • Handles both file paths and direct text input; auto-detects chapter boundaries and basic metadata
  • Supports partial/incomplete novels with explicit tracking of final chapter status

How to install story-import

npx skills add https://github.com/worldwonderer/oh-story-claudecode --skill story-import
Prerequisites
  • Source novel file (text, markdown, or direct paste) with clear chapter boundaries
  • Installed story-long-analyze or story-short-analyze skill (called automatically based on detected length)
  • Optional: story-setup for parallel chapter-extractor agent (falls back to serial processing if unavailable)
Claude Code
Cursor
Windsurf
Cline

How to use story-import

  1. 1.Trigger with `/story-import` or natural language like 「导入小说」「反向解析」「把我的书导进来」
  2. 2.Provide the novel source: file path, directory path, or paste text directly
  3. 3.Confirm detected metadata: title, chapter count, word count, length type (long/short), completion status
  4. 4.Confirm whether you want a complete writing project (with structure for continuation) or analysis only
  5. 5.Wait for Phase 2 deep analysis to complete (runs full decomposition pipeline automatically, no interruptions)
  6. 6.Review the generated project structure in `{书名}/` and `拆文库/{书名}/` analysis assets
  7. 7.Begin continuation writing with story-long-write or story-short-write as appropriate

Use cases

Good for
  • Import a completed novel to continue writing sequels or additional chapters
  • Convert a half-finished manuscript into a managed project with full structural analysis
  • Integrate an existing work into a writing system to leverage ongoing writing tools and workflows
  • Analyze an existing novel to extract reusable plot patterns, character arcs, and writing techniques for reference
  • Migrate a novel from plain text into a project structure with linked analysis assets (character relationships, plot timelines, pacing notes)
Who it's for
  • Authors with existing manuscripts who want to continue writing in a managed system
  • Writers integrating multiple works into a unified project structure
  • Content creators analyzing existing novels for writing technique reference
  • Anyone converting unstructured novel text into a queryable, decomposed knowledge base

story-import FAQ

What's the difference between importing for a complete writing project vs. analysis only?

Complete writing project (default): produces both `拆文库/` analysis assets AND a `{书名}/` project structure ready for continuation with story-long-write/story-short-write. Analysis only: runs the decomposition pipeline and stops at `拆文库/`, skipping Phase 3 structure migration. Clarify your intent upfront; story-import will ask if unclear.

Does story-import handle partial/incomplete novels?

Yes. Phase 1 explicitly asks about final chapter status (complete vs. draft/incomplete). If incomplete, story-import records the decision and lets you choose: continue importing based on the partial chapter, or pause to complete it first. The tool does not auto-complete or discard incomplete chapters.

What if my novel doesn't have clear chapter boundaries?

story-import auto-detects common chapter delimiters (「第N章」, chapter numbers, section headers). If detection fails or is ambiguous, it prompts you to clarify the chapter structure before proceeding. You can also provide a pre-split file or directory of chapter files.

Can I import a novel if story-setup hasn't been run yet?

Yes, but with a caveat: Phase 2 long-form analysis will fall back to serial chapter processing (slower) instead of parallel agent mode. story-import warns you upfront and offers two choices: pause to run story-setup first, or continue with slower serial processing. Either way, the final analysis output is complete.

What happens to the original text after import?

The original text is backed up in `拆文库/{书名}/原文/` by the analysis pipeline (story-long-analyze or story-short-analyze). This is a permanent part of the writing project, not a disposable intermediate. The `拆文库/` directory is retained as a reusable asset library for the project.

Full instructions (SKILL.md)

Source of truth, from worldwonderer/oh-story-claudecode.


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:逆向导入已有小说

你是小说项目逆向工程师。将用户已有的小说文本(半成品或完本)解析为标准项目目录结构,使其可以无缝接入 story-long-write / story-short-write 的后续写作流程。导入流程按篇幅分流:长篇走长篇路径,短篇走短篇路径。

核心信念:好的工具从已有素材开始,不从零起步。

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


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 执行并报告 fallback。Claude/OpenCode 兼容面保留 subagent_type

核心原则

原则 1:先分析后迁移

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

原则 2:复用不重复

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


Phase 1:确认导入源

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

1.0 确认意图(写作工程 vs 仅拆文库)

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

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

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

输入方式识别

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

基本信息确认

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

环境检测前置

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

  • 检测 .story-deployed 是否存在;
  • 优先检测 .claude/agents/ 下的 chapter-extractor.md 是否存在;不存在时再检测 .opencode/agents/,再不存在时检测 .codex/agents/(Phase 2 长篇深度分析的并行 agent)。

未部署时,提示用户:

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

给用户两个选择:

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

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

原文备份

原文备份由 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)拆文库/{书名}/

调用契约

<!-- 契约说明:story-import 依赖 story-long-analyze 的「跳过询问」机制 (对应 story-long-analyze「Stage 1 停靠点」的「跳过询问的情形」)。 若 story-long-analyze 后续重构改动了该机制的触发措辞,需同步检查并更新本契约。 -->

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

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

新旧拆文库判定:若 _progress.md 标记 Stage 3+ 已完成,或 拆文报告.md 已含「读者需求 / 情绪引擎」「关键信息与扩写技法总览」「节奏与情绪触动点」「可复现模块」任一 v12 摘要标题,视为 v12 新契约拆文库;此时 剧情/节奏.md剧情/情绪模块.md 是导入必备权威产物,缺失必须先修复/重跑 Stage 3,不得静默降级。只有旧拆文库(pre-v12,无上述信号)才能走 legacy fallback。

因此调用 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

迁移步骤

3.1 创建项目骨架

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

3.2 正文标准化

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

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

3.3 角色文件迁移

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

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

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

# {角色名}

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

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

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

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

3.4 关系文件迁移

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

3.5 世界观设定拆分(识别拆文库的两种形态)

先检测拆文库形态,再决定路径

拆文库形态检测方法处理
已按主题拆分拆文库/{书名}/设定/世界观/ 子目录存在 + 至少含 背景设定.md力量体系.md 之一pass-through:原样同步 设定/世界观/*.md设定/势力/*.md 到项目,无需 re-split
单文件版本拆文库/{书名}/设定/世界观.md 单文件(无子目录)按下方映射表 re-split

单文件版本的拆分映射表(兜底,仍保留)

拆文库内容项目文件拆分规则
力量体系设定/世界观/力量体系.md独立文件
地理设定/世界观/地理.md独立文件(内容充足时)
核心规则设定/世界观/背景设定.md与其他无法独立的内容合并
特殊设定设定/世界观/背景设定.md合并
金手指设定/世界观/金手指.md独立文件
势力/组织设定/势力/{势力名}.md内容 >= 200 字时独立为势力文件,不足则合并到 背景设定.md

内容不足独立成文件时,合并到 背景设定.md

3.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 只反推有证据的蓝图,不为补齐字段编造关系或副线。

3.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 章及用户选定的续写策略

3.8 题材定位生成

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

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

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

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

3.9 对标结构化资产同步

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

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

缺失处理

  • v12 新契约拆文库缺 剧情/节奏.md剧情/情绪模块.md导入停下并给修复动作:提示重跑 /story-long-analyze Stage 3+ 或手动补齐对应文件;导入报告写 module_or_rhythm_required_missing,不得继续生成看似完整的对标视图。
  • pre-v12 旧拆文库缺 剧情/节奏.md / 剧情/情绪模块.md → 允许导入继续,但报告必须标 legacy_deconstruction: truerhythm_missing / module_missing,说明日更只会低置信回退到 拆文报告.md文风.md、匹配章摘要或 剧情/故事线.md
  • 其它结构化子目录缺失 → 按既有导入缺失项提示,不阻塞项目创建

3.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

迁移步骤

3-S.1 正文迁移

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

3-S.2 设定生成

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

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

3-S.3 小节大纲生成

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

3-S.4 对标引用视图(可选)

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


Phase 4:项目激活

4.1 质量检查

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

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

4.2 缺失项提示

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

长篇导入完成报告

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

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

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

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

短篇导入完成报告

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

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

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

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

4.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

语言

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