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,1123 @@
1
+ # 悬疑推理小说创作知识库
2
+
3
+ ## 快速参考(Quick Reference)
4
+
5
+ 悬疑推理小说的核心是**智力游戏**。你在和读者进行一场公平的竞赛:能否在主角之前推理出真相?
6
+
7
+ **定义性特征**:
8
+ 1. **中心谜团**:故事围绕一个核心问题(谁是凶手?宝藏在哪?真相是什么?)
9
+ 2. **线索系统**:证据、红鲱鱼(误导线索)、逻辑推理链
10
+ 3. **公平游戏**:读者拥有和侦探相同的信息,理论上可以自己解谜
11
+
12
+ **关键公式**:
13
+ ```
14
+ 悬疑推理 = 核心谜团 + 线索布置 + 逻辑推理 + 意外真相
15
+ ```
16
+
17
+ **类型划分**:
18
+ - **本格推理**:重逻辑、重解谜、密室/诡计
19
+ - **社会派推理**:重人性、重动机、社会批判
20
+ - **悬疑惊悚**:重氛围、重节奏、不一定解谜
21
+
22
+ 本知识库主要聚焦**本格推理**和**悬疑推理**的融合(中文网文常见类型)。
23
+
24
+ ---
25
+
26
+ ## 核心原则(Core Principles)
27
+
28
+ ### 1. 公平游戏原则(Fair Play)
29
+
30
+ **原则**:读者应该有机会凭借提供的线索推理出真相。
31
+
32
+ **Ronald Knox 推理十诫**(经典规则):
33
+
34
+ 1. ✅ **凶手必须在故事前期出场**
35
+ - 不能在最后突然冒出一个"从未出现的神秘人"
36
+ - 凶手应在前30%篇幅中登场
37
+
38
+ 2. ✅ **不可使用超自然力量解决谜题**
39
+ - 可以有超自然氛围(营造悬疑)
40
+ - 但真相必须是自然的、可解释的
41
+
42
+ 3. ✅ **不可有超过一个秘密房间或通道**
43
+ - 过度使用机关会让读者觉得"什么都可能"
44
+
45
+ 4. ✅ **不可使用未知的毒药或需要科学解释的装置**
46
+ - 使用真实存在的毒药/工具
47
+ - 或在前文充分解释虚构物品
48
+
49
+ 5. ✅ **故事中不可出现中国人**(原版)
50
+ - 现代理解:不可使用"神秘东方人"刻板印象
51
+ - 不可用"异域神秘力量"作为偷懒借口
52
+
53
+ 6. ✅ **不可用意外或直觉解决谜题**
54
+ - 侦探不能靠"第六感"破案
55
+ - 必须通过逻辑推理
56
+
57
+ 7. ✅ **侦探本人不可是凶手**
58
+ - 除非这是明确的叙事诡计(高难度)
59
+
60
+ 8. ✅ **侦探必须公开所有发现的线索**
61
+ - 不能侦探发现了关键线索但隐瞒读者
62
+
63
+ 9. ✅ **侦探的朋友(华生角色)必须完全坦白**
64
+ - 第一人称视角不能隐瞒想法(除非叙事诡计)
65
+
66
+ 10. ✅ **不可使用双胞胎或化妆术(除非有铺垫)**
67
+ - 这些trick必须在前文埋下伏笔
68
+
69
+ **现代补充规则**:
70
+ - ✅ 所有关键线索必须在真相揭露前呈现给读者
71
+ - ✅ 真相揭示后,读者回看时应该觉得"确实有迹可循"
72
+ - ❌ 不要依赖"凶手突然精神病发作承认一切"
73
+
74
+ ---
75
+
76
+ ### 2. 线索布置三层次
77
+
78
+ **原则**:好的悬疑小说在线索布置上有精心设计,既不能太明显,也不能太隐晦。
79
+
80
+ **三层次线索系统**:
81
+
82
+ #### 第一层:明线索(Obvious Clues)
83
+ - **功能**:让读者觉得"我在调查"
84
+ - **特征**:显而易见的证据
85
+ - **示例**:
86
+ ```
87
+ - 凶器上有血迹
88
+ - 监控录像显示某人在场
89
+ - 证人证词
90
+ ```
91
+ - **占比**:40%
92
+
93
+ **陷阱**:明线索可以是**红鲱鱼**(误导线索)
94
+ ```
95
+ 明线索显示:A在案发时间出现在现场
96
+ 真相:A确实在现场,但不是凶手,是被栽赃
97
+ ```
98
+
99
+ #### 第二层:暗线索(Hidden Clues)
100
+ - **功能**:聪明读者能发现的细节
101
+ - **特征**:需要留意才能发现
102
+ - **示例**:
103
+ ```
104
+ - 角色对话中的不一致
105
+ - 看似无关的细节(天气、时间)
106
+ - 角色的微表情、小动作
107
+ ```
108
+ - **占比**:40%
109
+
110
+ **技巧**:将关键线索藏在无关描写中
111
+ ```
112
+ 错误做法:
113
+ "他的手表停在8点15分。" (太明显)
114
+
115
+ 正确做法:
116
+ "他习惯性地看了眼手表,然后皱了皱眉,继续说话。"
117
+ (手表有问题,但不直接说出来)
118
+
119
+ 后续线索:
120
+ "奇怪,他明明很守时,今天却迟到了。"
121
+ (读者需要联系:手表停了 → 所以他不知道时间 → 但等等,他为什么不看手机?)
122
+ ```
123
+
124
+ #### 第三层:逻辑推理线索(Deductive Clues)
125
+ - **功能**:需要结合多个信息才能得出
126
+ - **特征**:单独看无意义,组合后有重大发现
127
+ - **示例**:
128
+ ```
129
+ 线索A:死者最后吃的是牛排(7分熟)
130
+ 线索B:死亡时间是晚上8点
131
+ 线索C:这家餐厅牛排需要40分钟制作
132
+ 推理:死者7点20分还活着 → 缩小嫌疑人范围
133
+ ```
134
+ - **占比**:20%
135
+
136
+ **设计公式**:
137
+ ```
138
+ 2-3个独立线索 + 逻辑推理 = 关键发现
139
+ ```
140
+
141
+ ---
142
+
143
+ ### 3. 嫌疑人管理
144
+
145
+ **原则**:至少3个合理嫌疑人,每个都有动机、机会和秘密。
146
+
147
+ **标准嫌疑人结构**(5人为例):
148
+
149
+ | 嫌疑人 | 动机 | 机会 | 不在场证明 | 秘密 | 真实角色 |
150
+ |--------|------|------|-----------|------|---------|
151
+ | A-配偶 | 继承遗产 | ✓在场 | 无 | 外遇 | 红鲱鱼 |
152
+ | B-生意伙伴 | 商业纠纷 | ✓在场 | 有证人(假) | 挪用公款 | **真凶** |
153
+ | C-仆人 | 被虐待 | ✓在场 | 在厨房(真) | 偷窃 | 红鲱鱼 |
154
+ | D-私生子 | 争夺继承权 | ✗不在场 | 机票记录 | 身份 | 受害者 |
155
+ | E-律师 | 掩盖黑幕 | ✓在场 | 无 | 和死者交易 | 红鲱鱼 |
156
+
157
+ **设计要点**:
158
+
159
+ 1. **每个嫌疑人都有秘密**
160
+ - 秘密 ≠ 凶手
161
+ - 目的:让每个人都"可疑"
162
+ - 避免"只有凶手在隐瞒事情"
163
+
164
+ 2. **动机必须强烈且可信**
165
+ ```
166
+ ❌ 弱动机:"他讨厌死者"
167
+ ✅ 强动机:"死者握有他挪用公款的证据,明天就要报警"
168
+ ```
169
+
170
+ 3. **分阶段排除嫌疑**
171
+ ```
172
+ 前期(30%):5个嫌疑人,都可疑
173
+ 中期(50%):排除1-2人(有不在场证明)
174
+ 后期(70%):剩余2-3人,证据指向A
175
+ 揭秘(90%):反转,其实是B
176
+ ```
177
+
178
+ 4. **最不可疑的人往往是凶手**
179
+ - 前期看起来最无辜
180
+ - 或最积极协助调查(反向操作)
181
+ - 或已被"排除"的人
182
+
183
+ **避免的陷阱**:
184
+ - ❌ "最可疑的人就是凶手"(太简单)
185
+ - ❌ "从未怀疑过的人是凶手"(不公平)
186
+ - ✅ "曾怀疑但因某个理由排除,实际那个理由是假的"
187
+
188
+ ---
189
+
190
+ ### 4. 红鲱鱼设计(误导线索)
191
+
192
+ **原则**:红鲱鱼是有意的误导,但揭晓后读者应觉得"原来如此"而非"作者骗我"。
193
+
194
+ **红鲱鱼类型**:
195
+
196
+ #### A. 巧合型
197
+ ```
198
+ 误导:A在案发时间出现在现场附近,行为鬼鬼祟祟
199
+ 真相:A在偷情,不想被发现,与案件无关
200
+ ```
201
+
202
+ #### B. 半真相型
203
+ ```
204
+ 误导:B说"我恨死他了,早想他死"
205
+ 真相:B确实恨死者,但只是嘴上说说,真凶利用了这点栽赃B
206
+ ```
207
+
208
+ #### C. 错误推理型
209
+ ```
210
+ 误导:发现一个指向C的线索(比如C的物品在现场)
211
+ 真相:真凶故意放置C的物品,嫁祸给C
212
+ ```
213
+
214
+ #### D. 次要谜团型
215
+ ```
216
+ 误导:花大量篇幅解开一个谜团(保险箱里的秘密)
217
+ 真相:保险箱确实有秘密,但与凶杀案无关,只是死者的商业隐私
218
+ ```
219
+
220
+ **红鲱鱼设计规则**:
221
+
222
+ 1. **必须有合理解释**
223
+ - 不能是"作者故意写错"
224
+ - 必须在逻辑上说得通
225
+
226
+ 2. **占用篇幅要合理**
227
+ - 太少:读者不会上当
228
+ - 太多:读者会觉得被浪费时间
229
+
230
+ 3. **至少2-3个红鲱鱼**
231
+ - 1个:太容易猜
232
+ - 5个以上:太混乱
233
+
234
+ 4. **时机分散**
235
+ ```
236
+ 30%:红鲱鱼A引入
237
+ 40%:红鲱鱼B引入
238
+ 55%:红鲱鱼A被揭穿
239
+ 70%:红鲱鱼B被揭穿
240
+ 85%:真相揭示
241
+ ```
242
+
243
+ **示例对比**:
244
+
245
+ ❌ **糟糕的红鲱鱼**:
246
+ ```
247
+ 前期:大量篇幅描写A可疑,收集A的罪证
248
+ 揭秘:"其实A只是路过,凶手是从未重点描写的B"
249
+ 读者反应:"???那前面浪费我时间干嘛"
250
+ ```
251
+
252
+ ✅ **优秀的红鲱鱼**:
253
+ ```
254
+ 前期:A在案发时间出现,证词有漏洞,隐瞒了什么
255
+ 中期:发现A确实隐瞒了事情——他在偷公司文件
256
+ 后期:A的秘密与案件无关,但他的证词指向真凶B
257
+ 读者反应:"原来A的可疑是另一回事,但他的证词成了破案关键!"
258
+ ```
259
+
260
+ ---
261
+
262
+ ### 5. 真相揭示的艺术
263
+
264
+ **原则**:真相必须"意外但合理"(Surprising but Inevitable)。
265
+
266
+ **揭秘黄金公式**:
267
+
268
+ ```
269
+ 意外度 × 合理度 = 满意度
270
+
271
+ 意外度太低(0.3)× 合理度高(0.9)= 满意度低(0.27)"太容易猜了"
272
+ 意外度高(0.9)× 合理度低(0.3)= 满意度低(0.27)"太突兀了"
273
+ 意外度中高(0.7)× 合理度高(0.9)= 满意度高(0.63)✓
274
+ ```
275
+
276
+ **如何达到"意外但合理"**:
277
+
278
+ #### 技巧1:视角盲区
279
+ ```
280
+ 【设定】第一人称叙述,华生视角
281
+ 【误导】华生认为A是凶手,因为A很可疑
282
+ 【真相】B是凶手,但华生对B有信任盲区(好友/恋人/权威)
283
+ 【合理性】回看时所有线索都在,只是华生(读者)没往那方向想
284
+ ```
285
+
286
+ #### 技巧2:双重解释
287
+ ```
288
+ 【线索】死者手里握着一根红色羽毛
289
+ 【第一解释】红色羽毛 → 红衣女子A → A是凶手(误导)
290
+ 【第二解释】红色羽毛 → 羽毛笔的一部分 → 死者临死前在写遗嘱 → 律师B是凶手
291
+ 【合理性】两种解释都逻辑自洽,但细节支持第二种
292
+ ```
293
+
294
+ #### 技巧3:时间轴诡计
295
+ ```
296
+ 【表面时间轴】
297
+ 8:00 死者在家
298
+ 8:15 邻居听到枪声
299
+ 8:20 凶手B被目击在3公里外(不在场证明)
300
+
301
+ 【真实时间轴】
302
+ 8:00 B提前杀害死者
303
+ 8:15 定时装置发出枪声(模拟案发时间)
304
+ 8:20 B故意出现被目击(制造不在场证明)
305
+
306
+ 【合理性】前文提到B懂机械(伏笔)
307
+ ```
308
+
309
+ #### 技巧4:身份诡计
310
+ ```
311
+ 【误导】证人说看到"穿黑衣的高个男人"离开现场
312
+ 【真相】其实是女凶手C穿了增高鞋和男装
313
+ 【合理性】
314
+ - 前文提到C是演员(会化妆)
315
+ - 前文提到案发时光线昏暗
316
+ - 证人只是远远看了一眼
317
+ ```
318
+
319
+ **揭秘场景结构**:
320
+
321
+ ```markdown
322
+ 1. 集合所有相关人员(30%篇幅)
323
+ - 侦探重述案情
324
+ - 指出之前的推理错误
325
+
326
+ 2. 重新解读证据(40%篇幅)
327
+ - "我们之前认为X,但实际上..."
328
+ - "这个线索的真正含义是..."
329
+ - 逐步引导到真凶
330
+
331
+ 3. 指认凶手(20%篇幅)
332
+ - 直接指认
333
+ - 凶手反应(挣扎/崩溃/冷静)
334
+
335
+ 4. 完整解释(10%篇幅)
336
+ - 填补所有漏洞
337
+ - 解释每个疑点
338
+ - 交代凶手动机和手法
339
+ ```
340
+
341
+ **检查清单**:
342
+ - [ ] 读者回看时,是否所有线索都能对应上?
343
+ - [ ] 真相是否依赖"未曾提及的信息"?(应该没有)
344
+ - [ ] 凶手动机是否足够强烈?
345
+ - [ ] 作案手法是否在现实中可行?(或在设定内合理)
346
+ - [ ] 是否有逻辑漏洞?
347
+
348
+ ---
349
+
350
+ ## 实践应用(Practical Application)
351
+
352
+ ### 在 `/specify` 阶段
353
+
354
+ **悬疑推理规格模板**:
355
+
356
+ ```markdown
357
+ ## 悬疑推理设定
358
+
359
+ ### 核心谜团
360
+ - 中心问题:[谁杀了X?/宝藏在哪?/真相是什么?]
361
+ - 谜团类型:[谋杀/失踪/密室/宝藏/阴谋]
362
+ - 案发时间:[具体时间]
363
+ - 案发地点:[封闭空间/开放场所]
364
+
365
+ ### 受害者
366
+ - 姓名:[XX]
367
+ - 死亡方式:[枪杀/毒杀/密室/意外伪装]
368
+ - 死亡时间:[精确到分钟,这很重要]
369
+ - 为什么被杀:[真实动机]
370
+
371
+ ### 真凶设定
372
+ - 身份:[XX]
373
+ - 动机:[具体且强烈的动机]
374
+ - 手法:[如何杀人/如何制造不在场证明]
375
+ - 破绽:[什么线索最终暴露了他]
376
+
377
+ ### 嫌疑人系统
378
+ | 嫌疑人 | 与死者关系 | 动机 | 机会 | 秘密 | 角色 |
379
+ |--------|----------|------|------|------|------|
380
+ | A | 配偶 | 继承遗产 | 在场 | 外遇 | 红鲱鱼 |
381
+ | B | 合伙人 | 商业仇恨 | 在场 | 挪用 | **真凶** |
382
+ | C | 仆人 | 被虐待 | 在场 | 偷窃 | 红鲱鱼 |
383
+ | D | 朋友 | 无明显 | 不在场 | 爱慕死者 | 协助侦探 |
384
+
385
+ ### 关键线索系统
386
+ #### 明线索(40%)
387
+ 1. [枪在A的房间发现] - 红鲱鱼
388
+ 2. [监控显示B在场] - 真实线索
389
+ 3. [死者临终留言"A..."] - 误导线索(其实是"A...ccountant"即会计师B)
390
+
391
+ #### 暗线索(40%)
392
+ 1. [B的手表在案发后停了] - 打斗中损坏(真实)
393
+ 2. [死者日历圈出了某个日期] - B挪用公款被发现的日期
394
+ 3. [C说案发时听到两声枪响] - 其实第一声是B试枪
395
+
396
+ #### 推理线索(20%)
397
+ 1. 尸体僵硬度 + 室温 → 推算真实死亡时间早于听到枪声
398
+ 2. 死者胃内食物 + 消化时间 → 精确死亡时间窗口
399
+ 3. 弹道角度 + 死者身高 → 凶手身高推断
400
+
401
+ ### 红鲱鱼设计
402
+ 1. **A的可疑行为**(30-50%)
403
+ - 误导:A在撒谎,隐瞒行踪
404
+ - 真相:A在外遇,与案件无关
405
+
406
+ 2. **密室诡计暗示**(40-60%)
407
+ - 误导:花大量篇幅讨论如何从密室外杀人
408
+ - 真相:其实不是密室,是凶手B从内部反锁后装死
409
+
410
+ 3. **C的动机最强**(50-70%)
411
+ - 误导:C被虐待多年,最有动机
412
+ - 真相:C确实恨死者,但不敢动手,B利用这点嫁祸
413
+
414
+ ### 真相揭示结构
415
+ - **时机**:80-90%
416
+ - **场景**:[庄园大厅集合所有人]
417
+ - **反转点**:[大家以为是A时,侦探指向B]
418
+ - **核心证据**:[B的手表停在真实案发时间,与证词矛盾]
419
+ - **凶手反应**:[狡辩 → 证据确凿 → 崩溃承认]
420
+
421
+ ### 推理难度
422
+ - [ ] 简单:读者能在50%进度猜到(娱乐向)
423
+ - [x] 中等:读者能在70%进度猜到(大众向)
424
+ - [ ] 困难:读者很难猜到,需等揭秘(硬核向)
425
+
426
+ ### 公平游戏承诺
427
+ - [x] 所有关键线索在80%前呈现
428
+ - [x] 凶手在前30%出场
429
+ - [x] 不使用超自然/未知科技
430
+ - [x] 真相回看时逻辑自洽
431
+ ```
432
+
433
+ ---
434
+
435
+ ### 在 `/plan` 阶段
436
+
437
+ **线索布置时间线**:
438
+
439
+ ```markdown
440
+ ## 悬疑推理章节规划
441
+
442
+ ### 第一幕:案发与初步调查(0-25%,第1-8章)
443
+
444
+ **第1-2章:案发**
445
+ - 第1章:被害者最后的24小时(日常铺垫)
446
+ - 线索植入:死者与B争吵(暗线索)
447
+ - 角色引入:介绍所有嫌疑人
448
+ - 第2章:发现尸体
449
+ - 明线索:枪在A房间
450
+ - 现场描写:门窗紧锁(密室?)
451
+ - 初步推论:看起来是A
452
+
453
+ **第3-5章:初步调查**
454
+ - 第3章:询问嫌疑人A
455
+ - A的证词有漏洞(红鲱鱼开始)
456
+ - 明线索:A昨晚不在家(外遇)
457
+ - 第4章:询问嫌疑人B
458
+ - B看起来最无辜,积极协助
459
+ - 暗线索:B的手表停了(一闪而过)
460
+ - 第5章:询问嫌疑人C
461
+ - C很紧张,藏着秘密
462
+ - 明线索:C曾被死者虐待(强动机)
463
+
464
+ **第6-8章:发现关键线索**
465
+ - 第6章:死者的日记
466
+ - 明线索:提到"那个人要毁了我"(指B的挪用)
467
+ - 第7章:检查现场
468
+ - 暗线索:两声枪响(C的证词)
469
+ - 推理线索:尸体僵硬度异常
470
+ - 第8章:法医报告
471
+ - 推理线索:死亡时间可能更早
472
+
473
+ 【此时读者感受:A最可疑,但有点太明显?】
474
+
475
+ ---
476
+
477
+ ### 第二幕:深入调查与误导(25-75%,第9-24章)
478
+
479
+ **第9-12章:追查A线(红鲱鱼高峰)**
480
+ - 第9章:A的不在场证明被推翻
481
+ - 证人改口:A可能回过家
482
+ - 第10章:A的秘密
483
+ - 揭露A确实在外遇,撒了谎
484
+ - 但外遇对象证明A整晚在外(真不在场)
485
+ - 第11章:A初步排除
486
+ - 侦探转向其他嫌疑人
487
+ - 第12章:焦点转向C
488
+ - C的动机最强
489
+
490
+ **第13-16章:追查C线(红鲱鱼第二波)**
491
+ - 第13章:C的过往
492
+ - 被死者虐待的详细描写
493
+ - 第14章:C的物证
494
+ - 在C房间发现死者的贵重物品(偷窃?栽赃?)
495
+ - 第15章:C的崩溃
496
+ - C承认恨死者,但否认杀人
497
+ - 第16章:C的不在场证明
498
+ - 厨房监控显示C在案发时做饭
499
+ - (但侦探开始怀疑时间线)
500
+
501
+ **第17-20章:时间线疑点**
502
+ - 第17章:侦探重建时间线
503
+ - 暗线索浮现:手表、枪声、尸僵
504
+ - 第18章:发现矛盾
505
+ - 听到枪声的时间 vs 法医推断的死亡时间不符
506
+ - 意味着什么?定时装置?还是...
507
+ - 第19章:重新审视所有人
508
+ - 每个人的证词再过一遍
509
+ - 第20章:B的异常
510
+ - 回看笔记,发现B的描述有细微矛盾
511
+ - B说"听到枪声冲过来",但他房间在另一栋楼,怎么听到的?
512
+
513
+ **第21-24章:逼近真相**
514
+ - 第21章:B的背景调查
515
+ - 发现B有挪用公款史
516
+ - 死者掌握证据,准备报警
517
+ - 第22章:技术细节
518
+ - 枪械专家:两声枪响可能是试枪+杀人
519
+ - 第23章:决定性线索
520
+ - B的手表为何停在8:00(真实案发时间)
521
+ - 而他声称8:15听到枪声才知道
522
+ - 第24章:陷阱
523
+ - 侦探设计测试B的反应
524
+
525
+ 【此时读者感受:真相逐渐清晰,但还不完全确定】
526
+
527
+ ---
528
+
529
+ ### 第三幕:真相揭示(75-100%,第25-30章)
530
+
531
+ **第25-26章:集合揭秘**
532
+ - 第25章:召集所有人
533
+ - 侦探:"我知道真相了"
534
+ - 重述案情和之前的误判
535
+ - 第26章:逐步揭示
536
+ - "我们以为是密室,其实不是"
537
+ - "我们以为8:15案发,其实是8:00"
538
+ - "我们以为A最可疑,其实..."
539
+
540
+ **第27-28章:指认与对峙**
541
+ - 第27章:指认B
542
+ - 完整推理链展示
543
+ - B的每个破绽
544
+ - 第28章:B的反应
545
+ - 狡辩:"证据不足"
546
+ - 侦探拿出决定性证据(比如试枪的弹壳)
547
+ - B崩溃承认
548
+
549
+ **第29-30章:收尾**
550
+ - 第29章:完整还原
551
+ - B如何计划、执行、伪装
552
+ - 每个线索的真实含义
553
+ - 第30章:尾声
554
+ - 正义得以伸张
555
+ - 侦探反思
556
+
557
+ 【读者回看:所有线索都能对应,恍然大悟】
558
+ ```
559
+
560
+ **检查清单**:
561
+ - [ ] 关键线索在80%前全部呈现?
562
+ - [ ] 红鲱鱼时长合理(不过长)?
563
+ - [ ] 真凶在前30%已出场?
564
+ - [ ] 有至少2-3个"意外但合理"的反转点?
565
+
566
+ ---
567
+
568
+ ### 在 `/write` 阶段
569
+
570
+ **悬疑氛围营造**:
571
+
572
+ #### 技巧1:环境描写
573
+ ```
574
+ ❌ 平淡描写:
575
+ "天气很阴沉。房间很黑。"
576
+
577
+ ✅ 悬疑氛围:
578
+ "乌云压得很低,整个庄园笼罩在灰暗中。
579
+ 走廊尽头的窗帘被风吹起又落下,
580
+ 像是有什么东西在那里徘徊。"
581
+ ```
582
+
583
+ #### 技巧2:细节暗示
584
+ ```
585
+ 【目的】让读者感到"有什么不对"但说不清
586
+
587
+ 示例:
588
+ "他的回答很流畅,太流畅了。
589
+ 就像背诵答案一样。"
590
+
591
+ "她说在厨房做饭,但指甲缝里有泥。"
592
+
593
+ "他声称从未来过这里,
594
+ 却准确地说出了洗手间的位置。"
595
+ ```
596
+
597
+ #### 技巧3:对话中的破绽
598
+ ```
599
+ 【侦探问】"你说你8点在书房?"
600
+ 【嫌疑人】"对,我一直在看书。"
601
+ 【侦探】"看什么书?"
602
+ 【嫌疑人】"呃...侦探小说。"
603
+ 【侦探】"书名?"
604
+ 【嫌疑人】"...忘了,最近看太多。"
605
+
606
+ 【技巧】
607
+ - 细节问题暴露撒谎
608
+ - 过度具体反而可疑(预先准备的谎言)
609
+ - 模糊不清也可疑(临时编造)
610
+ ```
611
+
612
+ #### 技巧4:不可靠叙述
613
+ ```
614
+ 【第一人称视角】
615
+ "我相信他。他一直是我最信任的朋友。
616
+ 他不可能做出这种事。"
617
+
618
+ 【读者感受】
619
+ 哦,那他就是凶手。(反向操作)
620
+
621
+ 【第三人称有限视角】
622
+ "侦探看着证据,若有所思。
623
+ 他似乎已经知道答案了。"
624
+
625
+ 【读者感受】
626
+ 侦探知道了什么?我为什么还不知道!
627
+ ```
628
+
629
+ **写作每章的悬疑检查**:
630
+
631
+ ```
632
+ 📋 本章悬疑元素检查:
633
+
634
+ - [ ] 本章推进了谜团的解开吗?(提供新线索/排除嫌疑人)
635
+ - [ ] 本章有"钩子"吗?(章末的悬念、新发现)
636
+ - [ ] 本章有误导吗?(红鲱鱼布置/强化)
637
+ - [ ] 本章的线索是否太明显?(应该藏在细节中)
638
+ - [ ] 本章的对话是否自然?(避免"侦探突然顿悟")
639
+
640
+ ⚠️ 避免事项:
641
+ - ❌ "侦探看了一眼就知道真相"(太快)
642
+ - ❌ "凶手突然说漏嘴"(太假)
643
+ - ❌ "侦探隐瞒发现的线索"(不公平)
644
+ ```
645
+
646
+ **章末钩子设计**:
647
+
648
+ ```
649
+ 示例:
650
+
651
+ 【发现型钩子】
652
+ "侦探打开抽屉,里面躺着一封信。
653
+ 信封上写着:如果你看到这封信,说明我已经死了。"
654
+
655
+ 【反转型钩子】
656
+ "'所以凶手是A?'华生问。
657
+ 侦探摇了摇头:'恰恰相反。A是下一个受害者。'"
658
+
659
+ 【时间压力型钩子】
660
+ "'我们必须在午夜前找到真凶,'侦探说,
661
+ '否则下一个死的就是..."
662
+
663
+ 【疑问型钩子】
664
+ "侦探盯着照片,眉头越皱越紧。
665
+ '这不可能,'他喃喃自语,'除非...'"
666
+ ```
667
+
668
+ ---
669
+
670
+ ### 在 `/analyze` 阶段
671
+
672
+ **悬疑推理质量检查**:
673
+
674
+ ```markdown
675
+ ## 推理小说符合度分析
676
+
677
+ ### ✅ 公平游戏检查
678
+ - [x] 凶手在前30%出场(第4章)
679
+ - [x] 所有关键线索在揭秘前呈现
680
+ - [ ] ⚠️ 问题:第22章提到的枪械知识未在前文铺垫
681
+ - 建议:在第5章侦探调查时简单科普
682
+ - [x] 不在场证明逻辑自洽
683
+ - [x] 真相揭示后无明显漏洞
684
+
685
+ ### ✅ 线索布置检查
686
+ **明线索(应占40%)**
687
+ - 当前:5个(45%)✓
688
+ - 质量:大部分是红鲱鱼(好)
689
+
690
+ **暗线索(应占40%)**
691
+ - 当前:4个(35%)⚠️ 偏少
692
+ - 建议:增加2个细节线索(如B的微表情、时间矛盾)
693
+
694
+ **推理线索(应占20%)**
695
+ - 当前:2个(20%)✓
696
+ - 质量:逻辑链完整
697
+
698
+ ### ✅ 嫌疑人管理
699
+ | 嫌疑人 | 动机强度 | 红鲱鱼效果 | 秘密合理性 | 评分 |
700
+ |--------|---------|-----------|----------|------|
701
+ | A | ★★★☆☆ | ★★★★☆ | ★★★★★ | 4/5 |
702
+ | B(真凶)| ★★★★★ | ★★★☆☆ | ★★★★☆ | 4/5 |
703
+ | C | ★★★★☆ | ★★★★★ | ★★★★★ | 5/5 |
704
+
705
+ ⚠️ **问题**:B作为真凶,前期存在感不足
706
+ - 建议:增加B协助调查的戏份,让读者对他产生信任
707
+
708
+ ### ✅ 节奏检查
709
+ ```
710
+ 0-25%:案发 + 初步调查 ✓
711
+ 25-50%:红鲱鱼A ✓
712
+ 50-75%:红鲱鱼C + 真相线索 ✓
713
+ 75-90%:真相揭示 ✓
714
+ 90-100%:收尾 ✓
715
+ ```
716
+
717
+ 节奏合理,无明显拖沓。
718
+
719
+ ### ⚠️ 发现的问题
720
+
721
+ **问题1:第15章C的不在场证明太突然**
722
+ ```
723
+ 前文没有提到厨房有监控。
724
+ 突然拿出监控录像,读者会觉得"这是新设定"。
725
+ ```
726
+ **建议**:
727
+ - 在第3章描写庄园时提到"各处都有监控"
728
+ - 或在第10章侦探调查时提到"调取监控"
729
+
730
+ **问题2:B的手表线索不够显眼**
731
+ ```
732
+ 第4章只用一句话带过"B的手表停了"。
733
+ 读者不会特别注意。
734
+ ```
735
+ **建议**:
736
+ - 增加一个互动:侦探问时间,B看手表才发现停了
737
+ - B的反应:"奇怪,什么时候停的?"(让读者记住)
738
+
739
+ **问题3:揭秘时推理跳跃**
740
+ ```
741
+ 第26章侦探直接说"手表停在8点说明他在打斗"。
742
+ 读者可能想不通:为什么打斗会让手表停?
743
+ ```
744
+ **建议**:
745
+ - 加入中间推理:手表是机械表,剧烈震动会停
746
+ - 前文铺垫:提到B的手表是古董机械表(脆弱)
747
+
748
+ ### 💡 改进建议优先级
749
+
750
+ **P0(必须改)**:
751
+ 1. 补充枪械知识的前期铺垫
752
+ 2. 增加B的存在感(让读者记住这个人)
753
+ 3. 修复手表线索的铺垫
754
+
755
+ **P1(建议改)**:
756
+ 1. 增加2个暗线索
757
+ 2. 优化C的不在场证明引入
758
+ 3. 补充揭秘时的中间推理步骤
759
+
760
+ **P2(可选)**:
761
+ 1. 增加章末钩子(部分章节缺乏悬念)
762
+ 2. 优化部分对话(略显说明性)
763
+
764
+ ### 💯 总体评分
765
+
766
+ | 维度 | 评分 | 说明 |
767
+ |------|------|------|
768
+ | 公平游戏 | 8/10 | 基本公平,有小瑕疵 |
769
+ | 线索布置 | 7/10 | 缺少暗线索 |
770
+ | 逻辑严密性 | 9/10 | 逻辑链完整 |
771
+ | 意外程度 | 8/10 | 有反转,不太容易猜 |
772
+ | 节奏控制 | 9/10 | 节奏流畅 |
773
+
774
+ **综合评分**:8.2/10
775
+
776
+ 符合中等难度推理小说标准,修复上述问题后可达9/10。
777
+ ```
778
+
779
+ ---
780
+
781
+ ## 常见陷阱(Common Pitfalls)
782
+
783
+ ### 1. 侦探突然顿悟
784
+
785
+ **问题**:侦探看了一眼就知道真相,但不解释。
786
+
787
+ ```
788
+ ❌ 错误写法:
789
+ "侦探看了看现场,突然明白了一切。
790
+ '我知道凶手是谁了。'他说。"
791
+ (然后要等10章后才揭秘)
792
+
793
+ 读者反应:"???你知道什么了?凭什么不告诉我?"
794
+ ```
795
+
796
+ **为什么不好**:
797
+ - 违反公平游戏(侦探隐瞒信息)
798
+ - 读者被排除在推理过程之外
799
+ - 容易显得侦探"开挂"
800
+
801
+ **正确做法**:
802
+ ```
803
+ ✅ 方法1:同步推理
804
+ "侦探看向那个花瓶。
805
+ 普通的花瓶,但位置不对。
806
+ 昨天它还在窗台上,今天却在桌上。
807
+ 有人移动过它。
808
+ 为什么?
809
+ 除非...他想拿窗台后面的东西。
810
+ 但窗台后面有什么?
811
+ 侦探走过去,拨开窗帘,发现了血迹。"
812
+
813
+ (读者跟着侦探一起推理)
814
+
815
+ ✅ 方法2:部分顿悟+后续验证
816
+ "侦探看了看现场,眉头一皱。
817
+ '有个可能性,'他说,'但需要验证。'
818
+ '什么可能性?'华生问。
819
+ '如果我的推理正确,那么凶手的袖口应该有火药残留。'
820
+ (给出推理方向,但不直接说答案)
821
+ ```
822
+
823
+ ---
824
+
825
+ ### 2. 依赖巧合
826
+
827
+ **问题**:关键发现靠运气而非推理。
828
+
829
+ ```
830
+ ❌ 错误示例:
831
+ "侦探正准备放弃时,突然一阵风吹开了抽屉,
832
+ 里面掉出一封信,正是关键证据。"
833
+
834
+ "侦探偶然听到两个路人的对话,
835
+ 巧合提到了真凶的名字。"
836
+ ```
837
+
838
+ **为什么不好**:
839
+ - 贬低侦探能力
840
+ - 读者感觉"胜之不武"
841
+ - 破坏推理小说的核心(智力竞赛)
842
+
843
+ **正确做法**:
844
+ ```
845
+ ✅ 侦探主动寻找:
846
+ "侦探回想死者的习惯。
847
+ 他有写日记的习惯,日记本应该在书房。
848
+ 但书房里没找到。
849
+ 说明凶手拿走了?还是藏起来了?
850
+ 侦探逐一检查可能的藏匿地点,
851
+ 最终在床垫下找到了日记。"
852
+
853
+ (主动推理 → 主动寻找 → 发现证据)
854
+ ```
855
+
856
+ ---
857
+
858
+ ### 3. 凶手动机薄弱
859
+
860
+ **问题**:动机不足以支撑谋杀行为。
861
+
862
+ ```
863
+ ❌ 弱动机:
864
+ "他杀了死者,因为死者曾经嘲笑他。"
865
+
866
+ 读者反应:"就因为这个就杀人?太夸张了吧。"
867
+ ```
868
+
869
+ **为什么不好**:
870
+ - 不够合理
871
+ - 读者无法相信
872
+ - 削弱故事可信度
873
+
874
+ **强动机标准**:
875
+ - ✅ **生存威胁**:"死者掌握我杀人的证据,明天要报警"
876
+ - ✅ **巨大利益**:"杀了他我能继承500万,否则我明天就破产"
877
+ - ✅ **深仇大恨**:"他杀了我的妻儿,我等这一天等了10年"
878
+ - ✅ **保护所爱**:"他要公开我女儿的丑闻,毁了她一生"
879
+
880
+ **检查公式**:
881
+ ```
882
+ 动机强度 = 威胁程度 × 时间紧迫性
883
+
884
+ 弱:"他讨厌我"(3分) × "总有一天报复"(1分) = 3分(不足以杀人)
885
+ 强:"他明天要揭发我"(9分) × "今晚是最后机会"(10分) = 90分(足以杀人)
886
+ ```
887
+
888
+ ---
889
+
890
+ ### 4. 过度复杂
891
+
892
+ **问题**:诡计太复杂,读者理解不了。
893
+
894
+ ```
895
+ ❌ 过度复杂示例:
896
+ "凶手利用冰块、定时装置、镜面反射、双胞胎替身、
897
+ 假死药、密道、还有量子力学原理..."
898
+
899
+ 读者反应:"???听不懂,算了。"
900
+ ```
901
+
902
+ **为什么不好**:
903
+ - 读者跟不上
904
+ - 失去参与感
905
+ - 显得作者在"炫技"
906
+
907
+ **黄金法则**:一个诡计聚焦一个核心trick
908
+ ```
909
+ ✅ 简洁诡计:
910
+ 核心trick:凶手提前杀人,用定时枪声制造不在场证明
911
+ 附加trick:嫁祸给另一人(放置其物品)
912
+
913
+ 两个trick就够了,容易理解,也有反转。
914
+ ```
915
+
916
+ **复杂度评估**:
917
+ - 简单(1个trick):适合短篇、网文
918
+ - 中等(2-3个trick):适合长篇、大众向
919
+ - 复杂(4+个trick):适合硬核推理迷(小众)
920
+
921
+ ---
922
+
923
+ ### 5. 叙事诡计滥用
924
+
925
+ **问题**:叙述者撒谎/隐瞒,但没有合理理由。
926
+
927
+ ```
928
+ ❌ 错误示例:
929
+ 【第一人称叙述】
930
+ "我看着他离开房间。"
931
+
932
+ 【揭秘时】
933
+ "其实我就是凶手,我假装在叙述,实际隐瞒了杀人过程。"
934
+
935
+ 读者反应:"你这是骗人!"
936
+ ```
937
+
938
+ **为什么不好**:
939
+ - 读者感觉被欺骗
940
+ - 违反第一人称叙述惯例
941
+ - 需要极高技巧才能用好
942
+
943
+ **正确使用叙事诡计**:
944
+ ```
945
+ ✅ 有铺垫的叙事诡计:
946
+ - 前文暗示叙述者记忆有问题(失忆/创伤)
947
+ - 或明确说明"我只能告诉你我知道的"(限定视角)
948
+ - 或揭秘时证明"我写的都是真的,但有歧义"
949
+
950
+ 示例:
951
+ "我看着他离开房间。"
952
+ → 歧义:"他"可能不是读者以为的那个人
953
+ → 或:"离开"不等于真的离开(可能回来了)
954
+ ```
955
+
956
+ **使用条件**:
957
+ - 前文有伏笔
958
+ - 回看时逻辑自洽
959
+ - 叙述者有合理的隐瞒动机
960
+
961
+ ---
962
+
963
+ ## 示例分析(Examples)
964
+
965
+ ### 经典案例:《东方快车谋杀案》
966
+
967
+ **核心诡计**:所有嫌疑人都是凶手。
968
+
969
+ ```
970
+ 设定:
971
+ - 12个乘客,每个都有动机
972
+ - 死者被刺12刀
973
+ - 看似每个人都有不在场证明
974
+
975
+ 误导:
976
+ - 侦探逐一调查,发现每个人都"清白"
977
+ - 读者跟着侦探一起排除嫌疑人
978
+
979
+ 真相:
980
+ - 12人联合作案
981
+ - 每人刺一刀(分散罪责)
982
+ - 互相提供不在场证明
983
+
984
+ 为什么经典:
985
+ ✓ 违反常识(通常找一个凶手,这里是全员)
986
+ ✓ 公平游戏(线索都在:12刀、每人的小破绽)
987
+ ✓ 意外但合理(动机充分:死者曾害死无辜女孩)
988
+ ✓ 道德困境(复仇是否正当?波洛选择放过他们)
989
+ ```
990
+
991
+ ---
992
+
993
+ ### 现代案例:《唐人街探案》
994
+
995
+ **核心诡计**:双重凶手+时间轴诡计。
996
+
997
+ ```
998
+ 设定:
999
+ - 金店老板被杀
1000
+ - 主角秦风和唐仁被误认为凶手
1001
+
1002
+ 误导:
1003
+ - 第一重误导:观众以为是追查真凶
1004
+ - 第二重误导:暗示某个嫌疑人是凶手
1005
+
1006
+ 真相:
1007
+ - 真凶是看起来最无辜的孤儿女孩
1008
+ - 她利用了另一个嫌疑人作为替罪羊
1009
+ - 时间轴诡计:制造不在场证明
1010
+
1011
+ 为什么成功:
1012
+ ✓ 符合商业片需求(喜剧+悬疑)
1013
+ ✓ 反转意外(温柔女孩是变态杀手)
1014
+ ✓ 前文有伏笔(女孩的微表情、小细节)
1015
+ ✓ 最后一幕的反转(秦风发现真相但无法证明)
1016
+ ```
1017
+
1018
+ ---
1019
+
1020
+ ## 与Commands的集成(Integration with Commands)
1021
+
1022
+ ### `/constitution` - 定义推理原则
1023
+
1024
+ ```markdown
1025
+ ## 推理小说创作原则
1026
+
1027
+ ### 公平游戏承诺
1028
+ 1. 所有关键线索必须在揭秘前呈现给读者
1029
+ 2. 侦探不得隐瞒发现的线索
1030
+ 3. 凶手必须在前30%出场
1031
+ 4. 不使用超自然或未知科技(除非前文设定)
1032
+
1033
+ ### 逻辑严密性
1034
+ 1. 真相必须逻辑自洽
1035
+ 2. 不在场证明必须可验证
1036
+ 3. 物理规律不可违反(除非魔幻设定)
1037
+ 4. 时间线必须精确
1038
+
1039
+ ### 悬疑氛围
1040
+ 1. 保持张力(章末钩子)
1041
+ 2. 红鲱鱼不过度
1042
+ 3. 节奏不拖沓
1043
+ ```
1044
+
1045
+ ---
1046
+
1047
+ ### `/specify` - 定义谜团
1048
+
1049
+ ```markdown
1050
+ 见"实践应用 - /specify阶段"的完整模板
1051
+ ```
1052
+
1053
+ ---
1054
+
1055
+ ### `/clarify` - 澄清关键细节
1056
+
1057
+ ```markdown
1058
+ 悬疑推理小说的5个澄清问题:
1059
+
1060
+ 1. **凶手的核心动机是什么?**
1061
+ - 必须具体且强烈
1062
+ - 示例:"死者明天要揭发他挪用公款,今晚是最后机会"
1063
+
1064
+ 2. **关键诡计是否在现实中可行?**
1065
+ - 如果使用定时装置,市面上有这种产品吗?
1066
+ - 如果使用密道,建筑结构支持吗?
1067
+
1068
+ 3. **红鲱鱼的解释是什么?**
1069
+ - 每个误导线索都要有合理解释
1070
+ - 示例:"A确实在撒谎,但是因为外遇,不是杀人"
1071
+
1072
+ 4. **侦探如何推理出真相?**
1073
+ - 不能靠运气或巧合
1074
+ - 必须有清晰的逻辑链
1075
+
1076
+ 5. **真相揭示后是否有漏洞?**
1077
+ - 回看时所有细节能对应吗?
1078
+ - 有没有"凶手怎么知道X"的逻辑问题?
1079
+ ```
1080
+
1081
+ ---
1082
+
1083
+ ### `/plan` - 规划线索时间线
1084
+
1085
+ ```markdown
1086
+ 见"实践应用 - /plan阶段"的完整章节规划
1087
+ ```
1088
+
1089
+ ---
1090
+
1091
+ ### `/write` - 执行写作
1092
+
1093
+ ```markdown
1094
+ 见"实践应用 - /write阶段"的悬疑写作技巧
1095
+ ```
1096
+
1097
+ ---
1098
+
1099
+ ### `/analyze` - 质量检查
1100
+
1101
+ ```markdown
1102
+ 见"实践应用 - /analyze阶段"的完整检查清单
1103
+ ```
1104
+
1105
+ ---
1106
+
1107
+ ## 总结
1108
+
1109
+ 悬疑推理小说的成功关键:
1110
+
1111
+ 1. **公平游戏** - 给读者竞猜的机会
1112
+ 2. **线索精心** - 明、暗、推理三层次
1113
+ 3. **嫌疑人管理** - 每个都可疑,每个都有秘密
1114
+ 4. **意外但合理** - 真相反转但回看时逻辑自洽
1115
+ 5. **节奏控制** - 张弛有度,章末钩子
1116
+
1117
+ **Remember**: 推理小说是作者与读者的智力游戏。赢得太容易读者无趣,赢得不公平读者愤怒。平衡是关键。🔍
1118
+
1119
+ ---
1120
+
1121
+ **本知识库版本**: v1.0
1122
+ **最后更新**: 2025-10-18
1123
+ **相关知识库**: romance.md(浪漫悬疑), thriller.md(惊悚)