@oh-story/dsh 0.1.16 → 0.1.17

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 (264) hide show
  1. package/README.md +11 -11
  2. package/lib/client.js +26 -15
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/package.json +4 -0
  5. package/lib/index.js +42 -16
  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/index.d.ts.map +1 -1
  218. package/lib/types/native-hooks.d.ts.map +1 -1
  219. package/lib/types/skill-provider.d.ts.map +1 -1
  220. package/lib/types/workspace-route.d.ts.map +1 -1
  221. package/lib/video-recap/package.json +4 -0
  222. package/package.json +23 -23
  223. package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
  224. package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -45
  225. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
  226. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
  227. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
  228. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
  229. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -101
  230. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -92
  231. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
  232. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -503
  233. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -34
  234. package/lib/oh-story/skills/story-long-write/references/expression.md +0 -76
  235. package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +0 -63
  236. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
  237. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
  238. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -272
  239. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
  240. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -710
  241. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -624
  242. package/lib/oh-story/skills/story-long-write/references/story-logic.md +0 -65
  243. package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -306
  244. package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
  245. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -285
  246. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
  247. package/lib/oh-story/skills/story-review/references/review-quality.md +0 -243
  248. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
  249. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
  250. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
  251. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -145
  252. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -433
  253. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -426
  254. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -384
  255. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -144
  256. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -238
  257. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -464
  258. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
  259. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -89
  260. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
  261. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -145
  262. package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -116
  263. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -207
  264. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
@@ -10,7 +10,9 @@ story-long-analyze 的可选后置管道:把 Stage 3 已抽象好的 EM 机制
10
10
 
11
11
  只读:各书 `剧情/情绪模块.md`(EM 完整卡+其他机制索引)、按 EM 卡「关联节奏/证据来源」定点查证的 `剧情/节奏.md` 与剧情单元、现有 `灵感库/灵感索引.csv` 与 NM/CBA 卡。
12
12
 
13
- **禁止读取 `原文/`、`chapter_index.csv` 与逐章摘要正文。** 一本书没有 `剧情/情绪模块.md` 或完整卡字段不全时,停止并返回 `repair_action`:先用 `--intent enhance` 补跑 Stage 3+(从既有摘要聚合,原文读取可为 0),不得在灵感层代写机制卡。原文追加或局部变化后,先由主管道重建索引、补齐分析,并按请求更新 EM 卡,再重跑登记;`validate` 的 `ia_em_set_mismatch` 会指出未重登记的书。
13
+ **禁止读取 `原文/`、`chapter_index.csv` 与逐章摘要正文。** 入库前先对每本书跑一次只读检查器(SKILL.md「Phase 1」),看 `classification`、`current_capabilities`、`conflicts` 和覆盖范围。缺 `剧情/情绪模块.md` 或完整卡字段不全(`check-atoms` 报 error)时停下,请作者回拆文主流程:缺文件补 Stage 3,卡不全按 SKILL.md「Phase 2」末段修卡,都不读原文;不得在灵感层代写机制卡,也不得把旧资料概括成伪造的主产物。原文追加或局部变化后,先由主管道重建索引、补齐分析,并按请求更新 EM 卡,再重跑登记;`validate` 的 `ia_em_set_mismatch` 会指出未重登记的书。
14
+
15
+ 各层引用拆文产物的约定:单书案例以 `剧情/*.md` 的剧情单元为准,可迁移机制以 `剧情/情绪模块.md` 的 `EM-*` 为准,`拆文报告.md` 只是阅读入口,不作第二份事实来源。客观事件、披露节点和三维节奏分别用 `EV-*`、`RV-*`、`AX-*`,机制卡通过 ID 引用,不跨层复制全文。
14
16
 
15
17
  ## 公共目录
16
18
 
@@ -36,10 +38,21 @@ story-long-analyze 的可选后置管道:把 Stage 3 已抽象好的 EM 机制
36
38
  ```
37
39
 
38
40
  - 完整卡(读者想看什么/情绪链/戏剧单元/可替换项/不可照搬 五字段齐)登记为 `grade=full`;「其他机制索引」条目登记为 `grade=index`。
39
- - 五字段缺失报 `em_fields_missing`,字段在而值空报 `em_field_value_empty`(多行值合法:值可写在字段名行之后、下一个字段/标题之前的列表或段落里)。机制字段(标题/读者想看什么/情绪链/戏剧单元/可替换项)的专名检查分两级:本卡「不可照搬」已点名该词却仍在抽象字段使用、或 `可替换项` 写成「专名→任意X」(报 `replaceable_antipattern`),都是高置信真引用,报 `source_specific_name_in_mechanism` error;仅角色卡文件名子串命中而无佐证的降为 `leak_suspect` warning 并列出命中字段,人工复核。都指回 Stage 3 修复;「不可照搬」字段本身例外——点名原书专名正是它的职责。
40
- - 专名检查使用的角色名单取自工作区 `拆文库/{书}/角色/`。工作区从 `--root` 向上探测含 `拆文库/` 的目录,探测不到报 `workspace_not_located`(可加 `--workspace` 显式指定),不得回退空名单静默通过;输出恒带 `character_roster` 数,书目录在而 `角色/` 缺失报 `character_roster_missing` warning,提示人工确认无专名。
41
- - 所有卡的所有问题一次收集报全(`errors` 数组),有任一 error 即整体不写盘。落盘 `剧情/情绪模块.md` 后先用只读的 `check-atoms`(与 register-atoms 同参数)自检:输出卡数、索引数、名单规模与全部问题,不写任何文件。
42
- - 一次原子写入、重跑逐字节幂等;多本书逐本串行登记,不要并行跑 `register-atoms`。`--module` 必须是 `拆文库/{--book}/` 下的文件(`module_book_mismatch`);卡头须为 `### EM-xxx 名称`,缺名称报 `em_title_missing`,认不出的 EM 标题行报 `em_header_unrecognized`,同卡重复字段报 `em_field_duplicate`——三者都意味着卡被截断或并进了上一张。本步不得调用模型重新概括机制。
41
+ - 先用只读的 `check-atoms`(与 register-atoms 同参数)自检:输出卡数、索引数、角色名单规模与全部问题,不写文件。所有卡的问题一次报全,有任一 error 就整体不写盘。
42
+ - 一次原子写入、重跑逐字节幂等;多本书逐本串行登记,不要并行跑 `register-atoms`。本步不得调用模型重新概括机制。
43
+ - 专名检查的角色名单取自 `拆文库/{书}/角色/`;从 `--root` 向上查找含 `拆文库/` 的工作区,输出恒带 `character_roster` 数。
44
+
45
+ 报错处理:error 都回 Stage 3 改 `剧情/情绪模块.md` 再登记,warning 由人工复核。
46
+
47
+ | 报错 | 意思 | 怎么修 |
48
+ |---|---|---|
49
+ | `em_fields_missing` / `em_field_value_empty` | 五个必填字段缺失或值空 | 补齐;表格写法把整段值写进格子,`- **字段**:` 列表写法的值可以接在字段名行之后多行写 |
50
+ | `em_title_missing` / `em_header_unrecognized` / `em_field_duplicate` | 卡头不是 `### EM-xxx 名称`、标题行认不出、同卡字段重复 | 多半是卡被截断或并进了上一张,按模板重写卡头 |
51
+ | `source_specific_name_in_mechanism` / `replaceable_antipattern` | 本卡「不可照搬」点名的专名又出现在标题、读者想看什么、情绪链、戏剧单元或可替换项里,或可替换项写成「专名→任意X」 | 改成功能位;「不可照搬」字段本身点名专名是它的职责,不算 |
52
+ | `leak_suspect`(warning) | 只是角色卡文件名子串命中,没有佐证 | 人工看命中字段,确认不是专名就保留 |
53
+ | `character_roster_missing`(warning) | 书目录在但没有 `角色/` | 人工确认卡里没有专名 |
54
+ | `workspace_not_located` | 找不到含 `拆文库/` 的工作区 | 加 `--workspace` 指定,不得用空名单放行 |
55
+ | `module_book_mismatch` | `--module` 不在 `拆文库/{--book}/` 下 | 改对书名或路径 |
43
56
 
