novelws 3.0.0 → 4.0.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 (237) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/README.md +94 -66
  3. package/dist/commands/init.d.ts.map +1 -1
  4. package/dist/commands/init.js +35 -33
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/upgrade.d.ts.map +1 -1
  7. package/dist/commands/upgrade.js +63 -6
  8. package/dist/commands/upgrade.js.map +1 -1
  9. package/dist/core/config.d.ts +22 -15
  10. package/dist/core/config.d.ts.map +1 -1
  11. package/dist/core/config.js +28 -16
  12. package/dist/core/config.js.map +1 -1
  13. package/dist/core/errors.d.ts +16 -0
  14. package/dist/core/errors.d.ts.map +1 -1
  15. package/dist/core/errors.js +26 -0
  16. package/dist/core/errors.js.map +1 -1
  17. package/dist/utils/diagnostics.d.ts +64 -0
  18. package/dist/utils/diagnostics.d.ts.map +1 -0
  19. package/dist/utils/diagnostics.js +227 -0
  20. package/dist/utils/diagnostics.js.map +1 -0
  21. package/package.json +1 -1
  22. package/templates/commands/analyze.md +27 -110
  23. package/templates/commands/character.md +32 -180
  24. package/templates/commands/checklist.md +27 -27
  25. package/templates/commands/clarify.md +2 -2
  26. package/templates/commands/constitution.md +8 -8
  27. package/templates/commands/expert.md +3 -3
  28. package/templates/commands/facts.md +9 -9
  29. package/templates/commands/guide.md +129 -19
  30. package/templates/commands/help-me.md +221 -0
  31. package/templates/commands/plan.md +27 -26
  32. package/templates/commands/recap.md +16 -16
  33. package/templates/commands/relations.md +13 -13
  34. package/templates/commands/revise.md +16 -15
  35. package/templates/commands/search.md +11 -10
  36. package/templates/commands/specify.md +4 -4
  37. package/templates/commands/tasks.md +9 -9
  38. package/templates/commands/timeline.md +13 -13
  39. package/templates/commands/track-init.md +8 -8
  40. package/templates/commands/track.md +177 -552
  41. package/templates/commands/volume-summary.md +6 -6
  42. package/templates/commands/write.md +148 -38
  43. package/templates/dot-claude/CLAUDE.md +5 -5
  44. package/templates/{config → resources/config}/keyword-mappings.json +19 -19
  45. package/templates/resources/genres/horror.md +211 -0
  46. package/templates/resources/genres/military.md +209 -0
  47. package/templates/resources/genres/sports.md +216 -0
  48. package/templates/resources/genres/workplace.md +214 -0
  49. package/templates/resources/genres/youth.md +219 -0
  50. package/templates/{knowledge-base/requirements/anti-ai-v4.md → resources/requirements/anti-ai-v4-deprecated.md} +13 -1
  51. package/templates/resources/requirements/anti-ai-v5-balanced.md +203 -0
  52. package/templates/{scripts → resources/scripts}/README.md +8 -8
  53. package/templates/{scripts → resources/scripts}/bash/analyze-story.sh +1 -1
  54. package/templates/resources/scripts/bash/check-analyze-stage.sh +108 -0
  55. package/templates/{scripts → resources/scripts}/bash/check-consistency.sh +7 -7
  56. package/templates/{scripts → resources/scripts}/bash/check-facts.sh +1 -1
  57. package/templates/{scripts → resources/scripts}/bash/check-plot.sh +2 -2
  58. package/templates/{scripts → resources/scripts}/bash/check-timeline.sh +3 -3
  59. package/templates/{scripts → resources/scripts}/bash/check-world.sh +5 -5
  60. package/templates/{scripts → resources/scripts}/bash/check-writing-state.sh +26 -26
  61. package/templates/{scripts → resources/scripts}/bash/common.sh +3 -3
  62. package/templates/{scripts → resources/scripts}/bash/constitution.sh +1 -1
  63. package/templates/{scripts → resources/scripts}/bash/init-tracking.sh +13 -13
  64. package/templates/{scripts → resources/scripts}/bash/manage-relations.sh +10 -10
  65. package/templates/resources/scripts/bash/migrate-tracking.sh +183 -0
  66. package/templates/{scripts → resources/scripts}/bash/plan-story.sh +2 -2
  67. package/templates/{scripts → resources/scripts}/bash/specify-story.sh +1 -1
  68. package/templates/{scripts → resources/scripts}/bash/tasks-story.sh +2 -2
  69. package/templates/{scripts → resources/scripts}/bash/tests/bench-preload-cache.sh +3 -3
  70. package/templates/{scripts → resources/scripts}/bash/tests/test-cross-platform.sh +1 -1
  71. package/templates/{scripts → resources/scripts}/bash/tests/test-preload-cache.sh +1 -1
  72. package/templates/{scripts → resources/scripts}/bash/tests/test-regex-precompile.sh +4 -4
  73. package/templates/{scripts → resources/scripts}/bash/text-audit.sh +3 -3
  74. package/templates/{scripts → resources/scripts}/bash/track-progress.sh +5 -5
  75. package/templates/{scripts → resources/scripts}/powershell/analyze-story.ps1 +1 -1
  76. package/templates/{scripts → resources/scripts}/powershell/check-consistency.ps1 +8 -8
  77. package/templates/{scripts → resources/scripts}/powershell/check-plot.ps1 +2 -2
  78. package/templates/{scripts → resources/scripts}/powershell/check-timeline.ps1 +2 -2
  79. package/templates/{scripts → resources/scripts}/powershell/check-writing-state.ps1 +31 -31
  80. package/templates/{scripts → resources/scripts}/powershell/common.ps1 +2 -2
  81. package/templates/{scripts → resources/scripts}/powershell/constitution.ps1 +1 -1
  82. package/templates/{scripts → resources/scripts}/powershell/init-tracking.ps1 +5 -5
  83. package/templates/{scripts → resources/scripts}/powershell/manage-relations.ps1 +6 -6
  84. package/templates/{scripts → resources/scripts}/powershell/migrate-tracking.ps1 +1 -1
  85. package/templates/{scripts → resources/scripts}/powershell/plan-story.ps1 +2 -2
  86. package/templates/{scripts → resources/scripts}/powershell/specify-story.ps1 +1 -1
  87. package/templates/{scripts → resources/scripts}/powershell/tests/bench-ps-cache.ps1 +10 -10
  88. package/templates/{scripts → resources/scripts}/powershell/tests/test-ps-cache.ps1 +4 -4
  89. package/templates/{scripts → resources/scripts}/powershell/text-audit.ps1 +2 -2
  90. package/templates/{scripts → resources/scripts}/powershell/track-progress.ps1 +2 -2
  91. package/templates/skills/analysis/character-analysis/SKILL.md +1 -1
  92. package/templates/skills/analysis/foreshadow-analysis/SKILL.md +1 -1
  93. package/templates/skills/analysis/hook-analysis/SKILL.md +2 -2
  94. package/templates/skills/analysis/logic-analysis/SKILL.md +2 -2
  95. package/templates/skills/analysis/opening-analysis/SKILL.md +1 -1
  96. package/templates/skills/analysis/pacing-analysis/SKILL.md +1 -1
  97. package/templates/skills/analysis/power-analysis/SKILL.md +3 -3
  98. package/templates/skills/analysis/reader-analysis/SKILL.md +1 -1
  99. package/templates/skills/analysis/style-analysis/SKILL.md +1 -1
  100. package/templates/skills/analysis/voice-analysis/SKILL.md +1 -1
  101. package/templates/skills/auto-tracking/SKILL.md +1 -1
  102. package/templates/skills/quality-assurance/consistency-checker/SKILL.md +1 -1
  103. package/templates/skills/quality-assurance/facts-checker/SKILL.md +2 -2
  104. package/templates/skills/quality-assurance/hook-checker/SKILL.md +2 -2
  105. package/templates/skills/quality-assurance/long-series-continuity/SKILL.md +7 -7
  106. package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +22 -22
  107. package/templates/skills/quality-assurance/setting-detector/SKILL.md +15 -15
  108. package/templates/skills/quality-assurance/voice-consistency-checker/SKILL.md +1 -1
  109. package/templates/skills/writing-techniques/character-arc/SKILL.md +1 -1
  110. package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +1 -1
  111. package/templates/skills/writing-techniques/reader-expectation/SKILL.md +1 -1
  112. package/templates/skills/writing-techniques/revision-polish/SKILL.md +1 -1
  113. package/templates/skills/writing-techniques/style-learning/SKILL.md +2 -2
  114. package/templates/skills/writing-techniques/writing-balance/.gitkeep +0 -0
  115. package/templates/skills/writing-techniques/writing-balance/SKILL.md +460 -0
  116. package/templates/skills/writing-techniques/writing-techniques/SKILL.md +727 -0
  117. package/templates/knowledge-base/README.md +0 -285
  118. package/templates/scripts/powershell/check-writing-state.ps1.backup +0 -135
  119. /package/templates/{knowledge-base → resources}/character-archetypes/01-hero.md +0 -0
  120. /package/templates/{knowledge-base → resources}/character-archetypes/02-mentor.md +0 -0
  121. /package/templates/{knowledge-base → resources}/character-archetypes/03-shadow.md +0 -0
  122. /package/templates/{knowledge-base → resources}/character-archetypes/04-ally.md +0 -0
  123. /package/templates/{knowledge-base → resources}/character-archetypes/05-shapeshifter.md +0 -0
  124. /package/templates/{knowledge-base → resources}/character-archetypes/06-trickster.md +0 -0
  125. /package/templates/{knowledge-base → resources}/character-archetypes/07-threshold-guardian.md +0 -0
  126. /package/templates/{knowledge-base → resources}/character-archetypes/08-herald.md +0 -0
  127. /package/templates/{knowledge-base → resources}/character-archetypes/09-father.md +0 -0
  128. /package/templates/{knowledge-base → resources}/character-archetypes/10-mother.md +0 -0
  129. /package/templates/{knowledge-base → resources}/character-archetypes/11-child.md +0 -0
  130. /package/templates/{knowledge-base → resources}/character-archetypes/12-sage.md +0 -0
  131. /package/templates/{knowledge-base → resources}/character-archetypes/README.md +0 -0
  132. /package/templates/{knowledge-base → resources}/character-archetypes/application-guide.md +0 -0
  133. /package/templates/{knowledge-base → resources}/character-archetypes/archetype-combinations.md +0 -0
  134. /package/templates/{knowledge-base → resources}/character-archetypes/config.yaml +0 -0
  135. /package/templates/{knowledge-base → resources}/character-archetypes/examples-analysis.md +0 -0
  136. /package/templates/{specification-example.md → resources/config/specification-example.md} +0 -0
  137. /package/templates/{knowledge-base → resources}/craft/character-arc.md +0 -0
  138. /package/templates/{knowledge-base → resources}/craft/dialogue.md +0 -0
  139. /package/templates/{knowledge-base → resources}/craft/hook-design.md +0 -0
  140. /package/templates/{knowledge-base → resources}/craft/pacing.md +0 -0
  141. /package/templates/{knowledge-base → resources}/craft/power-system.md +0 -0
  142. /package/templates/{knowledge-base → resources}/craft/scene-structure.md +0 -0
  143. /package/templates/{knowledge-base → resources}/craft/show-not-tell.md +0 -0
  144. /package/templates/{knowledge-base → resources}/craft/story-structures.md +0 -0
  145. /package/templates/{knowledge-base → resources}/craft/tension-management.md +0 -0
  146. /package/templates/{knowledge-base → resources}/emotional-beats/01-first-meeting.md +0 -0
  147. /package/templates/{knowledge-base → resources}/emotional-beats/02-bonding-moment.md +0 -0
  148. /package/templates/{knowledge-base → resources}/emotional-beats/03-declaration.md +0 -0
  149. /package/templates/{knowledge-base → resources}/emotional-beats/04-triumph.md +0 -0
  150. /package/templates/{knowledge-base → resources}/emotional-beats/05-reunion.md +0 -0
  151. /package/templates/{knowledge-base → resources}/emotional-beats/06-forgiveness.md +0 -0
  152. /package/templates/{knowledge-base → resources}/emotional-beats/07-betrayal.md +0 -0
  153. /package/templates/{knowledge-base → resources}/emotional-beats/08-loss.md +0 -0
  154. /package/templates/{knowledge-base → resources}/emotional-beats/09-rejection.md +0 -0
  155. /package/templates/{knowledge-base → resources}/emotional-beats/10-failure.md +0 -0
  156. /package/templates/{knowledge-base → resources}/emotional-beats/11-misunderstanding.md +0 -0
  157. /package/templates/{knowledge-base → resources}/emotional-beats/12-farewell.md +0 -0
  158. /package/templates/{knowledge-base → resources}/emotional-beats/13-revelation.md +0 -0
  159. /package/templates/{knowledge-base → resources}/emotional-beats/14-point-of-no-return.md +0 -0
  160. /package/templates/{knowledge-base → resources}/emotional-beats/15-dark-night.md +0 -0
  161. /package/templates/{knowledge-base → resources}/emotional-beats/16-sacrifice.md +0 -0
  162. /package/templates/{knowledge-base → resources}/emotional-beats/17-awakening.md +0 -0
  163. /package/templates/{knowledge-base → resources}/emotional-beats/18-confrontation.md +0 -0
  164. /package/templates/{knowledge-base → resources}/emotional-beats/19-bittersweet-goodbye.md +0 -0
  165. /package/templates/{knowledge-base → resources}/emotional-beats/20-moral-dilemma.md +0 -0
  166. /package/templates/{knowledge-base → resources}/emotional-beats/21-temptation.md +0 -0
  167. /package/templates/{knowledge-base → resources}/emotional-beats/22-redemption.md +0 -0
  168. /package/templates/{knowledge-base → resources}/emotional-beats/README.md +0 -0
  169. /package/templates/{knowledge-base → resources}/emotional-beats/beat-sequences.md +0 -0
  170. /package/templates/{knowledge-base → resources}/emotional-beats/config.yaml +0 -0
  171. /package/templates/{knowledge-base → resources}/emotional-beats/pacing-guide.md +0 -0
  172. /package/templates/{knowledge-base → resources}/genres/game-lit.md +0 -0
  173. /package/templates/{knowledge-base → resources}/genres/historical.md +0 -0
  174. /package/templates/{knowledge-base → resources}/genres/mystery.md +0 -0
  175. /package/templates/{knowledge-base → resources}/genres/rebirth.md +0 -0
  176. /package/templates/{knowledge-base → resources}/genres/revenge.md +0 -0
  177. /package/templates/{knowledge-base → resources}/genres/romance.md +0 -0
  178. /package/templates/{knowledge-base → resources}/genres/sci-fi.md +0 -0
  179. /package/templates/{knowledge-base → resources}/genres/thriller.md +0 -0
  180. /package/templates/{knowledge-base → resources}/genres/urban.md +0 -0
  181. /package/templates/{knowledge-base → resources}/genres/wuxia.md +0 -0
  182. /package/templates/{knowledge-base → resources}/genres/xuanhuan.md +0 -0
  183. /package/templates/{memory → resources/memory}/constitution.md +0 -0
  184. /package/templates/{memory → resources/memory}/personal-voice.md +0 -0
  185. /package/templates/{knowledge-base → resources}/references/README.md +0 -0
  186. /package/templates/{knowledge-base → resources}/references/china-1920s/culture.md +0 -0
  187. /package/templates/{knowledge-base → resources}/references/china-1920s/daily-life.md +0 -0
  188. /package/templates/{knowledge-base → resources}/references/china-1920s/overview.md +0 -0
  189. /package/templates/{knowledge-base → resources}/references/china-1920s/society.md +0 -0
  190. /package/templates/{knowledge-base → resources}/references/china-1920s/warlords.md +0 -0
  191. /package/templates/{knowledge-base → resources}/references/cultivation-world/daily-life.md +0 -0
  192. /package/templates/{knowledge-base → resources}/references/cultivation-world/overview.md +0 -0
  193. /package/templates/{knowledge-base → resources}/references/cultivation-world/power-system.md +0 -0
  194. /package/templates/{knowledge-base → resources}/references/cultivation-world/sects.md +0 -0
  195. /package/templates/{knowledge-base → resources}/references/cultivation-world/world-setting.md +0 -0
  196. /package/templates/{knowledge-base → resources}/references/modern-workplace/corporate.md +0 -0
  197. /package/templates/{knowledge-base → resources}/references/modern-workplace/daily-life.md +0 -0
  198. /package/templates/{knowledge-base → resources}/references/modern-workplace/overview.md +0 -0
  199. /package/templates/{knowledge-base → resources}/references/modern-workplace/relationships.md +0 -0
  200. /package/templates/{knowledge-base → resources}/references/modern-workplace/tech-industry.md +0 -0
  201. /package/templates/{knowledge-base → resources}/references/tang-dynasty/culture.md +0 -0
  202. /package/templates/{knowledge-base → resources}/references/tang-dynasty/daily-life.md +0 -0
  203. /package/templates/{knowledge-base → resources}/references/tang-dynasty/overview.md +0 -0
  204. /package/templates/{knowledge-base → resources}/references/tang-dynasty/politics.md +0 -0
  205. /package/templates/{knowledge-base → resources}/references/tang-dynasty/society.md +0 -0
  206. /package/templates/{knowledge-base → resources}/requirements/README.md +0 -0
  207. /package/templates/{knowledge-base → resources}/requirements/anti-ai-v3.md +0 -0
  208. /package/templates/{knowledge-base → resources}/requirements/concretization.md +0 -0
  209. /package/templates/{knowledge-base → resources}/requirements/fast-paced.md +0 -0
  210. /package/templates/{knowledge-base → resources}/requirements/no-poison.md +0 -0
  211. /package/templates/{knowledge-base → resources}/requirements/romance-angst.md +0 -0
  212. /package/templates/{knowledge-base → resources}/requirements/romance-sweet.md +0 -0
  213. /package/templates/{knowledge-base → resources}/requirements/serious-literature.md +0 -0
  214. /package/templates/{knowledge-base → resources}/requirements/strong-emotion.md +0 -0
  215. /package/templates/{scripts → resources/scripts}/bash/clarify-story.sh +0 -0
  216. /package/templates/{scripts → resources/scripts}/bash/generate-tasks.sh +0 -0
  217. /package/templates/{scripts → resources/scripts}/bash/test-word-count.sh +0 -0
  218. /package/templates/{scripts → resources/scripts}/bash/tests/run-all-benchmarks.sh +0 -0
  219. /package/templates/{scripts → resources/scripts}/bash/tests/test-cache-semantics.sh +0 -0
  220. /package/templates/{scripts → resources/scripts}/bash/tests/test-edge-cases-bash.sh +0 -0
  221. /package/templates/{scripts → resources/scripts}/bash/tests/test-phase1-bash.sh +0 -0
  222. /package/templates/{scripts → resources/scripts}/bash/tests/test-regression-bash.sh +0 -0
  223. /package/templates/{scripts → resources/scripts}/bash/tests/test-task6-verification.sh +0 -0
  224. /package/templates/{scripts → resources/scripts}/powershell/check-analyze-stage.ps1 +0 -0
  225. /package/templates/{scripts → resources/scripts}/powershell/check-facts.ps1 +0 -0
  226. /package/templates/{scripts → resources/scripts}/powershell/clarify-story.ps1 +0 -0
  227. /package/templates/{scripts → resources/scripts}/powershell/generate-tasks.ps1 +0 -0
  228. /package/templates/{scripts → resources/scripts}/powershell/tests/test-cross-platform.ps1 +0 -0
  229. /package/templates/{scripts → resources/scripts}/powershell/tests/test-edge-cases-ps.ps1 +0 -0
  230. /package/templates/{scripts → resources/scripts}/powershell/tests/test-phase1-ps.ps1 +0 -0
  231. /package/templates/{scripts → resources/scripts}/powershell/tests/test-regression-ps.ps1 +0 -0
  232. /package/templates/{knowledge-base → resources}/styles/README.md +0 -0
  233. /package/templates/{knowledge-base → resources}/styles/ancient-style.md +0 -0
  234. /package/templates/{knowledge-base → resources}/styles/literary.md +0 -0
  235. /package/templates/{knowledge-base → resources}/styles/minimal.md +0 -0
  236. /package/templates/{knowledge-base → resources}/styles/natural-voice.md +0 -0
  237. /package/templates/{knowledge-base → resources}/styles/web-novel.md +0 -0
