@oh-story/dsh 0.1.15 → 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 (560) hide show
  1. package/README.md +17 -15
  2. package/lib/client.js +26 -15
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/manifest.json +284 -364
  5. package/lib/drama/package.json +4 -0
  6. package/lib/drama/skills/short-drama/SKILL.md +13 -14
  7. package/lib/drama/skills/short-drama/agents/openai.yaml +1 -1
  8. package/lib/drama/skills/short-drama/references/audience-reveal.md +4 -4
  9. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -2
  10. package/lib/drama/skills/short-drama/references/creator-documents.md +12 -10
  11. package/lib/drama/skills/short-drama/references/creator-workflow.md +6 -5
  12. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +8 -8
  13. package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +5 -5
  14. package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +5 -6
  15. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +6 -7
  16. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +2 -3
  17. package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +6 -7
  18. package/lib/drama/skills/short-drama/references/knowhow-index.md +6 -7
  19. package/lib/drama/skills/short-drama/references/look-development.md +5 -7
  20. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +6 -3
  21. package/lib/drama/skills/short-drama/references/production-form-profiles.md +14 -16
  22. package/lib/drama/skills/short-drama/references/reference-roles.md +5 -3
  23. package/lib/drama/skills/short-drama/references/runtime-preflight.md +2 -1
  24. package/lib/drama/skills/short-drama-assets/SKILL.md +8 -8
  25. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +1 -1
  26. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +26 -27
  27. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +22 -22
  28. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +4 -4
  29. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +4 -4
  30. package/lib/drama/skills/short-drama-assets/references/era-anchors.md +3 -3
  31. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -5
  32. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +6 -7
  33. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -9
  34. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +8 -11
  35. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +22 -22
  36. package/lib/drama/skills/short-drama-develop/SKILL.md +6 -6
  37. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +1 -1
  38. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +2 -2
  39. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +2 -2
  40. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +13 -12
  41. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +7 -7
  42. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +7 -8
  43. package/lib/drama/skills/short-drama-develop/references/episode-design.md +20 -24
  44. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +7 -7
  45. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +4 -5
  46. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +2 -2
  47. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +1 -1
  48. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +2 -2
  49. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
  50. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +1 -1
  51. package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +1 -1
  52. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +1 -1
  53. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +4 -5
  54. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +1 -1
  55. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +1 -1
  56. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +1 -1
  57. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +2 -2
  58. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +4 -4
  59. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +6 -7
  60. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +19 -17
  61. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +5 -5
  62. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +6 -5
  63. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -4
  64. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +7 -9
  65. package/lib/drama/skills/short-drama-develop/references/story-craft.md +8 -10
  66. package/lib/drama/skills/short-drama-edit/SKILL.md +11 -14
  67. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +12 -19
  68. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
  69. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +5 -4
  70. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +1 -1
  71. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +6 -4
  72. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +5 -5
  73. package/lib/drama/skills/short-drama-edit/references/still-cuts.md +1 -1
  74. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +7 -2
  75. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +1 -1
  76. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +4 -5
  77. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +17 -17
  78. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +10 -9
  79. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +11 -12
  80. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +6 -5
  81. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +2 -2
  82. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +6 -6
  83. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +8 -8
  84. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +5 -4
  85. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +17 -24
  86. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +3 -4
  87. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +5 -10
  88. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +4 -6
  89. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +9 -13
  90. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +3 -7
  91. package/lib/drama/skills/short-drama-produce/SKILL.md +43 -42
  92. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +1 -1
  93. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +31 -18
  94. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +1 -1
  95. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +11 -6
  96. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +2 -2
  97. package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +7 -5
  98. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +14 -8
  99. package/lib/drama/skills/short-drama-review/SKILL.md +9 -9
  100. package/lib/drama/skills/short-drama-review/agents/openai.yaml +1 -1
  101. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -11
  102. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +24 -23
  103. package/lib/drama/skills/short-drama-review/references/project-calibration.md +17 -16
  104. package/lib/drama/skills/short-drama-review/references/review-method.md +8 -6
  105. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +7 -6
  106. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +17 -10
  107. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +29 -25
  108. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +11 -11
  109. package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -2
  110. package/lib/drama/skills/short-drama-storyboard/SKILL.md +8 -10
  111. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +1 -1
  112. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +8 -11
  113. package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +11 -12
  114. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +4 -5
  115. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +19 -24
  116. package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +1 -1
  117. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +26 -29
  118. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +6 -5
  119. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +2 -2
  120. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +4 -4
  121. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -8
  122. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +3 -3
  123. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -7
  124. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +1 -1
  125. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +63 -61
  126. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +20 -18
  127. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +12 -12
  128. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +4 -3
  129. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +38 -40
  130. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +36 -36
  131. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +17 -21
  132. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +10 -11
  133. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +1 -1
  134. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +2 -2
  135. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +6 -12
  136. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +2 -1
  137. package/lib/drama/skills/short-drama-write/SKILL.md +15 -15
  138. package/lib/drama/skills/short-drama-write/agents/openai.yaml +1 -1
  139. package/lib/drama/skills/short-drama-write/assets/screenplay.md +3 -4
  140. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +20 -22
  141. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +20 -22
  142. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +10 -10
  143. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +11 -9
  144. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +11 -10
  145. package/lib/drama/skills/short-drama-write/references/script-craft.md +41 -47
  146. package/lib/drama/skills/short-drama-write/references/stage-contract.md +7 -5
  147. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +19 -25
  148. package/lib/index.js +120 -31
  149. package/lib/index.js.map +3 -3
  150. package/lib/novel-to-game/README.md +10 -11
  151. package/lib/novel-to-game/README_ZH.md +14 -15
  152. package/lib/novel-to-game/VERSION +1 -1
  153. package/lib/novel-to-game/manifest.json +34 -29
  154. package/lib/novel-to-game/package.json +4 -0
  155. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
  156. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
  157. package/lib/novel-to-game/skills/game-build/SKILL.md +9 -1
  158. package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
  159. package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -1
  160. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
  161. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
  162. package/lib/novel-to-game/skills/game-world-design/SKILL.md +1 -1
  163. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +1 -1
  164. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
  165. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
  166. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
  167. package/lib/oh-story/manifest.json +628 -803
  168. package/lib/oh-story/package.json +4 -0
  169. package/lib/oh-story/roles/chapter-extractor.md +13 -12
  170. package/lib/oh-story/roles/character-designer.md +20 -101
  171. package/lib/oh-story/roles/consistency-checker.md +7 -9
  172. package/lib/oh-story/roles/narrative-writer.md +22 -22
  173. package/lib/oh-story/roles/story-architect.md +22 -32
  174. package/lib/oh-story/roles/story-explorer.md +11 -14
  175. package/lib/oh-story/roles/story-researcher.md +13 -14
  176. package/lib/oh-story/skills/browser-cdp/SKILL.md +38 -26
  177. package/lib/oh-story/skills/story/SKILL.md +98 -63
  178. package/lib/oh-story/skills/story/VERSION +1 -1
  179. package/lib/oh-story/skills/story-cover/SKILL.md +46 -234
  180. package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
  181. package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -93
  182. package/lib/oh-story/skills/story-deslop/SKILL.md +75 -212
  183. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
  184. package/lib/oh-story/skills/story-deslop/references/banned-words.md +61 -151
  185. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
  186. package/lib/oh-story/skills/story-deslop/references/expression.md +83 -0
  187. package/lib/oh-story/skills/story-deslop/references/narrative-focus.md +63 -0
  188. package/lib/oh-story/skills/story-deslop/references/story-logic.md +65 -0
  189. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +5 -5
  190. package/lib/oh-story/skills/story-import/SKILL.md +18 -22
  191. package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
  192. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -9
  193. package/lib/oh-story/skills/story-import/references/deep-analysis.md +7 -8
  194. package/lib/oh-story/skills/story-import/references/import-report.md +9 -8
  195. package/lib/oh-story/skills/story-import/references/import-special-cases.md +7 -17
  196. package/lib/oh-story/skills/story-import/references/import-tracking.md +6 -6
  197. package/lib/oh-story/skills/story-import/references/length-routing.md +10 -60
  198. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +10 -10
  199. package/lib/oh-story/skills/story-import/references/outline-reverse.md +3 -3
  200. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +120 -132
  201. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -92
  202. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
  203. package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
  204. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
  205. package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
  206. package/lib/oh-story/skills/story-long-analyze/SKILL.md +41 -78
  207. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +28 -30
  208. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +9 -17
  209. package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +9 -3
  210. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +23 -10
  211. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +13 -20
  212. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +28 -29
  213. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
  214. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
  215. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -164
  216. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -13
  217. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +114 -35
  218. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +16 -6
  219. package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
  220. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
  221. package/lib/oh-story/skills/story-long-scan/SKILL.md +54 -82
  222. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -181
  223. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +24 -7
  224. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
  225. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
  226. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
  227. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +26 -16
  228. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -34
  229. package/lib/oh-story/skills/story-long-write/SKILL.md +12 -13
  230. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +2 -2
  231. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +53 -26
  232. package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +9 -7
  233. package/lib/oh-story/skills/story-long-write/references/author-memory.md +6 -6
  234. package/lib/oh-story/skills/story-long-write/references/banned-words.md +61 -151
  235. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +4 -4
  236. package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
  237. package/lib/oh-story/skills/story-long-write/references/character-relations.md +120 -270
  238. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +3 -3
  239. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +26 -29
  240. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +9 -9
  241. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
  242. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +33 -73
  243. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +42 -89
  244. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
  245. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
  246. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
  247. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
  248. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  249. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
  250. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
  251. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
  252. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
  253. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
  254. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  255. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  256. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
  257. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
  258. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
  259. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
  260. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
  261. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
  262. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
  263. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
  264. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
  265. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
  266. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
  267. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
  268. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
  269. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
  270. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
  271. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
  272. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
  273. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
  274. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
  275. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
  276. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +7 -7
  277. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +99 -172
  278. package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +40 -120
  279. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
  280. package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -2
  281. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +82 -311
  282. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
  283. package/lib/oh-story/skills/story-long-write/references/long-reversal.md +4 -4
  284. package/lib/oh-story/skills/story-long-write/references/long-suspense.md +11 -13
  285. package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
  286. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
  287. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
  288. package/lib/oh-story/skills/story-long-write/references/project-files.md +12 -16
  289. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
  290. package/lib/oh-story/skills/story-long-write/references/reference-index.md +29 -84
  291. package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
  292. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +3 -3
  293. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +15 -22
  294. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +4 -172
  295. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +5 -5
  296. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +2 -2
  297. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -2
  298. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +10 -8
  299. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +3 -3
  300. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
  301. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +10 -10
  302. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +5 -10
  303. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
  304. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +1 -1
  305. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +77 -132
  306. package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
  307. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
  308. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
  309. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
  310. package/lib/oh-story/skills/story-review/SKILL.md +41 -54
  311. package/lib/oh-story/skills/story-review/references/agent-prompts.md +20 -18
  312. package/lib/oh-story/skills/story-review/references/banned-words.md +61 -151
  313. package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
  314. package/lib/oh-story/skills/story-review/references/expression.md +83 -0
  315. package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
  316. package/lib/oh-story/skills/story-review/references/quality-rubric.md +11 -11
  317. package/lib/oh-story/skills/story-review/references/review-tracking.md +6 -5
  318. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +10 -10
  319. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +10 -11
  320. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +12 -12
  321. package/lib/oh-story/skills/story-review/references/solo.md +8 -7
  322. package/lib/oh-story/skills/story-review/references/story-logic.md +65 -0
  323. package/lib/oh-story/skills/story-review/references/style-resolution.md +5 -5
  324. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +2 -2
  325. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -2
  326. package/lib/oh-story/skills/story-setup/SKILL.md +29 -36
  327. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +3 -3
  328. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +14 -16
  329. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +61 -151
  330. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +10 -10
  331. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
  332. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +120 -270
  333. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +23 -160
  334. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +26 -29
  335. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +9 -9
  336. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
  337. package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +83 -0
  338. package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
  339. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +11 -11
  340. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
  341. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
  342. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
  343. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
  344. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  345. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
  346. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
  347. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
  348. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
  349. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
  350. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  351. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  352. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
  353. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
  354. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
  355. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
  356. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
  357. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
  358. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
  359. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
  360. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
  361. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
  362. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
  363. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
  364. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
  365. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
  366. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
  367. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
  368. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
  369. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
  370. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
  371. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
  372. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +7 -7
  373. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +99 -172
  374. package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +40 -120
  375. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +34 -74
  376. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +82 -311
  377. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
  378. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +3 -3
  379. package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +4 -4
  380. package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +11 -13
  381. package/lib/oh-story/skills/story-setup/references/agent-references/narrative-focus.md +63 -0
  382. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
  383. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
  384. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
  385. package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +64 -192
  386. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +15 -69
  387. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +46 -58
  388. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +6 -4
  389. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +23 -48
  390. package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +65 -0
  391. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +15 -22
  392. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +4 -172
  393. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +5 -5
  394. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +77 -132
  395. package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
  396. package/lib/oh-story/skills/story-short-analyze/SKILL.md +44 -103
  397. package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
  398. package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
  399. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +1 -3
  400. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +22 -21
  401. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +7 -6
  402. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +6 -6
  403. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +2 -2
  404. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +6 -6
  405. package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
  406. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
  407. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +38 -50
  408. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
  409. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +24 -175
  410. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +53 -38
  411. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +54 -83
  412. package/lib/oh-story/skills/story-short-scan/SKILL.md +56 -73
  413. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
  414. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
  415. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
  416. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +36 -75
  417. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +35 -15
  418. package/lib/oh-story/skills/story-short-write/SKILL.md +23 -26
  419. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +4 -4
  420. package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +9 -7
  421. package/lib/oh-story/skills/story-short-write/references/author-memory.md +6 -6
  422. package/lib/oh-story/skills/story-short-write/references/banned-words.md +61 -151
  423. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
  424. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
  425. package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +34 -0
  426. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +26 -29
  427. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +15 -69
  428. package/lib/oh-story/skills/story-short-write/references/expression.md +83 -0
  429. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +12 -12
  430. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +21 -21
  431. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +17 -17
  432. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +17 -17
  433. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +19 -19
  434. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +16 -16
  435. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +17 -16
  436. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +17 -17
  437. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +11 -11
  438. 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 +22 -22
  439. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +46 -58
  440. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +64 -192
  441. package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
  442. package/lib/oh-story/skills/story-short-write/references/reference-index.md +14 -16
  443. package/lib/oh-story/skills/story-short-write/references/scene-craft.md +8 -7
  444. package/lib/oh-story/skills/story-short-write/references/short-craft.md +22 -43
  445. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +12 -125
  446. package/lib/oh-story/skills/story-short-write/references/short-format.md +19 -43
  447. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +23 -48
  448. package/lib/oh-story/skills/story-short-write/references/story-logic.md +65 -0
  449. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +5 -5
  450. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
  451. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +23 -30
  452. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +69 -26
  453. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +19 -20
  454. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +52 -70
  455. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
  456. package/lib/types/client/file-activity.d.ts +10 -0
  457. package/lib/types/client/file-activity.d.ts.map +1 -1
  458. package/lib/types/client/index.d.ts.map +1 -1
  459. package/lib/types/native-hooks.d.ts.map +1 -1
  460. package/lib/types/role-tool.d.ts +42 -2
  461. package/lib/types/role-tool.d.ts.map +1 -1
  462. package/lib/types/skill-provider.d.ts.map +1 -1
  463. package/lib/types/workspace-route.d.ts.map +1 -1
  464. package/lib/video-recap/CHANGELOG.md +8 -0
  465. package/lib/video-recap/README.en.md +8 -10
  466. package/lib/video-recap/README.md +8 -8
  467. package/lib/video-recap/manifest.json +48 -48
  468. package/lib/video-recap/package.json +4 -0
  469. package/lib/video-recap/skills/video-assemble/SKILL.md +5 -8
  470. package/lib/video-recap/skills/video-assemble/references/audio-modes.md +3 -3
  471. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +1 -2
  472. package/lib/video-recap/skills/video-assemble/references/packaging.md +1 -2
  473. package/lib/video-recap/skills/video-assemble/references/source-score.md +5 -6
  474. package/lib/video-recap/skills/video-cut/SKILL.md +3 -7
  475. package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
  476. package/lib/video-recap/skills/video-recap/SKILL.md +7 -11
  477. package/lib/video-recap/skills/video-recap/references/audio-routing.md +1 -2
  478. package/lib/video-recap/skills/video-recap/references/config-playbook.md +5 -7
  479. package/lib/video-recap/skills/video-recap/references/data-schema.md +8 -8
  480. package/lib/video-recap/skills/video-recap/references/resource-library.md +2 -2
  481. package/lib/video-recap/skills/video-reference/SKILL.md +4 -8
  482. package/lib/video-recap/skills/video-reference/references/reference-schema.md +1 -1
  483. package/lib/video-recap/skills/video-script/SKILL.md +4 -13
  484. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +2 -2
  485. package/lib/video-recap/skills/video-understanding/SKILL.md +10 -6
  486. package/lib/video-recap/skills/video-understanding/references/data-schema.md +2 -2
  487. package/lib/video-recap/skills/video-voiceover/SKILL.md +3 -11
  488. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +1 -2
  489. package/package.json +25 -24
  490. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +0 -187
  491. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +0 -42
  492. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +0 -128
  493. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +0 -34
  494. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +0 -49
  495. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +0 -36
  496. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +0 -2
  497. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +0 -2
  498. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +0 -101
  499. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +0 -217
  500. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +0 -31
  501. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +0 -67
  502. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +0 -2
  503. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +0 -120
  504. package/lib/drama/skills/short-drama-write/assets/episode-card.json +0 -55
  505. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +0 -89
  506. package/lib/oh-story/skills/story/references/author-memory-maintenance.md +0 -75
  507. package/lib/oh-story/skills/story/references/author-memory.md +0 -117
  508. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +0 -1638
  509. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +0 -556
  510. package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +0 -75
  511. package/lib/oh-story/skills/story-deslop/references/author-memory.md +0 -117
  512. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +0 -1638
  513. package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
  514. package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -43
  515. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
  516. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
  517. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
  518. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
  519. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -114
  520. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -105
  521. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +0 -556
  522. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
  523. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -502
  524. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -171
  525. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
  526. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
  527. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -273
  528. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
  529. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -711
  530. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -622
  531. package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -327
  532. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +0 -556
  533. package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +0 -75
  534. package/lib/oh-story/skills/story-review/references/author-memory.md +0 -117
  535. package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
  536. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -288
  537. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
  538. package/lib/oh-story/skills/story-review/references/review-quality.md +0 -246
  539. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +0 -1638
  540. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +0 -556
  541. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
  542. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
  543. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
  544. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -146
  545. package/lib/oh-story/skills/story-setup/references/agent-references/short-suspense.md +0 -352
  546. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -453
  547. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -438
  548. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -395
  549. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -146
  550. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -245
  551. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -477
  552. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
  553. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -90
  554. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
  555. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
  556. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -146
  557. package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -127
  558. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -224
  559. package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
  560. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
