@oh-story/dsh 0.1.14 → 0.1.16

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 (533) hide show
  1. package/README.md +12 -10
  2. package/lib/drama/manifest.json +284 -364
  3. package/lib/drama/skills/short-drama/SKILL.md +13 -14
  4. package/lib/drama/skills/short-drama/agents/openai.yaml +1 -1
  5. package/lib/drama/skills/short-drama/references/audience-reveal.md +4 -4
  6. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -2
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +12 -10
  8. package/lib/drama/skills/short-drama/references/creator-workflow.md +6 -5
  9. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +8 -8
  10. 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
  11. 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
  12. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +6 -7
  13. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +2 -3
  14. 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
  15. package/lib/drama/skills/short-drama/references/knowhow-index.md +6 -7
  16. package/lib/drama/skills/short-drama/references/look-development.md +5 -7
  17. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +6 -3
  18. package/lib/drama/skills/short-drama/references/production-form-profiles.md +14 -16
  19. package/lib/drama/skills/short-drama/references/reference-roles.md +5 -3
  20. package/lib/drama/skills/short-drama/references/runtime-preflight.md +2 -1
  21. package/lib/drama/skills/short-drama-assets/SKILL.md +8 -8
  22. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +1 -1
  23. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +26 -27
  24. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +22 -22
  25. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +4 -4
  26. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +4 -4
  27. package/lib/drama/skills/short-drama-assets/references/era-anchors.md +3 -3
  28. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -5
  29. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +6 -7
  30. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -9
  31. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +8 -11
  32. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +22 -22
  33. package/lib/drama/skills/short-drama-develop/SKILL.md +6 -6
  34. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +1 -1
  35. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +2 -2
  36. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +2 -2
  37. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +13 -12
  38. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +7 -7
  39. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +7 -8
  40. package/lib/drama/skills/short-drama-develop/references/episode-design.md +20 -24
  41. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +7 -7
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +1 -1
  50. 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
  51. 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
  52. 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
  53. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +1 -1
  54. 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
  55. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +4 -4
  56. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +6 -7
  57. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +19 -17
  58. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +5 -5
  59. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +6 -5
  60. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -4
  61. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +7 -9
  62. package/lib/drama/skills/short-drama-develop/references/story-craft.md +8 -10
  63. package/lib/drama/skills/short-drama-edit/SKILL.md +11 -14
  64. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +12 -19
  65. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
  66. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +5 -4
  67. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +1 -1
  68. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +6 -4
  69. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +5 -5
  70. package/lib/drama/skills/short-drama-edit/references/still-cuts.md +1 -1
  71. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +7 -2
  72. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +1 -1
  73. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +4 -5
  74. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +17 -17
  75. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +10 -9
  76. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +11 -12
  77. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +6 -5
  78. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +2 -2
  79. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +6 -6
  80. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +8 -8
  81. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +5 -4
  82. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +17 -24
  83. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +3 -4
  84. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +5 -10
  85. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +4 -6
  86. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +9 -13
  87. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +3 -7
  88. package/lib/drama/skills/short-drama-produce/SKILL.md +43 -42
  89. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +1 -1
  90. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +31 -18
  91. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +1 -1
  92. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +11 -6
  93. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +2 -2
  94. package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +7 -5
  95. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +14 -8
  96. package/lib/drama/skills/short-drama-review/SKILL.md +9 -9
  97. package/lib/drama/skills/short-drama-review/agents/openai.yaml +1 -1
  98. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -11
  99. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +24 -23
  100. package/lib/drama/skills/short-drama-review/references/project-calibration.md +17 -16
  101. package/lib/drama/skills/short-drama-review/references/review-method.md +8 -6
  102. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +7 -6
  103. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +17 -10
  104. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +29 -25
  105. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +11 -11
  106. package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -2
  107. package/lib/drama/skills/short-drama-storyboard/SKILL.md +8 -10
  108. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +1 -1
  109. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +8 -11
  110. package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +11 -12
  111. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +4 -5
  112. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +19 -24
  113. package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +1 -1
  114. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +26 -29
  115. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +6 -5
  116. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +2 -2
  117. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +4 -4
  118. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -8
  119. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +3 -3
  120. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -7
  121. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +1 -1
  122. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +63 -61
  123. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +20 -18
  124. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +12 -12
  125. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +4 -3
  126. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +38 -40
  127. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +36 -36
  128. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +17 -21
  129. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +10 -11
  130. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +1 -1
  131. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +2 -2
  132. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +6 -12
  133. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +2 -1
  134. package/lib/drama/skills/short-drama-write/SKILL.md +15 -15
  135. package/lib/drama/skills/short-drama-write/agents/openai.yaml +1 -1
  136. package/lib/drama/skills/short-drama-write/assets/screenplay.md +3 -4
  137. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +20 -22
  138. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +20 -22
  139. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +10 -10
  140. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +11 -9
  141. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +11 -10
  142. package/lib/drama/skills/short-drama-write/references/script-craft.md +41 -47
  143. package/lib/drama/skills/short-drama-write/references/stage-contract.md +7 -5
  144. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +19 -25
  145. package/lib/index.js +80 -17
  146. package/lib/index.js.map +3 -3
  147. package/lib/novel-to-game/README.md +8 -9
  148. package/lib/novel-to-game/README_ZH.md +12 -13
  149. package/lib/novel-to-game/manifest.json +19 -19
  150. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
  151. package/lib/novel-to-game/skills/game-build/SKILL.md +2 -0
  152. package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -1
  153. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
  154. package/lib/novel-to-game/skills/game-world-design/SKILL.md +1 -1
  155. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +1 -1
  156. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +4 -4
  157. package/lib/oh-story/manifest.json +676 -676
  158. package/lib/oh-story/roles/chapter-extractor.md +10 -10
  159. package/lib/oh-story/roles/character-designer.md +8 -24
  160. package/lib/oh-story/roles/consistency-checker.md +3 -5
  161. package/lib/oh-story/roles/narrative-writer.md +16 -16
  162. package/lib/oh-story/roles/story-architect.md +8 -11
  163. package/lib/oh-story/roles/story-explorer.md +7 -9
  164. package/lib/oh-story/roles/story-researcher.md +8 -8
  165. package/lib/oh-story/skills/browser-cdp/SKILL.md +19 -18
  166. package/lib/oh-story/skills/story/SKILL.md +15 -20
  167. package/lib/oh-story/skills/story/VERSION +1 -1
  168. package/lib/oh-story/skills/story-cover/SKILL.md +17 -26
  169. package/lib/oh-story/skills/story-cover/references/cover-styles.md +12 -10
  170. package/lib/oh-story/skills/story-deslop/SKILL.md +69 -211
  171. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
  172. package/lib/oh-story/skills/story-deslop/references/banned-words.md +63 -151
  173. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
  174. package/lib/oh-story/skills/story-deslop/references/expression.md +76 -0
  175. package/lib/oh-story/skills/story-deslop/references/narrative-focus.md +63 -0
  176. package/lib/oh-story/skills/story-deslop/references/story-logic.md +65 -0
  177. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +5 -5
  178. package/lib/oh-story/skills/story-import/SKILL.md +8 -13
  179. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -8
  180. package/lib/oh-story/skills/story-import/references/deep-analysis.md +5 -5
  181. package/lib/oh-story/skills/story-import/references/format-and-structure.md +11 -11
  182. package/lib/oh-story/skills/story-import/references/import-report.md +5 -5
  183. package/lib/oh-story/skills/story-import/references/import-special-cases.md +4 -4
  184. package/lib/oh-story/skills/story-import/references/import-tracking.md +5 -5
  185. package/lib/oh-story/skills/story-import/references/length-routing.md +12 -20
  186. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +3 -3
  187. package/lib/oh-story/skills/story-import/references/outline-reverse.md +2 -2
  188. package/lib/oh-story/skills/story-import/references/state-tracking.md +5 -3
  189. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +13 -13
  190. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +10 -14
  191. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
  192. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +2 -2
  193. package/lib/oh-story/skills/story-long-analyze/SKILL.md +8 -8
  194. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +9 -9
  195. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +22 -22
  196. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +5 -4
  197. package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +9 -3
  198. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +7 -7
  199. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +8 -9
  200. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +2 -2
  201. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +8 -8
  202. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +9 -9
  203. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +15 -15
  204. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +17 -15
  205. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +8 -6
  206. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +19 -16
  207. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +8 -8
  208. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +6 -6
  209. package/lib/oh-story/skills/story-long-scan/SKILL.md +24 -34
  210. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +30 -44
  211. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +6 -4
  212. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +5 -5
  213. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +7 -7
  214. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +17 -7
  215. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +16 -4
  216. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +16 -29
  217. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +26 -39
  218. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +10 -11
  219. package/lib/oh-story/skills/story-long-write/SKILL.md +9 -10
  220. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +3 -3
  221. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +3 -3
  222. package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +11 -9
  223. package/lib/oh-story/skills/story-long-write/references/author-memory.md +8 -8
  224. package/lib/oh-story/skills/story-long-write/references/banned-words.md +63 -151
  225. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +2 -2
  226. package/lib/oh-story/skills/story-long-write/references/character-basics.md +3 -3
  227. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +4 -4
  228. package/lib/oh-story/skills/story-long-write/references/character-relations.md +4 -4
  229. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +7 -6
  230. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +1 -1
  231. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +23 -160
  232. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +19 -22
  233. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +2 -2
  234. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +3 -3
  235. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +28 -27
  236. package/lib/oh-story/skills/story-long-write/references/expression.md +76 -0
  237. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +3 -4
  238. 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
  239. 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
  240. 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
  241. 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
  242. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  249. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  250. 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
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +7 -7
  271. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +32 -39
  272. package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +1 -1
  273. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +2 -2
  274. package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -2
  275. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +13 -13
  276. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +2 -2
  277. package/lib/oh-story/skills/story-long-write/references/long-reversal.md +3 -3
  278. package/lib/oh-story/skills/story-long-write/references/long-suspense.md +3 -5
  279. package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +63 -0
  280. package/lib/oh-story/skills/story-long-write/references/opening-design.md +4 -4
  281. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
  282. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +4 -4
  283. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +2 -2
  284. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +10 -11
  285. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +5 -5
  286. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +8 -8
  287. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +5 -6
  288. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +7 -5
  289. package/lib/oh-story/skills/story-long-write/references/project-files.md +4 -4
  290. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
  291. package/lib/oh-story/skills/story-long-write/references/reference-index.md +3 -5
  292. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +1 -1
  293. package/lib/oh-story/skills/story-long-write/references/story-logic.md +65 -0
  294. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +3 -3
  295. package/lib/oh-story/skills/story-long-write/references/style-craft.md +8 -29
  296. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +3 -3
  297. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +5 -5
  298. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +2 -2
  299. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -2
  300. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +5 -4
  301. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +3 -2
  302. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +3 -3
  303. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +3 -3
  304. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +1 -1
  305. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +3 -3
  306. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +2 -2
  307. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +25 -24
  308. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +61 -58
  309. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +87 -20
  310. package/lib/oh-story/skills/story-review/SKILL.md +16 -31
  311. package/lib/oh-story/skills/story-review/references/agent-prompts.md +10 -12
  312. package/lib/oh-story/skills/story-review/references/banned-words.md +63 -151
  313. package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
  314. package/lib/oh-story/skills/story-review/references/character-relations.md +4 -4
  315. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +19 -22
  316. package/lib/oh-story/skills/story-review/references/expression.md +76 -0
  317. package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
  318. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +5 -5
  319. package/lib/oh-story/skills/story-review/references/quality-rubric.md +5 -5
  320. package/lib/oh-story/skills/story-review/references/review-quality.md +16 -19
  321. package/lib/oh-story/skills/story-review/references/review-tracking.md +5 -5
  322. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +6 -5
  323. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +6 -5
  324. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +7 -8
  325. package/lib/oh-story/skills/story-review/references/solo.md +5 -5
  326. package/lib/oh-story/skills/story-review/references/story-logic.md +65 -0
  327. package/lib/oh-story/skills/story-review/references/style-resolution.md +5 -5
  328. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +2 -2
  329. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -2
  330. package/lib/oh-story/skills/story-setup/SKILL.md +18 -18
  331. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +3 -3
  332. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +3 -4
  333. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +63 -151
  334. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +9 -9
  335. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +3 -3
  336. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +4 -4
  337. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +4 -4
  338. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +23 -160
  339. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +19 -22
  340. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +2 -2
  341. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +3 -3
  342. package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +76 -0
  343. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +11 -11
  344. 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
  345. 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
  346. 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
  347. 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
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  355. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  356. 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
  357. 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
  358. 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
  359. 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
  360. 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
  361. 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
  362. 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
  363. 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
  364. 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
  365. 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
  366. 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
  367. 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
  368. 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
  369. 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
  370. 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
  371. 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
  372. 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
  373. 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
  374. 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
  375. 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
  376. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +7 -7
  377. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +33 -41
  378. package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +1 -1
  379. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +28 -27
  380. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +13 -13
  381. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +2 -2
  382. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +3 -3
  383. package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +3 -3
  384. package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +3 -5
  385. package/lib/oh-story/skills/story-setup/references/agent-references/narrative-focus.md +63 -0
  386. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +4 -4
  387. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
  388. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +4 -4
  389. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +2 -2
  390. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +5 -5
  391. package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +14 -34
  392. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +7 -9
  393. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +8 -10
  394. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +11 -12
  395. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +6 -4
  396. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +11 -11
  397. package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +65 -0
  398. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +3 -3
  399. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +3 -3
  400. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +5 -5
  401. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +25 -24
  402. package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
  403. package/lib/oh-story/skills/story-short-analyze/SKILL.md +5 -15
  404. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +91 -111
  405. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +85 -97
  406. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +72 -83
  407. package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
  408. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +28 -30
  409. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +59 -66
  410. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +1 -3
  411. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +2 -2
  412. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +3 -3
  413. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +3 -3
  414. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +2 -2
  415. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +2 -2
  416. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +76 -89
  417. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +5 -5
  418. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +3 -3
  419. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +13 -24
  420. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +3 -3
  421. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +24 -25
  422. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +44 -46
  423. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +14 -12
  424. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +17 -17
  425. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +11 -11
  426. package/lib/oh-story/skills/story-short-scan/SKILL.md +22 -29
  427. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +3 -3
  428. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +2 -2
  429. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +2 -2
  430. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +24 -25
  431. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +3 -3
  432. package/lib/oh-story/skills/story-short-write/SKILL.md +20 -23
  433. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +4 -4
  434. package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +11 -9
  435. package/lib/oh-story/skills/story-short-write/references/author-memory.md +8 -8
  436. package/lib/oh-story/skills/story-short-write/references/banned-words.md +63 -151
  437. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +8 -8
  438. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +11 -11
  439. package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +34 -0
  440. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +19 -22
  441. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +7 -9
  442. package/lib/oh-story/skills/story-short-write/references/expression.md +76 -0
  443. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +9 -9
  444. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +15 -15
  445. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +9 -9
  446. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +14 -14
  447. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +11 -11
  448. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +9 -9
  449. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +14 -13
  450. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +12 -12
  451. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +8 -8
  452. 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
  453. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +8 -10
  454. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +14 -34
  455. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +11 -12
  456. package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
  457. package/lib/oh-story/skills/story-short-write/references/output-contract.md +13 -24
  458. package/lib/oh-story/skills/story-short-write/references/reference-index.md +3 -4
  459. package/lib/oh-story/skills/story-short-write/references/scene-craft.md +8 -7
  460. package/lib/oh-story/skills/story-short-write/references/short-craft.md +16 -18
  461. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +12 -125
  462. package/lib/oh-story/skills/story-short-write/references/short-format.md +9 -13
  463. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +18 -35
  464. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +11 -11
  465. package/lib/oh-story/skills/story-short-write/references/story-logic.md +65 -0
  466. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +5 -5
  467. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +8 -8
  468. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +11 -13
  469. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +11 -9
  470. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +10 -10
  471. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +10 -9
  472. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +4 -4
  473. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +61 -58
  474. package/lib/types/role-tool.d.ts +42 -2
  475. package/lib/types/role-tool.d.ts.map +1 -1
  476. package/lib/types/skill-provider.d.ts.map +1 -1
  477. package/lib/video-recap/CHANGELOG.md +8 -0
  478. package/lib/video-recap/README.en.md +8 -10
  479. package/lib/video-recap/README.md +8 -8
  480. package/lib/video-recap/manifest.json +48 -48
  481. package/lib/video-recap/skills/video-assemble/SKILL.md +5 -8
  482. package/lib/video-recap/skills/video-assemble/references/audio-modes.md +3 -3
  483. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +1 -2
  484. package/lib/video-recap/skills/video-assemble/references/packaging.md +1 -2
  485. package/lib/video-recap/skills/video-assemble/references/source-score.md +5 -6
  486. package/lib/video-recap/skills/video-cut/SKILL.md +3 -7
  487. package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
  488. package/lib/video-recap/skills/video-recap/SKILL.md +7 -11
  489. package/lib/video-recap/skills/video-recap/references/audio-routing.md +1 -2
  490. package/lib/video-recap/skills/video-recap/references/config-playbook.md +5 -7
  491. package/lib/video-recap/skills/video-recap/references/data-schema.md +8 -8
  492. package/lib/video-recap/skills/video-recap/references/resource-library.md +2 -2
  493. package/lib/video-recap/skills/video-reference/SKILL.md +4 -8
  494. package/lib/video-recap/skills/video-reference/references/reference-schema.md +1 -1
  495. package/lib/video-recap/skills/video-script/SKILL.md +4 -13
  496. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +2 -2
  497. package/lib/video-recap/skills/video-understanding/SKILL.md +10 -6
  498. package/lib/video-recap/skills/video-understanding/references/data-schema.md +2 -2
  499. package/lib/video-recap/skills/video-voiceover/SKILL.md +3 -11
  500. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +1 -2
  501. package/package.json +25 -24
  502. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +0 -187
  503. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +0 -42
  504. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +0 -128
  505. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +0 -34
  506. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +0 -49
  507. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +0 -36
  508. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +0 -2
  509. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +0 -2
  510. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +0 -101
  511. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +0 -217
  512. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +0 -31
  513. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +0 -67
  514. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +0 -2
  515. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +0 -120
  516. package/lib/drama/skills/short-drama-write/assets/episode-card.json +0 -55
  517. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +0 -89
  518. package/lib/oh-story/skills/story/references/author-memory-maintenance.md +0 -75
  519. package/lib/oh-story/skills/story/references/author-memory.md +0 -117
  520. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +0 -1635
  521. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +0 -556
  522. package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +0 -75
  523. package/lib/oh-story/skills/story-deslop/references/author-memory.md +0 -117
  524. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +0 -1635
  525. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +0 -556
  526. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +0 -556
  527. package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +0 -75
  528. package/lib/oh-story/skills/story-review/references/author-memory.md +0 -117
  529. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +0 -1635
  530. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +0 -556
  531. package/lib/oh-story/skills/story-setup/references/agent-references/short-suspense.md +0 -352
  532. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
  533. package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
