webnovel-plan
npx skills add https://github.com/lingfengqaq/webnovel-writer --skill webnovel-plan
Agent 安装分布
Skill 文档
Outline Planning
Purpose: refine æ»çº² into volume + chapter outlines. Do not redesign the global story.
Project Root Guard
- Must run inside a project containing
.webnovel/state.json. - If missing, ask for the project path and
cdinto it.
Reference Loading Levels (strict, lazy)
Use progressive disclosure and load only what current step requires:
- L0: No references before scope/volume is confirmed.
- L1: Minimum set for current generation step.
- L2: Conditional references only if constraints/genre details are needed.
L1 (step-gated minimum)
- Before Step 3 (volume skeleton):
references/strand-weave-pattern.md.claude/references/genre-profiles.md
L2 (conditional)
- Before Step 3, load only ifç½ç¹ç»æéè¦ç»å:
references/cool-points-guide.md
- Before Step 4, load only iféè¦é©å/èå¥ç»å:
.claude/references/reading-power-taxonomy.md
- Before Step 3/4, load only ifé¢æä¸ºçµç«/ç´ææ/å
èé²:
references/outlining/genre-volume-pacing.md
Workflow
- Load project data.
- Select volume and confirm scope.
- Generate volume skeleton.
- Generate chapter outlines in batches.
- Validate + save + update state.
1) Load project data
cat "$PROJECT_ROOT/.webnovel/state.json"
cat "$PROJECT_ROOT/大纲/æ»çº².md"
Optional (only if they exist):
设å®é/主è§ç».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.
2) Select volume
- Offer choices from æ»çº².md (å·å + ç« èèå´).
- Confirm any special requirement (tone, POV emphasis, romance, etc.). If æ»çº²ç¼ºå°å·å/ç« èèå´/æ ¸å¿å²çª/å·æ«é«æ½®ï¼å è¡¥é®å¹¶æ´æ°æ»çº²ï¼åç»§ç»ã
3) Generate volume skeleton
Load genre profile and apply standards:
cat ".claude/references/genre-profiles.md"
Extract for current genre:
- Strand æ¯ä¾ï¼Quest/Fire/Constellationï¼
- ç½ç¹å¯åº¦æ åï¼æ¯ç« æä½/æ¨èï¼
- é©åç±»åå好
Strand Weave è§åçç¥
Based on genre profile, distribute chapters:
- Quest Strand (主线æ¨è¿): 40-60% ç« è
- ç®æ æç¡®ãè¿å±å¯è§ãæé¶æ®µæ§ææ
- ä¾ï¼çªç ´å¢çã宿任å¡ãè·å¾å®ç©
- Fire Strand (æ
æ/å
³ç³»): 20-35% ç« è
- 人ç©å ³ç³»ååãæ æå²çªãå¢é卿
- ä¾ï¼ä¸å¥³ä¸»äºå¨ãå¸å¾çç¾ãå å¼èå
- Constellation Strand (ä¸ç/è°å¢): 10-25% ç« è
- ä¸çè§æç¤ºãä¼ç¬å设ãè°å¢æ¨è¿
- ä¾ï¼åç°å¤èç§å¯ãæç¤ºåæ´¾é´è°ãä¸ççç¸
Weaving pattern (recommended):
- æ¯ 3-5 ç« åæ¢ä¸»å¯¼ Strand
- 髿½®ç« èå¯å¤ Strand 交ç»
- å·æ« 3-5 ç« éä¸ Quest Strand
For çµç«/ç´ææ/å èé², apply dedicated volume pacing template:
cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-plan/references/outlining/genre-volume-pacing.md"
ç½ç¹å¯åº¦è§åçç¥
Based on genre profile:
- 常è§ç« è: 1-2 个å°ç½ç¹ï¼å¼ºåº¦ 2-3ï¼
- å ³é®ç« è: 2-3 个ç½ç¹ï¼è³å° 1 个ä¸ç½ç¹ï¼å¼ºåº¦ 4-5ï¼
- 髿½®ç« è: 3-4 个ç½ç¹ï¼è³å° 1 个大ç½ç¹ï¼å¼ºåº¦ 6-7ï¼
Distribution rule:
- æ¯ 5-8 ç« è³å° 1 ä¸ªå ³é®ç« è
- æ¯å·è³å° 1 ä¸ªé«æ½®ç« èï¼é常å¨å·æ«ï¼
约æè§¦åè§åçç¥
If idea_bank.json exists:
cat ".webnovel/idea_bank.json"
Calculate trigger frequency:
- åå¥è·¯è§å: æ¯ N ç« è§¦å 1 次
- N = max(5, æ»ç« æ° / 10)
- ä¾ï¼50 ç« å· â æ¯ 5 ç« è§¦å
- ä¾ï¼100 ç« å· â æ¯ 10 ç« è§¦å
- 硬约æ: è´¯ç©¿å ¨å·ï¼å¨ç« èç®æ /ç½ç¹è®¾è®¡ä¸ä½ç°
- 主è§ç¼ºé·: æ¯å·è³å° 2 次æä¸ºå²çªæ¥æº
- åæ´¾éå: åæ´¾åºåºç« èå¿ é¡»ä½ç°éå对æ¯
Use this template and fill from æ»çº² + idea_bank:
# 第 {volume_id} å·ï¼{å·å}
> ç« èèå´: 第 {start} - {end} ç«
> æ ¸å¿å²çª: {conflict}
> å·æ«é«æ½®: {climax}
## å·æè¦
{2-3 æ®µè½æ¦è¿°}
## å
³é®äººç©ä¸åæ´¾
- 主è¦ç»åºè§è²ï¼
- åæ´¾å±çº§ï¼
## Strand Weave è§å
| ç« èèå´ | 主导 Strand | å
容æ¦è¦ |
|---------|------------|---------|
## ç½ç¹å¯åº¦è§å
| ç« è | ç½ç¹ç±»å | å
·ä½å
容 | 强度 |
|------|---------|---------|------|
## ä¼ç¬è§å
| ç« è | æä½ | ä¼ç¬å
容 |
|------|------|---------|
## 约æè§¦åè§åï¼å¦æï¼
- åå¥è·¯è§åï¼æ¯ N ç« è§¦å䏿¬¡
- 硬约æï¼è´¯ç©¿å
¨å·
4) Generate chapter outlines (batched)
Batching rule:
- â¤20 ç« ï¼1 æ¹
- 21â40 ç« ï¼2 æ¹
- 41â60 ç« ï¼3 æ¹
-
60 ç« ï¼4+ æ¹
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):
### 第 {N} ç« ï¼{æ é¢}
- ç®æ : {20å以å
}
- ç½ç¹: {ç±»å} - {30å以å
}
- Strand: {Quest|Fire|Constellation}
- åæ´¾å±çº§: {æ /å°/ä¸/大}
- è§è§/主è§: {主è§A/主è§B/女主/群å}
- å
³é®å®ä½: {æ°å¢æéè¦åºåº}
- é©å: {ç±»å} - {30å以å
}
åæ®µè¯´æï¼
- é©åï¼æ¬ç« åºè®¾ç½®çç« æ«é©åï¼è§åç¨ï¼
- ä¾ï¼æ¬å¿µé© – ç¥ç§äººèº«ä»½å³å°ææ
- æææ¯ï¼æ¬ç« ç»å°¾è¦è®¾ç½®è¿ä¸ªæ¬å¿µé©å
- ä¸ç« context-agent ä¼è¯»å chapter_meta[N].hookï¼å®é å®ç°çé©åï¼ï¼çæ”æ¥ä½ä¸ç« “æå¯¼
- é©åç±»ååèï¼æ¬å¿µé© | 屿ºé© | æ¿è¯ºé© | æ ç»ªé© | éæ©é© | 渴æé©
Save after each batch:
@'
{batch_content}
'@ | Add-Content -Encoding UTF8 "$PROJECT_ROOT/大纲/第{volume_id}å·-详ç»å¤§çº².md"
5) Validate + save
Validation checks (must pass all)
1. ç½ç¹å¯åº¦æ£æ¥
- æ¯ç« â¥1 å°ç½ç¹ï¼å¼ºåº¦ 2-3ï¼
- æ¯ 5-8 ç« è³å° 1 ä¸ªå ³é®ç« èï¼å¼ºåº¦ 4-5ï¼
- æ¯å·è³å° 1 ä¸ªé«æ½®ç« èï¼å¼ºåº¦ 6-7ï¼
2. Strand æ¯ä¾æ£æ¥ Count chapters by Strand and compare with genre profile:
- Quest: åºå 40-60%
- Fire: åºå 20-35%
- Constellation: åºå 10-25%
If deviation > 15%, adjust chapter assignments.
3. æ»çº²ä¸è´æ§æ£æ¥
- å·æ ¸å¿å²çªæ¯å¦è´¯ç©¿ç« èï¼
- å·æ«é«æ½®æ¯å¦å¨æå 3-5 ç« ä½ç°ï¼
- å ³é®äººç©æ¯å¦æè®¡åç»åºï¼
4. 约æè§¦åé¢çæ£æ¥ (if idea_bank exists)
- åå¥è·¯è§åè§¦åæ¬¡æ° ⥠æ»ç« æ° / Nï¼N = max(5, æ»ç« æ°/10)ï¼
- 硬约æå¨è³å° 50% ç« èä¸ä½ç°
- 主è§ç¼ºé·è³å° 2 次æä¸ºå²çªæ¥æº
- åæ´¾éåå¨åæ´¾åºåºç« èä¸ä½ç°
5. 宿´æ§æ£æ¥ Every chapter must have:
- ç®æ ï¼20 å以å ï¼
- ç½ç¹ï¼ç±»å + 30 åæè¿°ï¼
- Strandï¼Quest/Fire/Constellationï¼
- åæ´¾å±çº§ï¼æ /å°/ä¸/大ï¼
- è§è§/主è§
- å ³é®å®ä½ï¼è³å° 1 个ï¼
- é©åï¼ç±»å + 30 åæè¿°ï¼
Update state (include chapters range):
python "${CLAUDE_PLUGIN_ROOT}/scripts/update_state.py" \
--project-root "$PROJECT_ROOT" \
--volume-planned {volume_id} \
--chapters-range "{start}-{end}"
Final check:
- ç« çº²æä»¶å·²åå
¥ï¼
大纲/第{volume_id}å·-详ç»å¤§çº².md - æ¯ç« å å«ï¼ç®æ /ç½ç¹/Strand/åæ´¾å±çº§/è§è§/å ³é®å®ä½/é©å
- 䏿»çº²å²çª/髿½®ä¸è´ï¼çº¦æè§¦åé¢çåçï¼å¦æ idea_bankï¼
Hard fail conditions (must stop)
- ç« çº²æä»¶ä¸åå¨æä¸ºç©º
- ä»»ä¸ç« è缺å°ï¼ç®æ /ç½ç¹/Strand/åæ´¾å±çº§/è§è§/å ³é®å®ä½/é©å
- 䏿»çº²æ ¸å¿å²çªæå·æ«é«æ½®ææ¾å²çª
- 约æè§¦åé¢çä¸è¶³ï¼å½ idea_bank å¯ç¨æ¶ï¼
Rollback / recovery
If any hard fail triggers:
- Stop and list the failing items.
- Re-generate only the failed batch (do not overwrite the whole file).
- If the last batch is invalid, remove that batch and rewrite it.
- Only update state after Final check passes.
Next steps:
- ç»§ç»è§åä¸ä¸å· â /webnovel-plan
- å¼å§åä½ â /webnovel-write