name: webnovel-write description: Writes webnovel chapters (3000-5000 words) using v5.2 architecture. Context Agent outputs creative brief, writer produces pure text, review agents report issues, webnovel polish fixes problems, Data Agent extracts entities and records hooks/patterns.
⚠️ 强制要求: 开始写作前,必须复制以下清单到回复中并逐项勾选。跳过任何步骤视为工作流不完整。
章节创作进度 (v5.2):
- [ ] Step 1: Context Agent 搜集上下文(创作任务书)
- [ ] Step 1.5: 章节设计(开头/钩子/爽点模式)
- [ ] Step 2A: 生成粗稿(剧情正确、场面成立)
- [ ] Step 2B: 风格适配器(网文化改写,剧情不变)
- [ ] Step 3: 审查 (6个Agent并行,输出汇总表格)
- [ ] Step 4: 网文化润色(基于审查报告)
- [ ] Step 5: Data Agent 处理数据链
- [ ] Step 6: Git 备份
工作流规则:
/webnovel-write --mode fast # 快速模式:跳过 Step 2B
/webnovel-write --mode minimal # 极简模式:跳过 Step 2B + 仅运行3个核心 checker
模式影响:
调用 Context Agent:
使用 Task 工具调用 context-agent subagent:
调用 context-agent,参数:
- chapter: {chapter_num}
- project_root: {PROJECT_ROOT}
- storage_path: .webnovel/
- state_file: .webnovel/state.json
Agent 自动完成:
输出:创作任务书(非 JSON),包含:
失败处理:
目标: 在写作前明确本章结构与变体,避免模式重复,设计追读力策略。
加载变体池(必须执行):
cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/style-variants.md"
加载追读力分类标准(必须执行):
cat "${CLAUDE_PLUGIN_ROOT}/references/reading-power-taxonomy.md"
加载题材Profile(必须执行):
cat "${CLAUDE_PLUGIN_ROOT}/references/genre-profiles.md"
根据 state.json → project.genre 选择对应题材的配置。
输出内容:
必须输出以下设计:
## 追读力设计
### 钩子策略
- 章末钩子类型:{危机钩/悬念钩/情绪钩/选择钩/渴望钩}
- 目标强度:{strong/medium/weak}
- 钩子描述:{一句话概括钩子内容}
### 爽点规划
- 主爽点模式:{8种模式之一}
- 爽点结构:{30/40/30分布描述}
- 备选模式:{如主模式无法实现}
### 微兑现清单(题材要求:≥{N}个)
1. {类型}: {描述}
2. {类型}: {描述}
...
### 差异化检查
- 最近3章钩子类型:{列表}
- 最近3章开头类型:{列表}
- 最近5章爽点模式:{列表}
- 本章差异化点:{说明如何避免重复}
### 债务状态(如有)
- 当前债务余额:{amount}
- 逾期债务:{count}
- 本章偿还计划:{如适用}
执行查询:
state.json → chapter_meta 或调用 index.db 查询最近章节避免规则:
如必须重复:
如本章标记为过渡章:
字数: 3000-5000 字(短章 <2000 字需声明)
核心原则:
加载核心约束:
cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/core-constraints.md"
按需加载场景参考:
| 场景类型 | 判断条件 | 执行命令 |
|---|---|---|
| 战斗戏 | 大纲含打斗/对决/追逐 | cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/combat-scenes.md" |
| 情感戏 | 大纲含告白/冲突/羁绊 | cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/emotion-psychology.md" |
| 对话密集 | 预估对话 >50% | cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/dialogue-writing.md" |
| 复杂场景 | 新地点/大场面描写 | cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/scene-description.md" |
| 欲念描写 | 大纲含暧昧/亲密/情欲场景 | cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/desire-description.md" |
可选加载题材风格参考(用户指定时加载):
# 如需特定题材的写作风格参考,可按需加载 genres 目录下的对应文件
# 可用题材目录:
# xuanhuan/ - 玄幻修仙
# dog-blood-romance/ - 狗血言情
# zhihu-short/ - 知乎短篇
# period-drama/ - 古言/宫斗
# realistic/ - 现实题材
# rules-mystery/ - 规则怪谈/推理
# 示例: cat "${CLAUDE_PLUGIN_ROOT}/genres/xuanhuan/power-systems.md"
输出格式:
正文/第{NNNN}章.md.webnovel/summaries/)跳过条件: fast / minimal 模式跳过
加载风格适配器:
cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/style-adapter.md"
目标:
⚠️ 强制要求: 必须在同一条消息中并行调用全部审查 Agent(除非 minimal 模式)。
执行命令(不可修改):
在一条消息中发送 Task 工具调用,每个调用需传入以下公共参数:
标准/快速模式:6 个 Agent
| # | subagent_type | 必须 | 说明 |
|---|---|---|---|
| 1 | high-point-checker |
✅ | 爽点密度检查 |
| 2 | consistency-checker |
✅ | 设定一致性检查 |
| 3 | pacing-checker |
✅ | Strand 节奏检查 |
| 4 | ooc-checker |
✅ | 人物 OOC 检查 |
| 5 | continuity-checker |
✅ | 连贯性检查 |
| 6 | reader-pull-checker |
✅ | 追读力检查 |
极简模式:仅 3 个核心 Agent
consistency-checkercontinuity-checkerooc-checker验证: 收到全部报告后,必须输出以下汇总表格:
┌─────────────────────────────────────────────────┐
│ 审查汇总 - 第 {chapter_num} 章 │
├──────────────────────┬───────────┬──────────────┤
│ Agent │ 结果 │ 关键问题数 │
├──────────────────────┼───────────┼──────────────┤
│ high-point-checker │ PASS/FAIL │ {N} │
│ consistency-checker │ PASS/FAIL │ {N} │
│ pacing-checker │ PASS/FAIL │ {N} │
│ ooc-checker │ PASS/FAIL │ {N} │
│ continuity-checker │ PASS/FAIL │ {N} │
│ reader-pull-checker │ PASS/FAIL │ {N} │
├──────────────────────┴───────────┴──────────────┤
│ critical issues: {N} | high issues: {N} │
│ 是否可进入润色: {是/否} │
└─────────────────────────────────────────────────┘
Only proceed to Step 4 when:
Minimal 模式: 汇总表格仅列出已执行的 3 个 Agent。
⚠️ 强制要求: 必须按以下顺序执行全部子步骤(4.0-4.4),不可跳过。
cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/polish-guide.md"
cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/typesetting.md"
| 严重度 | 处理方式 |
|---|---|
| critical | 必须修复,否则记录 deviation |
| high | 优先修复 |
| medium | 建议修复 |
| low | 可选修复 |
注意: 词频统计仅作为提醒,不再作为硬性门槛。若明显超标,请修复并简要说明。
综合|总之|由此可见|总而言之首先|其次|最后|第一|第二|第三而言|某种程度上|本质上因为|所以|由于|因此┌─────────────────────────────────────────────────┐
│ 润色检查清单 - 第 {chapter_num} 章 │
├─────────────────────────────────────────────────┤
│ [x] polish-guide.md 已加载 │
│ [x] typesetting.md 已加载 │
│ [x] critical issues 已修复: {是/否/无} │
│ [x] high issues 已修复: {是/否/无} │
├─────────────────────────────────────────────────┤
│ 网文口感检查: │
│ - 开头120字冲突: {是/否} │
│ - 局面变化频率: {达标/偏少} │
│ - 章末钩子: {是/否} │
├─────────────────────────────────────────────────┤
│ AI痕迹提醒: {已检查/未检查} │
│ [x] 未违反润色红线 │
│ 是否可进入 Data Agent: {是/否} │
└─────────────────────────────────────────────────┘
Only proceed to Step 5 when:
输出: 润色后的章节文件(覆盖原文件)
调用 Data Agent:
使用 Task 工具调用 data-agent subagent:
调用 data-agent,参数:
- chapter: {chapter_num}
- chapter_file: "正文/第{NNNN}章.md"
- review_score: {overall_score from Step 3}
- project_root: {PROJECT_ROOT}
- storage_path: .webnovel/
- state_file: .webnovel/state.json
Agent 自动完成:
.webnovel/summaries/ch{NNNN}.md输出:
{
"entities_appeared": 5,
"entities_new": 1,
"state_changes": 2,
"scenes_chunked": 4,
"uncertain": [...],
"warnings": [...]
}
git add . && git commit -m "Ch{chapter_num}: {title}"
⚠️ 上下文包生成失败
→ 检查大纲是否存在
→ 检查 state.json 是否初始化
→ 手动加载必要上下文后继续
⚠️ 审查发现 critical 级别问题
→ 润色步骤必须修复
→ 如果无法修复,记录 deviation
⚠️ AI 提取失败
→ 记录 warning
→ 可选:手动添加关键实体
→ Git 备份仍然执行
章节完成后,必须输出最终验证报告:
┌─────────────────────────────────────────────────┐
│ 章节完成验证 - 第 {chapter_num} 章 │
├─────────────────────────────────────────────────┤
│ 1. [x] 字数: {N}字 (3000-5000) │
│ 2. [x] 大纲执行: 100% │
│ 3. [x] 审查Agent: {6/6 or 3/3} 已调用 │
│ 4. [x] 审查汇总表格: 已输出 │
│ 5. [x] polish-guide.md: 已加载 │
│ 6. [x] 网文口感规则: 已检查 │
│ 7. [x] 润色检查清单: 已输出 │
│ 8. [x] Data Agent: 成功提取 {N} 个实体 │
│ 9. [x] summaries: 已生成 ch{NNNN}.md │
│ 10.[x] Git: 已提交 ({commit_hash}) │
├─────────────────────────────────────────────────┤
│ 最终状态: {成功/有deviation} │
└─────────────────────────────────────────────────┘
验证失败处理: