# 结构迁移映射规则

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

---

## 映射总览

| 拆文库路径 | 项目路径 | 转换方式 |
|-----------|---------|---------|
| `原文/第X章_*.md` | `正文/第XXX章_章名.md` | 标准化命名 |
| `角色/{角色名}.md` | `设定/角色/{角色名}.md` | 增加角色模板字段 |
| `角色/角色关系.md` | `设定/关系.md` | 格式转换 |
| `设定/世界观.md` | `设定/世界观/背景设定.md` 等 | 拆分 |
| `设定/金手指.md` | `设定/世界观/金手指.md` | 直接迁移 |
| `剧情/故事线.md` | `大纲/大纲.md` | 反推卷级结构 |
| `剧情/{标题}.md` | `大纲/卷纲_第X卷.md` | 聚合为卷纲 |
| `章节/第N章_摘要.md` | `大纲/细纲_第N章.md` | 反推细纲 |
| — | `设定/题材定位.md` | 从拆文报告生成 |
| — | `追踪/伏笔.md` | 从情节点提取 |
| — | `追踪/时间线.md` | 从时间标记提取 |
| `剧情/散落情节.md` | `大纲/大纲.md` 附录或对应卷纲 | 合并到相关卷的大纲 |
| — | `追踪/上下文.md` | 生成进度摘要 |

---

## 正文标准化规则

### 命名格式

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

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

### 章节分隔识别

当源为单个大文件时，按以下分隔符切分：

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

### 内容处理

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

---

## 角色文件迁移模板

```markdown
---
name: {角色名}
source: 导入反推
---

# {角色名}

> [导入反推] 以下信息从原文中自动提取，请人工审核。

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

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

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

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

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

---

## 关系文件转换规则

拆文库格式（角色关系.md）→ 项目格式（设定/关系.md）：

```
拆文库格式：
A<->B：关系类型 | 情感 | 状态 | 描述 | 关键互动 | 演变

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

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

---

## 世界观拆分规则

### 拆分决策

| 内容块 | 字数 | 目标文件 |
|--------|------|---------|
| 力量体系 | >= 200 字 | 独立为 `力量体系.md` |
| 地理 | >= 200 字 | 独立为 `地理.md` |
| 金手指 | 任意 | 独立为 `金手指.md` |
| 势力 | >= 200 字 | 独立为 `势力/{势力名}.md`（不足 200 字合并到 `背景设定.md`） |
| 其他内容 | 任意 | 合并到 `背景设定.md` |

### 拆分后文件模板

```markdown
# {设定名}

> [导入反推] 从原文分析中自动提取，请人工审核。

## 来源
拆分自：世界观.md

## 内容
{从拆文库设定文件提取的具体内容}
```

---

## 大纲反推规则

### 大纲.md（卷级结构）

从 `剧情/故事线.md` 和 `剧情/*.md` 反推：

1. 统计每条剧情的章节范围
2. 按章节连续性和叙事功能分组为「卷」
3. 每卷生成卷级条目

**卷划分启发式**：
- 章节连续 + 同一故事线 → 同一卷
- 场景切换（新地图/新阶段）→ 新卷起点
- 大型时间跳跃 → 新卷起点
- 每卷建议 20-40 章

### 卷纲反推

从剧情文件提取每卷的：
- 核心矛盾 → 核心矛盾字段
- 情节点分布 → 情绪弧线 + 爽点节奏
- 角色出场 → 人物弧线
- 铺垫类情节点 → 伏笔

### 细纲反推

从每章摘要提取：

| 摘要字段 | 细纲字段 | 转换方式 |
|---------|---------|---------|
| 关键事件 | 核心事件 | 直接复用 |
| 第一个情节点 | 章首钩子 | 标记 `[待补充]` |
| 最后一个情节点 | 章尾钩子 | 标记 `[待补充]` |
| 爽点类情节点 | 爽点 | 从情节点类型推断 |
| 章节字数 | 字数目标 | 从原文统计 |
| 悬念类情节点 | 悬念 | 从情节点类型推断，标记 `[待补充]` |

---

## 伏笔提取规则

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

### 识别模式

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

### 状态推断

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

---

## 时间线提取规则

### 时间标记识别

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

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

### 排序规则

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

---

## 质量检查清单

Phase 3 迁移完成后执行：

- [ ] 正文文件数 = 源文件章节数
- [ ] 主要角色（主角 + 核心配角）文件已创建
- [ ] 关系.md 非空
- [ ] 大纲.md 有卷级结构
- [ ] 每章细纲已生成
- [ ] 伏笔.md 中有内容（如有铺垫类情节点）
- [ ] 时间线.md 中有内容（如有时间标记）
- [ ] 上下文.md 进度摘要已填写
- [ ] 散落情节已合并到相关卷纲或大纲附录
- [ ] 所有 `[导入反推]` 标记已添加