@@ -1,10 +1,10 @@
1
1
  # 投稿范式:平台基调 · 导语 · 付费点
2
2
 
3
- > 短篇是投出去过稿的,不是写完就算。这份文件管三件投稿层的事:按平台定基调、单独打磨导语、把付费点卡在断点上。题材招式仍按 `genre-styles/{题材}.md`,本文只叠加"投稿怎么写才收得掉"这一层。
3
+ > 投稿前按平台定基调、单独打磨导语,并设计付费断点;题材招式按 `genre-styles/{题材}.md`。
4
4
 
5
5
  ## 一、先定平台基调
6
6
 
7
- 动笔前先确认投稿平台,正文的视角、矛盾烈度、章末钩子、结局质感随之切换。三大主流基调:
7
+ 动笔前确认投稿平台,结合本篇目标情绪选择视角、矛盾烈度、章末钩子与结局质感。以下基调用作创作参考:
8
8
 
9
9
  | 平台 | 视角 | 矛盾演进 | 章末钩子 | 结局质感 |
10
10
  |---|---|---|---|---|
@@ -12,24 +12,24 @@
12
12
  | 小程序 | 上帝视角或强情绪第一人称,开局即地狱 | 冲突全外化到对白和动作,走"被羞辱→亮底牌→当众打脸→夺实利"快循环 | 卡脖子断点(巴掌将落、协议撕一半、话说一半) | 直白粗暴的爽,反派付实质代价(破产/入狱/众叛亲离),主角高位不留遗憾 |
