# Story Long Write

> 长篇网文写作。从大纲到正文，辅助长篇网络小说的创作，包括世界观、人物、情节线管理。触发方式：/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。

- **Type:** Skill
- **Install:** `agentstack add skill-worldwonderer-oh-story-claudecode-story-long-write`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [worldwonderer](https://agentstack.voostack.com/s/worldwonderer)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [worldwonderer](https://github.com/worldwonderer)
- **Source:** https://github.com/worldwonderer/oh-story-claudecode/tree/main/skills/story-long-write

## Install

```sh
agentstack add skill-worldwonderer-oh-story-claudecode-story-long-write
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# story-long-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. **从验证过的模式出发**。先问"什么被验证过有效，我如何重新交付"，少从"我想写什么"直接起步。扫榜找方向，拆文找模块，对标找节奏。
3. **用模块组装，不要重新发明**。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块，把对标书的具体角色看成功能位（对手/盟友/催化剂），再映射到你的角色。用你自己的素材填充这些功能位。
4. **只加载必需信息**。写每章时只加载"不知道就会写错"的信息。涉及角色的状态、待回收的伏笔、相关设定。其余留在文件系统里。

| 题材 | 核心情绪 | 重点参考 |
|------|---------|---------|
| 打脸/逆袭 | 爽感释放 | genre-writing-formulas.md |
| 身份反转 | 震撼+痛快 | reversal-toolkit.md |
| 感情拉扯 | 意难平 | emotional-methods.md |
| 悬疑/惊悚 | 紧张+好奇 | hooks-suspense.md |
| 日常装逼 | 期待感 | hooks-chapter.md |

> **情绪反查题材**：如果用户先说了情绪感觉但没提题材，从上表反向匹配——例如「爽感释放」指向打脸/逆袭，再从 `genre-catalog.md` 找该题材下的细分方向。

---

## 写作流程

根据用户意图和项目状态选择场景：

| 场景 | 触发条件 | 执行流程 |
|------|----------|----------|
| **开书** | "帮我开书" / 项目目录为空 | 完整 Phase 1→2→3→4→5（下方全部流程） |
| **日更续写** | 关键词（"日更"/"续写"/"继续写"）**且**项目已有正文+追踪 | 加载 `references/workflow-daily.md` |
| **大修** | "修改第X章" / "回炉" / "重写第X章" | 加载 `references/workflow-revision.md` |

> **开新卷**：如果新卷引入新角色/势力/设定，先回 Phase 2 增量补充，再进 Phase 3 补充新卷细纲，最后 Phase 4 写作。如果纯延续，直接回 Phase 3。

**匹配优先级**：同时命中多行时，按 日更续写 → 大修 → 开书 的顺序匹配。日更续写的 AND 条件（项目已有正文+追踪）不满足时，提示用户"项目还没有正文，建议先开书"。

**日更续写保持在 workflow 内**：一旦本次请求路由到 `references/workflow-daily.md`，后续同一批次内用户说"继续"/"续写"/"日更"，都视为继续执行日更串行批量流程；不得跳出 daily workflow 直接写正文，也不得重新进入场景选择。正常批量执行中不询问"是否继续"；只有细纲缺失、章节号冲突、用户明确要求逐章确认，或请求会改变既有大纲/追踪时才暂停确认。

无法判断场景时，列出上述场景表让用户选择，不要开放式提问。

### Phase 1：确认选题方向

**先查选题决策**：如果项目根存在 `选题决策.md`（story-long-scan Phase 4 产出，开书前搬入），读取它——取排在最前（可行性最高）的推荐选题作为开书起点，向用户确认：「扫榜建议写 X（能爆的原因 Y，差异化 Z），按这个开书？」并看 `扫榜日期`：距今较久则提示"市场数据可能过期，建议复扫"。用户认可 → 带该选题的题材/卖点/差异化进入 Phase 2。
缺失时先问一句：「有扫榜生成的 `选题决策.md` 吗？放到项目根或粘贴路径；没有就直接答下面的问题。」仍无 → 走下面的常规提问。

如果用户已有方向 → 直接进入 Phase 2。

如果用户没有方向：

问用户：**「你想让读者什么感觉？有没有喜欢的书想对标？你的优势是什么（脑洞好/文笔好/节奏感好/生活经验丰富）？」**

#### 对标上下文加载

> **拆文库/对标关系**：`拆文库/` = analyze skill 的原始产出，是数据源。`对标/` = 写作项目的引用视图，存放与本项目相关的对标数据子集。首次引用对标书时，从 `拆文库/{书名}/` 复制相关子目录（章节/角色/剧情/设定）、`剧情/节奏.md`、`剧情/情绪模块.md`、`文风.md` 和 `拆文报告.md` 到 `对标/{书名}/`。
>
> **对标书路径查找**：优先 `{项目}/对标/{书名}/`，不存在则回退 `拆文库/{书名}/`。下文所有对标数据加载均使用此规则。

如果用户提到对标书或工作目录下已存在 `对标/` 目录：

1. 检查对标书的 `拆文报告.md` 是否存在（按对标书路径查找）
2. 如存在，先读 `剧情/情绪模块.md` 的读者需求 / 情绪引擎与可复现模块，再读 `剧情/节奏.md` 的关键信息推进、情绪触动点和爆发节奏；缺失时回退读取 `拆文报告.md` 的对应摘要（开篇钩子、爽点密度、节奏模式、可借鉴套路）
3. 如均不存在，提示用户：「对标书原文已放入 `对标/{书名}/原文/`。要先用 `/story-long-analyze` 拆解吗？拆完黄金三章会先给你预览，确认后可继续全量拆解，拆完后 `拆文报告.md` 会自动存入 `拆文库/{书名}/`，写作时会自动按 `对标/ → 拆文库/` 顺序读取。」
4. 如果结构化子目录（角色/剧情/设定）存在，写作时自动召回相关模块

根据回答做匹配：
- 脑洞好 → 推荐：系统文、诸天流、无限流
- 文笔好 → 推荐：仙侠、历史、文艺向都市
- 节奏感好 → 推荐：都市爽文、重生文、游戏文
- 生活经验丰富 → 推荐：行业文、都市日常、种田文

#### Agent 调用：story-architect

story-architect 属于高层级结构设计 agent。轻量题材定位优先由主会话完成；只有涉及复杂世界观、多线结构、强反转工程或用户明确要求时，才调用 story-architect。确认选题方向后，如果项目已部署 story-architect agent（检查 `.claude/agents/story-architect.md` 是否存在），可 spawn `Agent(subagent_type: "story-architect", prompt: "项目目录：{dir}\n任务类型：题材定位\n查询参数：{用户选择的方向+对标信息}")` 辅助题材分析和核心梗设计。如 agent 不可用，由主线程直接执行。

---

### Phase 2：核心设定

从 Phase 1 确定的目标情绪出发，在题材框架中找到对应的剧情模式，从对标书提取可复用模块（把具体角色看成功能位），用用户自己的角色和设定填充。

帮用户确立以下核心要素：

```
## 核心设定表

### 基本信息
- 书名：{暂定名}
- 题材/类型：{主类型 + 副类型}
- 目标平台：{起点/番茄/晋江/其他}
- 预计字数：{X} 万字
- 目标读者：{画像}

### 一句话梗概
{主角 + 目标 + 阻碍 + 反转，一句话概括全书}

### 主角设定
- 姓名：{}
- 年龄：{}
- 核心特质：{2-3 个关键词}
- 金手指/核心能力：{}
- 弱点/缺陷：{让角色更立体的地方}
- 核心动机：{他为什么要做这件事}

### 世界观骨架
- 时代/背景：{}
- 核心设定：{区别于同类作品的独特设定}
- 力量体系：{如果有，简单概括}
- 社会结构：{影响故事的关键设定}

### 核心冲突
- 主线矛盾：{}
- 终极 Boss/终极阻碍：{}
```

完成核心设定后，创建以下 artifact（加载 [references/artifact-protocols.md](references/artifact-protocols.md) 中对应模板）：
- **设定/关系.md**：角色关系映射（参考 character-relations.md「四种关系类型」）
- **设定/题材定位.md**：题材核心梗三分法+对标分析（参考 genre-core-mechanics.md「核心梗解析」）。对标分析表保留 2-3 行摘要，详细数据见 `对标/` 目录

> **多对标书时**：参 `references/cross-book-recall.md`，副对标 anchor 入「对标分析」表附录

#### Agent 调用：story-architect + character-designer

核心设定阶段，如果项目已部署对应 agent（优先检查 `.claude/agents/` 下的 `story-architect.md` 和 `character-designer.md` 是否存在；不存在时再检查 `.opencode/agents/`，再不存在时检查 `.codex/agents/`），可 spawn 以下 agent 辅助：
- `Agent(subagent_type: "story-architect", prompt: "项目目录：{dir}\n任务类型：核心设定\n查询参数：世界观构建+核心冲突设计")` — 辅助世界观和核心冲突设计
- `Agent(subagent_type: "character-designer", prompt: "项目目录：{dir}\n任务类型：角色设定\n查询参数：{主角设定信息}")` — 辅助角色设定和语言风格档案

如 agent 不可用，由主线程直接执行。

---

### Phase 3：大纲搭建

#### 卷级大纲（全书结构）

```
## 卷级大纲

### 第一卷：{卷名}（约 {X} 万字，{Y} 章）
- 功能：{铺垫/起步/第一个大爽点}
- 核心事件：{一句话}
- 起始状态 → 结束状态：{主角从 {A} 变成 {B}}

### 第二卷：{卷名}
...

### 最终卷：{卷名}
- 功能：{高潮 + 收尾}
- 核心事件：{一句话}
```

> **多对标书时**：参 `references/cross-book-recall.md`，副对标 `章节/*_摘要.md` + `剧情/*.md` 召回卷级节奏

> **对标节奏回流（有主对标书时，卷纲定稿前做一次）**：读主对标 `对标/{书}/剧情/节奏.md`（缺失时回退 `章节/*_摘要.md` + `拆文报告.md`），按 references/outline-structure-theory.md「对标节奏迁移」把对标的一级结构关键点（1/4·中点·3/4）换素材排进本卷卷纲「对标结构坐标」。无对标书则按八节点占比自排。

#### 细纲（全书每章）

⚠️ **大纲五检（每卷/每章设计前必答）**：① 本卷交付什么情绪？什么剧情模式能可靠交付？② 本卷核心冲突是什么？③ 卷节奏（起承转合）哪段加速哪段减速？④ 本卷需要新埋设的伏笔有哪些？上一卷待回收的伏笔如何处理？⑤ 章节定位分布是否有高低层次（不是全程高压）、低压+过场是否克制（合计不超约 15%）？有对标书时，1/4·中点·3/4 是否各锚定一个关键情节（见 references/outline-structure-theory.md「章节定位与张弛 / 对标节奏迁移」）？

**每章必须有一个细纲文件**（`大纲/细纲_第XXX章.md`），不允许跳章。

默认分批建纲：先建前 10 章细纲进入 Phase 4 写作；每写完 5 章再滚动补齐后 5-10 章。不要在单次对话里强行产出 30 章完整细纲。
如果全书章数较少（≤30 章），可以在 Phase 3 一次全部建完。

```
## 细纲（第 N 章）

### 第 N 章：{章名}
- 核心事件：{一句话；保留旧字段，方便日更/导入兼容}
- 字数目标：{X} 字
- 目标情绪：{本章交付什么情绪}
- 章节定位：{高压/推进/修炼试错/关系回收/低压生活/信息整理；可留空，留空按推进章。见 references/outline-structure-theory.md「章节定位与张弛」}
- 章首钩子：{从章首7式中选择} — {具体内容；低压/过场章可写“弱钩子/仅情绪钩子，功能是…”}
- 爽点：{本章爽点；低压/修炼/过场章可写“无显性爽点，功能是…”，但仍须给读者一个往下看的理由}

#### 内容概括（五段式）
- 起因：{本章事件为什么发生}
- 发展：{冲突如何推进}
- 转折：{信息/关系/局势哪里改变}
- 高潮：{本章情绪或动作峰值}
- 结尾：{收束到什么状态}

#### 情节安排（多线）
- 主线推进：{本章对主目标的推进}
- 辅线推进：{可写“无”，不能凭空制造}
- 事件线 / 任务线：{外部事件链}
- 感情线 / 关系线：{无显性感情线时写“无显性，但关系变化为…”}
- 逻辑线：原因 → 行动 → 结果 → 后果/新问题

#### 人物关系和出场顺序
- 出场顺序：{角色/势力/关键物件按实际出现顺序列出}
- 人物关系变化：{本章前 → 本章后}
- 视角/信息差：{谁知道什么；读者知道什么；主角误判什么}

#### 情节细化
- 情节点序列：按字数预算编排，不按数量反推。每个情节点标 密/疏 并给字数预算——密（爽点/打脸/反转/情绪高潮，展开）≥250 字、慢镜头爽点 400-600；疏（过场/赶路/信息交代，带过）≈40 字；铺垫/日常取中约 120-150 字。各点预算求和 Σ 落在 [章目标, 章目标×1.1]：低于章目标则增展开点（爽点拆细 beat、关键节点补具体事例），高于上限则压过场/合并疏点——不靠注水、也不靠无限堆砌爽点凑长。点数随 Σ 落定（通常 10 个以上；目标  **多对标书时**：参 `references/cross-book-recall.md`，副对标同基调 `章节/*_摘要.md` 作细纲钩子

**章节标题规则**：只做轻量去重；发现同名或明显重复标题时，按本章核心事件改名，并保持细纲标题与正文文件名一致。

**细纲后设定补全（每批细纲建完后执行）**：扫描本批细纲新出现的具名角色/势力/关键设定，对**会复用**的（按卷纲/细纲判断：后续多次出场或承担剧情功能）自动建档，不等用户确认：
- 角色 → 建 `设定/角色/{名}.md`（填空模板见 character-basics.md 主角卡/配角卡），并在 `追踪/角色状态.md` 登记初始状态（该文件若未建则一并创建）；
- 势力/组织 → 建 `设定/势力/{名}.md`（名称、定位、核心目标、关键人物、与主角关系）；
- 影响多章的世界观规则 → 建/补 `设定/世界观/{主题}.md`（规则、适用范围）。

已存在的设定文件按细纲新信息**增量补充、不覆盖**，同一角色不重复登记 `追踪/角色状态.md`。一次性路人、后文无戏份的配角不建档。建档只填细纲已确定的信息，未定字段留占位符，不提前杜撰。

大纲完成后，创建以下 artifact（加载 [references/artifact-protocols.md](references/artifact-protocols.md) 中对应模板）：
- **大纲/大纲.md**：全书卷级鸟瞰（卷名+字数+章数+核心事件+状态变化，一段式汇总）
- **大纲/卷纲_第X卷.md**：每卷的爽点节奏+情绪弧线（含章节定位）+人物弧线+伏笔+反转+对标结构坐标（参考 outline-methods.md「大纲三层结构法」 + outline-structure-theory.md「章节定位与张弛 / 对标节奏迁移」 + emotional-arc-design.md「六种弧线速查」 + reversal-toolkit.md「反转类型」）
- **追踪/伏笔.md** + **追踪/时间线.md** + **追踪/角色状态.md**：伏笔状态表+故事时间线+角色状态快照（参考 plot-core-methods.md「连续性追踪」、state-tracking.md「角色状态快照格式」）

前 3 章细纲额外加载 [references/opening-design.md](references/opening-design.md)（黄金三章法则+六大标准）。

#### Agent 调用：story-architect

大纲搭建阶段优先由主会话产出卷纲+首批细纲；只有结构复杂、反转链多或主会话方案不稳定时，才调用 story-architect agent。若项目已部署 story-architect agent（检查 `.claude/agents/story-architect.md` 是否存在），可 spawn `Agent(subagent_type: "story-architect", prompt: "项目目录：{dir}\n任务类型：大纲搭建\n查询参数：卷级结构+细纲+钩子/反转/情绪弧线设计\n章节定位契约（破每章像短篇）：每章按它在一级结构里的位置标定位{高压/推进/修炼试错/关系回收/低压生活/信息整理；可留空=推进}——只有高压/推进章配齐钩子+爽点+悬念，低压/关系/修炼/信息整理章允许无显性爽点、弱钩子或仅情绪钩子，但每章都要留一个往下看的理由（微好奇/阶段目标/暧昧期待），相邻章别情绪趋同；卷纲情绪弧线表加章节定位列、细纲加章节定位字段，留空即按推进章不阻塞。\n细纲字数预算契约（必须遵守）：情节点序列按字数预算编排，每点标 密/疏 并给字数预算——密（爽点/打脸/反转/情绪高潮）≥250、慢镜头爽点 400-600；疏（过场/赶路/信息交代）≈40；铺垫/日常约 120-150；各点求和 Σ 落在 [章目标, 章目标×1.1]，末尾写一行『预算合计：X字（目标Y，范围Y-Z）』；每点写清『谁做了什么 + 功能标签』")` 辅助大纲排布、钩子/反转/情绪弧线设计。如 agent 不可用，由主线程直接执行。**接收 story-architect 产出的细纲后必须校验**：每个情节点带 密/疏+字数预算、且有『预算合计』Σ 落在 [章目标, 章目标×1.1]；缺预算或 Σ 越界则要求补齐/重出，不得带着无预算细纲进入正文写作（部署的 story-architect 模板暂未内置预算规则，靠本 prompt 注入 + 此处校验兜住）。

---

### Phase 4：正文写作辅助

#### 项目文件结构

长篇写作必须用文件系统管理，不要把内容堆在对话里。在用户指定的工作目录下创建：

```
{书名}/
├── 设定/
│   ├── 世界观/
│   │   ├── 背景设定.md        # 时代背景、地理、历史
│   │   ├── 力量体系.md        # 修炼/能力/等级体系
│   │   └── ...
│   ├── 角色/
│   │   ├── 沈栀.md            # 每个人物一个文件，文件名用角色名
│   │   └── ...
│   ├── 势力/
│   │   ├── 天机阁.md          # 每个势力/组织一个文件
│   │   └── ...
│   ├── 关系.md                # 角色关系映射
│   └── 题材定位.md            # 题材核心梗+对标分析
├── 大纲/
│   ├── 大纲.md                # 全书卷级结构
│   ├── 卷纲_第一卷.md         # 每卷一个：对标结构坐标+爽点节奏+情绪弧线(含章节定位)+人物弧线+伏笔+反转
│   └── 细纲_第001章.md        # 每章一个：章节定位+事件+钩子(按章节定位,章首/章尾/段落级)+爽点+悬念
├── 正文/
│   ├── 第001章_章名.md
│   └── ...
├── 对标/                          ← 拆文产出的结构化资产
│   └── {对标书名}/
│       ├── 原文/
│       │   ├── 第001章_章名.md
│       │   └── ...
│       ├── 角色/                  ← 从拆文库/结构化输出同步
│       │   └── {角色名}.md
│       ├── 剧情/                  ← 从拆文库/结构化输出同步
│       │   ├── {剧情线名}.md
│       │   ├── 故事线.md
│       │   ├── 节奏.md             # 关键信息推进 + 情绪触动点 + 爆发节奏（权威节奏索引）
│       │   └── 情绪模块.md         # 读者需求/情绪引擎 + 可复现模块（权威模块索引）
│       ├── 设定/                  ← 从拆文库/结构化输出同步
│       │   ├── 世界观/             ← 按主题拆分到子目录（早期单文件版本由 story-import 兜底转换）
│       │   │   ├── 背景设定.md
│       │   │   ├── 力量体系.md
│       │   │   ├── 地理.md
│       │   │   └── 金手指.md       ← 金手指现在放在 世界观/ 下，不再扁平
│       │   └── 势力/
│       │       └── {势力名}.md
│       └── 拆文报告.md
├── 追踪/                          ← 角色状态、伏笔、时间线
│   ├── 伏笔.md                    ← 跨卷追踪
│   ├── 时间线.md                  ← 全书时间线
│   ├── 角色状态.md                ← 角色当前状态快照
│   └── 上下文.md                  ← 正文级（日更进度摘要）
├── 参考资料/
│   └── {topic}.md             # story-researcher 输出的研究资料
```

**产物映射表**（创建模板详见 [references/artifact-protocols.md](references/artifact-protocols.md)）：

| 文件 | 粒度 | 创建阶段 | 读取时机 |
|------|------|---------|---------|
| 设定/关系.md | 全书 | Phase 2 | 按需：story-explorer relationship 查询、story-review 查设定（不在每章写作回路里逐章读） |
| 设定/题材定位.md（含 `主对标书` 字段，多对标时必填） | 全书 | Phase 2 | Phase 3 大纲、每卷开始前、Phase 4 文风召回 |
| 设定/角色/{角色名}.md、设定/势力/{名}.md | 角色/势力 | Phase 3 细纲后增量补全（首批含主角/主要角色） | Phase 4 状态筛选/写作 |
| 设定/文风.md（自定义文风·优先级最高） | 本书 | 用户自写（Claude Code 可代写）；导入/拆解不覆盖 | Phase 4 每章写作前：含实质内容则取代对标文风作权威风格基 |
| 对标/{书名}/文风.md | 对标书 | analyze Stage 6 输出 → story-import 同步 | Phase 4 每章写作前（文风召回；有自定义文风时降为参考/句长兜底） |
| 大纲/卷纲_第X卷.md | 卷 | Phase 3 | Phase 4 写卷首章前 |
| 追踪/伏笔.md | 全书 | Phase 3 起 | Phase 4 每章写作前 |
| 追踪/时间线.md | 全书 | Phase 3 起 | Phase 4 每章写作前 |
| 对标/{书名}/拆文报告.md | 对标书 | 用户手动+analyze | Phase 2 核心设定、Phase 3 大纲、Phase 4 写作 |
| 追踪/上下文.md | 全书 | Phase 4 首次日更（workflow-daily 自动创建） | 每次日更开始时 |
| 参考资料/{topic}.md | 按需 | Phase 4（story-researcher 输出） | Phase 4 后续章节写作时复用 |
| 追踪/角色状态.md | 全书 | Phase 3 | Phase 4 每章写作前（状态筛选步骤） |
| 对标/{书名}/角色/{角色名}.md | 对标书 | analyze 输出 | Phase 4 模块召回（角色参考） |
| 对标/{书名}/剧情/{剧情线名}.md | 对标书 | analyze 输出 | Phase 4 模块召回（剧情模块参考） |
| 对标/{书名}/剧情/情绪模块.md | 对标书 | analyze Stage 3 输出 → story-import 同步 | Phase 2 核心设定、Phase 3 大纲、Phase 4 每章写作前（读者需求 / 情绪引擎、可复现模块选择） |
| 对标/{书名}/剧情/节奏.md | 对标书 | analyze Stage 3 输出 → story-import 同步 | Phase 3 大纲、Phase 4 每章写作前（关键信息推进、情绪触动点、爆发节奏参考） |
| 对标/{书名}/设定/*.md | 对标书 | analyze 输出 | Phase 2 设定参考、Phase 4 世界观约束 |

**缺失文件回退**：区分新旧契约，不把 v12 主产物缺失静默降级：
1. **角色状态文件缺失** → 从角色设定文件和前文推断当前状态。
2. **对标结构化子目录缺失** → 按「对标书路径查找」规则回退（对标子目录 → 拆文库同名子目录 → 对标拆文报告.md → 跳过）。
3. **`剧情/情绪模块.md` / `剧情/节奏.md` 缺失**：若对标书是 v12 新契约拆文库（`拆文报告.md` 已含读者需求/关键信息/节奏/可复现模块摘要，或导入报告未标 `legacy_deconstruction: true`），写前准备必须停下并提示重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`，不得假装已召回权威模块。
4. **legacy 拆文库缺 `剧情/情绪模块.md`** → 写作继续；读者需求 / 情绪引擎与可复现模块依次回退到 `拆文报告.md` 对应摘要、`文风.md` 可借鉴技巧、匹配 `章节/第K章_摘要.md`。记录 `legacy_deconstruction: true` + `module_missing`。
5. **legacy 拆文库缺 `剧情/节奏.md`** → 写作继续；关键信息推进、情绪触动点和爆发节奏依次回退到 `拆文报告.md` 节奏摘要、匹配章摘要、`剧情/故事线.md`。记录 `legacy_deconstruction: true` + `rhythm_missing`。
6. **有对标书但 `文风.md` 缺失** → 若有 `设定/文风.md`（含实质内容）走自定义文风模式继续；否则日更文风召回 fail-fast，提示先运行 `/story-long-analyze` Stage 6 并 `/story-import` 同步。**完全无对标项目**则跳过文风召回、不阻塞（有 `设定/文风.md` 时用它写作）。情绪/节奏轴（`missing_primary_contract`）独立，自定义文风模式不豁免其 fail-fast。
7. **伏笔/时间线文件缺失** → 不检查，相关信息在卷纲或大纲中体现即可。

**对标分析权威优先级（canonical read order）**：
1. `剧情/情绪模块.md` 是读者需求 / 情绪引擎、爽文套路框架、可复现模块和重组指南的权威来源。
2. `剧情/节奏.md` 是关键信息推进、章节扩写技法聚合、情绪触动点和爆发节奏的权威来源。
3. `文风.md` 只管句长、标点、对话潜台词、原文锚点等风格；它不能覆盖情绪模块或节奏意图。**自定义文风 `设定/文风.md`（用户自写、不被导入/拆解覆盖）优先级高于对标 `文风.md`**：含实质内容时作权威风格基，对标文风降为参考与句长数值兜底；命中硬安全线的写法（`……` / 破折号 / 段间空行 / 碎句）仍按 narrative-writer 归一，自定义只接管句长 / 软标点 / 潜台词 / 情绪交替。
4. `章节/第K章_摘要.md` 是具体章节证据，用来校验和补足权威索引，不反向覆盖 `情绪模块.md` / `节奏.md`。
5. `拆文报告.md`、`剧情/故事线.md` 是投影/摘要；若与 `剧情/情绪模块.md` 或 `剧情/节奏.md` 冲突，写作以两个权威文件为准，并在写前准备 `gaps.conflict` 记录冲突来源。

**文件组织原则：**
- **人物一个一个文件**：`角色/角色名.md`，方便按需读取
- **势力一个一个文件**：`势力/势力名.md`，组织/门派/家族/国家等
- **世界观按主题拆分**：背景、力量体系、社会结构等各自独立
- **细纲一章一个文件**：`细纲_第XXX章.md`，含钩子设计，与正文一一对应
- **正文按章拆分**：每章一个文件，`第XXX章_章名.md`
- 每章写完直接写入 `正文/` 目录，不要先输出到对话

#### 单章写作流程

当用户准备写某一章时：

1. **检查细纲**：读取 `大纲/细纲_第{N}章.md`。如果不存在，**必须先补建细纲再写正文**，不允许跳过细纲直接写作。补建时参考卷纲中本章对应的事件规划和上下文，并按新版“章节蓝图”模板补齐内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定；旧版细纲缺这些字段不阻塞读取，但本轮若要回填，未知项写 `[待补充]`。
2. **读取上下文**（按需加载，缺失则跳过。可选快捷路径：如果项目已部署 story-explorer agent（优先检查 `.claude/agents/story-explorer.md` 是否存在；不存在时再检查 `.opencode/agents/`，再不存在时检查 `.codex/agents/`），可 spawn `Agent(subagent_type: "story-explorer", prompt: "项目目录：{dir}\n查询类型：context_load\n查询参数：准备写第 {N} 章")` 一次获取上下文）：
   - (1) `正文/第{N-1}章_*.md` — 上一章正文
   - (2) `大纲/细纲_第{N}章.md` — 本章细纲（含钩子设计）
   - (3) `追踪/伏笔.md`（如存在）— 待回收伏笔
   - (4) `设定/角色/{相关角色}.md`、`设定/势力/{相关势力}.md`（如存在）— 本章涉及的角色与势力（按细纲出场筛选）
   - (5) 对标书路径下 `拆文报告.md`（按对标书路径查找）— 对标参考
   - (6) `对标/{对标书名}/原文/第{N}章_*.md`（如存在）— 同位置章节参考
   - (7) `参考资料/{topic}.md`（如存在）— 历史研究资料（由 story-researcher 产出）
   - (8) `追踪/角色状态.md`（如存在）— 角色当前状态快照
   - (9) 对标书路径下 `剧情/故事线.md`（按对标书路径查找）— 剧情线索引，用于确定本章涉及哪些剧情线
   - (10) 对标书路径下 `剧情/{相关剧情线}.md`（按对标书路径查找）— 从索引中选择与本章相关的剧情线文件
   - (11) 对标书路径下 `设定/世界观/*.md`（glob，按对标书路径查找）— 从拆文产出的设定中获取参考。**回退顺序**：① glob `设定/世界观/*.md`；② 若 `设定/世界观/` 子目录不存在则读单文件 `设定/世界观.md`（早期拆文库格式）；③ 若也无则读 `设定/金手指.md` 当作最低限度参考；④ 都没有则跳过本步骤（缺失不阻塞）
   - (12) 对标书路径下 `剧情/情绪模块.md`（按对标书路径查找）— 读者需求 / 情绪引擎、爽文套路框架、可复现模块；缺失按上方「缺失文件回退」规则（v12 停下修复，仅 legacy 回退）
   - (13) 对标书路径下 `剧情/节奏.md`（按对标书路径查找）— 关键信息推进、情绪触动点、爆发节奏；缺失按上方「缺失文件回退」规则（v12 停下修复，仅 legacy 回退）
3. **写前准备**（下面的 3 步是核心方法在单章写作中的落地：筛选状态 → 召回模块 → 确认意图）：
   - 3.1 **状态筛选**：从 `追踪/角色状态.md` 中筛选本章涉及角色的当前状态，从 `追踪/伏笔.md` 中筛选本章需要回收/推进的伏笔。输出本节速记（参考 state-tracking.md）。如果角色状态文件不存在，从角色设定和前文推断
   - 3.2 **模块召回与文风召回**：
     - ① 本章目标情绪词？② 借鉴哪个参考文件的哪个技法？③ 用在哪些段落？答不出 → 先回读参考再动笔
     - (a) **情绪模块召回**：按「对标书路径查找」规则优先读 `{对标书路径}/剧情/情绪模块.md`，选出 1 个与本章目标情绪最贴近的 `selected_emotion_module`（读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒）。v12 新契约缺失时停下提示重跑拆文/导入；仅 legacy 拆文库可依次回退 `拆文报告.md` 读者需求 / 情绪引擎摘要、`文风.md` 可借鉴技巧、匹配章摘要，并记录 `legacy_deconstruction: true` + `module_missing`
     - (b) **节奏召回**：优先读 `{对标书路径}/剧情/节奏.md`，选出 1 条 `rhythm_reference`（关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却）。v12 新契约缺失时停下提示重跑拆文/导入；仅 legacy 拆文库可依次回退 `拆文报告.md` 节奏摘要、匹配章摘要、`剧情/故事线.md`，并记录 `legacy_deconstruction: true` + `rhythm_missing`
     - (c) **文风召回**：先直接读 `设定/文风.md`（不经 explorer）：含实质内容（去空白 ≥200 字，或含 句长 / 标点 / 对话 / 锚点 / 笔调 小节且小节内有可执行约束：比例 / 例句 / 禁止或偏好描述）则置 `custom_style=true`、进入「自定义文风模式」，它作权威风格基（句长 / 软标点 / 潜台词 / 情绪交替），对标 / 拆文 `文风.md` 降为参考（锚点 + 句长兜底）；空 / 仅空白 / 仅标题 / 占位 stub（待办 / 待补充 / ___）视为不存在。否则按「对标书路径查找」规则读 `{对标书路径}/文风.md`（路径优先 `{项目}/对标/{书名}/`，回退 `拆文库/{书名}/`）；多本对标书时从 `设定/题材定位.md` 读 `主对标书` 字段。**未进入自定义文风模式且**文风文件不存在 → **fail-fast 报错**：「对标书 X 缺少 文风.md。请用 `/story-long-analyze` 跑 Stage 6 生成文风，再 `/story-import` 同步。」不 inline 生成（自定义文风模式则不 fail-fast；情绪 / 节奏轴 `missing_primary_contract` 仍独立阻塞）
     - (d) **匹配章节挑选**：从 `{对标书路径}/章节/*_摘要.md` grep `基调：(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)`（全角冒号），按本章目标情绪挑章 K——多章同基调时选择规则：先看爽点类型是否接近，再看情节点数量/原文章节估算字数是否接近本章目标字数，最后取章节号最小者；必读 `{对标书路径}/章节/第K章_摘要.md`，若同章存在 `第K章_深度

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [worldwonderer](https://github.com/worldwonderer)
- **Source:** [worldwonderer/oh-story-claudecode](https://github.com/worldwonderer/oh-story-claudecode)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** yes
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-worldwonderer-oh-story-claudecode-story-long-write
- Seller: https://agentstack.voostack.com/s/worldwonderer
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
