@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,11 +1,9 @@
1
1
  # Config playbook (override-only)
2
2
 
3
- The bundle runs **zero-config** with sensible defaults. To change behavior, set the
4
- environment variables below (or pass the noted CLI flags) — they **override** the defaults.
5
- Nothing here is required; this is documentation only. The only config file any tool reads is an
6
- optional `recap_project.json` passed with `--project` (see `resource-library.md`): it resolves to the same
7
- variables below, and a variable you set that disagrees with the project stops the run. The bundle ships no
8
- root `CLAUDE.md` (so it never collides with your project/global instructions).
3
+ Use the defaults after configuring the required credentials and local tools. The environment
4
+ variables and CLI flags below override those defaults. An optional `recap_project.json` passed
5
+ with `--project` binds resources and templates to the same settings (see `resource-library.md`).
6
+ A conflict between a project binding and an explicit setting stops the run.
9
7
  Defaults below are bundle-level defaults unless a note scopes them to a specific stage.
10
8
 
11
9
  | Concern | Env var / flag | Default | Notes |
@@ -31,7 +29,7 @@ Defaults below are bundle-level defaults unless a note scopes them to a specific
31
29
  | Source sentence boundary detector | `SOURCE_BOUNDARY_NOISE_THRESHOLD` / `SOURCE_BOUNDARY_MIN_PAUSE` / `SOURCE_BOUNDARY_MAX_ALIGNMENT_ERROR` | `-18dB` / `0.12` / `2.1` | aligns ASR terminal punctuation to short acoustic pauses and writes `speech_boundary_anchors.json`; unsafe narration entries and cut in/out points are blocked. There is no intentional-interrupt override |
32
30
  | Cut sentence snapping | `SNAP_CLIP_LINE_END` / `CLIP_START_SNAP_MAX_PREPEND` / `CLIP_START_SNAP_MAX_TRIM` / `CLIP_SNAP_MAX_EXTEND` | on / `1.8` / `0.35` / `2.0` | scene-cut cleanup runs first, then reliable sentence/quiet snapping, then a sub-frame frame-grid alignment that keeps the edge in its pause. An ASR-owned edge still inside speech produces `unsafe_clip_sentence_boundary` instead of a half sentence, with `nearest_safe` before/after times within 5 s, already on the source frame grid |
33
31
  | Mask source subs | `MASK_SOURCE_SUBTITLES` / `SOURCE_SUBTITLE_MASK_POLICY` / `SOURCE_SUBTITLE_MASK_RATIO` | off / `off` / `0.14` | masking requires an explicit policy (`opt_in`, `safe`, or `forced`) and burned recap subtitles. Passing measured `--subtitle-y-top/--subtitle-y-bot` opts in automatically. With `--no-burn-subtitles`, or when a default burn degrades because ffmpeg lacks libass, the MP4 stays unmasked |
34
- | Measured subtitle band | `SUBTITLE_Y_TOP` / `SUBTITLE_Y_BOT`; `--subtitle-y-top/--subtitle-y-bot` | off | half-open `[top, bot)` rows of the auto-rotated display canvas (the stored width is scaled by the SAR; a rotated non-square stream's rows are scaled by it too, and the mask converts them back to decoded-frame rows); square or near-square pixels (SAR within 2% of 1:1; unspecified `0:1` counts as square) and bottom ASS alignment (1/2/3) only; use `tools/measure_subtitle.py` to generate source-identified previews and suggestions |
32
+ | Measured subtitle band | `SUBTITLE_Y_TOP` / `SUBTITLE_Y_BOT`; `--subtitle-y-top/--subtitle-y-bot` | off | half-open `[top, bot)` rows of the auto-rotated display canvas (the stored width is scaled by the SAR; a rotated non-square stream's rows are scaled by it too, and the mask converts them back to decoded-frame rows); square or near-square pixels (SAR within 2% of 1:1; unspecified `0:1` counts as square) and bottom ASS alignment (1/2/3) only; a full source checkout includes `tools/measure_subtitle.py` for source-identified previews and suggestions |
35
33
  | Subtitle mask look | `SUBTITLE_MASK_OPACITY` / `SOURCE_SUBTITLE_MASK_TIMING` / `SUBTITLE_MASK_PADDING` | `0.6` / `narration` / `4` | generic ratio masks stay translucent by default; an explicitly measured `--subtitle-y-top/--subtitle-y-bot` band defaults to opaque so source glyphs cannot show through. Set `SUBTITLE_MASK_OPACITY` to override; timing `all` restores full-time masking |
36
34
  | Original ducking | `IDLE_ORIG_VOLUME` / `SPEECH_DUCKING_VOLUME` | `1.0` / `0.2` | the original returns to full-volume `IDLE` in deliberate gaps/original blocks, and ducks to `SPEECH` under narration. Inter-beat gaps shorter than `DUCK_BRIDGE_SECONDS` stay ducked so a single narration block does not swell between sentences. A fixed `0.3` is only the fallback when beats carry no placement info |
37
35
  | Foreign source audio | `FOREIGN_SOURCE_AUDIO` | off | set when the original audio is in a language the narration is **not** (e.g. a Japanese drama recapped in Chinese). The under-narration original (`SPEECH_DUCKING_VOLUME` / `ZONE_DUCKING_VOLUME`) drops from `0.2`/`0.12` to `0.05` so the foreign speech doesn't bleed under the narration as 怪音; original-audio gap blocks still play full-volume (`IDLE_ORIG_VOLUME`). Explicit `SPEECH_DUCKING_VOLUME`/`ZONE_DUCKING_VOLUME` still override. Pairs with bring-your-own `user_subtitles.*` for the foreign dialogue |
@@ -1,6 +1,6 @@
1
1
  # 数据格式(中间 JSON)
2
2
 
3
- 所有中间文件均在 pipeline 工作目录(work_dir/)下。
3
+ 中间产物保存在本次运行的工作目录 `work_dir/` 下。
4
4
 
5
5
  ## vlm_analysis.json
6
6
 
@@ -165,7 +165,7 @@ cut 第二轮(已有 `edited_source.mp4`)时本文件与 `asr_writing_chunks
165
165
 
166
166
  ## narration.json
167
167
 
168
- Agent 撰写的解说词。full 模式下使用原视频时间;**orchestrated cut 模式(`video-recap --edit-mode cut`)下,第二次暂停时已经先剪出 `edited_source.mp4`,因此 `narration.json` 必须直接使用剪后成片的 OUTPUT 时间轴(0..成片总时长);不存在原视频时间→输出时间的旁白映射产物:
168
+ Agent 撰写的解说词。full 模式下使用原视频时间;**编排 cut 模式(`video-recap --edit-mode cut`)下**,第二次暂停时已经先剪出 `edited_source.mp4`,因此 `narration.json` 必须直接使用剪后成片的 OUTPUT 时间轴(0..成片总时长);不存在原视频时间→输出时间的旁白映射产物:
169
169
 
170
170
  ```json
171
171
  [
@@ -180,7 +180,7 @@ Agent 撰写的解说词。full 模式下使用原视频时间;**orchestrated
180
180
  ```json
181
181
  {
182
182
  "ok": false,
183
- "error_count": 1,
183
+ "error_count": 2,
184
184
  "warning_count": 1,
185
185
  "metrics": {
186
186
  "segment_count": 12,
@@ -245,7 +245,7 @@ CLI 不以它们作为渲染硬门禁,也不新增解析服务;建议型解
245
245
 
246
246
  ## narration_lint.json 的 deslop_qc(CLI 生成,报告型 QC)
247
247
 
248
- `narration_lint.json` 的 `deslop_qc` 字段由本地 deterministic scanner 生成,Agent 不手写;不再单独写 `deslop_qc.json`。它只是 report-only QC:不是 AIGC detector,不判断文本是不是 AI 写的,不会自动改写。修改仍由 Agent/人工根据报告回到 `narration.json`、`style_card.json` 或字幕源里处理。
248
+ `narration_lint.json` 的 `deslop_qc` 字段由本地 deterministic scanner 生成,Agent 不手写;不再单独写 `deslop_qc.json`。它输出可读性报告,区分下面两类结果;不判断文本是否由 AI 生成,也不自动改写。修改仍由 Agent/人工根据报告回到 `narration.json`、`style_card.json` 或字幕源里处理。
249
249
 
250
250
  报告分两层:
251
251
 
@@ -417,14 +417,14 @@ CLI 校验 `clip_plan.json` 后写出,额外包含输出时间轴:
417
417
 
418
418
  ## original_subtitles.json / user_subtitles.{json,srt,ass}(可选,原声留白字幕)
419
419
 
420
- 解说块之间的原声留白会把【原声台词】烧成字幕(assemble 阶段用 `「」` 包裹以区分解说)。来源优先级(高→低):
420
+ 遮罩覆盖原声留白或用户字幕明确要求替换时,assemble 才为留白生成原声对白字幕,并用 `「」` 与旁白区分。来源优先级(高→低):
421
421
 
422
- 1. **`work_dir/user_subtitles.json`**(用户自带,最准)— 数组 `[{start,end,text}]` 默认按**成片 OUTPUT** 时间轴直接使用;也可写成 `{"timeline": "source"|"output", "lines": [...]}`,`source` 表示按**原片**时间轴给出,由 assemble 依 `clip_plan_validated.json` 映射到成片。
422
+ 1. **`work_dir/user_subtitles.json`**(用户自带,优先使用)— 数组 `[{start,end,text}]` 默认按**成片 OUTPUT** 时间轴直接使用;也可写成 `{"timeline": "source"|"output", "lines": [...]}`,`source` 表示按**原片**时间轴给出,由 assemble 依 `clip_plan_validated.json` 映射到成片。
423
423
  2. **`work_dir/user_subtitles.srt` / `.ass`**(用户自带)— 默认按**原片**时间轴解析后映射到成片。
424
424
  3. **`work_dir/original_subtitles.json`**(Agent 校对,cut pass2 写)— OUTPUT 时间轴 `[{start,end,text}]`,订正 ASR 错字/人名、只写留白里真正出声的句子。
425
425
  4. **ASR 兜底** — 无上述文件时,用 `asr_result.json` 按留白粗略映射(中点估时,可能偏多偏乱)。
426
426
 
427
- 来源 1–3 为「精确来源」:每条按句**区间裁剪**落到所覆盖的留白边界(跨边界会拆分),不走 ASR 兜底的中点估时;over-dense 行截断显示而非丢弃。
427
+ 来源 1–3 直接采用声明的时间区间:每条按句**区间裁剪**落到所覆盖的留白边界(跨边界会拆分),不走 ASR 兜底的中点估时;过密行截断显示而非丢弃。时间声明仍需对照实际声音核准,不能仅凭文件来源认定已精确对齐。
428
428
 
429
429
  ```json
430
430
  [
@@ -599,4 +599,4 @@ Dub 模式下,`dub_script.json` 在 voiceclone **之前**先经过 determinist
599
599
  "mask_dropped": false, "message": "…", "next_action": "…"}
600
600
  ```
601
601
 
602
- 这时成片里没有字幕,字幕在成片旁的同名 `.srt`(路径见 `assembly_manifest.json` 的 `subtitle_sidecar`);`mask_dropped` 为 `true` 表示原本会画的原字幕遮罩也一并关掉了。`final_qc.py` 打印的摘要 `final_qc.warnings` 列出这些 code,`recap.py` 完成时打印一行警告和外挂字幕路径。
602
+ 这时新字幕保存在成片旁的同名 `.srt`,路径见 `assembly_manifest.json` 的 `subtitle_sidecar`;原片已有硬字幕仍保留。`mask_dropped` 为 `true` 表示原本会画的原字幕遮罩也一并关掉了。`final_qc.py` 打印的摘要 `final_qc.warnings` 列出这些 code,`recap.py` 完成时打印一行警告和外挂字幕路径。
@@ -22,7 +22,7 @@ python3 scripts/library.py --library-dir <library> show <id|id@vN>
22
22
 
23
23
  浏览资源、模板与样片(含图片、音频与样片预览)可用只读 dashboard:`python3 scripts/dashboard_server.py --root <library 或其上层目录>`。
24
24
 
25
- 工具从不写库。新增或修改记录时直接编辑 JSON,再跑 `check`。**错误**表示该条目不能用;**警告**表示能用但需要人看一眼
25
+ 这三个查询命令不写库。新增或修改记录时直接编辑 JSON,再跑 `check`。**错误**表示该条目不能用;**警告**表示能用但需要人看一眼
26
26
  (授权未确认、声音授权未确认、样片不在本机、模板采用后资源文件已变化)。
27
27
 
28
28
  ## 通用规则
@@ -114,7 +114,7 @@ python3 scripts/library.py --library-dir <library> show <id|id@vN>
114
114
  任何层级出现 `source_facts`、`labels`、`evidence`、`entities`、`statement`、`from`、`path` 键都报错(与参考技能导出时的复扫同一组键)。
115
115
  5. 用户确认后把 `status` 改为 `adopted` 并用用户原话写 `adoption`。之后要改内容就出 `v2`,不改已采纳的版本。
116
116
 
117
- 库仍然只读,登记与采纳都是手工编辑。
117
+ 上述库查询命令只读,登记与采纳由操作者编辑 JSON。
118
118
 
119
119
  ## 样片 `sample.json`
120
120
 
@@ -1,16 +1,12 @@
1
1
  ---
2
2
  name: video-reference
3
3
  user-invocable: true
4
- description: >
5
- 按需把一部成片拆成可复用的制作参考:测镜头节奏与响度,标注段落与音轨分工,把原片事实与可迁移方法分开,
6
- 导出不含原片人名台词的 production_reference.json 供下次制作参考。不在默认生产路径上。
7
- 触发词:拆片、拆解成片、制作参考、参考模板、production reference。
4
+ description: 按需把一部成片拆成可复用的制作参考:测镜头节奏与响度,标注段落与音轨分工,把原片事实与可迁移方法分开, 导出不含原片人名台词的 production_reference.json 供下次制作参考。不在默认生产路径上。 触发词:拆片、拆解成片、制作参考、参考模板、production reference。
8
5
  ---
9
6
 
10
7
  ## 1. 定位
11
8
 
12
- 本技能把一部**已完成的成片**拆成下一次制作能直接参考的方法与数值。它是按需的参考分析,不是生产阶段,也不是质检:
13
- 不调用 MiMo,不改其他产物,不给任何运行打分或拦截。
9
+ 本技能把一部**已完成的成片**拆成下一次制作可参考的方法与数值,按需在本地运行。它只写自己的测量、标注与导出物,不调用 MiMo,也不对生产流程评分或拦截。
14
10
 
15
11
  Agent 的角色是**拆片编辑**:先如实记录"这部片子怎么做的"(事实),再提炼"换一部素材还能怎么用"(方法)。
16
12
  两者必须分开:事实只留在本地工作目录,导出物只含方法和测得的数值。
@@ -24,7 +20,7 @@ Agent 的角色是**拆片编辑**:先如实记录"这部片子怎么做的"
24
20
  标注时 Agent 还应看故事板 / contact sheet 与 `vlm_analysis.json`。
25
21
 
26
22
  没有理解产物也能跑,但旁白语速为空,泄漏扫描只剩 Agent 自己写的 `entities`,check 会给出警告;
27
- 看画面改用 `frames --span 0,<时长> --step 2` 的接触表。
23
+ 看画面可用 `frames --span 0,<时长> --step 2` 生成的抽帧拼图。
28
24
 
29
25
  下面的 `scripts/...` 均相对于本技能目录。
30
26
 
@@ -94,7 +90,7 @@ R6 只能拦住字面泄漏,拦不住改写过的剧情;写方法时要写"
94
90
 
95
91
  使用方式:把它复制进下一次制作的 `work_dir`。写稿阶段只在文件存在时阅读它,
96
92
  并可在 `recap_story_plan.json` 的可选字段 `reference_methods` 记录每条方法的 adopt / adapt / skip。
97
- 它是参考,不是配额:与新素材的证据冲突时以素材为准。没有任何脚本读取它,也不会因为它的存在改变任何阶段的通过与否。
93
+ 采用时以新素材证据为准,不把参考数值当作配额。没有任何脚本读取它,也不会因为它的存在改变任何阶段的通过与否。
98
94
 
99
95
  `U/` 里的 breakdown 与 `reference_frames/` 含原片事实和画面,只留在本地,不要复制或提交。
100
96
 
@@ -1,6 +1,6 @@
1
1
  # 制作参考:字段、枚举与示例
2
2
 
3
- 本文件只列字段与枚举;剧作与剪辑手法的具体规则以后续写稿阶段自己的手册为准,这里不复述。
3
+ 按本文件填写测量标注、事实与可迁移方法。后续写稿阶段自行决定是否采用方法。
4
4
 
5
5
  ## 标注词表
6
6
 
@@ -1,15 +1,6 @@
1
1
  ---
2
2
  name: video-script
3
- description: >
4
- 对已完成分析的视频进行导演与剪辑策划,再写带时间戳的中文解说并校验;也处理已有短片的
5
- 宣发标题、花字修订和外部文案回填。普通策划输入 work_dir 的 agent_narration_brief.md 与
6
- vlm_analysis.json;文案返修输入当前成片的工程与内容证据。策划输出 recap_story_plan.json、visual_audio_board.json、
7
- 可选 style_card.json、cut 模式需要的 clip_plan.json,以及通过校验的 narration.json;仅宣发文案任务交付提案或回填既有包装计划。
8
- 外发说明:只有建议型评审 review.py 联网,它把旁白稿全文与理解证据、策划文件的文字摘录发到 MiMo chat 接口
9
- (MIMO_API_KEY / MIMO_API_URL,不发视频、图片或音频);单独使用时只在显式执行时运行,端到端编排默认在 TTS 前运行一次,
10
- 可用 --no-review-narration / REVIEW_NARRATION=0 关闭(严格评审开启时除外);validate.py 与 lint 仅在本地运行。
11
- 触发词:解说词、写解说、视频旁白、宣发标题、花字修订、文案回填、
12
- narration script、写稿、解说文案、剪辑思路、导演思路。
3
+ description: 对已完成分析的视频进行导演与剪辑策划,再写带时间戳的中文解说并校验;也处理已有短片的 宣发标题、花字修订和外部文案回填。普通策划输入 work_dir 的 agent_narration_brief.md 与 vlm_analysis.json;文案返修输入当前成片的工程与内容证据。策划输出 recap_story_plan.json、visual_audio_board.json、 可选 style_card.json、cut 模式需要的 clip_plan.json,以及通过校验的 narration.json;仅宣发文案任务交付提案或回填既有包装计划。 外发说明:只有建议型评审 review.py 联网,它把旁白稿全文与理解证据、策划文件的文字摘录发到 MiMo chat 接口 (MIMO_API_KEY / MIMO_API_URL,不发视频、图片或音频);单独使用时只在显式执行时运行,端到端编排默认在 TTS 前运行一次, 可用 --no-review-narration / REVIEW_NARRATION=0 关闭(严格评审开启时除外);validate.py 与 lint 仅在本地运行。 触发词:解说词、写解说、视频旁白、宣发标题、花字修订、文案回填、 narration script、写稿、解说文案、剪辑思路、导演思路。
13
4
  ---
14
5
 
15
6
  ## 1. 定位
@@ -18,7 +9,7 @@ description: >
18
9
  按当前短片的观看理由和兑现位置处理指定文字层,不重做下述策划/旁白链。
19
10
  普通解说写作不因此增加平台调研或包装任务。
20
11
 
21
- 本技能负责:创作方向、画面/声音计划、旁白写作与校验。Agent 不是 JSON 填写器,而要依次扮演:
12
+ 本技能负责创作方向、画面与声音计划、旁白写作及校验。Agent 依次从以下五个角度作出决定:
22
13
 
23
14
  1. 导演
24
15
  2. 故事编辑
@@ -32,7 +23,7 @@ Agent 先记录简洁决定,再写时间线产物。`validate.py` 负责对理
32
23
 
33
24
  ### 1.1 创作控制模式
34
25
 
35
- 先根据用户要求和 `work_dir` 判断本轮模式;它不是 `full|cut|dub` 渲染模式:
26
+ 先根据用户要求和 `work_dir` 判断本轮创作控制模式。它与 `full|cut|dub` 渲染模式分别选择:
36
27
 
37
28
  - **CREATE**:首次创作。比较至少两个真正可行的故事/剪辑假设后再选择。
38
29
  - **DIRECTED**:用户已指定结构、镜头、台词或表达。忠实落实,不为满足“创作流程”虚构替代方案。
@@ -217,7 +208,7 @@ full 模式直接按原片时间写;cut 第二阶段先查看 `edited_source.m
217
208
  [{"start": 15.0, "end": 17.0, "text": "原声台词"}]
218
209
  ```
219
210
 
220
- 只写留白中实际听得到的台词,订正 ASR 错字与人名,每条尽量控制在一行;被旁白盖住或已经剪掉的句子不要写。省略时,合成阶段会使用保守的 ASR 映射兜底,并在成片中用 `「」` 区分原声对白与旁白。
211
+ 只写留白中实际听得到的台词,订正 ASR 错字与人名,每条尽量控制在一行;被旁白盖住或已经剪掉的句子不要写。省略时,合成阶段可用保守的 ASR 映射兜底。原声对白字幕只在遮罩覆盖留白或用户字幕明确要求替换时生成,并用 `「」` 与旁白区分。
221
212
 
222
213
  ## 6. 创作自审
223
214
 
@@ -1,6 +1,6 @@
1
1
  # 创作剪辑工作法
2
2
 
3
- 本参考只规定 Agent 的创作判断,不增加渲染模块。进入剪辑或写稿前,先完成这里的决策,再写 `clip_plan.json` 或 `narration.json`。
3
+ 进入剪辑或写稿前,Agent 先确认故事、画面与声音决定,再写 `clip_plan.json` 或 `narration.json`。
4
4
 
5
5
  ## 先判断创作控制模式
6
6
 
@@ -216,7 +216,7 @@ cut 第一阶段先用原片时间写;`edited_source.mp4` 产生后,在第
216
216
 
217
217
  ## 内容质量基线
218
218
 
219
- 进入 TTS 前,以下问题都必须能用具体 beat 回答;否则先改计划或脚本:
219
+ 前六项在进入 TTS 前用具体 beat 复核,未成立时先改计划或稿件;第七项在成片渲染后、交付前执行:
220
220
 
221
221
  1. **承诺**:开头提出的真实问题,结尾是否兑现?
222
222
  2. **主线**:是否有一个明确 POV 和一条主导因果/关系线?
@@ -1,16 +1,12 @@
1
1
  ---
2
2
  name: video-understanding
3
3
  user-invocable: false
4
- description: >
5
- 把视频分析为结构化理解索引:场景检测、ASR 转写、逐场景 VLM 观察、静音窗口、融合时间线和写作 brief。
6
- 用于理解、索引或总结视频,也作为后续创作前的分析阶段。输入视频文件;输出 scenes.json、
7
- asr_result.json、vlm_analysis.json、silence_periods.json、timeline_fusion.json、agent_narration_brief.md。
8
- 触发词:视频理解、视频分析、视频索引、video understanding、analyze video、看懂视频。
4
+ description: 把视频分析为结构化理解索引:场景检测、ASR 转写、逐场景 VLM 观察、静音窗口、融合时间线和写作 brief。 用于理解、索引或总结视频,也作为后续创作前的分析阶段。输入视频文件;输出 scenes.json、 asr_result.json、vlm_analysis.json、silence_periods.json、timeline_fusion.json、agent_narration_brief.md。 触发词:视频理解、视频分析、视频索引、video understanding、analyze video、看懂视频。
9
5
  ---
10
6
 
11
7
  ## 1. 定位
12
8
 
13
- 本技能把源视频转成 Agent 与下游阶段可读取的理解索引。它的创作角色是**素材观察员 / 场记**,不是导演:
9
+ 本技能把源视频转成 Agent 与下游阶段可读取的理解索引,以**素材观察员 / 场记**的角色记录证据:
14
10
 
15
11
  - 先观察,再解释;事实与推断分开。
16
12
  - 除了“发生了什么”,还要让下游看见知识、权力、目标、关系或情绪在哪一刻变化。
@@ -40,6 +36,14 @@ ASR 使用 `mimo-v2.5-asr`;VLM 使用 `mimo-v2.5`。`--skip-asr` 可跳过对
40
36
 
41
37
  若 `work_dir/background_research.json` 存在,本技能会把剧情梗概和角色名折入 VLM 上下文;`--context` 可补充一条简短提示。
42
38
 
39
+ ### 远程调用与本地读取
40
+
41
+ ASR 把分窗音频发给 MiMo ASR;逐场景 VLM 把代表帧、帧时间和分析提示发给 MiMo;启用 `--mimo-video-overview` 时,还会把按场景截取的视频片段发给 MiMo 视频模型。故事索引汇总和可选 ASR 清洗发送的是画面描述、转写与背景资料文字。
42
+
43
+ 请求使用 MiMo 的 chat 接口。`MIMO_API_URL` 可指定地址;ASR 与视频概览可分别用 `MIMO_ASR_API_URL`、`MIMO_VIDEO_API_URL` 覆盖,凭据同样支持各自的 key。未覆盖时,按量 key 使用 `https://api.xiaomimimo.com/v1`,Token Plan key 使用 `MIMO_TOKEN_PLAN_CLUSTER` 选择的集群。逐场景帧分析与汇总使用 `MIMO_API_KEY`。
44
+
45
+ `--skip-asr` 只关闭音频转写,`--no-consolidate` 只关闭索引汇总;它们不会关闭 VLM。需要只在本地处理已有产物时,使用 `--brief-only` 或 `--edited-storyboard-only`,这两条路径不调用 API。
46
+
43
47
  下面的 `scripts/...` 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。
44
48
 
45
49
  ## 4. 运行命令
@@ -1,6 +1,6 @@
1
1
  # 数据格式(中间 JSON)
2
2
 
3
- 所有中间文件均在 pipeline 工作目录(work_dir/)下。
3
+ 中间产物保存在本次运行的工作目录 `work_dir/` 下。
4
4
 
5
5
  ## vlm_analysis.json
6
6
 
@@ -41,7 +41,7 @@
41
41
  ]
42
42
  ```
43
43
 
44
- `start/end` 仅表示送入 MiMo ASR 的固定粗分片窗口。该列表为兼容产物,不能据此声称词级
44
+ `start/end` 仅表示送入 MiMo ASR 的固定粗分片窗口。该列表记录粗分窗结果,不能据此声称词级
45
45
  时间、准确对白边界或静音证明;空 `text` 的原因未知。
46
46
 
47
47
  ## asr_timing_evidence.json
@@ -1,15 +1,7 @@
1
1
  ---
2
2
  name: video-voiceover
3
3
  user-invocable: false
4
- description: >
5
- 把带时间戳的 narration.json 合成为中文解说音频。使用 MiMo TTS(mimo-v2.5-tts)或
6
- Fish Audio(s2.1-pro-free)或显式配置的通用 IndexTTS HTTP 服务逐段生成语音,
7
- 按时间窗动态适配语速并处理响度;输入输出时间线上的旁白,产出 tts_segments 与 tts_meta.json。
8
- 外发说明:每段旁白文字会发给所选 TTS 服务(MiMo / Fish Audio / 用户自托管的 IndexTTS),--voice-ref 的参考音频会发给 MiMo。
9
- 另含实验性的英译中 dub 路径:只在显式选择 dub 模式并传 --confirm-voice-rights 时运行,会把源视频音频发到 MiMo ASR,
10
- 并以原说话人的声音为参考经 MiMo voiceclone 克隆配音;只可用于用户有权使用、且说话人同意被克隆声音的内容。
11
- 触发词:配音、语音合成、TTS、解说配音、
12
- voiceover、text to speech、旁白配音。
4
+ description: 把带时间戳的 narration.json 合成为中文解说音频。使用 MiMo TTS(mimo-v2.5-tts)或 Fish Audio(s2.1-pro-free)或显式配置的通用 IndexTTS HTTP 服务逐段生成语音, 按时间窗动态适配语速并处理响度;输入输出时间线上的旁白,产出 tts_segments 与 tts_meta.json。 外发说明:每段旁白文字会发给所选 TTS 服务(MiMo / Fish Audio / 用户自托管的 IndexTTS),--voice-ref 的参考音频会发给 MiMo。 另含实验性的英译中 dub 路径:只在显式选择 dub 模式并传 --confirm-voice-rights 时运行,会把源视频音频发到 MiMo ASR, 并以原说话人的声音为参考经 MiMo voiceclone 克隆配音;只可用于用户有权使用、且说话人同意被克隆声音的内容。 触发词:配音、语音合成、TTS、解说配音、 voiceover、text to speech、旁白配音。
13
5
  ---
14
6
 
15
7
  ## 1. 定位
@@ -19,7 +11,7 @@ description: >
19
11
 
20
12
  ## 2. 远程服务与数据外发
21
13
 
22
- 本技能只在下表中被选中的路径上联网,每条路径发出的内容如下。实读文本指 `narration.json` 段落去掉格式与舞台提示后的文字。
14
+ 本技能按所选 TTS 或 dub 路径联网。表中的实读文本指 `narration.json` 段落去掉格式与舞台提示后的文字。
23
15
 
24
16
  | 路径 | 服务与凭据 | 发送内容 |
25
17
  |------|------------|----------|
@@ -107,7 +99,7 @@ python3 scripts/voiceover.py --work-dir <work_dir> --narration <narration.json>
107
99
 
108
100
  ## 8. 实验性 dub 配音(英译中、克隆原声)
109
101
 
110
- `dub.py` 是实验功能:把英文原声翻译成中文,并用原说话人的克隆音色整轨替换人声。它与上面的解说配音是两条独立路径,`voiceover.py` 从不调用它。
102
+ `dub.py` 是实验功能:把英文原声翻译成中文,并用原说话人的克隆音色整轨替换人声。它与解说配音分别执行,`voiceover.py` 不调用它。
111
103
 
112
104
  - **触发**:只在用户明确要求英译中配音时,由编排入口以 `--edit-mode dub --confirm-voice-rights` 运行;编排入口把确认参数原样转给 `dub.py` 的准备和渲染两个阶段。没有单独的手动阶段。
113
105
  - **确认门禁**:`dub.py` 的两个阶段都必须带 `--confirm-voice-rights`,缺少时在抽取音频和发出任何请求之前退出,并说明会外发什么。编排入口在 dub 模式下同样拒绝缺少该参数的运行,在其他模式下拒绝该参数。
@@ -23,8 +23,7 @@ export INDEX_TTS_VOICE=<authorized-voice-name>
23
23
 
24
24
  ## Receipt 与缓存
25
25
 
26
- 每段的 `provider_receipt` 只记录 `provider` 与“请求的 voice”(`requested_voice`)。它说明请求参数,
27
- 不是该声线的声学验证,也不代表已做人耳听审或音色身份验证。endpoint 不写入任何文件。
26
+ 每段的 `provider_receipt` 只记录 `provider` 与请求的 voice(`requested_voice`)。声学身份验证与人耳听审仍需另做;endpoint 不写入任何文件。
28
27
 
29
28
  缓存复用条件:`tts_segments/cache/` 中按文本与设置(含 `index_tts_voice`)寻址的条目存在、缓存 WAV 的
30
29
  `size`/`mtime_ns` 未变,且 sidecar 的 receipt 对应当前 voice;缓存命中复用 sidecar 中的 receipt,不能现场补造。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-story/dsh",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "A DSH plugin for fiction, short-drama, interactive-game, and video-recap production",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -31,7 +31,8 @@
31
31
  "provenance": true
32
32
  },
33
33
  "engines": {
34
- "node": ">=24.0.0"
34
+ "node": ">=24.0.0",
35
+ "dsh": ">=0.2.0-rc.2 <0.2.1-0 || >=0.2.1-alpha.1 <0.2.2-0"
35
36
  },
36
37
  "type": "module",
37
38
  "main": "./lib/index.js",
@@ -96,28 +97,28 @@
96
97
  "zod": "^4.4.3"
97
98
  },
98
99
  "devDependencies": {
99
- "@deepseek-ai/cordis": "4.0.5-alpha.1",
100
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
101
- "@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.1",
102
- "@deepseek-ai/dsh-client-store": "0.2.1-alpha.1",
103
- "@deepseek-ai/dsh-client-ui-chat": "0.2.1-alpha.1",
104
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.1",
105
- "@deepseek-ai/dsh-client-ui-layout": "0.2.1-alpha.1",
106
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.1",
107
- "@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.1",
108
- "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.1",
109
- "@deepseek-ai/dsh-client-ui-tool": "0.2.1-alpha.1",
110
- "@deepseek-ai/dsh-fs": "0.2.1-alpha.1",
111
- "@deepseek-ai/dsh-host-webserver": "0.2.1-alpha.1",
112
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.1",
113
- "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
114
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.1",
115
- "@deepseek-ai/dsh-skill": "0.2.1-alpha.1",
116
- "@deepseek-ai/dsh-subagent": "0.2.1-alpha.1",
117
- "@deepseek-ai/dsh-tools": "0.2.1-alpha.1",
118
- "@deepseek-ai/dsh-typert-registry": "0.2.1-alpha.1",
119
- "@deepseek-ai/dsh-util-values": "0.2.1-alpha.1",
120
- "@deepseek-ai/schemastery": "3.18.5-alpha.1",
100
+ "@deepseek-ai/cordis": "4.0.5-alpha.2",
101
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.4",
102
+ "@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.4",
103
+ "@deepseek-ai/dsh-client-store": "0.2.1-alpha.4",
104
+ "@deepseek-ai/dsh-client-ui-chat": "0.2.1-alpha.4",
105
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.4",
106
+ "@deepseek-ai/dsh-client-ui-layout": "0.2.1-alpha.4",
107
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.4",
108
+ "@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.4",
109
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.4",
110
+ "@deepseek-ai/dsh-client-ui-tool": "0.2.1-alpha.4",
111
+ "@deepseek-ai/dsh-fs": "0.2.1-alpha.4",
112
+ "@deepseek-ai/dsh-host-webserver": "0.2.1-alpha.4",
113
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.4",
114
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.4",
115
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.4",
116
+ "@deepseek-ai/dsh-skill": "0.2.1-alpha.4",
117
+ "@deepseek-ai/dsh-subagent": "0.2.1-alpha.4",
118
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.4",
119
+ "@deepseek-ai/dsh-typert-registry": "0.2.1-alpha.4",
120
+ "@deepseek-ai/dsh-util-values": "0.2.1-alpha.4",
121
+ "@deepseek-ai/schemastery": "3.18.5-alpha.2",
121
122
  "@types/react": "18.3.28",
122
123
  "@types/react-dom": "18.3.7",
123
124
  "react": "18.3.1",
@@ -1,187 +0,0 @@
1
- # `image-prompt-specs.jsonl` 填写模板
2
-
3
- 首行是 `sources` 声明记录,之后每行一个候选规格对象,用于接受前预览;示例值不是默认答案。删除不适用字段,不要添加
4
- 媒体任务、供应商或接口字段。上游引用默认绑定准确的已接受快照;只有与本对象同次发布的目标才写
5
- `authority:candidate`。对象接受状态由事务生命周期记录,不能靠改状态字样伪造。
6
-
7
- ## 首行:`sources` 声明
8
-
9
- 本文件用到的每个上游快照在这里声明一次,键取产物文件名(`characters`、`looks`、`props`),
10
- 在本文件内唯一且稳定:
11
-
12
- ```json
13
- {
14
- "record_type": "sources",
15
- "schema_version": "1.0.0",
16
- "sources": {
17
- "<identity-owner>": {
18
- "owner": "short-drama-assets",
19
- "artifact": "设定集/<identity-owner-file>.jsonl"
20
- },
21
- "<variant-owner>": {
22
- "owner": "short-drama-assets",
23
- "artifact": "设定集/<variant-owner-file>.jsonl"
24
- },
25
- "props": {
26
- "owner": "short-drama-assets",
27
- "artifact": "设定集/props.jsonl"
28
- },
29
- "<reference>": {
30
- "owner": "<reference-owner>",
31
- "artifact": "<project-relative-reference-record>"
32
- },
33
- "<edit-target>": {
34
- "owner": "short-drama-image-prompts",
35
- "artifact": "<精确目标>"
36
- }
37
- }
38
- }
39
- ```
40
-
41
- 引用用 `src` 指向声明键,再写本条引用自己的 `record_id` 和 `field`:
42
- `{"src": "<identity-owner>", "record_id": "CHAR-<id>"}`。
43
-
44
- ## 规格行
45
-
46
- ```json
47
- {
48
- "spec_id": "IMG-<stable-id>",
49
- "status": "candidate",
50
- "purpose": "character_sheet | location_plate | prop_plate | look_state_variant | edit_delta",
51
- "asset_binding": {
52
- "identity_ref": {
53
- "src": "<identity-owner>",
54
- "record_id": "CHAR/LOC/PROP-<id>"
55
- },
56
- "variant_ref": {
57
- "src": "<variant-owner>",
58
- "record_id": "LOOK/VIEW/PSTATE-<id>"
59
- }
60
- },
61
- "source_refs": [
62
- {
63
- "src": "<identity-owner>",
64
- "record_id": "<record>",
65
- "field": "/<field>",
66
- "role": "identity_anchor | variant_delta | geography | scale | text_policy"
67
- }
68
- ],
69
- "reference_bindings": [
70
- {
71
- "slot_id": "REF-<stable-slot>",
72
- "order": 1,
73
- "artifact_ref": {
74
- "src": "<reference>",
75
- "record_id": "<accepted-reference-record>"
76
- },
77
- "role": "composition",
78
- "may_control": [
79
- "<本次允许借用的构图事实>"
80
- ],
81
- "must_not_control": [
82
- "<身份/内容/文字/状态等禁入事实>"
83
- ],
84
- "admission_status": "unverified | creator_described | visually_inspected",
85
- "reference_observation_ref": null,
86
- "unresolved_risks": [
87
- "<没有观察证据时保留的文字/水印/裁切风险>"
88
- ]
89
- }
90
- ],
91
- "recipe": {
92
- "name": "<type-recipe>",
93
- "version": "<suite recipe version>"
94
- },
95
- "intent": {
96
- "reuse_job": "<这张参考图后续保持什么>",
97
- "audience": "<使用者/阶段>"
98
- },
99
- "identity_or_form_anchors": [
100
- "<稳定、可见、可比较的锚点>"
101
- ],
102
- "variant_deltas": [
103
- {
104
- "field": "<变化对象>",
105
- "observable_change": "<位置/范围/结果>",
106
- "valid_range": "<接受的有效范围>"
107
- }
108
- ],
109
- "composition": {
110
- "view": "<观察方向/视图>",
111
- "framing": "<主体占比或板式>",
112
- "orientation": "<方向定义>",
113
- "scale_relation": "<尺度参照>",
114
- "spatial_relations": [
115
- "<锚点之间的关系>"
116
- ]
117
- },
118
- "appearance": {
119
- "materials": [
120
- "<识别所需材质>"
121
- ],
122
- "palette": "<主次色关系>",
123
- "lighting": "<光源、方向、用途>",
124
- "atmosphere": "<有事实依据的气氛>"
125
- },
126
- "background": {
127
- "policy": "clean | contextual | empty_stage",
128
- "details": "<背景与允许出现内容>"
129
- },
130
- "text_handling": {
131
- "source_policy_ref": {
132
- "src": "props",
133
- "record_id": "PROP-<id>",
134
- "field": "/text_policy"
135
- },
136
- "source_mode": "exact_readable | graphic_only | no_readable_text | pending_creator_text",
137
- "render_treatment": {
138
- "mode": "readable | symbolic | blank | postproduction",
139
- "surface": "<承载面>",
140
- "exact_text": "<仅 readable 且来自接受源时填写>",
141
- "layout_or_reserved_area": "<方向/区域/行数>"
142
- },
143
- "mapping_rationale": "<为何本次呈现保持 source policy>"
144
- },
145
- "constraints": [
146
- "<必须出现/保持>"
147
- ],
148
- "negative_constraints": [
149
- "<仅当前高风险且不矛盾的排除>"
150
- ],
151
- "edit": {
152
- "changes": [
153
- "<有边界变化>"
154
- ],
155
- "preserve": [
156
- "<身份/构图/光线/未影响区域>"
157
- ],
158
- "continuity_impact": "<影响的 accepted variant/binding 或 none>",
159
- "target_ref": {
160
- "src": "<edit-target>",
161
- "record_id": "IMG-<target-id>",
162
- "field": "/generic_prompt"
163
- },
164
- "entity_or_region": "<区域>"
165
- },
166
- "creator_overrides": [
167
- {
168
- "rule_id": "<IMG-*>",
169
- "choice": "<覆盖选择>",
170
- "rationale": "<原因>"
171
- }
172
- ],
173
- "generic_prompt": "<从本规格渲染的可复制通用提示词>",
174
- "derivation": {
175
- "renderer": "generic-markdown"
176
- },
177
- "provenance": "creator_project"
178
- }
179
- ```
180
-
181
-
182
- 复制后按 `purpose` 删除不适用字段和悬空引用,`sources` 只保留仍被引用的键。Look Development 不使用本超集模板,改读
183
- [`lookdev-frame-spec.jsonl.md`](lookdev-frame-spec.jsonl.md),避免普通人物、地点和道具规格加载
184
- 风格帧专属字段。
185
- 每条参考只声明一个用途,多参考的 `slot_id` 稳定且 `order` 显式。类型取舍、文字政策与
186
- 参考准入由技能按 `references/common-recipe.md` 判断。候选与已接受对象分开发布;自然语言修改先形成
187
- 候选和内容差异,不直接覆盖原记录。
@@ -1,42 +0,0 @@
1
- # `image-prompts.md` 可复制输出模板
2
-
3
- 此文件由已接受规格生成。元信息用于核对来源;只复制引用块内的通用提示词。不要手写供应商参数。
4
-
5
- **这份模板属于结构化管线**(`image-prompt-specs.jsonl` 一路)。creator-first 项目的《图片提示词.md》骨架以 `SKILL.md` 为准:`## IMG-... · 中文名`,字段写成不加粗的
6
- `- 参考:`(取「无外部参考」或完整 `REF-...` 语法),正文标题是 `### 可复制提示词`。
7
- 不要把这里的加粗字段名、`参考图用途`、`本次呈现` 或 `### 可复制通用提示词` 搬进 creator-first 文档——
8
- `creator_markdown_check.py` 按 `SKILL.md` 的骨架校验,照本模板写会被判「缺少参考字段」。
9
-
10
- ```markdown
11
- # EP<编号> · 资产图片提示词
12
-
13
- > 来源:`image-prompt-specs.jsonl` 的已接受记录
14
- > 配方:`<recipe>@<version>`
15
- > 范围:本文件仅提供提示词,不触发媒体服务;实际图片生产交 `$short-drama-produce`
16
-
17
- ## `<display name>` · `<purpose>`
18
-
19
- - **规格**:`IMG-<id>`
20
- - **绑定**:`<asset-id>` + `<variant-id>`
21
- - **用途**:<后续复用目标>
22
- - **参考图用途**:`<slot_id / order / reference>` 只决定 `<role / may_control>`;不得导入 `<must_not_control>`;检查状态 `<observation ref | unverified + risks>`;无参考则写“无”
23
- - **文字来源政策**:`exact_readable | graphic_only | no_readable_text | pending_creator_text`
24
- - **本次呈现**:`readable | symbolic | blank | postproduction`(附 source → treatment 映射)
25
- - **注意**:<未阻断的警告 / 创作者明确调整;无则写“无”>
26
-
27
- ### 可复制通用提示词
28
-
29
- > <正文语言按 `short-drama.json#/format/prompt_language`(独立运行时由用户指定,未指定为 `en`)——这一格不预设中文。用途/主体与区分性锚点在前,状态、构图、空间/尺度、材质/光线、背景、文字政策、保持/排除依次展开。不要出现字段名、hash、审查话术或生成历史。>
30
-
31
- ### 变体/编辑说明
32
-
33
- - **相对基准**:<基础版本;非变体可省略>
34
- - **变化**:<看得见的变化;无则省略>
35
- - **必须保持**:<`preserve_set`;非局部修改可简写或省略>
36
- - **连续性影响**:<已接受的绑定 / 无;非局部修改可省略>
37
-
38
- ---
39
- ```
40
-
41
- 每个资产或版本独立一节;不要把多个互相冲突的造型、观察方向或状态合成一个可复制段落。
42
- 该文件被手改过时,先按 `restore | adopt` 流程预览将要恢复或采用的内容。