novelws 3.1.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 (229) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +47 -49
  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/utils/diagnostics.d.ts.map +1 -1
  14. package/dist/utils/diagnostics.js +6 -5
  15. package/dist/utils/diagnostics.js.map +1 -1
  16. package/package.json +1 -1
  17. package/templates/commands/analyze.md +10 -10
  18. package/templates/commands/character.md +10 -10
  19. package/templates/commands/checklist.md +27 -27
  20. package/templates/commands/clarify.md +2 -2
  21. package/templates/commands/constitution.md +8 -8
  22. package/templates/commands/expert.md +3 -3
  23. package/templates/commands/facts.md +9 -9
  24. package/templates/commands/guide.md +25 -25
  25. package/templates/commands/help-me.md +2 -2
  26. package/templates/commands/plan.md +26 -26
  27. package/templates/commands/recap.md +16 -16
  28. package/templates/commands/relations.md +13 -13
  29. package/templates/commands/revise.md +15 -15
  30. package/templates/commands/search.md +10 -10
  31. package/templates/commands/specify.md +4 -4
  32. package/templates/commands/tasks.md +9 -9
  33. package/templates/commands/timeline.md +13 -13
  34. package/templates/commands/track-init.md +8 -8
  35. package/templates/commands/track.md +22 -22
  36. package/templates/commands/volume-summary.md +6 -6
  37. package/templates/commands/write.md +125 -38
  38. package/templates/dot-claude/CLAUDE.md +5 -5
  39. package/templates/{config → resources/config}/keyword-mappings.json +19 -19
  40. package/templates/{scripts → resources/scripts}/README.md +8 -8
  41. package/templates/{scripts → resources/scripts}/bash/analyze-story.sh +1 -1
  42. package/templates/{scripts → resources/scripts}/bash/check-consistency.sh +7 -7
  43. package/templates/{scripts → resources/scripts}/bash/check-facts.sh +1 -1
  44. package/templates/{scripts → resources/scripts}/bash/check-plot.sh +2 -2
  45. package/templates/{scripts → resources/scripts}/bash/check-timeline.sh +3 -3
  46. package/templates/{scripts → resources/scripts}/bash/check-world.sh +5 -5
  47. package/templates/{scripts → resources/scripts}/bash/check-writing-state.sh +26 -26
  48. package/templates/{scripts → resources/scripts}/bash/common.sh +3 -3
  49. package/templates/{scripts → resources/scripts}/bash/constitution.sh +1 -1
  50. package/templates/{scripts → resources/scripts}/bash/init-tracking.sh +13 -13
  51. package/templates/{scripts → resources/scripts}/bash/manage-relations.sh +10 -10
  52. package/templates/{scripts → resources/scripts}/bash/migrate-tracking.sh +1 -1
  53. package/templates/{scripts → resources/scripts}/bash/plan-story.sh +2 -2
  54. package/templates/{scripts → resources/scripts}/bash/specify-story.sh +1 -1
  55. package/templates/{scripts → resources/scripts}/bash/tasks-story.sh +2 -2
  56. package/templates/{scripts → resources/scripts}/bash/tests/bench-preload-cache.sh +3 -3
  57. package/templates/{scripts → resources/scripts}/bash/tests/test-cross-platform.sh +1 -1
  58. package/templates/{scripts → resources/scripts}/bash/tests/test-preload-cache.sh +1 -1
  59. package/templates/{scripts → resources/scripts}/bash/tests/test-regex-precompile.sh +4 -4
  60. package/templates/{scripts → resources/scripts}/bash/text-audit.sh +3 -3
  61. package/templates/{scripts → resources/scripts}/bash/track-progress.sh +5 -5
  62. package/templates/{scripts → resources/scripts}/powershell/analyze-story.ps1 +1 -1
  63. package/templates/{scripts → resources/scripts}/powershell/check-consistency.ps1 +8 -8
  64. package/templates/{scripts → resources/scripts}/powershell/check-plot.ps1 +2 -2
  65. package/templates/{scripts → resources/scripts}/powershell/check-timeline.ps1 +2 -2
  66. package/templates/{scripts → resources/scripts}/powershell/check-writing-state.ps1 +31 -31
  67. package/templates/{scripts → resources/scripts}/powershell/common.ps1 +2 -2
  68. package/templates/{scripts → resources/scripts}/powershell/constitution.ps1 +1 -1
  69. package/templates/{scripts → resources/scripts}/powershell/init-tracking.ps1 +5 -5
  70. package/templates/{scripts → resources/scripts}/powershell/manage-relations.ps1 +6 -6
  71. package/templates/{scripts → resources/scripts}/powershell/migrate-tracking.ps1 +1 -1
  72. package/templates/{scripts → resources/scripts}/powershell/plan-story.ps1 +2 -2
  73. package/templates/{scripts → resources/scripts}/powershell/specify-story.ps1 +1 -1
  74. package/templates/{scripts → resources/scripts}/powershell/tests/bench-ps-cache.ps1 +10 -10
  75. package/templates/{scripts → resources/scripts}/powershell/tests/test-ps-cache.ps1 +4 -4
  76. package/templates/{scripts → resources/scripts}/powershell/text-audit.ps1 +2 -2
  77. package/templates/{scripts → resources/scripts}/powershell/track-progress.ps1 +2 -2
  78. package/templates/skills/analysis/character-analysis/SKILL.md +1 -1
  79. package/templates/skills/analysis/foreshadow-analysis/SKILL.md +1 -1
  80. package/templates/skills/analysis/hook-analysis/SKILL.md +2 -2
  81. package/templates/skills/analysis/logic-analysis/SKILL.md +2 -2
  82. package/templates/skills/analysis/opening-analysis/SKILL.md +1 -1
  83. package/templates/skills/analysis/pacing-analysis/SKILL.md +1 -1
  84. package/templates/skills/analysis/power-analysis/SKILL.md +3 -3
  85. package/templates/skills/analysis/reader-analysis/SKILL.md +1 -1
  86. package/templates/skills/analysis/style-analysis/SKILL.md +1 -1
  87. package/templates/skills/analysis/voice-analysis/SKILL.md +1 -1
  88. package/templates/skills/auto-tracking/SKILL.md +1 -1
  89. package/templates/skills/quality-assurance/consistency-checker/SKILL.md +1 -1
  90. package/templates/skills/quality-assurance/facts-checker/SKILL.md +2 -2
  91. package/templates/skills/quality-assurance/hook-checker/SKILL.md +2 -2
  92. package/templates/skills/quality-assurance/long-series-continuity/SKILL.md +7 -7
  93. package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +22 -22
  94. package/templates/skills/quality-assurance/setting-detector/SKILL.md +15 -15
  95. package/templates/skills/quality-assurance/voice-consistency-checker/SKILL.md +1 -1
  96. package/templates/skills/writing-techniques/character-arc/SKILL.md +1 -1
  97. package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +1 -1
  98. package/templates/skills/writing-techniques/reader-expectation/SKILL.md +1 -1
  99. package/templates/skills/writing-techniques/revision-polish/SKILL.md +1 -1
  100. package/templates/skills/writing-techniques/style-learning/SKILL.md +2 -2
  101. package/templates/skills/writing-techniques/writing-balance/SKILL.md +1 -1
  102. package/templates/knowledge-base/README.md +0 -285
  103. /package/templates/{knowledge-base → resources}/character-archetypes/01-hero.md +0 -0
  104. /package/templates/{knowledge-base → resources}/character-archetypes/02-mentor.md +0 -0
  105. /package/templates/{knowledge-base → resources}/character-archetypes/03-shadow.md +0 -0
  106. /package/templates/{knowledge-base → resources}/character-archetypes/04-ally.md +0 -0
  107. /package/templates/{knowledge-base → resources}/character-archetypes/05-shapeshifter.md +0 -0
  108. /package/templates/{knowledge-base → resources}/character-archetypes/06-trickster.md +0 -0
  109. /package/templates/{knowledge-base → resources}/character-archetypes/07-threshold-guardian.md +0 -0
  110. /package/templates/{knowledge-base → resources}/character-archetypes/08-herald.md +0 -0
  111. /package/templates/{knowledge-base → resources}/character-archetypes/09-father.md +0 -0
  112. /package/templates/{knowledge-base → resources}/character-archetypes/10-mother.md +0 -0
  113. /package/templates/{knowledge-base → resources}/character-archetypes/11-child.md +0 -0
  114. /package/templates/{knowledge-base → resources}/character-archetypes/12-sage.md +0 -0
  115. /package/templates/{knowledge-base → resources}/character-archetypes/README.md +0 -0
  116. /package/templates/{knowledge-base → resources}/character-archetypes/application-guide.md +0 -0
  117. /package/templates/{knowledge-base → resources}/character-archetypes/archetype-combinations.md +0 -0
  118. /package/templates/{knowledge-base → resources}/character-archetypes/config.yaml +0 -0
  119. /package/templates/{knowledge-base → resources}/character-archetypes/examples-analysis.md +0 -0
  120. /package/templates/{specification-example.md → resources/config/specification-example.md} +0 -0
  121. /package/templates/{knowledge-base → resources}/craft/character-arc.md +0 -0
  122. /package/templates/{knowledge-base → resources}/craft/dialogue.md +0 -0
  123. /package/templates/{knowledge-base → resources}/craft/hook-design.md +0 -0
  124. /package/templates/{knowledge-base → resources}/craft/pacing.md +0 -0
  125. /package/templates/{knowledge-base → resources}/craft/power-system.md +0 -0
  126. /package/templates/{knowledge-base → resources}/craft/scene-structure.md +0 -0
  127. /package/templates/{knowledge-base → resources}/craft/show-not-tell.md +0 -0
  128. /package/templates/{knowledge-base → resources}/craft/story-structures.md +0 -0
  129. /package/templates/{knowledge-base → resources}/craft/tension-management.md +0 -0
  130. /package/templates/{knowledge-base → resources}/emotional-beats/01-first-meeting.md +0 -0
  131. /package/templates/{knowledge-base → resources}/emotional-beats/02-bonding-moment.md +0 -0
  132. /package/templates/{knowledge-base → resources}/emotional-beats/03-declaration.md +0 -0
  133. /package/templates/{knowledge-base → resources}/emotional-beats/04-triumph.md +0 -0
  134. /package/templates/{knowledge-base → resources}/emotional-beats/05-reunion.md +0 -0
  135. /package/templates/{knowledge-base → resources}/emotional-beats/06-forgiveness.md +0 -0
  136. /package/templates/{knowledge-base → resources}/emotional-beats/07-betrayal.md +0 -0
  137. /package/templates/{knowledge-base → resources}/emotional-beats/08-loss.md +0 -0
  138. /package/templates/{knowledge-base → resources}/emotional-beats/09-rejection.md +0 -0
  139. /package/templates/{knowledge-base → resources}/emotional-beats/10-failure.md +0 -0
  140. /package/templates/{knowledge-base → resources}/emotional-beats/11-misunderstanding.md +0 -0
  141. /package/templates/{knowledge-base → resources}/emotional-beats/12-farewell.md +0 -0
  142. /package/templates/{knowledge-base → resources}/emotional-beats/13-revelation.md +0 -0
  143. /package/templates/{knowledge-base → resources}/emotional-beats/14-point-of-no-return.md +0 -0
  144. /package/templates/{knowledge-base → resources}/emotional-beats/15-dark-night.md +0 -0
  145. /package/templates/{knowledge-base → resources}/emotional-beats/16-sacrifice.md +0 -0
  146. /package/templates/{knowledge-base → resources}/emotional-beats/17-awakening.md +0 -0
  147. /package/templates/{knowledge-base → resources}/emotional-beats/18-confrontation.md +0 -0
  148. /package/templates/{knowledge-base → resources}/emotional-beats/19-bittersweet-goodbye.md +0 -0
  149. /package/templates/{knowledge-base → resources}/emotional-beats/20-moral-dilemma.md +0 -0
  150. /package/templates/{knowledge-base → resources}/emotional-beats/21-temptation.md +0 -0
  151. /package/templates/{knowledge-base → resources}/emotional-beats/22-redemption.md +0 -0
  152. /package/templates/{knowledge-base → resources}/emotional-beats/README.md +0 -0
  153. /package/templates/{knowledge-base → resources}/emotional-beats/beat-sequences.md +0 -0
  154. /package/templates/{knowledge-base → resources}/emotional-beats/config.yaml +0 -0
  155. /package/templates/{knowledge-base → resources}/emotional-beats/pacing-guide.md +0 -0
  156. /package/templates/{knowledge-base → resources}/genres/game-lit.md +0 -0
  157. /package/templates/{knowledge-base → resources}/genres/historical.md +0 -0
  158. /package/templates/{knowledge-base → resources}/genres/horror.md +0 -0
  159. /package/templates/{knowledge-base → resources}/genres/military.md +0 -0
  160. /package/templates/{knowledge-base → resources}/genres/mystery.md +0 -0
  161. /package/templates/{knowledge-base → resources}/genres/rebirth.md +0 -0
  162. /package/templates/{knowledge-base → resources}/genres/revenge.md +0 -0
  163. /package/templates/{knowledge-base → resources}/genres/romance.md +0 -0
  164. /package/templates/{knowledge-base → resources}/genres/sci-fi.md +0 -0
  165. /package/templates/{knowledge-base → resources}/genres/sports.md +0 -0
  166. /package/templates/{knowledge-base → resources}/genres/thriller.md +0 -0
  167. /package/templates/{knowledge-base → resources}/genres/urban.md +0 -0
  168. /package/templates/{knowledge-base → resources}/genres/workplace.md +0 -0
  169. /package/templates/{knowledge-base → resources}/genres/wuxia.md +0 -0
  170. /package/templates/{knowledge-base → resources}/genres/xuanhuan.md +0 -0
  171. /package/templates/{knowledge-base → resources}/genres/youth.md +0 -0
  172. /package/templates/{memory → resources/memory}/constitution.md +0 -0
  173. /package/templates/{memory → resources/memory}/personal-voice.md +0 -0
  174. /package/templates/{knowledge-base → resources}/references/README.md +0 -0
  175. /package/templates/{knowledge-base → resources}/references/china-1920s/culture.md +0 -0
  176. /package/templates/{knowledge-base → resources}/references/china-1920s/daily-life.md +0 -0
  177. /package/templates/{knowledge-base → resources}/references/china-1920s/overview.md +0 -0
  178. /package/templates/{knowledge-base → resources}/references/china-1920s/society.md +0 -0
  179. /package/templates/{knowledge-base → resources}/references/china-1920s/warlords.md +0 -0
  180. /package/templates/{knowledge-base → resources}/references/cultivation-world/daily-life.md +0 -0
  181. /package/templates/{knowledge-base → resources}/references/cultivation-world/overview.md +0 -0
  182. /package/templates/{knowledge-base → resources}/references/cultivation-world/power-system.md +0 -0
  183. /package/templates/{knowledge-base → resources}/references/cultivation-world/sects.md +0 -0
  184. /package/templates/{knowledge-base → resources}/references/cultivation-world/world-setting.md +0 -0
  185. /package/templates/{knowledge-base → resources}/references/modern-workplace/corporate.md +0 -0
  186. /package/templates/{knowledge-base → resources}/references/modern-workplace/daily-life.md +0 -0
  187. /package/templates/{knowledge-base → resources}/references/modern-workplace/overview.md +0 -0
  188. /package/templates/{knowledge-base → resources}/references/modern-workplace/relationships.md +0 -0
  189. /package/templates/{knowledge-base → resources}/references/modern-workplace/tech-industry.md +0 -0
  190. /package/templates/{knowledge-base → resources}/references/tang-dynasty/culture.md +0 -0
  191. /package/templates/{knowledge-base → resources}/references/tang-dynasty/daily-life.md +0 -0
  192. /package/templates/{knowledge-base → resources}/references/tang-dynasty/overview.md +0 -0
  193. /package/templates/{knowledge-base → resources}/references/tang-dynasty/politics.md +0 -0
  194. /package/templates/{knowledge-base → resources}/references/tang-dynasty/society.md +0 -0
  195. /package/templates/{knowledge-base → resources}/requirements/README.md +0 -0
  196. /package/templates/{knowledge-base → resources}/requirements/anti-ai-v3.md +0 -0
  197. /package/templates/{knowledge-base → resources}/requirements/anti-ai-v4-deprecated.md +0 -0
  198. /package/templates/{knowledge-base → resources}/requirements/anti-ai-v5-balanced.md +0 -0
  199. /package/templates/{knowledge-base → resources}/requirements/concretization.md +0 -0
  200. /package/templates/{knowledge-base → resources}/requirements/fast-paced.md +0 -0
  201. /package/templates/{knowledge-base → resources}/requirements/no-poison.md +0 -0
  202. /package/templates/{knowledge-base → resources}/requirements/romance-angst.md +0 -0
  203. /package/templates/{knowledge-base → resources}/requirements/romance-sweet.md +0 -0
  204. /package/templates/{knowledge-base → resources}/requirements/serious-literature.md +0 -0
  205. /package/templates/{knowledge-base → resources}/requirements/strong-emotion.md +0 -0
  206. /package/templates/{scripts → resources/scripts}/bash/check-analyze-stage.sh +0 -0
  207. /package/templates/{scripts → resources/scripts}/bash/clarify-story.sh +0 -0
  208. /package/templates/{scripts → resources/scripts}/bash/generate-tasks.sh +0 -0
  209. /package/templates/{scripts → resources/scripts}/bash/test-word-count.sh +0 -0
  210. /package/templates/{scripts → resources/scripts}/bash/tests/run-all-benchmarks.sh +0 -0
  211. /package/templates/{scripts → resources/scripts}/bash/tests/test-cache-semantics.sh +0 -0
  212. /package/templates/{scripts → resources/scripts}/bash/tests/test-edge-cases-bash.sh +0 -0
  213. /package/templates/{scripts → resources/scripts}/bash/tests/test-phase1-bash.sh +0 -0
  214. /package/templates/{scripts → resources/scripts}/bash/tests/test-regression-bash.sh +0 -0
  215. /package/templates/{scripts → resources/scripts}/bash/tests/test-task6-verification.sh +0 -0
  216. /package/templates/{scripts → resources/scripts}/powershell/check-analyze-stage.ps1 +0 -0
  217. /package/templates/{scripts → resources/scripts}/powershell/check-facts.ps1 +0 -0
  218. /package/templates/{scripts → resources/scripts}/powershell/clarify-story.ps1 +0 -0
  219. /package/templates/{scripts → resources/scripts}/powershell/generate-tasks.ps1 +0 -0
  220. /package/templates/{scripts → resources/scripts}/powershell/tests/test-cross-platform.ps1 +0 -0
  221. /package/templates/{scripts → resources/scripts}/powershell/tests/test-edge-cases-ps.ps1 +0 -0
  222. /package/templates/{scripts → resources/scripts}/powershell/tests/test-phase1-ps.ps1 +0 -0
  223. /package/templates/{scripts → resources/scripts}/powershell/tests/test-regression-ps.ps1 +0 -0
  224. /package/templates/{knowledge-base → resources}/styles/README.md +0 -0
  225. /package/templates/{knowledge-base → resources}/styles/ancient-style.md +0 -0
  226. /package/templates/{knowledge-base → resources}/styles/literary.md +0 -0
  227. /package/templates/{knowledge-base → resources}/styles/minimal.md +0 -0
  228. /package/templates/{knowledge-base → resources}/styles/natural-voice.md +0 -0
  229. /package/templates/{knowledge-base → resources}/styles/web-novel.md +0 -0
