novelws 1.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 (320) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/LICENSE +22 -0
  3. package/README.md +372 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +50 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/check.d.ts +6 -0
  9. package/dist/commands/check.d.ts.map +1 -0
  10. package/dist/commands/check.js +32 -0
  11. package/dist/commands/check.js.map +1 -0
  12. package/dist/commands/init.d.ts +6 -0
  13. package/dist/commands/init.d.ts.map +1 -0
  14. package/dist/commands/init.js +160 -0
  15. package/dist/commands/init.js.map +1 -0
  16. package/dist/commands/plugin.d.ts +6 -0
  17. package/dist/commands/plugin.d.ts.map +1 -0
  18. package/dist/commands/plugin.js +135 -0
  19. package/dist/commands/plugin.js.map +1 -0
  20. package/dist/commands/upgrade.d.ts +6 -0
  21. package/dist/commands/upgrade.d.ts.map +1 -0
  22. package/dist/commands/upgrade.js +92 -0
  23. package/dist/commands/upgrade.js.map +1 -0
  24. package/dist/core/config.d.ts +72 -0
  25. package/dist/core/config.d.ts.map +1 -0
  26. package/dist/core/config.js +136 -0
  27. package/dist/core/config.js.map +1 -0
  28. package/dist/core/errors.d.ts +59 -0
  29. package/dist/core/errors.d.ts.map +1 -0
  30. package/dist/core/errors.js +125 -0
  31. package/dist/core/errors.js.map +1 -0
  32. package/dist/core/platform.d.ts +27 -0
  33. package/dist/core/platform.d.ts.map +1 -0
  34. package/dist/core/platform.js +75 -0
  35. package/dist/core/platform.js.map +1 -0
  36. package/dist/core/template.d.ts +35 -0
  37. package/dist/core/template.d.ts.map +1 -0
  38. package/dist/core/template.js +94 -0
  39. package/dist/core/template.js.map +1 -0
  40. package/dist/plugins/identifier.d.ts +13 -0
  41. package/dist/plugins/identifier.d.ts.map +1 -0
  42. package/dist/plugins/identifier.js +72 -0
  43. package/dist/plugins/identifier.js.map +1 -0
  44. package/dist/plugins/installers/base.d.ts +27 -0
  45. package/dist/plugins/installers/base.d.ts.map +1 -0
  46. package/dist/plugins/installers/base.js +30 -0
  47. package/dist/plugins/installers/base.js.map +1 -0
  48. package/dist/plugins/installers/github.d.ts +22 -0
  49. package/dist/plugins/installers/github.d.ts.map +1 -0
  50. package/dist/plugins/installers/github.js +133 -0
  51. package/dist/plugins/installers/github.js.map +1 -0
  52. package/dist/plugins/installers/local.d.ts +16 -0
  53. package/dist/plugins/installers/local.d.ts.map +1 -0
  54. package/dist/plugins/installers/local.js +69 -0
  55. package/dist/plugins/installers/local.js.map +1 -0
  56. package/dist/plugins/installers/npm.d.ts +20 -0
  57. package/dist/plugins/installers/npm.d.ts.map +1 -0
  58. package/dist/plugins/installers/npm.js +99 -0
  59. package/dist/plugins/installers/npm.js.map +1 -0
  60. package/dist/plugins/manager.d.ts +77 -0
  61. package/dist/plugins/manager.d.ts.map +1 -0
  62. package/dist/plugins/manager.js +349 -0
  63. package/dist/plugins/manager.js.map +1 -0
  64. package/dist/plugins/registry.d.ts +48 -0
  65. package/dist/plugins/registry.d.ts.map +1 -0
  66. package/dist/plugins/registry.js +111 -0
  67. package/dist/plugins/registry.js.map +1 -0
  68. package/dist/plugins/types.d.ts +66 -0
  69. package/dist/plugins/types.d.ts.map +1 -0
  70. package/dist/plugins/types.js +2 -0
  71. package/dist/plugins/types.js.map +1 -0
  72. package/dist/plugins/validator.d.ts +19 -0
  73. package/dist/plugins/validator.d.ts.map +1 -0
  74. package/dist/plugins/validator.js +164 -0
  75. package/dist/plugins/validator.js.map +1 -0
  76. package/dist/utils/logger.d.ts +13 -0
  77. package/dist/utils/logger.d.ts.map +1 -0
  78. package/dist/utils/logger.js +48 -0
  79. package/dist/utils/logger.js.map +1 -0
  80. package/dist/utils/project.d.ts +24 -0
  81. package/dist/utils/project.d.ts.map +1 -0
  82. package/dist/utils/project.js +61 -0
  83. package/dist/utils/project.js.map +1 -0
  84. package/dist/version.d.ts +3 -0
  85. package/dist/version.d.ts.map +1 -0
  86. package/dist/version.js +21 -0
  87. package/dist/version.js.map +1 -0
  88. package/package.json +76 -0
  89. package/plugins/authentic-voice/README.md +31 -0
  90. package/plugins/authentic-voice/commands/authentic-voice.md +73 -0
  91. package/plugins/authentic-voice/commands/authenticity-audit.md +37 -0
  92. package/plugins/authentic-voice/config.yaml +30 -0
  93. package/plugins/authentic-voice/experts/authentic-editor.md +27 -0
  94. package/plugins/export/README.md +319 -0
  95. package/plugins/export/commands/export.md +460 -0
  96. package/plugins/export/commands/generate-cover.md +256 -0
  97. package/plugins/export/commands/metadata.md +309 -0
  98. package/plugins/export/config.yaml +47 -0
  99. package/plugins/export/experts/publishing-expert.md +171 -0
  100. package/plugins/export/templates/epub/chapter-template.html +13 -0
  101. package/plugins/export/templates/epub/cover-template.html +14 -0
  102. package/plugins/export/templates/epub/stylesheet.css +200 -0
  103. package/plugins/export/templates/pdf/ebook-style.css +137 -0
  104. package/plugins/export/templates/pdf/print-style.css +179 -0
  105. package/plugins/export/templates/platforms/jinjiang-format.md +101 -0
  106. package/plugins/export/templates/platforms/qidian-format.md +108 -0
  107. package/plugins/export/templates/platforms/tomato-format.md +95 -0
  108. package/plugins/translate/README.md +265 -0
  109. package/plugins/translate/commands/glossary.md +731 -0
  110. package/plugins/translate/commands/translate-preview.md +543 -0
  111. package/plugins/translate/commands/translate.md +649 -0
  112. package/plugins/translate/config.yaml +43 -0
  113. package/plugins/translate/experts/literary-translator.md +605 -0
  114. package/templates/commands/analyze.md +1485 -0
  115. package/templates/commands/checklist.md +434 -0
  116. package/templates/commands/clarify.md +257 -0
  117. package/templates/commands/constitution.md +257 -0
  118. package/templates/commands/expert.md +136 -0
  119. package/templates/commands/plan.md +749 -0
  120. package/templates/commands/recap.md +613 -0
  121. package/templates/commands/relations.md +96 -0
  122. package/templates/commands/revise.md +341 -0
  123. package/templates/commands/specify.md +682 -0
  124. package/templates/commands/tasks.md +142 -0
  125. package/templates/commands/timeline.md +73 -0
  126. package/templates/commands/track-init.md +137 -0
  127. package/templates/commands/track.md +463 -0
  128. package/templates/commands/write.md +1264 -0
  129. package/templates/config/keyword-mappings.json +106 -0
  130. package/templates/knowledge/audit-config.json +26 -0
  131. package/templates/knowledge/character-profiles.md +152 -0
  132. package/templates/knowledge/character-voices.md +137 -0
  133. package/templates/knowledge/locations.md +184 -0
  134. package/templates/knowledge/world-setting.md +121 -0
  135. package/templates/knowledge-base/README.md +285 -0
  136. package/templates/knowledge-base/character-archetypes/01-hero.md +233 -0
  137. package/templates/knowledge-base/character-archetypes/02-mentor.md +177 -0
  138. package/templates/knowledge-base/character-archetypes/03-shadow.md +221 -0
  139. package/templates/knowledge-base/character-archetypes/04-ally.md +178 -0
  140. package/templates/knowledge-base/character-archetypes/05-shapeshifter.md +177 -0
  141. package/templates/knowledge-base/character-archetypes/06-trickster.md +181 -0
  142. package/templates/knowledge-base/character-archetypes/07-threshold-guardian.md +177 -0
  143. package/templates/knowledge-base/character-archetypes/08-herald.md +180 -0
  144. package/templates/knowledge-base/character-archetypes/09-father.md +249 -0
  145. package/templates/knowledge-base/character-archetypes/10-mother.md +202 -0
  146. package/templates/knowledge-base/character-archetypes/11-child.md +183 -0
  147. package/templates/knowledge-base/character-archetypes/12-sage.md +202 -0
  148. package/templates/knowledge-base/character-archetypes/README.md +60 -0
  149. package/templates/knowledge-base/character-archetypes/application-guide.md +222 -0
  150. package/templates/knowledge-base/character-archetypes/archetype-combinations.md +242 -0
  151. package/templates/knowledge-base/character-archetypes/config.yaml +28 -0
  152. package/templates/knowledge-base/character-archetypes/examples-analysis.md +223 -0
  153. package/templates/knowledge-base/craft/character-arc.md +1153 -0
  154. package/templates/knowledge-base/craft/dialogue.md +1170 -0
  155. package/templates/knowledge-base/craft/pacing.md +1200 -0
  156. package/templates/knowledge-base/craft/scene-structure.md +1136 -0
  157. package/templates/knowledge-base/craft/show-not-tell.md +1012 -0
  158. package/templates/knowledge-base/emotional-beats/01-first-meeting.md +145 -0
  159. package/templates/knowledge-base/emotional-beats/02-bonding-moment.md +226 -0
  160. package/templates/knowledge-base/emotional-beats/03-declaration.md +284 -0
  161. package/templates/knowledge-base/emotional-beats/04-triumph.md +240 -0
  162. package/templates/knowledge-base/emotional-beats/05-reunion.md +396 -0
  163. package/templates/knowledge-base/emotional-beats/06-forgiveness.md +204 -0
  164. package/templates/knowledge-base/emotional-beats/07-betrayal.md +204 -0
  165. package/templates/knowledge-base/emotional-beats/08-loss.md +214 -0
  166. package/templates/knowledge-base/emotional-beats/09-rejection.md +254 -0
  167. package/templates/knowledge-base/emotional-beats/10-failure.md +244 -0
  168. package/templates/knowledge-base/emotional-beats/11-misunderstanding.md +205 -0
  169. package/templates/knowledge-base/emotional-beats/12-farewell.md +283 -0
  170. package/templates/knowledge-base/emotional-beats/13-revelation.md +242 -0
  171. package/templates/knowledge-base/emotional-beats/14-point-of-no-return.md +215 -0
  172. package/templates/knowledge-base/emotional-beats/15-dark-night.md +244 -0
  173. package/templates/knowledge-base/emotional-beats/16-sacrifice.md +246 -0
  174. package/templates/knowledge-base/emotional-beats/17-awakening.md +246 -0
  175. package/templates/knowledge-base/emotional-beats/18-confrontation.md +217 -0
  176. package/templates/knowledge-base/emotional-beats/19-bittersweet-goodbye.md +368 -0
  177. package/templates/knowledge-base/emotional-beats/20-moral-dilemma.md +248 -0
  178. package/templates/knowledge-base/emotional-beats/21-temptation.md +240 -0
  179. package/templates/knowledge-base/emotional-beats/22-redemption.md +210 -0
  180. package/templates/knowledge-base/emotional-beats/README.md +104 -0
  181. package/templates/knowledge-base/emotional-beats/beat-sequences.md +276 -0
  182. package/templates/knowledge-base/emotional-beats/config.yaml +30 -0
  183. package/templates/knowledge-base/emotional-beats/pacing-guide.md +390 -0
  184. package/templates/knowledge-base/genres/historical.md +1127 -0
  185. package/templates/knowledge-base/genres/mystery.md +1123 -0
  186. package/templates/knowledge-base/genres/revenge.md +846 -0
  187. package/templates/knowledge-base/genres/romance.md +948 -0
  188. package/templates/knowledge-base/genres/sci-fi.md +156 -0
  189. package/templates/knowledge-base/genres/thriller.md +166 -0
  190. package/templates/knowledge-base/genres/wuxia.md +143 -0
  191. package/templates/knowledge-base/references/README.md +96 -0
  192. package/templates/knowledge-base/references/china-1920s/culture.md +423 -0
  193. package/templates/knowledge-base/references/china-1920s/daily-life.md +616 -0
  194. package/templates/knowledge-base/references/china-1920s/overview.md +298 -0
  195. package/templates/knowledge-base/references/china-1920s/society.md +703 -0
  196. package/templates/knowledge-base/references/china-1920s/warlords.md +427 -0
  197. package/templates/knowledge-base/references/cultivation-world/daily-life.md +108 -0
  198. package/templates/knowledge-base/references/cultivation-world/overview.md +64 -0
  199. package/templates/knowledge-base/references/cultivation-world/power-system.md +108 -0
  200. package/templates/knowledge-base/references/cultivation-world/sects.md +104 -0
  201. package/templates/knowledge-base/references/cultivation-world/world-setting.md +108 -0
  202. package/templates/knowledge-base/references/modern-workplace/corporate.md +115 -0
  203. package/templates/knowledge-base/references/modern-workplace/daily-life.md +129 -0
  204. package/templates/knowledge-base/references/modern-workplace/overview.md +73 -0
  205. package/templates/knowledge-base/references/modern-workplace/relationships.md +107 -0
  206. package/templates/knowledge-base/references/modern-workplace/tech-industry.md +131 -0
  207. package/templates/knowledge-base/references/tang-dynasty/culture.md +135 -0
  208. package/templates/knowledge-base/references/tang-dynasty/daily-life.md +139 -0
  209. package/templates/knowledge-base/references/tang-dynasty/overview.md +76 -0
  210. package/templates/knowledge-base/references/tang-dynasty/politics.md +121 -0
  211. package/templates/knowledge-base/references/tang-dynasty/society.md +126 -0
  212. package/templates/knowledge-base/requirements/README.md +240 -0
  213. package/templates/knowledge-base/requirements/anti-ai-v3.md +46 -0
  214. package/templates/knowledge-base/requirements/anti-ai-v4.md +430 -0
  215. package/templates/knowledge-base/requirements/fast-paced.md +552 -0
  216. package/templates/knowledge-base/requirements/no-poison.md +60 -0
  217. package/templates/knowledge-base/requirements/romance-angst.md +102 -0
  218. package/templates/knowledge-base/requirements/romance-sweet.md +63 -0
  219. package/templates/knowledge-base/requirements/serious-literature.md +45 -0
  220. package/templates/knowledge-base/requirements/strong-emotion.md +60 -0
  221. package/templates/knowledge-base/styles/README.md +302 -0
  222. package/templates/knowledge-base/styles/ancient-style.md +579 -0
  223. package/templates/knowledge-base/styles/literary.md +439 -0
  224. package/templates/knowledge-base/styles/minimal.md +472 -0
  225. package/templates/knowledge-base/styles/natural-voice.md +930 -0
  226. package/templates/knowledge-base/styles/web-novel.md +525 -0
  227. package/templates/memory/constitution.md +140 -0
  228. package/templates/memory/personal-voice.md +113 -0
  229. package/templates/scripts/README.md +187 -0
  230. package/templates/scripts/bash/analyze-story.sh +170 -0
  231. package/templates/scripts/bash/check-consistency.sh +463 -0
  232. package/templates/scripts/bash/check-plot.sh +374 -0
  233. package/templates/scripts/bash/check-timeline.sh +346 -0
  234. package/templates/scripts/bash/check-world.sh +395 -0
  235. package/templates/scripts/bash/check-writing-state.sh +854 -0
  236. package/templates/scripts/bash/clarify-story.sh +117 -0
  237. package/templates/scripts/bash/common.sh +151 -0
  238. package/templates/scripts/bash/constitution.sh +114 -0
  239. package/templates/scripts/bash/generate-tasks.sh +65 -0
  240. package/templates/scripts/bash/init-tracking.sh +183 -0
  241. package/templates/scripts/bash/manage-relations.sh +174 -0
  242. package/templates/scripts/bash/plan-story.sh +100 -0
  243. package/templates/scripts/bash/specify-story.sh +93 -0
  244. package/templates/scripts/bash/tasks-story.sh +96 -0
  245. package/templates/scripts/bash/test-word-count.sh +182 -0
  246. package/templates/scripts/bash/tests/bench-preload-cache.sh +100 -0
  247. package/templates/scripts/bash/tests/run-all-benchmarks.sh +16 -0
  248. package/templates/scripts/bash/tests/test-cache-semantics.sh +199 -0
  249. package/templates/scripts/bash/tests/test-cross-platform.sh +35 -0
  250. package/templates/scripts/bash/tests/test-edge-cases-bash.sh +60 -0
  251. package/templates/scripts/bash/tests/test-phase1-bash.sh +28 -0
  252. package/templates/scripts/bash/tests/test-preload-cache.sh +123 -0
  253. package/templates/scripts/bash/tests/test-regex-precompile.sh +89 -0
  254. package/templates/scripts/bash/tests/test-regression-bash.sh +42 -0
  255. package/templates/scripts/bash/tests/test-task6-verification.sh +200 -0
  256. package/templates/scripts/bash/text-audit.sh +144 -0
  257. package/templates/scripts/bash/track-progress.sh +194 -0
  258. package/templates/scripts/powershell/analyze-story.ps1 +171 -0
  259. package/templates/scripts/powershell/check-analyze-stage.ps1 +110 -0
  260. package/templates/scripts/powershell/check-consistency.ps1 +138 -0
  261. package/templates/scripts/powershell/check-plot.ps1 +139 -0
  262. package/templates/scripts/powershell/check-timeline.ps1 +112 -0
  263. package/templates/scripts/powershell/check-writing-state.ps1 +490 -0
  264. package/templates/scripts/powershell/check-writing-state.ps1.backup +135 -0
  265. package/templates/scripts/powershell/clarify-story.ps1 +107 -0
  266. package/templates/scripts/powershell/common.ps1 +36 -0
  267. package/templates/scripts/powershell/constitution.ps1 +142 -0
  268. package/templates/scripts/powershell/generate-tasks.ps1 +75 -0
  269. package/templates/scripts/powershell/init-tracking.ps1 +98 -0
  270. package/templates/scripts/powershell/manage-relations.ps1 +134 -0
  271. package/templates/scripts/powershell/plan-story.ps1 +96 -0
  272. package/templates/scripts/powershell/specify-story.ps1 +82 -0
  273. package/templates/scripts/powershell/tests/bench-ps-cache.ps1 +80 -0
  274. package/templates/scripts/powershell/tests/test-cross-platform.ps1 +27 -0
  275. package/templates/scripts/powershell/tests/test-edge-cases-ps.ps1 +29 -0
  276. package/templates/scripts/powershell/tests/test-phase1-ps.ps1 +28 -0
  277. package/templates/scripts/powershell/tests/test-ps-cache.ps1 +73 -0
  278. package/templates/scripts/powershell/tests/test-regression-ps.ps1 +40 -0
  279. package/templates/scripts/powershell/text-audit.ps1 +100 -0
  280. package/templates/scripts/powershell/track-progress.ps1 +105 -0
  281. package/templates/skills/genre-knowledge/fantasy/SKILL.md +355 -0
  282. package/templates/skills/genre-knowledge/mystery/SKILL.md +337 -0
  283. package/templates/skills/genre-knowledge/romance/SKILL.md +228 -0
  284. package/templates/skills/genre-knowledge/sci-fi/SKILL.md +65 -0
  285. package/templates/skills/genre-knowledge/thriller/SKILL.md +95 -0
  286. package/templates/skills/quality-assurance/consistency-checker/SKILL.md +341 -0
  287. package/templates/skills/quality-assurance/continuity-tracker/SKILL.md +157 -0
  288. package/templates/skills/quality-assurance/forgotten-elements/SKILL.md +147 -0
  289. package/templates/skills/quality-assurance/getting-started/SKILL.md +224 -0
  290. package/templates/skills/quality-assurance/pacing-monitor/SKILL.md +143 -0
  291. package/templates/skills/quality-assurance/pov-validator/SKILL.md +135 -0
  292. package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +583 -0
  293. package/templates/skills/quality-assurance/requirement-detector/CONFLICT_RESOLUTION.md +119 -0
  294. package/templates/skills/quality-assurance/requirement-detector/EXAMPLES.md +146 -0
  295. package/templates/skills/quality-assurance/requirement-detector/KEYWORDS.md +160 -0
  296. package/templates/skills/quality-assurance/requirement-detector/SKILL.md +149 -0
  297. package/templates/skills/quality-assurance/setting-detector/SKILL.md +611 -0
  298. package/templates/skills/quality-assurance/style-detector/CONFLICT_RESOLUTION.md +126 -0
  299. package/templates/skills/quality-assurance/style-detector/EXAMPLES.md +206 -0
  300. package/templates/skills/quality-assurance/style-detector/KEYWORDS.md +207 -0
  301. package/templates/skills/quality-assurance/style-detector/SKILL.md +126 -0
  302. package/templates/skills/quality-assurance/workflow-guide/SKILL.md +381 -0
  303. package/templates/skills/writing-techniques/character-arc/SKILL.md +267 -0
  304. package/templates/skills/writing-techniques/dialogue-techniques/SKILL.md +366 -0
  305. package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +553 -0
  306. package/templates/skills/writing-techniques/multi-thread-narrative/experts/thread-analyst.md +226 -0
  307. package/templates/skills/writing-techniques/pacing-control/SKILL.md +377 -0
  308. package/templates/skills/writing-techniques/reader-expectation/SKILL.md +578 -0
  309. package/templates/skills/writing-techniques/reader-expectation/experts/expectation-analyst.md +209 -0
  310. package/templates/skills/writing-techniques/revision-polish/SKILL.md +496 -0
  311. package/templates/skills/writing-techniques/revision-polish/experts/revision-editor.md +221 -0
  312. package/templates/skills/writing-techniques/scene-structure/SKILL.md +361 -0
  313. package/templates/skills/writing-techniques/style-learning/SKILL.md +436 -0
  314. package/templates/specification-example.md +146 -0
  315. package/templates/tracking/character-state.json +78 -0
  316. package/templates/tracking/plot-tracker.json +62 -0
  317. package/templates/tracking/relationships.json +70 -0
  318. package/templates/tracking/timeline.json +49 -0
  319. package/templates/tracking/tracking-log.md +110 -0
  320. package/templates/tracking/validation-rules.json +128 -0
