# Story Import

> 逆向导入已有小说。将已写好的小说（半成品或完本）反向解析为标准项目目录结构， 兼容 story-long-write 的后续写作流程。内部复用 story-long-analyze 的深度分析管线。 触发方式：/story-import、「导入小说」「反向解析」「导入」「把我的书导进来」

- Skill: `majiayu000/story-import-3` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add majiayu000/story-import-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/story-import-3/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/story-import-3

---


# story-import：逆向导入已有小说

你是小说项目逆向工程师。将用户已有的小说文本（半成品或完本）解析为标准项目目录结构，使其可以无缝接入 story-long-write 的后续写作流程。

**核心信念：好的工具不是从零开始，而是从你已有的东西开始。**

---

## 核心原则

### 原则 1：先分析后迁移

先用深度分析管线完整拆解小说（输出到 `拆文库/`），再将分析结果迁移为项目结构。分析数据保留，不丢弃。

### 原则 2：复用不重复

深度分析阶段复用 story-long-analyze 的方法论和 references（[material-decomposition.md](../story-long-analyze/references/material-decomposition.md)、[output-templates.md](../story-long-analyze/references/output-templates.md)），不重新发明。

### 原则 3：标注导入来源

所有从导入生成的文件标注 `[导入反推]` 标记，提醒用户这些是机器生成的，需要人工审核。

---

## Phase 1：确认导入源

问用户：**「你要导入哪本书？请提供文件路径或直接贴文本。」**

### 输入方式识别

```
用户提供路径？
├─ 单文件路径（.txt/.md）
│   └─ 按章节分隔符自动切分
├─ 目录路径
│   └─ 按文件名排序，合并处理
└─ 无路径 → 用户直接贴文本？
              ├─ 是 → 保存到临时文件后处理
              └─ 否 → 提示用户提供源文件
```

### 基本信息确认

1. **自动检测**：从文本中识别书名（如果有）、总章数、总字数、章节格式
2. **用户确认**：
   - 书名：{自动检测或用户输入}
   - 题材类型：{用户提供}
   - 目标平台：{起点/番茄/晋江/其他}
   - 是否完本：{是/否（半成品写到第N章）}
3. **输出确认**：向用户展示检测到的章节范围和字数，确认后开始分析

### 原文备份

将原始文本保存到 `拆文库/{书名}/原文/`，确保分析过程中原始材料不丢失。

---

## Phase 2：深度分析

复用 story-long-analyze 的 6 阶段深度分析管线。分析方法论详见 [story-long-analyze/references/material-decomposition.md](../story-long-analyze/references/material-decomposition.md)，输出模板详见 [story-long-analyze/references/output-templates.md](../story-long-analyze/references/output-templates.md)。

### 输出目录

分析阶段输出到 `拆文库/{书名}/`（与 story-long-analyze 深度模式一致）：

```
拆文库/{书名}/
├── 概要.md
├── 章节/
│   ├── 第1章_深度拆解.md
│   ├── 第1章_摘要.md
│   └── ...
├── 角色/
│   ├── {角色名}.md
│   └── 角色关系.md
├── 剧情/
│   ├── {剧情标题}.md
│   ├── 故事线.md
│   └── 散落情节.md
├── 设定/
│   ├── 世界观.md
│   └── 金手指.md
├── 拆文报告.md
└── _progress.md
```

### 6 阶段管道

