# 剧情编辑

> 当用户表示要创建或编辑剧情大纲时触发此技能。 触发短语包括但不限于："创建剧情"、"编辑剧情"、"剧情大纲"、 "写剧情"、"规划剧情"、"剧情安排"、"做剧情"、"剧情"、 "大纲"、"分卷"、"章节规划"、"故事结构"、"情节安排"、 "新建剧情"、"修改剧情"、"完善剧情"、"调整剧情"等。 此技能提供三模式创建（手动/辅助/自动），连载（5阶段）与非连载（4阶段）两套模板， 支持分卷、灵活增减阶段，内置上下文预读取与情节合理性校验体系。

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

---


# 剧情编辑

辅助用户创建和编辑项目剧情大纲。提供**三模式**满足不同深度需求：手动逐阶段交互、AI 辅助推荐、全自动生成。所有模式均从项目已有文件（人物/设定/JSON）中预读取上下文，**不重复询问已有信息**。

## 关联文件

| 文件 | 位置 | 用途 | 读写 |
|------|------|------|------|
| `剧情大纲.md` 或 `剧情大纲-卷X.md` | `大纲/剧情/` | 剧情阶段/分卷大纲（此技能输出文件；不分卷→`剧情大纲.md`；分卷多文件→`剧情大纲-卷1.md`/`剧情大纲-卷2.md`/...） | 读写 |
| `项目信息.json` | `大纲/` | 书名/篇幅/种类/分级 + **分卷信息**（`volumes.*`） | 读写 |
| `写作配置.json` | `大纲/` | 润色模式（读 `大纲.polish_mode` + `分卷` 覆盖项；写 `分卷` 每卷独立配置） | 读写 |
| `主要角色.md` / `次要角色.md` / `龙套角色.md` | `大纲/人物/`（不分卷）或 `大纲/人物/卷{N}/`（分卷多文件） | 人物名称/性格/能力/关系（上下文预读取 + 合理性校验） | 只读 |
| `设定.md` | `大纲/设定/` 或 `outline/settings/` | 世界观/核心设定/故事走向（上下文预读取） | 只读 |
| `checks/index.json` + `checks/c{00-06}-*.md` + `checks/flow.md` | `outline/Plot/checks/` | 情节合理性校验规则库（六维度 + 执行流程，按模式选组读取） | 只读 |
| `plot-wave-spec.json` | `data/` | 叙事质量增强规格（波动模型/四要素/冲突双类型/代价豁免） | 只读 |
| `tags-spec.json` | `data/` | 作品标签体系枚举（tags 字段取值来源） | 只读 |
| `plot-scenario-presets.json` | `data/` | 笼统叙事类型预设（10 类：wave/阶段目标/冲突模式/节奏/陷阱） | 只读 |

文件定位优先级：
1. 读取 `项目信息.json` → `volumes.enabled` + `volumes.multi_file` 判断输出模式
2. 不分卷或单文件模式 → `大纲/剧情/剧情大纲.md`
3. 分卷多文件模式 → `大纲/剧情/剧情大纲-卷1.md` / `大纲/剧情/剧情大纲-卷2.md` / ...
4. English 路径 → `outline/plot/plot-outline.md` 或 `outline/plot/plot-outline-vol{1,2,...}.md`
5. 用户手动指定路径
6. 均不存在 → 新建（按目标模板生成初始骨架）

## 执行模式：计划模式

**调用此技能后，必须首先进入计划模式（EnterPlanMode）。**

1. 使用 `EnterPlanMode` 工具进入计划模式
2. 在计划中列出：上下文预读取范围、模式选择（手动/辅助/自动）、将询问或推荐的内容、输出文件路径
3. 等待用户批准计划后执行
4. 不要在进入计划模式前直接开始询问或写入

## 触发条件

当用户表达以下意图时，立即调用此技能：

- "创建剧情"、"编辑剧情"、"剧情大纲"
- "写剧情"、"规划剧情"、"剧情安排"、"做剧情"
- "大纲"、"分卷"、"章节规划"、"故事结构"、"情节安排"
- "新建剧情"、"修改剧情"、"完善剧情"、"调整剧情"
- "自动生成剧情"、"帮我规划剧情"、"推荐剧情走向"
- 任何表达"创建/编辑剧情大纲/章节规划/剧情生成"的类似表述

---

## 步骤 0：上下文预读取与模式选择

### 0.1 上下文预读取

**无论何种模式，均执行此步骤。** 从项目文件中读取所有已有信息，构建剧情上下文基线。

#### 读取清单

| 读取顺序 | 文件 | 提取内容 | 用途 |
|---------|------|---------|------|
| 1 | `项目信息.json` | 书名、篇幅、种类、传播范围、内容分级、**分卷信息（volumes.*）** | 梗概基础数据、模板选择、**分卷状态判断** |
| 2 | `写作配置.json` | `大纲.polish_mode` + `分卷` 覆盖项 | 润色深度（全局 + 每卷独立） |
| 3 | `主要角色.md` + `次要角色.md` + `龙套角色.md` | 全部角色（跨三类文件读取）：名称、类别、性别、年龄、性格、简介、能力（1-10）、关系 | 确定可出场人物、人物能力边界、关系网络 |
| 4 | `设定.md` | 世界观分类项、核心设定（人物/世界/故事走向）、简介 | 故事背景、已有设定约束 |
| 5 | `剧情大纲.md` 或 `剧情大纲-卷X.md` | 已有剧情内容（如存在） | 编辑模式：读取现有大纲；分卷多文件时按卷读取 |