13
13
  | 番茄短篇 | 流畅第一/第三人称,目标清晰、金手指直白 | 顺滑无毒点,反派挑衅一两节内转成主角升级/发财的垫脚石 | 开新地图 / 拿到新底牌 / 新人物带资源登场 | 圆满畅快,事业感情双收,坏人受罚 |
14
14
 
15
- - 小程序收稿量最大,打脸爽文是主力盘;同一个脑洞可以分别按知乎/小程序/番茄各跑一版,挑最顺的投。
16
- - 基调只调"声音和落点",不覆盖题材招式和本篇目标情绪。基调是投放渠道的声音,与 `short-format.md` 的排版模板是两个轴——小程序基调的稿,排版仍按 short-format 选一套 app 模板。
15
+ - 同一个脑洞可以分别按知乎/小程序/番茄试写,比较声音与落点后选择投稿方向。
16
+ - 平台基调须与题材招式及本篇目标情绪配合;排版另按 `short-format.md` 选择,小程序基调的稿也要选定一套平台模板。
17
17
  - **调基调不松去 AI 底线**:强情绪靠具体动作和对白落地,别把话硬拆成三字碎句成片排列;前情背景靠场景带出,别整段插叙成"来龙去脉"说明书;对仗句式("上辈子…这辈子…")别高频复用。去 AI 味仍按本套件既有规则。
18
18
 
19
19
  ## 二、导语(投稿门面,单独打磨)
20
20
 
21
- 导语是正文最前面的引子,也是编辑第一眼看的东西。编辑一天审几百篇,**导语不行,正文再好也被一眼刷掉**。所以导语要单独当一件作品来打磨,别指望编辑往下翻。
21
+ 导语是正文最前面的引子,要让编辑和读者尽快看清核心冲突与继续读的理由。
22
22
 
23
- - **长度与形态**:约 150-220 字(题材包如写 150-300,投稿时按此收紧),就是正文开头那几段。一句一段指完整句各自独立成段,不是把整句拆成三字碎句;这是黑岩/盐言导语的形态,番茄导语按 `short-format.md` 该平台的短段叙织即可。导语写完即接正文(内容本身就是第一章开头,不重写)。
23
+ - **长度与形态**:约 150-220 字,题材包如写 150-300,投稿时按此收紧。黑岩/盐言用完整句各自成段,番茄按 `short-format.md` 的短段模板。导语就是正文开头几段,写完顺接后文。
24
24
  - **四维骨架**:起因(悲剧源头或荒诞开端)+ 核心冲突(被凝视、被剥削、被算计的绝境)+ 人设底色(清醒、有底牌,不是纯惨)+ 情绪反转(钩子卡在最后半句,戛然而止)。
25
25
  - **黄金三角**:一个有冲击力的具体物件(撕碎的 B 超单、代持协议、落灰的旧相机)+ 一个信息差(主角藏在暗处的底牌,读者知道、施害者不知道)+ 一个留白的致命钩子。
26
26
  - **反面**:别用导语平铺背景或抒情;别把底牌全亮完(留给正文兑现);别只写惨不写"她有后手"。
27
27
 
28
28
  ## 三、付费点(投稿结构)
29
29
 
30
- 短篇按"免费试读 + 付费点 + 付费正文"投稿(投稿语境的"章"即本 skill 的"节")。付费点是免费段和付费段的分界,卡不好读者不付费,卡对了转化高。
30
+ 采用付费试读的短篇按"免费试读 + 付费点 + 付费正文"组织,投稿语境的"章"即本 skill 的"节"。分界处要留下读者正在等待的答案或后果。
31
31
 
32
- - **断点位置**:付费点卡在一个章末的卡脖子断点上——一个即将揭晓、读者必须付费才能看到的反转或对决瞬间(亲子鉴定撕开一半、底牌刚要拍上桌、名字念到一半)。别把核心大爽点在免费段全放完。
32
+ - **断点位置**:在章末截住即将揭晓的反转或对决,如亲子鉴定撕开一半、底牌刚要拍上桌、名字念到一半,让付费段兑现尚未完成的动作。核心大爽点不要在免费段全部放完。
33
33
  - **剧情点密度**:付费点前完成处境、选择与代价的因果链,付费点后集中兑现已经承诺的打脸、反转或爽点。相关变化可由同一动作链完成,不按每章数量补剧情点;连续单元没有状态变化才复核是否停滞。
34
34
  - **反推法排细纲**:先定付费点卡在第几节章末,先把那一节的剧情想透(如复仇虐爽:前几节情绪递进越来越虐,付费点节章末预示反击),再倒推安排前面各节"情绪冲突逐渐递进",最后排付费点之后的兑现段。
35
35
  - **投稿成品形态**:标题 + 导语(不写"导语"二字,只留那几句)+ 数字分节的正文(含付费点断点)。投稿建议区间比 SKILL 框架(8000-20000)更收敛:整篇约 8000-12000 字;分节数量与长度服从动作链、转场和付费断点,不设统一章长。
@@ -1,12 +1,10 @@
1
- # 反派系统 + 真相揭露机制
1
+ # 反派设计与真相揭露
2
2
 
3
3
  > 反派设计模板、真相揭露方式、报应设计。Phase 2 设计反派时加载。
4
4
 
5
5
  ---
6
6
 
7
- **本文件职责**(其他内容去哪看):
8
- - 各题材的反派套路(世情打脸反派、重生复仇反派等)已在 genre-writing-formulas.md,本文件只提供通用设计模板
9
- - 本文件的反派人设模板 `{身份}+{动机}+{作恶方式}+{致命弱点}` 侧重「设计蓝图」,genre-writing-formulas.md 的 `{人设}+{动机}+{行为}+{态度}+{受伤害程度}` 侧重「矛盾冲突公式」——前者用于 Phase 2 设计,后者用于 Phase 3 写作
7
+ 按题材决定反派的恶行与关系压力,再用以下模板记录身份、动机、手段、弱点与报应。
10
8
 
11
9
  ---
12
10
 
@@ -27,7 +25,7 @@
27
25
 
28
26
  ### 嚣张度递增阶梯
29
27
 
30
- 反派行为必须逐级递增,不跳跃也不重复:
28
+ 按前因与损失加重反派行为,避免重复同一种恶行;下表展示一种升级路径:
31
29
 
32
30
  | 级别 | 行为类型 | 示例 |
33
31
  |------|----------|------|
@@ -39,11 +37,11 @@
39
37
 
40
38
  | 类型 | 特征 | 代表作 | 致命弱点 |
41
39
  |------|------|--------|----------|
42
- | 操控型 | 以爱为名控制一切 | 王氏(皇弟) | 控制欲导致行事留下证据 |
40
+ | 操控型 | 以爱为名控制一切 | 王氏(《皇弟欺负幼子》) | 控制欲导致行事留下证据 |
43
41
  | 贪婪型 | 无底线索取 | 准儿媳 | 贪心过度暴露真面目 |