@@ -32,19 +32,19 @@ const hasSpec = fileExists('specification.md')
32
32
  const hasPlan = fileExists('creative-plan.md')
33
33
  const hasTasks = fileExists('tasks.md')
34
34
  const chapterCount = countFiles('stories/*/content/*.md')
35
- const hasTracking = fileExists('spec/tracking/character-state.json')
35
+ const hasTracking = fileExists('tracking/character-state.json')
36
36
  ```
37
37
 
38
38
  2. **模式检测**:
39
39
  ```javascript
40
- const isSingleFileMode = fileExists('spec/tracking/character-state.json')
41
- const isShardedMode = dirExists('spec/tracking/volumes')
42
- const isMCPMode = fileExists('spec/tracking/novel-tracking.db')
40
+ const isSingleFileMode = fileExists('tracking/character-state.json')
41
+ const isShardedMode = dirExists('tracking/volumes')
42
+ const isMCPMode = fileExists('tracking/novel-tracking.db')
43
43
  ```
44
44
 
45
45
  3. **问题检测**:
46
46
  ```javascript
47
- const trackingSize = getFileSize('spec/tracking/character-state.json')
47
+ const trackingSize = getFileSize('tracking/character-state.json')
48
48
  const needMigration = trackingSize > 50 * 1024 // >50KB