#### 0.1.5 多文件存储下的本卷优先级读取

**仅当** `volumes.enabled=true` 且 `volumes.multi_file=true` 时执行。

在多文件存储模式下，优先读取当前操作卷的专属内容：

1. **剧情大纲**：优先读取 `大纲/剧情/剧情大纲-卷{N}.md`；如不存在→询问用户"该卷剧情大纲尚未创建，是否基于全局设定新建？"
2. **角色文件**：优先读取 `大纲/人物/卷{N}/` 下的三类角色文件；如卷目录不存在或为空→提示"当前卷无专属角色数据，读取全局角色文件作为参考"，回退到 `大纲/人物/` 下的角色文件
3. **设定文件**：设定文件（`设定.md`）为全局文件，不按卷拆分——但读取后按当前卷的章节范围筛选相关设定项

**读取优先级规则**：
- 剧情数据：本卷文件 → 邻卷文件（跨卷一致性检查用）→ 全局文件（作为后备）
- 角色数据：本卷目录 → 全局目录（作为参考）
- 设定数据：全局文件（不拆分），但按卷筛选相关内容

**无本卷数据时的处理**：
```
⚠️ 当前卷（第{N}卷）尚未创建专属{剧情大纲/角色数据}。

处理方式：
  • 基于全局设定新建 — 使用全局角色和设定作为基础，生成本卷专属内容
  • 引用邻卷数据 — 从已有卷中引用相关数据（如角色信息）
  • 跳过 — 不依赖本卷专属数据，直接基于全局设定操作
```

> 单文件模式（`volumes.multi_file=false`）无需此步骤——所有数据均从全局路径读取。

#### 提取结果汇总

读取完成后，内部生成上下文摘要（不输出给用户，供 LLM 后续决策使用）：

```
[内部] 剧情上下文摘要

📋 项目：{书名} / {种类} / {篇幅} / {分级} / 分卷：{已启用(N卷) / 未启用}
👤 可出场人物（{N}人）：
  - 主要角色（{X}）：{名称} — 性格：{简述} / 能力：{简述} / 关系：{简述}
  - 次要角色（{Y}）：{名称} — 性格：{简述} / 关系：{简述}
  - 龙套角色（{Z}）：{名称} — {简述}
🌍 世界观约束：
  - {分类项1}：{要点}
  - {分类项2}：{要点}
📖 已有剧情：{有/无}（如有：已规划{X}阶段/{Y}卷）
```

**如角色文件或设定文件不存在/为空**：标记对应项为「未设定」，后续不依赖该维度校验，但提示用户先完善可提升剧情质量。

### 0.2 模式选择

上下文预读取完成后，询问用户：

```
🔧 请选择剧情创建模式：

  • 手动创建 — 逐阶段交互式填写，精确控制每个剧情细节
  • 辅助创建 — AI 读取上下文后推荐剧情框架，用户逐项确认/调整
  • 自动创建 — AI 读取上下文后自动生成完整剧情大纲，事后查看调整
```

- **手动模式** → 进入「手动模式工作流程」
- **辅助模式** → 进入「辅助模式工作流程」
- **自动模式** → 进入「自动模式工作流程」

---

## 双模板概览

> **结构定义唯一来源**：模板库 `templates/plot.schema.json`（注册 id：`plot`，见 `templates/index.json`）。下方模板为渲染示例——阶段结构/占比/默认目标/分卷组织/标注约定均以 schema 为准，本技能不自行维护结构定义。

### 连载作品模板（5阶段 + 可选番外）

适用场景：长篇/超长篇、分卷连载、网络连载、系列作品。

```
# {书名} — 剧情大纲

> 最后更新：{日期}

## 梗概

{散文段}

---

##### 第一阶段（前期）：{约XX章，≤全篇20%} {阶段目标}

- **≈X—X章**：
---
{具体剧情要点}

##### 第二阶段（中期）：{约XX章，≤全篇40%} {阶段目标}

...
---

##### 第三阶段（过度）：{约XX章，≤全篇25%} {阶段目标}

...
---

##### 第四阶段（尾声）：{约XX章，≤全篇15%} {阶段目标}

...
---

##### 番外（可选）：
...
```

| 阶段 | 推荐占比 | 核心目标 |
|------|---------|---------|
| 第一阶段（前期） | ≤20% | 铺垫/展开，人物单元回，浅尝辄止 |
| 第二阶段（中期） | ≤40% | 深入展开，大量事件冲突，角色联动 |
| 第三阶段（过度） | ≤25% | 高潮，最重要冲突爆发，聚焦主角 |
| 第四阶段（尾声） | ≤15% | 收束，旅途终点，平静或最终决战 |
| 番外 | 不限 | 可选，独立于主线之外 |

### 非连载作品模板（4阶段）

适用场景：短篇/中篇、单行本、一次性完结作品。

