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,204 +0,0 @@
1
- # Forgiveness (原谅)
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
- - 用触发物(trigger)打断原谅的进程——某个场景、某句话突然唤起痛苦记忆
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
- ### 变体2:自我原谅(原谅自己的过错)
77
-
78
- 有时候最难原谅的人是自己。角色因为过去的错误而深陷自责,自我原谅的旅程往往比原谅他人更加艰难。
79
-
80
- **示例场景:** 一个医生因为一次误诊导致病人去世,多年来活在自责中。直到他遇到病人的家属,家属早已释怀,反而是他自己无法放过自己。最终他在病人墓前说出:"我允许自己继续行医,继续活下去。"
81
-
82
- **写作要点:** 自我原谅的关键障碍是"我不配被原谅"的信念。打破这个信念需要外部催化剂——通常是另一个角色的视角。
83
-
84
- ### 变体3:无声的原谅(不说出口的和解)
85
-
86
- 原谅不一定需要语言。有时候一个动作、一个选择就足以传达一切。这种变体特别适合内敛的角色或东方文化背景的故事。
87
-
88
- **示例场景:** 父子多年不和,父亲从未道歉,儿子也从未说过"我原谅你"。但在父亲生病住院时,儿子每天来送饭,默默地削一个苹果放在床头。父亲吃了,什么都没说。这就是他们的和解。
89
-
90
- **写作要点:** 无声原谅的关键是选择正确的"替代语言"——一个具体的、有象征意义的动作。这个动作应该与之前的伤害或两人的共同记忆有关联。
91
-
92
- ### 变体4:死后原谅(对已故之人的释怀)
93
-
94
- 当伤害者已经去世,原谅变成了一场单方面的内心旅程。没有对话的可能,没有悔改的机会,受害者必须独自完成这个过程。
95
-
96
- **示例场景:** 女儿一直怨恨抛弃家庭的母亲。母亲去世后,女儿在整理遗物时发现了一箱从未寄出的信——母亲这些年一直在写信给她,记录着她成长的每一个节点。女儿在空荡荡的房间里读完所有的信,然后轻声说:"妈,我知道了。"
97
-
98
- **写作要点:** 死后原谅的催化剂通常是"新信息"——遗物、他人的讲述、日记等。这些信息不一定能完全解释伤害,但足以让受害者看到伤害者的另一面。
99
-
100
- ---
101
-
102
- ## 情感真实性
103
-
104
- 如何让原谅场景令读者信服?关键在于以下几个层面:
105
-
106
- ### 时间的重量
107
-
108
- 原谅需要时间。在叙事中,不要让原谅发生在伤害之后的下一个场景。中间需要有足够的"消化期"——角色经历愤怒、悲伤、麻木、反思等阶段。即使是快节奏的故事,也可以通过时间跳跃或内心独白来暗示时间的流逝。
109
-
110
- ### 身体反应的真实
111
-
112
- 原谅的时刻往往伴随着强烈的身体反应。不要只写情绪,要写身体:手在发抖、喉咙发紧、突然觉得很累(因为放下了长期紧绷的防御)。一个好的技巧是写原谅之后的"虚脱感"——长期的愤怒消散后,角色感到前所未有的疲惫。
113
-
114
- ### 反复与退步
115
-
116
- 真实的原谅过程不是线性的。角色可能今天觉得自己已经释怀了,明天又因为一个小细节而重新愤怒。这种反复不是软弱,而是真实。在写作中,设计一到两次"退步"会让原谅的最终达成更有说服力。
117
-
118
- ### 原谅的代价
119
-
120
- 原谅不是免费的。它可能意味着放弃复仇的快感、承认自己的脆弱、或者面对"如果我早点原谅会怎样"的遗憾。让读者看到原谅的代价,才能感受到原谅的重量。
121
-
122
- ---
123
-
124
- ## 示例分析
125
-
126
- ### 示例1:《悲惨世界》(Les Miserables) —— 主教对冉阿让的原谅
127
-
128
- **背景:** 冉阿让 (Jean Valjean) 在主教米里哀 (Bishop Myriel) 家借宿后偷走了银器。被警察抓获带回时,主教不仅没有指控他,反而说银器是自己送给他的,还把银烛台也给了他。
129
-
130
- **为什么有效:**
131
- - **伤害的真实性:** 冉阿让确实偷了东西,这是不可否认的事实
132
- - **超越期待的回应:** 主教的反应完全出乎所有人的预料——不是原谅("我不追究了"),而是赠予("这本来就是给你的")。这把原谅提升到了一个更高的层次
133
- - **改变的催化:** 这次原谅成为冉阿让人生的转折点。主教的一句"我买下了你的灵魂,把它从黑暗中赎出,交给上帝"赋予了原谅以使命感
134
- - **长期回响:** 这个原谅的影响贯穿整部小说,冉阿让此后的每一个善举都是对这份原谅的回应
135
-
136
- **写作启示:** 最强大的原谅不仅仅是"放下",而是"给予"。主教给了冉阿让的不只是银器,而是一个重新做人的机会。
137
-
138
- ### 示例2:现代小说场景 —— 职场背叛后的和解
139
-
140
- **背景:** 陈默和林薇是大学室友兼创业伙伴。公司发展关键期,林薇为了个人利益将核心技术泄露给竞争对手,导致公司几乎破产。陈默独自撑过了最艰难的时期,三年后公司重新站稳脚跟。
141
-
142
- **原谅场景:** 三年后,林薇在陈默公司楼下等了三天。陈默终于同意见面。林薇没有解释,没有求原谅,只是把一个U盘放在桌上——里面是她这三年在竞争对手公司暗中收集的、对方侵权的所有证据。
143
-
144
- 陈默看着U盘,沉默了很久。"你知道那一年我瘦了二十斤吗?"林薇点头。又是长久的沉默。最后陈默说:"证据我收下。但我们之间的事……我需要时间。"
145
-
146
- 半年后,陈默给林薇发了一条消息:"新公司缺一个技术顾问,外聘的那种。你考虑一下。"不是合伙人,不是朋友,而是一个有边界的、新的开始。
147
-
148
- **为什么有效:**
149
- - **时间跨度:** 三年的间隔让原谅有了重量
150
- - **行动代替语言:** 林薇用三年的行动(收集证据)代替了空洞的道歉
151
- - **不完全的原谅:** 陈默没有说"我原谅你",而是用一个有限度的邀请表达了释怀
152
- - **关系的新形态:** 从合伙人到外聘顾问,关系降级但没有断裂
153
-
154
- ---
155
-
156
- ## 写作提示
157
-
158
- ### 五个设计问题
159
-
160
- 在写原谅场景之前,先回答以下问题:
161
-
162
- 1. **伤害的本质是什么?** 是信任的背叛、身体的伤害、还是情感的忽视?不同类型的伤害需要不同形式的原谅。
163
- 2. **角色为什么现在选择原谅?** 是什么触发了这个时刻?新的信息、时间的流逝、还是自身的成长?确保触发点具体且可信。
164
- 3. **原谅的代价是什么?** 角色为了原谅需要放弃什么?也许是正义感、受害者身份、或者长期维持的愤怒(愤怒有时是一种保护机制)。
165
- 4. **原谅之后关系会变成什么样?** 是更亲密、保持距离、还是彻底分开?提前想清楚这一点,避免写出虎头蛇尾的和解。
166
- 5. **这个原谅对角色弧线 (character arc) 意味着什么?** 原谅应该是角色成长的体现,而不是情节的便利工具。它如何改变了角色对自己和世界的认知?
167
-
168
- ### 五项检查清单
169
-
170
- 写完原谅场景后,用以下清单检验:
171
-
172
- - [ ] **伤害有足够的铺垫吗?** 读者是否能感受到伤害的重量,还是觉得"这有什么大不了的"?
173
- - [ ] **原谅的过程有挣扎吗?** 角色是否经历了犹豫、反复、甚至退步,还是一帆风顺地就原谅了?
174
- - [ ] **原谅是角色自己的选择吗?** 是内心驱动的决定,还是被外部压力推动的?
175
- - [ ] **原谅后的关系有变化吗?** 关系是否以一种新的、不同于从前的形态继续存在?
176
- - [ ] **场景有身体感和画面感吗?** 是否有具体的动作、环境、感官细节,还是只有对话和内心独白?
177
-
178
- ---
179
-
180
- ## 进阶技巧
181
-
182
- ### 技巧1:错位原谅 (Misaligned Forgiveness)
183
-
184
- 让原谅的双方处于不同的情感阶段。比如:伤害者已经原谅了自己并且向前看了,但受害者还在痛苦中;或者受害者已经准备好原谅了,但伤害者却因为自责而无法接受原谅。
185
-
186
- **实操方法:** 设计一个场景,让一方说出"我原谅你"或"请原谅我",但另一方的反应完全不是预期的。比如受害者说"我原谅你了",伤害者却崩溃了——因为他觉得自己不配被原谅。这种错位创造了意想不到的情感深度。
187
-
188
- **效果:** 打破读者对原谅场景的预期模式,创造更复杂的情感层次。同时也更真实——现实中,两个人很少同时到达同一个情感节点。
189
-
190
- ### 技巧2:环境映射 (Environmental Mirroring)
191
-
192
- 用环境和物件来外化原谅的内心过程。不要让角色直接说出自己的感受,而是通过与环境的互动来展示。
193
-
194
- **实操方法:** 选择一个与伤害事件有关联的地点或物件。比如伤害发生在雨天,那么原谅的场景也设在雨天——但这次角色的反应不同了。或者角色一直保留着某个与伤害相关的物件(一封信、一张照片),原谅的时刻通过处理这个物件来体现——不一定是扔掉(太刻意),也许是把它从抽屉深处移到了书架上(从隐藏到坦然面对)。
195
-
196
- **效果:** 避免直白的情感宣泄,用含蓄的方式传达更深的情感。这种"少即是多"的手法尤其适合东方审美和内敛型角色。
197
-
198
- ### 技巧3:连锁原谅 (Chain Forgiveness)
199
-
200
- 将原谅设计为一个连锁反应——A 原谅了 B,这个原谅给了 B 力量去原谅 C,或者原谅了自己。一个原谅的行为像涟漪一样扩散,影响多个角色和关系线。
201
-
202
- **实操方法:** 在多线叙事中,让不同角色面对各自的原谅课题。然后设计一个关键的原谅事件作为"第一块多米诺骨牌"。比如:主角原谅了父亲 → 父亲因此有勇气向祖母道歉 → 祖母在临终前放下了对已故丈夫的怨恨。每一环的原谅都有自己的完整弧线,但又相互关联。
203
-
204
- **效果:** 将单一的情感节拍升级为贯穿全书的主题结构。原谅不再只是一个场景,而是整个故事的情感脊柱。这种技巧特别适合家族叙事和多代际故事。
@@ -1,204 +0,0 @@
1
- # Betrayal (背叛)
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
-
38
- ### 3. 揭露方式:如何发现背叛
39
-
40
- 背叛的揭露方式直接决定了场景的情感基调和戏剧张力。不同的揭露方式会带来完全不同的阅读体验。
41
-
42
- **三种基本模式:**
43
- - **自己发现:** 角色通过蛛丝马迹逐渐拼凑出真相。这种方式的张力在于"不愿相信"与"证据确凿"之间的拉扯
44
- - **被第三方告知:** 由局外人揭露真相。这种方式的张力在于"信谁"的困境——是相信告密者还是相信被指控的人
45
- - **背叛者主动坦白:** 背叛者自己说出真相。这种方式最复杂,因为坦白本身就包含了悔恨、勇气或更深层的算计
46
-
47
- ### 4. 情感反应:被背叛后的心理过程
48
-
49
- 被背叛者的反应不是单一的愤怒,而是一个复杂的情感序列。写好这个序列是背叛场景成功的关键。
50
-
51
- **典型的情感阶段:**
52
- - **震惊与否认:** "这不可能。""你在开玩笑吧。"大脑拒绝接受现实
53
- - **愤怒:** 当否认无法维持时,愤怒如潮水般涌来。这种愤怒往往指向自己——"我怎么这么蠢"
54
- - **悲伤:** 愤怒退去后,是深沉的悲伤。不仅为失去的关系悲伤,也为失去的那个"以为存在的世界"悲伤
55
- - **自我怀疑:** 最隐蔽也最持久的伤害。"如果我连最信任的人都看错了,我还能相信自己的判断吗?"
56
-
57
- ---
58
-
59
- ## 常见套路(应避免)
60
-
61
- - ❌ **纯粹的恶意背叛(无复杂动机):** 背叛者仅仅因为"坏"而背叛,没有任何内心挣扎或可理解的理由。这种处理方式把背叛降格为简单的善恶对立,浪费了这个节拍最有价值的部分——道德灰色地带。即使是最冷酷的背叛,背后也应该有一个让读者停下来思考的"为什么"。
62
- - ❌ **立刻原谅(太轻易):** 被背叛者在得知真相后很快就原谅了对方,好像信任的破裂可以用一句"我理解"来修补。这不仅不真实,还会让之前建立信任的所有铺垫变得毫无意义。真正的信任重建是一个漫长的、充满反复的过程。
63
- - ❌ **背叛者毫无愧疚(缺乏人性):** 背叛者做完一切后毫无心理负担,仿佛背叛的是一个陌生人而非曾经信任的人。除非角色被刻意塑造为反社会人格,否则愧疚——哪怕是被压抑的、被合理化的愧疚——应该存在。愧疚的存在让背叛者成为一个完整的人,而非一个功能性的情节工具。
64
- - ❌ **一次性揭露(没有层次):** 背叛的全部真相在一个场景中一次性倾倒出来。这种处理方式浪费了"逐层剥开"的戏剧潜力。更有效的做法是让真相分阶段揭露——每一层新的真相都比上一层更令人震惊,每一次以为已经知道全部的时候,又发现还有更深的秘密。
65
-
66
- ---
67
-
68
- ## 新颖变体
69
-
70
- ### 变体1:分层揭露(逐渐发现背叛的程度)
71
-
72
- 背叛的真相不是一次性揭开,而是像剥洋葱一样一层一层地暴露。每一层都让被背叛者以为已经触底,但下一层又把底线往下推。
73
-
74
- **示例场景:** 苏晨发现合伙人张远私下接触了竞争对手。他愤怒但还能理解——也许只是试探市场。然后他发现张远已经签了意向书。震惊之余,他开始调查,发现张远转移了公司三成的客户资源。当他以为这就是全部时,公司法务告诉他:张远两年前就注册了一家影子公司,所有的"合作项目"利润都流向了那里。最后的致命一击——那家影子公司的联合创始人,是苏晨的妻子。
75
-
76
- **写作要点:** 每一层揭露之间需要有"消化期"。不要让真相像连珠炮一样砸出来,给角色(和读者)时间去感受每一层的重量。每一层揭露都应该改变角色对整件事的理解框架。
77
-
78
- ### 变体2:善意的背叛(为了保护对方而背叛)
79
-
80
- 背叛者的动机不是自私,而是保护。他们相信背叛是唯一能保护对方的方式,即使这意味着永远失去对方的信任。
81
-
82
- **示例场景:** 地下组织的领袖林岚向敌方出卖了自己最亲密的战友何铮的藏身地点。何铮被捕入狱,在狱中度过了三年,带着对林岚刻骨的恨意。出狱后他才从第三方口中得知:当时组织已经被全面渗透,所有人都在清洗名单上。林岚用出卖何铮的方式让敌方相信自己是叛徒,换取了何铮"只是被关押而非被处决"的结果。而林岚自己,在何铮入狱的第二年就被真正的叛徒杀害了。
83
-
84
- **写作要点:** 善意背叛的关键张力在于"得知真相后的复杂情感"。被背叛者无法简单地转怒为感激——因为即使动机是好的,伤害是真实的。那三年的牢狱之灾、那些恨意煎熬的夜晚,不会因为真相大白就消失。
85
-
86
- ### 变体3:双向背叛(双方都背叛了对方)
87
-
88
- 两个人都背叛了对方,只是方式不同、时间不同。当双方的背叛同时暴露时,道德高地瞬间崩塌,没有人是纯粹的受害者。
89
-
90
- **示例场景:** 夫妻二人经营一家餐厅。妻子发现丈夫偷偷把餐厅的配方卖给了连锁品牌,怒不可遏地质问他。丈夫沉默了一会儿,然后问:"那你告诉我,装修贷款的那笔钱去了哪里?"妻子的脸色变了——她挪用了那笔钱给自己重病的母亲治病,一直瞒着丈夫。两个人站在餐厅的厨房里,中间隔着一张不锈钢操作台,谁都说不出"你怎么能这样"这句话,因为他们都知道自己也做了同样的事。
91
-
92
- **写作要点:** 双向背叛的力量在于它摧毁了"受害者叙事"。当双方都有错时,故事从"谁对谁错"转向了更深层的问题——"我们的关系出了什么问题,让我们都选择了隐瞒而非坦诚?"这种变体特别适合探讨关系中的权力结构和沟通失败。
93
-
94
- ### 变体4:自我背叛(背叛自己的原则)
95
-
96
- 最深层的背叛不是来自他人,而是来自自己。角色在压力下做出了违背自己核心信念的选择,然后必须面对镜子中那个陌生的自己。
97
-
98
- **示例场景:** 记者周言一直以"绝不妥协"为职业信条。她花了八个月调查一起企业污染案,掌握了确凿的证据。但在发稿前夜,企业方找到她,不是威胁,而是告诉她:如果报道发出,工厂关闭,三千名工人将失业,其中包括她采访过的、刚给女儿攒够大学学费的老张。周言最终删掉了报道。没有人逼她,没有人威胁她,这完全是她自己的选择。但从那天起,她再也无法直视自己的记者证。
99
-
100
- **写作要点:** 自我背叛的核心痛苦是"无处归咎"。没有外部敌人可以愤怒,没有他人可以怨恨,所有的审判都来自内心。写这种变体时,要特别注意避免让角色的选择显得愚蠢——读者应该能理解为什么角色做出了这个选择,甚至承认"如果是我,可能也会这样做"。
101
-
102
- ---
103
-
104
- ## 情感真实性
105
-
106
- 如何让背叛场景令读者信服?关键在于以下几个层面:
107
-
108
- ### 信任的具体化
109
-
110
- 不要告诉读者"他们很信任彼此",要展示信任的具体形态。信任是把家门钥匙交给对方、是在手术同意书上签下对方的名字、是把未完成的手稿交给对方保管。当这些具体的信任被背叛时,读者能感受到的不是抽象的"信任破裂",而是"那把钥匙现在握在一个不该握它的人手里"的具体恐惧。
111
-
112
- ### 背叛前的微妙征兆
113
-
114
- 最好的背叛场景在回头看时是有迹可循的。在背叛揭露之前,埋下细微的线索——一个回避的眼神、一次不自然的沉默、一个被迅速岔开的话题。这些征兆不应该明显到让读者提前猜到,但应该在真相揭露后让读者恍然大悟:"原来那时候就已经开始了。"
115
-
116
- ### 身体语言的崩塌
117
-
118
- 被背叛的瞬间,身体往往比语言先做出反应。不要急着写对话,先写身体:膝盖突然发软、耳朵里嗡嗡作响、手指不自觉地攥紧又松开、胃部像被人猛击了一拳。这些生理反应比任何台词都更能传达背叛的冲击力。
119
-
120
- ### 世界观的瓦解
121
-
122
- 背叛摧毁的不仅是一段关系,还有被背叛者对世界的基本认知。"如果他会骗我,那之前的一切都是假的吗?"这种对过去的全面质疑是背叛最深层的伤害。写好这一点,需要让角色重新审视过去的每一个"美好瞬间"——那些曾经温暖的记忆,现在都蒙上了一层可疑的阴影。
123
-
124
- ---
125
-
126
- ## 示例分析
127
-
128
- ### 示例1:《无间道》(Infernal Affairs) —— 双重卧底的身份背叛
129
-
130
- **背景:** 陈永仁 (梁朝伟饰) 是警方安插在黑帮中的卧底,刘建明 (刘德华饰) 是黑帮安插在警队中的内鬼。两人各自背叛了自己所处的阵营,同时又在为各自的"真正归属"效忠。
131
-
132
- **为什么有效:**
133
- - **双重身份的撕裂:** 两个主角都活在持续的背叛状态中。陈永仁每天与黑帮兄弟称兄道弟,内心却在出卖他们;刘建明在警队中受人尊敬,却在暗中传递情报。这种日常化的背叛比单一事件的背叛更具侵蚀性
134
- - **自我认同的危机:** 长期的卧底生活让两人都开始质疑"我到底是谁"。陈永仁想做回好人却被困在黑暗中,刘建明想成为真正的好警察却无法摆脱过去。背叛不仅指向他人,更指向自我
135
- - **信任的不可能:** 整部电影中没有一段关系是建立在完全真实之上的。每一次握手、每一句承诺都可能是谎言。这种弥漫性的不信任创造了令人窒息的氛围
136
- - **天台对峙的张力:** 当两个卧底最终面对面时,观众意识到:他们是彼此的镜像。一个想回头却回不了头,一个不想回头却被迫面对。背叛的悲剧在于,没有人是赢家
137
-
138
- **写作启示:** 最深刻的背叛故事不是关于"好人被坏人出卖",而是关于"每个人都在背叛某些东西"。当背叛成为生存的常态,真正的悲剧是人失去了"不背叛"的能力。
139
-
140
- ### 示例2:现代小说场景 —— 师徒之间的理念背叛
141
-
142
- **背景:** 方教授是国内顶尖的古建筑保护专家,陆遥是他最得意的学生,师徒二人共同守护了十几座濒危古建筑。方教授的信条是"一砖一瓦都不能动,原样保存才是保护"。
143
-
144
- **背叛场景:** 方教授出国交流三个月,回来后发现陆遥主导了一个"活化利用"项目——把他们共同保护的一座明代祠堂改造成了社区文化中心。祠堂的主体结构保留了,但内部加装了现代设施,院子里搭了玻璃顶棚,孩子们在里面上书法课。
145
-
146
- 方教授站在祠堂门口,看着崭新的玻璃顶棚下嬉笑的孩子们,一句话都说不出来。陆遥站在他身后,轻声说:"老师,它活了。再不这样做,明年就要被拆了。"方教授没有回头,只说了一句:"你知道我最不能接受的是什么吗?不是你改了它。是你没有告诉我。"
147
-
148
- **为什么有效:**
149
- - **理念冲突而非道德缺陷:** 陆遥不是为了私利,而是出于对古建筑的另一种理解。两种保护理念都有道理,这让背叛变得无法简单评判
150
- - **信任的核心被击中:** 方教授最痛的不是祠堂被改造,而是"你没有告诉我"——师徒之间最基本的尊重和坦诚被绕过了
151
- - **无法否认的现实:** 孩子们的笑声是最残酷的反驳。方教授无法说"你做错了",因为眼前的画面证明了陆遥的选择有其价值
152
- - **关系的不可逆转:** 这不是一个可以道歉就解决的问题。师徒二人的分歧是根本性的,背叛只是让这个分歧以最痛苦的方式浮出水面
153
-
154
- ---
155
-
156
- ## 写作提示
157
-
158
- ### 五个设计问题
159
-
160
- 在写背叛场景之前,先回答以下问题:
161
-
162
- 1. **信任是如何建立的?** 在背叛发生之前,两个角色之间的信任有多深?这份信任是通过什么具体事件建立的?如果你无法列出至少两个信任建立的关键场景,说明铺垫不够。
163
- 2. **背叛者的内心世界是什么样的?** 他在背叛的那一刻在想什么?他是否犹豫过?他如何说服自己这样做是对的(或者必要的)?如果你无法回答这些问题,你的背叛者还不够立体。
164
- 3. **被背叛者最脆弱的地方在哪里?** 背叛之所以致命,是因为它击中了最没有防备的地方。这个角色最害怕什么?最珍视什么?背叛是否精准地击中了这个要害?
165
- 4. **揭露的时机为什么是现在?** 为什么背叛在这个时间点被发现?是偶然还是必然?时机本身是否增加了戏剧张力(比如在最需要信任的时刻发现背叛)?
166
- 5. **背叛之后,这段关系的走向是什么?** 是彻底决裂、艰难修复、还是以一种全新的形态继续?提前想清楚终点,才能设计好从背叛到结局的情感弧线。
167
-
168
- ### 五项检查清单
169
-
170
- 写完背叛场景后,用以下清单检验:
171
-
172
- - [ ] **信任铺垫充分吗?** 读者是否在背叛发生前真正相信了这段关系的牢固?如果读者早就觉得"这个人不可信",背叛就没有冲击力。
173
- - [ ] **背叛者有复杂的动机吗?** 背叛的原因是否超越了简单的善恶二分?读者是否能在愤怒之余理解(哪怕不认同)背叛者的选择?
174
- - [ ] **情感反应有层次吗?** 被背叛者的反应是否经历了多个阶段(震惊、否认、愤怒、悲伤、自我怀疑),而不是单一的情绪爆发?
175
- - [ ] **场景有感官细节吗?** 是否有具体的身体反应、环境描写、物件细节,还是只有对话和内心独白?
176
- - [ ] **背叛改变了什么?** 背叛之后,角色的世界观、自我认知、或行为模式是否发生了不可逆的变化?如果一切照旧,这个背叛就没有真正的叙事重量。
177
-
178
- ---
179
-
180
- ## 进阶技巧
181
-
182
- ### 技巧1:读者先知(Dramatic Irony)
183
-
184
- 让读者比被背叛者更早知道背叛的存在。当读者已经知道真相,却只能眼睁睁看着角色继续信任背叛者时,产生的焦虑和心痛远超事后揭露的震惊。
185
-
186
- **实操方法:** 在背叛揭露之前,插入背叛者的视角章节,让读者看到他的秘密行动和内心挣扎。然后切回被背叛者的视角——他还在毫无防备地信任对方,甚至在为对方辩护。读者想要大喊"别相信他!"却无能为力。这种无力感会转化为强烈的情感投入。
187
-
188
- **效果:** 将背叛从一个"惊喜时刻"转变为一个"持续的煎熬过程"。读者不再是被动的接受者,而是焦虑的知情者。每一个信任的场景都变成了倒计时,每一次亲密的互动都带着即将破碎的悲剧感。这种技巧特别适合长篇小说,因为它能在数个章节中持续制造张力。
189
-
190
- ### 技巧2:回忆重构(Memory Reframing)
191
-
192
- 在背叛揭露之后,让被背叛者重新回忆过去的场景——但这一次,同样的画面有了完全不同的含义。曾经温暖的记忆变成了精心设计的骗局,曾经感动的瞬间变成了别有用心的表演。
193
-
194
- **实操方法:** 选取之前叙事中出现过的两到三个关键场景(读者也记得的场景),在背叛揭露后让角色重新回忆这些场景。但这一次,用新的认知重新解读每一个细节:"那天他说加班,其实是去见了对方。""她送我的生日礼物,原来是用那笔钱买的。""他那次替我挡酒,不是因为关心我,是因为他需要我保持清醒来签那份合同。"
195
-
196
- **效果:** 这种技巧的力量在于它"污染"了读者已有的阅读记忆。读者会和角色一起经历那种"过去被篡改"的眩晕感——明明是同样的事件,却因为一个新信息而面目全非。这比单纯描写"他很痛苦"要有效得多,因为读者自己也在经历认知的崩塌。
197
-
198
- ### 技巧3:沉默的对峙(Silent Confrontation)
199
-
200
- 在背叛揭露的关键场景中,用沉默代替爆发。不写大段的质问和辩解,而是用克制的、几乎无声的对峙来传达最强烈的情感。
201
-
202
- **实操方法:** 当被背叛者面对背叛者时,不要让他们立刻爆发。让场景从一个日常动作开始——泡茶、收拾桌子、系鞋带。被背叛者用平静得不正常的语气说出一个事实(不是质问):"我看到了那封邮件。"然后是漫长的沉默。在这段沉默中,用环境细节填充——窗外的雨声、冰箱的嗡鸣、墙上时钟的滴答。让沉默本身成为最有力的控诉。背叛者的每一个微小动作——吞咽、移开视线、手指微微颤抖——都在沉默中被无限放大。
203
-
204
- **效果:** 沉默比咆哮更有杀伤力。当一个人愤怒到极点时,往往不是大喊大叫,而是异常平静——因为情感已经超出了语言能承载的范围。这种克制的处理方式不仅更真实,也给读者留下了更大的想象空间。读者会在沉默中填入自己的情感,这比作者直接描写更有穿透力。