49
49
  const mcpAvailable = isMCPMode && chapterCount > 300
50
50
  ```
@@ -125,7 +125,7 @@ IF chapterCount > 300 and not isMCPMode:
125
125
 
126
126
  ```
127
127
  ⚠️ 异常提醒:
128
- - spec/tracking/ 目录为空 → 建议运行 /track-init
128
+ - tracking/ 目录为空 → 建议运行 /track-init
129
129
  ```
130
130
 
131
131
  ---
@@ -150,10 +150,10 @@ const consistencyStats = await mcp.call('novelws-mcp/stats_consistency', {});
150
150
  ### Layer 2: 分片 JSON(次优)
151
151
 
152
152
  ```bash
153
- # 当 spec/tracking/volumes/ 存在时
153
+ # 当 tracking/volumes/ 存在时
154
154
  # 读取 summary/ 文件夹的摘要数据
155
- character_summary=$(cat spec/tracking/summary/characters-summary.json)
156
- plot_summary=$(cat spec/tracking/summary/plot-summary.json)
155
+ character_summary=$(cat tracking/summary/characters-summary.json)
156
+ plot_summary=$(cat tracking/summary/plot-summary.json)
157
157
  ```
158
158
 
159
159
  **适用场景**:
@@ -165,8 +165,8 @@ plot_summary=$(cat spec/tracking/summary/plot-summary.json)
165
165
 
166
166
  ```bash
