@oh-story/dsh 0.1.16 → 0.1.18

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 (271) hide show
  1. package/README.md +13 -13
  2. package/lib/client.js +173 -111
  3. package/lib/client.js.map +3 -3
  4. package/lib/drama/package.json +4 -0
  5. package/lib/index.js +58 -28
  6. package/lib/index.js.map +2 -2
  7. package/lib/novel-to-game/README.md +3 -3
  8. package/lib/novel-to-game/README_ZH.md +4 -4
  9. package/lib/novel-to-game/VERSION +1 -1
  10. package/lib/novel-to-game/manifest.json +25 -20
  11. package/lib/novel-to-game/package.json +4 -0
  12. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
  13. package/lib/novel-to-game/skills/game-build/SKILL.md +7 -1
  14. package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
  15. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
  16. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
  17. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +1 -0
  18. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
  19. package/lib/oh-story/manifest.json +417 -592
  20. package/lib/oh-story/package.json +4 -0
  21. package/lib/oh-story/roles/chapter-extractor.md +4 -3
  22. package/lib/oh-story/roles/character-designer.md +20 -85
  23. package/lib/oh-story/roles/consistency-checker.md +5 -5
  24. package/lib/oh-story/roles/narrative-writer.md +9 -9
  25. package/lib/oh-story/roles/story-architect.md +19 -26
  26. package/lib/oh-story/roles/story-explorer.md +4 -5
  27. package/lib/oh-story/roles/story-researcher.md +6 -7
  28. package/lib/oh-story/skills/browser-cdp/SKILL.md +26 -15
  29. package/lib/oh-story/skills/story/SKILL.md +94 -54
  30. package/lib/oh-story/skills/story/VERSION +1 -1
  31. package/lib/oh-story/skills/story-cover/SKILL.md +41 -220
  32. package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
  33. package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -95
  34. package/lib/oh-story/skills/story-deslop/SKILL.md +32 -27
  35. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +4 -4
  36. package/lib/oh-story/skills/story-deslop/references/banned-words.md +7 -9
  37. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +12 -12
  38. package/lib/oh-story/skills/story-deslop/references/expression.md +10 -3
  39. package/lib/oh-story/skills/story-deslop/references/story-logic.md +1 -1
  40. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +1 -1
  41. package/lib/oh-story/skills/story-import/SKILL.md +12 -11
  42. package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
  43. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +3 -4
  44. package/lib/oh-story/skills/story-import/references/deep-analysis.md +2 -3
  45. package/lib/oh-story/skills/story-import/references/import-report.md +5 -4
  46. package/lib/oh-story/skills/story-import/references/import-special-cases.md +6 -16
  47. package/lib/oh-story/skills/story-import/references/import-tracking.md +2 -2
  48. package/lib/oh-story/skills/story-import/references/length-routing.md +1 -43
  49. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +8 -8
  50. package/lib/oh-story/skills/story-import/references/outline-reverse.md +2 -2
  51. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +113 -125
  52. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -88
  53. package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
  54. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
  55. package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
  56. package/lib/oh-story/skills/story-long-analyze/SKILL.md +38 -75
  57. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +21 -23
  58. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +8 -17
  59. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +18 -5
  60. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +8 -14
  61. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +26 -27
  62. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
  63. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
  64. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -166
  65. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -15
  66. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +110 -34
  67. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +12 -2
  68. package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
  69. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
  70. package/lib/oh-story/skills/story-long-scan/SKILL.md +49 -72
  71. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -167
  72. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +23 -8
  73. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
  74. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
  75. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
  76. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +24 -16
  77. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -33
  78. package/lib/oh-story/skills/story-long-write/SKILL.md +5 -5
  79. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +1 -1
  80. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +51 -24
  81. package/lib/oh-story/skills/story-long-write/references/banned-words.md +7 -9
  82. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +3 -3
  83. package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
  84. package/lib/oh-story/skills/story-long-write/references/character-relations.md +119 -269
  85. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +2 -2
  86. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +8 -8
  87. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +7 -7
  88. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
  89. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +12 -53
  90. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +39 -85
  91. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +97 -163
  92. package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +39 -119
  93. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
  94. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +81 -310
  95. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
  96. package/lib/oh-story/skills/story-long-write/references/long-reversal.md +1 -1
  97. package/lib/oh-story/skills/story-long-write/references/long-suspense.md +8 -8
  98. package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
  99. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
  100. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
  101. package/lib/oh-story/skills/story-long-write/references/project-files.md +10 -14
  102. package/lib/oh-story/skills/story-long-write/references/reference-index.md +29 -82
  103. package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
  104. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +2 -2
  105. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +12 -19
  106. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +3 -171
  107. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +1 -1
  108. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +8 -6
  109. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +2 -2
  110. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
  111. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +7 -7
  112. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +4 -9
  113. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
  114. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +59 -115
  115. package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
  116. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
  117. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
  118. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
  119. package/lib/oh-story/skills/story-review/SKILL.md +26 -24
  120. package/lib/oh-story/skills/story-review/references/agent-prompts.md +13 -9
  121. package/lib/oh-story/skills/story-review/references/banned-words.md +7 -9
  122. package/lib/oh-story/skills/story-review/references/expression.md +10 -3
  123. package/lib/oh-story/skills/story-review/references/quality-rubric.md +7 -7
  124. package/lib/oh-story/skills/story-review/references/review-tracking.md +2 -1
  125. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +8 -9
  126. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +9 -11
  127. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +9 -8
  128. package/lib/oh-story/skills/story-review/references/solo.md +6 -5
  129. package/lib/oh-story/skills/story-review/references/story-logic.md +1 -1
  130. package/lib/oh-story/skills/story-review/references/style-resolution.md +1 -1
  131. package/lib/oh-story/skills/story-setup/SKILL.md +24 -31
  132. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +12 -13
  133. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +7 -9
  134. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +1 -1
  135. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
  136. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +119 -269
  137. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +12 -12
  138. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +8 -8
  139. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +7 -7
  140. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
  141. package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +10 -3
  142. package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
  143. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +96 -161
  144. package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +39 -119
  145. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +13 -54
  146. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +81 -310
  147. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
  148. package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +1 -1
  149. package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +8 -8
  150. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
  151. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
  152. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
  153. package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +63 -171
  154. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +11 -63
  155. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +40 -50
  156. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +14 -39
  157. package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +1 -1
  158. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +12 -19
  159. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +3 -171
  160. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +1 -1
  161. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +59 -115
  162. package/lib/oh-story/skills/story-short-analyze/SKILL.md +41 -90
  163. package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
  164. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +21 -20
  165. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +4 -3
  166. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +4 -4
  167. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +5 -5
  168. package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
  169. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
  170. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +25 -26
  171. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
  172. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +9 -158
  173. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +39 -26
  174. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +42 -71
  175. package/lib/oh-story/skills/story-short-scan/SKILL.md +52 -62
  176. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
  177. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
  178. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
  179. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +34 -72
  180. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +33 -13
  181. package/lib/oh-story/skills/story-short-write/SKILL.md +5 -5
  182. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +3 -3
  183. package/lib/oh-story/skills/story-short-write/references/banned-words.md +7 -9
  184. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
  185. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
  186. package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +12 -12
  187. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +8 -8
  188. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +11 -63
  189. package/lib/oh-story/skills/story-short-write/references/expression.md +10 -3
  190. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
  191. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +6 -6
  192. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +8 -8
  193. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +4 -4
  194. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +9 -9
  195. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +10 -10
  196. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
  197. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +6 -6
  198. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +6 -6
  199. package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +12 -12
  200. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +40 -50
  201. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +63 -171
  202. package/lib/oh-story/skills/story-short-write/references/reference-index.md +13 -14
  203. package/lib/oh-story/skills/story-short-write/references/short-craft.md +10 -29
  204. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +2 -2
  205. package/lib/oh-story/skills/story-short-write/references/short-format.md +12 -32
  206. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +14 -39
  207. package/lib/oh-story/skills/story-short-write/references/story-logic.md +1 -1
  208. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +1 -1
  209. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
  210. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +14 -19
  211. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +67 -26
  212. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +10 -11
  213. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +50 -69
  214. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
  215. package/lib/types/client/file-activity.d.ts +10 -0
  216. package/lib/types/client/file-activity.d.ts.map +1 -1
  217. package/lib/types/client/game-preview-state.d.ts +34 -0
  218. package/lib/types/client/game-preview-state.d.ts.map +1 -0
  219. package/lib/types/client/index.d.ts.map +1 -1
  220. package/lib/types/client/video-studio.d.ts +24 -0
  221. package/lib/types/client/video-studio.d.ts.map +1 -1
  222. package/lib/types/host-python.d.ts +10 -3
  223. package/lib/types/host-python.d.ts.map +1 -1
  224. package/lib/types/native-hooks.d.ts.map +1 -1
  225. package/lib/types/skill-provider.d.ts.map +1 -1
  226. package/lib/types/workspace-route.d.ts +6 -0
  227. package/lib/types/workspace-route.d.ts.map +1 -1
  228. package/lib/video-recap/package.json +4 -0
  229. package/package.json +23 -23
  230. package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
  231. package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -45
  232. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
  233. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
  234. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
  235. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
  236. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -101
  237. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -92
  238. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
  239. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -503
  240. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -34
  241. package/lib/oh-story/skills/story-long-write/references/expression.md +0 -76
  242. package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +0 -63
  243. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
  244. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
  245. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -272
  246. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
  247. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -710
  248. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -624
  249. package/lib/oh-story/skills/story-long-write/references/story-logic.md +0 -65
  250. package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -306
  251. package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
  252. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -285
  253. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
  254. package/lib/oh-story/skills/story-review/references/review-quality.md +0 -243
  255. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
  256. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
  257. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
  258. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -145
  259. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -433
  260. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -426
  261. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -384
  262. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -144
  263. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -238
  264. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -464
  265. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
  266. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -89
  267. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
  268. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -145
  269. package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -116
  270. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -207
  271. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