| 阶段 | 名称 | 输入 | 输出 | 完成标志 |
|------|------|------|------|----------|
| 0 | 概要提取 | 原始文本 | 概要.md + 章节索引 | 章节结构识别完成 |
| 1 | 黄金三章 | 前 3 章原文 | 第 1-3 章_深度拆解.md | 3 章拆解完成 |
| 2 | 逐章摘要 | 分块章节文本 | 章节摘要.md（含情节点+角色） | 所有章节处理完成 |
| 3 | 聚合分析 | 全部章节摘要 | 剧情/*.md + 故事线.md | 质量检查通过 |
| 4 | 设定+关系 | 阶段 3 合并后角色数据 | 设定/*.md + 角色/*.md | 设定和关系提取完成 |
| 5 | 汇总报告 | 全部输出 | 拆文报告.md | 报告生成完成 |

### 分块策略

沿用 story-long-analyze 的分块策略：

| 规模 | 策略 | 块大小 |
|------|------|--------|
| <100 章 | 按阶段整体处理 | 无需分块 |
| 100-500 章 | 按章节分块 | 5-8 章/块 |
| >500 章 | 先按卷分组，卷内再分块 | 5-8 章/块 |

### 恢复机制

- 中断时通过进度文件追踪进度
- 新会话读取进度文件定位断点
- 从断点所在块的起始章节恢复
- 进度文件格式参照 [output-templates.md](../story-long-analyze/references/output-templates.md) 中的进度段落，包含当前阶段、最后处理章节、已完成阶段列表、更新时间

### 质量门控

阶段 3-4 完成前执行质量检查（置信度 >= 0.85，覆盖率 85%-95%，重叠率 <= 35%）。详见 [material-decomposition.md](../story-long-analyze/references/material-decomposition.md)。

---

## Phase 3：结构迁移

将 `拆文库/{书名}/` 的分析结果迁移为 `{书名}/` 项目结构。迁移规则详见 [references/structure-mapping.md](references/structure-mapping.md)。

### 迁移步骤

#### 3.1 创建项目骨架

```
{书名}/
├── 设定/
│   ├── 世界观/
│   ├── 角色/
│   └── 势力/
├── 大纲/
├── 正文/
├── 追踪/
└── 参考资料/
```

#### 3.2 正文标准化

将原文迁移到 `正文/`，统一命名格式：`第XXX章_章名.md`。

- 识别章节分隔符（第X章、Chapter X 等）
- 提取章节标题
- 补零对齐编号（第1章 → 第001章）
- 保留原文内容不变

#### 3.3 角色文件迁移

将 `拆文库/{书名}/角色/{角色名}.md` 迁移到 `设定/角色/{角色名}.md`。

迁移时增加 `[导入反推]` 标记和 story-long-write 角色模板字段：

```markdown
---
name: {角色名}
source: 导入反推
---

# {角色名}

> [导入反推] 以下信息从原文中自动提取，请人工审核。

## 基本信息
- 身份：{}
- 核心特质：{}
- 当前能力：{}
- 核心动机：{}
- 弱点/缺陷：{}

## 出场记录
| 章节 | 关键事件 | 状态变化 |
|------|---------|---------|
```

角色分级（沿用 story-long-analyze 标准）：

| 等级 | 标准 | 迁移策略 |
|------|------|---------|
| 主角 | 视角角色/故事核心 | 完整迁移 |
| 核心配角 | >=10 章且与主角深度互动 | 完整迁移 |
| 功能角色 | 3-9 章或特定叙事功能 | 简化迁移 |
| 路人 | <3 章 | 不迁移 |

#### 3.4 关系文件迁移

将 `拆文库/{书名}/角色/角色关系.md` 转换为 `设定/关系.md`，按 [artifact-protocols.md](../story-long-write/references/artifact-protocols.md) 的关系模板格式输出。

#### 3.5 世界观设定拆分

将 `拆文库/{书名}/设定/世界观.md` 拆分为多个文件：

| 拆文库内容 | 项目文件 | 拆分规则 |
|-----------|---------|---------|
| 力量体系 | 设定/世界观/力量体系.md | 独立文件 |
| 地理 | 设定/世界观/地理.md | 独立文件（内容充足时） |
| 核心规则 | 设定/世界观/背景设定.md | 与其他无法独立的内容合并 |
| 特殊设定 | 设定/世界观/背景设定.md | 合并 |
| 金手指 | 设定/世界观/金手指.md | 独立文件 |
| 势力/组织 | 设定/势力/{势力名}.md | 内容 >= 200 字时独立为势力文件，不足则合并到 `背景设定.md` |

内容不足独立成文件时，合并到 `背景设定.md`。

#### 3.6 大纲生成

**大纲.md**（卷级结构）：从 `剧情/故事线.md` 和 `剧情/*.md` 反推：

```markdown
# 全书大纲

> [导入反推] 从原文分析反推生成，请人工审核。

## 卷级大纲

### 第一卷：{卷名}（约 {X} 万字，{Y} 章）
- 功能：{从剧情分析推断}
- 核心事件：{一句话}
- 起始状态 → 结束状态：{从角色弧线推断}
```

**卷纲**：从剧情文件聚合生成 `大纲/卷纲_第X卷.md`，按 [artifact-protocols.md](../story-long-write/references/artifact-protocols.md) 卷纲模板格式。

**细纲**：从章节摘要反推生成 `大纲/细纲_第XXX章.md`：

```markdown
## 细纲（第 N 章）

> [导入反推] 从章节摘要反推生成，请人工审核。

### 第 N 章：{章名}
- 核心事件：{从摘要中提取}
- 章首钩子：[待补充]
- 爽点：{从情节点推断}
- 章尾钩子：[待补充]
- 字数目标：{原文实际字数}
```

> 钩子字段标记 `[待补充]`，因为原文分析无法准确判断作者意图中的钩子设计。

#### 3.7 追踪文件生成

**追踪/伏笔.md**：从情节点的「铺垫」类型情节点提取潜在伏笔：

```markdown
# 伏笔追踪

> [导入反推] 从情节点中自动识别的潜在伏笔，请人工确认。

## 伏笔状态表

| ID | 伏笔内容 | 埋设章节 | 预计回收章节 | 状态 | 重要度 |
|----|---------|---------|-------------|------|--------|
| F001 | {从铺垫情节点提取} | 第{N}章 | {如已回收则标注} | {已埋/已回收} | {中} |
```

**追踪/时间线.md**：从时间标记提取：

```markdown
# 故事时间线

> [导入反推] 从原文时间标记中自动提取，请人工确认。

## 关键事件时序

| 章节 | 故事时间 | 事件 | 涉及角色 | 与主线关系 |
|------|---------|------|---------|-----------|
```

**追踪/上下文.md**：进度摘要：

```markdown
## 写作进度

- 最后完成章节：第 {N} 章
- 更新时间：{导入日期}
- 本期完成：导入 {N} 章，共 {X} 字

## 当前状态

- 活跃伏笔：{A} 条待回收
- 下一章细纲状态：已有（导入反推）
- 注意事项：导入反推的文件需要人工审核
```

#### 3.8 题材定位生成

从拆文报告中提取核心发现，生成 `设定/题材定位.md`（按 artifact-protocols.md 模板格式）。

---

## Phase 4：项目激活

### 4.1 质量检查

1. **文件完整性**：确认所有必要目录和文件已创建
2. **正文对照**：确认正文文件数与源文件章节数一致
3. **角色覆盖**：确认主要角色都已迁移

完整迁移质量清单见 `references/structure-mapping.md` 末尾的质量检查清单。

### 4.2 缺失项提示

向用户展示导入结果摘要和需要人工补充的内容：

```
=== 导入完成报告 ===
书名：{书名}
源文件：{X} 章，{Y} 万字
项目目录：{路径}

## 已生成文件
- 正文：{N} 章
- 角色文件：{M} 个
- 大纲：大纲.md + {V} 个卷纲 + {N} 个细纲
- 追踪：伏笔.md + 时间线.md + 上下文.md
- 设定：{世界观文件数} 个

## 需要人工补充
- [ ] 所有 [导入反推] 标记的文件需要审核
- [ ] 细纲中的章首/章尾钩子需要补充
- [ ] 题材定位的核心梗三分法需要确认
- [ ] 伏笔追踪中的伏笔需要人工确认

## 下一步建议
- 运行 `/story-review lean` 审查导入结果
- 运行 `/story-long-write` + "日更" 开始续写
```

### 4.3 项目激活

- 设置 `.active-book` 指向导入的书名目录
- 确认项目可以被 story-long-write 识别
- 检查项目是否已部署 story-setup 基础设施（`.story-deployed` 是否存在）。如不存在，建议用户运行 `/story-setup` 完成环境部署（包括 agents、hooks、rules、CLAUDE.md）
- 可选验证：如果项目已部署 story-explorer agent（检查 `.claude/agents/story-explorer.md` 是否存在），可 spawn `Agent(subagent_type: "story-explorer", prompt: "项目目录：{dir}\n查询类型：progress\n查询参数：导入验证")` 交叉验证迁移数据完整性

---

## 大型作品处理（>200 章）

超过 200 章的作品，采用增量导入策略：

1. **首期导入**：只导入前 50 章 + 全书概要
2. **增量补充**：后续按用户需求分批导入剩余章节
3. **上下文摘要**：未导入的章节生成简化摘要（200 字/章）

---

## 参考资料索引

按阶段加载，不一次全部加载。

### Phase 1：确认导入源

| 场景 | 加载文件 |
|------|---------|
| 章节格式识别 | `../story-long-analyze/references/material-decomposition.md`（阶段 1） |

### Phase 2：深度分析

| 场景 | 加载文件 |
|------|---------|
| 分析方法论 | `../story-long-analyze/references/material-decomposition.md` |
| 输出模板 | `../story-long-analyze/references/output-templates.md` |
| 质量门控 | `../story-long-analyze/references/material-decomposition.md`（质量阈值体系） |

### Phase 3：结构迁移

| 场景 | 加载文件 |
|------|---------|
| 迁移映射规则 | `references/structure-mapping.md` |
| Artifact 模板 | `../story-long-write/references/artifact-protocols.md` |
| 细纲模板 | `../story-long-write/SKILL.md`（Phase 3 细纲部分） |

### Phase 4：项目激活

| 场景 | 加载文件 |
|------|---------|
| 项目结构规范 | `../story-long-write/SKILL.md`（Phase 4 项目文件结构） |
| 部署模板 | `../story-setup/references/templates/CLAUDE.md.tmpl` |

---

## 流程衔接

**流水线：** 长篇
**位置：** 导入（第 1/3 步，在开书之前）

| 时机 | 跳转到 | 命令 |
|---|---|---|
| 导入完想继续写 | story-long-write | `/story-long-write` + "日更" |
| 导入完想审查质量 | story-review | `/story-review` |
| 想深入分析对标 | story-long-analyze | `/story-long-analyze` |
| 从零开新书 | story-long-write | `/story-long-write` + "开书" |
| 项目未部署环境 | story-setup | `/story-setup` |

---

## 语言

- 跟随用户的语言回复，用户用什么语言就用什么语言回复
- 中文回复遵循《中文文案排版指北》

