novelws 3.1.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 (358) hide show
  1. package/CHANGELOG.md +115 -564
  2. package/README.md +81 -598
  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 +18 -103
  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 +18 -52
  10. package/dist/commands/upgrade.js.map +1 -1
  11. package/dist/core/config.d.ts +7 -36
  12. package/dist/core/config.d.ts.map +1 -1
  13. package/dist/core/config.js +11 -38
  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 +7 -73
  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 -556
  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/config/keyword-mappings.json +0 -226
  127. package/templates/knowledge/audit-config.json +0 -26
  128. package/templates/knowledge/character-profiles.md +0 -152
  129. package/templates/knowledge/character-voices.md +0 -137
  130. package/templates/knowledge/locations.md +0 -184
  131. package/templates/knowledge/world-setting.md +0 -121
  132. package/templates/knowledge-base/README.md +0 -285
  133. package/templates/knowledge-base/character-archetypes/01-hero.md +0 -233
  134. package/templates/knowledge-base/character-archetypes/02-mentor.md +0 -177
  135. package/templates/knowledge-base/character-archetypes/03-shadow.md +0 -221
  136. package/templates/knowledge-base/character-archetypes/04-ally.md +0 -178
  137. package/templates/knowledge-base/character-archetypes/05-shapeshifter.md +0 -177
  138. package/templates/knowledge-base/character-archetypes/06-trickster.md +0 -181
  139. package/templates/knowledge-base/character-archetypes/07-threshold-guardian.md +0 -177
  140. package/templates/knowledge-base/character-archetypes/08-herald.md +0 -180
  141. package/templates/knowledge-base/character-archetypes/09-father.md +0 -249
  142. package/templates/knowledge-base/character-archetypes/10-mother.md +0 -202
  143. package/templates/knowledge-base/character-archetypes/11-child.md +0 -183
  144. package/templates/knowledge-base/character-archetypes/12-sage.md +0 -202
  145. package/templates/knowledge-base/character-archetypes/README.md +0 -60
  146. package/templates/knowledge-base/character-archetypes/application-guide.md +0 -222
  147. package/templates/knowledge-base/character-archetypes/archetype-combinations.md +0 -242
  148. package/templates/knowledge-base/character-archetypes/config.yaml +0 -28
  149. package/templates/knowledge-base/character-archetypes/examples-analysis.md +0 -223
  150. package/templates/knowledge-base/craft/character-arc.md +0 -1153
  151. package/templates/knowledge-base/craft/dialogue.md +0 -1170
  152. package/templates/knowledge-base/craft/hook-design.md +0 -345
  153. package/templates/knowledge-base/craft/pacing.md +0 -1200
  154. package/templates/knowledge-base/craft/power-system.md +0 -254
  155. package/templates/knowledge-base/craft/scene-structure.md +0 -1136
  156. package/templates/knowledge-base/craft/show-not-tell.md +0 -1012
  157. package/templates/knowledge-base/craft/story-structures.md +0 -134
  158. package/templates/knowledge-base/craft/tension-management.md +0 -168
  159. package/templates/knowledge-base/emotional-beats/01-first-meeting.md +0 -145
  160. package/templates/knowledge-base/emotional-beats/02-bonding-moment.md +0 -226
  161. package/templates/knowledge-base/emotional-beats/03-declaration.md +0 -284
  162. package/templates/knowledge-base/emotional-beats/04-triumph.md +0 -240
  163. package/templates/knowledge-base/emotional-beats/05-reunion.md +0 -396
  164. package/templates/knowledge-base/emotional-beats/06-forgiveness.md +0 -204
  165. package/templates/knowledge-base/emotional-beats/07-betrayal.md +0 -204
  166. package/templates/knowledge-base/emotional-beats/08-loss.md +0 -214
  167. package/templates/knowledge-base/emotional-beats/09-rejection.md +0 -254
  168. package/templates/knowledge-base/emotional-beats/10-failure.md +0 -244
  169. package/templates/knowledge-base/emotional-beats/11-misunderstanding.md +0 -205
  170. package/templates/knowledge-base/emotional-beats/12-farewell.md +0 -283
  171. package/templates/knowledge-base/emotional-beats/13-revelation.md +0 -242
  172. package/templates/knowledge-base/emotional-beats/14-point-of-no-return.md +0 -215
  173. package/templates/knowledge-base/emotional-beats/15-dark-night.md +0 -244
  174. package/templates/knowledge-base/emotional-beats/16-sacrifice.md +0 -246
  175. package/templates/knowledge-base/emotional-beats/17-awakening.md +0 -246
  176. package/templates/knowledge-base/emotional-beats/18-confrontation.md +0 -217
  177. package/templates/knowledge-base/emotional-beats/19-bittersweet-goodbye.md +0 -368
  178. package/templates/knowledge-base/emotional-beats/20-moral-dilemma.md +0 -248
  179. package/templates/knowledge-base/emotional-beats/21-temptation.md +0 -240
  180. package/templates/knowledge-base/emotional-beats/22-redemption.md +0 -210
  181. package/templates/knowledge-base/emotional-beats/README.md +0 -104
  182. package/templates/knowledge-base/emotional-beats/beat-sequences.md +0 -276
  183. package/templates/knowledge-base/emotional-beats/config.yaml +0 -30
  184. package/templates/knowledge-base/emotional-beats/pacing-guide.md +0 -390
  185. package/templates/knowledge-base/genres/game-lit.md +0 -174
  186. package/templates/knowledge-base/genres/historical.md +0 -1127
  187. package/templates/knowledge-base/genres/horror.md +0 -211
  188. package/templates/knowledge-base/genres/military.md +0 -209
  189. package/templates/knowledge-base/genres/mystery.md +0 -1123
  190. package/templates/knowledge-base/genres/rebirth.md +0 -177
  191. package/templates/knowledge-base/genres/revenge.md +0 -846
  192. package/templates/knowledge-base/genres/romance.md +0 -948
  193. package/templates/knowledge-base/genres/sci-fi.md +0 -156
  194. package/templates/knowledge-base/genres/sports.md +0 -216
  195. package/templates/knowledge-base/genres/thriller.md +0 -166
  196. package/templates/knowledge-base/genres/urban.md +0 -170
  197. package/templates/knowledge-base/genres/workplace.md +0 -214
  198. package/templates/knowledge-base/genres/wuxia.md +0 -143
  199. package/templates/knowledge-base/genres/xuanhuan.md +0 -234
  200. package/templates/knowledge-base/genres/youth.md +0 -219
  201. package/templates/knowledge-base/references/README.md +0 -96
  202. package/templates/knowledge-base/references/china-1920s/culture.md +0 -423
  203. package/templates/knowledge-base/references/china-1920s/daily-life.md +0 -616
  204. package/templates/knowledge-base/references/china-1920s/overview.md +0 -298
  205. package/templates/knowledge-base/references/china-1920s/society.md +0 -703
  206. package/templates/knowledge-base/references/china-1920s/warlords.md +0 -427
  207. package/templates/knowledge-base/references/cultivation-world/daily-life.md +0 -108
  208. package/templates/knowledge-base/references/cultivation-world/overview.md +0 -64
  209. package/templates/knowledge-base/references/cultivation-world/power-system.md +0 -108
  210. package/templates/knowledge-base/references/cultivation-world/sects.md +0 -104
  211. package/templates/knowledge-base/references/cultivation-world/world-setting.md +0 -108
  212. package/templates/knowledge-base/references/modern-workplace/corporate.md +0 -115
  213. package/templates/knowledge-base/references/modern-workplace/daily-life.md +0 -129
  214. package/templates/knowledge-base/references/modern-workplace/overview.md +0 -73
  215. package/templates/knowledge-base/references/modern-workplace/relationships.md +0 -107
  216. package/templates/knowledge-base/references/modern-workplace/tech-industry.md +0 -131
  217. package/templates/knowledge-base/references/tang-dynasty/culture.md +0 -135
  218. package/templates/knowledge-base/references/tang-dynasty/daily-life.md +0 -139
  219. package/templates/knowledge-base/references/tang-dynasty/overview.md +0 -76
  220. package/templates/knowledge-base/references/tang-dynasty/politics.md +0 -121
  221. package/templates/knowledge-base/references/tang-dynasty/society.md +0 -126
  222. package/templates/knowledge-base/requirements/README.md +0 -240
  223. package/templates/knowledge-base/requirements/anti-ai-v3.md +0 -46
  224. package/templates/knowledge-base/requirements/anti-ai-v4-deprecated.md +0 -442
  225. package/templates/knowledge-base/requirements/anti-ai-v5-balanced.md +0 -203
  226. package/templates/knowledge-base/requirements/concretization.md +0 -90
  227. package/templates/knowledge-base/requirements/fast-paced.md +0 -552
  228. package/templates/knowledge-base/requirements/no-poison.md +0 -60
  229. package/templates/knowledge-base/requirements/romance-angst.md +0 -102
  230. package/templates/knowledge-base/requirements/romance-sweet.md +0 -63
  231. package/templates/knowledge-base/requirements/serious-literature.md +0 -45
  232. package/templates/knowledge-base/requirements/strong-emotion.md +0 -60
  233. package/templates/knowledge-base/styles/README.md +0 -302
  234. package/templates/knowledge-base/styles/ancient-style.md +0 -579
  235. package/templates/knowledge-base/styles/literary.md +0 -439
  236. package/templates/knowledge-base/styles/minimal.md +0 -472
  237. package/templates/knowledge-base/styles/natural-voice.md +0 -930
  238. package/templates/knowledge-base/styles/web-novel.md +0 -525
  239. package/templates/memory/personal-voice.md +0 -113
  240. package/templates/scripts/README.md +0 -187
  241. package/templates/scripts/bash/analyze-story.sh +0 -170
  242. package/templates/scripts/bash/check-analyze-stage.sh +0 -108
  243. package/templates/scripts/bash/check-consistency.sh +0 -463
  244. package/templates/scripts/bash/check-facts.sh +0 -214
  245. package/templates/scripts/bash/check-plot.sh +0 -374
  246. package/templates/scripts/bash/check-timeline.sh +0 -346
  247. package/templates/scripts/bash/check-world.sh +0 -395
  248. package/templates/scripts/bash/check-writing-state.sh +0 -854
  249. package/templates/scripts/bash/clarify-story.sh +0 -117
  250. package/templates/scripts/bash/common.sh +0 -151
  251. package/templates/scripts/bash/constitution.sh +0 -114
  252. package/templates/scripts/bash/generate-tasks.sh +0 -65
  253. package/templates/scripts/bash/init-tracking.sh +0 -183
  254. package/templates/scripts/bash/manage-relations.sh +0 -174
  255. package/templates/scripts/bash/migrate-tracking.sh +0 -183
  256. package/templates/scripts/bash/plan-story.sh +0 -100
  257. package/templates/scripts/bash/specify-story.sh +0 -93
  258. package/templates/scripts/bash/tasks-story.sh +0 -96
  259. package/templates/scripts/bash/test-word-count.sh +0 -182
  260. package/templates/scripts/bash/tests/bench-preload-cache.sh +0 -100
  261. package/templates/scripts/bash/tests/run-all-benchmarks.sh +0 -16
  262. package/templates/scripts/bash/tests/test-cache-semantics.sh +0 -199
  263. package/templates/scripts/bash/tests/test-cross-platform.sh +0 -35
  264. package/templates/scripts/bash/tests/test-edge-cases-bash.sh +0 -60
  265. package/templates/scripts/bash/tests/test-phase1-bash.sh +0 -28
  266. package/templates/scripts/bash/tests/test-preload-cache.sh +0 -123
  267. package/templates/scripts/bash/tests/test-regex-precompile.sh +0 -89
  268. package/templates/scripts/bash/tests/test-regression-bash.sh +0 -42
  269. package/templates/scripts/bash/tests/test-task6-verification.sh +0 -200
  270. package/templates/scripts/bash/text-audit.sh +0 -144
  271. package/templates/scripts/bash/track-progress.sh +0 -194
  272. package/templates/scripts/powershell/analyze-story.ps1 +0 -174
  273. package/templates/scripts/powershell/check-analyze-stage.ps1 +0 -110
  274. package/templates/scripts/powershell/check-consistency.ps1 +0 -138
  275. package/templates/scripts/powershell/check-facts.ps1 +0 -195
  276. package/templates/scripts/powershell/check-plot.ps1 +0 -139
  277. package/templates/scripts/powershell/check-timeline.ps1 +0 -112
  278. package/templates/scripts/powershell/check-writing-state.ps1 +0 -486
  279. package/templates/scripts/powershell/clarify-story.ps1 +0 -107
  280. package/templates/scripts/powershell/common.ps1 +0 -36
  281. package/templates/scripts/powershell/constitution.ps1 +0 -145
  282. package/templates/scripts/powershell/generate-tasks.ps1 +0 -70
  283. package/templates/scripts/powershell/init-tracking.ps1 +0 -98
  284. package/templates/scripts/powershell/manage-relations.ps1 +0 -134
  285. package/templates/scripts/powershell/migrate-tracking.ps1 +0 -145
  286. package/templates/scripts/powershell/plan-story.ps1 +0 -99
  287. package/templates/scripts/powershell/specify-story.ps1 +0 -85
  288. package/templates/scripts/powershell/tests/bench-ps-cache.ps1 +0 -80
  289. package/templates/scripts/powershell/tests/test-cross-platform.ps1 +0 -27
  290. package/templates/scripts/powershell/tests/test-edge-cases-ps.ps1 +0 -29
  291. package/templates/scripts/powershell/tests/test-phase1-ps.ps1 +0 -28
  292. package/templates/scripts/powershell/tests/test-ps-cache.ps1 +0 -73
  293. package/templates/scripts/powershell/tests/test-regression-ps.ps1 +0 -40
  294. package/templates/scripts/powershell/text-audit.ps1 +0 -102
  295. package/templates/scripts/powershell/track-progress.ps1 +0 -105
  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/specification-example.md +0 -146
  351. package/templates/tracking/story-facts.json +0 -5
  352. package/templates/tracking/summary/characters-summary.json +0 -7
  353. package/templates/tracking/summary/plot-summary.json +0 -13
  354. package/templates/tracking/summary/timeline-summary.json +0 -8
  355. package/templates/tracking/summary/volume-summaries.json +0 -5
  356. package/templates/tracking/tracking-log.md +0 -110
  357. package/templates/tracking/validation-rules.json +0 -128
  358. /package/templates/{memory → resources}/constitution.md +0 -0