```
# {书名} — 剧情大纲

> 最后更新：{日期}

## 梗概

{散文段}

---

##### 第一阶段（开端）：{约？%，≤全篇10%} {阶段目标}

---
{具体剧情要点}

##### 第二阶段（发展）：{约？%，≤全篇40%} {阶段目标}

---
...

##### 第三阶段（高潮）：{约？%，≤全篇25%} {阶段目标}

---
...

##### 第四阶段（结局）：{约？%，≤全篇15%} {阶段目标}

---
```

| 阶段 | 推荐占比 | 核心目标 |
|------|---------|---------|
| 第一阶段（开端） | ≤10% | 引入世界观与主要人物 |
| 第二阶段（发展） | ≤40% | 展开冲突，深化角色，推进剧情 |
| 第三阶段（高潮） | ≤25% | 矛盾爆发顶点，核心冲突解决 |
| 第四阶段（结局） | ≤15% | 收束所有线索，给出结局 |

## 梗概段格式

梗概是给人看的散文段落。其中：

- **从项目信息.json 直接取用**：书名、篇幅、书籍种类、传播范围
- **从上下文预读取取用**：已有的人物信息、世界观设定
- **询问/生成的仅有**：预计字数、预计章节数、剧情走向

生成示例：

```
## 梗概

《书名》为玄幻题材的长篇连载作品（传播向），预计约30万字、120章。
剧情大致走向：少年从平凡村落走出，在复仇与成长中揭开世界真相，最终对抗天外势力。
```

---

# 手动模式工作流程

手动模式延续原有流程，逐阶段交互式填写。用户精确控制每个剧情细节。

## 手动步骤 1：确定作品类型与结构

根据 `项目信息.json` 中的 `length` 字段直接推荐，询问用户确认：

> 📐 根据项目信息（篇幅：{length}），推荐使用 **{连载/非连载}** 模板。
> （长篇/超长篇 → 连载；随笔/短篇/中篇 → 非连载）
>
> 请确认：• 连载 • 非连载

确认后：

> 🔢 需要几个阶段？（默认 {5/4}，可增减）
> • 连载默认 4正文阶段 + 番外（可选）
> • 非连载默认 4正文阶段
> • 输入数字或"默认"

**连载且篇幅为长篇**，额外询问：

> 📚 是否需要分卷？
> • 是 — 每卷独立复用阶段模板
> • 否 — 全书仅一套阶段

**如用户选择分卷**，继续询问分卷数量与信息：

> 📚 计划分几卷？（如 3 卷；可先说个大概，后续随时增删）

收集卷数后，逐卷收集信息（每卷一次）：

> 📚 **第{N}卷**：
> • 卷名？（如"第一卷：启程"；回车使用"第{N}卷"）
> • 预计章节范围？（如"第1—30章"；可先说大概）
> • 预计字数？（如"约10万字"；可跳过）

**收集完所有卷信息后**，询问文件存储方式：

> 📂 分卷大纲的文件存储方式？
> • 多文件 — 每卷独立输出为 `剧情大纲-卷{N}.md`（推荐，便于分卷管理和后续写作调度）
> • 单文件 — 所有卷写入同一个 `剧情大纲.md`（传统方式）

**存储方式写入**：
- 多文件 → `项目信息.json` 中 `volumes.multi_file = true`
- 单文件 → `项目信息.json` 中 `volumes.multi_file = false`

**每卷写作配置询问**（多文件模式下执行；单文件模式跳过，统一使用全局 `大纲.polish_mode`）：

> ✏️ 各卷的润色程度是否需要独立配置？
> • 是 — 为每卷单独指定润色模式
> • 否 — 全部沿用全局大纲写作配置（当前：「{大纲.polish_mode}」）

如用户选择独立配置，逐卷询问：

> ✏️ **{卷名}** 的润色程度？
> • 继承全局（当前：「{大纲.polish_mode}」）— 推荐
> • 轻度 — 保留用户原话
> • 中度 — 小幅优化用户原话
> • 重度 — 仅保留原意，完全改写

逐卷确认后写入 `写作配置.json` → `分卷.{卷号}`：
```json
"分卷": {
  "1": { "polish_mode": "中度", "mode_description": "...", "last_updated": "{日期}" },
  "2": { "polish_mode": "重度", "mode_description": "...", "last_updated": "{日期}" }
}
```
未单独配置的卷不写入 `分卷` 对象，运行时继承 `大纲.polish_mode`。

**分卷信息写入 项目信息.json**：

所有卷信息收集完毕后，更新 `项目信息.json` 的 `volumes` 字段：

```json
"volumes": {
  "enabled": true,
  "multi_file": true,
  "count": 3,
  "list": [
    {
      "number": 1,
      "name": "第一卷：启程",
      "chapter_range": "1-30",
      "word_count": "约10万字",
      "polish_mode": "继承全局"
    },
    {
      "number": 2,
      "name": "第二卷：暗涌",
      "chapter_range": "31-60",
      "word_count": "约10万字",
      "polish_mode": "重度"
    }
  ]
}
```

并更新 `last_updated` 为当天日期。

## 手动步骤 2：填写梗概

直接从 `项目信息.json` 取用书名/篇幅/种类/传播范围。仅询问剧情专属数据：

1. **预计字数**：
   > 📏 预期总字数？（如"30万字"，可先说个大概）