@@ -1,255 +1,135 @@
1
1
  # Stage 3:剧情、双时间线与三维节奏
2
2
 
3
- Stage 3 时刻读本文件与 [synthesis-inputs.md](synthesis-inputs.md)(取料与事实保真)。给剧情单元打桥段标签时查 [deconstruction-notes.md](deconstruction-notes.md)「桥段词表」。
3
+ Stage 3 时刻读本文件与 [synthesis-inputs.md](synthesis-inputs.md)(取料、证据等级、阶段标记与事实保真)。
4
4
 
5
5
  ## 核心规则
6
6
 
7
7
  剧情点按“起始目标与阻碍 → 改变局面的选择/行动/外部事件 → 局面变化与得失 → 后续影响”合并。事件发生与信息披露分开;同一事实的异常、线索、解释、确认属于一条披露路径。全局只保留约 8–15 个主线或关键转折节点。
8
8
 
9
- 三维节奏分别说明:事件推进 1–5 及状态变化,读者情绪类型/强度 1–5 及触发,篇幅展开度 1–3 及展开/压缩/省略/反复的作用。情绪机制写完整卡,优先覆盖最强三个,不足三个按实际数量,值得复现的不设数量上限;其余保留索引。完整卡以 `读者想看什么`、`情绪链`、`戏剧单元`、`可替换项`、`不可照搬` 五个字段齐全为准,字段名按下方「可复现模块卡」的 EM 卡表原样使用;缺任一项即无法登记灵感库。铺垫、成立条件、关键触发物、复现步骤、失效情形等按需增列。索引节标题用字面量 `## 其他机制索引`。
9
+ 三维节奏分别说明:事件推进 1–5 及状态变化,读者情绪类型/强度 1–5 及触发,篇幅展开度 1–3 及展开/压缩/省略/反复的作用。情绪机制写完整卡,至少展开全书最强的 3 个,不足 3 个按实际数量,值得复现的不设上限;其余进索引。
10
10
 
11
- `剧情/情绪模块.md` 与 `剧情/节奏.md` 都落盘后,用 `manage_analysis_run.py mark-stage --stage stage3 --output "剧情/节奏.md"` 标记。命令会同时检查两份必需产物。
11
+ 产出顺序:故事框架 → 剧情单元 → 故事线 → `剧情/README.md` → `剧情/节奏.md` → `剧情/情绪模块.md` → 散落情节与自检。两份权威文件都落盘后按 synthesis-inputs「阶段标记」标 `stage3`。
12
12
 
13
- ## 聚合方法
13
+ ## 1. 故事框架识别
14
14
 
15
- ### 0. 故事框架识别(聚合前置)
15
+ 先用 digest 取前 3 章与后 3 章的概要和关键事件,结合 `概要.md` 初稿判断全书的核心驱动,写进 `剧情/故事线.md` 顶部。框架决定剧情单元怎么切:
16
16
 