@@ -0,0 +1,286 @@
1
+ #!/usr/bin/env python3
2
+ """卷纲取段器 —— 让「不整读卷纲」成立。
3
+
4
+ 按声明作用域选取卷级、单元级和批次材料;未声明的旧段保守纳入并告警。
5
+
6
+ 段头约定(每个 ## / ### / #### 标题的**下一行非空行**):
7
+
8
+ > 作用域:卷级常任
9
+ > 作用域:单元级 D1-03
10
+ > 作用域:批次底稿 D1-03|状态:在用
11
+ > 作用域:批次底稿 D1-02|状态:已退役
12
+
13
+ 退役行(行内覆盖):以 `⊘` 起头的列表行 / 表格行,默认过滤。
14
+
15
+ 用法:
16
+ outline_view.py --toc 卷纲.md
17
+ outline_view.py --unit D1-03 卷纲.md
18
+ outline_view.py --contract 卷纲.md
19
+ outline_view.py --check 卷纲.md
20
+ 任意子命令加 --history 连退役行一起输出
21
+ """
22
+ import argparse
23
+ import io
24
+ import re
25
+ import sys
26
+
27
+ HEADING = re.compile(r"^(#{2,4})\s+(.*\S)\s*$")
28
+ SCOPE = re.compile(r"^>\s*作用域[::]\s*(.+?)\s*$")
29
+ RETIRED_LINE = re.compile(r"^\s*(?:[-*]\s*)?⊘|^\s*\|\s*⊘")
30
+ # 单元块内不该出现的全卷字样——出现即说明这条常任规则放错了地方
31
+ LEAK = re.compile(r"全卷常任|全程生效|全卷生效|本单元起常任|自 ?[LD]\d+-\d+ ?起生效")
32
+ # 指向卷级的指针行不算泄漏:单元块可以引用常任规则,不可以复述它
33
+ POINTER = re.compile(r"全卷常任裁定|已提为卷级|不复读|规则本身见|见「全卷")
34
+ UNIT_IN_TITLE = re.compile(r"(?<![\w-])([LD]\d+-\d+|U\d+)(?![\w-])")
35
+ # 批次底稿里出现跨章祈使=这条约束在写作期还有效,而写作档不给底稿 → 必须下沉
36
+ IMPERATIVE = re.compile(r"全程不许|一律不许|往后任何章|此后不再|往后每|从此不|终局前不")
37
+ CH_RANGE = re.compile(r"章节范围[::]\s*第\s*(\d+)\s*[-–—~至]\s*(\d+)\s*章")
38
+ # 情绪弧线逐章行:首列写「12」或模板里的「第12章」都认
39
+ ARC_ROW = re.compile(r"^\|\s*第?\s*(\d+)\s*章?\s*\|")
40
+
41
+
42
+ def read(path):
43
+ with io.open(path, encoding="utf-8-sig") as handle:
44
+ return handle.read()
45
+
46
+
47
+ class Section:
48
+ __slots__ = ("level", "title", "start", "end", "scope", "kind",
49
+ "unit", "status", "lines")
50
+
51
+ def __init__(self, level, title, start):
52
+ self.level = level
53
+ self.title = title
54
+ self.start = start # 标题行号(0 基)
55
+ self.end = None
56
+ self.scope = None # 原始作用域串,None = 未声明
57
+ self.kind = None # 卷级常任 / 单元级 / 批次底稿
58
+ self.unit = None
59
+ self.status = "在用"
60
+ self.lines = []
61
+
62
+
63
+ def parse(text):
64
+ lines = text.split("\n")
65
+ sections = []
66
+ fence = None
67
+ for index, line in enumerate(lines):
68
+ marker = re.match(r"^\s{0,3}(`{3,}|~{3,})", line)
69
+ if marker:
70
+ value = marker.group(1)
71
+ if fence is None:
72
+ fence = value
73
+ elif value[0] == fence[0] and len(value) >= len(fence):
74
+ fence = None
75
+ continue
76
+ if fence:
77
+ continue
78
+ match = HEADING.match(line)
79
+ if match:
80
+ if sections:
81
+ sections[-1].end = index
82
+ sections.append(Section(len(match.group(1)), match.group(2), index))
83
+ if sections:
84
+ sections[-1].end = len(lines)
85
+ for section in sections:
86
+ section.lines = lines[section.start:section.end]
87
+ for candidate in section.lines[1:]:
88
+ if not candidate.strip():
89
+ continue
90
+ scope_match = SCOPE.match(candidate)
91
+ if scope_match:
92
+ section.scope = scope_match.group(1)
93
+ break
94
+ if section.scope:
95
+ head = section.scope.split("|")[0].strip()
96
+ if head == "卷级常任":
97
+ section.kind = "卷级常任"
98
+ elif re.fullmatch(r"单元级(?:\s+[A-Za-z][\w-]*)?", head):
99
+ section.kind = "单元级"
100
+ elif re.fullmatch(r"批次底稿(?:\s+[A-Za-z][\w-]*)?", head):
101
+ section.kind = "批次底稿"
102
+ found = re.search(r"^(?:单元级|批次底稿)\s+([A-Za-z][\w-]*)$", head)
103
+ if found:
104
+ section.unit = found.group(1)
105
+ if "已退役" in section.scope:
106
+ section.status = "已退役"
107
+ if section.unit is None:
108
+ found = re.search(r"剧情单元\s+([A-Za-z][\w-]*)", section.title) or UNIT_IN_TITLE.search(section.title)
109
+ if found:
110
+ section.unit = found.group(1)
111
+ if section.unit is None and section.scope is None:
112
+ for line in section.lines[1:]:
113
+ field = re.match(r"^\s*[-*+]\s*单元ID\s*[::]\s*([A-Za-z][\w-]*)\s*$", line.replace("**", ""))
114
+ if field:
115
+ section.unit = field.group(1)
116
+ break
117
+ return lines, sections
118
+
119
+
120
+ def strip_retired(block_lines, keep_history):
121
+ if keep_history:
122
+ return block_lines
123
+ return [line for line in block_lines if not RETIRED_LINE.match(line)]
124
+
125
+
126
+ def unit_chapter_range(sections, unit):
127
+ for section in sections:
128
+ if section.unit == unit and section.kind == "单元级" and "剧情单元" in section.title:
129
+ for line in section.lines:
130
+ found = CH_RANGE.search(line)
131
+ if found:
132
+ return int(found.group(1)), int(found.group(2))
133
+ return None
134
+
135
+
136
+ def slice_arc(section, span):
137
+ """情绪弧线这类逐章表:只留本单元章区间的行,表头与说明照留。"""
138
+ if span is None:
139
+ return section.lines
140
+ low, high = span
141
+ kept = []
142
+ for line in section.lines:
143
+ row = ARC_ROW.match(line)
144
+ if row and not (low <= int(row.group(1)) <= high):
145
+ continue
146
+ kept.append(line)
147
+ return kept
148
+
149
+
150
+ def emit(sections, chosen, span, keep_history, note, preamble):
151
+ out = ["\n".join(strip_retired(preamble, keep_history)).rstrip()] if preamble else []
152
+ for section in sections:
153
+ if section not in chosen:
154
+ continue
155
+ body = section.lines
156
+ if "情绪弧线" in section.title or "排班" in section.title:
157
+ body = slice_arc(section, span)
158
+ body = strip_retired(body, keep_history)
159
+ out.append("\n".join(body).rstrip())
160
+ text = "\n\n".join(out)
161
+ sys.stdout.write(text + "\n")
162
+ if note:
163
+ sys.stderr.write(note + "\n")
164
+
165
+
166
+ def cmd_toc(sections):
167
+ print("%-3s %-6s %-9s %-8s %-46s %s" %
168
+ ("#", "行", "作用域", "单元", "段", "字符"))
169
+ for number, section in enumerate(sections, 1):
170
+ size = sum(len(line) + 1 for line in section.lines)
171
+ print("%-3d %-6d %-9s %-8s %-46s %d" %
172
+ (number, section.start + 1, section.kind or "**未声明**",
173
+ (section.unit or "-") + ("(退)" if section.status == "已退役" else ""),
174
+ section.title[:44], size))
175
+
176
+
177
+ def cmd_check(sections, strict=False):
178
+ problems = []
179
+ warnings = []
180
+ for section in sections:
181
+ if section.kind == "批次底稿":
182
+ for offset, line in enumerate(section.lines):
183
+ if IMPERATIVE.search(line):
184
+ warnings.append(
185
+ ("W1", "第%d行" % (section.start + offset + 1),
186
+ "批次底稿里有跨章祈使,写作档不给底稿——确认已下沉到单元级段或细纲:%s"
187
+ % line.strip()[:52]))
188
+ for section in sections:
189
+ where = "第%d行「%s」" % (section.start + 1, section.title[:36])
190
+ if section.scope is None:
191
+ (problems if strict else warnings).append(("E1" if strict else "W2", where, "缺「> 作用域:」声明行;旧段保守纳入"))
192
+ continue
193
+ if section.kind is None:
194
+ problems.append(("E2", where, "作用域值不认识:%s" % section.scope))
195
+ if section.kind in ("单元级", "批次底稿") and section.unit is None:
196
+ problems.append(("E3", where, "单元级/批次底稿段未标单元ID"))
197
+ if section.kind in ("单元级", "批次底稿"):
198
+ for offset, line in enumerate(section.lines):
199
+ if LEAK.search(line) and not POINTER.search(line):
200
+ problems.append(
201
+ ("E4", "第%d行" % (section.start + offset + 1),
202
+ "单元块内出现全卷字样,常任规则放错了位置:%s"
203
+ % line.strip()[:56]))
204
+ for code, where, message in problems + warnings:
205
+ print("%s %s %s" % (code, where, message))
206
+ print("---")
207
+ print("段 %d / 问题 %d / 告警 %d(告警不阻断,逐条人工判断)"
208
+ % (len(sections), len(problems), len(warnings)))
209
+ return 1 if problems else 0
210
+
211
+
212
+ def main():
213
+ parser = argparse.ArgumentParser(add_help=True)
214
+ parser.add_argument("path")
215
+ parser.add_argument("--toc", action="store_true")
216
+ parser.add_argument("--unit")
217
+ parser.add_argument("--contract", action="store_true")
218
+ parser.add_argument("--check", action="store_true")
219
+ parser.add_argument("--history", action="store_true")
220
+ parser.add_argument("--strict", action="store_true", help="新建卷纲校验:缺作用域也视为错误")
221
+ # 排纲底稿现在放在卷纲外的 大纲/排纲底稿_{单元ID}.md,默认输出就是写作要的闭包。
222
+ # --stage outline 只为老卷纲保留:它们的供给自查等底稿还写在卷纲里(作用域:批次底稿)。
223
+ parser.add_argument("--stage", choices=["outline", "write"], default="write",
224
+ help="write(默认)=卷级常任+单元级;"
225
+ "outline=另带老卷纲里仍在用的批次底稿段")
226
+ args = parser.parse_args()
227
+
228
+ if hasattr(sys.stdout, "reconfigure"):
229
+ sys.stdout.reconfigure(encoding="utf-8")
230
+ sys.stderr.reconfigure(encoding="utf-8")
231
+
232
+ try:
233
+ lines, sections = parse(read(args.path))
234
+ except (OSError, UnicodeError) as error:
235
+ sys.stderr.write(f"无法读取卷纲:{error}\n")
236
+ return 2
237
+ if not sections:
238
+ sys.stderr.write("卷纲里没有 ## 段,路径对不对?\n")
239
+ return 2
240
+
241
+ if args.toc:
242
+ cmd_toc(sections)
243
+ return 0
244
+ if args.check:
245
+ return cmd_check(sections, args.strict)
246
+
247
+ invalid = [s for s in sections if s.scope and
248
+ (s.kind is None or (s.kind != "卷级常任" and s.unit is None))]
249
+ if invalid:
250
+ sys.stderr.write("作用域声明无效,先运行 --check 修正\n")
251
+ return 1
252
+ active = [s for s in sections if args.history or s.status != "已退役"]
253
+ permanent = [s for s in active if s.kind == "卷级常任"]
254
+ undeclared = [s for s in active if s.scope is None]
255
+ note = ("%d 段未声明作用域,已保守纳入;用 --check 查看" % len(undeclared)) if undeclared else None
256
+ preamble = lines[:sections[0].start]
257
+ if args.contract:
258
+ emit(sections, set(permanent + undeclared), None, args.history, note, preamble)
259
+ return 0
260
+
261
+ if args.unit:
262
+ unit = args.unit
263
+ owned = [s for s in active if s.unit == unit]
264
+ if not owned:
265
+ sys.stderr.write(
266
+ "找不到单元 %s —— 不静默降级。核对单元ID,或先补卷纲。\n" % unit)
267
+ return 1
268
+ if args.stage == "write":
269
+ # 写作档不给批次底稿:它是排纲期的工作底稿,其中有写作期约束力的条目
270
+ # 必须已经下沉到单元级段或细纲(见 artifact-protocols.md 段位契约「排纲底稿不进卷纲」)
271
+ live = [s for s in owned if s.kind == "单元级"]
272
+ else:
273
+ live = [s for s in owned
274
+ if s.kind == "单元级"
275
+ or s.kind == "批次底稿"]
276
+ chosen = set(permanent + live + undeclared)
277
+ span = unit_chapter_range(active, unit)
278
+ emit(sections, chosen, span, args.history, note, preamble)
279
+ return 0
280
+
281
+ parser.print_help()
282
+ return 2
283
+
284
+
285
+ if __name__ == "__main__":
286
+ sys.exit(main())
@@ -8,16 +8,16 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
8
8
 