2. **章节规划**：
   > 📖 预期总章节数？（如"120章"，可先说个大概）

3. **剧情走向**（一句话）：
   > 🎯 请用一句话概括剧情大致走向。
   > （如：少年的复仇与成长之路，最终揭开世界真相）

收集完成后，拼合项目信息中的已有数据，生成散文式梗概段写入 `剧情大纲.md`。

## 手动步骤 3：逐阶段填写剧情

按阶段顺序逐一引导，每次处理一个阶段。

### 阶段编辑模板

对每个阶段：

> 📝 **第N阶段（{阶段名}）** — 推荐 ≤{X}%
>
> 1. 该阶段的**目标**？（可输入自定义，或回车使用默认）
>    {默认阶段目标描述}

> 2. 预计占用多少章？（如"第1—20章"或"约20章"）

> 3. 有哪些**关键剧情点**？（逐条输入，输入"完成"结束）

每阶段完成后即时写入文件。

### 连载作品默认阶段目标（定义见 `templates/plot.schema.json` → `templates.serial.stages`）

| 阶段 | 默认目标 |
|------|---------|
| 第一阶段（前期） | 铺垫与展开。设计主要人物的个人单元回，基本展开人物角色，浅尝辄止，不过多泄露主线 |
| 第二阶段（中期） | 深入展开。大量事件与冲突爆发，主要角色单元回再次展开，角色联动，核心冲突酝酿 |
| 第三阶段（过度） | 高潮。最重要冲突爆发，聚焦主角与重要角色，其他角色退为龙套，向安稳结尾过渡 |
| 第四阶段（尾声） | 收束。故事终点，一切在此结束，平静或最终决战后落下帷幕 |

### 非连载作品默认阶段目标（定义见 `templates/plot.schema.json` → `templates.nonserial.stages`）

| 阶段 | 默认目标 |
|------|---------|
| 第一阶段（开端） | 引入世界观与主要人物，抛出核心矛盾 |
| 第二阶段（发展） | 展开冲突，深化角色塑造，推进主线剧情 |
| 第三阶段（高潮） | 矛盾爆发顶点，核心冲突集中解决 |
| 第四阶段（结局） | 收束所有线索，给出最终结局 |

### 分卷处理

若用户选择分卷，每卷以 `## 第N卷：{卷名}` 为二级标题，阶段在该卷下排列。

**单文件模式**（`volumes.multi_file = false`）：
- 所有卷写入同一 `剧情大纲.md`
- 每卷以 `## 第N卷：{卷名}` 为二级标题分隔

**多文件模式**（`volumes.multi_file = true`）：
- 每卷独立文件 `大纲/剧情/剧情大纲-卷{N}.md`
- 文件顶部保留 `# {书名} — 剧情大纲（卷{N}：{卷名}）` 标题
- 每卷文件独立包含梗概段（卷级梗概）+ 阶段内容
- 写入顺序：卷1 → 卷2 → ... → 卷N

**多文件模式下的卷文件结构**：

```
# {书名} — 剧情大纲（卷{N}：{卷名}）

> 最后更新：{日期}
> 所属：{书名} / 第{N}卷 / 共{N}卷

## 本卷梗概

{该卷的散文段梗概}

---

##### 第一阶段（{阶段名}）：{约XX章，≤全篇X%} {阶段目标}

{具体剧情要点}

##### 第二阶段...
...
```

**多文件模式写前确认**：
每卷内容编辑完成后即时写入对应文件。写完一卷问：

> ✅ 第{N}卷「{卷名}」已写入 `剧情大纲-卷{N}.md`。
> 是否继续编辑下一卷？（继续 / 先看看 / 调整本卷）

**卷信息与项目信息同步**：
每完成一卷的编辑，同步更新 `项目信息.json` 中 `volumes.list` 对应的卷信息和 `last_updated`。

## 手动步骤 4：合规校验基线设定

> 🛡️ 剧情合规校验严格度？
> • 宽松 — 仅大方向严重偏离时提醒
> • 标准（推荐）— 阶段级别偏离时提醒，额外情节询问处理
> • 严格 — 章节级别偏离即提醒，任何额外情节都需确认

选择后以注释写入 `剧情大纲.md` 末尾：`<!-- compliance_mode: {宽松/标准/严格} -->`

## 手动步骤 4.5：NSFW 章节色色值规划（条件触发）

**仅当** `项目信息.json` 中 `content_rating` 为 `NSFW` 时执行。

> 🔞 本书为 NSFW 向作品。是否需要在大纲中规划色色值分布？
> 如需要，请描述各章节区的色色值挡位（N1-N5）。

- 如用户提供数据 → 写入 `项目信息.json` 的 `nsfw_tier_range.chapters`
- 写入后在 `剧情大纲.md` 阶段标题旁标注色色值范围

## 手动步骤 4.8：Write-Router 调度 Core 写作规范加工（写入前必经步骤）

**一切供人阅读的剧情大纲文本，写入文件前必须经过 Write-Router（轻量模式）→ Core（基础写作辅助）加工。**

在步骤 2（梗概）和步骤 3（逐阶段剧情点）产出文本后、写入 `剧情大纲.md` 前，将以下文本字段逐一传入 Write-Router（轻量模式）：

**加工范围**：