@@ -1,134 +0,0 @@
1
- # 网文专用结构模板
2
-
3
- **适用条件**:`specification.md` 中的类型为网文类(玄幻、都市、言情、游戏文等)
4
-
5
- ## 结构 A:升级流(最常用)
6
-
7
- **核心循环**:修炼/积累 → 突破/升级 → 展示/打脸 → 新挑战
8
-
9
- **卷结构模板**:
10
- ```
11
- 每卷 20-40 章,遵循以下节奏:
12
-
13
- 开篇(1-3 章):
14
- - 进入新环境/新地图
15
- - 展示当前实力(让读者有基准)
16
- - 遭遇新挑战/新对手
17
-
18
- 发展(4-15 章):
19
- - 修炼/积累(穿插小冲突)
20
- - 获得机缘/资源
21
- - 小规模打脸(1-2 次)
22
- - 结识新角色/势力
23
-
24
- 升级(16-20 章):
25
- - 突破瓶颈
26
- - 境界提升
27
- - 能力展示
28
-
29
- 高潮(21-30 章):
30
- - 大规模冲突
31
- - 碾压式打脸
32
- - 解决本卷核心矛盾
33
-
34
- 收束(31-35 章):
35
- - 收获奖励
36
- - 为下一卷埋伏笔
37
- - 引出新地图/新挑战
38
- ```
39
-
40
- **爽点分布**:每 3-5 章一个小爽点,每 10-15 章一个大爽点
41
-
42
- ## 结构 B:副本流
43
-
44
- **核心循环**:进入副本 → 探索/解谜 → Boss 战 → 奖励/升级
45
-
46
- **卷结构模板**:
47
- ```
48
- 每卷 = 1 个副本(15-30 章)
49
-
50
- 准备期(1-3 章):
51
- - 副本信息获取
52
- - 组队/准备
53
- - 进入副本
54
-
55
- 探索期(4-12 章):
56
- - 副本环境描写
57
- - 小怪/陷阱/谜题
58
- - 队友互动/冲突
59
- - 获得线索/道具
60
-
61
- Boss 战(13-20 章):
62
- - Boss 登场(展示压倒性实力)
63
- - 苦战(队友受伤/计划失败)
64
- - 转机(主角发现弱点/觉醒新能力)
65
- - 击败 Boss
66
-
67
- 收获期(21-25 章):
68
- - 副本奖励分配
69
- - 升级/进化
70
- - 副本外的影响(名声/敌人)
71
- - 下一个副本的线索
72
- ```
73
-
74
- **爽点分布**:探索期每 2-3 章一个发现,Boss 战集中爽点
75
-
76
- ## 结构 C:任务流
77
-
78
- **核心循环**:接任务 → 执行 → 完成 → 奖励 → 新任务
79
-
80
- **卷结构模板**:
81
- ```
82
- 每卷包含 1 个主线任务 + 2-3 个支线任务
83
-
84
- 主线任务(贯穿全卷):
85
- - 任务发布(1-2 章)
86
- - 调查/准备(3-5 章)
87
- - 执行(6-15 章,穿插支线)
88
- - 意外/转折(16-20 章)
89
- - 完成/失败(21-25 章)
90
-
91
- 支线任务(穿插在主线中):
92
- - 每个支线 3-5 章
93
- - 提供资源/信息/人脉
94
- - 与主线有隐藏关联
95
- ```
96
-
97
- ## 结构 D:日常流
98
-
99
- **核心循环**:日常事件 → 角色互动 → 小冲突 → 成长/变化
100
-
101
- **卷结构模板**:
102
- ```
103
- 每卷围绕一个主题(如:学院生活、开店经营、种田发展)
104
-
105
- 日常展开(1-10 章):
106
- - 日常生活描写
107
- - 角色互动(重点)
108
- - 轻松幽默的小事件
109
- - 缓慢但持续的成长
110
-
111
- 冲突引入(11-15 章):
112
- - 打破日常的事件
113
- - 外部威胁或内部矛盾
114
- - 角色关系考验
115
-
116
- 解决与回归(16-20 章):
117
- - 解决冲突
118
- - 关系深化
119
- - 回归日常(但有变化)
120
- - 新的日常元素引入
121
- ```
122
-
123
- **爽点分布**:以情感满足和角色互动为主,战斗爽点为辅
124
-
125
- ## 结构选择建议
126
-
127
- | 故事类型 | 推荐结构 | 备选结构 |
128
- |---------|---------|---------|
129
- | 玄幻/修仙 | 升级流 | 副本流 |
130
- | 都市异能 | 任务流 | 升级流 |
131
- | 游戏/系统文 | 副本流 | 任务流 |
132
- | 种田/经营 | 日常流 | 任务流 |
133
- | 言情 | 日常流 | 任务流 |
134
- | 混合型 | 主线升级流 + 支线副本流 | — |
@@ -1,168 +0,0 @@
1
- # 张力管理 (Tension Management)
2
-
3
- ## 快速参考
4
-
5
- ### 核心定义
6
-
7
- **张力**:读者在阅读过程中感受到的紧张感、期待感和不确定感。张力是驱动读者继续阅读的核心动力。
8
-
9
- **张力公式**:张力 = 风险 × 不确定性 × 读者关心程度
10
-
11
- ### 四种张力来源
12
-
13
- ```
14
- 1. 信息不对称 — 读者知道角色不知道的(或反过来)
15
- 2. 时间压力 — 倒计时、截止日期、即将到来的威胁
16
- 3. 两难选择 — 没有完美答案的困境
17
- 4. 期待落差 — 读者期待 A,实际发生 B
18
- ```
19
-
20
- ---
21
-
22
- ## 信息不对称
23
-
24
- ### 类型
25
-
26
- | 类型 | 描述 | 张力来源 | 示例 |
27
- |------|------|---------|------|
28
- | 读者知道,角色不知道 | 戏剧性反讽 | 读者替角色着急 | 读者知道杯中有毒,角色即将喝下 |
29
- | 角色知道,读者不知道 | 悬念 | 读者想知道真相 | 角色看到信后表情大变,但不说内容 |
30
- | 角色 A 知道,角色 B 不知道 | 人际张力 | 读者期待揭露时刻 | A 知道 B 的秘密身份 |
31
- | 所有人都不知道 | 谜题 | 读者想解谜 | 连环失踪案,无人知道凶手 |
32
-
33
- ### 使用技巧
34
-
35
- - **逐步释放**:不要一次性揭示所有信息,分 3-5 次释放
36
- - **误导性线索**:释放部分真实信息 + 部分误导信息
37
- - **揭示时机**:在读者最想知道的时候延迟揭示,在读者快要失去耐心时揭示
38
- - **多层信息差**:同时维持 2-3 个不同的信息不对称
39
-
40
- ### 常见错误
41
-
42
- - ❌ 信息差维持太久,读者失去兴趣
43
- - ❌ 揭示太突然,没有铺垫
44
- - ❌ 揭示后张力完全消失(应该用新的信息差替代)
45
-
46
- ---
47
-
48
- ## 时间压力
49
-
50
- ### 设计原则
51
-
52
- 1. **明确的截止时间**:读者必须知道「还剩多少时间」
53
- 2. **严重的后果**:超时的后果必须让读者在意
54
- 3. **可见的进度**:读者能感受到时间在流逝
55
- 4. **意外的阻碍**:计划总是不如变化快
56
-
57
- ### 时间压力模板
58
-
59
- | 类型 | 时间尺度 | 适用场景 |
60
- |------|---------|---------|
61
- | 即时压力 | 秒-分钟 | 战斗、逃跑、拆弹 |
62
- | 短期压力 | 小时-天 | 任务期限、比赛倒计时 |
63
- | 中期压力 | 周-月 | 修炼期限、敌人来袭 |
64
- | 长期压力 | 年 | 诅咒倒计时、世界末日 |
65
-
66
- ### 递进技巧
67
-
68
- ```
69
- 初始:还有 30 天
70
- 中期:还有 7 天(发现新障碍)
71
- 后期:还有 3 天(计划失败,需要新方案)
72
- 高潮:还有 3 小时(最后一搏)
73
- ```
74
-
75
- ---
76
-
77
- ## 两难选择
78
-
79
- ### 设计原则
80
-
81
- 1. **两个选项都有代价**:没有明显的「正确答案」
82
- 2. **代价类型不同**:不是「大代价 vs 小代价」,而是「A 类代价 vs B 类代价」
83
- 3. **选择揭示角色**:角色的选择体现其价值观
84
- 4. **选择有后果**:选择之后,未选的那条路的代价也要体现
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
-
111
- | | 读者期待发生 | 读者期待不发生 |
112
- |---|------------|--------------|
113
- | **实际发生** | 满足感(爽点) | 意外/反转 |
114
- | **实际不发生** | 悬念延续 | 确认(安心) |
115
-
116
- ### 技巧
117
-
118
- 1. **70/30 法则**:70% 满足期待,30% 打破期待
119
- 2. **超越期待**:不只是满足,而是比期待的更好(打脸比预想的更狠)
120
- 3. **延迟满足**:让读者等待,但最终给出更大的满足
121
- 4. **假反转**:看似打破期待,实际是更大满足的铺垫
122
-
123
- ---
124
-
125
- ## 张力节奏
126
-
127
- ### 张力曲线模板
128
-
129
- ```
130
- 章节内张力曲线(单章):
131
- 开头:中等张力(承接上章钩子)
132
- 发展:张力逐步上升
133
- 高点:张力峰值(冲突/揭示/决定)
134
- 结尾:张力不完全释放(钩子)
135
-
136
- 多章张力曲线(一卷):
137
- 第 1-3 章:建立基础张力
138
- 第 4-10 章:张力波动上升(小高潮 + 短暂释放)
139
- 第 11-15 章:张力持续攀升
140
- 第 16-20 章:张力峰值(大高潮)
141
- 第 21-25 章:张力释放 + 新张力种子
142
- ```
143
-
144
- ### 张力叠加
145
-
146
- 同时维持多条张力线,当一条释放时另一条接管:
147
-
148
- ```
149
- 张力线 A(主线冲突): ████████████████░░░░░░░░
150
- 张力线 B(角色关系): ░░░░████████████████░░░░
151
- 张力线 C(谜题悬念): ░░░░░░░░████████████████
152
- ↑ 始终有至少一条张力线活跃
153
- ```
154
-
155
- ---
156
-
157
- ## 检测清单
158
-
159
- ### 每章检查
160
- - [ ] 本章是否有至少一种张力来源?
161
- - [ ] 张力是否在章节结尾保持(不完全释放)?
162
- - [ ] 是否有信息不对称在推进?
163
-
164
- ### 每卷检查
165
- - [ ] 张力是否整体呈上升趋势?
166
- - [ ] 是否有多条张力线交替活跃?
167
- - [ ] 两难选择是否有后续影响?
168
- - [ ] 时间压力是否被合理使用?
@@ -1,145 +0,0 @@
1
- # First Meeting (初遇)
2
-
3
- ## 核心定义
4
-
5
- 初遇 = 主要角色第一次见面,建立关系基调。读者对关系的第一印象。
6
-
7
- 初遇是整段关系的"开机画面"。无论是爱情、友情、师徒还是宿敌,第一次相遇决定了读者如何理解这段关系的底色。一个精心设计的初遇场景,能让读者在两人还没有任何交集时就开始期待他们的未来。反之,一个平庸的初遇会让读者对后续的关系发展缺乏投入感。
8
-
9
- 初遇的本质不是"两个人碰面了",而是"两个世界碰撞了"。每个角色带着自己的背景、目标、偏见走进这个场景,碰撞产生的火花就是初遇的戏剧张力。
10
-
11
- ## 核心元素
12
-
13
- 1. **对比/冲突:** 两人有明显差异或冲突。阶层、性格、目标、世界观——差异越大,张力越强。Elizabeth Bennet 的机智与 Darcy 的傲慢,Luke Skywalker 的天真与 Han Solo 的世故,这些对比让初遇本身就充满了故事性。
14
-
15
- 2. **印象设定:** 彼此的第一印象(可能错误)。第一印象往往是片面的、带有偏见的,这恰恰是好故事的起点。错误的第一印象为后续的认知反转埋下伏笔,让角色关系有成长空间。
16
-
17
- 3. **关系预示:** 暗示未来关系走向。初遇中的微妙细节应该像种子一样,在后续情节中生根发芽。两人争论的方式可能预示他们未来合作的模式;一个不经意的善举可能成为日后信任的基础。
18
-
19
- 4. **记忆点:** 独特的细节让场景难忘。读者需要一个锚点来记住这个场景——一句话、一个动作、一个意外。《哈利·波特》中赫敏出场时那句"你鼻子上有脏东西",比任何外貌描写都更让人记住这个角色。
20
-
21
- ## 常见套路(应避免)
22
-
23
- - ❌ **一见钟情(无铺垫):** 两人目光交汇,世界静止,背景音乐响起。没有任何性格展示或互动,仅凭外貌就"坠入爱河"。这种写法剥夺了关系发展的空间,也让角色显得肤浅。
24
- - ❌ **救美英雄:** 女性角色陷入危险(被流氓骚扰、即将摔倒、遭遇抢劫),男性角色英雄救美。这个套路不仅陈旧,还把一方矮化为被动的道具,缺乏双向互动的张力。
25
- - ❌ **无聊相遇(平淡介绍无张力):** "这是张三。""你好。""你好。"没有冲突、没有意外、没有个性展示。朋友介绍、工作场合的礼貌寒暄,如果没有额外的戏剧元素,就只是信息传递而非场景。
26
- - ❌ **撞到洒咖啡等偶像剧桥段:** 转角撞到、咖啡洒在衬衫上、捡起掉落的东西时手指触碰。这些桥段被用了太多次,已经失去了制造惊喜的能力,读者看到开头就能猜到结尾。
27
- - ❌ **过度巧合堆叠:** 两人恰好住隔壁、恰好同一航班、恰好被分到同一组。一个巧合可以接受,但如果初遇建立在多重巧合之上,读者会感到刻意和虚假。
28
-
29
- ## 新颖变体
30
-
31
- ### 变体1: 敌对初遇
32
-
33
- **描述:** 两人以对手、竞争者甚至敌人的身份相遇。第一印象是负面的——厌恶、轻蔑、愤怒。这种初遇的力量在于,它为关系发展提供了最大的弧线空间:从厌恶到理解,从对抗到尊重,甚至到爱。
34
-
35
- **经典范例:** Jane Austen《傲慢与偏见》(Pride and Prejudice) 中 Elizabeth 与 Darcy 的初遇。舞会上 Darcy 拒绝与 Elizabeth 跳舞,说她"还不够漂亮,不值得引起我的兴趣"。Elizabeth 听到后并未崩溃,而是把这当成笑话讲给朋友听——这一个场景同时建立了 Darcy 的傲慢、Elizabeth 的自尊与机智,以及两人之间巨大的张力。读者立刻知道:这两个人之间会有故事。
36
-
37
- **为什么有效:** 负面情感同样是强烈的情感连接。厌恶和爱情在神经层面的激活模式惊人地相似——都是高度关注对方。
38
-
39
- ### 变体2: 非典型场景
40
-
41
- **描述:** 将初遇放在不寻常的环境中——监狱、葬礼、医院急诊室、自然灾害现场、深夜的便利店。非典型场景自带情感压力和戏剧张力,让角色在极端情境下展露真实性格。
42
-
43
- **经典范例:** 电影《肖申克的救赎》(The Shawshank Redemption) 中 Andy 与 Red 的初遇发生在监狱操场。Red 作为"能搞到任何东西的人",Andy 向他购买一把小锤子。这个场景没有任何温情,只有交易——但正是这种冷静、务实的互动,奠定了两人关系的基调:互相尊重、不多废话、以行动而非言语建立信任。
44
-
45
- **为什么有效:** 极端环境剥去了社交面具,角色被迫展示真实的自己。读者也会因为场景本身的张力而更加投入。
46
-
47
- ### 变体3: 错位初遇
48
-
49
- **描述:** 两人的"初遇"并不对等——一方记得,另一方不记得;或者一方早已认识对方(通过照片、传闻、作品),而对方毫不知情。这种信息不对称制造了独特的戏剧张力。
50
-
51
- **经典范例:** 电影《美丽心灵》(A Beautiful Mind) 中 Nash 与 Alicia 的初遇。Alicia 作为学生早已知道 Nash 是天才教授,带着崇拜和好奇走进课堂;而 Nash 完全不知道她的存在。这种不对等让两人的互动充满了微妙的权力动态——Alicia 知道的比她表现出来的多,Nash 则在不知不觉中被观察和评估。
52
-
53
- **为什么有效:** 信息不对称天然制造悬念。读者知道一方的秘密,会好奇另一方何时发现真相,这种期待感驱动阅读。
54
-
55
- ### 变体4: 延迟初遇
56
-
57
- **描述:** 两个角色在故事中各自发展了很长时间,读者一直期待他们相遇,但作者刻意延迟这个时刻。当初遇终于发生时,它承载了巨大的叙事期待。
58
-
59
- **经典范例:** 《权力的游戏》(Game of Thrones) 中 Jon Snow 与 Daenerys Targaryen 的初遇。两人各自经历了数季的成长——Jon 从私生子到北境之王,Daenerys 从流亡公主到龙之母。当他们终于在龙石岛见面时,这个场景承载了观众多年的期待。而两人初遇时的紧张对峙(而非浪漫邂逅)更让这个时刻充满了政治张力和权力博弈。
60
-
61
- **为什么有效:** 延迟满足是叙事的强大工具。读者投入了大量时间了解两个角色,当他们终于相遇时,读者会自动脑补各种可能性,参与感极强。
62
-
63
- ## 情感真实性
64
-
65
- 如何让初遇场景令人信服,而不是让读者觉得"作者硬凑的":
66
-
67
- 1. **基于情境(合理原因,不是巧合):** 两人的相遇应该有逻辑上的必然性或至少合理性。他们在同一个地方出现,是因为各自的目标、职业、生活轨迹自然交叉,而不是宇宙为了撮合他们而安排的巧合。问自己:如果没有这个故事,这两个人在现实中有没有可能在这个场景相遇?
68
-
69
- 2. **个性展现(通过互动展示性格):** 初遇是角色的"试演"。不要用旁白告诉读者"她是个勇敢的人",而是让她在初遇中做出勇敢的选择。角色如何打招呼、如何回应意外、如何处理尴尬——这些微小的行为比任何描述都更能建立角色形象。
70
-
71
- 3. **细节记忆(记住独特细节,不只是"她很美"):** 真实的人在初次见面时不会注意到对方的"完美五官"和"修长身材"。他们会注意到对方咬指甲的习惯、衬衫上的墨水渍、说话时微微歪头的动作。具体的、不完美的细节比泛泛的美貌描写更有说服力,也更能体现观察者的性格。
72
-
73
- 4. **非完美(可以尴尬、失败、误会):** 现实中的初次见面很少是完美的。有人会说错话、会紧张、会误解对方的意思。这些"不完美"恰恰是让场景真实的关键。完美的初遇像广告,不完美的初遇像生活。
74
-
75
- ## 示例分析
76
-
77
- ### 示例1: 《星球大战》Luke 遇见 Leia
78
-
79
- **场景:** Luke Skywalker 和 Han Solo 伪装成帝国冲锋队员,闯入死星的监狱区营救 Leia 公主。Luke 打开牢房门,说出那句经典台词:"我是 Luke Skywalker,我来救你了。"
80
-
81
- **元素分析:**
82
-
83
- - **对比/冲突:** Luke 是紧张的、笨拙的农场男孩,而 Leia 即使身陷囹圄依然冷静、犀利。当营救计划立刻出了差错,Leia 反而成了那个拿起武器、制定逃跑路线的人。"救援者"和"被救者"的角色在几秒钟内就发生了反转。
84
- - **印象设定:** Luke 对 Leia 的第一印象是"需要被拯救的公主",但 Leia 立刻打破了这个预期。Leia 对 Luke 的第一印象则是"这就是来救我的人?"——带着怀疑和不屑。这些错误的第一印象为后续关系的发展提供了丰富的空间。
85
- - **关系预示:** 两人在危机中的互动模式——Luke 的热情与 Leia 的务实——预示了他们未来的关系动态。Leia 不是被动等待的公主,Luke 也不是无所不能的英雄。
86
- - **记忆点:** "我是 Luke Skywalker,我来救你了"这句台词之所以经典,是因为它同时展示了 Luke 的天真热情和场景的荒诞——一个农场男孩闯进银河帝国的监狱,像自我介绍一样宣布来意。
87
-
88
- ### 示例2: 《哈利·波特》Harry 遇见 Ron 和 Hermione
89
-
90
- **场景:** 霍格沃茨特快列车上,Harry 独自坐在车厢里,Ron Weasley 走进来问能不能坐下(其他车厢都满了)。两人分享零食、聊天,建立了最初的友谊。随后 Hermione 闯入车厢,帮 Neville 找蟾蜍,顺便展示了她惊人的魔法知识和令人窒息的自信。
91
-
92
- **元素分析:**
93
-
94
- - **对比/冲突:** 三人的背景形成鲜明对比。Harry 是不知道自己是名人的孤儿,Ron 是大家庭中不起眼的穷孩子,Hermione 是急于证明自己的麻瓜出身优等生。三种不同的不安全感在同一个车厢里碰撞。
95
- - **印象设定:** Harry 和 Ron 立刻建立了舒适的友谊(两个不自信的男孩互相取暖),但对 Hermione 的第一印象是"烦人的万事通"。Ron 甚至在她离开后说"不管我被分到哪个学院,希望她不在。"这个负面的第一印象让后来三人成为挚友的转变更有力量。
96
- - **关系预示:** Harry 和 Ron 的即时亲近预示了他们"兄弟"般的关系;Hermione 的"局外人"身份预示了她需要通过考验才能真正融入这个小团体(后来的山怪事件)。
97
- - **记忆点:** Hermione 那句"我把所有课本都背下来了"以及 Ron 鼻子上的脏东西,这些具体细节让三个角色在短短几页内就变得鲜活立体。J.K. Rowling 没有用大段描写告诉读者这些角色是什么样的人,而是通过他们吃零食、聊天、炫耀的方式让读者自己感受。
98
-
99
- ## 写作提示
100
-
101
- ### 设计初遇时问自己
102
-
103
- 1. **这两个人为什么会在这里?** 各自的动机和目标是什么?他们的出现是否有独立于彼此的合理原因?如果去掉"为了让他们相遇"这个理由,他们还会出现在同一个场景中吗?
104
-
105
- 2. **他们各自带着什么"包袱"走进这个场景?** 每个角色在相遇之前的情绪状态、当天经历的事情、长期背负的心理负担——这些都会影响他们如何感知对方。一个刚被解雇的人和一个刚升职的人,对同一个陌生人的反应会截然不同。
106
-
107
- 3. **第一印象中有多少是错误的?** 错误的第一印象是关系发展的燃料。如果两人初遇时就完全理解对方,后续就没有什么可以探索的了。想想哪些表面特征会导致误判,这些误判又如何在后续被修正。
108
-
109
- 4. **这个初遇如何为后续关系埋下种子?** 初遇中的某个细节、某句话、某个选择,应该在故事后期产生回响。也许是一个当时被忽略的善意举动,也许是一句无心之言后来成了两人之间的暗号。
110
-
111
- 5. **如果删掉这个场景,读者会失去什么?** 如果答案只是"知道两人认识了",那这个初遇还不够好。一个成功的初遇应该同时完成多个叙事任务:建立角色、制造张力、推进情节、埋下伏笔。
112
-
113
- ### 检查清单
114
-
115
- - [ ] 两个角色都有独立的、合理的出现在场景中的理由
116
- - [ ] 初遇展示了双方的性格特征(而非仅仅是外貌描写)
117
- - [ ] 场景中存在某种形式的张力或冲突(不一定是争吵,可以是尴尬、误会、目标冲突)
118
- - [ ] 至少有一个具体的、独特的细节让这个初遇区别于其他初遇场景
119
- - [ ] 初遇中埋下了至少一个伏笔或种子,会在后续情节中得到回应
120
-
121
- ## 进阶技巧
122
-
123
- ### 1. 多层初遇(表面相遇 + 更早的隐藏联系)
124
-
125
- 表面上两人是第一次见面,但故事后来揭示他们之间存在更早的、不为人知的联系。这种技巧为初遇场景增加了一层回溯性的意义——读者在得知真相后会重新审视初遇的每一个细节。
126
-
127
- **实例:** 《星球大战》中 Obi-Wan Kenobi 与 Luke 的"初遇"。表面上是老隐士遇到了迷路的年轻人,但 Obi-Wan 其实从 Luke 出生起就在暗中守护他。当这个真相揭露时,读者会回想起初遇中 Obi-Wan 那些意味深长的眼神和欲言又止的瞬间,整个场景获得了全新的情感重量。
128
-
129
- **应用建议:** 在写初遇时,如果你计划后续揭示隐藏联系,要在初遇中埋入微妙的线索——一个停顿、一个不自然的反应、一句模棱两可的话。这些线索在第一次阅读时不会引起注意,但在读者得知真相后会产生"原来如此"的满足感。
130
-
131
- ### 2. 视角差异(不同角色视角的不同感受)
132
-
133
- 同一个初遇场景,从不同角色的视角来写,会呈现完全不同的情感色彩。一方可能觉得这是命运的安排,另一方可能觉得这只是普通的一天;一方记住了每一个细节,另一方转身就忘了。
134
-
135
- **实例:** 《了不起的盖茨比》(The Great Gatsby) 中,Gatsby 与 Daisy 的重逢(本质上是一次"重新初遇")。从 Gatsby 的视角,这是他五年来日夜期盼的时刻,他紧张到打翻了钟;从 Daisy 的视角,这更多是好奇和怀旧。同一个场景,两种完全不同的情感强度,这种落差本身就是故事的核心悲剧。
136
-
137
- **应用建议:** 即使你只从一个视角写初遇,也要在脑中构建另一个角色的内心体验。这会让你写出更有层次的互动——因为你知道对方的每一个反应背后有什么样的情感逻辑。如果故事结构允许,可以在后续章节中从另一个视角重写这个场景,让读者获得全新的理解。
138
-
139
- ### 3. 预示反转(初印象后来完全反转)
140
-
141
- 刻意在初遇中建立一个强烈的印象,然后在故事发展中彻底推翻它。初遇中看起来最不可能成为盟友的人成了最忠诚的伙伴;初遇中最温和无害的人后来成了最大的威胁。
142
-
143
- **实例:** 《冰与火之歌》(A Song of Ice and Fire) 中 Jaime Lannister 的初登场。读者通过 Bran 的视角看到的是一个英俊但傲慢的骑士,随后他把 Bran 推下塔楼——建立了"彻底的反派"印象。但随着故事发展,Jaime 的视角章节逐渐揭示了他的复杂性、荣誉感和牺牲,初遇时的"恶人"印象被层层剥开,读者被迫重新评估自己的判断。
144
-
145
- **应用建议:** 预示反转的关键是让初印象足够强烈且"合理"。读者不应该在初遇时就怀疑这个印象是错的——它应该看起来完全可信。只有这样,后续的反转才会产生真正的冲击力。在初遇中可以埋入一两个与主流印象矛盾的微小细节,但不要让它们太明显。