17
- 在剧情聚合之前,先识别全书的故事框架。框架决定聚合策略:
18
-
19
- | 框架类型 | 特征 | 聚合策略 |
20
- |----------|------|----------|
21
- | 升级流 | 等级体系清晰,按境界分段 | 按等级阶段划分剧情单元 |
22
- | 复仇线 | 核心矛盾明确,目标驱动 | 按复仇对象/阶段划分 |
23
- | 日常/单元 | 每卷独立故事,弱连续性 | 按卷/单元划分 |
24
- | 多线交织 | 多视角/多时间线 | 按线索划分,交叉点单独标记 |
25
- | 蜕变成长 | 主角内在变化为主线 | 按成长阶段划分 |
26
-
27
- 识别方法:复用概要.md 初稿,并用 digest 提取前3章与后3章的概要和关键事件,判断核心驱动模式。
28
- 输出写入 `剧情/故事线.md` 的框架识别部分。
29
-
30
- **预期剧情数量引导**(仅用于发现明显粒度异常,不作为凑数目标):
31
-
32
- | 总章数 | 预期独立剧情数 | 依据 |
33
- |--------|--------------|------|
34
- | <30 章 | 3-6 个 | 短篇结构紧凑 |
35
- | 30-100 章 | 5-15 个 | 每条剧情 5-20 章 |
36
- | 100-300 章 | 10-25 个 | 含主线+支线+补充 |
37
- | >300 章 | 15-40 个 | 多卷多线结构 |
38
-
39
- 实际数量低于参考区间下限的70%或高于上限的130%时,重新检查粒度。首要原则:保证核心戏剧目标叙事弧的完整性。
40
-
41
- **粒度层级混乱检测**(框架识别后自检):
42
-
43
- | 混乱模式 | 检测方法 | 修正方式 |
44
- |---------|---------|---------|
45
- | 包含关系 | 剧情A 章节范围完全包含剧情B | 保留粒度适中的B,拆分过粗的A |
46
- | 重叠率 >50% | 两剧情共享章节超过一半 | 检查是否混淆「剧情」和「剧情阶段」 |
47
- | 剧情仅为另一剧情的开端/结尾 | 剧情A 只占剧情B 的首/尾几章 | 合并为同一剧情,B 的阶段 |
48
- | 剧情无独立目标 | 目标描述是另一剧情的子目标 | 降级为该剧情的阶段 |
49
-
50
- **框架识别后自检**(识别剧情大纲后、分配情节点前执行):
51
- 1. 覆盖率检查:所有剧情覆盖的章节数(去重)是否达到 85% 以上
52
- 2. 粒度检查:是否存在过细(单一事件)或过粗(宏观主题)的剧情,执行粒度层级混乱检测
53
- 3. 独立性检查:每条剧情是否满足 4 项独立性标准
54
- 4. 数量检查:剧情总数是否在预期范围内
55
-
56
- ### A. 剧情聚合(两步法)
57
-
58
- 将剧情聚合拆为两步:先从摘要识别剧情大纲,再按大纲分配情节点。
17
+ | 框架类型 | 特征 | 剧情单元按什么切 |
18
+ |---|---|---|
19
+ | 升级流 | 等级体系清晰,按境界分段 | 等级阶段 |
20
+ | 复仇线 | 核心矛盾明确,目标驱动 | 复仇对象/阶段 |
21
+ | 日常/单元 | 每卷独立故事,弱连续性 | 卷/单元 |
22
+ | 多线交织 | 多视角/多时间线 | 线索,交叉点单独标 |
23
+ | 蜕变成长 | 主角内在变化为主线 | 成长阶段 |
24
+ | 感情流 | 关系推进是主线 | 关系阶段(相识、试探、确认、危机、和解) |
59
25
 
60
- **第一步:剧情大纲识别(从章节摘要)**
26
+ 有卷、部、篇时优先按作者的划分。
61
27
 
62
- 基于批次候选单元合并独立剧情,边界或证据不清时再读取相关章节摘要。每条大纲包含:
28
+ ```markdown
29
+ ## 故事框架
63
30
 
64
- | 字段 | 说明 |
31
+ | 项目 | 内容 |
65
32
  |------|------|
66
- | 标题 | 简洁有力,15字以内 |
67
- | 概要 | 150-300字,按时序连贯叙述因果,不靠同一连接词反复串联;含核心角色、关键地点、事件发展 |
68
- | 起始目标 | 谁在本单元开始时想做什么;目标早已建立时引用来源 |
69
- | 主要阻碍 | 人物、规则、资源、信息或环境造成的阻碍 |
70
- | 关键变化来源 | 谁的选择/行动或什么外部事件改变局面 |
71
- | 局面变化 | 目标、风险、关系、资源、知识或行动方向的前后差异 |
72
- | 得失与后续 | 收益归谁、代价由谁承担,怎样限制或促成后续行动 |
73
- | 类型 | 主线/爱情/成长/复仇/寻宝/悬疑/战斗/权谋/修炼/危机/谜团/日常/其他 |
74
- | 主题 | 不超过3个 |
75
- | 章节范围 | 起止章节号 |
76
-
77
- 识别完成后执行框架识别自检(4项检查)。
78
-
79
- **第二步:情节点分配(按剧情大纲)**
80
-
81
- 对每条剧情大纲,扫描全部情节点,将直接服务该目标的节点分配进来。
82
-
83
- **分配执行逻辑**(4 步):
84
- 1. **主题溯源与节点收集**:针对每条剧情大纲的核心目标,扫描全部情节点,将直接服务、推动或阻碍该目标的事件节点挑出
85
- 2. **边界识别**:识别剧情的起点(触发事件/前置条件)和终点(完成/失败标志),以及连接两者的关键过渡节点
86
- 3. **索引构建与验证**:将筛选出的情节点按时间顺序排列,验证覆盖完整性
87
- 4. **画像数据补充**:基于最终节点集合,补充完善概要、结构分布等字段
88
-
89
- **情节点筛选标准**(判定归属时使用):
90
- - **主题相关**:情节点内容与剧情概要、主题一致
91
- - **角色匹配**:用角色定位候选节点,同一角色出现不等于服务同一目标
92
- - **因果关系**:情节点与剧情发展有因果或逻辑延续
93
- - **目标导向**:情节点推动或阻碍剧情目标实现
94
- - **章节范围**:优先选择剧情章节范围内的情节点
95
-
96
- **剧情粒度标准(核心要求)**:
97
-
98
- | 粒度 | 示例 | 问题 |
99
- |------|------|------|
100
- | 过细(单一事件) | "获得神器"(1-2章)、"首次修炼"(第3章) | 这些是事件,不是独立剧情 |
101
- | 过粗(宏观主题) | "主角的成长之路"(1-100章) | 这是主题,不是具体剧情 |
102
- | **合适** | "家族觉醒与传承认知"(1-6章)、"神器获得与导师相遇"(7-13章) | 有独立目标、冲突、角色群和完整叙事弧 |
103
-
104
- **剧情独立性判断标准**(必须同时满足):
105
- 1. **独立的核心目标**:有明确的、可衡量的戏剧目标(不是宏观主题或抽象概念)
106
- 2. **独立的主要冲突**:有具体的对抗力量和冲突事件(不是某个大冲突的子阶段)
107
- 3. **相对独立的角色群**:有该剧情特有的核心角色(可以与其他剧情共享部分角色)
108
- 4. **独立的叙事节奏**:有自己的紧张-缓和节奏
109
-
110
- **三层覆盖策略**:
111
- 1. **主线剧情**(优先级最高):推动整体故事发展,通常占 60-70% 章节
112
- 2. **支线剧情**:感情线、成长线、战斗线等,通常占 20-30% 章节
113
- 3. **补充剧情**:过渡剧情、日常剧情,确保覆盖率 ≥85%
114
-
115
- **剧情类型**:
116
- - 主线(推动整体故事发展的核心剧情)
117
- - 爱情(感情关系发展)
118
- - 成长(角色能力/心智/地位提升)
119
- - 复仇(复仇相关)
120
- - 寻宝(争夺物品或目标)
121
- - 悬疑(推理、真相揭露)
122
- - 战斗(战争、比武、对决)
123
- - 权谋(政治斗争、权力争夺)
124
- - 修炼(修炼、突破、传承)
125
- - 危机(危机应对、解救、逃脱)
126
- - 谜团(世界观未解之谜、身世秘密、隐藏真相)
127
- - 日常(日常生活、过渡性内容)
128
- - 其他(无法归入以上类型)
129
-
130
- 每条剧情提取:标题、概要(150-300字,按时序连贯叙述因果)、核心目标、核心冲突、类型、章节范围。
131
- 标记结构分布:铺垫期/发展期/高潮期/收尾期 各包含哪些章节。
132
-
133
- **核心目标类型参考**:
134
- - 获得型:"赢得大比冠军""获得关键道具/传承""攻占要塞"
135
- - 解决型:"解除家族危机""偿还巨额债务""摆脱追杀"
136
- - 创造型:"创立新宗门""研发新招式""开创一个流派"
137
- - 探索型:"调查父母失踪真相""探索上古遗迹""揭露阴谋"
138
-
139
- ### B. 故事线提取
140
-
141
- 将多条剧情聚合为「故事线」:标题、描述(300-600字发展阶段划分)、主要人物、主题关键词、包含的剧情列表(至少1个剧情)。
142
-
143
- **故事线类型**:主线/感情线/成长线/复仇线/夺宝线/冲突线/谜团线/其他
144
-
145
- **故事线描述要求**:
146
- - 划分 3-8 个发展阶段(periodization),寻找关键转折点或里程碑事件作为阶段边界
147
- - 每个阶段含:核心冲突、关键角色及作用、能力/资源/地位演进、主题母题
148
- - 独立追踪伏笔与回收关系链(前后呼应的伏笔-回收对)
149
- - 标注与其他故事线的交织关系(并行/交织/依赖)
150
- - 包含剧情按时序排列,每条故事线至少包含1个剧情
151
-
152
- ### C. 节奏索引与情绪模块生成
153
-
154
- Stage 3 聚合后必须生成两个权威产物,供 Stage 5 报告摘要和 `story-long-write` 直接读取:
155
-
156
- 1. **`剧情/节奏.md`(节奏权威)**
157
- - 输入:批次关键事件与披露候选、三维节奏异常点、逐章紧凑事实、剧情单元和故事线。
158
- - 输出:全书约 8–15 个节点的关键双时间线表、三维节奏表、关键信息推进、爽点循环、情绪触动点和爆发节奏。
159
- - 生成法:只选择改变主线、关系、核心风险或读者判断的事件;客观事件只登记一次,异常、线索、解释和确认写进同一事件的披露路径。对关键区间分别判断事件状态变化、读者情绪触发和篇幅展开/压缩/省略。
160
- - 校验:每条 `EV/RV/AX/RH/TR` 都能回指章节、情节点或定位;过程没有展示时写“文本未展示”,不推断作者有意省略。
33
+ | 框架类型 | {升级流/复仇线/日常单元/多线交织/蜕变成长/感情流/混合} |
34
+ | 核心驱动 | {一句话说清全书的核心叙事引擎} |
35
+ | 主轴矛盾 | {贯穿全书的根本矛盾} |
36
+ | 升级机制 | {力量/地位/关系的递进方式,没有填“—”} |
37
+ | 叙事节奏模式 | {铺垫→冲突→爽点→新悬念 的典型周期} |
38
+ | 判断依据 | {哪些章节/情节点支撑此判断} |
39
+ ```
161
40
 