44
57
  ### 2. 单小说灵感合并
45
58
 
@@ -15,15 +15,9 @@ Stage 4 另用 `render_relation_chart.py` 从 `角色/角色关系.md` 生成人
15
15
  `chapter_index.csv` 是机械章节边界的唯一依据。批次和阶段状态只写在 `_progress.md` 的
16
16
  `story-long-analyze:runtime-state` 受管区。`_analysis_cache/` 保存完整结果和恢复证据,不承担状态库功能。
17
17
 
18
- 既有项目中的 `schema_version: 2` 沿用且不修改;该值只供报告,不用于否定旧成果。`_progress.md` 不再保存机械章节边界镜像。
18
+ 既有项目中的 `schema_version: 2` 沿用且不修改;该值只供报告,不用于否定旧成果。
19
19
 
20
- 禁止创建 `run-plan.json`、`batch-checkpoints.json`、逐批 JSON receipt 或 Stage receipt。计划始终打印到标准输出,由当前运行直接消费。
21
-
22
- 所有命令使用实际 Python 与 skill 根路径:
23
-
24
- ```text
25
- "{PYTHON}" "{story-long-analyze skill 根}/scripts/{脚本名}.py" ...
26
- ```
20
+ 计划只打印到标准输出,由当前运行直接消费;不另建计划、检查点或逐批回执文件。`{PYTHON}` 与路径占位见 SKILL.md「运行约定」。
27
21
 
28
22
  ## 1. 先检查目录
29
23
 
@@ -34,13 +28,13 @@ Stage 4 另用 `render_relation_chart.py` 从 `角色/角色关系.md` 生成人
34
28
  - 路径不存在、不是目录或不可读:非零退出,先修正路径。
35
29
  - 已存在的空目录:`empty / new_analysis`。
36
30
  - 完整旧项目:`direct_use`,不建索引、不读原文。
37
- - 部分项目:精确报告 `missing_semantic_chapters` 与 `missing_summary_chapters`。
31
+ - 部分项目:带 `--compact` 时缺章看 `semantic_coverage.missing_ranges`;不带时另有逐章的 `missing_semantic_chapters` 与 `missing_summary_chapters`。
38
32
  - 新旧投影混存:`mixed_sources: true` 并列明逐章来源,仍可直接使用完整项目。
39
- - `stage_repairs` 中的情绪、节奏和文风修复与 Stage 2 缺章分开处理。
33
+ - `stage_repairs` 按 SKILL.md「Phase 2」第二张表补对应 Stage,与 Stage 2 缺章分开处理。
40
34
 
41
35
  ## 2. 需要原文时建立或校验索引
42
36
 
43
- 完整旧成果默认直接使用和纯旧成果增强无需索引。全新或部分完成且仍需读取原文时运行;只补文风时按文风协议单独建索引:
37
+ 完整旧成果默认直接使用;纯增强也无需索引。全新或部分完成且仍需读取原文时运行;只补文风时按 style-profile-generator.md 单独建索引:
44
38
 
45
39
  ```text
46
40
  "{PYTHON}" "{story-long-analyze skill 根}/scripts/build_chapter_index.py" \
@@ -64,7 +58,7 @@ Stage 4 另用 `render_relation_chart.py` 从 `角色/角色关系.md` 生成人
64
58
  意图:
65
59
 
66
60
  - `continue`:补缺失语义章,以及缓存失效的已记录批次;已有语义但缺摘要时用旧成果投影;
67
- - `enhance`:只读既有拆文成果形成 `REUSE-{起章}-{止章}` 批次,原文读取数必须为 0。
61
+ - `enhance`:把还没有完整批次缓存的已拆章做成 `REUSE-{起章}-{止章}` 批次,从旧成果提取跨章观察。逐章成果已覆盖全书时原文读取数为 0;仍有缺章时计划照样列出这些章的 `RAW` 批次,照计划处理,或先问作者是否只增强已拆的范围(加 `--chapters`)。
68
62
 
69
63
  没有“整本重拆”意图:已有摘要永不覆盖。整本重拆就换一个新目录重新拆。
70
64
 
@@ -88,8 +82,8 @@ Stage 4 另用 `render_relation_chart.py` 从 `角色/角色关系.md` 生成人
88
82
  **派发方式**:默认第 2 档有限并行,不请作者在三档里选。作者问起能不能更快或更稳、或明确要求时,才按 author-facing「作者问起怎么拆」用白话解释并切换。三档都用计划给的 `handoff_cache`,它随提交进度自动落到对应的批次上。
89
83
 
90
84
  1. **串行**:上一批提交成功再派下一批,交接缓存就是紧邻的前一批。优点:剧情点、未决悬念和已确认别名逐批完整接续,Stage 3 合并最省事。缺点:最慢,墙钟时间随批数线性增长。
91
- 2. **有限并行**:每轮同时派 3 批,同轮的交接缓存都是本轮开始前最近一个已提交批次;整轮提交完再派下一轮。优点:并发执行可减少等待,接续最多滞后一轮。缺点:同轮批次互相看不到对方新建的剧情点与别名,边界处可能重复建 ID,靠 Stage 3 跨块合并。
92
- 3. **不限批次顺序**:不等前批,同时在跑的子代理最多 12 个(宿主或账号上限更低时以环境为准);在跑的少于上限一半时,补派到上限。补派用 `plan --next {在跑数+补派数}`,跳过已在跑的批次号(计划只认已提交)。遇到限流、超时或子代理报错,把上限减半后再补派。优点:可同时处理更多批次。缺点:接续最弱,剧情点与别名最依赖 Stage 3 跨块合并和 Stage 4 归并;并发越高,被限流、整批重跑的风险越大。
85
+ 2. **有限并行**:每轮同时派 3 批,同轮的交接缓存都是本轮开始前最近一个已提交批次;整轮提交完再派下一轮。优点:并发执行可减少等待,接续最多滞后一轮。缺点:同轮批次互相看不到对方新建的剧情点与别名,边界处可能重复建 ID,靠 Stage 3 跨批次合并。
86
+ 3. **不限批次顺序**:不等前批,同时在跑的子代理最多 12 个(宿主或账号上限更低时以环境为准);在跑的少于上限一半时,补派到上限。补派用 `plan --next {在跑数+补派数}`,跳过已在跑的批次号(计划只认已提交)。遇到限流、超时或子代理报错,把上限减半后再补派。优点:可同时处理更多批次。缺点:接续最弱,剧情点与别名最依赖 Stage 3 跨批次合并和 Stage 4 归并;并发越高,被限流、整批重跑的风险越大。
93
87
 
94
88
  作者没提、要求一次拆完 / 全量拆、多本书一起拆,或由 story-import 自动续跑时,都按第 2 档;第 1、3 档只在作者明确选择时使用。多本书同拆时按书轮流派,第 3 档的总并发也不超过同一上限。第 1、2 档用 `plan --next 1` / `--next 3` 取批。子代理不可用时主会话自己写批次:先读 [stage2-extraction.md](stage2-extraction.md),提取规则与包裹标记照其中「批次提交格式」:
95
89
 
@@ -2,20 +2,35 @@
2
2
 
3
3
  开头时刻(Phase 1 到 Stage 1 停下来问)读本文件。作者读到的 `快速预览.md` 与停下来问的话术见 [author-facing.md](author-facing.md)。
4
4
 
5
- ## Stage 0 概要(概要初稿)
5
+ ## Stage 0 机械索引与概要初稿
6
6
 
7
- Stage 0 只能基于章节标题 + 卷段结构 + 抽样开头/结尾产出 概要初稿(~200 字)。**禁止**在此阶段写出 500-1000 字 包含主要剧情与因果的 概要——读取范围不足以支撑那个密度。完整版在 Stage 5 落盘覆盖(见 [stage5-report.md](stage5-report.md)「完整概要」)。
7
+ 全新和部分完成且要读原文时先建索引(原文放置见 SKILL.md「运行约定」):
8
8
 
9
- 输出 `概要.md`:总字数{X}万 | 总章数{N} | 题材{类型}
9
+ ```text
10
+ "{PYTHON}" "{story-long-analyze skill 根}/scripts/build_chapter_index.py" --source "{拆文目录}/原文/原文.txt" --output "{拆文目录}/chapter_index.csv" --locator-path "原文/原文.txt"
11
+ ```
12
+
13
+ 完整旧成果直接使用或纯增强时不建索引。原文变化或章号对不上时脚本会停下并返回 `author_message`,按 [index-rebuild.md](index-rebuild.md) 处理。
14
+
15
+ 概要初稿只基于章节标题、卷段结构和抽样开头/结尾,写约 200 字,不写 500–1000 字的剧情与因果——读取范围不足,完整版由 Stage 5 覆盖(见 [stage5-report.md](stage5-report.md)「完整概要」)。逐章标题和字数在 `chapter_index.csv` 里,概要不列。
16
+
17
+ ```markdown
18
+ # 概要:{书名}
19
+
20
+ 总章数:{N}
21
+ 总字数:{X}万
22
+ 题材:{类型}
10
23
 
11
24
  | 卷/段 | 章节范围 | 章数 | 预估字数 |
12
25
  |-------|----------|------|----------|
13
26
  | {卷名} | 第1-X章 | {N} | {W}万 |
14
27
 
