xuanranl/webnovelwriter/webnovel-plan
Claude Code and agent skill by xuanranl/webnovelwriter
- community
Checking that the SKILL.md file is still in the repository.
Builds volume and chapter outlines from the total outline, inherits creative constraints, and prepares writing-ready chapter plans. Use when the user asks for outlining or runs /webnovel-plan.
Install
npx vskill@latest install xuanranl/webnovelwriter/webnovel-planSKILL.md
Outline Planning
Purpose: refine 总纲 into volume + chapter outlines. Do not redesign the global story. Setting policy: 先基于 init 产出的总纲+世界观补齐设定集基线;再在卷纲完成后,直接对现有设定集做增量补充。
Project Root Guard
- Claude Code 的“工作区根目录”不一定等于“书项目根目录”。常见结构:工作区为
D:\wk\xiaoshuo,书项目为D:\wk\xiaoshuo\凡人资本论。 - 必须先解析
PROJECT_ROOT为真实书项目根(必须包含.webnovel/state.json),后续所有读写路径都以该目录为准。
环境设置(bash 命令执行前):
References(按步骤导航)
- Step 3(必读,节拍表模板):大纲-卷节拍表.md
- Step 4.5(必读,时间线模板):大纲-卷时间线.md
- Step 4(必读,题材配置):genre-profiles.md
- Step 4(必读,Strand 节奏):strand-weave-pattern.md
- Step 4(可选,爽点结构需要细化):cool-points-guide.md
- Step 5/6(可选,冲突强度分层):conflict-design.md
- Step 5(可选,需要钩子/节奏细分):reading-power-taxonomy.md
- Step 6(可选,章节微结构细化):chapter-planning.md
- Step 4/5(可选,电竞/直播文/克苏鲁):genre-volume-pacing.md
- 归档(不进主流程):
references/outlining/outline-structure.md、references/outlining/plot-frameworks.md
Reference Loading Levels (strict, lazy)
Use progressive disclosure and load only what current step requires:
- L0: No references before scope/volume is confirmed.
- L1: Before each step, load only the “必读” items in References(按步骤导航).
- L2: Load optional items only when the trigger condition applies.
Workflow
- Load project data.
- Build setting baseline from 总纲 + 世界观 (in-place incremental).
- Select volume and confirm scope.
- Generate volume beat sheet (节拍表).
4.5. Generate volume timeline (时间线表).
- Generate volume skeleton.
- Generate chapter outlines in batches.
- Enrich existing setting files from volume outline (in-place incremental).
- Validate + save + update state.
1) Load project data
Optional (only if they exist):
设定集/主角组.md设定集/女主卡.md设定集/反派设计.md设定集/世界观.md设定集/力量体系.md设定集/主角卡.md设定集/典故引用库.md(若存在:本卷引用规划的输入源)设定集/原创诗词口诀.md(若存在:原创口诀优先于外部典故).webnovel/idea_bank.json(inherit constraints)
If 总纲.md lacks volume ranges / core conflict / climax, ask the user to fill those before proceeding.
创意约束文件完整性检查(Soft warning): 以下文件若缺失,后续 write 流程会降级处理(不阻断 plan):
设定集/叙事声音.md(缺失 → style-adapter 使用分题材默认,跨章风格一致性降低)设定集/情感蓝图.md(缺失 → emotion-checker 跳过蓝图对标)设定集/开篇策略.md(缺失 → Ch1-3 使用 Golden Opening Protocol 通用默认)
若缺失,在 plan 开始前提示用户:“建议先运行 /webnovel-init 补齐设定集”。
Step 1.5 · Cross-volume awareness(Round 19 Phase E · upstream@3e36417 借鉴)
下卷规划前必须读已写章节真实数据,不能只看大纲:
- 跑:
``bash python -X utf8 ${SCRIPTS_DIR}/webnovel.py --project-root "${PROJECT_ROOT}" \ state get-recent-meta --last-n 10 ` 取最近 10 章 hook_close / hook_type / unresolved_loops / overall_score / narrative_version`。
- (Phase G 之后追加)跑:
``bash python -X utf8 ${SCRIPTS_DIR}/webnovel.py --project-root "${PROJECT_ROOT}" \ state get-hook-trend --last-n 10 `` 取 4 类钩子分布。
- 在新卷规划必须显式回应:
- 至少 1 个上卷未解决伏笔在本卷开篇 3 章内被触及
- 主角金手指曲线在新卷保持单调或带显式弱化事件
- 上卷读者钩子若 overall_score < 70,新卷开篇加强同类钩子
- 上卷 hook_type 若连续 5+ 章相同 → 新卷必须切换钩子类型
不做 Cross-volume 检查的章节
第 1 卷规划(无前卷数据)→ 跳过 Step 1.5,仅按既有 Step 1 大纲流程。
2) Build setting baseline from 总纲 + 世界观
目标:在不推翻现有内容的前提下,让设定集从“骨架模板”进入“可规划可写作”的基线状态。
输入来源:
大纲/总纲.md设定集/世界观.md设定集/力量体系.md设定集/主角卡.md设定集/反派设计.md
执行规则(必须):
- 只做增量补齐,不清空、不重写整文件。
- 优先补齐“可执行字段”:角色定位、势力关系、能力边界、代价规则、反派层级映射。
- 若总纲与现有设定冲突,先列冲突并阻断,等待用户裁决后再改。
基线补齐最小要求:
设定集/世界观.md:世界规则边界、社会结构、关键地点用途。设定集/力量体系.md:境界链/能力限制/代价与冷却。设定集/主角卡.md:欲望、缺陷、初始资源与限制。设定集/反派设计.md:小/中/大反派层级与主角镜像关系。
2.5) 卷前调研(必做)
目标:在规划本卷章纲前,通过搜索获取专业知识和创作参考,确保大纲有真实细节支撑。
搜索统一使用 Tavily 直连 API 脚本(${SCRIPTS_DIR}/tavily_search.py),禁止使用 MCP 工具。
Search 失败处理:同 webnovel-write 的失败协议——立即停止,检查 Tavily API key 配置。
3) Select volume
- Offer choices from 总纲.md (卷名 + 章节范围).
- Confirm any special requirement (tone, POV emphasis, romance, etc.).
If 总纲缺少卷名/章节范围/核心冲突/卷末高潮,先补问并更新总纲,再继续。
4) Generate volume beat sheet (节拍表)
目标:先把本卷“承诺→危机递增→中段反转→最低谷→大兑现+新钩子”钉死,避免卷中段漂移。
Load template:
执行前搜索(推荐):
Must satisfy (hard requirements):
- 中段反转(必填):不得留空;若无,写
无(理由:...) - 危机链:至少 3 次递增(表格 1-3 行不得空)
- 卷末新钩子:必须能落到“最后一章的章末未闭合问题”
Write output:
Completion criteria:
大纲/第{volume_id}卷-节拍表.md存在且非空- Step 4/5 能直接引用 Catalyst / 中段反转 / 最低谷 / 大兑现 / 新钩子来锚定节奏
4.5) Generate volume timeline (时间线表)
目标:为本卷建立时间轴基准,确保章节间时间推进逻辑自洽,避免“第一章灾变第二章火拼”的时间跳跃问题。
Load template:
Must satisfy (hard requirements):
- 时间基准(必填):明确本卷使用的时间体系(末世第X天/仙历年月/现代日期)
- 本卷时间跨度(必填):本卷覆盖的时间范围
- 关键倒计时事件:若有时限性事件(物资耗尽/大比开始/截止日期),必须列出并标注 D-N
Write output:
Completion criteria:
大纲/第{volume_id}卷-时间线.md存在且非空- 时间基准和本卷跨度已明确
- 若存在倒计时事件,已在表中列出
5) Generate volume skeleton
Load genre profile and apply standards:
Optional (only if爽点结构需要细化):
Optional (only if需要补强卷级冲突链与强度分层):
Load beat sheet (must exist):
Extract for current genre:
- Strand 比例(Quest/Fire/Constellation)
- 爽点密度标准(每章最低/推荐)
- 钩子类型偏好
Strand Weave 规划策略
Strand 比例与 Weaving 规则详见规范源:
基于 genre profile 分配三线(Quest/Fire/Constellation)章节比例,遵循规范源中的切换阈值和交织模式。
For 电竞/直播文/克苏鲁, apply dedicated volume pacing template:
爽点密度规划策略
Based on genre profile, adjusted by project pacing_preference (from state.json):
若 state.json 包含 pacing_preference:
- 高频密集 (
coolpoint_frequency: "高频密集"): - 常规章节: 2-3 个小爽点(强度 2-3)
- 关键章节: 3-4 个爽点,至少 1 个中爽点(强度 4-5)
- 每 3-5 章至少 1 个关键章节
- 每卷
climaxes_per_volume个高潮章节 - 适中 (
coolpoint_frequency: "适中", 默认): - 常规章节: 1-2 个小爽点(强度 2-3)
- 关键章节: 2-3 个爽点,至少 1 个中爽点(强度 4-5)
- 每 5-8 章至少 1 个关键章节
- 每卷至少 1 个高潮章节(通常在卷末)
- 慢热积累 (
coolpoint_frequency: "慢热积累"): - 常规章节: 0-1 个小爽点,允许纯铺垫章
- 关键章节: 2-3 个爽点,至少 1 个中爽点(强度 4-5)
- 每 8-12 章至少 1 个关键章节
- 每卷
climaxes_per_volume个高潮章节
若 pacing_preference 缺失,使用“适中”默认值。
约束触发规划策略
If idea_bank.json exists:
Calculate trigger frequency:
- 反套路规则: 每 N 章触发 1 次
- N = max(5, 总章数 / 10)
- 例:50 章卷 → 每 5 章触发
- 例:100 章卷 → 每 10 章触发
- 硬约束: 贯穿全卷,在章节目标/爽点设计中体现
- 主角缺陷: 每卷至少 2 次成为冲突来源
- 反派镜像: 反派出场章节必须体现镜像对比
Use this template and fill from 总纲 + idea_bank:
6) Generate chapter outlines (batched)
Batching rule:
- ≤20 章:1 批
- 21–40 章:2 批
- 41–60 章:3 批
- >60 章:4+ 批
Optional (only if需要钩子/节奏细分):
Optional (only if需要章节微结构/标题策略细化):
Chapter generation strategy
For each chapter, determine:
1. Strand assignment (follow volume skeleton distribution)
- Quest: 主线任务推进、目标达成、能力提升
- Fire: 人物关系、情感冲突、团队动态
- Constellation: 世界揭示、伏笔埋设、谜团推进
2. 爽点设计 (based on Strand and position)
- Quest Strand → 成就爽点(打脸、逆袭、突破)
- Fire Strand → 情感爽点(认可、保护、告白)
- Constellation Strand → 认知爽点(真相、预言、身份)
3. 钩子设计 (based on next chapter's Strand)
- 悬念钩子:提出问题、制造危机
- 承诺钩子:预告奖励、暗示转折
- 情感钩子:关系变化、角色危机
4. 反派层级 (based on volume skeleton)
- 无:日常章节、修炼章节、关系章节
- 小:小冲突、小反派、局部对抗
- 中:中反派出场、重要冲突、阶段性对抗
- 大:大反派出场、核心冲突、卷级高潮
5. 关键实体 (new or important)
- 新角色:姓名 + 一句话定位
- 新地点:名称 + 一句话描述
- 新物品:名称 + 功能
- 新势力:名称 + 立场
6. 约束检查 (if idea_bank exists)
- 是否触发反套路规则?
- 是否体现硬约束?
- 是否展现主角缺陷?
- 是否体现反派镜像?
Chapter format (include 反派层级 for context-agent):
时间字段说明:
- 时间锚点:本章发生的具体时间点,必须与时间线表一致
- 章内时间跨度:本章内容覆盖的时间长度
- 与上章时间差:与上一章结束时间的间隔
- 紧接:无时间间隔,直接承接
- 跨夜:过夜但不超过 12 小时
- 具体时长:如 6小时、1天、3天
- 倒计时状态:若存在倒计时事件,标注推进情况(D-N → D-(N-1))
字段说明:
- 章末未闭合问题:本章结尾必须保留的“未闭合决策/问题”,用于驱动读者点下一章。
- 规则:必须与 钩子 的类型/强度一致;不得出现“钩子很强但问题很虚”的错配。
- 钩子:本章应设置的章末钩子(规划用)
- 例:悬念钩 - 神秘人身份即将揭晓
- 意思是:本章结尾要设置这个悬念钩子
- 下章 context-agent 会读取 chapter_meta[N].hook(实际实现的钩子),生成“接住上章”指导
- 钩子类型参考:悬念钩 | 危机钩 | 承诺钩 | 情绪钩 | 选择钩 | 渴望钩
Save after each batch:
7) Enrich existing setting files from volume outline
目标:卷纲写完后,把本卷新增事实写回“现有设定集文件”,确保后续写作可直接读取。
输入来源:
大纲/第{volume_id}卷-节拍表.md大纲/第{volume_id}卷-详细大纲.md- 现有设定集文件(世界观/力量体系/主角卡/主角组/女主卡/反派设计)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingwebnovel-writer/skills/webnovel-plan/SKILL.md
Popularity
- Repository stars
- 15
- Repository forks
- 2
- 7-day trend score
- 14
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/xuanranl/webnovelwriter/webnovel-plan)