| name | fiction-plan |
| description | 小说规划系统。基于总纲生成卷节拍表、卷时间线和章细纲(滚动式)。
每卷写前做一次卷规划,每 10 章写完后系统提示补下一批细纲。
执行后同步 Story System 底本。
触发方式:/fiction-plan {卷号或章范围}、「规划第X卷」「补细纲」「做大纲」「规划」「帮我规划一下」「后面怎么写」。
|
fiction-plan:小说规划
基于总纲增量细化卷/时间线/章纲,同步 Story System 底本。
不重做全局故事,不重写整份总纲或设定集。
执行原则
- 只做增量补全,不重写整份总纲或设定集
- 先锁定卷级节奏,再批量拆章
- 时间线是硬约束,所有章纲必须带时间字段
- 发现总纲与设定冲突时先阻断,等用户裁决
阻断条件
- 项目根不合法或总纲缺失
- 总纲缺少卷名/章节范围/核心冲突/卷末高潮 → 阻断
- 批量拆章时时间回跳且未标注闪回 → 阻断
执行流程
Step 1:加载项目数据
export PROJECT_ROOT="$(python -X utf8 "${SCRIPTS_DIR}/fiction.py" --project-root "${CODEX_PROJECT_DIR:-${CLAUDE_PROJECT_DIR:-$PWD}}" where)"
cat "$PROJECT_ROOT/.novel/state.json"
cat "$PROJECT_ROOT/大纲/总纲.md"
GENRE="$(python -X utf8 -c "import json; s=json.load(open('${PROJECT_ROOT}/.novel/state.json',encoding='utf-8')); pi=s.get('project_info',{}) or s.get('project',{}); print(pi.get('genre',''))")"
按需读取设定集。
Step 2:选择目标卷并确认范围
确认卷名、章节范围、核心冲突,以及是否有特殊要求(视角/感情线/题材偏移)。
Step 3:生成卷节拍表
模板内容:
## 第 X 卷:{卷名}
- 功能:{铺垫/起步/第一个大爽点}
- 核心事件:{一句话}
- 起始状态 → 结束状态
- 中段反转(必须有,确定无则写"无(理由)")
- 危机链至少 3 次递进
- 卷末新钩子
输出文件:大纲/第{卷号}卷/节拍表.md
Step 4:生成卷时间线
- 明确时间体系与本卷时间跨度
- 有倒计时事件时列出并标记 D-N
输出文件:大纲/第{卷号}卷/时间线.md
Step 5:生成详细章纲(每批默认 10 章)
每章必须包含:
| 字段 | 必填 |
|---|
| 核心事件(一句话) | ✅ |
| 目标情绪 | ✅ |
| 阻力 | ✅ |
| 代价 | ✅ |
| 时间锚点 / 跨度 | ✅ |
| 与上章时间差 | ✅ |
| 爽点 | ✅ |
| 视角(默认主角) | ✅ |
| 关键实体(涉及的设定卡) | ✅ |
| 本章变化 | ✅ |
| 章末未闭合问题(钩子) | ✅ |
| CBN(1 个) | ✅(如果 > 5 章则必须有) |
| CPN(2-4 个) | ✅ |
| CEN(1 个) | ✅ |
| 必须覆盖节点(≤4 个) | 建议 |
| 本章禁区(≤5 条) | ✅ |
输出文件:大纲/第{卷号}卷/详细大纲.md
Step 6:滚动批次管理
- 第 1 批细纲(至少 5 章)在 fiction-start 前完成
- 默认每 10 章一批
- 写完一批后自动提示:"第 X 章写完了。下 10 章的细纲还没做。要现在生成吗?"
- 用户也可主动:(fiction-plan 11-20)
Step 7:同步底本
每批章纲生成后,同步 Story System 底本:
Step 8:写回设定(新增角色/势力)
扫描本次章纲中新出现的具名角色/势力/关键设定:
- 会复用的 → 自动建档到设定集/
- 一次性的路人 → 不建档
- 仅填细纲已确定的信息,未定字段留占位符
输出文件清单
大纲/第{卷号}卷/
├─ 节拍表.md
├─ 时间线.md
└─ 详细大纲.md
与 fiction-write 的关系
fiction-write 执行时自动读取本章细纲,作为写作依据。
如果没有本章细纲 → 阻断,提示先 fiction-plan。
参考
节拍表模板、时间线模板为内置模式。
写作技法类参考在 fiction-write 阶段加载,此处不加载。
致谢
本 skill 的开发参考了以下开源项目的思路与实现:
感谢原作者的开源贡献。