| 字段 | content_type | field_name |
|------|-------------|-----------|
| 梗概段 | 大纲文本 | `梗概` |
| 阶段目标 | 大纲文本 | `阶段目标` |
| 剧情要点 | 大纲文本 | `剧情要点` |

**执行方式**：

1. 读取 `写作配置.json` → 取 `大纲.polish_mode`（或分卷覆盖项）
2. 逐字段组装数据包传入 Write-Router（轻量模式）：
   ```
   {
     "mode": "creation_phase",
     "text": "{剧情文本内容}",
     "context": {
       "source_skill": "剧情编辑",
       "content_type": "大纲文本",
       "field_name": "{梗概/阶段目标/剧情要点}"
     },
     "polish_mode": "{有效润色模式}",
     "polish_config": { "{写作配置 JSON}" }
   }
   ```
3. Write-Router 通过轻量模式调度 Core 加工后返回 `{ "processed_text": "{加工后文本}", "changes_summary": "{调整摘要}" }`
4. 使用返回的 `processed_text` 替代原文本，继续写入流程

**所有模式均须执行此步骤**：手动/辅助/自动模式在写入剧情文本前，均须将文本经 Write-Router → Core 加工。自动模式不豁免。

**硬约束**：不经 Write-Router → Core 加工直接将剧情文本写入文件 = 流程违规。

---

## 手动步骤 5：数据合规 + 合理性校验

所有剧情点填写完成后，按 `checks/index.json` 执行完整校验（六维度规则见 `checks/` 库，执行流程见 `checks/flow.md`）。

**模式处理**：维度〇 模糊/无匹配逐条询问用户确认；维度一~五 逐条列出违规 + 建议修正 → 用户逐项确认；维度六 四要素缺失列为违规项、波动建议单独标注（软引导不拦截）。

**剧情点四要素（维度六）**：每个剧情点检查 冲突/代价/变化/悬念（冲突标注类型：有伏笔/无伏笔，每阶段至少 1 个有伏笔冲突）——规则数据见 `data/plot-wave-spec.json`。

## 手动步骤 6：保存并确认

### 单文件/不分卷输出：

> ✅ 剧情大纲已生成！
>
> 📋 「{书名}」剧情总览：
>   • 类型：{连载/非连载}  • 总字数：约{字数}  • 总章节：{N}章
>   • 阶段：{N}个  • 分卷：{N}卷 / 不分卷
>   • 合规模式：{宽松/标准/严格}
>
> 📝 阶段概览：
>   {逐阶段简述}
>
> 还需要调整哪个阶段？或要完善其他大纲内容？

### 多文件分卷输出：

> ✅ 分卷剧情大纲已全部生成！
>
> 📋 「{书名}」剧情总览：
>   • 类型：{连载/非连载}  • 总字数：约{字数}  • 总章节：{N}章
>   • 阶段：{N}个  • 分卷：{N}卷（多文件）
>   • 合规模式：{宽松/标准/严格}
>
> 📂 输出文件：
>   • `大纲/剧情/剧情大纲-卷1.md` — {卷1名}（{章节范围}，润色：{模式}）
>   • `大纲/剧情/剧情大纲-卷2.md` — {卷2名}（{章节范围}，润色：{模式}）
>   • ...
>
> 📝 各卷阶段概览：
>   {逐卷简述}
>
> 还需要调整哪卷的哪个阶段？或要完善其他大纲内容？

---

# 辅助模式工作流程

辅助模式下，LLM 基于上下文预读取的结果**主动推荐**剧情框架和内容，用户逐项确认、修改或跳过。适合有大致方向但需要 AI 帮忙补齐细节的用户。

## 辅助步骤 1：展示上下文摘要并确认方向

将步骤 0 预读取的上下文摘要展示给用户：

```
📋 剧情上下文摘要

📖 项目：「{书名}」— {种类}/{篇幅}/{传播范围}

👤 可出场人物（{N}人）：
  • 主要：{名称}（{性格简述}）{名称}（{性格简述}）……
  • 次要：{名称}（{性格简述}）……
  • 龙套：{N}人（详见龙套角色文件）

🌍 世界观：{核心设定中的世界概括}
📌 已有故事走向：{设定.md 或 项目信息中的走向描述，如有}

🔗 人物关系网络：
  {简述主要关系}
```

然后询问：

> 🎯 以上为当前项目的上下文摘要。请确认或补充：
>   • 剧情大致走向？（一句话即可，也可说"你推荐"）
>   • 有没有特别想写/不想写的情节方向？
>   • 有没有必须出场/不能出场的角色？

- 用户可只回答部分问题，其余由 LLM 推荐
- 如用户说"你推荐"/"你定" → LLM 基于上下文自动选择

## 辅助步骤 2：模板选择与结构推荐

基于篇幅长度自动推荐模板（无需询问用户确认，但展示推荐理由）：

```
📐 根据篇幅（{length}），推荐使用 **{连载/非连载}** 模板。

推荐章节结构：
  • 第一阶段（{阶段名}）：{章节范围}（{占比}%）
  • 第二阶段（{阶段名}）：{章节范围}（{占比}%）
  • 第三阶段（{阶段名}）：{章节范围}（{占比}%）
  • 第四阶段（{阶段名}）：{章节范围}（{占比}%）
  {连载额外加番外}

确认使用此结构？（确认 / 调整 / 我自己定）
```

如推荐连载模板且篇幅为长篇，自动推荐分卷并询问：

```
📚 篇幅较长（{length}），建议分卷管理。推荐分 {N} 卷。
  • 接受 — 按推荐分卷（每卷约{章节数}章），使用多文件存储（`剧情大纲-卷X.md`）
  • 调整 — 自定义卷数和分卷方式
  • 不分卷 — 全书使用单一阶段模板
```

如用户接受推荐分卷，按以下默认策略执行：
- 多文件模式默认启用（`volumes.multi_file = true`）
- 每卷润色默认继承全局 `大纲.polish_mode`
- 逐卷推荐剧情点时，按卷组织输出

## 辅助步骤 3：推荐剧情走向

LLM 基于人物性格、关系网络、世界观，生成 **2-3 个剧情走向方案**供用户选择：

**叙事类型预设套用**：先读取 `项目信息.json` → `tags`（四维标签），综合判断最接近的笼统叙事类型（枚举与阶段目标参考见 `data/plot-scenario-presets.json` → `presets`，标签不硬映射、由 LLM 判断）——方案生成时参考该预设的 `wave` 张力序列与 `stage_goals` 阶段目标组织走向，并规避 `traps` 常见陷阱（软引导，不拦截）。

```
🎯 基于当前上下文，推荐以下剧情走向：

方案 A：{标题}
  {一段简述（2-3句）}
  核心冲突：{一句话}
  主角弧光：{从XX到XX的变化}

方案 B：{标题}
  {一段简述（2-3句）}
  核心冲突：{一句话}
  主角弧光：{从XX到XX的变化}

方案 C（可选）：{标题}
  {一段简述（2-3句）}
  核心冲突：{一句话}
  主角弧光：{从XX到XX的变化}

请选择（A/B/C），或输入自定义走向。
```

**方案生成约束**：
- 必须与人物性格一致（内向角色不应有"振臂一呼万人响应"的领袖弧光）
- 必须与世界观兼容（修仙世界不应有纯科技解决方案）
- 必须与篇幅匹配（短篇不宜有"七大篇章层层递进"的复杂走向）
- 至少有一个方案保留用户已表达的故事走向（如有）

## 辅助步骤 4：逐阶段推荐剧情点

用户确认走向后，按阶段逐一推荐具体剧情点。

**不分卷/单文件模式**：直接逐阶段推荐。

**多文件分卷模式**：先按卷、再按阶段推荐——每卷完成后再进入下一卷。

```
📚 **第{N}卷：{卷名}**（{章节范围}）

{逐阶段推荐内容，格式同下方}
```

**阶段推荐格式**（所有模式通用）：

```
📝 **第N阶段（{阶段名}）** — {章节范围}（{占比}%）

推荐阶段目标：{一句话目标}

推荐出场人物：
  • 主要推动：{角色}（{在做什么}）
  • 参与/辅助：{角色}（{在做什么}）
  • 本阶段线索/伏笔：{简述}

推荐剧情要点：
  1. {剧情点描述}
  2. {剧情点描述}
  3. {剧情点描述}
  ...

请确认：
  • 全部采用 — 保留所有推荐剧情点
  • 部分修改 — 告诉我调整哪些
  • 跳过此阶段 — 本阶段先空着
  • 重新推荐 — 换个方向
```

**多文件写入**：每卷完成推荐后，立即写入对应 `剧情大纲-卷{N}.md`，再进入下一卷。

## 辅助步骤 5：数据合规 + 合理性校验

所有阶段推荐完成后，按 `checks/index.json` 执行完整校验（六维度规则见 `checks/` 库）。

**模式处理**：维度〇 模糊/无匹配逐条询问用户（辅助模式不豁免）；维度一~五 自动修正可明确判断的违规 → 复杂问题询问用户 → 展示修正报告；维度六 四要素缺失自动补全建议、波动建议展示。

**推荐约束（波动模型）**：推荐剧情走向按 `data/plot-wave-spec.json` 波动模型（张力序列/波峰/低谷伏笔）；每个推荐剧情点强制携带四要素（冲突/代价/变化/悬念）。

## 辅助步骤 6：保存并输出完整大纲

同手动步骤 6 的输出格式，额外标注"辅助模式生成"。

**多文件模式额外输出**：
```
📂 输出文件（辅助模式生成）：
  • 大纲/剧情/剧情大纲-卷1.md
  • 大纲/剧情/剧情大纲-卷2.md
  ...
📋 分卷信息已同步至 项目信息.json → volumes
```

---

# 自动模式工作流程

自动模式下，LLM 基于上下文预读取结果**全自动生成**完整剧情大纲。不询问用户任何问题，完成后一次性输出供用户查看调整。

## 自动步骤 1：自动决策所有参数

LLM 基于上下文自动决定以下所有参数：