9
9
  你是网络小说结构分析师。
10
10
 
11
- **核心原则:机械边界只解析一次;原文按连续章节块读取一次;同次读取产生逐章事实和跨章观察;聚合阶段复用落盘结果,不重新阅读全文。**
11
+ **核心原则:机械索引建立后复用;正常提取时每个原文块只读一次,同次产生逐章事实和跨章观察;失败重试按计划回看,聚合阶段复用落盘结果。**
12
12
 
13
- > Agent 兼容性:只检查当前运行时 canonical 目录。运行时不支持项目 agent 或找不到文件时降级 solo/direct,并报告 `Fallback: project custom agents unavailable -> solo`。ZCode 3.3.4 不提供项目 custom agents,直接按此规则降级,不扫描其他 CLI 的 agent 目录。
13
+ > Agent 兼容性:只检查当前运行时自己的 agent 目录。运行时不支持项目 agent 或找不到文件时降级 solo/direct,并报告 `Fallback: project custom agents unavailable -> solo`。ZCode 3.3.4 不提供项目 custom agents,直接按此规则降级,不扫描其他 CLI 的 agent 目录。
14
14
  >
15
- > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时(标记缺失、字段缺失/非整数、小于或大于 34)照常按文件存在性检查并 spawn,同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 34)` 并提示重新运行 `/story-setup` 后新开会话;大于 34 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct。
15
+ > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 36` 不一致时(标记缺失、字段缺失/非整数、小于或大于 36)照常按文件存在性检查并 spawn,同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 36)` 并提示重新运行 `/story-setup` 后新开会话;大于 36 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct。
16
16
 
17
17
  ## 分析边界
18
18
 
19
19
  1. 只根据可读原文和已有资料下结论;缺失写“未知”或“文本未明确”。
20
- 2. 硬事实附章节、`source_locator` 或 5–15 字定位词;推断标证据强度。
20
+ 2. 硬事实附章节、`source_locator` 或 5–15 字定位词;推断标证据等级。
21
21
  3. 区分客观发生顺序、文本披露顺序、读者所知和角色所知。
22
22
  4. 分开分析事件推进、读者情绪和篇幅安排,分数不能代替解释。
23
23
  5. 只迁移抽象机制,不复刻专有设定、角色组合、关键事件链、标志性场面或原句。
@@ -25,21 +25,29 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
25
25
 
26
26
  ## 对作者说话
27
27
 
28
- 作者读到的一切——停下来提问、进度、拆完汇报、出错说明,以及 `快速预览.md`、`拆文报告.md`、人物关系图——按 [references/author-facing.md](references/author-facing.md) 写:大白话讲书、讲章、讲读者和作者能怎么用;不出现脚本名、命令、字段名、状态值、批次编号、内部文件名、质量指标名和证据分级字母;编号只和名称一起出现;需要作者拿主意时给一个问题、推荐选项和默认值;工程细节默认不写,确需时只在末尾留一行技术备注。脚本输出带 `author_message` 时转述它,不贴 JSON 或错误码。
28
+ 对话回复、`快速预览.md`、`拆文报告.md` 和人物关系图按 [references/author-facing.md](references/author-facing.md) 写,讲清书中情节、阅读感受和可借鉴写法。内部字段、命令与质量指标留在运行资料中;编号带名称。脚本返回 `author_message` 时转述说明与选项。
29
+
30
+ ## 运行约定
31
+
32
+ - `{PYTHON}`:依次试 `python3`、`python`、`py -3`,用第一个能运行的。`{story-long-analyze skill 根}` 是本文件所在目录,`{拆文目录}` 是 `拆文库/{书名}/`。
33
+ - 首次拆一本书时,把作者给的 TXT 存为 `{拆文目录}/原文/原文.txt`;若编码不是 UTF-8(常见为 GBK),先转成 UTF-8,否则子代理按行号读取时会乱码。
34
+ - 全文不足 2 万字或认不出章节标题时多半是短篇,建议作者改用 `/story-short-analyze`;作者坚持或由导入调用(篇幅已在导入时定好)时照常按长篇拆。
29
35
 
30
36
  ## 按时刻读
31
37
 
32
- 拆文按阶段分成几个时刻。进入一个时刻只读下表这一行的文件;上一时刻的操作说明不必留在上下文里,时刻之间只靠落盘产物和 `_progress.md` 的阶段状态交接(续跑、换新对话都从这里接上)。[references/author-facing.md](references/author-facing.md) 每个时刻都按需用。
38
+ 进入各阶段时只加载下表对应的说明,续跑或新会话通过落盘产物和 `_progress.md` 的阶段状态衔接。[references/author-facing.md](references/author-facing.md) 每个时刻都按需用。
33
39
 
34
40
  | 时刻 | 读 | 交接 |
35
41
  |---|---|---|
36
42
  | Phase 1–2、Stage 0–1 开头三章 | 本文件 + [stage1-golden-chapters.md](references/stage1-golden-chapters.md);原文变了或章号对不上时加 [index-rebuild.md](references/index-rebuild.md) | 黄金三章与快速预览落盘,标 `stage1` |
37
43
  | Stage 2 逐批提取 | [pipeline-ops.md](references/pipeline-ops.md);子代理不可用、自己写批次时加 [stage2-extraction.md](references/stage2-extraction.md) | 全部摘要落盘,标 `stage2` |
38
- | Stage 3 剧情与节奏 | [synthesis-inputs.md](references/synthesis-inputs.md) + [stage3-plot-rhythm.md](references/stage3-plot-rhythm.md);打桥段标签时查 [deconstruction-notes.md](references/deconstruction-notes.md)「桥段词表」 | 节奏与情绪模块落盘,标 `stage3` |
44
+ | 补缺 / 增强(检查器给出 `repair_stages`、`enhance_existing`,或写作端请作者来补拆) | 本文件「Phase 2」两张表,再按缺的那个 Stage 读下面对应一行 | 只补缺的产物,各自标阶段 |
45
+ | Stage 3 剧情与节奏 | [synthesis-inputs.md](references/synthesis-inputs.md) + [stage3-plot-rhythm.md](references/stage3-plot-rhythm.md) | 节奏与情绪模块落盘,标 `stage3` |
39
46
  | Stage 4 角色与设定 | [synthesis-inputs.md](references/synthesis-inputs.md) + [stage4-characters-settings.md](references/stage4-characters-settings.md) | 角色与设定落盘,标 `stage4` |
40
47
  | Stage 5 主报告 | [synthesis-inputs.md](references/synthesis-inputs.md) + [stage5-report.md](references/stage5-report.md) | 报告落盘,标 `stage5` |
41
- | Stage 6 文风 | [style-profile-generator.md](references/style-profile-generator.md)(它再指向文风协议) | `文风.md` 落盘,标 `stage6` |
48
+ | Stage 6 文风 | [style-profile-generator.md](references/style-profile-generator.md) | `文风.md` 落盘,标 `stage6` |
42
49
  | 全部拆完 | [final-checks.md](references/final-checks.md) | 按 author-facing「全部拆完」汇报 |
50
+ | 灵感库(作者提出「灵感库 / 提炼灵感 / 跨书灵感聚合 / 更新灵感库」时) | [references/inspiration-library.md](references/inspiration-library.md) | 只写 `灵感库/`,不改拆文产物 |
43
51
 
44
52
  ## Phase 1:确认对象并检查目录
45
53
 
@@ -49,92 +57,47 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
49
57
  "{PYTHON}" "{story-long-analyze skill 根}/scripts/inspect_existing_assets.py" --root "拆文库/{书名}" --compact
50
58
  ```
