From novel-suite
核心章节写作循环。9 步管线:outline → user_confirm → memory_load → write → self_check → fix_loop → memory_update → checkpoint → user_review。当用户说"写第 X 章"、"写下一章"、"继续写"、"接着写"、"重写第 X 章"、"write chapter N" 时触发。两阶段温度策略:写作时高温,自检和修复时低温。
How this skill is triggered — by the user, by Claude, or both
Slash command
/novel-suite:novel-chapterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
整合所有 skill 产出(story 圣经 / 角色 / 世界观 / 卷纲 / 写法 / 记忆 / 校稿)的核心写作管线。
整合所有 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 看当前状态:
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub alonegg/novel-suite --plugin novel-suite