162
- 2. **`剧情/情绪模块.md`(模块权威)**
163
- - 输入:故事框架识别、剧情单元、`剧情/节奏.md`、读者需求判断、桥段标签。
164
- - 输出:读者需求 / 情绪引擎、故事框架与套路运行图、完整模块卡(优先覆盖前三强,不足三个按实际数量,不设数量上限)、其他机制索引、重组与复现指南。
165
- - 生成法:先抽象“读者为什么期待兑现”,再把具体剧情抽成情绪链和功能位;完整模块卡必须五个门禁字段齐全(读者想看什么、情绪链、戏剧单元、可替换项、不可照搬),必要铺垫、成立条件、失效情形、反例等按需增列,其他机制只留用途、范围和证据引用。
166
- - 校验:best-effort 为模块标注来源(关联 `剧情/节奏.md` 的 RH/TR 条目或章节情节点),无把握时留空、不硬凑、不删模块;禁止把原文专名、独特事件顺序、标志性台词写成可复用模板。
41
+ 剧情单元数量只用来发现明显的粒度问题,不当凑数目标:<30 章约 3–6 个,30–100 章约 5–15 个,100–300 章约 10–25 个,>300 章约 15–40 个。明显低于或高于这个范围时回头检查粒度。
167
42
 
168
- **权威关系**:`剧情/节奏.md` 管节奏/触动点,`剧情/情绪模块.md` 管读者需求/模块复现。`拆文报告.md` 与 `剧情/故事线.md` 只能摘要或引用这两个文件,不能成为并列权威。
43
+ ## 2. 剧情单元
169
44
 
170
- ### 语义弧识别
45
+ **第一步:识别剧情大纲。** 从批次剧情点和逐章摘要合并出独立剧情,边界或证据不清时再读相关章节摘要。一条剧情必须同时有:可衡量的核心目标(不是宏观主题)、具体的主要冲突(不是另一个大冲突的子阶段)、相对独立的角色群、自己的紧张—缓和节奏。目标可以是获得型(赢大比、得传承)、解决型(解家族危机、摆脱追杀)、创造型(立宗门、开流派)或探索型(查父母失踪、揭阴谋)。
171
46
 
172
- 基于批次观察和章节摘要识别自然分界。读取批次只是上下文单位,不能直接当成剧情单元:
47
+ | 粒度 | 示例 | 处理 |
48
+ |---|---|---|
49
+ | 过细(单一事件) | “获得神器”(1–2 章) | 是事件,并进所属剧情 |
50
+ | 过粗(宏观主题) | “主角的成长之路”(1–100 章) | 是主题,拆开 |
51
+ | 合适 | “家族觉醒与传承认知”(1–6 章) | 有独立目标、冲突、角色群和完整弧线 |
173
52
 
174
- **分块原则(四项原则)**:
175
- 1. **语义连贯**:每块是一个相对独立的内容单元(大故事阶段或主要事件线)
176
- 2. **自然分界**:在内容转折点、场景切换、时间跨越处切分,不在紧密剧情中间切
177
- 3. **大小适中**:语义完整性优先于大小均匀;不设固定章数,也不要求一个语义弧一次读进上下文
178
- 4. **避免割裂**:不在紧密剧情中间切分
53
+ | 粒度混乱 | 怎么看出来 | 怎么改 |
54
+ |---|---|---|
55
+ | 包含 | 剧情 A 的章节范围完全包含剧情 B | 保留粒度适中的 B,拆开过粗的 A |
56
+ | 大段重叠 | 两条剧情共享一半以上章节 | 检查是否把「剧情」和「剧情阶段」混了 |
57
+ | 只是开端或结尾 | A 只占 B 的首尾几章 | 并成 B 的一个阶段 |
58
+ | 没有独立目标 | A 的目标是 B 的子目标 | 降为 B 的阶段 |
179
59
 