51
59
 
52
- 路径错误必须停止。完整旧项目返回 `direct_use` 后直接使用,不建索引、不读原文。只有用户明确要求增强才读取旧成果。已有摘要一律不覆盖:要重拆某章就删掉它的 `章节/第N章_摘要.md` 和覆盖它的 `_analysis_cache/批次-*.md`(只删摘要会从缓存原样补回),整本重拆就换一个新目录。`schema_version` 只报告,不作为新旧门禁,也不得在复用时改写。
60
+ 路径错误必须停止。已有摘要一律不覆盖:要重拆某章就删掉它的 `章节/第N章_摘要.md` 和覆盖它的 `_analysis_cache/批次-*.md`(只删摘要会从缓存原样补回),整本重拆就换一个新目录。`schema_version` 只报告,不作为新旧门禁,也不得在复用时改写。新旧投影混存要报告来源,但不要求重拆。
53
61
 
54
- ## Phase 2:唯一管道与三种情况
62
+ ## Phase 2:按检查结果走哪条路
63
+
64
+ | `recommended_path` | 做什么 |
65
+ |---|---|
66
+ | `new_analysis` | 全新小说:Stage 0 建索引 → Stage 1 → 停下来问 → Stage 2–6 |
67
+ | `continue_partial` | 部分完成:缺索引时补建;Stage 1 产物(前三章深度拆解、`快速预览.md`)缺哪份补哪份,已有的不覆盖,齐了标 `stage1`;再 `plan --intent continue` 只补缺章,按 Stage 3–6 补齐 |
68
+ | `direct_use` | 完整旧成果:直接使用,不建索引、不读原文;作者明确要求增强时才 `plan --intent enhance` |
69
+ | `repair_stages` | 逐章成果已齐,只缺后面的产物:按下表逐项补 |
70
+ | `enhance_existing` | 有逐章成果但不成套:总章数不明时先建索引再检查;缺摘要时 `plan --intent continue` 从旧成果补(不读原文);作者要求增强时用 `--intent enhance` |
55
71
 