44
- | 伪装型 | 隐藏真实身份/目的 | 诈骗犯(重生弟弟) | 身份经不起调查 |
45
- | 嚣张型 | 仗势欺人,有恃无恐 | 萧琅(皇弟) | 傲慢导致不看身后 |
46
- | 软刀型 | 示弱博同情,暗中操控 | 妈妈(姐夫捎路) | 假面被证据击碎 |
42
+ | 伪装型 | 隐藏真实身份/目的 | 女友(《重生弟弟》中的诈骗犯) | 身份经不起调查 |
43
+ | 嚣张型 | 仗势欺人,有恃无恐 | 萧琅(《皇弟欺负幼子》) | 傲慢导致不看身后 |
44
+ | 软刀型 | 示弱博同情,暗中操控 | 妈妈(《姐夫捎路要奶粉钱》) | 假面被证据击碎 |
47
45
 
48
46
  ---
49
47
 
@@ -116,7 +114,7 @@
116
114
 
117
115
  ### 规则
118
116
 
119
- 报应必须与恶行形成对应。恶行有多重,报应就有多重。
117
+ 报应须与恶行及其后果对应,让读者看清反派为何承担这一代价。
120
118
 
121
119
  ### 对应原则
122
120
 
@@ -138,7 +136,7 @@
138
136
 
139
137
  ### 报应强度校准
140
138
 
141
- - 报应强度 = 恶行强度 × 1.0-1.2(不过度也不轻描淡写)
139
+ - 按恶行、受害后果与本篇情绪决定报应强度,避免轻轻放过或无因夸大
142
140
  - 不写长段报应描写,2-3 句带过,留白给读者
143
141
  - 报应的「爽」来自对应感,不是来自描写长度
144
142
 
@@ -146,8 +144,8 @@
146
144
 
147
145
  ## 4. 反转有效性自检(Phase 2 使用)
148
146
 
149
- 写完 outline 后按 writing-workflow.md「反转信息差验证」逐项过:揭示时机按功能定(误判先参与至少一次重要决定),百分比只记录、不当阈值。本文件只补两条:
147
+ 写完大纲后按 writing-workflow.md「反转信息差验证」检查,先让误判参与至少一次重要决定,再揭示真相;位置百分比只作记录。另查:
150
148
  - 反转前读者和角色至少有一方不知道真相;没有就制造信息差(读者不知道 / 角色不知道 / 双方都不知道)。
151
149
  - 假线索用红鲱鱼或选择性叙述;真相线索藏在日常细节里,回看能找到、正读会忽略,不用强调语气。
152
150
 
153
- **失败模式**:「延迟揭露」不算反转。读者在第 2 节就知道真相,后面 10 节只等角色追上来 = 延迟揭露,读者会无聊。真正的反转发生在揭示那一刻,让读者和角色一起震惊。
151
+ **失败模式**:读者早已知道真相,后续只等角色追上来,却没有新行动或代价。此时只有角色获知信息;若目标是让读者震惊,揭示还须推翻读者此前的判断。
@@ -4,7 +4,9 @@
4
4
 
5
5
  已部署 story-architect 时可 spawn `Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:短篇构思\n查询参数:{目标情绪+题材方向}")` 辅助框架设计;不可用由主会话直接执行。
6
6
 
7
- 帮用户确定短篇的核心框架:
7
+ 与作者确定核心框架:
8
+
9
+ 情绪设计中的反转项仅用于有反转篇;无反转时在该位置记录报应兑现或甜度变化,按本篇设计安排高潮。
8
10
 
9
11
  ```
10
12
  ## 短篇核心框架
@@ -43,20 +45,20 @@
43
45
  - {作者在对话里定下的人称、偏好、红线,一条一行;否掉的方案也记一行,写明为什么不要}
44
46
  ```
45
47
 
46
- 框架确定后,完成设计任务,然后在工作目录下创建文件。
48
+ 框架确定后按以下任务设计,再将结果写入工作目录。
47
49
 
48
50
  #### 设计任务(框架确定后执行)
49
51
 
50
- 详细步骤和模板见 `references/writing-workflow.md`。构思时从目标情绪反推剧情,不是从灵感正向构建。按顺序完成:
52
+ 从目标情绪反推剧情,按 `references/writing-workflow.md` 的步骤和模板依次完成:
51
53
 
52
- 1. 定平台基调 + 加载题材风格包 → 先读 `references/submission-craft.md` 定投稿平台(知乎/小程序/番茄),正文视角、矛盾烈度、章末落点随之切换;再读 `references/genre-styles/{题材}.md`(核心 10 题材)+ 通用底座 `references/short-craft.md`,从招式库选 2-3 个核心招式(如追妻的白月光触发链 / 信物翻转 / 火葬场预告),写入 设定.md「题材招式」区,全程照此招式与腔调写;冷门题材把所用公式要点按模板一并写进该区,写正文与精修不再重读公式全文
53
- 2. 设计反派(如有)→ 加载 `villain-and-reveal.md`
54
- 3. 确定揭露方式 → 同上
55
- 4. 编写 小节大纲.md(12 列表格见 writing-workflow.md,只做轻量蓝图)。**标出付费点卡在哪一节末**(见 `submission-craft.md`「付费点」:用未完成动作、身份/证据变化或两难选择形成真实断点);用反推法先想透付费点那一节,再倒排前后。每节可选一个任务卡点,但必须服务情绪升级、证据推进、关系撕裂、反转铺垫或反击动作;没有就不强补
54
+ 1. 定平台基调并加载题材风格包:先读 `references/submission-craft.md`,定投稿平台及正文视角、矛盾烈度、章末落点;再读核心 10 题材对应的 `references/genre-styles/{题材}.md` 和通用方法 `references/short-craft.md`,选 2-3 个核心招式,写明本篇用法并存入 `设定.md`「题材招式」。冷门题材将所用公式要点按模板写入该区,供正文与精修直接使用
55
+ 2. 设计反派(如有):加载 `villain-and-reveal.md`
56
+ 3. 确定揭露方式:按同一文件选择;无需揭露时写明原因
57
+ 4. 编写 `小节大纲.md`,使用 writing-workflow.md 的 12 列表格。**标出付费点卡在哪一节末**:按 `submission-craft.md`「付费点」,用未完成动作、身份/证据变化或两难选择形成断点;先想透该节,再倒排前后。任务卡点仅在能推动情绪、证据、关系、反转或反击时使用
56
58
  5. 反转信息差验证(公式见 writing-workflow.md)
57
59
  6. 伏笔回查清单(标准见 writing-workflow.md)
58
60
 
59
- `设定.md` 必须包含以下机器可验收字段(内容本身也是后续写作依据,不是读文件回执):
61
+ 将以下设计字段写入 `设定.md`,供机器验收与后续写作使用:
60
62
 
61
63
  ```markdown
62
64
  ## Phase 2 设计校验
@@ -78,7 +80,7 @@
78
80
 
79
81
  两份文件生成后、向用户声明构思完成或进入 Phase 3 前,运行 `node scripts/check-phase2-contract.js --json {短篇目录}`:
80
82
 
81
- - exit 0:Phase 2 机械契约通过,才可进入下一阶段;这不替代故事质量判断
83
+ - exit 0:Phase 2 机械契约通过,可进入下一阶段;故事质量仍需判断
82
84
  - exit 1:只把 `repair_scope` 中的检查 ID、证据、期望、reference 路径和修复范围交给本轮 writer;只改失败字段,再运行同一命令
83
85
  - 最多做 2 轮定向 repair;仍失败则停止,用中文告诉作者设计还缺什么,不得声称 Phase 2 已完成
84
86
  - exit 2、脚本缺失或不可执行:告诉作者自动检查没跑成,不得用泛化“自检”替代后继续
@@ -4,30 +4,30 @@
4
4
 
5
5
  **格式规范(最高优先级)**:正文只存 `正文.md`,主会话与写手同一套格式:段间只允许一个换行符、不留空行,小节标记与引号全篇统一,按 `设定.md`「平台基调」,没写才查 `short-format.md` 平台覆盖表;子代理输出不一致时按此重排。
6
6
 
7
- **构思收口先验**:写前先跑 `node {skill 根}/scripts/check-phase2-contract.js --json {短篇目录}`;不是 exit 0 就告诉作者构思还没收口、请回到构思补完,不自己重读构思方法论补写。
7
+ **构思完成检查**:写前先跑 `node {skill 根}/scripts/check-phase2-contract.js --json {短篇目录}`;未返回 exit 0 时,告诉作者设计还缺什么,请其回到构思补完。
8
8
 
9
9
  **本时刻只靠落盘文件接上构思**:`设定.md`(核心框架、作者已定、平台基调、题材招式、反转铺垫、贯穿道具、反派与揭露方式、对标摘要)与 `小节大纲.md` 为 Phase 2 产出,`正文.md` 为本阶段产出。反转、反派、揭露、付费点与平台基调以两份设计文件为准,不重读构思方法论(workflow-design、writing-workflow、short-reversal、submission-craft、villain-and-reveal、冷门题材公式全文);作者在对话里改过、设计文件还没写的,先写回 `设定.md` 再动笔。
10
10
 
11
11
  **导入项目续写基线**:`设定.md` 存在「本书续写基线」时先读取,作为已写内容的内部连续性与既有写法约束;它不是对标摘要,不参与主/副对标排序,也不复制到 `对标/`。
12
12
 
13
- > 术语说明:Phase 3 按「段」划分叙事结构(开头段/铺垫段/升级段/反转段/结尾段),每段包含若干「小节」(数字编号的 beat)。「场景」指写作时的具体画面。
13
+ > 下文的五「段」指开头、铺垫、升级、反转、结尾等结构部分,各含若干数字编号的「小节」;场景内按节拍(beat)安排动作与情绪变化。
14
14
 
15
- **写前加载**:`short-format.md`(正文格式)、`short-craft.md`(通用底座)、[scene-craft.md](scene-craft.md)(场景写法)、`设定.md` 题材参考里的那一个 `genre-styles/{题材}.md`(冷门题材不读公式,按「题材招式」区记下的要点写,腔调按 `short-craft.md`);写羁绊铺设或余韵收尾时按需读 `emotional-methods.md` 对应一斧。`short-deslop.md` 到 Phase 4 去味时再读,写作中的 AI 腔由完成门槛的检测器兜底。
15
+ **写前加载**:依次读 `short-format.md` 的正文格式、`short-craft.md` 的通用方法、[scene-craft.md](scene-craft.md) 的场景写法,以及 `设定.md` 题材参考指定的唯一 `genre-styles/{题材}.md`。冷门题材按「题材招式」区的公式要点写,腔调按 `short-craft.md`。写羁绊或余韵时按需读 `emotional-methods.md` 对应一斧;`short-deslop.md` 到 Phase 4 去味时再读,初稿先通过完成门槛的 AI 腔检测。
16
16
 
17
17
  **交付参数先锁定**:用户明确的字数范围优先,逐字取其最小值/最大值与节数;只给单一目标时用目标的 95%-105%;都未给时用 8000-20000 字和大纲节数。后文的默认字数不得覆盖用户范围。
18
18
 
19
19
  **写前参数验收(锁定后、写 `正文.md` 前必跑)**:`node {skill 根}/scripts/check-delivery-contract.js --json --check-contract --min-chars {MIN} --max-chars {MAX} --sections {N} [--min-section-chars {用户逐节下限}] {短篇目录}`。exit 0 只说明参数能同时满足,不算交付;exit 2 即冲突,停在写前,用中文告诉用户字数范围与节数哪里对不上,请其选择调整项,不代改用户约束。
20
20
 
21
- **写前准备**(每个场景写前执行 2 步,是核心方法的落地:确认目标情绪 → 召回技法模块):
21
+ **写前准备**:每个场景动笔前依次确认情绪与技法:
22
22
  - **步骤 1:记忆+召回**:① 本场景目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 具体用在哪个段落?答不出 → 先回读本时刻已加载的参考再动笔。有对标时从 `设定.md`「对标摘要」召回 1-2 个与本场景相关的技法,要细看再查主对标 `对标/{书}/写作手法.md`(没有就用 `拆文库/{书}/`)的对应条目,写入“拆文召回摘要”
23
23
  - **多对标书时**:副对标只用「对标摘要」里构思时已登记的条目(正文阶段不新增召回),作为“副对标召回摘要”;正文只传摘要,不传副书文风或原文
24
- - **步骤 2:指令确认**:用一句话概括本场景写作意图(情绪+技法+适配段落),并确认本场景是否有任务卡点、它卡出哪种情绪变化或新证据;没有就不强补。确认后开始写作
24
+ - **步骤 2:指令确认**:用一句话概括本场景的情绪、技法及使用位置;有任务卡点时说明它带来的情绪变化或新证据,确认后开始写作
25
25
 
26
26
  **写作指令**:写法按 `short-craft.md`(情绪直写与上下文支撑第 2 节、在场叙述第 3 节)与 `scene-craft.md`(三维度揉进与画面分段、疏密与主语节奏),段落与标点按 `short-format.md`,不照搬大纲腔。情绪烈度按 `设定.md` 与题材包的腔调,没写时默认宁烈不温(冲突前置、爽点具体、台词带刺);任务卡点必须直接加重羞辱、误会、背叛、证据、反击或心死节点,删掉无损就压缩。
27
27
 
28
28
  #### 分批写与子代理
29
29
 
30
- 正文写作阶段默认由主会话按 2-3 节/批分批写正文;主会话输出是短篇正文的标准形态,不要求单次 agent spawn 完成 8000+ 字全文。
30
+ 主会话默认按 2-3 节/批写正文,不要求单次 agent spawn 写完 8000+ 字。
31
31
 
32
32
  - 每批写完后更新短篇目录下 `.story/work/已写小节摘要.md`(3-5 条:已揭示信息、情绪位置、未回收伏笔、下一批衔接句),换对话靠它接上,交付后可删。
33
33
  - 下一批先读该摘要和 `正文.md` 尾部 300-500 字再续写。
@@ -40,13 +40,13 @@
40
40
 
41
41
  **节数守恒**:正文节数必须等于小节大纲规划节数。不得合并多节为一节。如果写作中发现某节不需要独立存在,应回到大纲阶段调整,而非在写作时偷减。
42
42
 
43
- 按以下结构分段写(占比仅参考,以小节大纲为准):
43
+ 按以下结构写作,占比仅参考,以小节大纲为准。无反转篇按设计写报应兑现或甜度递进;反转线索、误导与揭露要求仅用于有反转的篇目。反派与贯穿道具仅在设计中选用时执行相应要求。
44
44
 
45
45
  #### 第一段:开头(前 300-500 字)
46
46
 
47
47
  **目标**:3 句话内抓住读者。**必须包含一个开篇钩子**(从下表或题材包「开篇范式」选类型)。
48
48
 
49
- **先写导语**:正文开头先写一条 150-220 字导语(投稿门面,编辑第一眼看它)——四维骨架(起因+核心冲突+人设底色+情绪反转)配黄金三角(具体物件+信息差+留白钩子),一句一段(黑岩/盐言导语形态;番茄导语按 short-format.md 短段叙织)——完整句各自独立成段,不是拆成三字碎句。它就是正文开头的头几段,写好顺势往下接、不重写,所以首句同样守下面的开头零环境和前 100 字事件密度≥3(首句是事件/动作/信息炸弹,不是背景或弧线概括),剧透钩子放导语后半;不平铺背景或抒情,底牌不全亮(留给正文兑现),不只写惨不写后手。
49
+ **先写导语**:正文以 150-220 字导语开篇,交代起因、核心冲突、人设底色与情绪反转,结合具体物件、信息差与留白钩子。黑岩/盐言用完整句各自成段,番茄按 short-format.md 短段叙述。导语就是正文头几段,写完顺接后文。首句从事件、动作或信息炸弹起笔,遵守下方开头零环境规则及前 100 字事件密度≥3;剧透钩子放导语后半,留住底牌,也让读者看到主角的后手。
50
50
 
51
51
  **开头零环境规则**(默认适用;悬疑、惊悚、灾难、强氛围题材可例外):
52
52
  - 前 3 句禁止出现无事件承载的环境描写(灯光、天气、气味、温度、装修)
@@ -86,7 +86,7 @@
86
86
  - 随风险和选择升级提高牵引强度;用新证据、代价、误判修正或局部反击推动,不按固定节数另塞钩子(按题材包)
87
87
  - 埋入误导信息,让读者猜错反转方向
88
88
  - **数字/金额递增作为叙事工具**(具体数字替代模糊描述,见各 genre-styles 招式库「数字承重」)
89
- - **场景引擎有变化**:行动、对话、证据、任务、等待、空间压力与关系选择按因果需要切换;不为动静交替补无功能小动作
89
+ - **场景引擎有变化**:按因果需要切换行动、对话、证据、任务、等待、空间压力与关系选择
90
90
 
91
91
  #### 第四段:反转(占全文 10-15%)
92
92
 
@@ -108,7 +108,7 @@
108
108
  | 类型 | 效果 | 适合情绪 |
109
109
  |------|------|----------|
110
110
  | 余韵式 | 不说完,让读者自己想 | 意难平 |
111
- | 呼应式 | 首尾呼应,形成闭环 | 治愈、成长 |
111
+ | 呼应式 | 首尾的物件、动作或话语形成呼应闭环 | 治愈、成长 |
112
112
  | 开放式 | 留下悬念 | 细思极恐 |
113
113
  | 反转再反转 | 结尾再来一个小反转 | 震惊 |
114
114
  | 金句式 | 一句话点题 | 共鸣 |
@@ -2,7 +2,7 @@
2
2
 
3
3
  本文件中的 `scripts/` 与 `references/` 路径均相对本 skill 根目录。精修必读本文件与 `short-format.md`(格式快速检查、字数口径);新对话里精修也先读它。
4
4
 
5
- Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传入)。Phase 4 去味由一个执行者(下方 narrative-writer 或主会话)按 `references/short-deslop.md` 自检清单完成;一致性检查职责不变。S1/S2 与 blocking 必须修,S3 与 advisory 建议看,S4 仅提示。最终扫描与交付验收由主会话对落盘文件执行,修改后只复核改动、重跑受影响检查,不另开整轮去味。
5
+ Phase 3 写手只做覆盖与格式自检。Phase 4 由 narrative-writer 或主会话一方读 `references/short-deslop.md` 与 `references/deslop-gates.md`,定点修复清单及检测问题,再查一致性;完整三层诊断另走 `/story-deslop`。S1/S2 与 blocking 必须修,S3 与 advisory 建议看,S4 仅提示。主会话最终扫描、验收;改后只复核改动并重跑受影响检查。
6
6
 
7
7
  按文末「精修清单」完成检查。文件模式依次运行 `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md`、`node scripts/check-outline-copy.js --outline 小节大纲.md 正文.md`、`node scripts/normalize-punctuation.js 正文.md`、`node scripts/check-degeneration.js --check 正文.md`,blocking 先改正文再复扫。照搬检测报出的誓词、关键原话等功能性台词保留,登记进 `小节大纲.md` 末尾「复沓锚句」再复检,其余现场重写。
8
8
 
@@ -12,9 +12,9 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
12
12
 
13
13
  已部署对应 agent 时可派出:narrative-writer 去味的 prompt 见 [agent-calls.md](agent-calls.md)「精修去味」;一致性检查派 `Agent(subagent_type: "consistency-checker", prompt: "项目目录:{dir}\n检查范围:{正文文件}\n检查类型:事实冲突+伏笔断线+角色属性不一致")`。agent 不可用时主会话直接执行。
14
14
 
15
- **正文洁净规则**:自检(字数、禁用词、格式)结果只在对话里说明,不落盘成文件,**绝对不能**附到正文末尾,正文不得出现 `<!-- 自检 -->` 等检查标记。
15
+ **正文洁净规则**:自检结果只在对话中说明,不另存或附正文;正文不得出现 `<!-- 自检 -->` 等检查标记。
16
16
 
17
- **交付说明(给作者看)**:只用大白话,按三块写:
17
+ **交付说明(给作者看)**:用白话说明:
18
18
  1. 写了什么:标题、一句话核心钩子或反转、总字数、几节。
19
19
  2. 要作者拍板的事:每件写成一句问题并附推荐默认(如「结尾要不要再留个小反转?默认不留」);没有就省略。
20
20
  3. 下一步可选:精修某段、去 AI 味、换平台改写等。
@@ -25,6 +25,8 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
25
25
 
26
26
  ### 精修检查清单
27
27
 
28
+ 反转项仅用于反转篇;无反转时核对核心兑现与关系递进。
29
+
28
30
  ```
29
31
  ## 精修清单
30
32
 
@@ -56,10 +58,10 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
56
58
  - [ ] 章末是否有未完成动作、新信息、局部兑现、关系变化、余韵或明确下一步之一?
57
59
 
58
60
  ### AI 腔
59
- - [ ] 无禁止比喻:「命运的齿轮」「如潮水般」「仿佛春风」「心猛地一沉」「眼眶泛红」
61
+ - [ ] 比喻、情绪词与反应有上下文作用;不凭「如潮水般」「心猛地一沉」「眼眶泛红」孤立词句判错
60
62
  - [ ] 重复的身体/情绪描写按功能取舍:无新增信息就删,不换部位或同义动作凑数
61
63
  - [ ] 「像/好像/仿佛/如同」不成片堆叠;超过 10 处或检测器报比喻密度时逐处复核功能,有功能的留,不设硬上限、不机械全删
62
- - [ ] 完整 AI 腔黑名单见 short-deslop.md
64
+ - [ ] 检测候选已逐处按功能复核,短篇卖点保护见 short-deslop.md
63
65
 
64
66
  ### 技法
65
67
  - [ ] 情绪落地:按 `short-craft.md` 第 2 节检查上下文支撑,保留准确直写,清理空泛与重复说明
@@ -72,10 +74,9 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
72
74
  - [ ] 读者会不会想转发?
73
75
  ```
74
76
 
75
- ### 标点确定性收尾
77
+ ### 标点收尾
76
78
 
77
- 精修后对 `正文.md` 先运行 `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md`。blocking 先改正文并复扫;advisory 只作读感提示,确属问题才改,功能性写法标 `[需复核]`。
78
- 再运行 `node scripts/normalize-punctuation.js 正文.md`(默认 `--quote-mode keep`)清理无功能省略号、破折号、双连字符和独立分隔线;盐言「」不受影响。
79
+ 按本文件开头的文件扫描顺序,先运行 `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md`,修正 blocking 后复扫;advisory 结合读感判断,功能性写法标 `[需复核]`。再运行 `node scripts/normalize-punctuation.js 正文.md`,默认 `--quote-mode keep`,清理无功能省略号、破折号、双连字符和独立分隔线,保留盐言「」。
79
80
 
80
81
  ### 删减原则
81
82
 
@@ -92,7 +93,7 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
92
93
  | 反转没力度 | 铺垫不够或太明显 | 增加误导线索 |
93
94
  | 结尾无力 | 反转后还在补交代 | 篇幅按小节大纲;反转后只写兑现与余韵 |
94
95
  | 全篇平淡 | 情绪曲线太平 | 加大情绪落差 |
95
- | 感觉像流水账 | 缺乏情绪描写 | 加入人物内心感受 |
96
+ | 感觉像流水账 | 事件没有改变判断、选择或情绪 | 补清事件后果及人物回应,删掉无变化的复述 |
96
97
 
97
98
  ### 冷门题材公式核对
98
99
 
@@ -1,6 +1,6 @@
1
1
  # writing-workflow.md:短篇写作工作流详解
2
2
 
3
- Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revision.md。
3
+ Phase 2 按本文件完成设计与验收;Phase 4 精修按 workflow-revision.md。
4
4
 
5
5
  ---
6
6
 
@@ -12,7 +12,7 @@ Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revisi
12
12
  - 填写:`- 第1次出现(第X节):{场景}({含义})` 重复三次,含节号定位
13
13
  2. **设计反派**(如有):用 villain-and-reveal.md 反派模板
14
14
  - 填写:`{身份} + {动机} + {作恶方式} + {致命弱点} + {报应}`
15
- 3. **确定揭露方式**:从 villain-and-reveal.md 4 种真相揭露机制中选一种,写进 设定.md 反派设计区
15
+ 3. **确定揭露方式**:需要揭露真相时,从 villain-and-reveal.md 的 4 种机制中选择,写进 `设定.md` 反派设计区;无需揭露时写明原因
16
16
  4. **编写 小节大纲.md**:使用固定 12 列 Markdown 表格,每节 1 行,表头如下(列名和顺序不可改):
17
17
 
18
18
  `| 结构段/五段功能 | 主事件 | 情节推进 | 情绪 | 人物/关系变化 | 因果/逻辑链 | 读者新获知什么 | 结尾承接/钩子 | 伏笔/物件 | 场景形态 | 对白作用 | 目标字数 |`
@@ -27,7 +27,7 @@ Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revisi
27
27
  `具体发生了什么{功能标签}` 如 `发现账单上多了一笔4800{发现}` / `把戒指冲进马桶{冲突}` / `他笑了{递进}`
28
28
  功能标签:`对话` / `冲突` / `伏笔` / `回忆` / `发现` / `递进`
29
29
  情节点描述要具体到"谁做了什么",不能只写标签如`对话`或`冲突`
30
- - `场景形态` 写主要推进引擎,如行动、对话权力、证据核验、手艺、等待、空间压力或关系回落;不要求动静交替
30
+ - `场景形态` 写主要推进引擎,如行动、对话博弈、证据核验、手艺、等待、空间压力或关系回落;不要求动静交替
31
31
  - `对白作用` 写对白实际改变的信息、策略、权力、关系或下一步行动;无对白时写明由哪种动作、证据、物件或任务推进,不设占比或话轮数量
32
32
  5. **反转信息差验证**(outline 写完后、写作前必须验证):
33
33
  - `short-reversal.md` 判为无反转 → 写明理由,改查报应因果或甜度期待是否经过铺垫并得到兑现;跳过以下揭示检查
@@ -46,5 +46,5 @@ Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revisi
46
46
 
47
47
  ### 设定.md 内容构成
48
48
 
49
- 核心框架(含平台基调、人设速写)+ 作者已定 + 题材招式 + 反转铺垫(信息差验证与伏笔回查结果)+ 贯穿道具 + 反派设计与揭露方式 + 对标摘要;写正文只读它与小节大纲,所以构思里定下的都要写进来。贯穿道具追踪表:
49
+ 将核心框架、平台基调、人设速写、作者已定、题材招式、反转铺垫验证、贯穿道具、反派与揭露方式、对标摘要写入 `设定.md`,正文阶段靠它与小节大纲接续构思。贯穿道具追踪表:
50
50
  `| 物件 | 第1次出现(节号/含义) | 第2次出现(节号/含义) | 第3次出现(节号/含义) |`
@@ -34,21 +34,22 @@ PENDING_MAX_BYTES = 12288
34
34
  JOURNAL_MAX_BYTES = 24576
35
35
  QUERY_MAX_BYTES = 2048
36
36
  ASSERTION_MAX_BYTES = 120 # 新建条目的断言限一句话;解释进 reason(不进 query 载荷)。
37
- OMITTED_IDS_MAX = 20 # omitted_ids 封顶,omitted 保留真实总数——漏项列表不许把载荷本身挤炸。
38
37
  LEGACY_ASSERTION_MAX_BYTES = 768 # 存量条目的读取上限;强化老条目不受新上限约束。
39
38
 
40
- # query 的输出是要原样贴进执行 agent prompt 的注入载荷,QUERY_MAX_BYTES
41
- # 是它在 prompt 里的注意力预算,不该放大。防「作者以为载入了、实际被静默
42
- # 截断挤掉」靠三层:①新建条目的断言限 ASSERTION_MAX_BYTES,从源头短(强化
43
- # 已有条目不受限,否则存量长断言再也无法被确认,只会派生重复条目);②写入
44
- # 端按下列任务组合(与 references/author-memory-maintenance.md 的映射表同包跟版)估算
45
- # 最坏查询情形——全局条目+各 scope 维度上最重的单一切片(一次查询只带一
46
- # 个 book/genre/workflow,不同书的条目不会同现;切片按 casefold 归并,与
47
- # same_scope_value 同一口径,轻重按 compact 字节+列表分隔符算,与真实载荷
48
- # 同一把尺),装不下时在返回的 warnings 里点名将被略过的条目、指向「整理作
49
- # 者记忆」,写入本身永不因注入预算失败;③查询按 重要度→本书例外→最近更新
50
- # 排序装填,被略过的恒是重要度较低的条目,漏下的 ID 按同一优先级顺序报进
51
- # omitted_ids。
39
+ # query 输出里的 lines(每条一行「- 断言(编号)」)是交给执行 agent 的注入
40
+ # 载荷,QUERY_MAX_BYTES 是它在 prompt 里的注意力预算,不该放大;量的是执行者
41
+ # 真正读到的这几行,不是 JSON 外壳(编号、kind、scope 只给主会话和脚本看)。
42
+ # 防「作者以为载入了、实际被静默挤掉」靠三层:①新建条目的断言限
43
+ # ASSERTION_MAX_BYTES,从源头短(强化已有条目不受限,否则存量长断言再也无法
44
+ # 被确认,只会派生重复条目);②写入端按下列任务组合(与
45
+ # references/author-memory-maintenance.md 的映射表同包跟版)估算最坏查询情形——
46
+ # 全局条目+各 scope 维度上最重的单一切片(一次查询只带一个 book/genre/workflow,
47
+ # 不同书的条目不会同现;切片按 casefold 归并,与 same_scope_value 同一口径,
48
+ # 轻重按渲染后的行字节算,与真实载荷同一把尺),装不下时在返回的 warnings 里
49
+ # 点名将被略过的条目、指向「整理作者记忆」,写入本身永不因注入预算失败;
50
+ # ③查询按 重要度→本书例外→最近更新 排序装填,被略过的恒是重要度较低的条目,
51
+ # 漏下的 ID 按同一优先级全数报进 omitted_ids,首句报进 omitted_summaries,
52
+ # 供主会话用原话告诉作者哪几条没带上。
52
53
  QUERY_COMBOS: dict[str, tuple[str, ...]] = {
53
54
  "正文初稿/续写": ("prose_style", "story_design"),
54
55
  "去AI味/改写": ("prose_style",),
@@ -1086,12 +1087,19 @@ def summarize_assertion(assertion: str, *, limit: int = 14) -> str:
1086
1087
 
1087
1088
 
1088
1089
  def compact_item(item: dict[str, Any]) -> dict[str, Any]:
1089
- """query 载荷只带这四个字段——估算与真实输出必须同一把尺。"""
1090
+ """query 的 items 只带这四个字段,给主会话和脚本按 kind/scope 判断用;
1091
+ reason、evidence 等一律不出 store。"""
1090
1092
  return {"id": item["id"], "kind": item["kind"], "scope": item["scope"], "assertion": item["assertion"]}
1091
1093
 
1092
1094
 
1093
- def compact_bytes(item: dict[str, Any]) -> int:
1094
- return len(json.dumps(compact_item(item), ensure_ascii=False).encode("utf-8"))
1095
+ def render_line(item: dict[str, Any]) -> str:
1096
+ """执行者读到的一行:断言原文+编号。注入预算量的就是这几行。"""
1097
+ return f"- {item['assertion']}({item['id']})"
1098
+
1099
+
1100
+ def line_bytes(item: dict[str, Any]) -> int:
1101
+ """一行在注入载荷里的占位,含行尾换行——估算与真实装填只用这一把尺。"""
1102
+ return len((render_line(item) + "\n").encode("utf-8"))
1095
1103
 
1096
1104
 
1097
1105
  SCOPE_RANK = {"book": 0, "genre": 1, "workflow": 2, "global": 3}
@@ -1121,48 +1129,38 @@ def fit_items(
1121
1129
  *,
1122
1130
  extra: dict[str, Any] | None = None,
1123
1131
  ) -> tuple[dict[str, Any], list[str]]:
1124
- """按 query 输出信封把条目装进 QUERY_MAX_BYTES:装不下的跳过而不中断
1125
- (一条长的不挡后面的短条),漏下的 ID 报进 omitted_ids(封顶
1126
- OMITTED_IDS_MAX 条,omitted 保留真实总数)。返回 (结果文档, 全部漏下 ID)。
1132
+ """按渲染后的行把条目装进 QUERY_MAX_BYTES:装不下的跳过而不中断(一条长的
1133
+ 不挡后面的短条)。返回 (结果文档, 全部漏下 ID)。
1127
1134
 
1128
- 漏项恒按候选优先级排序,不按被丢弃的先后:收尾回吐的条目优先级高于循环
1129
- 里跳过的,若按追加顺序排,omitted_ids 的封顶正好会把最该报的那条切掉。
1130
- `extra` 是同样计入信封的附加字段(book_revision 等)。
1135
+ 只有 lines 计入预算;items、漏项清单和 `extra`(book_revision 等)是给主会话
1136
+ 和脚本看的,不进执行者 prompt,所以漏项全数列出、不封顶,并按候选优先级
1137
+ 排序——排在前面的就是作者最该知道没带上的那几条。
1131
1138
  """
1139
+ kept: list[dict[str, Any]] = []
1140
+ dropped: list[dict[str, Any]] = []
1141
+ used = 0
1142
+ for item in sorted_items:
1143
+ size = line_bytes(item)
1144
+ if used + size > QUERY_MAX_BYTES:
1145
+ dropped.append(item)
1146
+ continue
1147
+ kept.append(item)
1148
+ used += size
1132
1149
  result: dict[str, Any] = {
1133
1150
  "ok": True,
1134
1151
  "command": "query",
1135
1152
  "initialized": True,
1136
1153
  "revision": revision,
1137
- "items": [],
1138
- "omitted": 0,
1139
- "omitted_ids": [],
1154
+ "items": [compact_item(item) for item in kept],
1155
+ "lines": [render_line(item) for item in kept],
1156
+ "omitted": len(dropped),
1157
+ "omitted_ids": [item["id"] for item in dropped],
1158
+ "omitted_summaries": {item["id"]: summarize_assertion(item["assertion"]) for item in dropped},
1159
+ # 组装脚本按题材×流程查好几次再合并,合并后只能按重要度重排漏项,所以把它带出来。
1160
+ "omitted_importance": {item["id"]: item["importance"] for item in dropped},
1140
1161
  }
1141
1162
  result.update(extra or {})
1142
- order = {item["id"]: index for index, item in enumerate(sorted_items)}
1143
- kept: list[dict[str, Any]] = []
1144
- dropped: set[str] = set()
1145
-
1146
- def ordered_omitted() -> list[str]:
1147
- return sorted(dropped, key=order.__getitem__)
1148
-
1149
- def envelope_bytes() -> int:
1150
- omitted = ordered_omitted()
1151
- result["items"] = [compact_item(item) for item in kept]
1152
- result["omitted"] = len(omitted)
1153
- result["omitted_ids"] = omitted[:OMITTED_IDS_MAX]
1154
- return len((json.dumps(result, ensure_ascii=False, sort_keys=True) + "\n").encode("utf-8"))
1155
-
1156
- for item in sorted_items:
1157
- kept.append(item)
1158
- if envelope_bytes() > QUERY_MAX_BYTES:
1159
- kept.pop()
1160
- dropped.add(item["id"])
1161
- # omitted 计数落定后包可能恰好贴边超出一两个字节,回吐条目直到装下。
1162
- while kept and envelope_bytes() > QUERY_MAX_BYTES:
1163
- dropped.add(kept.pop()["id"])
1164
- envelope_bytes()
1165
- return result, ordered_omitted()
1163
+ return result, result["omitted_ids"]
1166
1164
 
1167
1165
 
1168
1166
  def build_query_result(
@@ -1170,8 +1168,8 @@ def build_query_result(
1170
1168
  project_state: dict[str, Any] | None,
1171
1169
  book_state: dict[str, Any] | None,
1172
1170
  ) -> tuple[dict[str, Any], list[str]]:
1173
- """真实查询与写入端估算共用的唯一信封构造:候选已按优先级排好,这里补上
1174
- book_revision 等附加字段再装填。两处信封差一个字段就是一次假阴性——回执
1171
+ """真实查询与写入端估算共用的唯一装填入口:候选已按优先级排好,这里补上
1172
+ book_revision 等附加字段再装填。两处装填口径一旦分叉就是假阴性——回执
1175
1173
  说没事、query 照样丢条。"""
1176
1174
  extra: dict[str, Any] = {}
1177
1175
  if book_state is not None:
@@ -1208,12 +1206,13 @@ def merged_query(
1208
1206
 
1209
1207
 
1210
1208
  def slice_weight(items: list[dict[str, Any]]) -> int:
1211
- """切片在真实载荷里的占位:compact 字节+每条在 JSON 数组里的分隔符。
1209
+ """切片在真实载荷里的占位:按渲染后的行(含换行)计。
1212
1210
 
1213
- 只比 compact 字节会挑错切片——条目多、单条短的切片字节和更小,实际占位
1214
- 却更大,于是估算判「装得下」而真实查询溢出(warnings 假阴性)。
1211
+ 必须与 fit_items 同一把尺。按 JSON 字节挑会挑错切片——scope 取值长、断言
1212
+ 短的切片 JSON 更重,渲染出的行却更轻,于是估算判「装得下」而真实查询溢出
1213
+ (warnings 假阴性)。
1215
1214
  """
1216
- return sum(compact_bytes(item) + 2 for item in items)
1215
+ return sum(line_bytes(item) for item in items)
1217
1216
 
1218
1217
 
1219
1218
  def active_of_kinds(state: dict[str, Any] | None, kinds: tuple[str, ...]) -> list[dict[str, Any]]:
@@ -1419,16 +1418,20 @@ def command_query(
1419
1418
  project_state = load_state(project_store(workspace))
1420
1419
  book_state = load_state(book_store(workspace, book_root, book)) if book_root is not None else None
1421
1420
  if project_state is None and book_state is None:
1422
- return {"ok": True, "command": "query", "initialized": False, "revision": 0, "items": [], "omitted": 0, "omitted_ids": []}
1421
+ return {"ok": True, "command": "query", "initialized": False, "revision": 0, "items": [], "lines": [],
1422
+ "omitted": 0, "omitted_ids": [], "omitted_summaries": {}, "omitted_importance": {}}
1423
1423
  requested_scopes = {
1424
1424
  "genre": optional_text(genre, "query.genre", max_bytes=180),
1425
1425
  "workflow": optional_text(workflow, "query.workflow", max_bytes=180),
1426
1426
  }
1427
1427
  # 装不下的**跳过而不中断**(一条长的不挡后面的短条),漏下的 ID 报进
1428
1428
  # omitted_ids:非空=记忆超编该整理了,不是「没有更多了」。写入端的
1429
- # warnings 与这里共用 build_query_result 同一个信封,估算即实况。
1429
+ # warnings 与这里共用 build_query_result 同一把尺,估算即实况。
1430
1430
  result, _ = merged_query(project_state, book_state, set(kinds), requested_scopes)
1431
- require(len((json.dumps(result, ensure_ascii=False, sort_keys=True) + "\n").encode("utf-8")) <= QUERY_MAX_BYTES, "query result exceeds its fixed byte budget")
1431
+ require(
1432
+ sum(len((line + "\n").encode("utf-8")) for line in result["lines"]) <= QUERY_MAX_BYTES,
1433
+ "query lines exceed their fixed byte budget",
1434
+ )
1432
1435
  return result
1433
1436
 
1434
1437
 
@@ -1,12 +1,52 @@
1
1
  import type { Context } from "@deepseek-ai/cordis";
2
- import type { SubagentRuntime } from "@deepseek-ai/dsh-subagent";
2
+ import type { Agent } from "@deepseek-ai/dsh-agent";
3
+ import type { ContentBlock } from "@deepseek-ai/dsh-llm";
4
+ import type { Session, SessionId } from "@deepseek-ai/dsh-session";
5
+ import type { SubagentResult } from "@deepseek-ai/dsh-subagent";
3
6
  import { type ToolDefinition } from "@deepseek-ai/dsh-tools";
4
7
  import { type OhStoryRoleName } from "./role-provider.js";
5
8
  export declare const OH_STORY_ROLE_TOOL_NAME = "oh_story_role";
6
- export type OhStoryRoleSubagents = Pick<SubagentRuntime, "start">;
9
+ interface RoleStartRequest {
10
+ readonly label: string;
11
+ readonly prompt: ContentBlock[];
12
+ readonly parent: Agent;
13
+ readonly persona: string;
14
+ readonly toolFilter: {
15
+ readonly allow: readonly string[];
16
+ };
17
+ readonly maxDepth: number;
18
+ readonly signal: AbortSignal;
19
+ }
20
+ interface RoleRun {
21
+ readonly id: string;
22
+ readonly localAgent?: {
23
+ readonly session: Session;
24
+ };
25
+ readonly result: Promise<SubagentResult>;
26
+ dispose(): Promise<void>;
27
+ }
28
+ interface ManagedRoleSpec {
29
+ readonly provider: string;
30
+ readonly label: string;
31
+ readonly childId: SessionId;
32
+ readonly request: Pick<RoleStartRequest, "parent" | "prompt" | "maxDepth">;
33
+ readonly signal: AbortSignal;
34
+ readonly delivery: "caller";
35
+ }
36
+ /** Local seam types also let TypeScript consumers use the older DSH declarations. */
37
+ export type OhStoryRoleSubagents = {
38
+ startActivation(spec: ManagedRoleSpec): Promise<{
39
+ readonly childId: SessionId;
40
+ readonly result: Promise<SubagentResult>;
41
+ dispose(): Promise<void>;
42
+ }>;
43
+ } | {
44
+ start(provider: string, request: RoleStartRequest): Promise<RoleRun>;
45
+ };
7
46
  export declare function roleToolFilter(role: OhStoryRoleName): {
8
47
  readonly allow: readonly string[];
9
48
  };
10
49
  export declare function createOhStoryRoleTool(subagents?: OhStoryRoleSubagents): Promise<ToolDefinition>;
11
50
  export declare function registerOhStoryRoleTool(context: Context): Promise<void>;
51
+ export {};
12
52
  //# sourceMappingURL=role-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"role-tool.d.ts","sourceRoot":"","sources":["../../src/role-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOzE,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhG,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAelE,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAE3F;AAMD,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqErG;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7E"}
1
+ {"version":3,"file":"role-tool.d.ts","sourceRoot":"","sources":["../../src/role-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOzE,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhG,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG;IACF,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE,CAAC;AAqEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAE3F;AAMD,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqErG;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAyNhC,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAuBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAa7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAKpD;AAuDD,wBAAgB,0BAA0B,CAAC,SAAS,SAA4B,GAAG,aAAa,CAE/F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,SAA0B,GAAG,MAAM,CAM/G;AAED,wBAAgB,wBAAwB,CAAC,SAAS,SAA0B,GAAG,aAAa,CAE3F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,SAAgC,GAAG,aAAa,CAEvG;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAKnD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,SAA+B,GAAG,aAAa,CAErG"}
1
+ {"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAkNhC,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAuBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAa7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAKpD;AAuDD,wBAAgB,0BAA0B,CAAC,SAAS,SAA4B,GAAG,aAAa,CAE/F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,SAA0B,GAAG,MAAM,CAM/G;AAED,wBAAgB,wBAAwB,CAAC,SAAS,SAA0B,GAAG,aAAa,CAE3F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,SAAgC,GAAG,aAAa,CAEvG;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAKnD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,SAA+B,GAAG,aAAa,CAErG"}
@@ -10,6 +10,14 @@ All notable changes to this project are documented here.
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ### Fixed
14
+
15
+ - **技能与帮助说明按现有实现精修。** 补齐视频理解各远程路径发送的内容及关闭方式,澄清新字幕降级与原片硬字幕、实测字幕带的默认透明度、采用配音的速度策略,以及原声底轨的整数采样长度;删除不存在的 picture-plan 路径,纠正 TTS 前检查与成片看片的时序。双语 README 同步实际安装、缓存续跑与素材库行为;badcase、配对示例及真实媒体产物保留。七个技能包各升补丁号并同步编排依赖。
16
+
17
+ ### Changed
18
+
19
+ - **七个 SKILL.md 的 `description` 改成单行。** 原来的 `description: >` 折叠块在 OpenClaw 只认单行键值的退路解析器下读不到完整描述;现在每条都是一行,文字与原折叠块解析后的值完全相同。新增测试要求 `description` 非空、不是 `>` / `|` 块、不超过 1024 字符。七个 ClawHub 包各升一个补丁号(video-recap 仍为 blocked,伴随依赖同步到新版本)。
20
+
13
21
  ## [0.6.2] - 2026-10-03
14
22
 
15
23
  用 dub 模式的命令(包括旧 `work_dir` 打印的续跑命令)都要补上 `--confirm-voice-rights`,否则在外发任何音频之前报错退出;只在有权使用这段视频、且说话人同意被克隆声音时确认。