@@ -0,0 +1,113 @@
1
+ # 个人语料与表达指纹(Personal Voice)
2
+
3
+ 用途:为写作提供稳定、自然的个人表达基础。越具体越好,尽量来自你的真实经历与说话习惯
4
+
5
+ ## 口头禅与常用表达
6
+ - 示例:我嘴快,但心里有数
7
+ - 示例:先把话挑明,再慢慢办
8
+ - 示例:这事儿吧,怎么说呢
9
+ - 示例:得,就这么定了
10
+
11
+ ## 固定句式与节奏偏好
12
+ - 示例:长句里讲道理,短句落锤
13
+ - 示例:段落喜欢先摆事实,后给判断
14
+ - 示例:爱用"...但是吧"转折
15
+ - 示例:习惯性重复关键词强调
16
+
17
+ ## 词汇选择偏好
18
+ - **常用词替代**
19
+ - 把"因此"说成"所以"、"这么着"
20
+ - 把"然而"说成"可是"、"但是吧"
21
+ - 把"非常"说成"特别"、"老"、"挺"
22
+ - 把"或许"说成"也许"、"说不定"、"兴许"
23
+ - **量词习惯**
24
+ - 一个人/一位人、一只狗/一条狗
25
+ - 一顿饭/一餐饭、一场雨/一阵雨
26
+ - **形容词口味**
27
+ - 少用"美丽"多用"好看"、"漂亮"
28
+ - 少用"优秀"多用"不错"、"挺好"
29
+ - 避免书面化形容词,偏爱口语化
30
+
31
+ ## 句子构造习惯
32
+ - **习惯性开头**
33
+ - 那什么、我跟你说、你知道吗
34
+ - 说真的、讲道理、实话实说
35
+ - 要我说、依我看、咱这么想
36
+ - **句中口头禅**
37
+ - 就是说、那个啥、怎么说呢
38
+ - 对吧、是不是、你说呢
39
+ - 这个吧、那啥、反正吧
40
+ - **结尾语气词**
41
+ - 吧、啊、呢、嘛、哈
42
+ - 的、了、着、过(动态助词使用偏好)
43
+ - 省略号使用习惯(...或。。。)
44
+
45
+ ## 生活经历清单(可写片段名或关键词)
46
+ - 示例:冬天在厂里连夜抢修
47
+ - 示例:高铁上目送一位老人到站没人接
48
+ - 示例:小时候邻居家的那只大黄狗
49
+ - 示例:第一次进城时的窘迫
50
+
51
+ ## 行业/地域词汇(口音、俚语、术语)
52
+ - 示例:北方口音词:咣当、抻、撂
53
+ - 示例:行业术语:回填、预案、解骚(中医)
54
+ - 示例:方言词:嘎嘣脆、溜达、唠嗑
55
+ - 示例:网络用语的使用频率和类型
56
+
57
+ ## 自然化缺陷(重要:增加真实感)
58
+ - **偶尔的错别字**(每千字1-2处)
59
+ - 的地得混用:"他欢快的跑着"
60
+ - 同音字错误:"在哪"写成"在那"
61
+ - **标点随意性**
62
+ - 省略号数量不固定:...或。。。或……
63
+ - 逗号和句号的随意使用
64
+ - 偶尔忘记标点,特别是对话中
65
+ - **口语化省略**
66
+ - 把"但是"说成"但"
67
+ - 把"这样"说成"这样儿"
68
+ - 主语省略:"觉得这事不靠谱"
69
+ - **语法不完美**
70
+ - 偶尔的语序调整:"这事我真没想到"
71
+ - 不完整句:"要是能早点知道..."
72
+ - 重复强调:"真的真的很重要"
73
+
74
+ ## 写作忌口与避讳
75
+ - 示例:少用"众所周知""在某种程度"等空话
76
+ - 示例:避免套路化励志语
77
+ - 示例:不用文绉绉的书面语
78
+ - 示例:避免过度使用成语
79
+
80
+ ## 比喻口味与意象库
81
+ - 示例:铁轨、雾气、路灯、雨棚、手套味道
82
+ - 示例:用器物与气味代替抽象名词
83
+ - 示例:偏爱具体场景而非抽象概念
84
+ - 示例:生活化比喻优于文学化比喻
85
+
86
+ ## 思维模式与表达逻辑
87
+ - **联想跳跃**
88
+ - 从A突然想到B的模式
89
+ - 话题转换的个人习惯
90
+ - 插入语和补充说明的位置
91
+ - **情绪表达**
92
+ - 激动时的语言变化
93
+ - 生气时的用词特点
94
+ - 开心时的表达方式
95
+ - **叙述顺序**
96
+ - 倾向时间顺序还是重要性顺序
97
+ - 爱不爱用倒叙、插叙
98
+ - 细节补充的时机
99
+
100
+ ## 常见场景的说话方式
101
+ - 示例:安慰人不爱直接说大道理,更愿意讲个亲历的小事
102
+ - 示例:批评时先肯定后指出问题
103
+ - 示例:紧张时语速加快,用词重复
104
+ - 示例:思考时的口头禅"这个嘛..."
105
+
106
+ ## 个人价值取向与反复念叨的话
107
+ - 示例:能把事办明白,比把话说漂亮更重要
108
+ - 示例:人得实在,别整那些虚的
109
+ - 示例:日子是自己过的,别太在意别人说啥
110
+
111
+ ---
112
+ 提示:本文件越常更新,生成文本越接近你的真实表达
113
+
@@ -0,0 +1,187 @@
1
+ # 脚本工具集
2
+
3
+ 本目录包含 Novel Writer Skills 的命令行脚本工具,作为 Claude Code Slash Commands 的替代方案。
4
+
5
+ ## 📂 目录结构
6
+
7
+ ```text
8
+ scripts/
9
+ ├── bash/ # macOS/Linux 脚本
10
+ ├── powershell/ # Windows 脚本
11
+ └── README.md # 本文档
12
+ ```
13
+
14
+ ## 🔄 novel-writer-skills 适配说明
15
+
16
+ 这些脚本已从 [novel-writer](https://github.com/wordflowlab/novel-writer) 移植并适配到 novel-writer-skills 项目结构:
17
+
18
+ ### 路径差异
19
+
20
+ | 文件 | novel-writer | novel-writer-skills |
21
+ |------|-------------|-------------------|
22
+ | 宪法文件 | `memory/constitution.md` | `.specify/memory/constitution.md` |
23
+ | 故事规格 | `stories/*/specification.md` | `stories/*/specification.md` ✅ |
24
+ | 追踪数据 | `spec/tracking/*.json` | `spec/tracking/*.json` ✅ |
25
+
26
+ **所有脚本已自动适配新路径**,无需手动修改!
27
+
28
+ ## 🎯 使用场景
29
+
30
+ 虽然 Novel Writer Skills 主要为 Claude Code 设计,但这些脚本提供了:
31
+
32
+ - ✅ **命令行替代方案** - 在终端中直接执行操作
33
+ - ✅ **自动化工作流** - 集成到 CI/CD 或自动化脚本中
34
+ - ✅ **批处理操作** - 处理多个故事或批量检查
35
+ - ✅ **独立工具** - 不依赖 Claude Code 的独立功能
36
+
37
+ ## 🚀 快速开始
38
+
39
+ ### macOS/Linux 用户
40
+
41
+ ```bash
42
+ # 进入项目根目录
43
+ cd my-novel
44
+
45
+ # 使用脚本(示例:创建宪法)
46
+ bash .specify/templates/scripts/bash/constitution.sh
47
+
48
+ # 或者添加到 PATH
49
+ export PATH="$PATH:$(pwd)/.specify/templates/scripts/bash"
50
+ constitution.sh
51
+ ```
52
+
53
+ ### Windows 用户
54
+
55
+ ```powershell
56
+ # 进入项目根目录
57
+ cd my-novel
58
+
59
+ # 使用脚本(示例:创建宪法)
60
+ .\.specify\templates\scripts\powershell\constitution.ps1
61
+
62
+ # 或者添加到环境变量
63
+ $env:PATH += ";$(Get-Location)\.specify\templates\scripts\powershell"
64
+ constitution.ps1
65
+ ```
66
+
67
+ ## 📚 核心脚本
68
+
69
+ ### 七步方法论
70
+
71
+ | 脚本 | 功能 | 对应命令 |
72
+ |-----|------|---------|
73
+ | `constitution.sh/ps1` | 创建创作宪法 | `/constitution` |
74
+ | `specify-story.sh/ps1` | 定义故事规格 | `/specify` |
75
+ | `clarify-story.sh/ps1` | 澄清模糊点 | `/clarify` |
76
+ | `plan-story.sh/ps1` | 制定创作计划 | `/plan` |
77
+ | `generate-tasks.sh/ps1` | 生成任务清单 | `/tasks` |
78
+ | `analyze-story.sh/ps1` | 质量验证分析 | `/analyze` |
79
+
80
+ ### 追踪与检查
81
+
82
+ | 脚本 | 功能 | 对应命令 |
83
+ |-----|------|---------|
84
+ | `init-tracking.sh/ps1` | 初始化追踪系统 | `/track-init` |
85
+ | `track-progress.sh/ps1` | 综合追踪更新 | `/track` |
86
+ | `check-plot.sh/ps1` | 情节一致性检查 | `/plot-check` |
87
+ | `check-timeline.sh/ps1` | 时间线管理 | `/timeline` |
88
+ | `manage-relations.sh/ps1` | 角色关系追踪 | `/relations` |
89
+ | `check-world.sh/ps1` | 世界观验证 | `/world-check` |
90
+ | `check-consistency.sh/ps1` | 一致性检查 | - |
91
+ | `check-writing-state.sh/ps1` | 写作状态检查 | - |
92
+
93
+ ### 工具脚本
94
+
95
+ | 脚本 | 功能 |
96
+ |-----|------|
97
+ | `common.sh/ps1` | 通用函数库(被其他脚本引用) |
98
+ | `text-audit.sh/ps1` | 文本审计工具 |
99
+ | `test-word-count.sh` | 字数统计(仅 bash) |
100
+
101
+ ## 🔧 通用函数库
102
+
103
+ `common.sh` 和 `common.ps1` 提供了以下公共函数:
104
+
105
+ ### Bash 函数
106
+
107
+ ```bash
108
+ get_project_root() # 获取项目根目录
109
+ get_current_story() # 获取当前故事目录
110
+ get_active_story() # 获取活跃故事名称
111
+ create_numbered_dir() # 创建带编号的目录
112
+ ```
113
+
114
+ ### PowerShell 函数
115
+
116
+ ```powershell
117
+ Get-ProjectRoot # 获取项目根目录
118
+ Get-CurrentStoryDir # 获取当前故事目录
119
+ Get-ActiveStory # 获取活跃故事名称
120
+ ```
121
+
122
+ ## ⚠️ 注意事项
123
+
124
+ 1. **项目根目录识别** - 脚本通过查找 `.specify/config.json` 确定项目根目录
125
+ 2. **执行权限** - Linux/macOS 用户需要确保脚本有执行权限:
126
+ ```bash
127
+ chmod +x .specify/templates/scripts/bash/*.sh
128
+ ```
129
+ 3. **与 Slash Commands 的区别**:
130
+ - Slash Commands 在 Claude Code 中使用,有 AI 交互能力
131
+ - 脚本适合自动化和批处理,无 AI 交互
132
+ - 推荐优先使用 Slash Commands 以获得最佳体验
133
+
134
+ ## 🆚 何时使用脚本 vs Slash Commands
135
+
136
+ | 场景 | 推荐方式 |
137
+ |-----|---------|
138
+ | 日常创作、需要 AI 协助 | ✅ Slash Commands |
139
+ | 批量处理、自动化 | ✅ 脚本 |
140
+ | CI/CD 集成 | ✅ 脚本 |
141
+ | 学习和理解工作流 | ✅ 脚本(可查看源码) |
142
+ | 快速检查和验证 | ✅ 脚本 |
143
+
144
+ ## 📖 示例:完整工作流
145
+
146
+ ```bash
147
+ # 1. 创建宪法
148
+ bash constitution.sh
149
+
150
+ # 2. 定义故事规格
151
+ bash specify-story.sh
152
+
153
+ # 3. 澄清模糊点(通常需要人工参与)
154
+ bash clarify-story.sh
155
+
156
+ # 4. 制定计划
157
+ bash plan-story.sh
158
+
159
+ # 5. 生成任务
160
+ bash generate-tasks.sh
161
+
162
+ # 6. 初始化追踪
163
+ bash init-tracking.sh
164
+
165
+ # 7. 写作过程中定期追踪
166
+ bash track-progress.sh
167
+
168
+ # 8. 最终分析
169
+ bash analyze-story.sh
170
+ ```
171
+
172
+ ## 🔗 相关文档
173
+
174
+ - [Novel Writer Skills 主文档](../../README.md)
175
+ - [命令详解](../../docs/guides/commands.md)
176
+ - [入门指南](../../docs/guides/getting-started.md)
177
+
178
+ ## 💡 提示
179
+
180
+ 这些脚本是从 [novel-writer](https://github.com/wordflowlab/novel-writer) 项目移植而来,经过调整以适配 Novel Writer Skills 的项目结构。
181
+
182
+ 如果你在多个 AI 工具间切换,也可以考虑使用完整版的 [novel-writer](https://github.com/wordflowlab/novel-writer)。
183
+
184
+ ---
185
+
186
+ **Happy Writing!** ✨📚
187
+
@@ -0,0 +1,170 @@
1
+ #!/bin/bash
2
+
3
+ # 故事分析验证脚本
4
+ # 用于 /analyze 命令
5
+
6
+ set -e
7
+
8
+ # Source common functions
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10
+ source "$SCRIPT_DIR/common.sh"
11
+
12
+ # Parse arguments
13
+ STORY_NAME="$1"
14
+ ANALYSIS_TYPE="${2:-full}" # full, compliance, quality, progress
15
+
16
+ # Get project root
17
+ PROJECT_ROOT=$(get_project_root)
18
+ cd "$PROJECT_ROOT"
19
+
20
+ # 确定故事路径
21
+ if [ -z "$STORY_NAME" ]; then
22
+ STORY_NAME=$(get_active_story)
23
+ fi
24
+
25
+ STORY_DIR="stories/$STORY_NAME"
26
+
27
+ # 检查必要文件
28
+ check_story_files() {
29
+ local missing_files=()
30
+
31
+ # 检查基准文档
32
+ [ ! -f ".specify/memory/constitution.md" ] && missing_files+=("宪法文件")
33
+ [ ! -f "$STORY_DIR/specification.md" ] && missing_files+=("规格文件")
34
+ [ ! -f "$STORY_DIR/creative-plan.md" ] && missing_files+=("计划文件")
35
+
36
+ if [ ${#missing_files[@]} -gt 0 ]; then
37
+ echo "⚠️ 缺少以下基准文档:"
38
+ for file in "${missing_files[@]}"; do
39
+ echo " - $file"
40
+ done
41
+ return 1
42
+ fi
43
+
44
+ return 0
45
+ }
46
+
47
+ # 统计内容
48
+ analyze_content() {
49
+ local content_dir="$STORY_DIR/content"
50
+ local total_words=0
51
+ local chapter_count=0
52
+
53
+ if [ -d "$content_dir" ]; then
54
+ echo "内容统计:"
55
+ echo ""
56
+ for file in "$content_dir"/*.md; do
57
+ if [ -f "$file" ]; then
58
+ ((chapter_count++))
59
+ # 使用准确的中文字数统计
60
+ local words=$(count_chinese_words "$file")
61
+ ((total_words += words))
62
+ local filename=$(basename "$file")
63
+ echo " $filename: $words 字"
64
+ fi
65
+ done
66
+ echo ""
67
+ echo " 总字数:$total_words"
68
+ echo " 章节数:$chapter_count"
69
+ if [ $chapter_count -gt 0 ]; then
70
+ echo " 平均章节长度:$((total_words / chapter_count)) 字"
71
+ fi
72
+ else
73
+ echo "内容统计:"
74
+ echo " 尚未开始写作"
75
+ fi
76
+ }
77
+
78
+ # 检查任务完成度
79
+ check_task_completion() {
80
+ local tasks_file="$STORY_DIR/tasks.md"
81
+ if [ ! -f "$tasks_file" ]; then
82
+ echo "任务文件不存在"
83
+ return
84
+ fi
85
+
86
+ local total_tasks=$(grep -c "^- \[" "$tasks_file" 2>/dev/null || echo 0)
87
+ local completed_tasks=$(grep -c "^- \[x\]" "$tasks_file" 2>/dev/null || echo 0)
88
+ local in_progress=$(grep -c "^- \[~\]" "$tasks_file" 2>/dev/null || echo 0)
89
+ local pending=$((total_tasks - completed_tasks - in_progress))
90
+
91
+ echo "任务进度:"
92
+ echo " 总任务:$total_tasks"
93
+ echo " 已完成:$completed_tasks"
94
+ echo " 进行中:$in_progress"
95
+ echo " 未开始:$pending"
96
+
97
+ if [ $total_tasks -gt 0 ]; then
98
+ local completion_rate=$((completed_tasks * 100 / total_tasks))
99
+ echo " 完成率:$completion_rate%"
100
+ fi
101
+ }
102
+
103
+ # 检查规格符合度
104
+ check_specification_compliance() {
105
+ local spec_file="$STORY_DIR/specification.md"
106
+
107
+ echo "规格符合度检查:"
108
+
109
+ # 检查P0需求(简化版)
110
+ local p0_count=$(grep -c "^### 必须包含(P0)" "$spec_file" 2>/dev/null || echo 0)
111
+ if [ $p0_count -gt 0 ]; then
112
+ echo " P0需求:检测到,需人工验证"
113
+ fi
114
+
115
+ # 检查是否还有[需要澄清]标记
116
+ local unclear=$(grep -c "\[需要澄清\]" "$spec_file" 2>/dev/null || echo 0)
117
+ if [ $unclear -gt 0 ]; then
118
+ echo " ⚠️ 仍有 $unclear 处需要澄清"
119
+ else
120
+ echo " ✅ 所有决策已澄清"
121
+ fi
122
+ }
123
+
124
+ # 主分析流程
125
+ main() {
126
+ echo "故事分析报告"
127
+ echo "============"
128
+ echo "故事:$STORY_NAME"
129
+ echo "分析时间:$(date '+%Y-%m-%d %H:%M:%S')"
130
+ echo ""
131
+
132
+ # 检查基准文档
133
+ if ! check_story_files; then
134
+ echo ""
135
+ echo "❌ 无法进行完整分析,请先完成基准文档"
136
+ exit 1
137
+ fi
138
+
139
+ echo "✅ 基准文档完整"
140
+ echo ""
141
+
142
+ # 根据分析类型执行
143
+ case "$ANALYSIS_TYPE" in
144
+ full)
145
+ analyze_content
146
+ echo ""
147
+ check_task_completion
148
+ echo ""
149
+ check_specification_compliance
150
+ ;;
151
+ quality)
152
+ analyze_content
153
+ ;;
154
+ progress)
155
+ check_task_completion
156
+ ;;
157
+ compliance)
158
+ check_specification_compliance
159
+ ;;
160
+ *)
161
+ echo "未知的分析类型:$ANALYSIS_TYPE"
162
+ exit 1
163
+ ;;
164
+ esac
165
+
166
+ echo ""
167
+ echo "分析完成。详细报告已保存到:$STORY_DIR/analysis-report.md"
168
+ }
169
+
170
+ main