56
- | 情况 | 行为 |
72
+ | `stage_repairs` 代码 | 补哪一步 |
57
73
  |---|---|
58
- | 部分完成 | 已完成章只读旧拆文;黄金三章可补缺失摘要;仅缺摘要的章进入原文块 |
59
- | 已完整拆完 | 默认直接使用;增强只写 `_analysis_cache/` 和 `_progress.md` 状态 |
60
- | 全新小说 | 建索引、完成黄金三章,再把其余正文放入不重叠连续章块 |
74
+ | `stage3_emotion`、`stage3_rhythm` | Stage 3:补缺的那份(情绪模块或节奏) |
75
+ | `stage6_style` | Stage 6:文风 |
76
+ | `stage3`、`stage4`、`stage5`、`stage6` | 没标完成:产物都在且合格就只 `mark-stage`,不重写;缺了才重做 |
61
77
 
62
- 检查器只扫描上游 `章节/*_摘要.md` 与黄金三章,逐章报告缺口。新旧投影混存要报告来源,但不要求重拆。
78
+ 有多项时按 Stage 顺序逐项补完并标记。情绪模块卡字段不全(灵感库登记报错)时,检查器不会报缺:作者同意后把旧 `剧情/情绪模块.md` 复制到 `_analysis_cache/legacy/`,按 Stage 3 只改出错的卡,再标 `stage3`。Stage 3–5 只用已有成果和批次缓存,不读原文;没有批次缓存的旧项目用 `digest` 取逐章字段,再加上已有剧情、关系资料。写作端「对标书还缺情绪/节奏分析」「缺文风」分别对应这里的 Stage 3、Stage 6。
63
79
 
