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,1170 @@
1
+ # 对话技巧写作知识库
2
+
3
+ ## 快速参考(Quick Reference)
4
+
5
+ 好的对话不仅仅是"角色在说话"——它是小说中最高效的工具之一。
6
+
7
+ **对话的三重黄金法则**:
8
+ 1. **每句对话必须服务于目的** - 揭示角色、推进情节、或营造氛围(最好同时做到 2 项)
9
+ 2. **说什么不重要,不说什么才重要** - 潜台词比表面话语更有力量
10
+ 3. **每个角色都应该有独特的声音** - 闭上眼睛听,能分辨出谁在说话
11
+
12
+ **核心公式**:
13
+ ```
14
+ 优秀对话 = 明确目的 + 潜台词 + 角色独特性 + 适度冲突
15
+ ```
16
+
17
+ **不是对话的作用**:
18
+ - ❌ 向读者传递作者想说的信息(信息倾泻)
19
+ - ❌ 解释角色的感受("我很生气")
20
+ - ❌ 填充页面让章节显得更长
21
+
22
+ ---
23
+
24
+ ## 核心原则(Core Principles)
25
+
26
+ ### 1. 对话的三重功能
27
+
28
+ 好的对话从不"只是聊天"。每一段对话都应该至少完成以下一项功能,最好同时完成两项甚至三项:
29
+
30
+ #### A. 揭示角色性格
31
+
32
+ 对话是展现角色性格最直接的方式。
33
+
34
+ ❌ **糟糕示例**(直接叙述):
35
+ ```
36
+ 林晓是一个性格谨慎、凡事三思而后行的人。
37
+ ```
38
+
39
+ ✅ **优秀示例**(通过对话揭示):
40
+ ```
41
+ "你确定吗?"林晓又问了一遍。
42
+ "确定!"
43
+ "那万一……"
44
+ "没有万一。"
45
+ "可是如果……"
46
+ 张伟终于忍不住了:"你能不能别总是这样!"
47
+ ```
48
+
49
+ **为什么更好**:
50
+ - 读者从对话中自然推导出林晓的性格
51
+ - 展示而非讲述(Show, Don't Tell)
52
+ - 同时揭示了张伟的性格(急躁、直接)
53
+ - 产生了人物冲突
54
+
55
+ #### B. 推动情节发展
56
+
57
+ 对话应该让故事向前推进,而不是原地踏步。
58
+
59
+ ❌ **糟糕示例**(闲聊,不推进情节):
60
+ ```
61
+ "今天天气不错啊。"
62
+ "是啊,很暖和。"
63
+ "听说明天会下雨。"
64
+ "哦,是吗?"
65
+ ```
66
+
67
+ ✅ **优秀示例**(推进情节):
68
+ ```
69
+ "她来了。"
70
+ "你确定?"
71
+ "黑色轿车,车牌尾号 7。"
72
+ "准备行动。"
73
+ ```
74
+
75
+ **推进情节的方式**:
76
+ - **传递关键信息**:"他们发现尸体了。"
77
+ - **做出重要决定**:"我们明天黎明突袭。"
78
+ - **制造冲突**:"我不会让你去。"
79
+ - **揭露秘密**:"你父亲还活着。"
80
+
81
+ #### C. 营造氛围与张力
82
+
83
+ 对话的语气、节奏、内容可以营造特定的氛围。
84
+
85
+ **紧张悬疑氛围**:
86
+ ```
87
+ "听。"
88
+ 静默。
89
+ "什么?"
90
+ "脚步声。"
91
+ "我什么都没——"
92
+ "嘘!"
93
+ ```
94
+
95
+ **浪漫温馨氛围**:
96
+ ```
97
+ "你的手好凉。"
98
+ "你的很暖。"
99
+ 她笑了:"那就别松开。"
100
+ ```
101
+
102
+ **幽默轻松氛围**:
103
+ ```
104
+ "你会做饭吗?"
105
+ "会啊,我特别擅长叫外卖。"
106
+ ```
107
+
108
+ ---
109
+
110
+ ### 2. 潜台词的艺术
111
+
112
+ **核心原则**:人们很少直接说出真实意图。
113
+
114
+ 真实对话中,人们会:
115
+ - 避免直接冲突(社交礼貌)
116
+ - 隐藏真实情感(自我保护)
117
+ - 通过暗示表达(试探对方)
118
+ - 说反话或讽刺(情绪表达)
119
+
120
+ #### 潜台词的层次
121
+
122
+ **表面层**:字面意义
123
+ **情感层**:真实感受
124
+ **关系层**:权力动态和亲密度
125
+ **主题层**:与故事主题的联系
126
+
127
+ #### 示例分析:情侣误会场景
128
+
129
+ ❌ **直白对话**(无潜台词):
130
+ ```
131
+ "你昨晚为什么没回我消息?"
132
+ "因为我在加班,手机静音了。"
133
+ "哦,原来是这样,我还以为你不想理我了。"
134
+ "没有,我一直很在意你。"
135
+ ```
136
+
137
+ ✅ **富含潜台词的对话**:
138
+ ```
139
+ "昨晚睡得好吗?"
140
+ "还行。"
141
+ "我给你发了消息。"
142
+ "嗯,看到了。"
143
+ "……那你怎么没回?"
144
+ "手机静音。"
145
+ "静音一整晚?"
146
+ 他没接话。
147
+ "算了,不重要。"她转身要走。
148
+ "等等——"
149
+ ```
150
+
151
+ **潜台词解读**:
152
+ - "睡得好吗"(表面:关心)→(实际:试探,你是不是故意不回我)
153
+ - "还行"(表面:普通回答)→(实际:防御,不想解释)
154
+ - "静音一整晚?"(表面:疑问)→(实际:不相信,质疑)
155
+ - "算了,不重要"(表面:放弃)→(实际:很重要,在赌气)
156
+
157
+ **为什么有张力**:
158
+ - 双方都没有直接表达情绪
159
+ - 冲突隐藏在平淡的对话下
160
+ - 读者需要解读潜台词
161
+ - 更贴近真实人际交往
162
+
163
+ #### 创造潜台词的技巧
164
+
165
+ **1. 避免直接回答问题**
166
+
167
+ ❌ 直白:
168
+ ```
169
+ "你爱我吗?"
170
+ "当然,我很爱你。"
171
+ ```
172
+
173
+ ✅ 潜台词:
174
+ ```
175
+ "你爱我吗?"
176
+ 他看着窗外。"这是什么问题?"
177
+ ```
178
+
179
+ **2. 说反话**
180
+
181
+ ```
182
+ "你这主意真棒。"(语气冰冷)
183
+ → 实际意思:你的主意很糟糕
184
+ ```
185
+
186
+ **3. 转移话题**
187
+
188
+ ```
189
+ "你昨晚去哪了?"
190
+ "你新换的发型不错。"
191
+ → 隐含:我不想回答
192
+ ```
193
+
194
+ **4. 用行动代替回答**
195
+
196
+ ```
197
+ "你会留下来吗?"
198
+ 他开始收拾行李。
199
+ → 答案:不会
200
+ ```
201
+
202
+ ---
203
+
204
+ ### 3. 角色声音的差异化
205
+
206
+ **测试标准**:去掉对话标签,读者是否仍能分辨谁在说话?
207
+
208
+ 如果答案是"不能",说明角色缺乏独特的声音。
209
+
210
+ #### 塑造独特声音的五个维度
211
+
212
+ ##### A. 用词选择
213
+
214
+ 不同角色使用不同的词汇范围:
215
+
216
+ | 角色类型 | 词汇特征 | 示例 |
217
+ |---------|---------|------|
218
+ | 受过高等教育 | 书面语、专业术语 | "这个方案在理论层面是可行的" |
219
+ | 街头混混 | 俚语、粗话 | "这事儿能整不?" |
220
+ | 老年人 | 老派用语 | "这孩子真是懂事儿" |
221
+ | 年轻人 | 网络流行语 | "绝了!这也太离谱了吧" |
222
+ | 技术宅 | 技术术语 | "这个算法的时间复杂度是 O(n)" |
223
+
224
+ **示例对比**:
225
+
226
+ 同一个意思,不同角色的表达方式:
227
+
228
+ **情境**:表达不满
229
+
230
+ ```
231
+ 教授:"我对这个决定持保留意见。"
232
+ 工人:"这不扯淡吗?"
233
+ 老太太:"唉,你们年轻人啊……"
234
+ 青少年:"无语了家人们。"
235
+ ```
236
+
237
+ ##### B. 句式结构
238
+
239
+ **短句 vs 长句**:
240
+
241
+ ```
242
+ 【冷静型角色】
243
+ "坐下。我们谈谈。"
244
+
245
+ 【絮叨型角色】
246
+ "你先坐,别站着,站着多累啊,来来来,这边坐,
247
+ 我给你倒杯水,你要喝茶还是咖啡?"
248
+ ```
249
+
250
+ **完整句 vs 片段句**:
251
+
252
+ ```
253
+ 【正式角色】
254
+ "我认为我们应该重新考虑这个计划。"
255
+
256
+ 【随意角色】
257
+ "这计划?得重新想想。"
258
+ ```
259
+
260
+ ##### C. 口头禅与语言习惯
261
+
262
+ 给每个主要角色设计独特的口头禅或习惯用语:
263
+
264
+ ```
265
+ 【角色 A】
266
+ "说实话……"(每次说重要的事都加这个前缀)
267
+
268
+ 【角色 B】
269
+ "懂吧?"(经常在句尾加这个)
270
+
271
+ 【角色 C】
272
+ 总是用反问句:"这不是很明显吗?"
273
+ ```
274
+
275
+ **警告**:口头禅要适度使用,过度重复会让读者厌烦。
276
+
277
+ ##### D. 教育/阶层/地域的影响
278
+
279
+ **教育差异**:
280
+
281
+ ```
282
+ 【博士】
283
+ "根据现有数据,我们可以推断……"
284
+
285
+ 【中学毕业】
286
+ "看这些数字,我觉得……"
287
+ ```
288
+
289
+ **阶层差异**:
290
+
291
+ ```
292
+ 【贵族】
293
+ "恕我直言,这样做不太妥当。"
294
+
295
+ 【平民】
296
+ "这样不好吧?"
297
+ ```
298
+
299
+ **地域差异(谨慎使用)**:
300
+
301
+ ```
302
+ 【北方人】
303
+ "这事儿成!"
304
+
305
+ 【南方人】
306
+ "这个可以的。"
307
+ ```
308
+
309
+ ##### E. 情绪状态影响说话方式
310
+
311
+ 同一个角色在不同情绪下说话方式会变化:
312
+
313
+ **平静时的林晓**:
314
+ ```
315
+ "我觉得我们应该先做市场调研,然后再决定产品方向。"
316
+ ```
317
+
318
+ **愤怒时的林晓**:
319
+ ```
320
+ "够了!你到底听不听!"
321
+ ```
322
+
323
+ **紧张时的林晓**:
324
+ ```
325
+ "我……我是说……也许……也许我们可以……"
326
+ ```
327
+
328
+ ---
329
+
330
+ ### 4. 对话的节奏与动态
331
+
332
+ #### A. 打断与重叠
333
+
334
+ 真实对话不是有序轮流发言,人们会打断彼此。
335
+
336
+ **情绪激动时的打断**:
337
+
338
+ ```
339
+ "你听我说——"
340
+ "我不想听!"
341
+ "——如果你让我说完——"
342
+ "有什么好说的!"
343
+ ```
344
+
345
+ **使用技巧**:用破折号(——)表示被打断。
346
+
347
+ **何时使用打断**:
348
+ - 争吵场景
349
+ - 紧急情况
350
+ - 抢话(权力斗争)
351
+ - 情绪失控
352
+
353
+ #### B. 停顿的意义
354
+
355
+ 停顿可以制造张力、表达犹豫、暗示隐藏信息。
356
+
357
+ **表达犹豫**:
358
+ ```
359
+ "我想告诉你一件事……"
360
+ 沉默。
361
+ "什么事?"
362
+ "算了,不重要。"
363
+ ```
364
+
365
+ **制造悬念**:
366
+ ```
367
+ "凶手是——"
368
+ 一声枪响。
369
+ ```
370
+
371
+ **使用技巧**:
372
+ - 用省略号(……)表示声音延续
373
+ - 用句号 + 换行表示停顿
374
+ - 用"沉默"、"静默"等词描述长时间停顿
375
+
376
+ #### C. 快节奏 vs 慢节奏对话
377
+
378
+ **快节奏**(紧张、争吵、追逐):
379
+
380
+ ```
381
+ "钥匙!"
382
+ "什么?"
383
+ "车钥匙!"
384
+ "我没拿!"
385
+ "那谁拿了!"
386
+ ```
387
+
388
+ **慢节奏**(深夜谈心、亲密时刻):
389
+
390
+ ```
391
+ "你怕吗?"
392
+ 她沉默了很久。"怕。"
393
+ "我也是。"
394
+ 又是长久的沉默。
395
+ "但是……"她轻声说,"有你在,就还好。"
396
+ ```
397
+
398
+ **节奏匹配场景**:
399
+ - 动作场景 → 快节奏(短句、快速来回)
400
+ - 情感场景 → 慢节奏(停顿、沉默、不完整句子)
401
+
402
+ ---
403
+
404
+ ### 5. 对话标签与动作描写
405
+
406
+ #### A. 何时使用"他说"
407
+
408
+ **基本原则**:"说"是最好的对话标签,因为它是隐形的。
409
+
410
+ ✅ **推荐**:
411
+ ```
412
+ "我要走了。"他说。
413
+ "为什么?"她问。
414
+ ```
415
+
416
+ ❌ **过度修饰**:
417
+ ```
418
+ "我要走了。"他低声嘟囔道。
419
+ "为什么?"她悲伤地质问道。
420
+ "因为……"他犹豫地回应道。
421
+ ```
422
+
423
+ **原则**:
424
+ - 90% 的情况用"说"、"问"
425
+ - 只在需要强调语气时用其他动词
426
+ - 避免"说教"式标签("他教育道"、"她讽刺道")
427
+
428
+ #### B. 动作描写代替标签
429
+
430
+ 用动作代替标签,让对话更生动。
431
+
432
+ ❌ **只用标签**:
433
+ ```
434
+ "我不同意。"他愤怒地说。
435
+ ```
436
+
437
+ ✅ **用动作展示情绪**:
438
+ ```
439
+ "我不同意。"他一拳砸在桌上。
440
+ ```
441
+
442
+ **其他例子**:
443
+
444
+ ```
445
+ "随便。"她耸耸肩。
446
+ "别碰我。"他后退一步。
447
+ "我知道了。"她闭上眼睛。
448
+ ```
449
+
450
+ #### C. 对话与动作的交织
451
+
452
+ 不要让角色变成"说话的头",要交织动作和对话。
453
+
454
+ ❌ **只有对话**:
455
+ ```
456
+ "我们必须离开这里。"
457
+ "为什么?"
458
+ "他们来了。"
459
+ "谁?"
460
+ "你知道是谁。"
461
+ ```
462
+
463
+ ✅ **对话+动作**:
464
+ ```
465
+ "我们必须离开这里。"她开始收拾东西。
466
+ "为什么?"他还坐在那里。
467
+ "他们来了。"她的手在颤抖。
468
+ "谁?"
469
+ 她停下来,看着他:"你知道是谁。"
470
+ ```
471
+
472
+ **效果**:
473
+ - 打破单调
474
+ - 展示情绪
475
+ - 增加视觉感
476
+ - 控制节奏
477
+
478
+ ---
479
+
480
+ ## 实践应用(Practical Application)
481
+
482
+ ### 在 /specify 阶段
483
+
484
+ **定义角色对话风格**
485
+
486
+ 在角色设定中包含对话特征:
487
+
488
+ ```markdown
489
+ ## 角色:林晓
490
+
491
+ ### 对话特征
492
+ - 用词:谨慎、书面语倾向
493
+ - 句式:完整句子,较少省略
494
+ - 口头禅:"我觉得……"(表达意见时)
495
+ - 语速:偏慢,停顿多
496
+ - 特点:问很多问题,喜欢确认
497
+ ```
498
+
499
+ ### 在 /plan 阶段
500
+
501
+ **规划关键对话场景**
502
+
503
+ 识别必须通过对话完成的场景:
504
+
505
+ ```markdown
506
+ 第 8 章:林晓与张伟的冲突对话
507
+ - 目的:揭示两人性格差异
508
+ - 潜台词:林晓害怕失败,张伟渴望行动
509
+ - 节奏:快速来回,逐渐升级
510
+ - 结果:不欢而散
511
+ ```
512
+
513
+ ### 在 /write 阶段
514
+
515
+ **写对话时的检查清单**:
516
+
517
+ - [ ] 这段对话推进情节或揭示角色了吗?
518
+ - [ ] 有潜台词吗?还是所有话都说得太直白?
519
+ - [ ] 每个角色的声音有区别吗?
520
+ - [ ] 有足够的冲突或张力吗?
521
+ - [ ] 对话标签是否简洁?
522
+ - [ ] 有没有信息倾泻(Info Dumping)?
523
+ - [ ] 对话与动作是否交织?
524
+
525
+ ### 在 /analyze 阶段
526
+
527
+ **分析对话质量**:
528
+
529
+ 检查项目:
530
+ 1. **角色声音一致性**:同一角色在不同章节说话方式是否一致?
531
+ 2. **对话占比**:对话是否占 40-60%?过少或过多?
532
+ 3. **潜台词使用**:是否有足够的隐含意义?
533
+ 4. **信息倾泻检测**:是否有角色说出他们不会说的话(只为传递信息)?
534
+
535
+ ---
536
+
537
+ ## 常见陷阱(Common Pitfalls)
538
+
539
+ ### 1. 信息倾泻(Info Dumping)
540
+
541
+ **问题**:角色说话只是为了向读者传递信息。
542
+
543
+ ❌ **糟糕示例**:
544
+ ```
545
+ "如你所知,鲍勃,我们从 2015 年高中时就是朋友,
546
+ 当时我们都加入了篮球队,然后我们一起去了斯坦福,
547
+ 在那里学习工程学,你还记得吗?"
548
+ ```
549
+
550
+ **问题分析**:
551
+ - "如你所知"——既然知道,为什么要说?
552
+ - 列举历史细节——不自然
553
+ - 只是为了告诉读者背景
554
+
555
+ ✅ **改进示例**:
556
+ ```
557
+ "还记得你三年级那个压哨球吗?"
558
+ 鲍勃笑了。"教练现在还在谈论它。"
559
+ "我们当时真以为能进 NBA。"
560
+ "现在呢?"
561
+ "现在……"他看了看工位上的电脑,"现在我们写代码。"
562
+ ```
563
+
564
+ **改进方法**:
565
+ - 通过自然的回忆引入背景
566
+ - 只提关键细节
567
+ - 让读者自己拼凑完整图景
568
+
569
+ ### 2. 过度解释情绪
570
+
571
+ **问题**:用对话直接说出情绪,而不是展示。
572
+
573
+ ❌ **糟糕示例**:
574
+ ```
575
+ "我现在非常生气!"她愤怒地喊道。
576
+ ```
577
+
578
+ ✅ **改进示例**:
579
+ ```
580
+ "出去。"她的声音冰冷。
581
+ "可是——"
582
+ "现在。立刻。出去。"
583
+ ```
584
+
585
+ **为什么更好**:
586
+ - 不用说"生气",读者能感受到愤怒
587
+ - 用语气、节奏、用词展示情绪
588
+ - 更有张力
589
+
590
+ ### 3. 所有角色说话方式相同
591
+
592
+ **问题**:去掉对话标签,分不清谁在说话。
593
+
594
+ ❌ **糟糕示例**:
595
+ ```
596
+ "我觉得我们应该去。"
597
+ "我也觉得我们应该去。"
598
+ "那我们就去吧。"
599
+ "好的,我们去。"
600
+ ```
601
+
602
+ ✅ **改进示例**(三个不同角色):
603
+ ```
604
+ "走吧,磨蹭什么?"(急性子)
605
+ "等等,我还没想好……"(犹豫型)
606
+ "根据当前情况分析,去是最优选择。"(理性型)
607
+ ```
608
+
609
+ **解决方法**:
610
+ - 为每个主要角色创建"声音档案"
611
+ - 定期检查对话是否有独特性
612
+ - 大声朗读,听是否能分辨
613
+
614
+ ### 4. 对话标签过度修饰
615
+
616
+ **问题**:每句话都用花哨的动词。
617
+
618
+ ❌ **糟糕示例**:
619
+ ```
620
+ "你好。"他兴高采烈地招呼道。
621
+ "嗨。"她羞涩地回应道。
622
+ "最近怎么样?"他关切地询问道。
623
+ "还好。"她简短地答复道。
624
+ ```
625
+
626
+ ✅ **改进示例**:
627
+ ```
628
+ "你好。"他笑着招手。
629
+ "嗨。"她低下头。
630
+ "最近怎么样?"
631
+ "还好。"
632
+ ```
633
+
634
+ **原则**:
635
+ - 80-90% 用"说"、"问"
636
+ - 用动作代替花哨的标签动词
637
+ - 让对话本身表达情绪
638
+
639
+ ### 5. 缺乏冲突的对话
640
+
641
+ **问题**:对话太和谐,没有张力。
642
+
643
+ ❌ **糟糕示例**:
644
+ ```
645
+ "你想吃什么?"
646
+ "随便。"
647
+ "那吃火锅吧?"
648
+ "好啊。"
649
+ ```
650
+
651
+ ✅ **改进示例**(加入冲突):
652
+ ```
653
+ "你想吃什么?"
654
+ "随便。"
655
+ "那吃火锅吧?"
656
+ "又是火锅?上周刚吃过。"
657
+ "那你想吃什么?"
658
+ "我说了随便。"
659
+ "随便又不行,火锅又不行,你到底想吃什么!"
660
+ ```
661
+
662
+ **原则**:
663
+ - 即使日常对话,也要有小摩擦
664
+ - 人物有不同需求 → 自然产生冲突
665
+ - 冲突制造张力和趣味
666
+
667
+ ### 6. 太过完美的口语
668
+
669
+ **问题**:日常对话太像书面语。
670
+
671
+ ❌ **太正式**:
672
+ ```
673
+ "我将前往商店。您是否需要我为您购买一些物品?"
674
+ ```
675
+
676
+ ✅ **口语化**:
677
+ ```
678
+ "去超市,要我捎点啥吗?"
679
+ ```
680
+
681
+ **口语化技巧**:
682
+ - 缩略("不要" → "别")
683
+ - 省略("我去商店" → "去商店")
684
+ - 片段句
685
+ - 填充词("嗯"、"呃"、"那个")
686
+
687
+ ---
688
+
689
+ ## 示例分析(Examples)
690
+
691
+ ### 案例 1:冲突对话的潜台词
692
+
693
+ **场景**:夫妻争吵,妻子怀疑丈夫出轨
694
+
695
+ ```
696
+ "你昨晚几点回来的?"
697
+ "很晚。"
698
+ "多晚?"
699
+ "你睡了。"
700
+ "我问多晚。"
701
+ "两点多吧。"
702
+ "应酬?"
703
+ "嗯。"
704
+ "跟谁?"
705
+ "同事。"
706
+ "哪个同事?"
707
+ 他沉默了。
708
+ "我问你,哪个同事?"
709
+ "……李明他们。"
710
+ "'他们'?只有男的?"
711
+ "还有……"
712
+ "还有谁?"
713
+ "王晓。"
714
+ "哦。"她冷笑一声,"王晓啊。"
715
+ ```
716
+
717
+ **分析**:
718
+ - **表面**:妻子在问时间和人员
719
+ - **潜台词**:妻子怀疑丈夫,通过追问试探
720
+ - **张力来源**:
721
+ - 短促的问答
722
+ - 丈夫的闪烁其词
723
+ - 沉默的使用
724
+ - "哦"和冷笑——最大的情绪爆发点
725
+ - **技巧**:
726
+ - 没有直接说"你是不是出轨了"
727
+ - 通过问答节奏展现压力
728
+ - 用沉默展现心虚
729
+
730
+ ### 案例 2:性格差异化的对话
731
+
732
+ **场景**:三个角色讨论是否冒险
733
+
734
+ ```
735
+ 【林晓 - 谨慎型】
736
+ "我觉得……我们是不是应该再考虑一下?万一……"
737
+
738
+ 【张伟 - 行动派】
739
+ "考虑个屁!机会就在眼前,犹豫什么!"
740
+
741
+ 【王教授 - 理性派】
742
+ "张伟说得有一定道理,但林晓的担忧也并非毫无根据。
743
+ 不如我们先列一下风险清单,逐项分析可行性。"
744
+ ```
745
+
746
+ **分析**:
747
+ - **林晓**:
748
+ - 用词:谨慎("我觉得"、"是不是"、"万一")
749
+ - 句式:不完整,犹豫
750
+ - **张伟**:
751
+ - 用词:粗话,直接
752
+ - 句式:短促,命令式,反问
753
+ - **王教授**:
754
+ - 用词:书面语("毫无根据"、"可行性")
755
+ - 句式:长句,逻辑清晰
756
+ - **效果**:不用对话标签,也能分辨谁在说话
757
+
758
+ ### 案例 3:推动情节的对话
759
+
760
+ **场景**:侦探得到关键线索
761
+
762
+ ```
763
+ "死者的手表停在 11:47。"
764
+ "所以死亡时间是……"
765
+ "等等。"她凑近看,"表盘碎了,但机芯还在走。"
766
+ "意思是?"
767
+ "意思是手表是被砸停的。"
768
+ 他明白了:"凶手想伪造死亡时间。"
769
+ "而真正的死亡时间……"
770
+ "至少早了两个小时。"
771
+ "这就解释了王医生的不在场证明。"
772
+ "他有充足的时间作案。"
773
+ ```
774
+
775
+ **分析**:
776
+ - **情节推进**:
777
+ - 发现线索 → 推理 → 结论 → 指向嫌疑人
778
+ - 短短 10 行对话,完成整个推理过程
779
+ - **技巧**:
780
+ - 一问一答,节奏明快
781
+ - 每句都推进推理
782
+ - 最后两句得出关键结论
783
+ - **避免信息倾泻**:
784
+ - 不是一个人长篇大论
785
+ - 通过对话配合完成推理
786
+
787
+ ---
788
+
789
+ ## 进阶技巧(Advanced Techniques)
790
+
791
+ ### 1. 群体对话的管理
792
+
793
+ **挑战**:3 人以上的对话容易让读者混淆。
794
+
795
+ **解决方法**:
796
+
797
+ **A. 用动作区分发言者**
798
+
799
+ ```
800
+ "这计划行不通。"张伟靠在墙上。
801
+ "为什么?"
802
+ 林晓推了推眼镜:"因为我们没有足够的人手。"
803
+ ```
804
+
805
+ **B. 让部分角色沉默**
806
+
807
+ 不是每个人都要在每轮对话中发言。
808
+
809
+ ```
810
+ 张伟和林晓争论起来,王教授只是沉默地听着。
811
+ ```
812
+
813
+ **C. 使用对话标签强调重要发言**
814
+
815
+ ```
816
+ 一片喧哗中,王教授说:"都安静。"
817
+ 房间瞬间安静下来。
818
+ ```
819
+
820
+ ### 2. 方言与口音的处理
821
+
822
+ **原则**:适度暗示,而非直接模仿。
823
+
824
+ ❌ **过度模仿**(难以阅读):
825
+ ```
826
+ "俺寻思着介事儿可能中,你看咋整?"
827
+ ```
828
+
829
+ ✅ **适度暗示**:
830
+ ```
831
+ "我琢磨这事儿成,你看怎么办?"
832
+ ```
833
+
834
+ **技巧**:
835
+ - 用少量方言词汇点缀
836
+ - 通过句式结构暗示口音
837
+ - 第一次出场可以稍明显,之后减少
838
+ - 避免让读者阅读困难
839
+
840
+ ### 3. 内心独白 vs 外部对话
841
+
842
+ **何时用内心独白**:
843
+
844
+ ```
845
+ "没事。"她说。
846
+ (但其实有事,她想,很大的事。)
847
+ ```
848
+
849
+ **何时用外部对话**:
850
+
851
+ ```
852
+ "没事。"她说,然后转向张伟,"你怎么看?"
853
+ ```
854
+
855
+ **原则**:
856
+ - 外部对话优先(更有戏剧性)
857
+ - 内心独白用于揭示隐藏情绪
858
+ - 避免过度使用内心独白
859
+
860
+ ### 4. 沉默的力量
861
+
862
+ 有时候,不说话比说话更有力。
863
+
864
+ **示例 1:拒绝回答**
865
+
866
+ ```
867
+ "你爱我吗?"
868
+ 他看着自己的手。
869
+ ```
870
+
871
+ **示例 2:震惊**
872
+
873
+ ```
874
+ "你父亲去世了。"
875
+ 长久的沉默。
876
+ ```
877
+
878
+ **使用技巧**:
879
+ - 用"沉默"、"静默"描述
880
+ - 用动作填充沉默(看手、看窗外)
881
+ - 不要过度使用,否则失去力量
882
+
883
+ ### 5. 对话与心理描写的平衡
884
+
885
+ **问题**:对话之间插入太多心理描写会打断节奏。
886
+
887
+ ❌ **过度心理描写**:
888
+ ```
889
+ "你去哪了?"她问,心中的疑虑像潮水般涌来。她想起昨天他的异常举动,
890
+ 想起他回避的眼神,想起他模糊的解释……
891
+ "加班。"他说。
892
+ ```
893
+
894
+ ✅ **精简心理描写**:
895
+ ```
896
+ "你去哪了?"
897
+ "加班。"
898
+ 他连看都不看她。
899
+ ```
900
+
901
+ **原则**:
902
+ - 快节奏对话时,少用心理描写
903
+ - 用动作和表情代替心理描写
904
+ - 心理描写用于对话间的停顿处
905
+
906
+ ---
907
+
908
+ ## 检查清单(Checklist)
909
+
910
+ ### 每场对话写完后检查:
911
+
912
+ #### 功能性检查
913
+ - [ ] 这段对话是否推进情节?
914
+ - [ ] 这段对话是否揭示角色性格?
915
+ - [ ] 这段对话是否营造氛围?
916
+ - [ ] 至少完成以上一项吗?
917
+
918
+ #### 潜台词检查
919
+ - [ ] 是否有潜台词?
920
+ - [ ] 角色是直接说出意图,还是有所隐藏?
921
+ - [ ] 读者能否从对话中读出言外之意?
922
+
923
+ #### 角色声音检查
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
+ ### /constitution - 设定阶段
950
+
951
+ 在项目宪法中确立对话原则:
952
+
953
+ ```markdown
954
+ ## 对话风格
955
+ - 潜台词优先,避免直白对话
956
+ - 每个主要角色有独特的声音
957
+ - 对话占比目标:40-60%
958
+ ```
959
+
960
+ ### /specify - 详细设定阶段
961
+
962
+ 在角色和世界观设定中包含对话特征:
963
+
964
+ ```markdown
965
+ ## 角色对话档案
966
+
967
+ ### 林晓
968
+ - 句式:完整句,少省略
969
+ - 用词:谨慎,书面语倾向
970
+ - 口头禅:"我觉得……"、"万一……"
971
+ - 情绪表现:通过问题表达焦虑
972
+ ```
973
+
974
+ ### /clarify - 澄清阶段
975
+
976
+ 用对话示例澄清人物关系:
977
+
978
+ ```markdown
979
+ ## 人物关系示例
980
+
981
+ 【林晓对张伟】
982
+ "又来了,你又要冲动行事了吗?"
983
+ → 展示:担心 + 了解(知道他会冲动)
984
+
985
+ 【张伟对林晓】
986
+ "你能不能别总是这么多顾虑?"
987
+ → 展示:不耐烦 + 亲近(敢于直言)
988
+ ```
989
+
990
+ ### /plan - 规划阶段
991
+
992
+ 规划关键对话场景:
993
+
994
+ ```markdown
995
+ 第 8 章:林晓与张伟的冲突
996
+ - 对话目的:揭示性格差异,推进决策
997
+ - 潜台词:林晓害怕失败,张伟渴望证明自己
998
+ - 节奏:快速来回,逐渐升级
999
+ ```
1000
+
1001
+ ### /tasks - 任务分解阶段
1002
+
1003
+ 将对话场景作为独立任务:
1004
+
1005
+ ```markdown
1006
+ - [ ] 写第 8 章冲突对话(300-500 字)
1007
+ - 检查:潜台词、角色声音、冲突升级
1008
+ ```
1009
+
1010
+ ### /write - 写作阶段
1011
+
1012
+ 写作时实时应用对话技巧:
1013
+ - 检查每句对话是否服务于目的
1014
+ - 确保角色声音一致性
1015
+ - 加入潜台词和张力
1016
+
1017
+ ### /analyze - 分析阶段
1018
+
1019
+ 分析已写对话的质量:
1020
+
1021
+ ```markdown
1022
+ ## 对话分析
1023
+
1024
+ ### 统计
1025
+ - 对话占比:45%(目标 40-60%)✅
1026
+ - 平均对话长度:2.3 句/轮
1027
+
1028
+ ### 质量检查
1029
+ - [ ] 角色声音区分度
1030
+ - [ ] 潜台词使用频率
1031
+ - [ ] 信息倾泻检测
1032
+ - [ ] 对话功能性(推进情节/揭示角色)
1033
+ ```
1034
+
1035
+ ---
1036
+
1037
+ ## 修订技巧(Revision Techniques)
1038
+
1039
+ ### 1. 大声朗读测试
1040
+
1041
+ **方法**:大声读出对话
1042
+
1043
+ **检查点**:
1044
+ - 听起来自然吗?
1045
+ - 会被绕口令绊倒吗?
1046
+ - 节奏流畅吗?
1047
+ - 能感受到情绪吗?
1048
+
1049
+ ### 2. 掩盖法测试
1050
+
1051
+ **方法**:遮住对话标签
1052
+
1053
+ **检查点**:
1054
+ - 能从对话本身分辨出是谁说的吗?
1055
+ - 如果不能,角色声音不够独特
1056
+
1057
+ ### 3. 目的测试
1058
+
1059
+ **方法**:每段对话后问自己
1060
+
1061
+ **检查点**:
1062
+ - 这段对话达到什么目的?
1063
+ - 没有它会失去什么?
1064
+ - 可以更短、更有力吗?
1065
+
1066
+ ### 4. 潜台词测试
1067
+
1068
+ **方法**:在每句对话后写出潜台词
1069
+
1070
+ **示例**:
1071
+ ```
1072
+ "你今天真好看。"(潜台词:我想接近你)
1073
+ "是吗?"(潜台词:我不相信你)
1074
+ ```
1075
+
1076
+ **检查点**:
1077
+ - 表面意思和潜台词是否一致?
1078
+ - 如果一致,是否太直白?
1079
+
1080
+ ### 5. 删减测试
1081
+
1082
+ **方法**:尝试删除一半对话
1083
+
1084
+ **原则**:
1085
+ - 对话应该简洁有力
1086
+ - 删除废话和闲聊
1087
+ - 每句话都应该必要
1088
+
1089
+ ---
1090
+
1091
+ ## 常见场景的对话模板
1092
+
1093
+ ### 告白场景
1094
+
1095
+ **错误**(太直白):
1096
+ ```
1097
+ "我喜欢你,你愿意做我女朋友吗?"
1098
+ "好的,我也喜欢你。"
1099
+ ```
1100
+
1101
+ **改进**(有张力):
1102
+ ```
1103
+ "我……"他停顿了,"我想告诉你一件事。"
1104
+ 她等着。
1105
+ "很久了,我……"
1106
+ "什么事?"
1107
+ "算了。"
1108
+ "你都说到一半了。"
1109
+ 他看着她,许久,终于开口:"我喜欢你。"
1110
+ ```
1111
+
1112
+ ### 分手场景
1113
+
1114
+ **错误**(太平淡):
1115
+ ```
1116
+ "我们分手吧。"
1117
+ "好的。"
1118
+ ```
1119
+
1120
+ **改进**(有情感重量):
1121
+ ```
1122
+ "我们……"她深吸一口气,"我们是不是该……"
1123
+ "该什么?"他知道,他只是不想听到。
1124
+ "你知道的。"
1125
+ "我不知道。"
1126
+ 沉默。
1127
+ "我们不合适。"她终于说出口。
1128
+ 他笑了,很苦:"现在才发现?"
1129
+ ```
1130
+
1131
+ ### 秘密揭露场景
1132
+
1133
+ **错误**(太突兀):
1134
+ ```
1135
+ "我要告诉你一个秘密:我是你失散多年的兄弟。"
1136
+ ```
1137
+
1138
+ **改进**(有铺垫):
1139
+ ```
1140
+ "有件事……我一直想告诉你。"
1141
+ "什么事?"
1142
+ "但我不知道该怎么说。"
1143
+ "直说就好了。"
1144
+ "你……"他看着她的眼睛,"你有没有想过,为什么我们长得这么像?"
1145
+ 她笑了:"长得像就是兄弟了?"
1146
+ 他没笑。
1147
+ 她的笑容慢慢消失。
1148
+ ```
1149
+
1150
+ ---
1151
+
1152
+ ## 总结(Summary)
1153
+
1154
+ **对话写作的黄金法则**:
1155
+
1156
+ 1. **每句话都有目的** - 揭示角色、推进情节、营造氛围
1157
+ 2. **潜台词胜过直白** - 说什么不重要,不说什么才重要
1158
+ 3. **角色有独特声音** - 去掉标签也能分辨谁在说话
1159
+ 4. **节奏匹配场景** - 紧张时快,深情时慢
1160
+ 5. **简洁有力** - 少即是多,删除废话
1161
+
1162
+ **记住**:
1163
+ - 人们不会直接说出真实意图
1164
+ - 对话不是信息传递工具
1165
+ - 冲突制造张力和趣味
1166
+ - 沉默也是对话的一部分
1167
+ - 最好的对话是看起来轻松、实则精心设计
1168
+
1169
+ **最终测试**:
1170
+ 大声朗读你的对话。如果听起来像真人在说话,你成功了。如果听起来像作者在传递信息,重写。