15
- 首版概要(~200字,概要初稿):{从章节标题 + 第1章+末章抽样归纳出的核心驱动 + 主角名 + 大致设定,不要硬凑剧情转折}
16
- 章节索引:| 章节 | 标题 | 字数 |
28
+ ## 首版概要
29
+
30
+ {约 200 字:从章节标题和第 1 章、末章抽样归纳出的核心驱动、主角名、大致设定,不硬凑剧情转折}
31
+ ```
17
32
 
18
- > Stage 5 完成后会就地覆盖此文件的「首版概要」段为「全书概要(500-1000字 包含主要剧情与因果的)」。章节索引和卷段表保留不变。
33
+ 「总章数:N」逐行写,检查器靠这一行认总章数。Stage 5 只替换「首版概要」一节,基本信息和卷段表保留。
19
34
 
20
35
  ## Stage 1 黄金三章
21
36
 
@@ -31,7 +46,7 @@ Stage 0 只能基于章节标题 + 卷段结构 + 抽样开头/结尾产出 概
31
46
 
32
47
  **结构拆解**:| 段落范围 | 功能{铺垫/冲突/爽点/收尾} | 字数 |
33
48
 
34
- **爽点分析**:类型{装逼打脸/逆袭反转/获得机缘/信息差碾压/情感满足} | 铺垫{X}字 / 释放{Y}字 / 铺放比{Z:1} | 情绪曲线
49
+ **爽点分析**:类型{装逼打脸/逆袭反转/获得机缘/信息差碾压/情感满足/扮猪吃虎} | 铺垫{X}字 / 释放{Y}字 / 铺放比{Z:1} | 情绪曲线
35
50
 
36
51
  **反应层拆解**(如有):
37
52
 
@@ -56,6 +71,7 @@ Stage 0 只能基于章节标题 + 卷段结构 + 抽样开头/结尾产出 概
56
71
 
57
72
  > 第二、三章额外关注:信息密度 / 冲突升级(vs上章) / 节奏变化 / 爽点间隔字数。
58
73
  > 反派若为非人形(灵气复苏/末世/国运等抽象对抗型),在「爽点分析」处改用抽象对抗型路由:核心对抗面{描述} | 紧迫感来源{描述} | 升级机制{描述} | 叙事替代{用什么替代传统打脸}。
74
+ > 感情流、女频(言情、宅斗、甜宠等)在「爽点分析」处改用关系路由:情感张力来源{误会/身份差/旧怨/契约等} | 关系推进一步{从什么到什么} | 虐甜安排{先虐后甜/甜中藏刀等} | 读者期待{想看谁对谁表态};「反应层拆解」改看旁人对这段关系的反应。快速预览的「爽点设计」一项按情感兑现打分。
59
75
 
60
76
  同一次黄金三章阅读优先另写 `_style-sample.txt`,减少 Stage 6 的定点取样;旧项目没有该缓存时,Stage 6 仍可按索引选择 4–6 章并只读取对应行段:
61
77
 
@@ -97,28 +113,10 @@ Stage 1 停靠点交付物 `拆文库/{书名}/快速预览.md`,模板见 [aut
97
113
  | 代入钩 | 读者共鸣 | 相似困境 |
98
114
  | 信息差钩 | 读者知道角色不知道的 | 「他还不知道面前是……」 |
99
115
 
100
- ### 爽点循环结构
101
-
102
- 三层微观循环:
103
- - **铺垫层(蓄势)**:压抑/困境/信息差制造情绪缺口
104
- - **释放层(爽感)**:展露实力/打脸/碾压,强度结合兑现结果、反应层递进与篇幅判断
105
- - **衔接层(承转)**:旧循环结束埋新钩子
106
-
107
- 反应层递进:质疑/轻视 → 震惊/打脸 → 强者重新评价 → 扩散效应
108
- 反应篇幅比 = 反应总字数 / 实力展示字数。1.5 是复核反应层的经验参照,最终结合具体反应与题材判断。
109
-
110
- ### 衔接过渡模式
111
-
112
- | 模式 | 机制 | 示例 |
113
- |------|------|------|
114
- | 打完小的来大的 | 释放层对手引出更强对手 | 打败弟子→师父找上门 |
115
- | 胜利发现隐患 | 释放成功暴露新问题 | 赢了比赛→发现中毒 |
116
- | 身份暴露/反转 | 释放中身份被识破 | 打脸后被认出真实身份 |
117
- | 利益升级 | 成果指向更大目标 | 线索→更深层宝藏 |
118
- | 关系突变 | 释放改变关系格局 | 救的人变仇家后代 |
119
-
120
116
  ### 题材爽点形态
121
117
 
118
+ 铺垫层制造情绪缺口,释放层负责兑现,反应层记录旁人反应;衔接层及完整拆法见 Stage 3 节奏一节。
119
+
122
120
  | 题材 | 释放层形态 | 反应层来源 | 铺垫层缺口 |
123
121
  |------|-----------|-----------|-----------|
124
122
  | 玄幻/修仙 | 实力碾压/境界突破 | 同门/对手/长老震惊 | 功法残缺/资源匮乏/血脉压制 |
@@ -126,3 +124,4 @@ Stage 1 停靠点交付物 `拆文库/{书名}/快速预览.md`,模板见 [aut
126
124
  | 系统文 | 解锁稀有技能/任务奖励 | 系统稀有度标注 | 任务失败惩罚/技能冷却 |
127
125
  | 历史 | 以弱胜强/先知优势 | 谋士/帝王/敌将震惊 | 信息不对称/身份低微 |
128
126
  | 悬疑 | 真相揭露/反杀 | 被揭穿者崩溃/读者恍然 | 线索误导/嫌疑人洗白 |
127
+ | 言情/宅斗 | 当众表态/护短/真相大白 | 情敌/长辈/旁观者 | 误会/身份差/被轻视 |
@@ -1,128 +1,42 @@
1
- # Stage 2:批次提取规则与模板
1
+ # Stage 2:主会话自己写批次
2
2
 
3
- 子代理可用时由 `chapter-extractor` 按自己的定义提取,主会话只按 [pipeline-ops.md](pipeline-ops.md) 派发与提交,不读本文件。子代理不可用、主会话自己写批次时读本文件。
3
+ 子代理可用时由 `chapter-extractor` 按它自己的定义提取,主会话只按 [pipeline-ops.md](pipeline-ops.md) 派发与提交,不读本文件。子代理不可用、主会话自己写批次时读本文件。本文件与 chapter-extractor 模板同序同条,只把「写文件、回回执」换成主会话自己提交。
4
4
 
5
- ## 提取方法
5
+ ## 材料与分析边界
6
6
 
7
- 先运行 `manage_analysis_run.py plan`,只执行标准输出中的内存计划。Stage 2 不再存在逐章独立调用,也不落盘计划文件。
7
+ 按用户提供的虚构小说提取摘要、情节点、角色与写法,只根据可读材料分析,不补写剧情。家暴、出轨、复仇、虐待、暴力冲突、情爱张力等虚构情节按文本证据分析,不因题材淡化、改写或回避事件与因果。个别片段确实处理不了时只跳过该片段,照常写本章其余情节点与摘要,并在该章末标注「{N}处片段已跳过」。
8
8
 
9
- ### A. 已有成果批次
9
+ ## 两种互斥输入模式
10
10
 
11
- 对 `existing-results` 批次只读取计划列出的旧拆文文件:
11
+ 一次只做计划里的一个批次,按计划给的范围,不另选、不推算;一批最多 3 章,单个超长章独占一批。批次是读取单位,剧情点是分析单位,二者不一一对应。
12
12
 
13
- 1. 上游 `章节/第N章_摘要.md` 优先;
14
- 2. 没有摘要时复用黄金三章;
15
- 3. 同一章只选择一个优先来源。
13
+ - **`raw-original`**:按计划的逐章 `source_locator` 用行号读原文,同一次阅读写完逐章事实和跨章剧情点,不为生成逐章文件再读一次。每章在全书只属于一个原文块。
14
+ - **`existing-results`**:只读计划列出的 `source_files`(上游 `章节/第N章_摘要.md` 优先,没有时用黄金三章,同一章只取一个来源),不打开原文。旧成果没有的信息写“旧资料未提供”。计划列出的摘要缺口落在本批时,为本批每章写章节块(格式同原文块,情节点至少 1 个,按旧资料写到的事件拆);没有缺口时只写 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->` 和跨章观察。
16
15
 
