con un clic
novel-chapter
// 核心章节写作循环。9 步管线:outline → user_confirm → memory_load → write → self_check → fix_loop → memory_update → checkpoint → user_review。当用户说"写第 X 章"、"写下一章"、"继续写"、"接着写"、"重写第 X 章"、"write chapter N" 时触发。两阶段温度策略:写作时高温,自检和修复时低温。
// 核心章节写作循环。9 步管线:outline → user_confirm → memory_load → write → self_check → fix_loop → memory_update → checkpoint → user_review。当用户说"写第 X 章"、"写下一章"、"继续写"、"接着写"、"重写第 X 章"、"write chapter N" 时触发。两阶段温度策略:写作时高温,自检和修复时低温。
引导用户填充 story.md 的核心创意要素(一句话简介、核心矛盾、30 章承诺、市场定位、文风方向)。当用户说"讨论世界观"、"开始 brainstorm"、"想剧情"、"聊一下这个故事"、"我想写小说但还没想清楚怎么写"、"continue brainstorming the story" 时触发。此 skill 不创建世界观/角色/章节,仅在概念层做收敛。
管理小说角色资产 —— 角色卡、关系图谱、家族 / 阵营树、动态角色状态(卷级职责 / 缺席风险 / 候选新角色)。当用户说"加角色"、"加主角"、"加反派"、"创建一个角色"、"角色关系"、"建家族树"、"add character" 时触发。每个角色一个 markdown 文件,frontmatter 维护双向关系。
用于初始化一个新的小说项目。当用户说"我想写小说"、"开始写小说"、"新建小说项目"、"创建一本新小说"、"start a new novel" 时触发。会引导用户完成基本信息确认后,搭建标准的 vault 目录结构(story.md / characters / worldbuilding / plot / chapters / style / .memory),并可选地 git init。
管理长篇小说的长期记忆 —— 写章节前的上下文组装(memory_load),写完后的状态更新(memory_update)。这是百万字小说一致性的核心基础设施。**通常不由用户直接触发**,而是由 novel-chapter 在写作循环中自动调用。当用户说"看一下当前记忆状态"、"更新记忆"、"导出章节摘要" 等显式管理操作时也可触发。
管理小说情节结构 —— 卷纲、故事弧(arc)、时间线、伏笔账(hook ledger)。当用户说"做卷纲"、"设计故事弧"、"加伏笔"、"伏笔账"、"时间线"、"plot outline"、"design arc" 时触发。包含中文网文章节情节推进四大原则,以及借鉴 inkos hook-ledger 的 open/advance/resolve/defer 四态伏笔语义和"揭1埋1"硬底线。
章节 / 全书校稿。37 维质量审查:4 维统计学(Python 脚本)+ 33 维主观(LLM 评估)+ 一致性 + 伏笔账 + 硬规则。当用户说"校稿"、"审一遍"、"检查第 X 章"、"看看哪里有问题"、"全书审查"、"review chapter"、"audit" 时触发。审稿只评结构和完成度,**不评文笔**(文笔由 novel-style-engine + novel-chapter 在生成阶段控制)。
| name | novel-chapter |
| description | 核心章节写作循环。9 步管线:outline → user_confirm → memory_load → write → self_check → fix_loop → memory_update → checkpoint → user_review。当用户说"写第 X 章"、"写下一章"、"继续写"、"接着写"、"重写第 X 章"、"write chapter N" 时触发。两阶段温度策略:写作时高温,自检和修复时低温。 |
整合所有 skill 产出(story 圣经 / 角色 / 世界观 / 卷纲 / 写法 / 记忆 / 校稿)的核心写作管线。 执行严格的 9 步流程,每步有明确产出和强制门,跑通整本小说的逐章写作。
story.md 存在且 brainstorm-done(即至少有简介、矛盾、30 章承诺)style/compiled/*.md 至少有占位(可以未跑 style-engine,但要有 default 写作约束)plot/arcs/{arc}-chapters.md 或在 arc.md 里的 ## Chapter Outline 段——即"卷级章节大纲"必须先做完如果不满足,不要强行进入。明确告诉用户缺什么、用哪个 skill 补。
输入:用户说"写第 N 章"或"继续写"(自动 N+1)
动作:
读取 plot/arcs/{当前 arc}-chapters.md 中第 N 章对应的章节大纲
读取前 1 章正文(如不是第 1 章)
检查连续性:
生成单章章纲(写到 chapters/ch-{NNN}.md 的 frontmatter 下方,但还不写正文):
---
chapter: 8
title: "雾林夜遇"
pov: sera-voss
location: whispering-vale-edge
arc: seras-reclamation
weight: ⭐⭐⭐
word-target: 3000-4000
status: outlined
created: 2026-05-20
---
## 本章章纲
- **时间**:前章后第二天黄昏
- **危机来源**:来自第 7 章 sera 决定加快赶路(这是隐患→ 暴露行踪)
- **核心冲突**:sera 第一次主动使用 ember 力量
- **主角抉择**:是否在斥候面前用 ember 暴露自己
- **抉择代价**:暴露 → 行踪传回 maren;不暴露 → 三人小队被擒
- **埋下隐患**:力量失控伤了 kael → 第 9 章兄妹关系裂痕
- **预定场景**:
1. 黄昏扎营,与 kael 闲谈(500-800 字)
2. 斥候迫近(800-1000 字)
3. ember 失控 + 灼伤 kael(1200-1500 字)
4. 善后 + 钩子(500-700 字)
## hook-账(预定)
### advance
- H001 sera 力量痕迹首次外显
### open
- [new] kael 第一次对 sera 表达恐惧 → 兄妹关系裂痕
借鉴 novel-writer 的强制确认。不允许跳过。
把上面生成的章纲展示给用户,显式询问:
✏️ 第 8 章章纲已生成(见上)。
请确认(任选):
- "确认章纲"(开始写作)
- "改一下 {段}"(指出哪段要改)
- "重新生成"(不满意,重做章纲)
等待用户明确说"确认"。在用户确认之前绝对不能进入 Step 6.3。
用户确认后:
chapters/ch-{NNN}.md 的 frontmatter status 改为 outline-confirmedstatus.md 写入"Ch {N} 章纲已确认 - {time}"调用 novel-memory 的 memory_load 操作,传入:
得到拼装好的 context blob(按 8 个 PRIORITY 分级,token 控制在 16-24k)。
温度建议:0.7-0.8(具体由调用方控制,本 skill 不强制)
prompt 组装(按 AI-NWA 6 层 prompt 编译结构):
[Layer 1: 世界与任务基础层]
{story.md 一句话简介 + 核心矛盾}
{当前 arc 一句话定位}
{本章章纲的全部内容}
[Layer 2: 写法主规则层]
{style/compiled/style-rules.md 的内容}
[Layer 3: 角色表达校正层]
{本章 POV 角色的 voice patterns(从 character 卡读)}
{本章其他出场角色的 voice 摘要}
[Layer 4: 反 AI 约束层]
{style/compiled/anti-ai.md 的内容}
[Layer 5: 输出格式层]
请输出本章正文。
- 字数:3000-4000 字
- 直接输出正文,不要标题不要解释
- 段落用空行分隔
- 章节末尾用 ## hook-账 段记录本章实际的 advance / resolve / open / defer
[Layer 6: 自检指令层]
写完后自检:
- 是否有"不是…而是…"句式 → 改写
- 是否有破折号 —— → 改写
- 是否有元叙事词(读者可能 / 接下来)→ 删除
- 段落长度是否过于均匀 → 调整
若有违规,先修正再输出最终正文。
Memory context 拼在 Layer 1 之前作为背景资料。
输出:完整正文 + ## hook-账 段。写入 chapters/ch-{NNN}.md 的正文部分。
温度建议:0.2-0.3
动作:跑 4 个客观脚本(在 novel-review/scripts/ 中,本 skill 调用):
python3 novel-suite/skills/novel-review/scripts/check_ai_tells.py --chapter chapters/ch-008.md
python3 novel-suite/skills/novel-review/scripts/check_post_write.py --chapter chapters/ch-008.md --vault {vault}
python3 novel-suite/skills/novel-review/scripts/check_hook_ledger.py --chapter chapters/ch-008.md --vault {vault}
python3 novel-suite/skills/novel-review/scripts/check_consistency.py --chapter chapters/ch-008.md --vault {vault}
汇总结果,得到 issue 列表:
critical issues:必须修warning issues:建议修info issues:记录但不修如果 self_check 有 critical issues,启动自动修复:
修复 prompt(沿用 AI-NWA AI 味修正任务模板):
[原文]
{chapter content}
[检测到的违规]
{critical issues list}
[修正要求]
- 保留剧情事实不变
- 仅修改违规表达
- 保留 ## hook-账 段不动
- 修正后重新输出全文
温度:0.2(确定性高)
循环:
修复成功 → 进 Step 6.7。
调用 novel-memory 的 memory_update 操作,传入:
让它跑完 8 步流程(详见 novel-memory/SKILL.md),更新所有 .memory/ bank。
调用:
python3 novel-suite/shared/checkpoint.py create --vault {vault} --name "chapter_{N}_complete"
把当前 vault 状态做个快照。便于后续如果用户反悔,可以 rollback。
把章节正文展示给用户,显式询问:
✅ 第 N 章已完成({字数} 字)。
self_check 结果:
- critical: 0 / warning: 2 / info: 1
- 警告:{列出 warning,但用户可以选择忽略}
请确认(任选):
- "通过"(进入下一章 / 完成本卷)
- "修改 {段}"(指出哪段要改 → 回到 Step 6.4 写部分)
- "重写本章"(不满意 → 回到 Step 6.4 完全重写)
- "重做章纲"(连章纲都要改 → 回到 Step 6.1)
等待用户反馈:
reviewed,进入下一章.memory/revision-notes.md,回到对应步骤| 步骤 | 温度 | 原因 |
|---|---|---|
| 6.1 outline | 0.5-0.6 | 章纲需要创意但不能跑偏 |
| 6.4 write | 0.7-0.8 | 写作需要创造力 |
| 6.5 self_check | 不调 LLM | 纯脚本检查 |
| 6.6 fix_loop | 0.2-0.3 | 修复要精确,不能"自由发挥" |
| 6.7 memory_update | 0.3-0.4 | 抽取事实,确定性优先 |
本 skill 不强制温度参数(由调用方控制),但建议遵循上表。
chapters/ch-{NNN}.md,status=outlined,下次 resume 直接从 Step 6.2 开始chapters/ch-{NNN}.md,status=needs-manual-fix,明确告诉用户剩余 issues.memory/decision-log.md,告诉用户"记忆更新部分失败,建议手动检查"每次进入本 skill,先读 status.md 看当前状态: