novelws 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/CHANGELOG.md +100 -623
  2. package/README.md +79 -594
  3. package/dist/cli.js +1 -3
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +12 -99
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/upgrade.d.ts.map +1 -1
  9. package/dist/commands/upgrade.js +17 -108
  10. package/dist/commands/upgrade.js.map +1 -1
  11. package/dist/core/config.d.ts +1 -37
  12. package/dist/core/config.d.ts.map +1 -1
  13. package/dist/core/config.js +6 -45
  14. package/dist/core/config.js.map +1 -1
  15. package/dist/core/errors.d.ts +0 -31
  16. package/dist/core/errors.d.ts.map +1 -1
  17. package/dist/core/errors.js +0 -58
  18. package/dist/core/errors.js.map +1 -1
  19. package/dist/utils/diagnostics.d.ts +2 -16
  20. package/dist/utils/diagnostics.d.ts.map +1 -1
  21. package/dist/utils/diagnostics.js +5 -72
  22. package/dist/utils/diagnostics.js.map +1 -1
  23. package/dist/utils/project.d.ts +1 -1
  24. package/dist/utils/project.d.ts.map +1 -1
  25. package/dist/utils/project.js +3 -3
  26. package/dist/utils/project.js.map +1 -1
  27. package/package.json +1 -2
  28. package/templates/commands/analyze.md +65 -265
  29. package/templates/commands/expand.md +70 -0
  30. package/templates/commands/plan.md +47 -452
  31. package/templates/commands/specify.md +43 -869
  32. package/templates/commands/write.md +49 -643
  33. package/templates/dot-claude/CLAUDE.md +38 -202
  34. package/templates/resources/anti-ai.md +16 -0
  35. package/templates/resources/style-reference.md +19 -0
  36. package/templates/tracking/character-state.json +1 -76
  37. package/templates/tracking/plot-tracker.json +3 -60
  38. package/templates/tracking/relationships.json +1 -68
  39. package/templates/tracking/timeline.json +1 -47
  40. package/dist/commands/plugin.d.ts +0 -6
  41. package/dist/commands/plugin.d.ts.map +0 -1
  42. package/dist/commands/plugin.js +0 -135
  43. package/dist/commands/plugin.js.map +0 -1
  44. package/dist/plugins/identifier.d.ts +0 -13
  45. package/dist/plugins/identifier.d.ts.map +0 -1
  46. package/dist/plugins/identifier.js +0 -72
  47. package/dist/plugins/identifier.js.map +0 -1
  48. package/dist/plugins/installers/base.d.ts +0 -27
  49. package/dist/plugins/installers/base.d.ts.map +0 -1
  50. package/dist/plugins/installers/base.js +0 -30
  51. package/dist/plugins/installers/base.js.map +0 -1
  52. package/dist/plugins/installers/github.d.ts +0 -22
  53. package/dist/plugins/installers/github.d.ts.map +0 -1
  54. package/dist/plugins/installers/github.js +0 -133
  55. package/dist/plugins/installers/github.js.map +0 -1
  56. package/dist/plugins/installers/local.d.ts +0 -16
  57. package/dist/plugins/installers/local.d.ts.map +0 -1
  58. package/dist/plugins/installers/local.js +0 -69
  59. package/dist/plugins/installers/local.js.map +0 -1
  60. package/dist/plugins/installers/npm.d.ts +0 -20
  61. package/dist/plugins/installers/npm.d.ts.map +0 -1
  62. package/dist/plugins/installers/npm.js +0 -99
  63. package/dist/plugins/installers/npm.js.map +0 -1
  64. package/dist/plugins/manager.d.ts +0 -77
  65. package/dist/plugins/manager.d.ts.map +0 -1
  66. package/dist/plugins/manager.js +0 -349
  67. package/dist/plugins/manager.js.map +0 -1
  68. package/dist/plugins/registry.d.ts +0 -48
  69. package/dist/plugins/registry.d.ts.map +0 -1
  70. package/dist/plugins/registry.js +0 -111
  71. package/dist/plugins/registry.js.map +0 -1
  72. package/dist/plugins/types.d.ts +0 -66
  73. package/dist/plugins/types.d.ts.map +0 -1
  74. package/dist/plugins/types.js +0 -2
  75. package/dist/plugins/types.js.map +0 -1
  76. package/dist/plugins/validator.d.ts +0 -19
  77. package/dist/plugins/validator.d.ts.map +0 -1
  78. package/dist/plugins/validator.js +0 -164
  79. package/dist/plugins/validator.js.map +0 -1
  80. package/dist/utils/logger.d.ts +0 -13
  81. package/dist/utils/logger.d.ts.map +0 -1
  82. package/dist/utils/logger.js +0 -48
  83. package/dist/utils/logger.js.map +0 -1
  84. package/plugins/authentic-voice/README.md +0 -31
  85. package/plugins/authentic-voice/commands/authentic-voice.md +0 -73
  86. package/plugins/authentic-voice/commands/authenticity-audit.md +0 -37
  87. package/plugins/authentic-voice/config.yaml +0 -30
  88. package/plugins/authentic-voice/experts/authentic-editor.md +0 -27
  89. package/plugins/export/README.md +0 -319
  90. package/plugins/export/commands/export.md +0 -460
  91. package/plugins/export/commands/generate-cover.md +0 -256
  92. package/plugins/export/commands/metadata.md +0 -309
  93. package/plugins/export/config.yaml +0 -47
  94. package/plugins/export/experts/publishing-expert.md +0 -171
  95. package/plugins/export/templates/epub/chapter-template.html +0 -13
  96. package/plugins/export/templates/epub/cover-template.html +0 -14
  97. package/plugins/export/templates/epub/stylesheet.css +0 -200
  98. package/plugins/export/templates/pdf/ebook-style.css +0 -137
  99. package/plugins/export/templates/pdf/print-style.css +0 -179
  100. package/plugins/export/templates/platforms/jinjiang-format.md +0 -101
  101. package/plugins/export/templates/platforms/qidian-format.md +0 -108
  102. package/plugins/export/templates/platforms/tomato-format.md +0 -95
  103. package/plugins/translate/README.md +0 -265
  104. package/plugins/translate/commands/glossary.md +0 -731
  105. package/plugins/translate/commands/translate-preview.md +0 -543
  106. package/plugins/translate/commands/translate.md +0 -649
  107. package/plugins/translate/config.yaml +0 -43
  108. package/plugins/translate/experts/literary-translator.md +0 -605
  109. package/templates/commands/character.md +0 -287
  110. package/templates/commands/checklist.md +0 -744
  111. package/templates/commands/clarify.md +0 -269
  112. package/templates/commands/constitution.md +0 -269
  113. package/templates/commands/expert.md +0 -188
  114. package/templates/commands/facts.md +0 -552
  115. package/templates/commands/guide.md +0 -900
  116. package/templates/commands/help-me.md +0 -221
  117. package/templates/commands/recap.md +0 -748
  118. package/templates/commands/relations.md +0 -385
  119. package/templates/commands/revise.md +0 -450
  120. package/templates/commands/search.md +0 -531
  121. package/templates/commands/tasks.md +0 -396
  122. package/templates/commands/timeline.md +0 -309
  123. package/templates/commands/track-init.md +0 -149
  124. package/templates/commands/track.md +0 -704
  125. package/templates/commands/volume-summary.md +0 -471
  126. package/templates/knowledge/audit-config.json +0 -26
  127. package/templates/knowledge/character-profiles.md +0 -152
  128. package/templates/knowledge/character-voices.md +0 -137
  129. package/templates/knowledge/locations.md +0 -184
  130. package/templates/knowledge/world-setting.md +0 -121
  131. package/templates/resources/character-archetypes/01-hero.md +0 -233
  132. package/templates/resources/character-archetypes/02-mentor.md +0 -177
  133. package/templates/resources/character-archetypes/03-shadow.md +0 -221
  134. package/templates/resources/character-archetypes/04-ally.md +0 -178
  135. package/templates/resources/character-archetypes/05-shapeshifter.md +0 -177
  136. package/templates/resources/character-archetypes/06-trickster.md +0 -181
  137. package/templates/resources/character-archetypes/07-threshold-guardian.md +0 -177
  138. package/templates/resources/character-archetypes/08-herald.md +0 -180
  139. package/templates/resources/character-archetypes/09-father.md +0 -249
  140. package/templates/resources/character-archetypes/10-mother.md +0 -202
  141. package/templates/resources/character-archetypes/11-child.md +0 -183
  142. package/templates/resources/character-archetypes/12-sage.md +0 -202
  143. package/templates/resources/character-archetypes/README.md +0 -60
  144. package/templates/resources/character-archetypes/application-guide.md +0 -222
  145. package/templates/resources/character-archetypes/archetype-combinations.md +0 -242
  146. package/templates/resources/character-archetypes/config.yaml +0 -28
  147. package/templates/resources/character-archetypes/examples-analysis.md +0 -223
  148. package/templates/resources/config/keyword-mappings.json +0 -226
  149. package/templates/resources/config/specification-example.md +0 -146
  150. package/templates/resources/craft/character-arc.md +0 -1153
  151. package/templates/resources/craft/dialogue.md +0 -1170
  152. package/templates/resources/craft/hook-design.md +0 -345
  153. package/templates/resources/craft/pacing.md +0 -1200
  154. package/templates/resources/craft/power-system.md +0 -254
  155. package/templates/resources/craft/scene-structure.md +0 -1136
  156. package/templates/resources/craft/show-not-tell.md +0 -1012
  157. package/templates/resources/craft/story-structures.md +0 -134
  158. package/templates/resources/craft/tension-management.md +0 -168
  159. package/templates/resources/emotional-beats/01-first-meeting.md +0 -145
  160. package/templates/resources/emotional-beats/02-bonding-moment.md +0 -226
  161. package/templates/resources/emotional-beats/03-declaration.md +0 -284
  162. package/templates/resources/emotional-beats/04-triumph.md +0 -240
  163. package/templates/resources/emotional-beats/05-reunion.md +0 -396
  164. package/templates/resources/emotional-beats/06-forgiveness.md +0 -204
  165. package/templates/resources/emotional-beats/07-betrayal.md +0 -204
  166. package/templates/resources/emotional-beats/08-loss.md +0 -214
  167. package/templates/resources/emotional-beats/09-rejection.md +0 -254
  168. package/templates/resources/emotional-beats/10-failure.md +0 -244
  169. package/templates/resources/emotional-beats/11-misunderstanding.md +0 -205
  170. package/templates/resources/emotional-beats/12-farewell.md +0 -283
  171. package/templates/resources/emotional-beats/13-revelation.md +0 -242
  172. package/templates/resources/emotional-beats/14-point-of-no-return.md +0 -215
  173. package/templates/resources/emotional-beats/15-dark-night.md +0 -244
  174. package/templates/resources/emotional-beats/16-sacrifice.md +0 -246
  175. package/templates/resources/emotional-beats/17-awakening.md +0 -246
  176. package/templates/resources/emotional-beats/18-confrontation.md +0 -217
  177. package/templates/resources/emotional-beats/19-bittersweet-goodbye.md +0 -368
  178. package/templates/resources/emotional-beats/20-moral-dilemma.md +0 -248
  179. package/templates/resources/emotional-beats/21-temptation.md +0 -240
  180. package/templates/resources/emotional-beats/22-redemption.md +0 -210
  181. package/templates/resources/emotional-beats/README.md +0 -104
  182. package/templates/resources/emotional-beats/beat-sequences.md +0 -276
  183. package/templates/resources/emotional-beats/config.yaml +0 -30
  184. package/templates/resources/emotional-beats/pacing-guide.md +0 -390
  185. package/templates/resources/genres/game-lit.md +0 -174
  186. package/templates/resources/genres/historical.md +0 -1127
  187. package/templates/resources/genres/horror.md +0 -211
  188. package/templates/resources/genres/military.md +0 -209
  189. package/templates/resources/genres/mystery.md +0 -1123
  190. package/templates/resources/genres/rebirth.md +0 -177
  191. package/templates/resources/genres/revenge.md +0 -846
  192. package/templates/resources/genres/romance.md +0 -948
  193. package/templates/resources/genres/sci-fi.md +0 -156
  194. package/templates/resources/genres/sports.md +0 -216
  195. package/templates/resources/genres/thriller.md +0 -166
  196. package/templates/resources/genres/urban.md +0 -170
  197. package/templates/resources/genres/workplace.md +0 -214
  198. package/templates/resources/genres/wuxia.md +0 -143
  199. package/templates/resources/genres/xuanhuan.md +0 -234
  200. package/templates/resources/genres/youth.md +0 -219
  201. package/templates/resources/memory/personal-voice.md +0 -113
  202. package/templates/resources/references/README.md +0 -96
  203. package/templates/resources/references/china-1920s/culture.md +0 -423
  204. package/templates/resources/references/china-1920s/daily-life.md +0 -616
  205. package/templates/resources/references/china-1920s/overview.md +0 -298
  206. package/templates/resources/references/china-1920s/society.md +0 -703
  207. package/templates/resources/references/china-1920s/warlords.md +0 -427
  208. package/templates/resources/references/cultivation-world/daily-life.md +0 -108
  209. package/templates/resources/references/cultivation-world/overview.md +0 -64
  210. package/templates/resources/references/cultivation-world/power-system.md +0 -108
  211. package/templates/resources/references/cultivation-world/sects.md +0 -104
  212. package/templates/resources/references/cultivation-world/world-setting.md +0 -108
  213. package/templates/resources/references/modern-workplace/corporate.md +0 -115
  214. package/templates/resources/references/modern-workplace/daily-life.md +0 -129
  215. package/templates/resources/references/modern-workplace/overview.md +0 -73
  216. package/templates/resources/references/modern-workplace/relationships.md +0 -107
  217. package/templates/resources/references/modern-workplace/tech-industry.md +0 -131
  218. package/templates/resources/references/tang-dynasty/culture.md +0 -135
  219. package/templates/resources/references/tang-dynasty/daily-life.md +0 -139
  220. package/templates/resources/references/tang-dynasty/overview.md +0 -76
  221. package/templates/resources/references/tang-dynasty/politics.md +0 -121
  222. package/templates/resources/references/tang-dynasty/society.md +0 -126
  223. package/templates/resources/requirements/README.md +0 -240
  224. package/templates/resources/requirements/anti-ai-v3.md +0 -46
  225. package/templates/resources/requirements/anti-ai-v4-deprecated.md +0 -442
  226. package/templates/resources/requirements/anti-ai-v5-balanced.md +0 -203
  227. package/templates/resources/requirements/concretization.md +0 -90
  228. package/templates/resources/requirements/fast-paced.md +0 -552
  229. package/templates/resources/requirements/no-poison.md +0 -60
  230. package/templates/resources/requirements/romance-angst.md +0 -102
  231. package/templates/resources/requirements/romance-sweet.md +0 -63
  232. package/templates/resources/requirements/serious-literature.md +0 -45
  233. package/templates/resources/requirements/strong-emotion.md +0 -60
  234. package/templates/resources/scripts/README.md +0 -187
  235. package/templates/resources/scripts/bash/analyze-story.sh +0 -170
  236. package/templates/resources/scripts/bash/check-analyze-stage.sh +0 -108
  237. package/templates/resources/scripts/bash/check-consistency.sh +0 -463
  238. package/templates/resources/scripts/bash/check-facts.sh +0 -214
  239. package/templates/resources/scripts/bash/check-plot.sh +0 -374
  240. package/templates/resources/scripts/bash/check-timeline.sh +0 -346
  241. package/templates/resources/scripts/bash/check-world.sh +0 -395
  242. package/templates/resources/scripts/bash/check-writing-state.sh +0 -854
  243. package/templates/resources/scripts/bash/clarify-story.sh +0 -117
  244. package/templates/resources/scripts/bash/common.sh +0 -151
  245. package/templates/resources/scripts/bash/constitution.sh +0 -114
  246. package/templates/resources/scripts/bash/generate-tasks.sh +0 -65
  247. package/templates/resources/scripts/bash/init-tracking.sh +0 -183
  248. package/templates/resources/scripts/bash/manage-relations.sh +0 -174
  249. package/templates/resources/scripts/bash/migrate-tracking.sh +0 -183
  250. package/templates/resources/scripts/bash/plan-story.sh +0 -100
  251. package/templates/resources/scripts/bash/specify-story.sh +0 -93
  252. package/templates/resources/scripts/bash/tasks-story.sh +0 -96
  253. package/templates/resources/scripts/bash/test-word-count.sh +0 -182
  254. package/templates/resources/scripts/bash/tests/bench-preload-cache.sh +0 -100
  255. package/templates/resources/scripts/bash/tests/run-all-benchmarks.sh +0 -16
  256. package/templates/resources/scripts/bash/tests/test-cache-semantics.sh +0 -199
  257. package/templates/resources/scripts/bash/tests/test-cross-platform.sh +0 -35
  258. package/templates/resources/scripts/bash/tests/test-edge-cases-bash.sh +0 -60
  259. package/templates/resources/scripts/bash/tests/test-phase1-bash.sh +0 -28
  260. package/templates/resources/scripts/bash/tests/test-preload-cache.sh +0 -123
  261. package/templates/resources/scripts/bash/tests/test-regex-precompile.sh +0 -89
  262. package/templates/resources/scripts/bash/tests/test-regression-bash.sh +0 -42
  263. package/templates/resources/scripts/bash/tests/test-task6-verification.sh +0 -200
  264. package/templates/resources/scripts/bash/text-audit.sh +0 -144
  265. package/templates/resources/scripts/bash/track-progress.sh +0 -194
  266. package/templates/resources/scripts/powershell/analyze-story.ps1 +0 -174
  267. package/templates/resources/scripts/powershell/check-analyze-stage.ps1 +0 -110
  268. package/templates/resources/scripts/powershell/check-consistency.ps1 +0 -138
  269. package/templates/resources/scripts/powershell/check-facts.ps1 +0 -195
  270. package/templates/resources/scripts/powershell/check-plot.ps1 +0 -139
  271. package/templates/resources/scripts/powershell/check-timeline.ps1 +0 -112
  272. package/templates/resources/scripts/powershell/check-writing-state.ps1 +0 -486
  273. package/templates/resources/scripts/powershell/clarify-story.ps1 +0 -107
  274. package/templates/resources/scripts/powershell/common.ps1 +0 -36
  275. package/templates/resources/scripts/powershell/constitution.ps1 +0 -145
  276. package/templates/resources/scripts/powershell/generate-tasks.ps1 +0 -70
  277. package/templates/resources/scripts/powershell/init-tracking.ps1 +0 -98
  278. package/templates/resources/scripts/powershell/manage-relations.ps1 +0 -134
  279. package/templates/resources/scripts/powershell/migrate-tracking.ps1 +0 -145
  280. package/templates/resources/scripts/powershell/plan-story.ps1 +0 -99
  281. package/templates/resources/scripts/powershell/specify-story.ps1 +0 -85
  282. package/templates/resources/scripts/powershell/tests/bench-ps-cache.ps1 +0 -80
  283. package/templates/resources/scripts/powershell/tests/test-cross-platform.ps1 +0 -27
  284. package/templates/resources/scripts/powershell/tests/test-edge-cases-ps.ps1 +0 -29
  285. package/templates/resources/scripts/powershell/tests/test-phase1-ps.ps1 +0 -28
  286. package/templates/resources/scripts/powershell/tests/test-ps-cache.ps1 +0 -73
  287. package/templates/resources/scripts/powershell/tests/test-regression-ps.ps1 +0 -40
  288. package/templates/resources/scripts/powershell/text-audit.ps1 +0 -102
  289. package/templates/resources/scripts/powershell/track-progress.ps1 +0 -105
  290. package/templates/resources/styles/README.md +0 -302
  291. package/templates/resources/styles/ancient-style.md +0 -579
  292. package/templates/resources/styles/literary.md +0 -439
  293. package/templates/resources/styles/minimal.md +0 -472
  294. package/templates/resources/styles/natural-voice.md +0 -930
  295. package/templates/resources/styles/web-novel.md +0 -525
  296. package/templates/skills/analysis/character-analysis/SKILL.md +0 -71
  297. package/templates/skills/analysis/foreshadow-analysis/SKILL.md +0 -45
  298. package/templates/skills/analysis/hook-analysis/SKILL.md +0 -111
  299. package/templates/skills/analysis/logic-analysis/SKILL.md +0 -58
  300. package/templates/skills/analysis/opening-analysis/SKILL.md +0 -59
  301. package/templates/skills/analysis/pacing-analysis/SKILL.md +0 -55
  302. package/templates/skills/analysis/power-analysis/SKILL.md +0 -148
  303. package/templates/skills/analysis/reader-analysis/SKILL.md +0 -117
  304. package/templates/skills/analysis/style-analysis/SKILL.md +0 -60
  305. package/templates/skills/analysis/voice-analysis/SKILL.md +0 -42
  306. package/templates/skills/auto-tracking/SKILL.md +0 -280
  307. package/templates/skills/genre-knowledge/fantasy/SKILL.md +0 -355
  308. package/templates/skills/genre-knowledge/mystery/SKILL.md +0 -337
  309. package/templates/skills/genre-knowledge/romance/SKILL.md +0 -228
  310. package/templates/skills/genre-knowledge/sci-fi/SKILL.md +0 -65
  311. package/templates/skills/genre-knowledge/thriller/SKILL.md +0 -95
  312. package/templates/skills/planning/volume-detail/SKILL.md +0 -219
  313. package/templates/skills/quality-assurance/consistency-checker/SKILL.md +0 -412
  314. package/templates/skills/quality-assurance/continuity-tracker/SKILL.md +0 -157
  315. package/templates/skills/quality-assurance/facts-checker/SKILL.md +0 -405
  316. package/templates/skills/quality-assurance/forgotten-elements/SKILL.md +0 -147
  317. package/templates/skills/quality-assurance/getting-started/SKILL.md +0 -224
  318. package/templates/skills/quality-assurance/hook-checker/SKILL.md +0 -164
  319. package/templates/skills/quality-assurance/hook-checker/experts/hook-analyst.md +0 -33
  320. package/templates/skills/quality-assurance/long-series-continuity/SKILL.md +0 -570
  321. package/templates/skills/quality-assurance/pacing-monitor/SKILL.md +0 -143
  322. package/templates/skills/quality-assurance/pov-validator/SKILL.md +0 -135
  323. package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +0 -583
  324. package/templates/skills/quality-assurance/requirement-detector/CONFLICT_RESOLUTION.md +0 -119
  325. package/templates/skills/quality-assurance/requirement-detector/EXAMPLES.md +0 -146
  326. package/templates/skills/quality-assurance/requirement-detector/KEYWORDS.md +0 -160
  327. package/templates/skills/quality-assurance/requirement-detector/SKILL.md +0 -149
  328. package/templates/skills/quality-assurance/setting-detector/SKILL.md +0 -611
  329. package/templates/skills/quality-assurance/style-detector/CONFLICT_RESOLUTION.md +0 -126
  330. package/templates/skills/quality-assurance/style-detector/EXAMPLES.md +0 -206
  331. package/templates/skills/quality-assurance/style-detector/KEYWORDS.md +0 -207
  332. package/templates/skills/quality-assurance/style-detector/SKILL.md +0 -264
  333. package/templates/skills/quality-assurance/voice-consistency-checker/SKILL.md +0 -103
  334. package/templates/skills/quality-assurance/voice-consistency-checker/experts/voice-analyst.md +0 -21
  335. package/templates/skills/quality-assurance/workflow-guide/SKILL.md +0 -381
  336. package/templates/skills/writing-techniques/character-arc/SKILL.md +0 -267
  337. package/templates/skills/writing-techniques/dialogue-techniques/SKILL.md +0 -366
  338. package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +0 -708
  339. package/templates/skills/writing-techniques/multi-thread-narrative/experts/thread-analyst.md +0 -226
  340. package/templates/skills/writing-techniques/pacing-control/SKILL.md +0 -480
  341. package/templates/skills/writing-techniques/reader-expectation/SKILL.md +0 -1026
  342. package/templates/skills/writing-techniques/reader-expectation/experts/expectation-analyst.md +0 -209
  343. package/templates/skills/writing-techniques/revision-polish/SKILL.md +0 -496
  344. package/templates/skills/writing-techniques/revision-polish/experts/revision-editor.md +0 -221
  345. package/templates/skills/writing-techniques/scene-structure/SKILL.md +0 -361
  346. package/templates/skills/writing-techniques/style-learning/SKILL.md +0 -436
  347. package/templates/skills/writing-techniques/writing-balance/.gitkeep +0 -0
  348. package/templates/skills/writing-techniques/writing-balance/SKILL.md +0 -460
  349. package/templates/skills/writing-techniques/writing-techniques/SKILL.md +0 -727
  350. package/templates/tracking/story-facts.json +0 -5
  351. package/templates/tracking/summary/characters-summary.json +0 -7
  352. package/templates/tracking/summary/plot-summary.json +0 -13
  353. package/templates/tracking/summary/timeline-summary.json +0 -8
  354. package/templates/tracking/summary/volume-summaries.json +0 -5
  355. package/templates/tracking/tracking-log.md +0 -110
  356. package/templates/tracking/validation-rules.json +0 -128
  357. /package/templates/resources/{memory/constitution.md → constitution.md} +0 -0
@@ -1,244 +0,0 @@
1
- # Failure (失败)
2
-
3
- ## 核心定义
4
-
5
- 失败 = 角色在关键时刻未能达成目标,面对挫败的痛苦。
6
-
7
- 失败节拍是故事中最具塑造力的负面情感场景。它不仅仅是"没做到",而是角色倾注了全部心血、承受了巨大压力之后,依然无法改变结局的那种深刻无力感。好的失败场景会让读者心碎、沉默、甚至愤怒,因为他们已经和角色一起经历了全部的挣扎。差的失败场景则让读者觉得敷衍、刻意、或者毫无意义。
8
-
9
- **关键区分:**
10
- - **情节层面的失败:** 任务失败、比赛落败、计划破产、目标未达成
11
- - **情感层面的失败:** 角色辜负了信任、未能保护重要的人、丧失了自我认同
12
-
13
- 最深刻的失败场景同时包含这两个层面——外在的挫败引发内在的崩塌。
14
-
15
- ---
16
-
17
- ## 核心元素
18
-
19
- ### 1. 努力的铺垫
20
-
21
- 失败的痛感取决于之前努力的程度。读者必须亲眼见证角色付出了多少,才会在失败时感到心痛。
22
-
23
- - **努力必须是可见的:** 不是一笔带过的"他很努力",而是具体的训练场景、反复的尝试、深夜的坚持
24
- - **努力必须有代价:** 角色为了这个目标放弃了什么——时间、关系、健康、其他机会
25
- - **努力必须让读者产生期待:** 铺垫的过程中要让读者相信"也许他真的能做到",这样失败才有落差感
26
- - **努力的方向要合理:** 角色的策略和行动在当时的认知下应该是合理的,而不是明显愚蠢的选择
27
-
28
- ### 2. 失败的后果
29
-
30
- 失败不是一个瞬间,而是一连串的后果。没有后果的失败是空洞的。
31
-
32
- - **即时后果:** 失去了什么——机会、资源、地位、信任
33
- - **关系后果:** 对周围人的影响——队友的失望、家人的担忧、对手的轻蔑
34
- - **心理后果:** 自我怀疑、信念动摇、恐惧的种子
35
- - **不可逆后果:** 某些东西永远回不来了——错过的窗口期、逝去的生命、破碎的信任
36
-
37
- ### 3. 角色的反应
38
-
39
- 失败时刻最能暴露角色的本质。不同的角色面对失败会有截然不同的反应,这正是展现人物深度的绝佳机会。
40
-
41
- - **即时反应:** 震惊、否认、愤怒、麻木——第一反应往往是本能的
42
- - **消化过程:** 从否认到接受的过渡,这个过程可以是几分钟也可以是几个月
43
- - **归因方式:** 角色如何解释失败——怪自己、怪他人、怪命运——这揭示了角色的核心性格
44
- - **行为变化:** 失败之后角色的日常行为发生了什么改变——回避、过度补偿、自我封闭
45
-
46
- ### 4. 成长的种子
47
-
48
- 最好的失败场景在废墟中埋下了未来成长的种子。失败不是终点,而是转折点。
49
-
50
- - **认知突破:** 失败让角色看到了之前看不到的真相
51
- - **能力缺口:** 失败暴露了角色需要弥补的短板
52
- - **价值重估:** 失败迫使角色重新思考什么才是真正重要的
53
- - **韧性积累:** 每一次失败都在角色的心理韧性上添加一层——前提是角色选择面对而非逃避
54
-
55
- ---
56
-
57
- ## 常见套路(应避免)
58
-
59
- - ❌ **无后果的失败(走过场):** 角色失败了,但什么都没有改变——没有损失、没有影响、下一章就好像什么都没发生。这种失败只是情节的填充物,读者会觉得被浪费了时间。失败必须留下痕迹。
60
- - ❌ **立刻翻盘(失败太短暂):** 角色刚刚失败,下一个场景就找到了解决办法或者获得了新的机会。这让失败变成了一个廉价的情绪过山车,读者来不及感受痛苦就被拉回了希望。给失败足够的停留时间,让角色(和读者)真正消化这份挫败。
61
- - ❌ **失败全怪外因(角色无责任):** 失败完全是因为运气不好、他人背叛、或者不可抗力,角色本身没有任何可以反思的地方。这种处理方式剥夺了失败的成长价值。最有力量的失败是角色意识到"我本可以做得更好"——即使外因确实存在。
62
- - ❌ **失败后一蹶不振(无成长弧线):** 角色失败后彻底放弃,从此消沉到底,没有任何挣扎或反弹的迹象。这不是现实主义,这是叙事的死胡同。即使角色最终没有成功,失败也应该在某个层面推动角色的内在变化。
63
-
64
- ---
65
-
66
- ## 新颖变体
67
-
68
- ### 变体1:成功中的失败(赢了战斗,输了战争)
69
-
70
- 表面上角色达成了目标,但在更深的层面上却失去了更重要的东西。
71
-
72
- **核心张力:** 胜利的外壳包裹着失败的内核。角色站在领奖台上,却感到前所未有的空虚。
73
-
74
- **写法要点:**
75
- - 先让读者和角色一起庆祝表面的胜利
76
- - 然后通过一个细节或一个人的缺席,让角色(和读者)意识到真正失去了什么
77
- - 周围人在祝贺,角色却无法微笑——这种反差制造强烈的情感冲击
78
- - 不要急于点破,让读者自己慢慢意识到这其实是一场失败
79
-
80
- **适用场景:** 权力斗争(赢得了权力却失去了人性)、事业故事(升职了但家庭破碎)、战争叙事(攻下了阵地但牺牲了战友)
81
-
82
- ### 变体2:有尊严的失败(虽败犹荣)
83
-
84
- 角色明知会失败,依然选择战斗到底。失败本身成为了一种胜利的宣言。
85
-
86
- **核心张力:** 结果已经注定,但过程中展现的勇气和坚持赋予了失败以尊严。
87
-
88
- **写法要点:**
89
- - 在失败之前,让角色有一个清醒的认知时刻——他知道自己会输
90
- - 展示角色在明知必败的情况下依然做出的选择:不投降、不妥协、不放弃原则
91
- - 对手的反应至关重要——让对手在胜利后对角色表现出尊重,甚至敬畏
92
- - 旁观者的视角可以强化这种效果——他们看到的不是一个失败者,而是一个不屈的灵魂
93
-
94
- **适用场景:** 体育竞技(实力悬殊的对决)、法庭故事(明知会败诉但坚持为正义辩护)、反抗叙事(以弱抗强的最后一搏)
95
-
96
- ### 变体3:必要的失败(只有失败才能学到的东西)
97
-
98
- 某些教训只有通过失败才能获得。这种失败是角色成长道路上不可跳过的一课。
99
-
100
- **核心张力:** 失败本身就是目的——不是情节的挫折,而是角色蜕变的必经之路。
101
-
102
- **写法要点:**
103
- - 在失败之前,让角色带着某种盲点或错误信念行动
104
- - 失败精准地击中了这个盲点——不是随机的厄运,而是因果分明的结果
105
- - 失败后的领悟时刻要自然,不要让角色突然变得无所不知,而是让他慢慢理解
106
- - 可以通过导师或旁观者的一句话点明:"你需要这次失败。"但不要说教,要让角色自己消化
107
-
108
- **适用场景:** 成长故事(年轻人的第一次重大挫折)、师徒叙事(导师故意让学生经历失败)、创业故事(第一次创业失败教会了真正重要的东西)
109
-
110
- ### 变体4:旁观者的失败(目睹他人失败的无力感)
111
-
112
- 角色不是失败的主体,而是失败的见证者。他眼睁睁看着重要的人失败,却无能为力。
113
-
114
- **核心张力:** 无法帮助所爱之人的痛苦,有时比自己失败更加折磨人。
115
-
116
- **写法要点:**
117
- - 旁观者必须有想要帮助的强烈意愿,但被某种力量阻止——距离、能力、规则、或者对方的拒绝
118
- - 用旁观者的感官细节来传递痛苦:攥紧的拳头、咬破的嘴唇、移不开的视线
119
- - 失败发生后,旁观者的自责往往比失败者本人更强烈——"如果我当时……"
120
- - 这种变体特别适合展现亲密关系的深度——你有多在乎一个人,就有多无法承受看他失败
121
-
122
- **适用场景:** 亲子关系(父母看着孩子跌倒)、师徒关系(导师看着学生犯错)、战友关系(无法救援的战场)、医疗故事(医生面对无法挽救的病人)
123
-
124
- ---
125
-
126
- ## 情感真实性
127
-
128
- ### 如何让失败场景令读者感同身受
129
-
130
- **1. 具体化原则**
131
-
132
- 不要写"他感到绝望"。写具体的身体反应和行为细节:双腿发软站不住、反复检查结果不敢相信、机械地重复某个无意义的动作。失败的痛苦是通过身体感受传递的——胸口的压迫感、耳朵里的嗡鸣、突然觉得周围的声音都变远了。
133
-
134
- **2. 沉默的力量**
135
-
136
- 失败时刻最有力量的往往不是哭喊或爆发,而是沉默。角色说不出话、周围突然安静下来、时间仿佛停滞——这种沉默比任何台词都更能传递失败的重量。在写作中,用短句、断句、甚至留白来模拟这种沉默的节奏。
137
-
138
- **3. 延迟反应**
139
-
140
- 真实的失败反应往往是延迟的。角色在失败的瞬间可能表现得异常平静——微笑、点头、甚至安慰别人。然后在某个独处的时刻,在某个不经意的触发下(看到一张旧照片、听到一首歌、闻到某种气味),情感才真正崩溃。这种延迟让情感爆发更加真实、更加有冲击力。
141
-
142
- **4. 日常的瓦解**
143
-
144
- 失败对日常生活的侵蚀是最真实的痛苦表现。角色不再做某件习惯性的事(不再晨跑、不再弹琴、不再去那家咖啡馆)、或者开始做某件新的事(失眠、酗酒、强迫性地工作)。这些日常细节的变化比任何内心独白都更能让读者感受到失败的持续影响。
145
-
146
- **5. 他人的反应作为镜子**
147
-
148
- 通过周围人的反应来折射角色的失败:朋友小心翼翼的措辞、家人刻意回避的话题、同事突然多出的客气。这些微妙的变化让角色意识到"所有人都知道我失败了",这种被注视的感觉往往比失败本身更加难以承受。
149
-
150
- ---
151
-
152
- ## 示例分析
153
-
154
- ### 示例1:《洛奇》(Rocky, 1976) —— 第一部的结局
155
-
156
- **场景:** 洛奇与世界冠军阿波罗·克里德的十五回合比赛结束,洛奇以点数判定落败。
157
-
158
- **为什么有效:**
159
-
160
- - **努力的铺垫极其充分:** 整部电影用大量篇幅展示洛奇的训练过程——凌晨四点起床、生吞鸡蛋、在冷冻肉库里打沙袋、跑上费城美术馆的台阶。观众亲眼见证了每一滴汗水,所以当比赛开始时,他们已经完全站在洛奇这一边。
161
- - **失败的重新定义:** 洛奇在比赛前夜对阿德里安说:"我只想撑完十五个回合。从来没有人对阿波罗撑完十五个回合。如果我能撑到终场铃响,我就知道自己不只是街头的又一个混混。"这句话把"失败"的标准从"赢得比赛"转移到了"证明自己"。他在点数上输了,但他完成了自己的目标。
162
- - **情感真实性:** 比赛结束后,洛奇满脸是血、眼睛肿得几乎睁不开,他不关心裁判的判定,只是在人群中呼喊"Adrian"。这个细节完美地展示了什么才是他真正在乎的——不是拳击冠军,而是被爱的人看见自己的价值。
163
- - **有尊严的失败(变体2):** 阿波罗赢了比赛,但他知道自己差点输了。洛奇用十五回合的坚持赢得了所有人的尊重,包括对手的尊重。这是一场比胜利更动人的失败。
164
-
165
- **技巧提炼:** 让角色在失败之前重新定义成功的标准。当"赢"的含义被改写,失败就获得了全新的情感维度。
166
-
167
- ### 示例2:《绝命毒师》(Breaking Bad) —— 沃尔特·怀特的终极失败
168
-
169
- **场景:** 贯穿整部剧集,沃尔特·怀特(Walter White)从一个温和的高中化学老师逐步堕落为毒枭"海森堡"。他的终极失败不是某一个具体时刻,而是一个渐进的过程——他赢得了毒品帝国,却失去了一切真正重要的东西。
170
-
171
- **为什么有效:**
172
-
173
- - **成功中的失败(变体1)的极致演绎:** 沃尔特在犯罪世界中不断"成功"——制造出最纯的冰毒、击败了一个又一个对手、积累了巨额财富。但每一次"胜利"都让他离家人更远、离人性更远。当他最终站在毒品帝国的顶端时,妻子恨他、儿子恐惧他、小舅子因他而死、搭档杰西被他彻底摧毁。
174
- - **失败的渐进性:** 这不是一次突然的失败,而是一系列微小的道德妥协累积而成的崩塌。每一步看起来都有"合理"的理由,但回头看时,观众清楚地看到了那条不归路。这种渐进式失败比突然的灾难更加令人不寒而栗。
175
- - **自我认知的失败:** 沃尔特最大的失败是他长期欺骗自己——"我做这一切都是为了家人。"直到最后一季,他终于对妻子斯凯勒承认:"我做这些是因为我擅长这个,因为它让我感觉自己活着。"这个迟来的诚实是全剧最令人心碎的时刻之一,因为真相来得太晚,已经无法挽回任何东西。
176
- - **后果的不可逆性:** 汉克的死亡、杰西的创伤、家庭的破碎——这些后果没有任何翻盘的可能。沃尔特在最后几集中试图弥补,但剧集诚实地告诉观众:有些失败是无法修复的。
177
-
178
- **技巧提炼:** 最深刻的失败不是一个事件,而是一个过程。让角色在"成功"的幻觉中一步步走向真正的失败,当他终于看清时,一切已经不可挽回。
179
-
180
- ---
181
-
182
- ## 写作提示
183
-
184
- ### 五个设计问题
185
-
186
- 在写失败场景之前,问自己:
187
-
188
- 1. **角色为这个目标付出了多少?** 如果答案是"不多",你的失败场景不会有力量。读者需要先看到投入,才能感受到失去。列出角色为此目标牺牲的至少三样东西。
189
-
190
- 2. **失败的原因是什么?** 是能力不足、判断失误、运气不好、还是被背叛?原因决定了失败的性质和角色的反应方式。最好的失败往往有多重原因——外因和内因交织。
191
-
192
- 3. **失败的后果是否不可逆?** 至少要有一个不可逆的后果。如果所有后果都可以轻易修复,失败就没有重量。不可逆性是失败场景的锚点。
193
-
194
- 4. **角色从这次失败中能学到什么?** 如果答案是"什么都学不到",那这个失败只是在折磨角色(和读者)。失败必须有叙事功能——推动角色成长、揭示真相、或改变角色的行动方向。
195
-
196
- 5. **这次失败如何影响角色的核心信念?** 失败应该动摇角色深层的某个信念——"努力就会成功""我能保护所有人""世界是公平的"。信念的动摇才是失败真正的戏剧性所在。
197
-
198
- ### 五项检查清单
199
-
200
- - [ ] **铺垫检查:** 失败之前,读者是否充分见证了角色的努力和投入?
201
- - [ ] **后果检查:** 失败是否带来了真实的、持续的、至少部分不可逆的后果?
202
- - [ ] **反应检查:** 角色对失败的反应是否符合其性格?是否有具体的身体感和行为细节?
203
- - [ ] **功能检查:** 这次失败在整体叙事中是否有明确的功能——推动成长、揭示真相、或改变方向?
204
- - [ ] **感官检查:** 失败时刻是否有具体的感官细节(声音、光线、温度、身体感受),而非只有抽象的情感描述?
205
-
206
- ---
207
-
208
- ## 进阶技巧
209
-
210
- ### 技巧1:预期管理(Expectation Manipulation)
211
-
212
- 在失败到来之前,精心操控读者的期待值。让读者和角色一起相信"这次一定能成功",然后在最高点将希望抽走。
213
-
214
- **具体做法:**
215
- - 在关键时刻之前,安排一系列小胜利,让角色(和读者)的信心逐步攀升
216
- - 加入"一切都在按计划进行"的暗示——队友的微笑、导师的点头、数据的正向变化
217
- - 然后在最关键的一步出错。不是突然的灾难,而是一个微小的偏差像多米诺骨牌一样引发连锁崩塌
218
- - 失败发生时,读者的反应应该是"不……不要……"而不是"我早就知道"
219
-
220
- **效果:** 期望越高,跌落越痛。通过精心的预期管理,同样的失败事件可以产生截然不同的情感冲击力。这个技巧的关键是真诚——那些小胜利和正向信号必须是真实的,而不是刻意的误导。
221
-
222
- ### 技巧2:失败的回声(Echoes of Failure)
223
-
224
- 让失败的影响在后续情节中持续回响,而不是作为一个独立事件被消化掉。
225
-
226
- **具体做法:**
227
- - 在失败之后的多个场景中,安排"回声"时刻——角色在不相关的情境中突然被失败的记忆击中
228
- - 用感官触发:某种声音、气味、或画面与失败时刻相似,瞬间将角色拉回那个瞬间
229
- - 让失败影响角色的决策模式——过度谨慎、回避类似情境、或者相反地鲁莽冒进
230
- - 在很久之后的某个场景中,让角色终于能够平静地谈论那次失败——这本身就是成长的标志
231
-
232
- **效果:** 失败的回声让读者感受到创伤的真实重量。它不是一个被翻过去的页面,而是一道持续影响角色行为和心理的暗流。这种处理方式也为后续的成长或救赎提供了更丰富的情感基础。
233
-
234
- ### 技巧3:平行失败(Parallel Failure)
235
-
236
- 在同一个叙事段落中,让多个角色同时经历不同形式的失败,形成情感共振。
237
-
238
- **具体做法:**
239
- - 设计两到三条并行的失败线:比如主角在事业上失败的同时,配角在感情上失败,另一个角色在道德选择上失败
240
- - 用交叉剪辑的叙事节奏在不同失败之间切换,让它们在情感上相互映照
241
- - 不同角色对失败的不同反应形成对比——一个人崩溃、一个人沉默、一个人假装没事
242
- - 最终让这些平行的失败在某个节点交汇——也许是一个共同的场景,也许是一个角色的失败直接导致了另一个角色的失败
243
-
244
- **效果:** 平行失败创造了一种"世界在崩塌"的氛围感,同时通过不同角色的不同反应展现了失败的多面性。这个技巧特别适合群像叙事和需要营造低谷氛围的故事转折点。它让读者意识到失败不是个人的、孤立的事件,而是生活中普遍的、相互关联的体验。
@@ -1,205 +0,0 @@
1
- # Misunderstanding (误会)
2
-
3
- ## 核心定义
4
-
5
- 误会 = 角色之间因信息不对称或错误解读产生的冲突。
6
-
7
- 误会是叙事中最古老也最强大的冲突引擎之一。它的力量在于:读者往往比角色知道更多真相,这种"戏剧性反讽"(dramatic irony) 制造了强烈的阅读张力——读者想喊"不是这样的!"却只能眼睁睁看着角色走向错误的方向。好的误会不是作者偷懒的工具,而是角色性格、关系裂痕和信息环境共同作用的必然结果。
8
-
9
- 误会的本质不是"角色不沟通",而是"角色基于自身的认知框架,对有限信息做出了合理但错误的判断"。当误会源于角色的性格缺陷、过往创伤或根深蒂固的偏见时,它就不再是廉价的情节装置,而是角色弧线的有机组成部分。
10
-
11
- **关键区分:**
12
- - 误会 ≠ 谎言(误会是无意的错误认知,谎言是有意的信息操控)
13
- - 误会 ≠ 秘密(秘密是主动隐瞒,误会是被动的信息缺失)
14
- - 误会 ≠ 愚蠢(好的误会中,角色的推理过程是合理的,只是前提错了)
15
- - 误会 ≠ 全部冲突(误会应该是冲突的催化剂,而非冲突本身)
16
-
17
- ---
18
-
19
- ## 核心元素
20
-
21
- ### 1. 合理的信息差:误会必须建立在可信的信息缺失之上
22
-
23
- 误会的说服力取决于信息差的合理性。读者需要相信:在角色所掌握的有限信息下,得出错误结论是自然的、甚至是唯一的选择。如果读者觉得"只要稍微想一想就不会误会",整个冲突就会崩塌。
24
-
25
- **具体做法:**
26
- - 在误会发生之前,明确展示角色能获取哪些信息、不能获取哪些信息
27
- - 让信息差有物理或情境上的合理原因:距离、时间差、第三方的无意干扰、文化差异
28
- - 确保角色基于已有信息做出的推理链条是完整的——每一步都合乎逻辑,只是起点错了
29
- - 避免"只要打一个电话就能解决"的信息差,除非有充分理由解释为什么角色不会打这个电话
30
-
31
- ### 2. 性格驱动:误会源于角色性格
32
-
33
- 最好的误会不是随机发生的,而是角色性格的必然产物。一个多疑的人更容易把善意解读为恶意;一个骄傲的人更容易把道歉解读为施舍;一个自卑的人更容易把疏远解读为嫌弃。当误会与性格深度绑定时,解开误会的过程就等于角色成长的过程。
34
-
35
- **具体做法:**
36
- - 在误会发生之前,用具体场景建立角色的认知偏见(比如展示角色过去被欺骗的经历,为后来的多疑提供心理基础)
37
- - 让不同角色面对同样的信息差时做出不同的反应——A 选择相信,B 选择怀疑,这种差异本身就在刻画性格
38
- - 误会的内容应该精准击中角色的心理弱点:最怕被抛弃的人误以为对方要离开,最怕被利用的人误以为对方别有用心
39
-
40
- ### 3. 升级机制:误会如何从小裂缝变成深渊
41
-
42
- 一个误会如果停留在原地,就只是一个误会。但当误会触发连锁反应——角色基于错误认知做出新的决定,这些决定又制造了新的误解——冲突就会像滚雪球一样越来越大。这种升级机制是误会节拍最具叙事价值的部分。
43
-
44
- **具体做法:**
45
- - 设计"误会阶梯":第一层误会导致角色做出反应 → 这个反应被对方误读为新的信号 → 新的误读导致更激烈的反应
46
- - 引入第三方角色作为"误会放大器"——好心的朋友传话时无意中扭曲了信息,或者有心的对手故意利用已有的误会
47
- - 让误会的升级与外部情节压力同步——当角色没有时间和空间去澄清时,误会最容易失控
48
- - 在升级过程中设置"几乎解开"的时刻——角色差一点就说出真相,但被打断或犹豫了,这种"差一步"的挫败感极具张力
49
-
50
- ### 4. 真相揭露:误会如何被解开,以及解开之后发生什么
51
-
52
- 真相揭露的方式和时机决定了误会节拍的最终效果。太早揭露,冲突不够充分;太晚揭露,读者会失去耐心。而最重要的是:误会解开之后,事情不能简单地"回到原点"。误会期间造成的伤害、说出的话、做出的选择,都应该留下痕迹。
53
-
54
- **具体做法:**
55
- - 真相揭露的方式应该与误会的性质匹配:通过行动揭露比通过对话揭露更有力量
56
- - 设计"部分揭露"——角色先了解到部分真相,这个部分真相可能暂时加深误会,然后完整真相才最终浮出水面
57
- - 真相揭露后,给角色足够的反应时间:震惊、羞愧、愤怒(对自己或对造成信息差的人)、悔恨
58
- - 最关键的:展示误会留下的后果。即使真相大白,信任的裂痕、说过的伤人话、错过的时机,这些都不会因为"原来是误会"而消失
59
-
60
- ---
61
-
62
- ## 常见套路(应避免)
63
-
64
- - ❌ **一句话能解释的误会(强行不说):** 角色明明可以用一句话澄清事实,但因为"骄傲""面子"或毫无理由的沉默而选择不说。如果读者觉得"你倒是说啊!",这个误会就失败了。除非角色有极其充分的理由保持沉默(比如说出真相会暴露更大的秘密),否则不要用这种方式维持冲突。
65
- - ❌ **愚蠢的误会:** 角色的误解建立在明显不合理的推理之上,任何正常人都不会得出这样的结论。这种误会不会让读者紧张,只会让读者对角色的智商产生怀疑。误会中的角色可以是情绪化的、偏执的、信息不足的,但不能是愚蠢的。
66
- - ❌ **误会=全部冲突:** 整个故事的核心冲突完全建立在误会之上,一旦误会解开,所有问题都迎刃而解。这意味着故事没有真正的深层矛盾。好的故事中,误会应该是表层冲突,它的解开反而暴露出更深层的问题——价值观的分歧、利益的对立、性格的不兼容。
67
- - ❌ **误会解除后无后果:** 真相大白后,角色立刻和好如初,好像什么都没发生过。这种处理方式浪费了误会节拍最有价值的部分——后果。误会期间的伤害是真实的,即使原因是虚假的。被误解时的孤独、被冤枉时的愤怒、在误会中做出的错误决定,这些都应该在真相揭露后继续产生影响。
68
-
69
- ---
70
-
71
- ## 新颖变体
72
-
73
- ### 变体1:双向误会(双方都误解对方)
74
-
75
- 两个角色同时对彼此产生了错误的认知,各自基于自己的误解做出反应,而这些反应又恰好"验证"了对方的误解。这种双向误会形成了一个自我强化的恶性循环,比单向误会更难解开,也更具戏剧张力。
76
-
77
- **示例场景:** A 以为 B 不再信任自己,所以开始保持距离;B 看到 A 的疏远,以为 A 对自己有意见,于是也变得冷淡;A 看到 B 的冷淡,更加确信 B 不信任自己。两人都在"回应"对方的误会,却不知道自己才是误会的制造者。
78
-
79
- **写作要点:** 双向误会的关键是让两条误解线索平行发展,各自有独立的逻辑链条。解开时,可以让一方先发现自己的误解,然后意识到对方的反应也是基于误解——这个"恍然大悟"的连锁反应是双向误会最精彩的时刻。
80
-
81
- ### 变体2:正确的误会(误会的结论恰好是对的)
82
-
83
- 角色基于错误的证据和错误的推理,得出了一个恰好正确的结论。这是最具讽刺意味的误会形态——角色"猜对了",但理由完全是错的。这种变体模糊了"误会"和"真相"的边界,创造了独特的叙事困境。
84
-
85
- **示例场景:** 妻子怀疑丈夫出轨,证据是丈夫最近频繁加班、手机设了密码、衣服上有陌生的香水味。实际上丈夫加班是为了赚钱给她买生日礼物,手机设密码是为了藏惊喜,香水味来自商场试香。但丈夫确实在情感上已经疏远了妻子——他用物质弥补来逃避真正的亲密问题。妻子的"误会"在细节上全错,但在本质上却触及了真相。
86
-
87
- **写作要点:** 这种变体的力量在于它迫使角色(和读者)思考:当结论正确但过程错误时,这算不算"知道真相"?真相揭露后的对话会异常复杂——"你的怀疑是对的,但你的理由全是错的",这种局面没有简单的解法。
88
-
89
- ### 变体3:善意的误会(误会反而保护了某人)
90
-
91
- 误会的存在反而起到了保护作用——如果真相被揭开,反而会造成更大的伤害。这种变体将误会从"需要解决的问题"变成了"需要维护的善意谎言的替代品",创造了深刻的道德困境。
92
-
93
- **示例场景:** 孩子一直以为去世的父亲是个英雄,死于一次救人行动。母亲知道真相——父亲其实死于酒驾。但母亲从未纠正这个误会,因为这个"英雄父亲"的形象给了孩子力量和方向。当孩子长大后逐渐接近真相时,母亲面临选择:是让误会继续保护孩子,还是让真相给予孩子完整的现实?
94
-
95
- **写作要点:** 善意误会的核心冲突是"保护"与"尊重"之间的矛盾——保护某人免受痛苦,还是尊重某人知道真相的权利?不要给出简单的答案。让角色在两难中挣扎,让读者也无法轻易判断对错。
96
-
97
- ### 变体4:永远不解开的误会
98
-
99
- 有些误会永远不会被澄清——因为知情者已经去世、因为时过境迁已无意义、或者因为解开误会的代价太大。角色带着错误的认知继续生活,而读者知道真相。这种变体将戏剧性反讽推到了极致,创造了一种独特的、带有悲剧色彩的叙事余韵。
100
-
101
- **示例场景:** 两个老朋友因为一次误会而绝交三十年。A 以为 B 在关键时刻出卖了自己,实际上 B 是被第三方陷害的。B 曾试图解释但被 A 拒绝,后来 B 移居海外,再后来 B 去世了。A 在 B 的葬礼上从 B 的女儿口中得知了部分真相,但永远无法确认全部事实。A 余生都活在"也许我错怪了他"的不确定中——这比确定的真相更折磨人。
102
-
103
- **写作要点:** 永远不解开的误会需要给读者足够的信息来理解真相,同时让角色永远停留在不确定中。这种信息落差是痛苦的,但也是深刻的。关键是不要在结尾用"巧合"强行揭露真相——让不确定性本身成为故事的结局。
104
-
105
- ---
106
-
107
- ## 情感真实性
108
-
109
- 如何让误会场景令读者信服,而不是让读者觉得"这也太巧了"或"这些人怎么不说话"?
110
-
111
- ### 认知偏见的真实
112
-
113
- 人类天生就是误解的制造机。确认偏误 (confirmation bias) 让我们只看到支持自己预设的证据;基本归因错误 (fundamental attribution error) 让我们把别人的行为归因于性格而非情境。在写误会时,利用这些真实的心理机制:角色不是"选择"误解,而是大脑自动完成了错误的拼图。让角色的误解过程符合真实的认知模式,读者就会觉得"换了我可能也会这么想"。
114
-
115
- ### 情绪对判断的扭曲
116
-
117
- 人在强烈情绪中的判断力会显著下降。恐惧让人看到威胁,愤怒让人看到敌意,悲伤让人看到被抛弃的信号。在设计误会场景时,先建立角色的情绪状态,再让误会在这个情绪背景下发生。一个刚经历过背叛的人,对任何可疑迹象都会过度反应——这不是愚蠢,这是创伤后的正常心理防御。
118
-
119
- ### 沟通障碍的层次
120
-
121
- 现实中的沟通障碍远比"不说话"复杂。人们会说话但说不清楚、会解释但对方听不进去、会试图澄清但越描越黑。在写误会中的沟通尝试时,展示这些层次:角色不是没有尝试沟通,而是沟通本身也失败了——因为双方带着不同的情绪滤镜在"听"对方说话。
122
-
123
- ### 误会中的孤独感
124
-
125
- 被误解是人类最深层的孤独体验之一。当一个角色知道自己被误解却无法澄清时,那种"我不是你以为的那个样子"的无力感,是误会节拍中最动人的情感内核。不要只写误会的外部冲突(争吵、对抗),也要写误会的内部体验(孤独、委屈、自我怀疑)。
126
-
127
- ---
128
-
129
- ## 示例分析
130
-
131
- ### 示例1:《罗密欧与朱丽叶》(Romeo and Juliet) —— 致命的信息差
132
-
133
- **背景:** 朱丽叶 (Juliet) 服下假死药水,计划在墓穴中醒来后与罗密欧 (Romeo) 私奔。劳伦斯神父 (Friar Laurence) 派人送信给罗密欧解释计划,但信使未能及时送达。罗密欧得到的唯一信息是"朱丽叶死了"。
134
-
135
- **为什么有效:**
136
- - **信息差的合理性:** 在没有电话和即时通讯的时代,一封信的延误是完全可信的。信使被瘟疫隔离这个细节,让信息差有了具体的、不可抗力的原因,读者无法责怪任何角色"为什么不沟通"
137
- - **性格驱动的反应:** 罗密欧的冲动性格贯穿全剧——他爱得快、恨得快、行动得快。得知朱丽叶"死讯"后,他没有等待、没有求证、没有回去找神父确认,而是立刻买了毒药赶往墓穴。这个反应完全符合他的性格,换一个更冷静的角色,悲剧可能不会发生
138
- - **升级到不可逆:** 误会的后果是死亡——这是最极端的"不可逆"。罗密欧在朱丽叶身边服毒,朱丽叶醒来看到罗密欧的尸体后自杀。误会没有被"解开"的机会,因为后果来得太快
139
- - **超越个人的回响:** 两人的死亡最终结束了两个家族的世仇。误会造成的悲剧反而成为更大和解的催化剂——这让误会的意义超越了个人层面
140
-
141
- **写作启示:** 莎士比亚没有让误会本身成为故事的全部。两个家族的仇恨才是深层冲突,误会只是点燃火药桶的火星。即使没有这个误会,罗密欧和朱丽叶的爱情在家族仇恨的阴影下也注定坎坷。这正是"误会不应等于全部冲突"的最佳示范。
142
-
143
- ### 示例2:《奥赛罗》(Othello) —— 被操纵的误会
144
-
145
- **背景:** 伊阿古 (Iago) 出于嫉妒和怨恨,精心策划让奥赛罗 (Othello) 相信妻子苔丝狄蒙娜 (Desdemona) 与副将卡西奥 (Cassio) 有染。他利用一条手帕作为"证据",通过暗示、半真半假的话语和精心安排的"巧合",一步步将奥赛罗推向疯狂。
146
-
147
- **为什么有效:**
148
- - **性格作为误会的土壤:** 奥赛罗作为摩尔人在威尼斯社会中的"外来者"身份,让他内心深处始终存在不安全感——他配得上苔丝狄蒙娜吗?伊阿古精准地利用了这个心理弱点。误会之所以能生根,不是因为证据多么充分,而是因为它击中了奥赛罗最脆弱的地方
149
- - **升级机制的精妙:** 伊阿古从不直接说"你妻子出轨了"。他用暗示、停顿、欲言又止来让奥赛罗自己"推理"出结论。每一次奥赛罗要求证据时,伊阿古都提供刚好够用的"线索",让奥赛罗的怀疑自我生长。这种升级不是外部推动的,而是角色内心的猜疑在自我喂养
150
- - **第三方操纵者:** 伊阿古的存在让这个误会超越了简单的"信息不对称"。他是一个主动制造和维护误会的人,他的每一步操作都经过精密计算。这提醒写作者:误会不一定是自然发生的,有时候有人在幕后推波助澜
151
- - **真相揭露的惨烈:** 奥赛罗在杀死苔丝狄蒙娜之后才得知真相。这是最残酷的真相揭露时机——太晚了,一切都无法挽回。奥赛罗面对的不仅是"我误会了"的羞愧,而是"我亲手杀了无辜的爱人"的毁灭性认知
152
-
153
- **写作启示:** 《奥赛罗》展示了误会最黑暗的可能性——当误会被有意操纵、当角色的性格缺陷被精准利用时,误会可以成为毁灭性的武器。同时它也证明了:最有力量的误会不需要复杂的情节诡计,只需要一个了解目标弱点的操纵者和一颗已经有裂痕的心。
154
-
155
- ---
156
-
157
- ## 写作提示
158
-
159
- ### 五个设计问题
160
-
161
- 在写误会场景之前,先回答以下问题:
162
-
163
- 1. **信息差的来源是什么?** 是物理距离、时间差、第三方干扰、文化差异,还是角色自身的认知偏见?确保信息差有具体的、可信的原因,而不是"角色就是不沟通"。
164
- 2. **为什么这个角色会这样误解?** 角色的哪些性格特征、过往经历或当前情绪状态,让他/她特别容易产生这种误解?如果换一个性格完全不同的角色,面对同样的信息差,还会产生同样的误会吗?如果答案是"会",那误会还不够个性化。
165
- 3. **误会会如何升级?** 角色基于误解会做出什么反应?这些反应会如何被对方解读?是否会形成恶性循环?画一个简单的"误会升级图",确保每一步都有逻辑。
166
- 4. **真相如何揭露?** 是通过对话、行动、第三方、还是意外发现?揭露的时机是在误会造成不可逆后果之前还是之后?揭露的方式是否与故事的整体基调一致?
167
- 5. **误会解开后会留下什么?** 哪些伤害是不可逆的?关系会如何改变?角色从这次误会中学到了什么关于自己的东西?如果答案是"什么都不留下",那这个误会对故事没有真正的贡献。
168
-
169
- ### 五项检查清单
170
-
171
- 写完误会场景后,用以下清单检验:
172
-
173
- - [ ] **信息差合理吗?** 读者是否能理解为什么角色会得出错误结论,还是觉得"这人怎么这么蠢"?
174
- - [ ] **误会与性格绑定了吗?** 这个误会是否只有这个特定角色才会产生,还是任何人都会犯的错误?
175
- - [ ] **有升级机制吗?** 误会是否在发展和加深,还是停留在原地等待被解开?
176
- - [ ] **真相揭露有冲击力吗?** 揭露的时刻是否让角色(和读者)感到震动,还是平淡无奇的"哦,原来如此"?
177
- - [ ] **误会留下了后果吗?** 真相大白后,关系是否发生了不可逆的变化,还是简单地回到了原点?
178
-
179
- ---
180
-
181
- ## 进阶技巧
182
-
183
- ### 技巧1:误会的考古学 (Archaeology of Misunderstanding)
184
-
185
- 不要让误会只存在于"现在"。设计一个有历史层次的误会——当前的误会建立在过去的误会之上,而过去的误会又源于更早的事件。当角色试图解开当前的误会时,他们发现自己必须先挖掘更深层的历史真相。
186
-
187
- **实操方法:** 设计一个"误会地层":表层是当前的冲突(A 以为 B 背叛了自己),中层是多年前的旧误会(A 一直以为 B 当年的某个行为是出于恶意),底层是最初的信息缺失(B 当年的行为其实是为了保护 A,但 A 从未知道)。解开误会的过程就像考古发掘——每挖开一层,都发现更深的真相和更复杂的情感。
188
-
189
- **效果:** 这种技巧让误会具有了时间的厚度和情感的重量。它不再是一个需要"修复"的错误,而是一段需要"理解"的历史。特别适合长篇小说和涉及多年关系的故事。
190
-
191
- ### 技巧2:读者的误会 (Reader's Misunderstanding)
192
-
193
- 不仅让角色误会,也让读者误会。通过叙事视角的限制,让读者和角色一起得出错误的结论。当真相揭露时,读者会经历和角色同样的震惊——这种共情体验远比"读者早就知道真相"的戏剧性反讽更加强烈。
194
-
195
- **实操方法:** 使用限制性第一人称或紧贴式第三人称视角,让读者只能通过角色的眼睛看世界。角色注意到的细节、忽略的细节、做出的推理,读者都会跟着走。关键是让误导性的线索看起来完全自然——不是作者在"骗"读者,而是视角本身的局限导致了错误认知。当视角切换或新信息出现时,读者和角色一起经历"原来如此"的顿悟。
196
-
197
- **效果:** 这种技巧将误会从"角色的经历"升级为"读者的经历",极大地增强了情感冲击力。但要注意:读者被"骗"后的反应取决于误导是否公平——如果回头看,所有线索都在,只是被视角遮蔽了,读者会觉得精妙;如果作者刻意隐瞒了关键信息,读者会觉得被欺骗。
198
-
199
- ### 技巧3:误会作为镜子 (Misunderstanding as Mirror)
200
-
201
- 利用误会来揭示角色的真实内心。一个人如何误解别人,往往暴露了他自己最深层的恐惧和欲望。误会不仅是关于"对方做了什么",更是关于"我害怕什么"。
202
-
203
- **实操方法:** 在设计误会时,先确定角色最深层的恐惧或欲望,然后让误会的内容精准映射这个内心真相。比如:一个害怕被遗弃的角色,会把对方的任何独立行为都误读为"要离开我"的信号;一个渴望被认可的角色,会把对方的沉默误读为"看不起我"。当误会被解开时,角色不仅理解了对方的真实意图,也被迫面对自己的内心——"原来我这么害怕失去你"或"原来我这么需要你的认可"。
204
-
205
- **效果:** 这种技巧让误会场景同时完成两个叙事任务:推进外部冲突和揭示内心真相。误会的解开不仅是信息的修正,更是自我认知的突破。这是将误会从情节装置提升为角色发展工具的关键方法。