novel-maker 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +209 -0
  3. package/bin/novel-maker.js +229 -0
  4. package/package.json +33 -0
  5. package/skill/CHANGELOG.md +82 -0
  6. package/skill/QUICK-REF.md +168 -0
  7. package/skill/README.md +75 -0
  8. package/skill/SKILL.md +715 -0
  9. package/skill/agents/README.md +59 -0
  10. package/skill/agents/auditor.md +234 -0
  11. package/skill/agents/coordinator.md +150 -0
  12. package/skill/agents/planner.md +220 -0
  13. package/skill/agents/reviewer.md +249 -0
  14. package/skill/agents/reviser.md +144 -0
  15. package/skill/agents/writer.md +213 -0
  16. package/skill/arc-templates/README.md +43 -0
  17. package/skill/arc-templates/apocalypse/ability.md +81 -0
  18. package/skill/arc-templates/apocalypse/faction.md +81 -0
  19. package/skill/arc-templates/apocalypse/humanity.md +81 -0
  20. package/skill/arc-templates/apocalypse/survival.md +81 -0
  21. package/skill/arc-templates/game/competition.md +81 -0
  22. package/skill/arc-templates/game/dungeon.md +81 -0
  23. package/skill/arc-templates/game/guild-war.md +81 -0
  24. package/skill/arc-templates/game/leveling.md +80 -0
  25. package/skill/arc-templates/general/challenge.md +44 -0
  26. package/skill/arc-templates/general/conflict.md +71 -0
  27. package/skill/arc-templates/general/explore.md +71 -0
  28. package/skill/arc-templates/general/growth.md +71 -0
  29. package/skill/arc-templates/general/mystery.md +71 -0
  30. package/skill/arc-templates/general/relation.md +71 -0
  31. package/skill/arc-templates/history/battle.md +71 -0
  32. package/skill/arc-templates/history/politics.md +71 -0
  33. package/skill/arc-templates/history/reform.md +71 -0
  34. package/skill/arc-templates/infinite-flow/boss.md +71 -0
  35. package/skill/arc-templates/infinite-flow/dungeon.md +71 -0
  36. package/skill/arc-templates/infinite-flow/enhance.md +71 -0
  37. package/skill/arc-templates/infinite-flow/team.md +71 -0
  38. package/skill/arc-templates/mystery/case.md +71 -0
  39. package/skill/arc-templates/mystery/deduction.md +71 -0
  40. package/skill/arc-templates/mystery/twist.md +71 -0
  41. package/skill/arc-templates/romance/angst.md +80 -0
  42. package/skill/arc-templates/romance/chase.md +71 -0
  43. package/skill/arc-templates/romance/slow-burn.md +71 -0
  44. package/skill/arc-templates/romance/sweet.md +80 -0
  45. package/skill/arc-templates/sci-fi/awakening.md +81 -0
  46. package/skill/arc-templates/sci-fi/breakthrough.md +81 -0
  47. package/skill/arc-templates/sci-fi/contact.md +81 -0
  48. package/skill/arc-templates/sci-fi/exploration.md +81 -0
  49. package/skill/arc-templates/urban/business.md +71 -0
  50. package/skill/arc-templates/urban/revenge.md +71 -0
  51. package/skill/arc-templates/urban/rise.md +71 -0
  52. package/skill/arc-templates/urban/romance.md +71 -0
  53. package/skill/arc-templates/western-fantasy/adventure.md +80 -0
  54. package/skill/arc-templates/western-fantasy/kingdom.md +71 -0
  55. package/skill/arc-templates/western-fantasy/magic-awakening.md +71 -0
  56. package/skill/arc-templates/western-fantasy/racial-conflict.md +71 -0
  57. package/skill/arc-templates/wuxia/breakthrough.md +71 -0
  58. package/skill/arc-templates/wuxia/grudge.md +71 -0
  59. package/skill/arc-templates/wuxia/hero-path.md +71 -0
  60. package/skill/arc-templates/wuxia/sect-war.md +71 -0
  61. package/skill/arc-templates/xianxia/breakthrough.md +71 -0
  62. package/skill/arc-templates/xianxia/dungeon.md +71 -0
  63. package/skill/arc-templates/xianxia/tournament.md +71 -0
  64. package/skill/arc-templates/xianxia/tribulation.md +71 -0
  65. package/skill/docs/examples.md +61 -0
  66. package/skill/docs/faq.md +81 -0
  67. package/skill/docs/installation.md +87 -0
  68. package/skill/docs/quickstart.md +83 -0
  69. package/skill/genre-packs/README.md +47 -0
  70. package/skill/genre-packs/_default/arc-types.md +153 -0
  71. package/skill/genre-packs/_default/rules.md +56 -0
  72. package/skill/genre-packs/_default/templates.md +135 -0
  73. package/skill/genre-packs/apocalypse/arc-types.md +109 -0
  74. package/skill/genre-packs/apocalypse/rules.md +113 -0
  75. package/skill/genre-packs/apocalypse/settings.md +106 -0
  76. package/skill/genre-packs/apocalypse/templates.md +192 -0
  77. package/skill/genre-packs/game/arc-types.md +109 -0
  78. package/skill/genre-packs/game/rules.md +113 -0
  79. package/skill/genre-packs/game/settings.md +103 -0
  80. package/skill/genre-packs/game/templates.md +173 -0
  81. package/skill/genre-packs/history/arc-types.md +109 -0
  82. package/skill/genre-packs/history/rules.md +107 -0
  83. package/skill/genre-packs/history/settings.md +126 -0
  84. package/skill/genre-packs/history/templates.md +179 -0
  85. package/skill/genre-packs/infinite-flow/arc-types.md +101 -0
  86. package/skill/genre-packs/infinite-flow/rules.md +75 -0
  87. package/skill/genre-packs/infinite-flow/settings.md +102 -0
  88. package/skill/genre-packs/infinite-flow/templates.md +226 -0
  89. package/skill/genre-packs/mystery/arc-types.md +109 -0
  90. package/skill/genre-packs/mystery/rules.md +107 -0
  91. package/skill/genre-packs/mystery/settings.md +103 -0
  92. package/skill/genre-packs/mystery/templates.md +178 -0
  93. package/skill/genre-packs/romance/arc-types.md +130 -0
  94. package/skill/genre-packs/romance/rules.md +88 -0
  95. package/skill/genre-packs/romance/settings.md +146 -0
  96. package/skill/genre-packs/romance/templates.md +245 -0
  97. package/skill/genre-packs/sci-fi/arc-types.md +109 -0
  98. package/skill/genre-packs/sci-fi/rules.md +113 -0
  99. package/skill/genre-packs/sci-fi/settings.md +99 -0
  100. package/skill/genre-packs/sci-fi/templates.md +170 -0
  101. package/skill/genre-packs/urban/arc-types.md +101 -0
  102. package/skill/genre-packs/urban/rules.md +75 -0
  103. package/skill/genre-packs/urban/settings.md +82 -0
  104. package/skill/genre-packs/urban/templates.md +212 -0
  105. package/skill/genre-packs/western-fantasy/arc-types.md +128 -0
  106. package/skill/genre-packs/western-fantasy/rules.md +88 -0
  107. package/skill/genre-packs/western-fantasy/settings.md +160 -0
  108. package/skill/genre-packs/western-fantasy/templates.md +225 -0
  109. package/skill/genre-packs/wuxia/arc-types.md +126 -0
  110. package/skill/genre-packs/wuxia/rules.md +86 -0
  111. package/skill/genre-packs/wuxia/settings.md +150 -0
  112. package/skill/genre-packs/wuxia/templates.md +195 -0
  113. package/skill/genre-packs/xianxia/arc-types.md +101 -0
  114. package/skill/genre-packs/xianxia/rules.md +74 -0
  115. package/skill/genre-packs/xianxia/settings.md +107 -0
  116. package/skill/genre-packs/xianxia/templates.md +202 -0
  117. package/skill/hooks/README.md +102 -0
  118. package/skill/hooks/chapter-complete.md +176 -0
  119. package/skill/hooks/context-injection.md +152 -0
  120. package/skill/hooks/intent-detection.md +183 -0
  121. package/skill/hooks/review-trigger.md +219 -0
  122. package/skill/hooks/summary-trigger.md +185 -0
  123. package/skill/references/act-guidance.md +228 -0
  124. package/skill/references/audit-core.md +130 -0
  125. package/skill/references/audit-dimensions.md +202 -0
  126. package/skill/references/character-voice-card.md +196 -0
  127. package/skill/references/consistency-checker.md +209 -0
  128. package/skill/references/content-expansion.md +68 -0
  129. package/skill/references/creative-constraints.md +200 -0
  130. package/skill/references/data-agent.md +286 -0
  131. package/skill/references/dialogue-writing.md +104 -0
  132. package/skill/references/editorial-perspective.md +166 -0
  133. package/skill/references/emotion-curve.md +127 -0
  134. package/skill/references/genre-rules.md +389 -0
  135. package/skill/references/golden-opening.md +81 -0
  136. package/skill/references/memory-system.md +288 -0
  137. package/skill/references/pacing-analysis.md +201 -0
  138. package/skill/references/platform-rules.md +244 -0
  139. package/skill/references/plot-structures.md +108 -0
  140. package/skill/references/reader-feedback.md +119 -0
  141. package/skill/references/rhythm-system.md +204 -0
  142. package/skill/references/style-imitation.md +193 -0
  143. package/skill/references/sweet-spot-tracking.md +182 -0
  144. package/skill/references/usage-guide.md +174 -0
  145. package/skill/references/writing-methods.md +169 -0
  146. package/skill/rules/anti-ai-expressions.md +206 -0
  147. package/skill/rules/character-voice.md +184 -0
  148. package/skill/rules/consistency-check.md +232 -0
  149. package/skill/rules/smart-query.md +263 -0
  150. package/skill/scripts/README.md +380 -0
  151. package/skill/scripts/auditor/chapter_transition.py +217 -0
  152. package/skill/scripts/auditor/consistency_scan.py +194 -0
  153. package/skill/scripts/auditor/dialogue_checker.py +194 -0
  154. package/skill/scripts/auditor/hook_report.py +115 -0
  155. package/skill/scripts/auditor/pacing_optimizer.py +303 -0
  156. package/skill/scripts/auditor/pacing_report.py +275 -0
  157. package/skill/scripts/auditor/pre_audit.py +203 -0
  158. package/skill/scripts/auditor/style_check.py +158 -0
  159. package/skill/scripts/auditor/worldbuilding_checker.py +637 -0
  160. package/skill/scripts/common/analyze.py +129 -0
  161. package/skill/scripts/common/init_guide.py +796 -0
  162. package/skill/scripts/common/install.py +169 -0
  163. package/skill/scripts/common/nm_utils.py +296 -0
  164. package/skill/scripts/common/validate.py +215 -0
  165. package/skill/scripts/coordinator/stats_report.py +165 -0
  166. package/skill/scripts/coordinator/volume_batch.py +121 -0
  167. package/skill/scripts/planner/outline_extractor.py +89 -0
  168. package/skill/scripts/planner/planner_context.py +220 -0
  169. package/skill/scripts/planner/query_engine.py +289 -0
  170. package/skill/scripts/reviewer/chapter_diff.py +143 -0
  171. package/skill/scripts/reviewer/character_arc_tracker.py +191 -0
  172. package/skill/scripts/reviewer/emotion_curve.py +340 -0
  173. package/skill/scripts/reviewer/foreshadowing_tracker.py +286 -0
  174. package/skill/scripts/reviewer/subplot_tracker.py +207 -0
  175. package/skill/scripts/reviewer/summary_generator.py +130 -0
  176. package/skill/scripts/reviewer/truth_diff.py +227 -0
  177. package/skill/scripts/reviewer/truth_manager.py +120 -0
  178. package/skill/scripts/test_scripts.py +366 -0
  179. package/skill/scripts/writer/build_write_context.py +255 -0
  180. package/skill/scripts/writer/chapter_info.py +67 -0
  181. package/skill/scripts/writer/check_wordcount.py +115 -0
  182. package/skill/scripts/writer/scene_builder.py +227 -0
  183. package/skill/scripts/writer/style_anchor.py +135 -0
  184. package/skill/styles/author-styles.md +53 -0
  185. package/skill/styles/authors//344/270/245/350/260/250/350/256/276/345/256/232/346/265/201//345/277/230/350/257/255.md +110 -0
  186. package/skill/styles/authors//344/270/245/350/260/250/350/256/276/345/256/232/346/265/201//347/210/261/346/275/234/346/260/264/347/232/204/344/271/214/350/264/274.md +110 -0
  187. package/skill/styles/authors//344/270/245/350/260/250/350/256/276/345/256/232/346/265/201//350/250/200/345/275/222/346/255/243/344/274/240.md +110 -0
  188. package/skill/styles/authors//345/244/232/347/245/236/350/257/235/347/203/255/350/241/200/346/265/201//344/270/211/344/271/235/351/237/263/345/237/237.md +108 -0
  189. package/skill/styles/authors//346/202/254/347/226/221/346/216/250/347/220/206/346/265/201//346/235/200/350/231/253/351/230/237/351/230/237/345/221/230.md +108 -0
  190. package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//344/270/211/345/244/251/344/270/244/350/247/211.md +110 -0
  191. package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//344/274/232/350/257/264/350/257/235/347/232/204/350/202/230/345/255/220.md +110 -0
  192. package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//345/215/226/346/212/245/345/260/217/351/203/216/345/220/233.md +108 -0
  193. package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//345/274/210/351/235/222/345/263/260.md +123 -0
  194. package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//345/224/220/345/256/266/344/270/211/345/260/221.md +109 -0
  195. package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//345/244/251/350/232/225/345/234/237/350/261/206.md +110 -0
  196. package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//346/210/221/345/220/203/350/245/277/347/272/242/346/237/277.md +108 -0
  197. package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//346/273/232/345/274/200.md +109 -0
  198. package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//350/276/260/344/270/234.md +109 -0
  199. package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//345/244/251/344/270/213/351/234/270/345/224/261.md +110 -0
  200. package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//346/234/210/345/205/263.md +108 -0
  201. package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//350/220/247/351/274/216.md +109 -0
  202. package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//350/235/264/350/235/266/350/223/235.md +112 -0
  203. package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//346/204/244/346/200/222/347/232/204/351/246/231/350/225/211.md +109 -0
  204. package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//347/203/275/347/201/253/346/210/217/350/257/270/344/276/257.md +109 -0
  205. package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//347/214/253/350/205/273.md +110 -0
  206. package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//350/200/263/346/240/271.md +109 -0
  207. package/skill/templates/INDEX.md +48 -0
  208. package/skill/templates/act-plan.md +72 -0
  209. package/skill/templates/chapter.md +53 -0
  210. package/skill/templates/character-profile.md +107 -0
  211. package/skill/templates/character-voice.md +106 -0
  212. package/skill/templates/constitution.md +90 -0
  213. package/skill/templates/emotional-arcs.md +37 -0
  214. package/skill/templates/hook-template.md +68 -0
  215. package/skill/templates/outline.md +155 -0
  216. package/skill/templates/plot-card.md +432 -0
  217. package/skill/templates/power-system.md +124 -0
  218. package/skill/templates/presets.json +69 -0
  219. package/skill/templates/review-report.md +135 -0
  220. package/skill/templates/scene-plan.md +221 -0
  221. package/skill/templates/scene-template.md +78 -0
  222. package/skill/templates/subplot-board.md +48 -0
  223. package/skill/templates/summary-10chapters.md +79 -0
  224. package/skill/templates/summary-50chapters.md +131 -0
  225. package/skill/templates/summary-volume.md +148 -0
  226. package/skill/templates/timeline.md +37 -0
  227. package/skill/templates/volume-plan.md +44 -0
  228. package/skill/templates/world-setting.md +151 -0