180
- **题材特化分块参考**:
60
+ **第二步:分配情节点。** 对每条剧情,用 `digest --part chapters --points brief` 按章节窗口扫情节点,挑出直接服务、推动或阻碍其目标的节点:先找起点(触发事件)和终点(完成或失败),再补中间的关键过渡,按时间排好,最后据此补全概要和结构分布。判断归属看主题、因果和目标导向;同一角色出现不等于服务同一目标。
181
61
 
182
- | 题材 | 分块依据 | 示例 |
183
- |------|---------|------|
184
- | 修仙/升级 | 境界突破、地图切换 | 炼气期→筑基期→金丹期 |
185
- | 都市 | 事件线、身份转变 | 学生→创业→商业帝国 |
186
- | 历史 | 历史阶段、战役 | 起兵→统一北方→南征 |
187
- | 玄幻 | 世界地图、势力变化 | 东域→中州→上界 |
188
- | 有卷/部/篇 | 优先按原结构 | 按作者划分的卷/部 |
62
+ 覆盖分三层:主线剧情推动整体故事;支线(感情、成长、战斗等);补充剧情(过渡、日常),用来接住剩下的情节点。
189
63
 
190
- **无明显结构**时保留连续批次边界,并把无法确认的语义归属标为待聚合。**硬约束**:所有确实需要读原文的章节都被唯一读取批次覆盖,已有成果章进入旧资料批次;两者互斥且各自不重叠。剧情单元可以跨批次,也可以在一个批次中出现多个。
64
+ 输出 `剧情/{标题}.md`,字段以本表为准:
191
65
 
192
- 每块输出元数据:`块标题 | 起止章节 | 核心主题(2-5个) | 关键事件(2-5个) | 主角阶段`。
66
+ | 项目 | 内容 |
67
+ |------|------|
68
+ | 标题 | 15 字以内 |
69
+ | 类型 | {主线/爱情/成长/复仇/寻宝/悬疑/战斗/权谋/修炼/危机/谜团/日常/其他};悬疑=主动推理调查,谜团=世界观、身世等未解之谜 |
70
+ | 概要 | {150–300 字,按时序连贯叙述起承转合与因果,不靠同一连接词反复串联;含核心角色及定位、关键地点、关键道具(如有)、对主角或世界的影响} |
71
+ | 起始目标 | {谁起初想做什么;目标在本单元前已建立时引用首次建立位置} |
72
+ | 主要阻碍 | {人物、规则、资源、信息或环境造成的具体阻碍} |
73
+ | 关键变化来源 | {谁的选择/行动,或什么外部事件改变了局面;不默认由主角主动造成} |
74
+ | 局面变化 | {目标、风险、关系、资源、知识或行动方向从什么状态变成什么状态} |
75
+ | 得失与承担者 | {谁得到什么、谁失去什么或承担什么代价} |
76
+ | 后续影响 | {结果如何促成、限制或迫使后续行动;未完成标 open} |
77
+ | 关键信息功能 | {这条剧情让读者获得/等待/误判/确认什么信息} |
78
+ | 读者需求 | {安全感/优越感/期待感/情感补偿/认知反转/陪伴感等} |
79
+ | 情绪模块ID | {引用 `剧情/情绪模块.md` 的 EM-001 等,不重复完整卡} |
80
+ | 套路框架位置 | {退婚打脸/迟来追悔/升级试炼/掉马震惊/以小搏大/其他;说明它怎样在本书框架里运转} |
81
+ | 桥段标签 | 从下方桥段词表选命中项,逗号分隔;表外确有的桥段照实写;没有就留空,不硬凑 |
82
+ | 主题 | {不超过 3 个} |
83
+ | 章节范围 | 第{X}-{Y}章(共{N}章,约{M}万字) |
193
84
 
194
- ### 跨块合并(大型小说 >500 章)
85
+ 结构分布:铺垫期 | 发展期 | 高潮期 | 收尾期(各含章节范围)
195
86
 
196
- 分块处理后,相邻块的边界剧情可能被机械切分割裂。Stage 3 聚合时执行跨块合并检查:
87
+ 情节点索引:| 序号 | 章节 | 描述 | 归入把握(明确 / 待复核) |
197
88
 
198
- **合并判断标准**(必须同时满足):
199
- 1. ✓ 同一核心事件/目标:讲述的是同一个核心事件(不是两个独立事件)
200
- 2. ✓ 主要人物相同:涉及的主要人物相同
201
- 3. ✓ 剧情发展连续:剧情 B 是剧情 A 的自然延续
202
- 4. ✓ 非因果独立事件:不是因果关系的两个独立事件
89
+ ### 桥段词表
203
90
 
204
- **应该合并**:
205
- - "竞选县长秘书(准备阶段)" + "竞选县长秘书(投票阶段)" → 同一事件被分块割裂
206
- - "修炼突破(前期)" + "修炼突破(后期)" → 同一突破过程
91
+ 下表列常见桥段,允许补充表外项:
207
92
 
208
- **不应合并**:
209
- - "在办公室立足" + "竞选县长秘书" → 两个独立目标
210
- - "炼气期修炼" + "筑基期修炼" → 不同阶段的独立剧情
211
- - "东域修炼" + "中州历练" → 不同地图的独立剧情
93
+ | 题材 | 常见桥段 |
94
+ |------|----------|
95
+ | 都市/言情 | 打脸、扮猪吃虎、马甲掉落、先婚后爱、追妻火葬场、破镜重圆、替身、契约婚姻、萌宝助攻 |
96
+ | 玄幻/修仙 | 废柴逆袭、扮猪吃虎、越级战斗、夺宝、护短打脸、绝境翻盘、机缘逆天 |
97
+ | 历史/种田 | 先知先觉、改变历史、科举经商崛起、攒钱起家、技能点亮 |
98
+ | 悬疑/无限 | 信息差、反转打脸、规则怪谈、身份揭穿、复盘解谜 |
99
+ | 系统流 | 任务奖励、签到、面板升级、强制任务、积分兑换 |
100
+ | 重生/穿越 | 前世复仇、改命、身份调换、双重生、未卜先知 |
101
+ | 世情/家庭 | 极品亲戚、婆媳争斗、偏心打脸、维权反击、自我觉醒 |
102
+ | 直播/两界 | 直播整活、低调用资源、两界差价、围观震惊 |
212
103
 
213
- **保守原则**:当不确定时,倾向于不合并(保持独立)。
104
+ ### 跨批次合并
214
105
 
215
- **边界检测原则**:只检查相邻块中接近块边界的剧情对,远离边界的剧情不参与跨块合并。
106
+ 批次是读取单位,剧情点可能被批次边界切开;并行拆时同一轮的批次互相看不到对方新建的剧情点和别名,边界处常重复建 ID。合并时只看相邻批次边界附近的剧情对,四条同时满足才合并:同一核心事件或目标、主要人物相同、B 是 A 的自然延续、不是两个有因果关系的独立事件。
216
107
 
217
- ## 输出模板
108
+ - 应合并:“竞选县长秘书(准备阶段)”+“竞选县长秘书(投票阶段)”;“修炼突破(前期)”+“修炼突破(后期)”。
109
+ - 不合并:“在办公室立足”+“竞选县长秘书”(两个目标);“炼气期修炼”+“筑基期修炼”(不同阶段);“东域修炼”+“中州历练”(不同地图)。
218
110
 
219
- ### Stage 3 前置:故事框架识别
111
+ 拿不准时不合并。
220
112
 
221
- 输出写入 `剧情/故事线.md` 顶部:
113
+ ## 3. 故事线
222
114
 
223
- ```markdown
224
- ## 故事框架
115
+ 多条剧情聚合成故事线,写进 `剧情/故事线.md`(故事框架之后):
225
116
 
226
117
  | 项目 | 内容 |
227
118
  |------|------|
228
- | 框架类型 | {升级流/复仇线/日常单元/多线交织/蜕变成长/混合} |
229
- | 核心驱动 | {一句话描述全书的核心叙事引擎} |
230
- | 主轴矛盾 | {贯穿全书的根本矛盾} |
231
- | 升级机制 | {力量/地位/关系的递进方式,如无则填"—"} |
232
- | 叙事节奏模式 | {铺垫→冲突→爽点→新悬念 的典型周期} |
233
- | 判断依据 | {哪些章节/情节点支撑此判断} |
234
- | 预期剧情数 | {基于总章数的预期范围,参考上方预期剧情数量引导} |
235
- ```
236
-
237
- **框架识别后自检**(写入 `剧情/故事线.md` 框架部分之后):
119
+ | 标题 | 15 字以内 |
120
+ | 类型 | {主线/感情线/成长线/复仇线/夺宝线/冲突线/谜团线/其他} |
121
+ | 描述 | {300–600 字,以关键转折为界分 3–8 个发展阶段,每段写核心冲突、关键角色及作用、能力/资源/地位演进;追踪伏笔与回收;标注与其他故事线的交织关系} |
122
+ | 情绪引擎摘要 | {1–2 句:这条线怎样制造缺口、延迟满足、释放和余波;详情指向 `剧情/情绪模块.md`} |
123
+ | 套路运行方式 | {套路怎样嵌进故事框架而不是孤立桥段;详情指向模块 ID} |
124
+ | 主题 | {不超过 3 个} |
125
+ | 包含剧情 | {剧情标题,按时序,至少 1 个} |
126
+ | 模块引用 | {EM-001, EM-002;只写引用} |
238
127
 
239
- ```markdown
240
- ## 框架识别自检
241
-
242
- | 检查项 | 结果 | 说明 |
243
- |--------|------|------|
244
- | 覆盖率 | {X%} | {已覆盖章节数/总章节数} |
245
- | 粒度检查 | {通过/不通过} | {如不通过,说明哪个剧情过细/过粗} |
246
- | 独立性检查 | {通过/不通过} | {如不通过,说明哪个剧情不满足哪项标准} |
247
- | 数量检查 | {通过/不通过} | {实际剧情数 vs 预期范围} |
248
- ```
128
+ 故事线关系:并行 / 交织 / 依赖
249
129
 
250
- ### Stage 3 权威产物分工
130
+ ## 4. 剧情目录与权威分工
251
131
 
252
- Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,再分别写两个权威文件:
132
+ `剧情/README.md` 是轻量索引:
253
133
 
254
134
  ```markdown
255
135
  # 剧情目录索引
@@ -269,61 +149,14 @@ Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,
269
149
  |---|---|---|---|---|
270
150
  | `{标题}.md` | {类型} | {桥段标签} | 第{X}-{Y}章 | 共{N}章,约{M}万字 |
271
151
 
272
- 清单仅是检索索引投影(各列取剧情单元既有字段),剧情定义权威在各剧情单元文件;节奏/情绪权威仍在 `节奏.md` / `情绪模块.md`。
152
+ 清单只是检索索引,各列取剧情单元已有字段;剧情定义以各剧情单元文件为准。
273
153
  ```
274
154
 
275
- - `剧情/节奏.md` 是**节奏与触发点权威索引**:关键信息推进、爽点循环、情绪触动点、爆发节奏、长间隔风险都在这里落盘。
276
- - `剧情/情绪模块.md` 是**读者需求与可复现模块权威索引**:读者为什么爱看、情绪引擎如何运转、爽文套路如何嵌进故事框架、如何重组复现都在这里落盘。
277
- - `剧情/故事线.md` 和 `拆文报告.md` 只写摘要和引用,不复制完整模块定义;冲突时以下游写作读取 `剧情/节奏.md` / `剧情/情绪模块.md` 为准。
278
-
279
- ### Stage 3 剧情
280
-
281
- 输出 `剧情/{标题}.md`:
282
-
283
- | 项目 | 内容 |
284
- |------|------|
285
- | 标题 | 简洁有力,15字以内 |
286
- | 类型 | {主线/爱情/成长/复仇/寻宝/悬疑/战斗/权谋/修炼/危机/谜团/日常/其他} — 悬疑=主动推理调查,谜团=世界观/身世等未解之谜 |
287
- | 概要 | {150-300字,按时序连贯叙述这条剧情线的起承转合与因果,不靠同一连接词反复串联;含核心角色及定位、关键地点、关键道具(如有)、对主角/世界的影响} |
288
- | 起始目标 | {谁起初想做什么;若目标在本单元前已建立,引用首次建立位置} |
289
- | 主要阻碍 | {人物、规则、资源、信息或环境造成的具体阻碍} |
290
- | 关键变化来源 | {谁的选择/行动,或什么外部事件改变了局面;不默认由主角主动造成} |
291
- | 局面变化 | {目标、风险、关系、资源、知识或行动方向从什么状态变成什么状态} |
292
- | 得失与承担者 | {谁得到什么、谁失去什么或承担什么代价} |
293
- | 后续影响 | {结果如何促成、限制或迫使后续行动;未完成则标 open} |
294
- | 关键信息功能 | {这条剧情负责让读者获得/等待/误判/确认什么信息} |
295
- | 读者需求 | {满足安全感/优越感/期待感/情感补偿/认知反转/陪伴感等哪类需求} |
296
- | 情绪模块ID | {引用 `剧情/情绪模块.md` 中的 EM-001 等,不在此重复完整卡片} |
297
- | 套路框架位置 | {退婚打脸/迟来追悔/升级试炼/掉马震惊/以小搏大/其他;说明它如何在本故事框架内运转} |
298
- | 桥段标签 | 从桥段词表选命中项,逗号分隔;可补表外确有桥段;无匹配留空,不硬凑(词表见 [deconstruction-notes.md](deconstruction-notes.md)「桥段词表」) |
299
- | 章节范围 | 第{X}-{Y}章(共{N}章,约{M}万字) |
300
-
301
- 结构分布:铺垫期 | 发展期 | 高潮期 | 收尾期(各含章节范围)
302
-
303
- 情节点索引:| 序号 | 章节 | 描述 | 归属置信度 |
304
-
305
- ### Stage 3 故事线
155
+ ## 5. 节奏.md
306
156
 
307
- 输出 `剧情/故事线.md`(在框架识别之后):
157
+ 输入:批次关键事件与披露候选、三维节奏峰谷、逐章紧凑事实、剧情单元和故事线。只选改变主线、关系、核心风险或读者判断的事件;客观事件只登记一次,异常、线索、解释和确认写进同一事件的披露路径。每条 `EV/RV/AX/RH/TR` 都能回指章节、情节点或定位;过程没有展示时写“文本未展示”,不推断作者有意省略。
308
158
 
309
- 每条故事线:
310
-
311
- | 项目 | 内容 |
312
- |------|------|
313
- | 标题 | 简洁有力,15字以内 |
314
- | 类型 | {主线/感情线/成长线/复仇线/夺宝线/冲突线/谜团线/其他} |
315
- | 描述 | {300-600字,划分3-8个发展阶段,每个阶段含:核心冲突、关键角色及作用、能力/资源/地位演进、主题母题。追踪伏笔与回收关系链。标注与其他故事线的交织关系} |
316
- | 情绪引擎摘要 | {1-2句概述这条线如何制造缺口、延迟满足、释放和余波;详情指向 `剧情/情绪模块.md`} |
317
- | 套路运行方式 | {爽文/情感/悬疑等套路如何嵌入故事框架而不是孤立桥段;详情指向模块ID} |
318
- | 主题 | {不超过3个} |
319
- | 包含剧情 | {剧情标题列表,按时序排列。每条故事线至少包含1个剧情} |
320
- | 模块引用 | {EM-001, EM-002;只写引用,不复制完整卡片} |
321
-
322
- 故事线关系:并行 / 交织 / 依赖
323
-
324
- ### Stage 3 节奏.md(权威索引)
325
-
326
- 输出 `剧情/节奏.md`:
159
+ **爽点循环怎么拆**:铺垫层用压抑、困境或信息差制造情绪缺口;释放层是展露实力、打脸、碾压、目标达成或情感满足;反应层是旁人的反应,男频常见递进为质疑/轻视 → 震惊 → 强者重新评价 → 扩散传播,感情流常见为误会/冷待 → 动摇 → 维护/表态 → 关系公开;衔接层在旧循环结束时埋新钩子。反应篇幅比=反应总字数÷实力展示字数,1.5 是复核反应是否接住爽感的经验参照,结合题材判断。衔接层常见做法:打完小的来大的、胜利后发现隐患、身份暴露、利益升级、关系突变。
327
160
 
328
161
  ```markdown
329
162
  # 节奏索引:{书名}
@@ -336,7 +169,7 @@ Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,
336
169
  - 爽点频率:{每 N 章一次小爽点;每 M 章一次中高潮;大高潮位置}
337
170
  - 高潮分布:小高潮:第 {X/Y/Z} 章;中高潮:第 {X/Y} 章;大高潮:第 {X} 章
338
171
  - 冲突升级路径:{低级矛盾 → 中级矛盾 → 高级矛盾 → 终局矛盾;标注触发章节}
339
- - 伏笔跨章地图:{伏笔内容 | 第X章埋入方式 → 第Y章回收效果;仅列跨度超过2章或影响主线的伏笔}
172
+ - 伏笔跨章地图:{伏笔内容 | 第X章埋入方式 → 第Y章回收效果;只列跨度超过 2 章或影响主线的伏笔}
340
173
 
341
174
  ## 循环单元
342
175
 
@@ -356,7 +189,7 @@ Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,
356
189
  |---|---|---|---|---|---|---|---|---|
357
190
  | EV-001 | {书内时间或相对顺序} | {只登记一次的关键事件} | {RV-001异常→RV-002线索→RV-003确认;对应章节} | {各披露阶段的边界} | {关键角色在各阶段知道/不知道什么} | {读者或角色从何种判断变成何种判断} | {悬念/误导/反转/共情/期待} | {章节+source_locator+定位词} |
358
191
 
359
- 只选择改变主线、人物关系、核心风险或读者判断的节点。一个事件的多次披露合并进同一行的披露路径,不把多次披露算成多次客观事件;“作者真相”只填文本已经证实的事实。
192
+ 一个事件的多次披露合并进同一行的披露路径,不算成多次客观事件;“作者真相”只填文本已经证实的事实。
360
193
 
361
194
  ## 三维节奏表
362
195
 
@@ -384,9 +217,9 @@ Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,
384
217
  - 下游写作提醒:{新书复现时每章/每卷如何安排触动点}
385
218
  ```
386
219
 
387
- ### Stage 3 情绪模块.md(权威索引)
220
+ ## 6. 情绪模块.md
388
221
 
389
- 输出 `剧情/情绪模块.md`:
222
+ 输入:故事框架、剧情单元、`剧情/节奏.md`、读者需求判断、桥段标签。先抽象“读者为什么期待兑现”,再把具体剧情抽成情绪链和功能位;尽量给每张卡标来源(`剧情/节奏.md` 的 RH/TR 条目或章节情节点),没把握就留空,不硬凑、不删卡。不把原文专名、独特事件顺序、标志性台词写成可复用模板。
390
223
 
391
224
  ```markdown
392
225
  # 情绪模块:{书名}
@@ -411,11 +244,9 @@ Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,
411
244
 
412
245
  ## 可复现模块卡
413
246
 
414
- 至少展开全书最强的 3 个,值得复现的机制不设数量上限;不足 3 个按实际数量写,不用弱机制凑数。
415
-
416
247
  ### EM-001 {模块名}
417
248
 
418
- `读者想看什么`、`情绪链`、`戏剧单元`、`可替换项`、`不可照搬` 五项是灵感库登记门禁,缺任一项登记被拒;其余各行按需增列。字段名按本表原样写,不用同义名(读者期待/替换项/不可照搬项等一律不识别)。值可多行:字段名行没写值时,其后到下一个字段/标题前的列表或段落都算该字段的值。`可替换项` 写「功能位→任意X」(如「欺压者→任何压制主角的人」),不写「原书专名→任意X」——专名一旦写进抽象字段就是泄漏,登记会拒。
249
+ `读者想看什么`、`情绪链`、`戏剧单元`、`可替换项`、`不可照搬` 五项是灵感库登记门禁,缺任一项登记被拒;其余各行按需增列。字段名按本表原样写,读者期待、替换项这类同义名登记时不认。表格写法的值写在格子里;要写多行就改用 `- **字段**:` 列表,字段名行不写值,其后到下一个字段或标题前的内容都算该字段的值。`可替换项` 写「功能位→任意X」(如「欺压者→任何压制主角的人」),不写「原书专名→任意X」,专名写进抽象字段就是泄漏,登记会拒。
419
250
 
420
251
  | 字段 | 内容 |
421
252
  |---|---|
@@ -431,50 +262,34 @@ Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,
431
262
  | 失效情形 | {换关系、动机、代价或披露顺序后为什么可能无效} |
432
263
  | 反例/边界 | {文本中的弱兑现、失败尝试或当前无法验证之处} |
433
264
  | 关联节奏 | {`剧情/节奏.md` RH-001 / TR-001} |
434
- | 证据来源 | {剧情单元、EV/RV/AX、章节和原文定位;旧资料则写实际路径与证据等级} |
265
+ | 证据来源 | {剧情单元、EV/RV/AX、章节和原文定位;旧资料写实际路径与证据等级} |
435
266
 
436
267
  ## 重组与复现指南
437
268
 
438
269
  1. 先选读者需求,再选模块卡,不要从原文桥段倒抄。
439
270
  2. 保留情绪链和功能位,替换人物、场景、动机、道具、事件素材。
440
- 3. 复现到新书大纲时,至少改变:冲突对象、公开/私密场景、触发证据、余波方向中的三项。
441
- 4. 若人设与模块冲突,以人设驱动重构模块;不要为了套套路扭曲角色。
271
+ 3. 复现到新书大纲时,至少改变冲突对象、公开/私密场景、触发证据、余波方向中的三项。
272
+ 4. 人设与模块冲突时,以人设驱动重构模块;不要为了套套路扭曲角色。
442
273
  ```
443
274
 
444
- ## 质量阈值体系
445
-
446
- Stage 3 完成后自检(Stage 4 的硬事实按 [synthesis-inputs.md](synthesis-inputs.md) 做可溯源自检):
447
-
448
- | 指标 | 阈值 | 计算 | 不达标处理 |
449
- |------|------|------|------------|
450
- | 置信度(归属比例) | >= 0.85 | 有明确归属的情节点 / 剧情单元内情节点总数 | 低于 0.85 标记「待复核」 |
451
- | 覆盖率 | 85%-95% | 已归类情节点 / 总情节点数 | <85% 触发孤立情节二次分类;>95% 复核边界 |
452
- | 关键信息覆盖 | 每章有结论 | 含有效信息行或明确“无独立信息变化”的章节数 / 摘要章节数 | 按原输入类型回到 Stage 2 补提取;旧成果章仍不得回读原文 |
453
- | 模块来源标注 | best-effort | 情绪模块卡尽量标注 RH/TR 或章节情节点来源 | 无把握的来源留空,不硬凑、不删模块(同桥段标签的 best-effort 处理)|
454
- | 披露引用完整 | 100% | 关键双时间线中每个 `RV-*` 都属于同一行的 `EV-*` 披露路径,同一客观事件不因多次披露重复建档 | 缺引用或重复事件时回到批次观察合并 |
455
- | 三维解释完整 | 100% | `AX-*` 的事件、情绪、篇幅三轴都有理由与证据 | 缺轴时补“无明显变化/文本未展示”及依据,不用分数占位 |
456
- | 重叠率 | <= 35% | 跨剧情单元共享情节点 / 总情节点数 | >35% 提示边界模糊,建议合并 |
457
-
458
- > **小体量节选(< 30 章、单主线连续叙事)的特例**:此类素材按时序连续切分时,覆盖率天然接近 100%、散落情节接近 0,这是线性结构的正常结果,不算过度归并。此时复核重点是「有无把不同剧情强行并进同一条」,而非覆盖率数值本身——不必为压到 95% 以下而人为拆分。
459
-
460
- ## 散落情节兜底
461
-
462
- 阶段 3 聚合完成后执行(6 步,含覆盖率验证):
463
-
464
- 1. **计算孤立比例**:孤立情节点数 / 总情节点数。若比例 < 5%,跳过归类与聚类,直接按步骤 5 归档并标记「少量散落,无需再归类」
465
- 2. **筛选未分配情节点**:用 `digest --part chapters --points brief` 按章节窗口列出情节点简表,收集未归类到任何剧情单元的情节点
466
- 3. **三层置信度归入**:按角色、主题、地点与因果线索判断相关性;分档为人工判断,不当作统计概率
467
- - **强相关**(0.8-1.0):目标与因果归属明确 → 归入现有剧情单元,标记 `[孤立情节归入]`
468
- - **中等相关**(0.5≤相关性<0.8):角色或主题相关,目标归属尚待确认 → 归入并标记 `[低置信归入]`,待复核
469
- - **弱相关**(<0.5):不建议强行归入,宁可放入未分配
470
- 4. **主题聚类**:弱相关的情节点按主题关键词聚类
471
- - 聚类结果 >= 5 个情节点 → 形成候选剧情单元,标记 `[聚类生成]`
472
- - 聚类结果 < 5 个 → 不单独建条
473
- 5. **散落情节归档**:仍无法归类的写入 `剧情/散落情节.md`,按章节排列,标注原因
474
- - 不丢弃任何情节点,不要强行分配到不相关的剧情
475
- - 在拆文报告中统计散落情节点数量和占比
476
- 6. **覆盖率验证**:
477
- - 覆盖率 = (总数 - 散落数) / 总数 × 100%
478
- - 目标:85%-95%
479
- - < 85% → 回到步骤 3 复核遗漏;证据仍不足时保留未分配并报告缺口,不为达标强行归类
480
- - > 95% → 检查是否有过度归并,复核边界剧情单元
275
+ ## 7. 散落情节与收尾自检
276
+
277
+ 剧情单元都写完后,用 `digest --part chapters --points brief` 收集没归进任何剧情单元的情节点:
278
+
279
+ 1. 孤立情节点不到总数 5% 时,直接写进散落情节,标「少量散落,无需再归类」。
280
+ 2. 按角色、主题、地点与因果线索判断:目标与因果归属明确的归入现有剧情单元,标 `[孤立情节归入]`;只有角色或主题相关、目标归属待确认的归入并标 `[低置信归入]`;更弱的不硬归。
281
+ 3. 不硬归的按主题聚类,5 个及以上情节点成一条候选剧情单元,标 `[聚类生成]`;不足 5 个不单独建条。
282
+ 4. 仍归不了的按章节写进 `剧情/散落情节.md` 并注明原因,不丢弃任何情节点;拆文报告统计散落数量和占比。
283
+
284
+ 写完全部产物后自检一次;自检结果不落盘,`剧情/故事线.md` 不写自检表:
285
+
286
+ | 检查 | 标准 | 不达标时 |
287
+ |---|---|---|
288
+ | 覆盖率 | 已归进剧情单元的情节点÷总情节点,85%–95% | 低于 85% 回第 2 步复核遗漏,证据不足就留在散落情节;高于 95% 复核是否过度归并 |
289
+ | 重叠 | 被多条剧情单元共用的情节点不超过总数的三分之一 | 边界模糊,考虑合并 |
290
+ | 粒度与独立性 | 没有上方粒度混乱表里的四种情况,每条剧情都满足四项独立标准 | 拆分、合并或降为阶段 |
291
+ | 关键信息 | 每章都有信息行或明确“无独立信息变化” | 按原输入类型回到 Stage 2 补提取;旧成果章不回读原文 |
292
+ | 披露引用 | 每个 `RV-*` 属于同一行 `EV-*` 的披露路径,同一事件不因多次披露重复建档 | 回到批次观察合并 |
293
+ | 三维解释 | `AX-*` 三轴都有理由与证据 | 补“无明显变化/文本未展示”及依据,不用分数占位 |
294
+
295
+ 少于 30 章、单主线连续叙事的节选按时序切分时覆盖率天然接近 100%、散落接近 0,这是正常结果;复核重点是有没有把不同剧情强行并进一条,不必为压低覆盖率人为拆分。