167
167
  # 传统模式,加载完整文件
168
- character_state=$(cat spec/tracking/character-state.json)
169
- plot_tracker=$(cat spec/tracking/plot-tracker.json)
168
+ character_state=$(cat tracking/character-state.json)
169
+ plot_tracker=$(cat tracking/plot-tracker.json)
170
170
  ```
171
171
 
172
172
  **向下兼容**:小型项目(< 300 章)继续使用单文件模式
@@ -175,7 +175,7 @@ plot_tracker=$(cat spec/tracking/plot-tracker.json)
175
175
 
176
176
  ```javascript
177
177
  // 1. 检测分片模式
178
- is_sharded = exists('spec/tracking/volumes/')
178
+ is_sharded = exists('tracking/volumes/')
179
179
 
180
180
  // 2. 检测 MCP
181
181
  has_mcp = exists('mcp-servers.json')
@@ -213,26 +213,26 @@ chapters = Glob('stories/*/content/*.md')
213
213
  → 统计已写章节数
214
214
 
215
215
  // 2. 检测分片模式
216
- is_sharded = exists('spec/tracking/volumes/')
216
+ is_sharded = exists('tracking/volumes/')
217
217
  has_mcp = exists('mcp-servers.json') // MCP 是否配置
218
218
 
219
219
  // 3. Tracking 文件检测(仅检测存在性和修改时间)
220
220
  // 分片模式:检测 summary/ 和 volumes/
221
221
  // 单文件模式:检测根目录 JSON
222
222
  if (is_sharded) {
223
- write_checkpoint = exists('spec/tracking/summary/write-checkpoint.json')
224
- character_state = exists('spec/tracking/summary/characters-summary.json')
225
- plot_tracker = exists('spec/tracking/summary/plot-summary.json')
226
- timeline = exists('spec/tracking/summary/timeline-summary.json')
227
- story_facts = exists('spec/tracking/summary/story-facts-summary.json')
228
- tracking_log = exists('spec/tracking/summary/tracking-log-summary.md')
223
+ write_checkpoint = exists('tracking/summary/write-checkpoint.json')
224
+ character_state = exists('tracking/summary/characters-summary.json')
225
+ plot_tracker = exists('tracking/summary/plot-summary.json')
226
+ timeline = exists('tracking/summary/timeline-summary.json')
227
+ story_facts = exists('tracking/summary/story-facts-summary.json')
228
+ tracking_log = exists('tracking/summary/tracking-log-summary.md')
229
229
  } else {
230
- write_checkpoint = exists('spec/tracking/write-checkpoint.json')
231
- character_state = exists('spec/tracking/character-state.json')
232
- plot_tracker = exists('spec/tracking/plot-tracker.json')
233
- timeline = exists('spec/tracking/timeline.json')
234
- story_facts = exists('spec/tracking/story-facts.json')
235
- tracking_log = exists('spec/tracking/tracking-log.md')
230
+ write_checkpoint = exists('tracking/write-checkpoint.json')
231
+ character_state = exists('tracking/character-state.json')
232
+ plot_tracker = exists('tracking/plot-tracker.json')
233
+ timeline = exists('tracking/timeline.json')
234
+ story_facts = exists('tracking/story-facts.json')
235
+ tracking_log = exists('tracking/tracking-log.md')
236
236
  }
237
237
 
238
238
  // 4. 性能优化
@@ -146,7 +146,7 @@ allowed-tools: Read, Glob
146
146
  /character update 李明
147
147
 
148
148
  这个命令会:
149
- 1. 读取当前角色卡片(spec/knowledge/characters/李明.md)
149
+ 1. 读取当前角色卡片(resources/knowledge/characters/李明.md)
150
150
  2. 让你修改性格、背景、能力等信息
151
151
  3. 自动更新文件
152
152
  4. 同步更新 tracking 数据(如已启用)
@@ -171,7 +171,7 @@ allowed-tools: Read, Glob
171
171
  /timeline
172
172
 
173
173
  这个命令会:
174
- 1. 读取 spec/tracking/timeline.json
174
+ 1. 读取 tracking/timeline.json
175
175
  2. 可视化时间线(按时间顺序排列所有事件)
176
176
  3. 自动检测时间冲突(同一时间多个事件)
177
177
  4. 标记可疑的时间跳跃
@@ -2,10 +2,10 @@
2
2
  description: 基于故事规格制定技术实现方案
3
3
  argument-hint: [技术偏好和选择] [--detail vol-XX]
4
4
  recommended-model: claude-opus-4-6 # 需要创意和规划能力
