# S2 节点

> 来源：section-3-workflow.full.md，自动分节

## 阶段 2：目录规划 + 细节规划

**参考** ：`templates.md` 架构 + 参考 Mermaid 图

### S2 目录规划规则

#### 目录级别与限制
| 级别 | 适用范围 | 章节数量限制 |
|------|----------|----------|
| **一级目录（章）** | 全书章节 | 不限，按书稿规模 |
| **二级目录（节）** | 章内分节 | 建议每章 2~5 节 |
| **三级目录（小节）** | 节内细分 | 建议不超过 3 级 |

#### Chapter Brief 格式规范
每章的 Chapter Brief 须包含：
```markdown
## [章序号] {章标题}

**核心论点**：{这章要证明/探讨什么}
**叙事逻辑**：{开篇→展开→收尾的逻辑结构}
**关键内容**：
- {要点1：具体场景/数据/故事}
- {要点2}
- {要点3}
**原料关联**：{对应哪些原料文件/来源}
**预计字数**：{N}字
**写作风格**：{本章特有风格说明，如需要}
```

---

### S2 目录规划完成标志
- 全书章节目录确定（章标题、顺序、层级）
- 每章 Chapter Brief 完成
- `chapter-status.md` 台账初始化
- `.fbs/project-config.json` 写入 `s2Confirmed=true`

### S2 目录输出模板
```markdown
# {书名} 目录规划

**版本**：S2 定稿 · {日期}
**总章数**：{N}章
**预计总字数**：约 {M} 万字
**写作路径**：{A/B/C}

## 目录结构

### 第一章 {章标题}
{Chapter Brief}

### 第二章 {章标题}
{Chapter Brief}

...

## 台账初始化声明
chapter-status.md 已初始化，{N}章，状态均为"待写"
```

---

### S2 阶段联网查证规则（P0 强制，v1.9.0）

> **来源**：部分项目在 S2 目录规划时发现某些章节原料严重不足，但未在 S2 阶段记录，导致 S3 写稿时才临时查找，影响连贯性

**S2 阶段联网查证要求**：
```
S2 目录规划完成后，对每章检查原料匹配度：
1. 若某章没有对应原料，标注"待查找"
2. 通过 search-ledger.jsonl 检查对应章节的联网记录
3. S2 阶段联网查证记录需写入 search-ledger.jsonl，字段包含：
   - chapterId：对应章节编号
   - depthLevel：查找深度（shallow/normal/deep）
   - stage：s2
```

**S2 阶段原料充分性预警**：
| 预警级别 | 触发条件 | 处置 |
|---------|---------|----------|
| **P0 缺口** | 超过 30% 章节无原料 | 暂停 S2 定稿，等待用户补充原料后再继续 |
| **P1 缺口** | 10%~30% 章节原料不足 | 告知用户，等待确认是否接受缺口写作 |
| **P2 缺口** | 少量章节（<10%）无原料 | 备注到对应 Chapter Brief，S3 阶段再处理 |

---

### S2 输出工件清单

| 工件 | 路径 | 说明 |
|------|------|------|
| `[S2] 目录规划.md` | 书稿根目录 | 全书目录 + Chapter Brief |
| `chapter-status.md` | `.fbs/` | 台账初始化 |
| `project-config.json` | `.fbs/` | `s2Confirmed=true` |
| `[S2] 原料缺口报告.md`（可选） | `.fbs/` | 若存在 P0/P1 原料缺口 |

---

### S2 → S2.5 过渡规则

S2 目录定稿后，**必须进入 S2.5 节点确认**，不得直接跳入 S3：
```
S2 完成 → S2.5 节点确认：
  - 书稿仰角确认
  - 读者画像确认
  - 原料充分性评估
  - 写作风格定位
  - 获得用户确认 → 方可进入 S3
```

**跳过 S2.5 的条件**（需明确用户同意）：
- 用户主动声明"跳过节点确认"
- C 路径短篇手册（3000字以下），可合并 S2+S2.5
- 紧急写作模式（用户声明时效紧迫）

---