| 决策项 | 自动策略 |
|--------|---------|
| 模板类型 | 长篇→连载；其他→非连载 |
| 阶段数 | 连载 4+番外；非连载 4 |
| 分卷 | 长篇且用户设定中有多篇章暗示→分2-3卷；否则不分 |
| 分卷文件模式 | 分卷时默认启用多文件存储（`volumes.multi_file = true`） |
| 每卷润色模式 | 默认全部继承全局 `大纲.polish_mode`，不创建分卷覆盖项 |
| 总字数 | 根据篇幅默认：随笔 3-5万、短篇 10-20万、中篇 30-60万、长篇 80-120万 |
| 总章节 | 根据字数÷每章约2500字估算 |
| 剧情走向 | 基于人物性格+世界观+已有设定中的故事走向自动生成 |
| 各阶段剧情点 | 每阶段自动生成 3-6 个关键剧情点 |

## 自动步骤 2：生成梗概

基于自动决策的参数和上下文预读取的人物/世界观信息，生成散文式梗概段。

- **不分卷/单文件**：全书梗概写入 `剧情大纲.md`
- **多文件分卷**：先写全书总体梗概（可写入 `项目信息.json` 的备注字段或仅在输出中展示），再为每卷生成卷级梗概写入对应 `剧情大纲-卷{N}.md`

## 自动步骤 3：逐阶段自动生成剧情

**叙事类型预设套用**：读取 `项目信息.json` → `tags`，综合判断最接近的笼统叙事类型（`data/plot-scenario-presets.json` → `presets`）——按预设 `wave` 张力序列组织阶段节奏、`stage_goals` 填充阶段目标、`conflict_pattern` 组织冲突（有伏笔/无伏笔分配）、规避 `traps`（软引导）。

**不分卷/单文件模式**：按模板顺序，为每个阶段自动生成剧情点。

**多文件分卷模式**：按卷→阶段的顺序，每完成一卷即写入 `剧情大纲-卷{N}.md`。

每个阶段自动生成：

- **阶段目标**：使用默认目标 + 结合具体人物/世界观定制化
- **章节范围**：按默认占比自动分配
- **出场人物**：根据剧情需要自动分配（已有人物优先，如有必要可建议新增人物）
- **关键剧情点**：每阶段 3-6 个，确保：
  - 符合人物性格和能力
  - 符合世界观规则
  - 阶段之间有因果递进关系
  - 前后剧情点不矛盾

**分卷信息同步**：剧情生成完毕后，将分卷信息写入 `项目信息.json` → `volumes`。

## 自动步骤 4：数据合规 + 自动合理性校验与修正

按 `checks/index.json` 执行完整校验（六维度规则见 `checks/` 库）。

**模式处理**：维度〇 模糊/无匹配**仍须拦截询问用户**（自动模式不豁免）；维度一~五 全自动修正所有违规 → 输出中标注修正项 → 用户事后查看；维度六 四要素缺失自动补全、波动建议写入输出。

**生成约束（波动模型）**：自动生成剧情按 `data/plot-wave-spec.json` 波动模型组织阶段张力（相邻差/波峰/低谷伏笔软引导）；每个剧情点强制携带四要素（冲突/代价/变化/悬念）。

仅在遇到以下无法自动决策的情况时，标注在输出中供用户后续处理：
- 两个合规修正方案互斥且无明显优劣
- 修正会导致人物核心设定冲突

## 自动步骤 5：输出完整大纲

**不分卷/单文件输出**：

```
✅ 剧情大纲已自动生成！

📋 「{书名}」剧情总览：
  • 类型：{连载/非连载}  • 总字数：约{字数}  • 总章节：{N}章
  • 阶段：{N}个  • 分卷：{N}卷/不分卷
  • 合规模式：标准（自动设定）

📝 剧情梗概：
  {散文梗概全文}

📖 阶段概览：
  {每个阶段：章节范围 / 核心目标 / 关键剧情点列表}

🛡️ 合理性校验：全部通过（{N} 项自动修正已应用）

💡 自动生成内容建议查看调整：
  • 修改剧情走向 — 说"编辑剧情"
  • 调整阶段内容 — 说"修改第N阶段"
  • 查看完整大纲 — 说"查看剧情大纲"
```

**多文件分卷输出**：

```
✅ 分卷剧情大纲已自动生成！

📋 「{书名}」剧情总览：
  • 类型：{连载/非连载}  • 总字数：约{总字数}  • 总章节：{N}章
  • 阶段：{N}个/卷  • 分卷：{N}卷（多文件存储）  • 合规模式：标准（自动设定）

📂 输出文件：
  • 大纲/剧情/剧情大纲-卷1.md — {卷1名}（{章节范围}，{字数}）
  • 大纲/剧情/剧情大纲-卷2.md — {卷2名}（{章节范围}，{字数}）
  ...

📋 分卷信息已同步至 项目信息.json → volumes
📋 写作配置：所有卷继承全局「{大纲.polish_mode}」（可随时独立调整）

💡 自动生成内容建议查看调整：
  • 修改剧情走向 — 说"编辑剧情"
  • 调整某卷内容 — 说"修改第N卷第M阶段"
  • 调整某卷润色模式 — 说"设定编辑"
  • 查看完整大纲 — 说"查看剧情大纲"
```

---

# 情节合理性校验体系（校验库）

此校验体系对**所有模式**生效，在剧情大纲生成/修改后自动执行。规则外置为 `checks/` 规则库（六维度 + 执行流程，与 Core norms / NSFW techniques 同构）：