5
- allowed-tools: Read(//stories/**/specification.md), Read(//stories/**/specification.md), Read(//stories/**/creative-plan.md), Read(//stories/**/creative-plan.md), Read(//plugins/**), Read(//plugins/**), Write(//stories/**/creative-plan.md), Write(//stories/**/creative-plan.md), Read(//.specify/memory/constitution.md), Read(//.specify/memory/constitution.md), Bash(find:*), Bash(grep:*), Bash(*)
5
+ allowed-tools: Read(//stories/**/specification.md), Read(//stories/**/specification.md), Read(//stories/**/creative-plan.md), Read(//stories/**/creative-plan.md), Read(//plugins/**), Read(//plugins/**), Write(//stories/**/creative-plan.md), Write(//stories/**/creative-plan.md), Read(//resources/memory/constitution.md), Read(//resources/memory/constitution.md), Bash(find:*), Bash(grep:*), Bash(*)
6
6
  scripts:
7
- sh: .specify/scripts/bash/plan-story.sh
8
- ps: .specify/scripts/powershell/plan-story.ps1
7
+ sh: resources/scripts/bash/plan-story.sh
8
+ ps: resources/scripts/powershell/plan-story.ps1
9
9
  ---
10
10
 
11
11
  用户输入:$ARGUMENTS
@@ -28,7 +28,7 @@ scripts:
28
28
  ### 1. 加载前置文档
29
29
 
30
30
  **运行脚本** `{SCRIPT}` 检查并加载:
31
- - 宪法文件:`.specify/memory/constitution.md`
31
+ - 宪法文件:`resources/memory/constitution.md`
32
32
  - 规格文件:`stories/*/specification.md`
33
33
  - 澄清记录(如果已运行 `/clarify`)
34
34
 
@@ -49,10 +49,10 @@ powershell -File {SCRIPT} -Json
49
49
  #### Layer 1: 默认推断
50
50
 
51
51
  未配置 resource-loading 或 `auto-load: true` 时,自动加载:
52
- - `.specify/templates/knowledge-base/craft/scene-structure.md`
53
- - `.specify/templates/knowledge-base/craft/character-arc.md`
54
- - `.specify/templates/knowledge-base/craft/pacing.md`
55
- - `.specify/templates/skills/planning/story-structure/SKILL.md`(如存在)
52
+ - `resources/craft/scene-structure.md`
53
+ - `resources/craft/character-arc.md`
54
+ - `resources/craft/pacing.md`
55
+ - `.claude/skills/planning/story-structure/SKILL.md`(如存在)
56
56
 
57
57
  #### Layer 2: 配置覆盖
58
58
 
@@ -74,12 +74,12 @@ powershell -File {SCRIPT} -Json
74
74
  **条件加载:黄金开篇法则**:
75
75
 
76
76
  如果总字数 < 10000字 或规划范围包含第1-3章:
77
- - 检查 `spec/presets/golden-opening.md` 是否存在
77
+ - 检查 `resources/presets/golden-opening.md` 是否存在
78
78
  - 如存在则读取,在规划前三章时应用五大黄金法则
79
79
 
80
80
  **条件加载:节奏配置**:
81
81
 
82
- 如果 `spec/presets/rhythm-config.json` 存在:
82
+ 如果 `resources/presets/rhythm-config.json` 存在:
83
83
  - 读取并应用对标作品的节奏参数(章节字数、爽点间隔、内容比例)
84
84
  - 参数优先级:用户即时指令 > rhythm-config.json > 类型知识库 > 默认值
85
85
 
@@ -109,14 +109,14 @@ const plotData = await mcp.call('novelws-mcp/query_plot', {
109
109
  ### Layer 2: 分片 JSON(次优)
110
110
 
111
111
  ```bash
112
- # 当 spec/tracking/volumes/ 存在时
112
+ # 当 tracking/volumes/ 存在时
113
113
  if [[ -n "$VOLUME_FILTER" ]]; then
114
114
  # 仅读取指定卷的 plot-tracker
115
- cat "spec/tracking/volumes/$VOLUME_FILTER/plot-tracker.json"
115
+ cat "tracking/volumes/$VOLUME_FILTER/plot-tracker.json"
116
116
  else
117
117
  # 读取全局摘要 + 所有卷数据
118
- cat "spec/tracking/summary/plot-summary.json"
119
- for vol in spec/tracking/volumes/vol-*/; do
118
+ cat "tracking/summary/plot-summary.json"
119
+ for vol in tracking/volumes/vol-*/; do
120
120
  cat "$vol/plot-tracker.json"
121
121
  done
122
122
  fi
@@ -131,14 +131,14 @@ fi
131
131
 
132
132
  ```bash
133
133
  # 传统模式,加载完整文件
134
- cat spec/tracking/plot-tracker.json
134
+ cat tracking/plot-tracker.json
135
135
  ```
136
136
 
137
137
  **向下兼容**:小型项目(< 300 章)继续使用单文件模式
138
138
 
139
139
  ### 数据写入协议
140
140
 
141
- **分片模式**(spec/tracking/volumes/ 存在):
141
+ **分片模式**(tracking/volumes/ 存在):
142
142
 
143
143
  1. **确定目标卷**:
144
144
  - 如果指定 `--detail vol-XX`,写入该卷
@@ -146,13 +146,13 @@ cat spec/tracking/plot-tracker.json
146
146
 
147
147
  2. **写入分片文件**:
148
148
  ```bash
149
- Write(spec/tracking/volumes/${target_volume}/plot-tracker.json)
149
+ Write(tracking/volumes/${target_volume}/plot-tracker.json)
150
150
  ```
151
151
 
152
152
  3. **更新全局摘要**:
153
153
  ```bash
154
154
  # 更新 plot-summary.json 的伏笔统计
155
- Write(spec/tracking/summary/plot-summary.json)
155
+ Write(tracking/summary/plot-summary.json)
156
156
  ```
157
157
 
158
158
  4. **触发 MCP 同步**(如果启用):
@@ -167,7 +167,7 @@ cat spec/tracking/plot-tracker.json
167
167
 
168
168
  直接写入完整 `plot-tracker.json`:
169
169
  ```bash
170
- Write(spec/tracking/plot-tracker.json)
170
+ Write(tracking/plot-tracker.json)
171
171
  ```
172
172
 
173
173
  ---
@@ -186,7 +186,7 @@ Write(spec/tracking/plot-tracker.json)
186
186
  - **混合方法**:主线+支线使用不同方法
187
187
  - **类型专用结构**:如爽文的"爽点分布结构"、悬疑的"线索布局结构"等
188
188
 
189
- **网文专用结构**:如果类型为网文类(玄幻、都市、言情、游戏文等),加载 `.specify/templates/knowledge-base/craft/story-structures.md`,从升级流/副本流/任务流/日常流中选择适合的结构模板。
189
+ **网文专用结构**:如果类型为网文类(玄幻、都市、言情、游戏文等),加载 `resources/craft/story-structures.md`,从升级流/副本流/任务流/日常流中选择适合的结构模板。
190
190
 
191
191
  记录选择理由和应用方式。
192
192
 
@@ -263,7 +263,7 @@ Write(spec/tracking/plot-tracker.json)
263
263
 
264
264
  **触发条件**:`$ARGUMENTS` 包含 `--detail vol-XX` 或 `--detail vol-XX-YY`
265
265
 
266
- 加载 `.specify/templates/skills/planning/volume-detail/SKILL.md`,按其流程执行:
266
+ 加载 `.claude/skills/planning/volume-detail/SKILL.md`,按其流程执行:
267
267
  - 单卷:卷概要确认 → 逐章规划 → 节奏总览 → 写入 → 生成 tasks.md → 灵感分配
268
268
  - 多卷:范围确认 → 逐卷规划 → 跨卷节奏对比 → 批量生成 tasks.md
269
269
 
@@ -410,14 +410,14 @@ Write(spec/tracking/plot-tracker.json)
410
410
  1. 从 `creative-plan.md` 提取情节线定义、章节分配、伏笔规划
411
411
  2. 按三层 Fallback 读取现有 plot-tracker 数据:
412
412
  - **MCP 查询(优先)**:`query_plot` 获取现有情节线和伏笔
413
- - **分片 JSON(次优)**:读取 `spec/tracking/volumes/` 下各卷的 `plot-tracker.json`
414
- - **单文件 JSON(兜底)**:读取 `spec/tracking/plot-tracker.json`
413
+ - **分片 JSON(次优)**:读取 `tracking/volumes/` 下各卷的 `plot-tracker.json`
414
+ - **单文件 JSON(兜底)**:读取 `tracking/plot-tracker.json`
415
415
  3. 生成或合并 plot-tracker 数据(保留已有 progress)
416
416
  4. 写入 tracking 数据:
417
- - **分片模式**:按卷写入 `spec/tracking/volumes/vol-XX/plot-tracker.json`,同步更新 `spec/tracking/summary/plot-summary.json`
418
- - **单文件模式**:直接写入 `spec/tracking/plot-tracker.json`
417
+ - **分片模式**:按卷写入 `tracking/volumes/vol-XX/plot-tracker.json`,同步更新 `tracking/summary/plot-summary.json`
418
+ - **单文件模式**:直接写入 `tracking/plot-tracker.json`
419
419
  5. 如果 MCP 可用,调用 `sync_from_json` 同步到 SQLite
420
- 6. 追加更新记录到 `spec/tracking/tracking-log.md`(使用 diff 格式)
420
+ 6. 追加更新记录到 `tracking/tracking-log.md`(使用 diff 格式)
421
421
  7. 验证 JSON 格式有效性
422
422
 
423
423
  **错误处理**:
@@ -65,27 +65,27 @@ allowed-tools: Read(//**), Bash(find:*), Bash(wc:*), Bash(grep:*), Bash(*)
65
65
 
66
66
  如果任一 MCP 调用失败,回退到 Layer 2。
67
67
 
68
- **Layer 2: 分片 JSON(检测 spec/tracking/volumes/ 是否存在)**
68
+ **Layer 2: 分片 JSON(检测 tracking/volumes/ 是否存在)**
69
69
 
70
70
  **--brief 模式:**
71
- - 只读 `spec/tracking/summary/volume-summaries.json`
72
- - 只读 `spec/tracking/summary/characters-summary.json`(仅 active 部分)
71
+ - 只读 `tracking/summary/volume-summaries.json`
72
+ - 只读 `tracking/summary/characters-summary.json`(仅 active 部分)
73
73
 
74
74
  **默认模式:**
75
- - 读 `spec/tracking/summary/volume-summaries.json` → 获取前卷摘要
76
- - 读 `spec/tracking/summary/characters-summary.json` → 活跃角色概览
77
- - 读 `spec/tracking/summary/plot-summary.json` → 未解决伏笔
78
- - 读当前卷详情:`spec/tracking/volumes/[currentVolume]/` 下的 4 个文件
75
+ - 读 `tracking/summary/volume-summaries.json` → 获取前卷摘要
76
+ - 读 `tracking/summary/characters-summary.json` → 活跃角色概览
77
+ - 读 `tracking/summary/plot-summary.json` → 未解决伏笔
78
+ - 读当前卷详情:`tracking/volumes/[currentVolume]/` 下的 4 个文件
79
79
 
80
80
  **--full vol-XX 模式:**
81
- - 读 `spec/tracking/volumes/vol-XX/` 下的 4 个文件(完整数据)
82
- - 读 `spec/tracking/summary/volume-summaries.json` → 该卷前后的摘要
81
+ - 读 `tracking/volumes/vol-XX/` 下的 4 个文件(完整数据)
82
+ - 读 `tracking/summary/volume-summaries.json` → 该卷前后的摘要
83
83
 
84
84
  **Layer 3: 单文件 JSON(兜底,现有逻辑)**
85
- - 读 `spec/tracking/character-state.json`
86
- - 读 `spec/tracking/plot-tracker.json`
87
- - 读 `spec/tracking/relationships.json`
88
- - 读 `spec/tracking/timeline.json`
85
+ - 读 `tracking/character-state.json`
86
+ - 读 `tracking/plot-tracker.json`
87
+ - 读 `tracking/relationships.json`
88
+ - 读 `tracking/timeline.json`
89
89
 
90
90
  #### 创作基础文件(第二优先级)
91
91
 
@@ -103,8 +103,8 @@ allowed-tools: Read(//**), Bash(find:*), Bash(wc:*), Bash(grep:*), Bash(*)
103
103
 
104
104
  #### 辅助文件(第四优先级,可选)
105
105
 
106
- 9. `.specify/memory/constitution.md` - 创作宪法
107
- 10. `spec/tracking/validation-rules.json` - 验证规则
106
+ 9. `resources/memory/constitution.md` - 创作宪法
107
+ 10. `tracking/validation-rules.json` - 验证规则
108
108
 
109
109
  **数据缺失处理**:
110
110
 
@@ -123,7 +123,7 @@ allowed-tools: Read(//**), Bash(find:*), Bash(wc:*), Bash(grep:*), Bash(*)
123
123
  ```
124
124
  ⚠️ 追踪数据缺失
125
125
 
126
- 未找到任何追踪文件(spec/tracking/)。
126
+ 未找到任何追踪文件(tracking/)。
127
127
  本简报将基于现有章节内容和规格文件生成简化版。
128
128
 
129
129
  建议:
@@ -2,10 +2,10 @@
2
2
  name: relations
3
3
  description: 管理和追踪角色关系变化
4
4
  argument-hint: [update | show | history | check] [角色] [关系] [目标角色] [--volume vol-XX | --character-focus 角色名]
5
- allowed-tools: Read(//spec/tracking/relationships.json), Read(//spec/tracking/relationships.json), Write(//spec/tracking/relationships.json), Write(//spec/tracking/relationships.json), Bash(find:*), Bash(*)
5
+ allowed-tools: Read(//tracking/relationships.json), Read(//tracking/relationships.json), Write(//tracking/relationships.json), Write(//tracking/relationships.json), Bash(find:*), Bash(*)
6
6
  scripts:
7
- sh: .specify/scripts/bash/manage-relations.sh
8
- ps: .specify/scripts/powershell/manage-relations.ps1
7
+ sh: resources/scripts/bash/manage-relations.sh
8
+ ps: resources/scripts/powershell/manage-relations.ps1
9
9
  ---
10
10
 
11
11
  # 角色关系管理
@@ -54,8 +54,8 @@ const relationships = await mcp.call('novelws-mcp/query_relationships', {
54
54
  ### Layer 2: 分片 JSON(次优)
55
55
 
56
56
  ```bash
57
- # 当 spec/tracking/volumes/ 存在时
58
- relationships_data=$(cat spec/tracking/volumes/vol-03/relationships.json)
57
+ # 当 tracking/volumes/ 存在时
58
+ relationships_data=$(cat tracking/volumes/vol-03/relationships.json)
59
59
  ```
60
60
 
61
61
  **适用场景**:
@@ -67,7 +67,7 @@ relationships_data=$(cat spec/tracking/volumes/vol-03/relationships.json)
67
67
 
68
68
  ```bash
69
69
  # 传统模式,加载完整文件
70
- relationships_data=$(cat spec/tracking/relationships.json)
70
+ relationships_data=$(cat tracking/relationships.json)
71
71
  ```
72
72
 
73
73
  **向下兼容**:小型项目(< 300 章)继续使用单文件模式
@@ -120,7 +120,7 @@ relationships_data=$(cat spec/tracking/relationships.json)
120
120
 
121
121
  ## 数据存储
122
122
 
123
- 关系数据存储在 `spec/tracking/relationships.json`:
123
+ 关系数据存储在 `tracking/relationships.json`:
124
124
  ```json
125
125
  {
126
126
  "characters": {
@@ -163,7 +163,7 @@ relationships_data=$(cat spec/tracking/relationships.json)
163
163
 
164
164
  关系数据更新遵循以下协议:
165
165
 
166
- ### 分片模式(spec/tracking/volumes/ 存在)
166
+ ### 分片模式(tracking/volumes/ 存在)
167
167
 
168
168
  1. **确定目标卷**:
169
169
  - 如果命令指定 `--volume vol-XX`,写入对应卷
@@ -177,13 +177,13 @@ relationships_data=$(cat spec/tracking/relationships.json)
177
177
  2. **写入分片文件**:
178
178
  ```bash
179
179
  # 写入指定卷的 relationships.json
180
- Write(spec/tracking/volumes/${target_volume}/relationships.json)
180
+ Write(tracking/volumes/${target_volume}/relationships.json)
181
181
  ```
182
182
 
183
183
  3. **更新全局摘要**(如果关系变化影响角色摘要):
184
184
  ```bash
185
185
  # 更新 characters-summary.json 的关系统计
186
- Write(spec/tracking/summary/characters-summary.json)
186
+ Write(tracking/summary/characters-summary.json)
187
187
  ```
188
188
 
189
189
  4. **触发 MCP 同步**(如果启用):
@@ -198,7 +198,7 @@ relationships_data=$(cat spec/tracking/relationships.json)
198
198
 
199
199
  直接写入完整 `relationships.json`:
200
200
  ```bash
201
- Write(spec/tracking/relationships.json)
201
+ Write(tracking/relationships.json)
202
202
  ```
203
203
 
204
204
  ### 写入示例
@@ -211,8 +211,8 @@ const targetVolume = `vol-${String(volumeNum).padStart(2, '0')}`;
211
211
 
212
212
  // 读取目标卷的 relationships 分片
213
213
  const relPath = isSharded
214
- ? `spec/tracking/volumes/${targetVolume}/relationships.json`
215
- : 'spec/tracking/relationships.json';
214
+ ? `tracking/volumes/${targetVolume}/relationships.json`
215
+ : 'tracking/relationships.json';
216
216
 
217
217
  const relationships = JSON.parse(fs.readFileSync(relPath));
218
218
 
@@ -70,14 +70,14 @@ const plotData = await mcp.call('novelws-mcp/query_plot', {
70
70
  #### Layer 2: 分片 JSON(次优)
71
71
 
72
72
  ```bash
73
- # 当 spec/tracking/volumes/ 存在时
73
+ # 当 tracking/volumes/ 存在时
74
74
  if [[ -n "$VOLUME_FILTER" ]]; then
75
75
  # 仅加载指定卷的数据
76
- cat spec/tracking/volumes/${VOLUME_FILTER}/character-state.json
77
- cat spec/tracking/volumes/${VOLUME_FILTER}/relationships.json
76
+ cat tracking/volumes/${VOLUME_FILTER}/character-state.json
77
+ cat tracking/volumes/${VOLUME_FILTER}/relationships.json
78
78
  else
79
79
  # 加载所有卷的数据
80
- for vol in spec/tracking/volumes/vol-*/; do
80
+ for vol in tracking/volumes/vol-*/; do
81
81
  cat "$vol/character-state.json"
82
82
  cat "$vol/relationships.json"
83
83
  done
@@ -93,8 +93,8 @@ fi
93
93
 
94
94
  ```bash
95
95
  # 传统模式,加载完整文件
96
- cat spec/tracking/character-state.json
97
- cat spec/tracking/relationships.json
96
+ cat tracking/character-state.json
97
+ cat tracking/relationships.json
98
98
  ```
99
99
 
100
100
  **向下兼容**:小型项目(< 300 章)继续使用单文件模式
@@ -110,24 +110,24 @@ cat spec/tracking/relationships.json
110
110
  - 创作计划:`stories/*/creative-plan.md`
111
111
  - **角色状态**(三层回退):
112
112
  - Layer 3: `mcp.call('novelws-mcp/query_characters', {volume})`
113
- - Layer 2: `spec/tracking/volumes/${volume}/character-state.json`
114
- - Layer 1: `spec/tracking/character-state.json`
113
+ - Layer 2: `tracking/volumes/${volume}/character-state.json`
114
+ - Layer 1: `tracking/character-state.json`
115
115
  - **关系网络**(三层回退):
116
116
  - Layer 3: `mcp.call('novelws-mcp/query_relationships', {volume})`
117
- - Layer 2: `spec/tracking/volumes/${volume}/relationships.json`
118
- - Layer 1: `spec/tracking/relationships.json`
117
+ - Layer 2: `tracking/volumes/${volume}/relationships.json`
118
+ - Layer 1: `tracking/relationships.json`
119
119
 
120
120
  **如有则加载**:
121
121
  - `/analyze` 报告:`stories/*/analysis-report.md`
122
- - 风格参考:`.specify/memory/style-reference.md`
123
- - 个人风格:`.specify/memory/personal-voice.md`
122
+ - 风格参考:`resources/memory/style-reference.md`
123
+ - 个人风格:`resources/memory/personal-voice.md`
124
124
  - **情节追踪**(三层回退):
125
125
  - Layer 3: `mcp.call('novelws-mcp/query_plot', {volume})`
126
- - Layer 2: `spec/tracking/volumes/${volume}/plot-tracker.json`
127
- - Layer 1: `spec/tracking/plot-tracker.json`
126
+ - Layer 2: `tracking/volumes/${volume}/plot-tracker.json`
127
+ - Layer 1: `tracking/plot-tracker.json`
128
128
 
129
129
  **加载 Skill**:
130
- - `.specify/templates/skills/writing-techniques/revision-polish/SKILL.md`(核心修改流程)
130
+ - `.claude/skills/writing-techniques/revision-polish/SKILL.md`(核心修改流程)
131
131
 
132
132
  ### 4. 初稿评估
133
133
 
@@ -46,15 +46,15 @@ const results = await mcp.call('novelws-mcp/search_content', {
46
46
  ### Layer 2: 分片 Grep(次优)
47
47
 
48
48
  ```bash
49
- # 当 spec/tracking/volumes/ 存在时
49
+ # 当 tracking/volumes/ 存在时
50
50
  if [[ -n "$VOLUME_FILTER" ]]; then
51
51
  # 仅搜索指定卷
52
52
  grep -rn "$QUERY" "stories/*/content/" | grep "ch-$(volume_to_range $VOLUME_FILTER)"
53
- grep -rn "$QUERY" "spec/tracking/volumes/$VOLUME_FILTER/"
53
+ grep -rn "$QUERY" "tracking/volumes/$VOLUME_FILTER/"
54
54
  else
55
55
  # 搜索所有内容
56
56
  grep -rn "$QUERY" "stories/*/content/"
57
- grep -rn "$QUERY" "spec/tracking/volumes/"
57
+ grep -rn "$QUERY" "tracking/volumes/"
58
58
  fi
59
59
  ```
60
60
 
@@ -68,7 +68,7 @@ fi
68
68
  ```bash
69
69
  # 传统模式,搜索所有文件
70
70
  grep -rn "$QUERY" "stories/*/content/"
71
- grep -rn "$QUERY" "spec/tracking/"
71
+ grep -rn "$QUERY" "tracking/"
72
72
  ```
73
73
 
74
74
  **向下兼容**:小型项目(< 300 章)使用标准 Grep
@@ -102,7 +102,7 @@ const isRegex = args.regex || 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
  // 选择搜索策略
@@ -179,11 +179,11 @@ if [[ -n "$VOLUME_FILTER" ]]; then
179
179
  done
180
180
 
181
181
  # 搜索 tracking 数据
182
- grep -rn "$QUERY" "spec/tracking/volumes/$VOLUME_FILTER/"
182
+ grep -rn "$QUERY" "tracking/volumes/$VOLUME_FILTER/"
183
183
  else
184
184
  # 搜索所有内容
185
185
  grep -rn "$QUERY" "stories/*/content/"
186
- grep -rn "$QUERY" "spec/tracking/volumes/"
186
+ grep -rn "$QUERY" "tracking/volumes/"
187
187
  fi
188
188
  ```
189
189
 
@@ -196,7 +196,7 @@ QUERY="$1"
196
196
  grep -rn "$QUERY" "stories/*/content/"
197
197
 
198
198
  # 搜索 tracking 数据
199
- grep -rn "$QUERY" "spec/tracking/" --exclude-dir=volumes
199
+ grep -rn "$QUERY" "tracking/" --exclude-dir=volumes
200
200
  ```
201
201
 
202
202
  ### Step 4: 处理搜索结果
@@ -262,7 +262,7 @@ const resultsWithContext = sortedResults.map(result => ({
262
262
 
263
263
  ### 角色数据
264
264
 
265
- **文件**:spec/tracking/volumes/vol-03/character-state.json
265
+ **文件**:tracking/volumes/vol-03/character-state.json
266
266
 
267
267
  **匹配项**:
268
268
  ```json
@@ -277,7 +277,7 @@ const resultsWithContext = sortedResults.map(result => ({
277
277
 
278
278
  ### 情节数据
279
279
 
280
- **文件**:spec/tracking/volumes/vol-03/plot-tracker.json
280
+ **文件**:tracking/volumes/vol-03/plot-tracker.json
281
281
 
282
282
  **匹配项**:
283
283
  ```json
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  description: 定义故事规格,明确要创造什么样的作品
3
3
  argument-hint: [故事描述] [--world]
4
- allowed-tools: Read(//stories/**/specification.md), Read(//stories/**/specification.md), Write(//stories/**/specification.md), Write(//stories/**/specification.md), Read(//.specify/memory/constitution.md), Read(//.specify/memory/constitution.md), Bash(find:*), Bash(*)
4
+ allowed-tools: Read(//stories/**/specification.md), Read(//stories/**/specification.md), Write(//stories/**/specification.md), Write(//stories/**/specification.md), Read(//resources/memory/constitution.md), Read(//resources/memory/constitution.md), Bash(find:*), Bash(*)
5
5
  scripts:
6
- sh: .specify/scripts/bash/specify-story.sh --json
7
- ps: .specify/scripts/powershell/specify-story.ps1 -Json
6
+ sh: resources/scripts/bash/specify-story.sh --json
7
+ ps: resources/scripts/powershell/specify-story.ps1 -Json
8
8
  ---
9
9
 
10
10
  用户输入:$ARGUMENTS
@@ -99,7 +99,7 @@ else:
99
99
 
100
100
  ### 2. 检查宪法合规性
101
101
 
102
- 如果存在 `.specify/memory/constitution.md`:
102
+ 如果存在 `resources/memory/constitution.md`:
103
103
  - 加载宪法原则
104
104
  - 确保规格符合宪法价值观
105
105
  - 在规格中引用相关原则
@@ -2,8 +2,8 @@
2
2
  description: 将创作计划分解为可执行的任务清单
3
3
  allowed-tools: Read(//stories/**/creative-plan.md), Read(//stories/**/creative-plan.md), Read(//stories/**/specification.md), Read(//stories/**/specification.md), Write(//stories/**/tasks.md), Write(//stories/**/tasks.md), Bash(find:*), Bash(*)
4
4
  scripts:
5
- sh: .specify/scripts/bash/tasks-story.sh
6
- ps: .specify/scripts/powershell/generate-tasks.ps1
5
+ sh: resources/scripts/bash/tasks-story.sh
6
+ ps: resources/scripts/powershell/generate-tasks.ps1
7
7
  ---
8
8
 
9
9
  基于创作计划生成具体的、可执行的任务列表。
@@ -63,16 +63,16 @@ const characters = await mcp.call('novelws-mcp/query_characters', {
63
63
  ### Layer 2: 分片 JSON(次优)
64
64
 
65
65
  ```bash
66
- # 当 spec/tracking/volumes/ 存在时
66
+ # 当 tracking/volumes/ 存在时
67
67
  # 读取摘要数据
68
- plot_summary=$(cat spec/tracking/summary/plot-summary.json)
68
+ plot_summary=$(cat tracking/summary/plot-summary.json)
69
69
 
70
70
  # 提取未解决伏笔和紧急伏笔
71
71
  unresolved_plots=$(echo "$plot_summary" | jq '.unresolved')
72
72
  urgent_plots=$(echo "$plot_summary" | jq '.urgent')
73
73
 
74
74
  # 读取角色摘要
75
- character_summary=$(cat spec/tracking/summary/characters-summary.json)
75
+ character_summary=$(cat tracking/summary/characters-summary.json)
76
76
  absent_characters=$(echo "$character_summary" | jq '.absent')
77
77
  ```
78
78
 
@@ -85,8 +85,8 @@ absent_characters=$(echo "$character_summary" | jq '.absent')
85
85
 
86
86
  ```bash
87
87
  # 传统模式,加载完整文件并手动过滤
88
- plot_tracker=$(cat spec/tracking/plot-tracker.json)
89
- character_state=$(cat spec/tracking/character-state.json)
88
+ plot_tracker=$(cat tracking/plot-tracker.json)
89
+ character_state=$(cat tracking/character-state.json)
90
90
 
91
91
  # 手动计算紧急度、缺席章节等
92
92
  ```
@@ -313,8 +313,8 @@ character_state=$(cat spec/tracking/character-state.json)
313
313
  4. 自动设置依赖关系(顺序依赖)
314
314
  5. 按三层 Fallback 读取 tracking 数据生成修复/维护任务:
315
315
  - **MCP 查询(优先)**:`query_plot --status=overdue` 获取延迟伏笔,`stats_volume` 获取进度
316
- - **分片 JSON(次优)**:读取 `spec/tracking/summary/plot-summary.json` 获取未解决伏笔
317
- - **单文件 JSON(兜底)**:读取 `spec/tracking/plot-tracker.json`
316
+ - **分片 JSON(次优)**:读取 `tracking/summary/plot-summary.json` 获取未解决伏笔
317
+ - **单文件 JSON(兜底)**:读取 `tracking/plot-tracker.json`
318
318
  6. 从 `/analyze` 反馈中提取修复任务
319
319
  7. 从 `/track --check` 中提取维护任务
320
320