
Webnovel Plan
This is a Chinese web novel planning workflow that takes your overall story outline and generates volume beats, timelines, and chapter outlines while incrementally updating your setting documents. It's built around a strict constraint system: timelines are hard requirements, conflicts between outline and settings trigger blocking errors, and it won't rewrite your entire master outline. The core idea is incremental planning in batches of 8-12 chapters at a time, with structured plot nodes (CBN/CPN/CEN) that downstream writing tools can hook into. If you're managing a multi-volume serialized novel with complex worldbuilding and need to keep settings, timelines, and foreshadowing consistent across hundreds of chapters, this gives you guard rails. Heavy process overhead, but that's the point when you're planning 200+ chapter arcs.
- skills.sh installs
- 735
- GitHub stars
- 7.9K
- last updated
- Aug 21, 2026
Install
$ npx -y skills add lingfengqaq/webnovel-writer --skill webnovel-plan --agent claude-codeInstalls into .claude/skills of the current project.
Files
Outline Planning
主 agent 职责:基于总纲增量细化卷纲/时间线/章纲,把新增设定写回设定集,并刷新 Story System 写作合同。不重做全局故事,不重写整份总纲或设定集。
执行原则
- 只做增量补齐,不重写整份总纲或设定集。
- 先锁定卷级节奏,再批量拆章。
- 时间线是硬约束,所有章纲必须带时间字段。
- 若发现总纲与设定冲突,先阻断,再等用户裁决。
- 优先级链:用户明确要求 > 总纲核心冲突与卷末高潮 > 时间线硬约束 > skill 默认流程 > reference 建议。
阻断条件
- 项目根不合法或总纲缺失。
- 总纲缺少卷名 / 章节范围 / 核心冲突 / 卷末高潮 → 阻断并请求用户补全。
- Step 2 / Step 8 发现设定冲突 → 标记
BLOCKER,等待用户裁决。 - 批量拆章时时间回跳且未标注闪回 → 阻断当前批次。
- Step 9 验证失败 → 只重做失败批次,不覆盖整卷。
环境准备
export WORKSPACE_ROOT="${CLAUDE_PROJECT_DIR:-$PWD}"
export SKILL_ROOT="${CLAUDE_PLUGIN_ROOT}/skills/webnovel-plan"
export SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT}/scripts"
export PROJECT_ROOT="$(python "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" where)"
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" placeholder-scan --format text
规划开始 / 结束都运行 placeholder-scan;plan 阶段发现占位先警告并补齐相关文件,进入写章前不得保留当前章相关实体的 [待...] / 暂名 / {占位}。
读取策略(按阶段触发,不预读全部 reference)
每个 reference 只在对应 Step 触发时读取,且优先区段读:先用 Grep 匹配 ^#{2,4} 定位标题锚点行号,再用 Read 的 offset/limit 取目标段。
Sponsors
Details
- Repository
- github.com/lingfengqaq/webnovel-writer
- Category
- Productivity & Planning
- First seen
- Jun 3, 2026