17
- 从旧成果二次提取剧情点、关键事件与披露候选、关系和三维节奏。不得打开原文,不得为了统一格式重写旧逐章文件。旧资料没有的信息留空或写“旧资料未提供”。
16
+ 有交接缓存(计划的 `handoff_cache`)时只读其中 `### 跨批状态`,承接已确认别名、未闭合剧情点、悬念、关系和待核事项。交接批与本批之间隔着未拆的章节时,不假设那几章已接上:延续不了的目标另建剧情点 ID,交给 Stage 3 合并。
18
17
 
19
- ### B. 未拆原文章节块
18
+ ## 交付:写文件再提交
20
19
 
21
- 对 `raw-original` 批次一次读取一个不重叠的连续块:
20
+ 把完整输出写进 `{拆文目录}/_analysis_cache/输入-{批次ID}.md`,按 pipeline-ops「执行与提交一个批次」运行 `commit`;提交成功后删掉这份输入。提交被拒时按错误码定位到章号和情节点编号,只改出错处再提交;`raw-original` 缺内容时按 `source_locator` 定点回看,不重读整批。整体结构错乱(标记缺失、章节块错位)才整份重写。
22
21
 
23
- - 普通短章通常 3 章;
24
- - 长章或信息密集时 1-2 章;
25
- - 每块最多 3 章,默认同时受 25,000 字符上限约束;
26
- - 遇到卷界、来源缺口或空章必须断开;
27
- - 每章在全书运行计划中只属于一个原文块。
22
+ ## 共同事实边界
28
23
 
29
- 同一次理解产生两层结果:
24
+ - `A 明确`:输入资料直接给出;`B 强推断`:多个明确细节共同支持;`C 暂定`:证据不足,只留作待核。
25
+ - 不把后来结果倒推成人物早有计划。
26
+ - `涉及人物` 与剧情点只写具体人物:群体称呼(村民们)、无名路人和泛称(大哥、掌柜、老师这类)不单列,除非原文固定用它指代某一个人。
27
+ - 逐章事实与情节点按文本披露顺序;客观发生顺序只进入关键事件与披露候选,交给 Stage 3 合并双时间线。
28
+ - 原文模式的证据写 `source_locator + 5–15字定位词`;已有成果模式写资料路径和其中的短定位词。
29
+ - 不复制长段原文,不为填表重复改写同一事实。
30
30
 
31
- 1. 每章紧凑事实:概要、因果、信息变化、状态变化、三维分数、钩子、证据和情节点(一般 10–20 个、最多 30,短章按字数降下限);
32
- 2. 批次观察:剧情点、关键事件与披露候选、关系、三维异常点和跨批状态。
31
+ ## 批次提交格式
33
32
 
34
- 逐章兼容文件由脚本从紧凑事实机械生成;批次缓存保留全部逐章紧凑事实和跨章观察,作为恢复证据。全局聚合用 `digest` 取跨章观察与所需逐章字段,不整份读缓存,也不逐个打开章节文件。不得第二次读取该块来生成逐章文件,也不得把 50-60 章交给一个 agent 后让它自行拆成多个“批次”。
35
-
36
- ### C. 剧情点是主要分析单位
37
-
38
- 每个剧情点记录:
39
-
40
- | 字段 | 说明 |
41
- |---|---|
42
- | 章节范围 | 当前可确认的起止章;允许跨批延续 |
43
- | 起始目标 | 谁想做什么 |
44
- | 阻碍 | 人物、规则、资源、信息或环境阻碍 |
45
- | 变化来源 | 改变局面的选择、行动或外部事件 |
46
- | 局面变化 | 目标、风险、资源、关系、知识或行动方向的前后差异 |
47
- | 得失 | 收益归谁、代价由谁承担 |
48
- | 后续影响 | 结果怎样促成或限制后续行动 |
49
- | 状态 | `open` / `closed` |
50
- | 证据 | 原文模式用 source locator;已有成果模式用资料路径 |
51
-
52
- 读取批次不等于剧情点。一个批次可以出现多个剧情点,一个剧情点也可以跨批次。跨批延续时继承剧情点 ID 和当前状态;Stage 3 再统一合并、拆分和校验边界。
53
-
54
- ### D. 兼容逐章资料
55
-
56
- 逐章投影只保留现有导入、写作与查询实际使用的内容:概要、关键事件、因果、局面结果、涉及、信息变化、状态变化、三维节奏、章尾钩子、证据和情节点序列(逐点带基调)。逐章不重复写长篇写法公式、人物小传和扩写技法长表。写法机制、信息差、关系与节奏集中在剧情点及 Stage 3 权威产物中。
57
-
58
- ### E. 跨章观察
59
-
60
- 批次缓存固定包含:
61
-
62
- 1. 剧情点;
63
- 2. 仅限主线/关键转折的事件与披露候选;
64
- 3. 有向关系变化;
65
- 4. 事件、情绪、篇幅三维节奏的峰谷与分离点;
66
- 5. 未闭合剧情点、悬念、关系状态和待核事项。
67
-
68
- 角色实体只记录新别名和状态变化,不在每章重复生成人物小传。
69
-
70
- ### 原子提取六大铁律
71
-
72
- 1. **双序分离**:逐章事实按文本披露顺序排列;客观事件另标故事内发生顺序,不能把倒叙或回忆挪成当前事件
73
- 2. **客观白描**:记录"发生了什么"和结果,原文明说的起因照写,不推测未写出的动机,不用叙事框架词
74
- 3. **信息保真**:不遗漏改变语境的关键细节
75
- 4. **高度浓缩**:一个情节点一句话概括
76
- 5. **复合合并**:为同一戏剧目的服务的连续微动作合并为一个情节点
77
- 6. **客观事实**:提取客观事实,不做叙事分析
78
-
79
- **客观白描 vs 叙事框架词**:
80
- - 禁止:「通过对话,郑松得知张子豪在韩国训练」
81
- - 正确:「吴志斌告诉郑松,张子豪在韩国训练」
82
- - 禁止:「林风展现了自己的实力」
83
- - 正确:「林风三招击败对手,围观者倒吸一口凉气」
84
- - 禁止:「邵阳感到心碎和愤怒」
85
- - 正确:「邵阳目睹宋丽与人拥抱,表情由刺痛转为冷漠」
86
-
87
- ## 分块与主会话串行
88
-
89
- Stage 2 按运行计划分别建立旧成果批次和缺章原文块,每批调用一次 chapter-extractor;原文块返回逐章事实和跨章观察,旧成果批次返回跨章观察,缺摘要时另补紧凑章块。其他阶段消费这些结果和可复用旧资料。
90
-
91
- > **区分语义分块与处理批次**:
92
- > - **语义分块**=*在哪里切*。按叙事弧切,产出「块元数据」用于组织分析结果,块可以很大。它不决定一次读多少。
93
- > - **处理批次**=*一次读多少*。受上下文容量约束,原文块按索引字数切分,旧成果批次按资料体积切分。下表指的是**处理批次**。
94
-
95
- | 单章与上下文情况 | 读取批次策略 | 常见章数 |
96
- |------|------|--------|
97
- | 普通章节、上下文充足 | 连续读取并保留跨章状态 | 3 章/批 |
98
- | 长章、信息密集或上下文较小 | 缩小批次,不截断明显短因果链 | 1-2 章/批 |
99
- | 超长书 | 批次数量增加;语义弧仍独立于读取批次 | 仍按上述字数与上下文判断 |
100
-
101
- > 批次数由原文长度和上下文决定,不设“超过 500 章就固定 10-20 章/批”的第二套规则。
102
-
103
- **主会话串行模式(agent 不可用时的降级)**
104
-
105
- 无法 spawn 子代理时由主会话按同一连续批次契约顺序处理。批次可因主会话上下文更小而缩短,但仍须同次产生逐章事实和跨章观察,不能退回每章一次调用。
106
-
107
- **不要做的事**
108
-
109
- - 不要把大语义弧整块塞进一次上下文。
110
- - 不要固定章数而忽略原文字数、上下文容量和章界。
111
- - 不要在 Stage 3、4、5 各自重新读取同一批原文。
112
- - 不要用跳读锚点冒充完整语义覆盖。
113
-
114
- ## 输出模板
115
-
116
- Stage 2 有两种互斥输入。`raw-original` 只处理计划列出的未拆章节块;`existing-results` 只从旧成果二次提取。两者都形成批次剧情点,并按缺口补摘要:前者提取原文,后者投影旧成果。
117
-
118
- ### 未拆章节的紧凑语义结果
119
-
120
- `chapter-extractor` 在一次章节块阅读中按章输出以下紧凑字段。它是模型输出,不直接充当旧接口文件:
33
+ 标记缺失或顺序不对整批拒收。本批每章一块,章号连续、各恰好一次;跨章观察块恰好一个,放在所有章节块之后。不要写 `MODEL_OUTPUT_START/END` 或 `story-long-analyze:cache` 标记,脚本自己加。
121
34
 
122
35
  ```markdown
36
+ <!-- CHAPTER_START:{N} -->
123
37
  ## 第{N}章 {标题}
124
38
 
125
- **概要**:{60-160字,按文本披露顺序说明主要行动、原文给出的原因和结果}
39
+ **概要**:{60–160字,按文本披露顺序说明主要行动、原文给出的原因和结果}
126
40
 
127
41
  **因果**:目标:{谁想做什么}|阻碍:{具体阻碍}|行动:{改变局面的选择/行动/外部事件}|结果:{局面变化}|得失:{承担者及得失}
128
42
 
@@ -132,64 +46,30 @@ Stage 2 有两种互斥输入。`raw-original` 只处理计划列出的未拆章
132
46
 
133
47
  **涉及人物**:{关键人物,顿号分隔;没有写无}
134
48
 
135
- **信息变化**:{新披露内容|读者所知|关键角色所知或未知}
49
+ **信息变化**:{新披露内容|读者所知|关键角色所知或未知;没有写无}
136
50
 
137
- **状态变化**:{角色/关系/资源/风险的净变化}
51
+ **状态变化**:{角色/关系/资源/风险的净变化;没有写无}
138
52
 
139
- **三维节奏**:事件{1-5}/5|情绪{类型+1-5}/5|篇幅{1-3}/3|{三轴差异的一句话原因}
53
+ **三维节奏**:事件{1-5}/5|情绪{类型+1-5}/5|篇幅{1-3}/3|{三轴是否分离及原因}
140
54
 
141
55
  **章尾钩子**:{类型与具体等待;没有写无}
142
56
 
143
- **证据**:{source_locator+5-15字定位词}
57
+ **证据**:{source_locator+5–15字定位词}
144
58
 
145
59
  **情节点**:
146
60
 
147
- P{序号} **{标题}**:类型{转折点/信息揭示/冲突/解决/铺垫/行动/对话/状态变化} | {白描一句话:谁做了什么、结果如何;原文给出的起因一并写进来,不推测动机;埋伏笔的写出伏笔线索} | 涉及{全名,逗号分隔;无人物写无} | 地点{如明确,否则无} | 物品{如涉及,否则无} | 时间{如明确,否则无}
61
+ P1 **{标题}**:类型{枚举} | {白描一句话} | 涉及{全名,逗号分隔;无人物写无} | 地点{或无} | 物品{或无} | 时间{或无}
148
62
  {可选引用行:≤400字原文连续切片,或 `原文定位:{可 grep 的原句片段}`}
149
63
 
150
- 主题标签{爱情/亲情/友情/权力/金钱/成长/复仇/悬念/搞笑/热血/日常/其他} | 基调:{紧张/轻松/悲伤/热血/爽/甜/温馨/恐怖/压抑/其他}
64
+ 主题标签{枚举} | 基调:{枚举}
151
65
 
152
66
  ---
153
67
 
154
- P{序号+1} ……
155
- ```
156
-
157
- **情节点**是逐章事件序列,下游对标挑章、结构关键点定位和导入反推情绪弧线都按它读:
158
-
159
- - 原文块每章一般 10–20 个,按字数调节,最多 30;下限是计划给的 `min_plot_points`(字数÷200 四舍五入,至少 1、至多 10);旧成果补摘要下限 1 个,按旧资料写到的事件拆,不凑数;编号从 P1 连续。太粗(整段打架)丢细节,太细(举起右手)碎片化,恰当粒度是一个完整戏剧事件。
160
- - 按文本披露顺序排列,不把倒叙或回忆移到故事内发生时间的位置;客观发生顺序另记在跨章观察中。标题 ≤15 字,不与白描同句。
161
- - 白描只写可见事实:不替角色补原文没写的情感、意图,不写“精彩”“气氛紧张”这类评价,不用“通过对话得知”这类叙事框架词;原文明说的起因和内心活动照写。
162
- - 字段名后不加冒号;`主题标签` 只填一个值;每个情节点紧跟自己的 `主题标签X | 基调:Y` 行,`基调:` 用全角冒号。
163
- - 引用只给关键转折、关键台词、写法样本,每章至多 8 条,其余情节点不写引用行。
164
-
165
- ### 批次提交格式
166
-
167
- 提交给 `manage_analysis_run.py commit` 的文件按下列标记包裹,子代理与主会话自己写批次都一样;标记缺失或顺序不对整批拒收:
168
-
169
- ```markdown
170
- <!-- CHAPTER_START:{N} -->
171
- ## 第{N}章 {标题}
172
- {上面的紧凑字段与情节点}
68
+ P2 ……
173
69
  <!-- CHAPTER_END:{N} -->
174
- (本批每章一块,章号连续、各恰好一次)
175
70
 
176
71
  <!-- BATCH_OBSERVATIONS_START -->
177
72
  ## 跨章观察
178
- {下方「批次剧情点」的五个小节}
179
- <!-- BATCH_OBSERVATIONS_END -->
180
- ```
181
-
182
- - 旧成果批次(`REUSE-*`):计划列出的摘要缺口落在本批时,为本批每章都写章节块(情节点至少 1 个);没有缺口时不写章节块,改在开头写一行 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->`。
183
- - 跨章观察块恰好一个,放在所有章节块之后。不要输出 `MODEL_OUTPUT_START/END` 或 `story-long-analyze:cache` 标记(脚本自己加)。
184
-
185
- `manage_analysis_run.py commit` 校验这些字段后,机械生成缺失的 `章节/第{N}章_摘要.md`:情节点逐条投影并把类型、主题、基调映射到枚举,章级字段保留“概要、关键事件、涉及、章尾钩子、证据”标签。原文块每章情节点少于该章 `min_plot_points` 或多于 30 时整批拒收。同一批完整模型结果和跨章观察写进 `_analysis_cache/批次-{范围ID}.md`,作为恢复证据;全局合并用 `manage_analysis_run.py digest` 取其跨章观察,不整批读取。模型不输出章节卡表,也不为兼容文件再次读取原文。
186
-
187
- ### 批次剧情点
188
-
189
- `raw-original` 与 `existing-results` 都按范围 ID 写完整批次缓存,内容共用下列结构:
190
-
191
- ```markdown
192
- ## 跨章观察
193
73
 
194
74
  ### 剧情点
195
75
 
@@ -198,32 +78,64 @@ P{序号+1} ……
198
78
 
199
79
  ### 关键事件与披露候选
200
80
 
201
- 只列可能进入主线或关键转折表的候选:候选ID|章节|客观事件及大致发生顺序|异常→线索→解释→确认的披露路径|读者所知|关键角色所知|判断变化|叙事作用|证据。过渡动作不建条目。
81
+ 只收可能进入主线或关键转折表的事件,过渡动作不建条目。每项写:候选ID|章节|客观事件及大致发生顺序|本批披露路径(异常/线索/解释/确认)|读者与关键角色的信息差|判断变化|叙事作用|证据。无法判断客观发生时间时写待核。
202
82
 
203
83
  ### 关系变化
204
84
 
205
- | 关系ID | 主体 → 客体 | 关系动作 | 表面/真实状态 | 触发 | 双方得失 | 变化后状态 | 证据强度 | 证据 |
85
+ | 关系ID | 主体 → 客体 | 关系动作 | 表面/真实状态 | 触发 | 双方得失 | 变化后状态 | 证据等级 | 证据 |
206
86
  |---|---|---|---|---|---|---|---|---|
207
87
 
208
88
  ### 三维节奏
209
89
 
210
- 只列峰值、谷值与三轴明显分离处:章节/剧情点|事件推进及理由|情绪类型/强度及触发|篇幅展开度|展开/压缩/省略/反复的作用|证据。普通章的紧凑分数不在这里重复。
90
+ 只写峰值、谷值和三轴明显分离处:章节/剧情点|事件推进及理由|情绪类型/强度及触发|篇幅展开度|展开/压缩/省略/反复的作用|证据。普通章的分数已在逐章紧凑事实里,不重复。
211
91
 
212
92
  ### 跨批状态
213
93
 
214
- - 已确认别名:{别名→本名,含交接批传下来的}
215
- - 未闭合剧情点:{ID、主体、目标、阻碍、最后证据}
216
- - 未决悬念:{读者已知和等待确认的内容}
217
- - 关系状态:{下一批需继承的有向状态}
218
- - 待核事项:{冲突、C暂定或缺失}
94
+ - 已确认别名:{别名→本名,含交接批传下来的;没有写无}
95
+ - 未闭合剧情点:{ID、主体、目标、当前阻碍、最后证据;没有写无}
96
+ - 未决悬念:{读者已知和等待确认的内容;没有写无}
97
+ - 关系状态:{下一批需继承的有向状态;没有写无}
98
+ - 待核事项:{冲突、C暂定或缺失;没有写无}
99
+ <!-- BATCH_OBSERVATIONS_END -->
219
100
  ```
220
101
 
221
- 剧情点回答“目标 → 阻碍 → 改变局面的行动或外部事件 → 得失 → 后续影响”。它可以跨章和跨读取批次,不能把每个处理批次直接当成剧情点。跨批未闭合时沿用剧情点 ID;Stage 3 再做合并、拆分和边界复核。
102
+ `existing-results` 的五个跨章观察小节同上,证据指向旧成果文件,不指向未读的原文。`commit` 校验后机械生成缺失的 `章节/第{N}章_摘要.md`(投影成“概要、关键事件、涉及、基调”等旧接口标签,已有摘要不覆盖),并把整批写进 `_analysis_cache/批次-{批次ID}.md` 作为恢复证据。
103
+
104
+ ## 情节点规则
105
+
106
+ 情节点是逐章事件序列,供下游挑对标章、定结构关键点、反推情绪弧线;每章须拆足,不因读多章而压缩。
107
+
108
+ - **数量**:原文块每章约为字数÷150–200,一般 10–20 个,最多 30 个;下限是本章 `min_plot_points`(字数÷200 四舍五入,至少 1、至多 10)。低于下限或多于 30 整批拒收。旧成果补摘要下限 1 个,旧资料写到多少就拆多少,不凑数。
109
+ - **粒度**:一个完整戏剧事件为一点。太粗(整段打架写成一点)丢细节,太细(“举起右手”)碎片化;为同一戏剧目的服务的连续微动作合并。
110
+ - **顺序与白描**:严格按文本披露顺序;白描写谁做了什么、结果如何,原文给出的起因照写,不漏掉改变语境的细节;不补原文没写的情感和意图,不写“精彩”“气氛紧张”这类评价,不用叙事框架词:写「吴志斌告诉郑松,张子豪在韩国训练」,不写「通过对话,郑松得知……」;写「林风三招击败对手」,不写「林风展现了实力」。
111
+ - **枚举**:三个字段各只填一个表内值,不自造词:
112
+ - 类型:转折点/信息揭示/冲突/解决/铺垫/行动/对话/状态变化
113
+ - 主题标签:爱情/亲情/友情/权力/金钱/成长/复仇/悬念/搞笑/热血/日常/其他
114
+ - 基调:紧张/轻松/悲伤/热血/爽/甜/温馨/恐怖/压抑/其他
115
+ - 消歧:爽=打脸/复仇得手/反转的解气;热血=拼搏战斗的燃;甜=恋爱暧昧;温馨=亲情友情的暖;恐怖=惊悚诡异;紧张=危机悬而未决;压抑=绝望、无力、被碾压。期待、释然等表外感受归到最近的值,归不了写「其他」。
116
+ - **格式**:P 行固定六段 `类型X | 白描 | 涉及… | 地点… | 物品… | 时间…`,白描不能省(标题只是 15 字内的短标签),缺的段写「无」;`主题标签X | 基调:Y` 另起一行;`类型`、`主题标签` 后直接连写值,`基调:` 用全角冒号。
117
+ - **引用**:只给关键转折、关键台词、写法样本,每章至多 8 条。
118
+
119
+ ## 剧情点完善规则
120
+
121
+ 剧情点回答:谁起初想做什么 → 遇到什么阻碍 → 哪个行动或外部事件改变局面 → 谁得到什么、谁失去什么 → 结果怎样约束后续行动。
122
+
123
+ - 一个剧情点可以跨多章、跨批次;一个批次也可以有多个剧情点。
124
+ - 本批只是延续已有目标时,沿用上批 ID 并补充变化,不另建同义剧情点;本批结束仍未结算时标 `open`。
125
+ - 转场或日常过渡没有独立局面变化时,只写进章节事实和节奏作用,不强造剧情点。
222
126
 
223
- ### 已有成果二次提取
127
+ ## 双时间线与三维节奏
224
128
 
225
- `existing-results` 的证据只指向只读计划列出的旧成果文件。完整旧项目增强时用 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->` 声明覆盖,只写批次剧情点及关联观察。计划列出的摘要缺口落在本批时,必须为本批每章从计划列出的摘要或黄金三章生成同一紧凑章块(情节点至少 1 个),否则摘要永远补不上;提交脚本只补缺失文件。旧资料没有的字段写“旧资料未提供”。
129
+ - 每批只提交可能进入主线或关键转折的候选;Stage 3 从全书候选中精选约 8–15 个关键节点。
130
+ - 关键事件只登记一次;异常、线索、解释、确认合并为它的披露路径,分别记录读者和关键角色当时知道什么、披露后判断怎样改变。
131
+ - 事件推进看目标、风险、资源、关系、知识或行动方向的变化;读者情绪写文本触发的期待、紧张、甜、压抑、释然等变化;篇幅安排写哪些节点被展开、压缩、跳过或反复及作用。
132
+ - 分数只用于比较,文字理由和证据不能省。
226
133
 
227
- 每个成功批次由 `manage_analysis_run.py commit` 先写完整缓存、再补缺失摘要、最后写 `_progress.md` 状态行。
134
+ ## 提交前检查
228
135
 
229
- **Stage 2 输出自检**:输入模式与 `manage_analysis_run.py plan` 的内存计划一致|原文章节块连续、不重叠且不超过3章/25,000字符(单个超长章可独占)|已有成果模式没有读取原文|每章紧凑字段完整|情节点不少于 `min_plot_points`、最多 30、按文本披露顺序、白描客观|剧情点包含因果与得失|只保留关键事件/披露候选|三维节奏分别解释|跨批状态可继续。
136
+ 1. 输入模式只有一种,范围与计划一致,没有读计划外原文。
137
+ 2. 每章恰好一对标记(`existing-results` 只在有摘要缺口时写章节块)。
138
+ 3. 情节点数量在下限与 30 之间,编号从 P1 连续、按披露顺序,枚举各取一个值;不生成章节卡表。
139
+ 4. 每个剧情点有局面变化或明确标为未闭合,不把批次直接当剧情点;跨批状态足以接续,且不带入已解决的悬念。
140
+ 5. 不含模板占位符或候选项列表。
141
+ 6. 有章节块时用 `grep -c` 数输出文件:`^P[0-9]+ \*\*[^*]+\*\*[::] ?类型` 与 `^主题标签` 的行数都要等于 `^P[0-9]+ ` 的行数;十个章级字段 `^\*\*(概要|因果|关键行动|局面结果|涉及人物|信息变化|状态变化|三维节奏|章尾钩子|证据)\*\*[::]` 的行数等于 10 × 本批章数。对不上就补齐再提交。