@@ -0,0 +1,59 @@
1
+ # NovelMaker 角色体系
2
+
3
+ NovelMaker v2.0 内部采用 6 角色协作架构。用户不直接感知角色,所有交互通过协调者进行。
4
+
5
+ ## 6 个角色
6
+
7
+ | 角色 | 文件 | 一句话职责 |
8
+ |------|------|-----------|
9
+ | 协调者 | [coordinator.md](coordinator.md) | 听用户的,决定让谁干活 |
10
+ | 规划师 | [planner.md](planner.md) | 决定写什么 |
11
+ | 写手 | [writer.md](writer.md) | 把字打出来 |
12
+ | 审计师 | [auditor.md](auditor.md) | 看完说哪里不好 |
13
+ | 修订师 | [reviser.md](reviser.md) | 负责把不好的修好 |
14
+ | 复盘师 | [reviewer.md](reviewer.md) | 记下经验,整理记忆 |
15
+
16
+ ## 协作流程
17
+
18
+ ```
19
+ 用户输入
20
+
21
+ [协调者] 意图识别
22
+
23
+ [规划师] → 大纲/剧情卡片
24
+
25
+ [写手] → 章节草稿
26
+
27
+ [审计师] → 审计报告
28
+
29
+ ├─ 通过 → [复盘师]
30
+ └─ 不通过 → [修订师] → [审计师](最多2轮)
31
+
32
+ 用户决策
33
+ ├─ 自动修订
34
+ ├─ 重写
35
+ └─ 忽略
36
+
37
+ [复盘师] → 真相文件更新 + 总结
38
+
39
+ [协调者] 输出
40
+
41
+ 用户决策
42
+ ├─ 满意 → 继续
43
+ ├─ 不满意 → 回写手重写
44
+ └─ 调整大纲 → 回规划师
45
+ ```
46
+
47
+ **关键循环点:**
48
+ 1. **审计不通过** → 修订师 → 复审(最多 2 轮,否则升级)
49
+ 2. **用户不满意** → 回写手重写
50
+ 3. **幕结束** → 回到规划师
51
+
52
+ ## 关键决策
53
+
54
+ - **概念角色**:6 个角色是"职责说明",不是 AI 切换的"人格面具"
55
+ - **temp/ 缓存**:角色间数据通过 temp/ 目录传递,避免 context 爆炸
56
+ - **失败降级**:每个角色失败都有降级策略,不静默跳过
57
+ - **用户决策点**:仅 2 个固定点(幕规划 + 审计不通过)
58
+
59
+ 详见 [规格文档](../../../../docs/superpowers/specs/2026-06-24-novel-maker-v2-architecture-redesign.md)
@@ -0,0 +1,234 @@
1
+ # 审计师(Auditor)
2
+
3
+ ## 职责
4
+ 看完说哪里不好:33 维度审计、编辑视角审查、爽点密度追踪、问题分级。
5
+
6
+ ## 触发条件
7
+ - /novel-maker review
8
+ - /novel-maker review consistency
9
+ - /novel-maker review pacing
10
+ - /novel-maker review ai味
11
+ - 写手完成一章节后(自动)
12
+ - 每 5 章(深度审查,自动)
13
+ - 卷末(深度审查,自动)
14
+
15
+ ## 输入
16
+
17
+ ### 待审内容
18
+ - 章节正文(temp/draft.md 或 novels/volume-XX/chapters/)
19
+ - 当前状态(state.json)
20
+
21
+ ### 对照文件
22
+ - 真相文件(8 个)
23
+ - 大纲/幕计划
24
+ - 创作宪法
25
+
26
+ ## 输出
27
+
28
+ ### 1. 审计报告
29
+ 文件位置:`temp/audit.json`
30
+
31
+ ```json
32
+ {
33
+ "chapter": "ch15",
34
+ "p0": [...], // 必须修复
35
+ "p1": [...], // 建议修复
36
+ "p2": [...], // 可选优化
37
+ "p3": [...], // 风格建议
38
+ "score": 8.5,
39
+ "summary": "..."
40
+ }
41
+ ```
42
+
43
+ ### 2. 33 维度评分
44
+ - 核心 7 项(每章必审)
45
+ - 扩展 26 项(每 5 章/卷末深度审)
46
+
47
+ ### 3. 编辑视角
48
+ - 番茄编辑视角
49
+ - 起点编辑视角
50
+ - 晋江编辑视角(如适用)
51
+
52
+ ### 4. 爽点密度
53
+ - 当前卷爽点分布
54
+ - 平台合规检查
55
+ - 建议调整
56
+
57
+ ## 工作流
58
+
59
+ ### 常规审计流程(每章)
60
+
61
+ **推荐方式**:使用 `pre_audit.py` 自动运行所有可审计维度:
62
+
63
+ ```bash
64
+ python scripts/auditor/pre_audit.py novels/volume-01/chapters/ch15.md --json
65
+ ```
66
+
67
+ 输出:字数检查 / 角色提取 / 章末钩子 / 节奏评估 / AI味检测 / 一致性扫描
68
+
69
+ 审计师只需读取预审计结果 + 章节摘要,专注做需要 AI 判断力的维度(角色OOC、情感弧线、追读力、编辑视角)。
70
+
71
+ **手动方式**(当脚本不可用时):
72
+
73
+ 1. 读取章节正文
74
+ 2. 读取对照文件
75
+ 3. 执行 7 核心维度
76
+ 4. 输出 P0/P1 问题
77
+ 5. 生成审计报告
78
+
79
+ ### 深度审计流程(每 5 章/卷末)
80
+
81
+ 1. 执行 7 核心维度
82
+ 2. 执行 26 扩展维度
83
+ 3. 编辑视角审查
84
+ 4. 爽点密度分析
85
+ 5. 输出完整报告
86
+
87
+ ## 33 维度清单
88
+
89
+ ### 核心 7 项(每章必审)
90
+
91
+ | 维度 | 检查内容 | P0 触发条件 |
92
+ |------|---------|------------|
93
+ | 角色记忆一致性 | 角色行为/动机与之前一致 | 角色 OOC |
94
+ | 物质连续性 | 物品/位置/时间不矛盾 | 物品凭空出现/消失 |
95
+ | 伏笔结构 | 伏笔埋设/回收合理 | 已埋未收且过 20 章 |
96
+ | 时间线逻辑 | 事件顺序合理 | 时间矛盾 |
97
+ | 力量体系规则 | 升级/战斗符合体系 | 体系违反 |
98
+ | 情感弧线连贯 | 情感变化自然 | 情感断裂 |
99
+ | 追读力评估 | 章末钩子强度 | 章末无钩子 |
100
+
101
+ ### 扩展 26 项(每 5 章/卷末)
102
+
103
+ | 维度 | 检查内容 |
104
+ |------|---------|
105
+ | 角色行为动机合理性 | 角色有合理动机 |
106
+ | 对话信息密度 | 对话推进剧情 |
107
+ | 场景转换流畅度 | 场景过渡自然 |
108
+ | 世界观细节一致性 | 细节不矛盾 |
109
+ | 节奏曲线匹配度 | 符合情绪曲线 |
110
+ | 爽点分布合理性 | 爽点密度合理 |
111
+ | 冲突设计 | 冲突有层次 |
112
+ | 角色关系网 | 关系合理 |
113
+ | 信息释放节奏 | 信息逐步揭示 |
114
+ | 意象/象征 | 文学性 |
115
+ | 修辞多样性 | 修辞丰富 |
116
+ | 视角一致性 | 视角统一 |
117
+ | 叙事张力 | 紧张感 |
118
+ | 人物辨识度 | 角色易区分 |
119
+ | 心理描写 | 心理活动 |
120
+ | 动作描写 | 动作清晰 |
121
+ | 环境描写 | 环境氛围 |
122
+ | 对话节奏 | 对话自然 |
123
+ | 留白艺术 | 适度留白 |
124
+ | 主题表达 | 主题清晰 |
125
+ | 价值观输出 | 价值观 |
126
+ | 商业化潜力 | 商业前景 |
127
+ | 读者粘性 | 持续吸引力 |
128
+ | 完结性 | 每章可独立 |
129
+ | 钩子类型 | 钩子多样 |
130
+ | 字数符合度 | 符合 2200-2800 |
131
+
132
+ ## 问题分级
133
+
134
+ ### P0 - 必须修复
135
+ - 设定矛盾
136
+ - 角色 OOC
137
+ - 逻辑硬伤
138
+ - 时间线冲突
139
+ - 力量体系违反
140
+
141
+ ### P1 - 建议修复
142
+ - 节奏失衡
143
+ - 伏笔遗漏
144
+ - 情感断裂
145
+ - 爽点缺失(连续 5 章)
146
+ - 钩子弱
147
+
148
+ ### P2 - 可选优化
149
+ - 文笔润色
150
+ - 描写增强
151
+ - 修辞优化
152
+ - 对话改进
153
+
154
+ ### P3 - 风格建议
155
+ - 用词替换
156
+ - 句式调整
157
+ - 词汇多样性
158
+ - 节奏微调
159
+
160
+ ## 33 维度评分
161
+
162
+ 每个维度 0-10 分:
163
+ - 9-10:优秀
164
+ - 7-8:良好
165
+ - 5-6:合格
166
+ - 3-4:需改进
167
+ - 0-2:不合格
168
+
169
+ 总分 7.0+ 为通过。
170
+
171
+ ## 异常处理
172
+ - 章节文件缺失:警告并跳过
173
+ - 真相文件缺失:使用默认设定
174
+ - 审计超时:保留已审维度的结果
175
+ - 审计失败:跳过修订直接输出
176
+
177
+ ## 编辑视角审查
178
+
179
+ ### 番茄编辑视角
180
+ - 爽点密度:每 3 章至少 1 个爽点
181
+ - 节奏问题:连续 5+ 章慢节奏
182
+ - 人设问题:角色 OOC
183
+ - 商业化潜力:签约可能性
184
+
185
+ ### 起点编辑视角
186
+ - 世界观展开:逐步展开
187
+ - 升级节奏:合理升级
188
+ - 读者粘性:钩子设计
189
+
190
+ ### 晋江编辑视角(言情/纯爱)
191
+ - 情感线进展
192
+ - 角色魅力
193
+ - 主题表达
194
+ - 商业化潜力
195
+
196
+ ## 爽点密度追踪
197
+
198
+ ### 爽点类型
199
+
200
+ | 类型 | 关键词 | 强度 |
201
+ |------|---------|------|
202
+ | 打脸爽 | 打脸、嘲讽、嗤笑 | ⭐⭐⭐ |
203
+ | 突破爽 | 突破、升级、顿悟 | ⭐⭐⭐⭐ |
204
+ | 逆袭爽 | 反杀、绝地翻盘 | ⭐⭐⭐⭐⭐ |
205
+ | 装逼爽 | 淡然、一招、镇压 | ⭐⭐⭐ |
206
+ | 复仇爽 | 复仇、追杀、血债 | ⭐⭐⭐⭐⭐ |
207
+
208
+ ### 平台要求
209
+
210
+ | 平台 | 爽点要求 | 钩子要求 |
211
+ |------|---------|---------|
212
+ | 番茄 | 每 3 章至少 1 个 | 章末必钩 |
213
+ | 起点 | 每 5 章至少 1 个高潮 | 适度 |
214
+ | 晋江 | 情感波动 | 章末留白 |
215
+
216
+ ## 数据流
217
+
218
+ ```
219
+ [协调者] 调用审计师
220
+
221
+ [审计师] 读取章节正文
222
+
223
+ [审计师] 读取对照文件
224
+
225
+ [审计师] 执行审计(33 维度)
226
+
227
+ [审计师] 编辑视角审查
228
+
229
+ [审计师] 爽点密度分析
230
+
231
+ [审计师] 写入 temp/audit.json
232
+
233
+ [协调者] 读取并展示
234
+ ```
@@ -0,0 +1,150 @@
1
+ # 协调者(Coordinator)
2
+
3
+ ## 职责
4
+ 用户入口,意图识别,调度其他 5 个角色,汇总结果。
5
+
6
+ ## 触发条件
7
+ 所有用户输入的第一站。
8
+
9
+ ## 输入
10
+ - 用户自然语言或 /novel-maker 指令
11
+ - 当前状态(state.json)
12
+
13
+ ## 输出
14
+ - 调度指令
15
+ - 汇总的角色输出
16
+ - 错误处理结果
17
+
18
+ ## 工作流
19
+
20
+ 1. 解析用户输入(自然语言或 /novel-maker 指令)
21
+ 2. 识别意图(参见意图映射表)
22
+ 3. 调度对应角色(写状态到 state.json)
23
+ 4. 等待结果(读 temp/ 对应文件)
24
+ 5. 汇总输出
25
+ 6. 错误处理(参见失败恢复)
26
+
27
+ ## 意图映射表
28
+
29
+ ### 核心指令
30
+
31
+ | 用户输入 | 调度角色 | 备注 |
32
+ |---------|---------|------|
33
+ | /novel-maker init | 协调者自己 | 6问引导 |
34
+ | /novel-maker write | 写手→审计师→修订师→复盘师 | 完整流程 |
35
+ | /novel-maker review | 审计师→修订师 | 仅审查修订 |
36
+ | /novel-maker plan | 规划师 | 大纲规划 |
37
+ | /novel-maker act | 规划师(幕模式) | 幕规划 |
38
+ | /novel-maker memory | 复盘师 | 查询真相文件 |
39
+ | /novel-maker stats | 协调者调用脚本 | 统计 |
40
+ | /novel-maker help | 协调者 | 帮助 |
41
+ | /novel-maker expand | 写手 | 扩写 |
42
+ | /novel-maker style | 协调者 | 文风设置 |
43
+ | /novel-maker inspire | 规划师 | 灵感 |
44
+ | /novel-maker summary | 复盘师 | 总结 |
45
+
46
+ ### 自然语言
47
+
48
+ | 自然语言 | 调度角色 | 备注 |
49
+ |---------|---------|------|
50
+ | "开始写小说" / "我想写一本修仙小说" | 协调者自己 | 同 /init |
51
+ | "继续写" / "帮我写下一章" | 写手→审计师→修订师→复盘师 | 同 /write |
52
+ | "检查一下" / "看看有没有问题" | 审计师→修订师 | 同 /review |
53
+ | "下一幕怎么走" / "给我剧情建议" | 规划师 | 同 /act |
54
+ | "主角什么等级" / "列出所有角色" | 复盘师 | 同 /memory |
55
+ | "重写" / "这段不行" | 写手 | 重写最近章节 |
56
+ | "统计字数" | 协调者调用脚本 | 同 /stats |
57
+
58
+ ## 状态管理
59
+
60
+ 维护 `state.json`:
61
+
62
+ ```json
63
+ {
64
+ "current_volume": 1,
65
+ "current_act": 2,
66
+ "current_chapter": 15,
67
+ "phase": "writing",
68
+ "status": "in_progress",
69
+ "emotion_label": "打脸爽文",
70
+ "style": "天蚕土豆",
71
+ "last_audit_chapter": 10,
72
+ "last_summary_chapter": 10,
73
+ "current_volume_chapters": 30
74
+ }
75
+ ```
76
+
77
+ ## 异常处理
78
+ - 角色失败:跳过该角色 + 通知用户
79
+ - 用户中断:保存进度到 state.json
80
+ - 状态不一致:重置 state.json 并警告
81
+ - 指令无法识别:请求用户澄清
82
+
83
+ ## 失败恢复策略
84
+
85
+ | 角色 | 重试次数 | 降级策略 | 通知用户 |
86
+ |------|---------|---------|---------|
87
+ | 写手 | 1 次 | 重试失败后通知 | ✅ |
88
+ | 审计师 | 0 次 | 跳过审计直接输出 | ✅ |
89
+ | 修订师 | 0 次 | 跳过修订直接输出 | ✅(附警告) |
90
+ | 复盘师 | 0 次 | 跳过真相文件更新 | ⚠️(仅警告) |
91
+ | 规划师 | 0 次 | 使用现有大纲 | ✅ |
92
+
93
+ ## 数据传递
94
+ - 角色 A 输出 → 写入 `temp/` 对应文件
95
+ - 角色 B 输入 → 读取 `temp/` 对应文件
96
+ - 不通过 AI context 传递
97
+
98
+ ## Token 优化脚本集成
99
+
100
+ 协调者在调度角色时自动运行以下脚本,减少 token 消耗:
101
+
102
+ | 调度流程 | 脚本 | 节省 |
103
+ |---------|------|------|
104
+ | 写手写作前 | `scripts/writer/build_write_context.py` 构建精简上下文 | ~45,000 token/章 |
105
+ | 审计师审查前 | `scripts/auditor/pre_audit.py` 运行自动化审计 | ~25,000 token/章 |
106
+ | 复盘师复盘前 | `scripts/reviewer/truth_diff.py` 检测变更 | ~40,000 token/章 |
107
+ | 规划师规划前 | `scripts/planner/planner_context.py` 构建精简上下文 | ~25,000 token/幕 |
108
+ | 修订师修订后 | `scripts/reviewer/chapter_diff.py` 对比原稿和修订稿 | ~8,000 token/章 |
109
+
110
+ ## 临时文件约定
111
+
112
+ | 文件 | 角色 | 内容 |
113
+ |------|------|------|
114
+ | temp/planning.json | 规划师 | 剧情卡片 |
115
+ | temp/draft.md | 写手 | 章节草稿 |
116
+ | temp/audit.json | 审计师 | 审计报告 |
117
+ | temp/revised.md | 修订师 | 修订稿 |
118
+ | temp/char-update.json | 复盘师 | 角色状态更新 |
119
+ | temp/hook-update.json | 复盘师 | 伏笔状态更新 |
120
+
121
+ ## 用户决策点
122
+
123
+ ### 决策点 1:幕规划时
124
+
125
+ ```
126
+ [规划师] 生成 6 条剧情走向
127
+
128
+ [用户] 选择 / 调整 / 自定义
129
+
130
+ 继续
131
+ ```
132
+
133
+ ### 决策点 2:审计不通过时
134
+
135
+ ```
136
+ [审计师] 输出审计报告(含 P0/P1)
137
+
138
+ [用户] 决策
139
+ ├─ 自动修订(修订师处理)
140
+ ├─ 重写(回写手)
141
+ └─ 忽略(继续,记录警告)
142
+
143
+ 继续
144
+ ```
145
+
146
+ ## 输出格式
147
+ - 默认 Markdown 格式
148
+ - 长内容使用引用块
149
+ - 代码块保留代码原格式
150
+ - 列表用 `-` 而非数字
@@ -0,0 +1,220 @@
1
+ # 规划师(Planner)
2
+
3
+ ## 职责
4
+ 想清楚写什么:生成大纲、幕规划、剧情走向推荐、灵感建议、偏离检查。
5
+
6
+ ## 触发条件
7
+ - /novel-maker plan
8
+ - /novel-maker act
9
+ - /novel-maker inspire
10
+ - 协调者调度
11
+ - 幕结束(自动)
12
+
13
+ ## 输入
14
+
15
+ ### 设定信息
16
+ - 题材(玄幻/都市/仙侠/悬疑/历史/科幻等)
17
+ - 情绪标签(6 大标签之一)
18
+ - 一句话简介
19
+ - 主角(姓名、核心反差点、核心目标)
20
+ - 核心冲突
21
+ - 章节数/文风/基调
22
+
23
+ ### 真相文件
24
+ - `truth-files/characters.md`(角色)
25
+ - `truth-files/current-state.md`(世界状态)
26
+ - `truth-files/world-setting.md`(世界观)
27
+ - `truth-files/power-system.md`(力量体系)
28
+ - `truth-files/pending-hooks.md`(伏笔表)
29
+ - `truth-files/emotional-arcs.md`(情感弧线)
30
+ - `truth-files/subplot-board.md`(支线看板)
31
+ - `truth-files/timeline.md`(时间线)
32
+
33
+ ### 当前进度
34
+ - `state.json`(当前卷/幕/章)
35
+ - 现有大纲(novels/outline.md)
36
+ - 已写卷(novels/volume-XX/)
37
+
38
+ ## Token 优化
39
+
40
+ **推荐方式**:使用 `planner_context.py` 自动生成精简上下文(~5000 token),替代手动读取全部真相文件+大纲(~30,000 token):
41
+
42
+ ```bash
43
+ python scripts/planner/planner_context.py --volume 01 --act 2 --json
44
+ ```
45
+
46
+ 输出:卷进度 / 真相文件摘要 / 大纲目标 / 活跃伏笔 / 活跃支线
47
+
48
+ ## 输出
49
+
50
+ ### 1. 大纲
51
+ 文件位置:`novels/outline.md`
52
+ - 三幕结构(铺垫/对抗/解决)
53
+ - 分卷大纲
54
+ - 角色设定
55
+ - 世界观框架
56
+
57
+ ### 2. 幕计划
58
+ 文件位置:`novels/volume-XX/plan.md`
59
+ - 幕划分(每卷 3-6 幕)
60
+ - 每幕核心事件
61
+ - 情绪曲线标注
62
+
63
+ ### 3. 剧情卡片
64
+ 文件位置:`temp/planning.json`
65
+ - 6 条剧情走向
66
+ - 每条包含:类型、核心事件、推荐度、章节数、伏笔处理
67
+
68
+ ### 4. 灵感建议
69
+ 直接输出给用户
70
+ - 剧情建议
71
+ - 冲突设计
72
+ - 爽点建议
73
+ - 角色建议
74
+
75
+ ### 5. 偏离检查报告
76
+ 文件位置:`temp/planning.json`
77
+ - 偏离等级(🟢/🟡/🟠/🔴)
78
+ - 偏离影响
79
+ - 调整建议
80
+
81
+ ## 工作流
82
+
83
+ 1. 读取设定和真相文件
84
+ 2. 根据调用类型确定输出(大纲/幕计划/剧情卡片/灵感)
85
+ 3. 生成输出内容
86
+ 4. 写入对应位置
87
+ 5. 偏离检查(如果用户已选剧情)
88
+ 6. 更新真相文件(如需要)
89
+
90
+ ## 输出文件位置
91
+
92
+ | 输出 | 文件位置 |
93
+ |------|---------|
94
+ | 总大纲 | `novels/outline.md` |
95
+ | 卷计划 | `novels/volume-XX/plan.md` |
96
+ | 幕计划 | `novels/volume-XX/act-plan.md` |
97
+ | 剧情卡片 | `temp/planning.json` |
98
+ | 灵感建议 | 直接输出 |
99
+ | 偏离检查 | `temp/planning.json` |
100
+
101
+ ## 剧情卡片结构
102
+
103
+ 每条剧情走向包含以下字段:
104
+
105
+ ```json
106
+ {
107
+ "direction_type": "主线推进/危机升级/支线展开/缓冲沉淀/回环收束/颠覆转向",
108
+ "title": "剧情走向标题",
109
+ "preview": {
110
+ "chapters": 8,
111
+ "summary": "剧情概要",
112
+ "breakdown": [
113
+ {"range": "1-3", "summary": "第一章到第三章概要"},
114
+ {"range": "4-6", "summary": "第四章到第六章概要"},
115
+ {"range": "7-8", "summary": "第七章到第八章概要"}
116
+ ]
117
+ },
118
+ "advantages": {
119
+ "core": "核心优势",
120
+ "emotional": "情绪价值",
121
+ "commercial": "商业价值",
122
+ "reader_attraction": "读者吸引力"
123
+ },
124
+ "reference": {
125
+ "novel": "参考作品名",
126
+ "chapter": "参考章节",
127
+ "bridge_type": "桥段类型",
128
+ "point": "借鉴要点",
129
+ "innovation": "创新点"
130
+ },
131
+ "chapters": 8,
132
+ "chapter_range": {"min": 6, "max": 12},
133
+ "emotion_curve": "情绪曲线描述",
134
+ "hooks_recovered": ["伏笔1", "伏笔2"],
135
+ "hooks_buried": ["新伏笔1"],
136
+ "deviation_impact": {
137
+ "score": 2,
138
+ "level": "轻微",
139
+ "description": "不影响主线,但需要调整第15章的伏笔回收",
140
+ "adjustment_needed": ["第15章伏笔X"],
141
+ "suggestion": "建议在第14章增加伏笔Y的铺垫"
142
+ },
143
+ "recommendation": {
144
+ "recommended": true,
145
+ "reason": "推荐理由",
146
+ "alternative": "备选方案"
147
+ }
148
+ }
149
+ ```
150
+
151
+ ## 六种剧情分支
152
+
153
+ | 类型 | 说明 | 适用场景 |
154
+ |------|------|---------|
155
+ | A. 主线推进 | 直接推进核心目标 | 铺垫充足,情绪升势 |
156
+ | B. 危机升级 | 引入新威胁 | 节奏偏缓需拉紧 |
157
+ | C. 支线展开 | 展开配角/暗线 | 世界观需要丰满 |
158
+ | D. 缓冲沉淀 | 日常/修炼/情感深化 | 连续 3+ 章高潮后 |
159
+ | E. 回环收束 | 回收多条伏笔 | 前期伏笔过多 |
160
+ | F. 颠覆转向 | 揭示颠覆性信息 | 重大转折,高风险 |
161
+
162
+ ## 偏离检查标准
163
+
164
+ | 等级 | 标准 | 处理 |
165
+ |------|------|------|
166
+ | 🟢 无偏离 | 符合原大纲 | 继续 |
167
+ | 🟡 轻微 | 局部调整 | 记录,继续 |
168
+ | 🟠 中度 | 影响整体节奏 | 警告,建议调整 |
169
+ | 🔴 严重 | 颠覆整体方向 | 询问用户是否调整大纲 |
170
+
171
+ ## 异常处理
172
+ - 设定不全:询问用户补全
173
+ - 真相文件缺失:使用默认值并警告
174
+ - 生成失败:降级到上一版
175
+ - 数据冲突:保留最新版本
176
+
177
+ ## 灵感助手功能
178
+
179
+ ### 剧情建议
180
+ 基于当前剧情,给出短期/长期走向建议。
181
+
182
+ ### 冲突设计
183
+ - 人际冲突(角色与角色)
184
+ - 内在冲突(角色与自我)
185
+ - 外部冲突(角色与环境)
186
+
187
+ ### 爽点建议
188
+ - 打脸爽
189
+ - 逆袭爽
190
+ - 突破爽
191
+ - 装逼爽
192
+ - 复仇爽
193
+ - 装逼打脸(综合)
194
+
195
+ ### 评论区诱导
196
+ 在关键节点设计留白:
197
+ - 悬念("主角能不能打过?")
198
+ - 争议("反派该不该死?")
199
+ - 期待("下一步会怎样?")
200
+
201
+ ### 角色建议
202
+ - 新角色出场建议
203
+ - 角色关系设计
204
+ - 角色弧光设计
205
+
206
+ ## 数据流
207
+
208
+ ```
209
+ [协调者] 调用规划师
210
+
211
+ [规划师] 读取所有真相文件
212
+
213
+ [规划师] 读取大纲/幕计划
214
+
215
+ [规划师] 生成输出
216
+
217
+ [规划师] 写入对应位置
218
+
219
+ [协调者] 读取输出并展示
220
+ ```