64
80
  ### 固定交付接口
65
81
 
66
82
  - `拆文报告.md`、`概要.md`、`快速预览.md`;
67
- - `章节/第1-3章_深度拆解.md`、`章节/第N章_摘要.md`;
68
- - `剧情/故事线.md`、剧情单元、`节奏.md`、`情绪模块.md`、`散落情节.md`;
83
+ - `章节/第1章_深度拆解.md`、`章节/第2章_深度拆解.md`、`章节/第3章_深度拆解.md`,`章节/第N章_摘要.md`;
84
+ - `剧情/README.md`、`剧情/故事线.md`、剧情单元、`剧情/节奏.md`、`剧情/情绪模块.md`、`剧情/散落情节.md`;
69
85
  - `角色/`、`设定/`、`人物关系图/`、`文风.md`;
70
86
  - `chapter_index.csv`、`_progress.md`、`_analysis_cache/`。
71
87
 
72
88
  `拆文报告.md` 是阅读入口。剧情单元管因果事实,`剧情/节奏.md` 管信息推进与三维节奏,`剧情/情绪模块.md` 管读者需求和复现机制,`角色/角色关系.md` 管关系事实,`文风.md` 管表达层。
73
89
 
74
- ### Stage 0–6
75
-
76
- | 阶段 | 输入 | 主要输出 | 完成判断 |
77
- |---|---|---|---|
78
- | 0 机械索引 | 原文 | `chapter_index.csv`、`概要.md` 初稿(Stage 5 覆盖) | 章界、逐章 hash 和全源 hash 有效 |
79
- | 1 黄金三章 | 前三章原文 | 深度拆解、快速预览、可选 `_style-sample.txt` | 老接口完整;同次阅读保存可用样本 |
80
- | 2 连续块提取 | 只读计划列出的旧成果或原文块 | 批次缓存;缺失逐章摘要投影 | 缓存完整、摘要存在、状态范围 hash 有效 |
81
- | 3 剧情与机制 | 批次缓存和可信旧成果 | 剧情单元、故事线、节奏、情绪模块 | 文件存在、阶段状态完成 |
82
- | 4 角色与设定 | 批次涉及人物、状态变化、关系观察 | 角色、设定、关系图 | 文件存在、阶段状态完成 |
83
- | 5 主报告 | 权威底层结果 | 拆文报告、完整概要 | 文件存在、阶段状态完成 |
84
- | 6 文风 | 既有资料、样本或索引定点原文 | `文风.md` | 文件存在、阶段状态完成 |
85
-
86
- 用户未要求一次跑完时,Stage 1 后按 author-facing.md「开头三章拆完、停下来问」询问是否继续;要求一次跑完、多本书一起拆或由导入自动续跑时不停下询问。Stage 2 默认有限并行(每轮 3 批),不请作者选派发方式;作者问起或明确要求时再按 author-facing「作者问起怎么拆」解释并切换(见 pipeline-ops「执行与提交一个批次」)。续跑不重复 Stage 0/1。Stage 3–5 不重读原文。Stage 6 可按索引定点读取 4–6 段原文锚点,但不重扫全书。
87
-
88
- ## Stage 0:机械章节索引
89
-
90
- 全新和部分完成运行:
91
-
92
- ```text
93
- "{PYTHON}" "{story-long-analyze skill 根}/scripts/build_chapter_index.py" --source "{拆文目录}/原文/原文.txt" --output "{拆文目录}/chapter_index.csv" --locator-path "原文/原文.txt"
94
- ```
95
-
96
- 完整旧成果直接使用或纯增强时不建索引。索引只含机械事实:
97
-
98
- ```csv
99
- chapter,source_chapter,volume,title,start_line,end_line,char_count,source_locator,status,chapter_sha256,source_sha256,parser_version
100
- ```
101
-
102
- 只按 LF 计物理行。支持楔子、序章、第0章、任意正文起始章、番外、后记、中文大数、英文章号、多卷重置和卷章组合。目录与正文标题重复时先剔掉目录块;落表前校验章号连续、无重复和边界有效,其中特殊章独立编号,正文允许从任意首章开始。原文变化先拒绝;脚本因原文变化、章号对不上而停下并返回 `author_message` 时,读 [references/index-rebuild.md](references/index-rebuild.md),把说明和选项转告作者(默认推荐按旧章号继续)。
103
-
104
- `概要.md` 初稿只按章节标题、卷段结构和抽样开头/结尾写,模板见 [references/stage1-golden-chapters.md](references/stage1-golden-chapters.md)。
105
-
106
- ## Stage 1:黄金三章
107
-
108
- 按索引读前三章原文,同一次阅读写三份单章深度拆解、可选 `_style-sample.txt`,再写 `快速预览.md`(模板在 author-facing.md「快速预览.md」);深度拆解与文风样本模板见 [references/stage1-golden-chapters.md](references/stage1-golden-chapters.md)。黄金三章与快速预览落盘后运行 `manage_analysis_run.py mark-stage --stage stage1`,再按上方规则停下来问或继续。
109
-
110
- ## Stage 2:计划、提取、提交
111
-
112
- 按 [references/pipeline-ops.md](references/pipeline-ops.md) 执行:`manage_analysis_run.py plan` 出只读计划(用户明确增强用 `--intent enhance`,逐批加 `--next`,只拆一段加 `--chapters 起-止`),每批派一个 `chapter-extractor`,只照抄计划里这一批的字段;子代理自己读原文、把结果写进 `_analysis_cache/输入-{批次ID}.md`、只回一行回执,主会话不转贴原文、不读这份输入,直接 `commit`。批次过大或连续失败用 `split`,中断用 `repair-progress`。计划不再有批次、全部摘要落盘后运行 `manage_analysis_run.py mark-stage --stage stage2`。
113
-
114
- ## Stage 3:剧情、双时间线与三维节奏
115
-
116
- 按 [references/stage3-plot-rhythm.md](references/stage3-plot-rhythm.md) 生成剧情单元、故事线、`剧情/节奏.md` 与 `剧情/情绪模块.md`,取料用 `digest`(见 synthesis-inputs.md)。两份权威文件都落盘后运行 `manage_analysis_run.py mark-stage --stage stage3 --output "剧情/节奏.md"`。
117
-
118
- ## Stage 4:角色、设定与关系
119
-
120
- 按 [references/stage4-characters-settings.md](references/stage4-characters-settings.md) 生成角色档案、设定和 `角色/角色关系.md`,关系图只从该文件用 `render_relation_chart.py` 生成。至少一份角色档案和一份设定文件落盘后运行 `manage_analysis_run.py mark-stage --stage stage4`;缺任一类文件时不得标完成。
121
-
122
- ## Stage 5:主报告
123
-
124
- 报告按 author-facing.md「拆文报告.md」写:拆到哪、核心发现、读者在追什么、故事怎么推进、人物与关系、读者与角色的信息差、节奏、核心机制、可借鉴套路、不建议模仿、文风一句话、还不确定的地方。生成新报告前运行 `manage_analysis_run.py mark-stage --stage stage5 --prepare`,新报告与完整概要落盘后再运行 `manage_analysis_run.py mark-stage --stage stage5`(细则见 [references/stage5-report.md](references/stage5-report.md))。报告只综合底层结果,不再次阅读全文。
125
-
126
- 如项目存在 `选题决策.md`,只回填仍标记“待拆文验证”且题材匹配的项。没有「推荐选题」一节(只扫了榜)就跳过回填,不算无效;有推荐选题但缺少当前契约必需的“能爆的原因”等字段时返回 `invalid_topic_decision_contract`,提示重跑 `story-long-scan` Phase 5;文件不存在不影响拆文。
127
-
128
- ## Stage 6:文风与单独重建
129
-
130
- 加载 [references/style-profile-generator.md](references/style-profile-generator.md)。优先使用已有 `文风.md` 和有效 `_style-sample.txt`;样本不足时允许依据索引选择 4–6 章、定点读取原文行段。只缺文风时直接运行 Stage 6,不重跑 Stage 1–5。没有有效样本、索引或原文时明确失败,不生成锚点全空的可用档案。
131
-
132
- ## 三层灵感库管道(可选后置)
90
+ ## 各阶段要点
133
91
 