| 维度 | 文件 | 内容 |
|------|------|------|
| 〇 数据源匹配 | `checks/c00-source.md` | 人物名/设定项/能力值/关系与已有文件精确匹配（强制最先执行，所有模式不豁免） |
| 一 知识边界 | `checks/c01-knowledge.md` | 信息来源可追溯/秘密边界/时空在场约束 |
| 二 专业能力边界 | `checks/c02-ability.md` | 职业-知识匹配/技能等级约束/跨领域排斥 |
| 三 人物行为一致性 | `checks/c03-behavior.md` | 性格-行为匹配/关系-互动匹配 |
| 四 世界观一致性 | `checks/c04-world.md` | 设定合规/设定缺口检测 |
| 五 叙事逻辑 | `checks/c05-narrative.md` | 因果链完整/伏笔与回收/过度巧合 |
| 六 叙事质量（增强） | `checks/c06-quality.md` | 波动软引导/四要素强制/冲突双类型/悬念密度/代价豁免 |
| 执行流程 | `checks/flow.md` | 全量/增量校验、违规处理（按模式）、合规校验规则、模板灵活调整规则、卷间一致性检查 |

**加载策略**：首次调度完整读取 `checks/index.json` 一次，按模式（手动/辅助/自动）选组读取命中维度文件；之后按工作记忆执行不重复读取。

**增强要点（V1.0）**：
- 波动模型（`data/plot-wave-spec.json`）：张力 L1-L5 / 相邻差 ≥1 / 至少 2 波峰 / 波峰含代价 / 低谷埋伏笔——**软引导**（不满足不拦截，仅输出波动建议，防止硬约束逼迫 LLM 复用素材）
- 剧情点四要素（强制）：冲突（标注有伏笔/无伏笔类型）/ 代价 / 变化 / 悬念
- 冲突双类型：每阶段至少 1 个有伏笔冲突（强制）；无伏笔冲突不得连续 ≥3 阶段主导（软引导）
- 代价豁免：默认强制代价，用户明确声明"爽文/无代价"才豁免（记录于项目信息或写作偏好库）

---

## 校验执行流程（见 checks/flow.md）

全量/增量校验流程、违规处理（按模式）、合规校验规则（偏离判定/额外情节/跨阶段提醒）、模板灵活调整规则与卷间一致性检查已外置 `checks/flow.md`——执行校验时按 flow.md 流程操作。

---

## 注意事项

- **上下文预读取是必经步骤**：所有模式在进入前必须读取角色文件（三类）和设定文件，即使这些文件为空
- **Write-Router → Core 加工为写入前必经步骤**：梗概/阶段目标/剧情要点等供人阅读的文本，写入前必须经过 Write-Router（轻量模式）调度 Core 按大纲文本规范加工——不经此链路直接写入 = 流程违规。所有模式（手动/辅助/自动）均须执行，自动模式不豁免
- **分卷信息优先读取**：预读取时检查 `项目信息.json` → `volumes.enabled`，如已启用分卷则按已有卷结构加载，不重新询问分卷
- **多文件模式文件管理**：分卷多文件模式下，`剧情大纲-卷X.md` 各自独立；修改某一卷不自动触发其他卷的更新，由卷间一致性检查提醒用户
- **手动模式**：每次只问一个问题，保持友好引导语气；用户随时可跳转到任意阶段编辑
- **辅助模式**：推荐内容必须基于已有上下文（人物性格/能力/关系/世界观）生成，禁止脱离上下文凭空推荐
- **自动模式**：生成质量高度依赖上下文文件的完整度；如角色文件和设定文件均为空，提示用户"无上下文数据，自动生成的剧情可能不够贴合"
- **写作配置读取优先级**：多文件模式下，先查 `写作配置.json` → `分卷.{卷号}`，无覆盖项则回退到 `大纲.polish_mode`
- **项目信息同步**：分卷信息（`volumes.*`）和分卷润色覆盖（`写作配置.json` → `分卷`）在每次分卷操作后同步更新
- **数据源匹配（维度〇）**：所有模式强制最先执行；模糊匹配必须询问用户，无匹配绝不放行；自动模式不豁免
- **合理性校验**（维度一~六）：所有模式均执行；维度六叙事质量为增强维度（波动软引导不拦截 + 四要素强制）；校验失败不阻塞输出但必须标注；越严格的故事越需要逐项检查；多文件模式额外增加卷间一致性检查（见 `checks/flow.md`）
- **知识边界铁律**：一个角色不能知晓自己不在场的事件、不能具备设定之外的技能——这是最常被忽略的剧情漏洞，校验时必须优先检查
- 书名/篇幅/种类/传播范围一律从 `项目信息.json` 取用，不重复询问
- 无 `项目信息.json` 时，先询问书名和基本类型再继续（此时辅助和自动模式降级为询问必要信息后手动执行）
- 用户输入内容后按写作配置加工（轻度/中度/重度），多文件分卷模式优先使用该卷独立配置，展示确认后调度 `成品输出校验`（`type: "structured_md"`, `md_category: "大纲"`；如涉及 JSON 文件则单独传 JSON 数据包）→ 校验后落盘。禁止自行 Write
- 路径特殊字符自动处理
- NSFW 相关内容检测：如 `content_rating` 为 NSFW，在阶段标题旁标注色色值范围，并在梗概中模糊提及但不展开描写