@@ -55,8 +55,8 @@ const timeline = await mcp.call('novelws-mcp/query_timeline', {
55
55
  ### Layer 2: 分片 JSON(次优)
56
56
 
57
57
  ```bash
58
- # 当 spec/tracking/volumes/ 存在时
59
- VOLUME_DIR="spec/tracking/volumes/vol-03"
58
+ # 当 tracking/volumes/ 存在时
59
+ VOLUME_DIR="tracking/volumes/vol-03"
60
60
 
61
61
  # 读取该卷所有 tracking 数据
62
62
  cat "$VOLUME_DIR/character-state.json"
@@ -75,7 +75,7 @@ cat "$VOLUME_DIR/story-facts.json"
75
75
 
76
76
  ```bash
77
77
  # 传统模式,加载完整文件后手动过滤卷
78
- character_state=$(cat spec/tracking/character-state.json | jq ".characters | map(select(.volume == \"vol-03\"))")
78
+ character_state=$(cat tracking/character-state.json | jq ".characters | map(select(.volume == \"vol-03\"))")
79
79
  ```
80
80
 
81
81
  **向下兼容**:小型项目(< 300 章)继续使用单文件模式,摘要覆盖全书
@@ -102,7 +102,7 @@ const shouldExport = args.export || false;
102
102
  ### Step 2: 检测数据模式
103
103
 
104
104
  ```javascript
105
- const isSharded = fs.existsSync('spec/tracking/volumes/');
105
+ const isSharded = fs.existsSync('tracking/volumes/');
106
106
  const hasMCP = fs.existsSync('mcp-servers.json');
107
107
 
108
108
  // 选择数据源
@@ -129,7 +129,7 @@ const data = await loadVolumeDataFromMCP(volumeId);
129
129
  #### 分片模式
130
130
 
131
131
  ```bash
132
- VOLUME_DIR="spec/tracking/volumes/${volumeId}"
132
+ VOLUME_DIR="tracking/volumes/${volumeId}"
133
133
 
134
134
  if [[ ! -d "$VOLUME_DIR" ]]; then
135
135
  echo "错误:卷目录不存在:$VOLUME_DIR"
@@ -406,7 +406,7 @@ JSON 数据可用于:
406
406
  用户:/volume-summary vol-05
407
407
  助手:检测到分片模式...
408
408
 
409
- 数据来源:spec/tracking/volumes/vol-05/
409
+ 数据来源:tracking/volumes/vol-05/
410
410
  ✓ character-state.json
411
411
  ✓ relationships.json
412
412
  ✓ plot-tracker.json
@@ -1,13 +1,36 @@
1
1
  ---
2
2
  description: 基于任务清单执行章节写作,自动加载上下文和验证规则
3
3
  argument-hint: [章节编号或任务ID] [--fast] [--batch N] [--volume vol-XX]
4
+ recommended-model: claude-opus-4-6 # 创作质量最高;--fast 时可用 sonnet
4
5
  allowed-tools: Read(//**), Write(//stories/**/content/**), Bash(ls:*), Bash(find:*), Bash(wc:*), Bash(grep:*), Bash(*)
5
6
  scripts:
6
- sh: .specify/scripts/bash/check-writing-state.sh
7
- ps: .specify/scripts/powershell/check-writing-state.ps1
7
+ sh: resources/scripts/bash/check-writing-state.sh
8
+ ps: resources/scripts/powershell/check-writing-state.ps1
8
9
  ---
9
10
 
10
11
  基于七步方法论流程执行章节写作。
12
+
13
+ ---
14
+
15
+ ## 自动激活的Skills
16
+
17
+ 本命令自动激活以下Skills:
18
+
19
+ 1. **writing-balance** - 智能写作平衡监控
20
+ - 文件: @templates/skills/writing-techniques/writing-balance/SKILL.md
21
+ - 功能: 写作完成后自动评估6个维度平衡度
22
+ - 输出: 平衡度评估报告 + 改进建议
23
+
24
+ 2. **writing-techniques** - 写作技巧教学
25
+ - 文件: @templates/skills/writing-techniques/writing-techniques/SKILL.md
26
+ - 功能: 应用8个模块的写作技巧
27
+ - 效果: 提升文字自然度、层次感、节奏变化
28
+
29
+ **说明**:
30
+ - 这两个Skills协同工作,替代了旧的 anti-ai-v4 禁止列表
31
+ - 用户无需手动激活,AI会自动应用
32
+ - 如需自定义配置,可在 specification.md 中添加 `writing_balance_config`
33
+
11
34
  ---
12
35
 
13
36
  ## 写作前准备(推荐)
@@ -54,26 +77,71 @@ powershell -File {SCRIPT} -Json
54
77
  3. 按顺序加载 `resources.knowledge-base` 和 `resources.skills`
55
78
  4. 跳过 `resources.disabled` 中的资源
56
79
 
80
+ ### 增量缓存加载(性能优化核心)
81
+
82
+ ⚠️ **此机制大幅减少重复加载,连续写作时跳过未变化的资源。**
83
+
84
+ **步骤 0: 检查缓存**
85
+
86
+ ```
87
+ 1. 读取 .claude/.cache/resource-digest.json
88
+ ├─ 不存在 → 首次加载(全量),生成 digest + context
89
+ └─ 存在 → 进入增量检查
90
+
91
+ 2. 对比每个已缓存文件的 mtime(用 Bash stat 命令)
92
+ ├─ 全部未变 → 直接复用 .claude/.cache/write-context.json,跳到 L0 加载
93
+ └─ 有变化 → 只重新读取变化的文件
94
+
95
+ 3. 更新 write-context.json 中变化的部分
96
+ ├─ L1 文件变化 → 重新生成该文件的摘要(200-300字)
97
+ └─ L2 文件变化 → 重新缓存全文
98
+
99
+ 4. 写回更新后的 resource-digest.json + write-context.json
100
+ ```
101
+
102
+ **资源分级**:
103
+
104
+ | 级别 | 内容 | 策略 |
105
+ |------|------|------|
106
+ | L0 必读 | tasks.md、上一章最后500字、当前活跃角色 | 每次读取全文,不缓存 |
107
+ | L1 摘要 | constitution.md、specification.md、creative-plan.md、plot-tracker.json、relationships.json | 首次读全文生成摘要,后续只在 mtime 变化时重新生成 |
108
+ | L2 按需 | craft/、genres/、styles/、requirements/、skills/ | 仅在关键词触发或配置指定时加载,加载后缓存全文 |
109
+
110
+ **缓存复用判定**:
111
+ - 如果 `write-context.json` 存在且 `digest_version` 与 `resource-digest.json` 的 `version` 一致 → 复用 L1 摘要 + L2 缓存
112
+ - 如果 `digest_version` 不一致 → 全量重建
113
+ - 用户删除 `.claude/.cache/` → 下次全量重建
114
+
115
+ **首次加载(无缓存)**:按下方完整查询协议执行,完成后生成两个缓存文件。
116
+
117
+ **后续加载(有缓存且未过期)**:
118
+ 1. 直接使用 `write-context.json` 中的 `l1_summaries` 作为 L1 上下文
119
+ 2. 直接使用 `l2_loaded` 中的缓存资源
120
+ 3. 仅实时加载 L0 资源(tasks.md、上一章、活跃角色)
121
+ 4. 合并 L0 + L1 缓存 + L2 缓存 → 进入写作
122
+
123
+ ---
124
+
57
125
  ### 查询协议(必读顺序 + 三层资源加载)
58
126
 
59
- ⚠️ **严格按以下顺序查询文档**:
127
+ ⚠️ **严格按以下顺序查询文档**(首次加载或缓存失效时执行完整流程):
60
128
 
61
- 1. **先查(最高优先级)**:
129
+ 1. **先查(最高优先级)**【L1 — 缓存摘要】:
62
130
  - `memory/constitution.md`(创作宪法)
63
131
  - `memory/personal-voice.md`(个人风格指南 - 如有)
64
132
  - `memory/style-reference.md`(风格参考 - 如有)
65
133
 
66
- 2. **再查(规格和计划)**:
134
+ 2. **再查(规格和计划)**【L1 — 缓存摘要】:
67
135
  - `stories/*/specification.md`(故事规格)
68
136
  - `stories/*/creative-plan.md`(创作计划)
69
- - `stories/*/tasks.md`(当前任务)
137
+ - `stories/*/tasks.md`(当前任务)【L0 — 每次必读】
70
138
 
71
139
  2.1. **风格学习前置检查**:
72
140
  - 如果 `memory/personal-voice.md` 不存在且已写 ≥ 3 章,提示用户执行 `/style-learning`
73
141
 
74
142
  2.5. **自动加载写作风格和规范(基于配置)**:
75
143
  - 读取 `specification.md` 的 YAML frontmatter
76
- - 如配置了 `writing-style`,加载 `.specify/templates/knowledge-base/styles/[name].md`
144
+ - 如配置了 `writing-style`,加载 `resources/styles/[name].md`
77
145
  - 如配置了 `writing-requirements`,加载对应规范文档
78
146
 
79
147
  2.6. **第三层智能资源加载(三层机制)**
@@ -85,11 +153,11 @@ powershell -File {SCRIPT} -Json
85
153
  如果 specification.md 未配置 `resource-loading`,自动加载:
86
154
 
87
155
  **Knowledge-base (craft)**:
88
- - `templates/knowledge-base/craft/dialogue.md`
89
- - `templates/knowledge-base/craft/scene-structure.md`
90
- - `templates/knowledge-base/craft/character-arc.md`
91
- - `templates/knowledge-base/craft/pacing.md`
92
- - `templates/knowledge-base/craft/show-not-tell.md`
156
+ - `resources/craft/dialogue.md`
157
+ - `resources/craft/scene-structure.md`
158
+ - `resources/craft/character-arc.md`
159
+ - `resources/craft/pacing.md`
160
+ - `resources/craft/show-not-tell.md`
93
161
 
94
162
  **Skills (writing-techniques)**:
95
163
  - `templates/skills/writing-techniques/dialogue-techniques/SKILL.md`
@@ -128,7 +196,7 @@ resource-loading:
128
196
 
129
197
  **执行流程**:
130
198
  1. 收集待扫描文本(命令参数 + 任务描述 + 用户输入)
131
- 2. 读取 `templates/config/keyword-mappings.json` 映射表
199
+ 2. 读取 `resources/config/keyword-mappings.json` 映射表
132
200
  3. 合并 specification.md 中的自定义映射
133
201
  4. 执行关键词匹配,跳过已加载资源
134
202
  5. 如有匹配,提示用户确认加载:
@@ -146,28 +214,28 @@ resource-loading:
146
214
 
147
215
  > **性能优化**:参见 CLAUDE.md 中的「会话级资源复用」章节。
148
216
 
149
- 3. **再查(状态和数据 — 三层 Fallback)**:
217
+ 3. **再查(状态和数据 — 三层 Fallback)**【L0/L1 混合】:
150
218
 
151
219
  按以下优先级加载 tracking 数据:
152
220
 
153
- **Layer 1: MCP 查询(优先)**
221
+ **Layer 1: MCP 查询(优先)**【L0 — 每次查询】
154
222
  - `query_characters --status=active --limit=20` → 活跃角色
155
223
  - `query_relationships --volume=[当前卷号]` → 当前卷关系
156
224
  - `query_plot --status=active` → 活跃伏笔
157
225
  - `query_facts` → 设定事实
158
226
  - 如果指定了 `--volume vol-XX`,所有查询限定到该卷
159
227
 
160
- **Layer 2: 分片 JSON(次优,检测 spec/tracking/volumes/ 是否存在)**
228
+ **Layer 2: 分片 JSON(次优,检测 tracking/volumes/ 是否存在)**【L1 — 缓存摘要】
161
229
  - 确定当前章节属于哪个卷(从 volume-summaries.json 的 chapters 范围判断)
162
- - 读取该卷的分片文件:`spec/tracking/volumes/[currentVolume]/character-state.json` 等
163
- - 读取全局摘要:`spec/tracking/summary/characters-summary.json`(活跃角色概览)
230
+ - 读取该卷的分片文件:`tracking/volumes/[currentVolume]/character-state.json` 等
231
+ - 读取全局摘要:`tracking/summary/characters-summary.json`(活跃角色概览)
164
232
 
165
- **Layer 3: 单文件 JSON(兜底,现有逻辑)**
166
- - `spec/tracking/character-state.json`(角色状态)
167
- - `spec/tracking/relationships.json`(关系网络)
168
- - `spec/tracking/plot-tracker.json`(情节追踪 - 如有)
169
- - `spec/tracking/validation-rules.json`(验证规则 - 如有)
170
- - `spec/tracking/story-facts.json`(设定事实 - 如有)
233
+ **Layer 3: 单文件 JSON(兜底,现有逻辑)**【L1 — 缓存摘要】
234
+ - `tracking/character-state.json`(角色状态)
235
+ - `tracking/relationships.json`(关系网络)
236
+ - `tracking/plot-tracker.json`(情节追踪 - 如有)
237
+ - `tracking/validation-rules.json`(验证规则 - 如有)
238
+ - `tracking/story-facts.json`(设定事实 - 如有)
171
239
 
172
240
  **📋 本章引用的设定事实**(如当前章节已有 `<!-- story-facts: ... -->` 注释):
173
241
 
@@ -187,17 +255,17 @@ resource-loading:
187
255
 
188
256
  - **快写模式(--fast)**: 跳过详细展示,但保留数据加载
189
257
 
190
- 4. **再查(知识库)**:
191
- - `spec/knowledge/` 相关文件(世界观、角色档案等)
258
+ 4. **再查(知识库)**【L2 — 按需缓存】:
259
+ - `resources/knowledge/` 相关文件(世界观、角色档案等)
192
260
  - `stories/*/content/`(前文内容 - 了解前情)
193
261
 
194
- 5. **再查(写作规范)**:
262
+ 5. **再查(写作规范)**【L2 — 按需缓存】:
195
263
  - `memory/personal-voice.md`(个人语料 - 如有)
196
- - `spec/knowledge/natural-expression.md`(自然化表达 - 如有)
197
- - **⚠️ 必须加载**:`templates/knowledge-base/requirements/anti-ai-v4.md`(禁用词与替换策略权威参考)
264
+ - `resources/knowledge/natural-expression.md`(自然化表达 - 如有)
265
+ - **⚠️ 必须加载**:`resources/requirements/anti-ai-v4.md`(禁用词与替换策略权威参考)
198
266
 
199
267
  6. **条件查询(前三章专用)**:
200
- - **如果章节编号 ≤ 3 或总字数 < 10000字**,额外查询 `spec/presets/golden-opening.md`
268
+ - **如果章节编号 ≤ 3 或总字数 < 10000字**,额外查询 `resources/presets/golden-opening.md`
201
269
 
202
270
  ### ⚠️ 强制完成确认
203
271
 
@@ -210,7 +278,7 @@ resource-loading:
210
278
  ✓ 2. stories/*/specification.md - 故事规格
211
279
  ✓ 3. stories/*/creative-plan.md - 创作计划
212
280
  ✓ 4. stories/*/tasks.md - 当前任务
213
- ✓ 5. spec/tracking/ - 角色状态、关系、情节
281
+ ✓ 5. tracking/ - 角色状态、关系、情节
214
282
 
215
283
  🆕 三层资源加载:
216
284
  ✓ Layer 1-3 加载完成
@@ -221,6 +289,48 @@ resource-loading:
221
289
 
222
290
  ⚠️ **禁止跳过此步骤**:这是防止AI在长篇创作中失焦的核心机制。
223
291
 
292
+ ### 缓存写回
293
+
294
+ **首次加载或有文件变化时**,将加载结果写入缓存:
295
+
296
+ 1. **生成 resource-digest.json**:记录所有已读文件的 mtime 和 size
297
+ ```json
298
+ {
299
+ "version": 1,
300
+ "updated_at": "[ISO时间]",
301
+ "files": {
302
+ "resources/memory/constitution.md": { "mtime": [毫秒时间戳], "size": [字节] },
303
+ "tracking/character-state.json": { "mtime": [毫秒时间戳], "size": [字节] }
304
+ }
305
+ }
306
+ ```
307
+
308
+ 2. **生成 write-context.json**:保存 L1 摘要和 L2 缓存状态
309
+ ```json
310
+ {
311
+ "version": 1,
312
+ "story": "[故事目录名]",
313
+ "last_chapter": [章节号],
314
+ "generated_at": "[ISO时间]",
315
+ "digest_version": 1,
316
+ "context": {
317
+ "l1_summaries": {
318
+ "constitution": "[200字摘要]",
319
+ "specification": "[300字摘要]",
320
+ "creative_plan": "[200字摘要]",
321
+ "active_plots": [{"id": "", "name": "", "status": "", "progress": ""}],
322
+ "active_relationships": [{"from": "", "to": "", "type": "", "tension": ""}]
323
+ },
324
+ "l2_loaded": {
325
+ "resources/craft/dialogue.md": "已缓存",
326
+ "resources/requirements/anti-ai-v5-balanced.md": "已缓存"
327
+ }
328
+ }
329
+ }
330
+ ```
331
+
332
+ 3. 使用 `Write` 工具写入 `.claude/.cache/resource-digest.json` 和 `.claude/.cache/write-context.json`
333
+
224
334
  <!-- PLUGIN_HOOK: genre-knowledge-write -->
225
335
 
226
336
  ---
@@ -236,7 +346,7 @@ resource-loading:
236
346
  **仅加载以下 3 项**(跳过三层资源加载):
237
347
  1. **当前任务**:`stories/*/tasks.md` 中 `pending` 或 `in_progress` 的任务
238
348
  2. **上一章内容**:最近完成的章节文件(最后 500 字)
239
- 3. **角色状态**:`spec/tracking/character-state.json`(仅当前活跃角色)
349
+ 3. **角色状态**:`tracking/character-state.json`(仅当前活跃角色)
240
350
 
241
351
  ### Fast-2. 极简写作提醒
242
352
 
@@ -267,7 +377,7 @@ resource-loading:
267
377
 
268
378
  ### 恢复检测
269
379
 
270
- 在开始写作前,检查 `spec/tracking/write-checkpoint.json`:
380
+ 在开始写作前,检查 `tracking/write-checkpoint.json`:
271
381
  - 如存在且 `status` 为 `in_progress` 且未过期(24小时内)→ 提示恢复
272
382
  - 用户选择「继续写作」→ 从断点恢复
273
383
  - 用户选择「重新开始」→ 删除 checkpoint,正常流程
@@ -357,7 +467,7 @@ resource-loading:
357
467
  **📋 禁用词与替换策略**:
358
468
 
359
469
  > **引用外部规范**:完整的禁用词黑名单(200+ 词)和替换策略表,请参阅:
360
- > `templates/knowledge-base/requirements/anti-ai-v4.md`
470
+ > `resources/requirements/anti-ai-v4.md`
361
471
  >
362
472
  > ⚠️ **写作时必须加载此文件**,作为禁用词和替换的权威参考。
363
473
 
@@ -392,7 +502,7 @@ resource-loading:
392
502
 
393
503
  写完一段后,主动识别并替换抽象表达。
394
504
 
395
- > **完整清单和示例**:首次写作时读取 `templates/knowledge-base/requirements/concretization.md`
505
+ > **完整清单和示例**:首次写作时读取 `resources/requirements/concretization.md`
396
506
  >
397
507
  > 核心要点:
398
508
  > - 时间具体化(避免"最近"、"很久")
@@ -414,7 +524,7 @@ resource-loading:
414
524
 
415
525
  **字数统计**:使用项目提供的脚本验证:
416
526
  ```bash
417
- source .specify/scripts/bash/common.sh
527
+ source resources/scripts/bash/common.sh
418
528
  count_chinese_words "stories/*/content/第X章.md"
419
529
  ```
420
530
  ⚠️ 不要使用 `wc -w` 统计中文字数。
@@ -448,12 +558,12 @@ count_chinese_words "stories/*/content/第X章.md"
448
558
  3. **合并更新**:将新内容增量合并到现有数据
449
559
  4. **写入 tracking 数据**:
450
560
  - **分片模式**:确定当前章节所属卷,更新该卷的分片文件,同步更新全局摘要
451
- - **单文件模式**:直接更新 `spec/tracking/` 下的文件
561
+ - **单文件模式**:直接更新 `tracking/` 下的文件
452
562
  5. **MCP 同步**(如果可用):
453
563
  - `log_writing_session` — 记录本次写作的章节号、字数
454
564
  - `sync_from_json` — 将更新后的 tracking 数据同步到 SQLite
455
565
  - 更新 FTS 索引 — 将新章节内容索引到全文检索
456
- 6. **记录日志**:追加到 `spec/tracking/tracking-log.md`
566
+ 6. **记录日志**:追加到 `tracking/tracking-log.md`
457
567
 
458
568
  > **详细格式和示例**:参见 `.claude/skills/auto-tracking/SKILL.md`
459
569
 
@@ -9,7 +9,7 @@
9
9
  - **句式**:短句优先(15-25 字),白话替代文绉绉
10
10
  - **描写**:删除装饰性形容词,一个准确细节胜过三个堆砌
11
11
  - **禁止**:「然而」「殊不知」「缓缓」「深邃」「仿佛...一般」等 AI 高频词
12
- - **完整规范**:`.specify/templates/knowledge-base/requirements/anti-ai-v4.md`
12
+ - **完整规范**:`resources/requirements/anti-ai-v4.md`
13
13
 
14
14
  ## 段落格式规范
15
15
 
@@ -44,7 +44,7 @@
44
44
  **补充上下文来源**(不依赖前文全文):
45
45
  - `creative-plan.md`:章节大纲和情节走向
46
46
  - `tasks.md`:当前章节具体写作任务
47
- - `spec/tracking/*.json`:角色状态、关系、情节线、时间线
47
+ - `tracking/*.json`:角色状态、关系、情节线、时间线
48
48
 
49
49
  ## /compact 使用建议
50
50
 
@@ -60,7 +60,7 @@
60
60
  ### 目录结构(分片模式)
61
61
 
62
62
  ```
63
- spec/tracking/
63
+ tracking/
64
64
  ├── story-facts.json # 全局事实库
65
65
  ├── tracking-log.md # 全局更新日志
66
66
  ├── summary/ # 全局摘要(跨卷查询入口)
@@ -108,7 +108,7 @@ spec/tracking/
108
108
 
109
109
  **迁移流程**:
110
110
  1. **检查模式**:分析当前 tracking 文件大小
111
- 2. **备份数据**:创建时间戳备份(`spec/tracking-backup-YYYYMMDD/`)
111
+ 2. **备份数据**:创建时间戳备份(`tracking-backup-YYYYMMDD/`)
112
112
  3. **自动分片**:
113
113
  - 创建 `summary/` 和 `volumes/` 目录
114
114
  - 按卷拆分 tracking 数据(默认每卷 50 章)
@@ -149,7 +149,7 @@ spec/tracking/
149
149
  novelws init my-novel --with-mcp
150
150
 
151
151
  # 或在现有项目中配置
152
- # 编辑 .specify/config.json,添加:
152
+ # 编辑 resources/config/config.json,添加:
153
153
  {
154
154
  "mcp": true
155
155
  }
@@ -8,7 +8,7 @@
8
8
  "regex": "对话|台词|说话|对白|conversation|dialogue",
9
9
  "regex_flags": "i",
10
10
  "resources": [
11
- "templates/knowledge-base/craft/dialogue.md",
11
+ "resources/craft/dialogue.md",
12
12
  "templates/skills/writing-techniques/dialogue-techniques/SKILL.md"
13
13
  ],
14
14
  "priority": 1
@@ -18,7 +18,7 @@
18
18
  "regex": "场景|镜头|画面|scene|structure",
19
19
  "regex_flags": "i",
20
20
  "resources": [
21
- "templates/knowledge-base/craft/scene-structure.md",
21
+ "resources/craft/scene-structure.md",
22
22
  "templates/skills/writing-techniques/scene-structure/SKILL.md"
23
23
  ],
24
24
  "priority": 1
@@ -28,7 +28,7 @@
28
28
  "regex": "角色成长|角色弧线|弧线|转变|成长|character\\s*arc|transformation",
29
29
  "regex_flags": "i",
30
30
  "resources": [
31
- "templates/knowledge-base/craft/character-arc.md",
31
+ "resources/craft/character-arc.md",
32
32
  "templates/skills/writing-techniques/character-arc/SKILL.md"
33
33
  ],
34
34
  "priority": 1
@@ -38,7 +38,7 @@
38
38
  "regex": "节奏|拖沓|太快|太慢|过快|过慢|pacing|rhythm",
39
39
  "regex_flags": "i",
40
40
  "resources": [
41
- "templates/knowledge-base/craft/pacing.md",
41
+ "resources/craft/pacing.md",
42
42
  "templates/skills/writing-techniques/pacing-control/SKILL.md"
43
43
  ],
44
44
  "priority": 1
@@ -48,7 +48,7 @@
48
48
  "regex": "展示|描写|tell|show|showing|telling",
49
49
  "regex_flags": "i",
50
50
  "resources": [
51
- "templates/knowledge-base/craft/show-not-tell.md"
51
+ "resources/craft/show-not-tell.md"
52
52
  ],
53
53
  "priority": 1
54
54
  },
@@ -57,7 +57,7 @@
57
57
  "regex": "钩子|悬念|章末|hook|cliffhanger|结尾",
58
58
  "regex_flags": "i",
59
59
  "resources": [
60
- "templates/knowledge-base/craft/hook-design.md"
60
+ "resources/craft/hook-design.md"
61
61
  ],
62
62
  "priority": 1
63
63
  },
@@ -66,7 +66,7 @@
66
66
  "regex": "力量体系|战力|境界|等级|power\\s*system|combat",
67
67
  "regex_flags": "i",
68
68
  "resources": [
69
- "templates/knowledge-base/craft/power-system.md"
69
+ "resources/craft/power-system.md"
70
70
  ],
71
71
  "priority": 1
72
72
  },
@@ -75,7 +75,7 @@
75
75
  "regex": "紧张感|张力|信息差|时间压力|两难|tension|dilemma",
76
76
  "regex_flags": "i",
77
77
  "resources": [
78
- "templates/knowledge-base/craft/tension-management.md"
78
+ "resources/craft/tension-management.md"
79
79
  ],
80
80
  "priority": 1
81
81
  }
@@ -86,7 +86,7 @@
86
86
  "regex": "言情|恋爱|感情|爱情|romance|love",
87
87
  "regex_flags": "i",
88
88
  "resources": [
89
- "templates/knowledge-base/genres/romance.md",
89
+ "resources/genres/romance.md",
90
90
  "templates/skills/genre-knowledge/romance/SKILL.md"
91
91
  ],
92
92
  "priority": 2
@@ -96,7 +96,7 @@
96
96
  "regex": "悬疑|推理|线索|mystery|detective|clue",
97
97
  "regex_flags": "i",
98
98
  "resources": [
99
- "templates/knowledge-base/genres/mystery.md",
99
+ "resources/genres/mystery.md",
100
100
  "templates/skills/genre-knowledge/mystery/SKILL.md"
101
101
  ],
102
102
  "priority": 2
@@ -106,7 +106,7 @@
106
106
  "regex": "武侠|江湖|侠客|武功|wuxia|martial\\s*arts",
107
107
  "regex_flags": "i",
108
108
  "resources": [
109
- "templates/knowledge-base/genres/wuxia.md"
109
+ "resources/genres/wuxia.md"
110
110
  ],
111
111
  "priority": 2
112
112
  },
@@ -115,7 +115,7 @@
115
115
  "regex": "历史|古代|朝代|宫廷|historical|dynasty",
116
116
  "regex_flags": "i",
117
117
  "resources": [
118
- "templates/knowledge-base/genres/historical.md"
118
+ "resources/genres/historical.md"
119
119
  ],
120
120
  "priority": 2
121
121
  },
@@ -124,7 +124,7 @@
124
124
  "regex": "科幻|未来|太空|星际|sci-fi|science\\s*fiction",
125
125
  "regex_flags": "i",
126
126
  "resources": [
127
- "templates/knowledge-base/genres/sci-fi.md"
127
+ "resources/genres/sci-fi.md"
128
128
  ],
129
129
  "priority": 2
130
130
  },
@@ -133,7 +133,7 @@
133
133
  "regex": "惊悚|恐怖|紧张|thriller|horror|suspense",
134
134
  "regex_flags": "i",
135
135
  "resources": [
136
- "templates/knowledge-base/genres/thriller.md"
136
+ "resources/genres/thriller.md"
137
137
  ],
138
138
  "priority": 2
139
139
  },
@@ -142,7 +142,7 @@
142
142
  "regex": "复仇|报仇|仇恨|revenge|vengeance",
143
143
  "regex_flags": "i",
144
144
  "resources": [
145
- "templates/knowledge-base/genres/revenge.md"
145
+ "resources/genres/revenge.md"
146
146
  ],
147
147
  "priority": 2
148
148
  },
@@ -151,7 +151,7 @@
151
151
  "regex": "玄幻|修仙|修炼|境界|灵气|宗门|xuanhuan|cultivation",
152
152
  "regex_flags": "i",
153
153
  "resources": [
154
- "templates/knowledge-base/genres/xuanhuan.md"
154
+ "resources/genres/xuanhuan.md"
155
155
  ],
156
156
  "priority": 2
157
157
  },
@@ -160,7 +160,7 @@
160
160
  "regex": "都市|现代|城市|职场|urban|modern|city",
161
161
  "regex_flags": "i",
162
162
  "resources": [
163
- "templates/knowledge-base/genres/urban.md"
163
+ "resources/genres/urban.md"
164
164
  ],
165
165
  "priority": 2
166
166
  },
@@ -169,7 +169,7 @@
169
169
  "regex": "游戏|系统|面板|副本|game|system|dungeon",
170
170
  "regex_flags": "i",
171
171
  "resources": [
172
- "templates/knowledge-base/genres/game-lit.md"
172
+ "resources/genres/game-lit.md"
173
173
  ],
174
174
  "priority": 2
175
175
  },
@@ -178,7 +178,7 @@
178
178
  "regex": "重生|穿越|回到过去|前世|rebirth|reincarnation|transmigration",
179
179
  "regex_flags": "i",
180
180
  "resources": [
181
- "templates/knowledge-base/genres/rebirth.md"
181
+ "resources/genres/rebirth.md"
182
182
  ],
183
183
  "priority": 2
184
184
  }