134
- 用户提出「灵感库 / 提炼灵感 / 跨书灵感聚合 / 更新灵感库」时加载 [references/inspiration-library.md](references/inspiration-library.md)。复用 Stage 3 的 EM 机制卡:`inspiration_index.py register-atoms` 机械登记原子灵感索引(无 IA 文件),再按该文档做单书合并与带受控标签的跨书聚合;卡内只用 `书名/EM-xxx` 裸 ID,禁路径引用。缺情绪模块的书先走上方按需增强,不在灵感层代拆。单书拆文不自动入库。
92
+ - **Stage 0 机械索引**:全新和部分完成且要读原文时建 `chapter_index.csv`(命令见 stage1-golden-chapters.md)。只按 LF 计物理行,目录与正文标题重复时先剔掉目录块;落表前校验章号连续、无重复和边界有效。脚本因原文变化或章号对不上停下时读 index-rebuild.md,把说明和选项转告作者(默认推荐按旧章号继续)。
93
+ - **Stage 1 黄金三章**:按索引读前三章,同一次阅读写三份单章深度拆解、可选 `_style-sample.txt` 和 `快速预览.md`,再运行 `manage_analysis_run.py mark-stage --stage stage1`。作者没要求一次跑完时按 author-facing「开头三章拆完、停下来问」询问;要求一次跑完、多本书一起拆或由导入自动续跑时不停。
94
+ - **Stage 2 逐批提取**:`plan` 出只读计划,每批派一个 `chapter-extractor`,默认有限并行(每轮 3 批),作者问起才解释并切换拆法;子代理自己读原文并写批次输入,主会话不转贴、不读它,直接 `commit`。细则见 pipeline-ops.md。
95
+ - **Stage 3–5**:用 `digest` 取料,不重读原文;怎么标阶段见 synthesis-inputs.md「阶段标记」;Stage 5 写新报告前先 `mark-stage --stage stage5 --prepare` 备份旧报告。
96
+ - **选题回填**:Stage 5 报告落盘后找 `选题决策.md`,只回填仍标记“待拆文验证”且题材匹配的项(查找位置与写法见 stage5-report.md)。没有「推荐选题」一节(只扫了榜)就跳过,不算无效;有推荐选题但缺少当前契约必需的“能爆的原因”等字段时返回 `invalid_topic_decision_contract`,提示重跑 `story-long-scan` Phase 5;文件不存在不影响拆文。
97
+ - **Stage 6 文风**:优先用已有 `文风.md` 和有效 `_style-sample.txt`,样本不足时按索引定点读 4–6 段原文,不重扫全书;只缺文风时直接运行,不重跑 Stage 1–5。取不到可核验原句时明确失败。
135
98
 
136
99
  ## 状态与旧项目
137
100
 
138
- 运行状态只有 `_progress.md` 受管区;既有 `schema_version: 2` 原值保留;`chapter_index.csv` 是机械索引;缓存是恢复证据。有阶段记录后,受管区的 `最终状态` 由脚本按 Stage 3–6 的阶段状态写出(都完成为 `completed`,否则 `pending`);旧项目沿用自己原有的 `最终状态` 行,全部完成时由脚本改为 `completed`,不写第二行,会话 hooks 靠它判断拆文是否完成,不要手改。不得创建运行计划、checkpoint、逐批 JSON receipt 或 Stage receipt。
101
+ 运行状态只有 `_progress.md` 受管区;既有 `schema_version: 2` 原值保留;`chapter_index.csv` 是机械索引;缓存是恢复证据。有阶段记录后 `最终状态` 由脚本写:Stage 3–6 都完成为 `completed`,否则新项目写 `pending`、旧项目保留原值(只改原有那一行);会话 hooks 靠它判断拆文是否完成,不要手改。
139
102
 
140
103
  全部完成后按 [references/final-checks.md](references/final-checks.md) 做收尾检查,再按 author-facing.md「全部拆完」向作者汇报。
@@ -1,6 +1,6 @@
1
1
  # 写给作者看的话
2
2
 
3
- 拆文的读者是网文作者,不是工程师。作者会看到的东西有两类:对话里的回复(进度、停下来问、拆完汇报、出错说明),和落盘给人读的文件(`快速预览.md`、`拆文报告.md`、`人物关系图/人物关系图.md`)。这两类都按本文件写;本文件代码块里的内容就是作者会看到的原样,守卫脚本会检查代码块里有没有工程词。
3
+ 对话回复(进度、确认、汇报、出错说明)与落盘文件(`快速预览.md`、`拆文报告.md`、`人物关系图/人物关系图.md`)均按本文件写。代码块给出可直接采用的话术。
4
4
 
5
5
  ## 总规则
6
6
 
@@ -8,7 +8,7 @@
8
8
  2. **不出现工程痕迹**:脚本名和命令、JSON 字段名(如检查器和计划器输出里的分类、推荐路径、阶段修复、最终状态)、状态值、批次编号、内部文件(运行进度、缓存、机械章节表)、hash、质量指标名(置信度、覆盖率、重叠率)、证据分级字母、「三维」这类内部口径。这些只在你自己的判断里用。
9
9
  3. **编号必须带人话名**:情绪模块卡、关系、事件的编号单独出现作者看不懂。要么只写名称,要么写成「退婚当众打脸」(情绪模块卡 EM-003);关系写成「林远 → 苏晴:由信任到反目(第9章宗门大比)」,不写关系编号。
10
10
  4. **证据强弱说人话**:原文直接写了的直接陈述;由几处细节推出来的写「从第3、5章的细节看,大概率……」;证据不够的写「推测,待回原文核实:……」。
11
- 5. **需要作者拿主意时**:问一个具体问题,给出推荐选项和理由,并说明不回答时按哪个默认继续。一次只问一件事。
11
+ 5. **需要作者拿主意时**:一次只问一个具体问题,给出推荐选项和理由。推荐不等于授权;需要确认的选择等作者回答,已授权范围内的常规工作按默认做法继续。
12
12
  6. **工程细节默认不写**:作者追问或排障确实需要时,放在回复最后单独一行「(技术备注:……)」,不超过一行。
13
13
  7. 脚本输出里带 `author_message` 的,按它的意思转述给作者(可润色,不改事实、不删选项),不要贴 JSON、错误码或 `detail`。
14
14
 
@@ -22,10 +22,10 @@
22
22
  一句话判断:{开篇靠什么抓人、主角怎么立住,一两句}。
23
23
  最值得学的一点:{最有借鉴价值的写法,一句}。
24
24
 
25
- 要继续把后面 {剩余章数} 章也拆完吗?我建议{继续 / 只拆第 X–Y 章这一段 / 到此为止},因为{理由}。
26
- 继续的话我每次同时拆三段,比一段段按顺序拆快两三倍,段和段之间的人物称呼、没收尾的剧情在最后汇总时对齐。
25
+ 要继续把后面 {剩余章数} 章也拆完吗?我建议{继续 / 先拆到第一卷末 / 只拆第 X–Y 章这一段 / 到此为止},因为{理由}。
26
+ 继续的话我每次同时拆三段(每段最多三章),全部拆完大约要 {轮数} 轮;段和段之间的人物称呼、没收尾的剧情在最后汇总时对齐。
27
27
 
28
- 不回复的话我按「{推荐选项}」处理。
28
+ 是否继续,等你决定。
29
29
  ```
30
30
 
31
31
  ### 作者问起怎么拆
@@ -34,9 +34,9 @@
34
34
 
35
35
  ```text
36
36
  有三种拆法:
37
- 1. 一段接一段按顺序拆:前后章的人物称呼、没收尾的剧情都接得最稳;最慢。
38
- 2. 每次同时拆三段(现在用的):快两三倍;段和段之间偶尔要等全部拆完汇总时再对齐人物和剧情。
39
- 3. 能同时拆多少就拆多少:最快;前后接续全靠最后汇总时对齐,汇总会多花些工夫。电脑或账号扛不住时我会自动放慢。
37
+ 1. 一段接一段按顺序拆:前后章的人物称呼、没收尾的剧情能逐段接上;等待较长。
38
+ 2. 每次同时拆三段(现在用的):可减少等待;段和段之间偶尔要等全部拆完汇总时再对齐人物和剧情。
39
+ 3. 尽量同时拆更多段:等待更少;前后接续全靠最后汇总时对齐,汇总会多花些工夫。电脑或账号扛不住时我会自动放慢。
40
40
  ```
41
41
 
42
42
  ### 拆的过程中报进度
@@ -61,7 +61,7 @@
61
61
  ```text
62
62
  《{书名}》拆完了:共 {总章数} 章、约 {总字数} 万字,{全部拆完 / 第 {x}–{y} 章没拆成:{原因}}。
63
63
 
64
- 这本书最值得学的三点:
64
+ 这本书最值得学的{一到三}点:
65
65
  1. {开篇怎么钩住读者——在第几章、用了什么手法}
66
66
  2. {读者追着看的核心情绪或爽点,怎样一次次兑现}
67
67
  3. {节奏上的特点:哪里快、哪里慢、为什么这样安排}
@@ -74,7 +74,7 @@
74
74
 
75
75
  去哪看:
76
76
  - 先看总报告:拆文报告.md
77
- - 开头三章逐章怎么写的:章节/第1-3章_深度拆解.md
77
+ - 开头三章逐章怎么写的:章节/第1章_深度拆解.md 到 第3章_深度拆解.md
78
78
  - 节奏和信息怎么一步步放出来:剧情/节奏.md
79
79
  - 读者爱看的情绪套路(可以拿去用的模块):剧情/情绪模块.md
80
80
  - 故事主线和每段剧情:剧情/故事线.md 和 剧情/ 下的各段
@@ -86,7 +86,7 @@
86
86
  {需要你定的:一个问题 + 推荐选项;没有就不写这一段}
87
87
  ```
88
88
 
89
- 只拆了一部分、或只补了某几个文件时,删掉用不上的「去哪看」条目,只列这次新增或更新的文件,并说清哪些是上次就有的。
89
+ 只拆了一部分或只补了几个文件时,「去哪看」只列这次新增或更新的文件,并说清哪些是上次就有的。
90
90
 
91
91
  ### 停下来或出错时
92
92
 
@@ -128,7 +128,11 @@
128
128
 
129
129
  ## 基本信息
130
130
 
131
- 书名 | 题材 | 总章数 | 总字数 | 目标平台(原书所在平台,看不出来就留空)
131
+ 书名:{书名}
132
+ 题材:{题材}
133
+ 总章数:{总章数}
134
+ 总字数:{总字数} 万
135
+ 目标平台:{原书所在平台,看不出来就留空}
132
136
 
133
137
  ## 黄金三章评分
134
138
 
@@ -162,7 +166,7 @@
162
166
 
163
167
  ## 拆文报告.md
164
168
 
165
- 全书的阅读入口。只综合已经落盘的剧情、节奏、情绪模块、角色、设定和文风结果,不为写报告重读全文,也不复制逐章摘要;细节写一句结论再指向对应文件。下列一级小节名被导入、写作和选题回填读取,保留原名。
169
+ 这是全书的阅读入口,只综合落盘的剧情、节奏、情绪模块、角色、设定和文风结果,不为写报告重读全文,也不复制逐章摘要;细节写一句结论再指向对应文件。这几个小节名有下游在读,保留原名:「基本信息」(写作端读题材,导入读题材与目标平台)、「核心发现」「读者在追什么」「伏笔与冲突」(导入;核心发现也用于选题回填)、「不建议模仿」(写作排卷纲)、「写法技巧」「可借鉴套路」「文风一句话」(文风)。
166
170
 
167
171
  ```markdown
168
172
  # 拆文报告:{书名}
@@ -172,7 +176,11 @@
172
176
 
173
177
  ## 基本信息
174
178
 
175
- 书名 | 题材 | 总章数 | 总字数 | 目标平台(与 快速预览.md 同结构)
179
+ 书名:{书名}
180
+ 题材:{题材}
181
+ 总章数:{总章数}
182
+ 总字数:{总字数} 万
183
+ 目标平台:{原书所在平台,看不出来就留空}
176
184
 
177
185
  ## 核心发现
178
186
 
@@ -180,7 +188,7 @@
180
188
 
181
189
  ## 黄金三章评分
182
190
 
183
- 与 快速预览.md 同一张五项表;「为什么这么打」一栏写一句人话理由。
191
+ 沿用 快速预览.md 的五项评分表;「为什么这么打」一栏写一句人话理由。
184
192
 
185
193
  ## 读者在追什么
186
194
 
@@ -192,7 +200,7 @@
192
200
 
193
201
  ## 人物与关系
194
202
 
195
- 主角、主要对手、核心配角各一两句:是谁、想要什么、在故事里起什么作用。
203
+ 主角、主要对手、核心配角各一两句:是谁、想要什么、在故事里起什么作用;功能角色只列名字和戏份。
196
204
  关系图见 人物关系图/人物关系图.md(有图片版时在这里嵌入 人物关系图/核心人物关系.png)。
197
205
  关键关系的变化逐条写成「甲 → 乙:由……到……(第几章,因为……)」;甲保护乙、乙依赖甲这类方向不同的关系分开写。
198
206
 
@@ -214,22 +222,12 @@
214
222
 
215
223
  跨章较远或影响主线的伏笔:在第几章埋下、第几章揭开、揭开时读者是什么感受。冲突怎么一级级升级,最后落到哪里。
216
224
 
217
- ## 核心机制
218
-
219
- 这本书反复使用的爽点类型、节奏套路和更新上的做法,各一两句。
220
-
221
- ## 角色体系
222
-
223
- 主角 / 对手 / 核心配角 / 功能性角色各有哪些人、分别承担什么戏份。
224
-
225
225
  ## 可借鉴套路
226
226
 
227
- 1. {套路名}:在什么场景用、怎么起效、第几章能看到(对应情绪模块卡「{模块名}」(EM-{编号}))
228
- 2. ……
229
-
230
- ## 可复现模块
227
+ 先用一两句说这本书反复使用的爽点类型和节奏套路,再列最值得复用的几条(最多三条):
231
228
 
232
- 从 剧情/情绪模块.md 挑最值得复用的三张卡,每张写:读者想看什么、情绪链、戏剧单元、可替换项、不可照搬。
229
+ 1. {套路名}:读者想看什么、情绪怎么一步步推上去、在什么场景用、第几章能看到、换书时哪些要换掉、哪些不能照搬(原书专名、事件顺序、标志性台词)(对应情绪模块卡「{模块名}」(EM-{编号}))
230
+ 2. ……
233
231
 
234
232
  ## 写法技巧
235
233
 
@@ -241,7 +239,7 @@
241
239
 
242
240
  ## 文风一句话
243
241
 
244
- {句子长短、对话习惯、情绪起伏的特点};详细见 文风.md。
242
+ {句子长短、对话习惯、情绪起伏的特点};详细见 文风.md;若文风尚未生成,写明待补,不先推测。
245
243
 
246
244
  ## 还不确定的地方
247
245