@oh-story/dsh 0.1.7 → 0.1.9

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 (272) hide show
  1. package/README.md +30 -15
  2. package/lib/client.js +93 -16
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/manifest.json +165 -69
  5. package/lib/drama/skills/short-drama/SKILL.md +5 -1
  6. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +126 -9
  7. package/lib/drama/skills/short-drama/scripts/project_tool.py +11 -0
  8. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +18 -0
  9. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +10 -1
  10. package/lib/drama/skills/short-drama-edit/SKILL.md +148 -0
  11. package/lib/drama/skills/short-drama-edit/agents/openai.yaml +4 -0
  12. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +60 -0
  13. package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +15 -0
  14. package/lib/drama/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
  15. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
  16. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
  17. package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
  18. package/lib/drama/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
  19. package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
  20. package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
  21. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
  22. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +81 -0
  23. package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +58 -0
  24. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +96 -0
  25. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +113 -0
  26. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +55 -0
  27. package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1041 -0
  28. package/lib/drama/skills/short-drama-edit/scripts/selftest.py +456 -0
  29. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +5 -0
  30. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +3 -0
  31. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +2 -2
  32. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +4 -1
  33. package/lib/drama/skills/short-drama-produce/SKILL.md +24 -3
  34. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +28 -0
  35. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +24 -5
  36. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +7 -0
  37. package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +18 -1
  38. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +181 -2
  39. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +57 -2
  40. package/lib/drama/skills/short-drama-review/SKILL.md +3 -0
  41. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +20 -0
  42. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +36 -0
  43. package/lib/drama/skills/short-drama-storyboard/SKILL.md +7 -0
  44. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +4 -0
  45. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +39 -0
  46. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +2 -0
  47. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +7 -1
  48. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +101 -6
  49. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +7 -1
  50. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +35 -0
  51. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +3 -1
  52. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +13 -3
  53. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +35 -4
  54. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -1
  55. package/lib/drama/skills/short-drama-write/SKILL.md +13 -2
  56. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +6 -0
  57. package/lib/drama/skills/short-drama-write/references/stage-contract.md +1 -0
  58. package/lib/index.js +4 -2
  59. package/lib/index.js.map +2 -2
  60. package/lib/novel-to-game/VERSION +1 -1
  61. package/lib/novel-to-game/manifest.json +28 -28
  62. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +6 -27
  63. package/lib/novel-to-game/skills/game-build/SKILL.md +12 -29
  64. package/lib/novel-to-game/skills/game-concept/SKILL.md +10 -26
  65. package/lib/novel-to-game/skills/game-qa/SKILL.md +5 -15
  66. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
  67. package/lib/novel-to-game/skills/game-world-design/SKILL.md +19 -28
  68. package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +1 -2
  69. package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +6 -9
  70. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -11
  71. package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -4
  72. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +1 -3
  73. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +3 -5
  74. package/lib/oh-story/manifest.json +292 -172
  75. package/lib/oh-story/roles/character-designer.md +1 -1
  76. package/lib/oh-story/roles/narrative-writer.md +56 -242
  77. package/lib/oh-story/roles/story-architect.md +1 -1
  78. package/lib/oh-story/skills/story/SKILL.md +1 -1
  79. package/lib/oh-story/skills/story/VERSION +1 -1
  80. package/lib/oh-story/skills/story/references/author-memory.md +10 -8
  81. package/lib/oh-story/skills/story-deslop/SKILL.md +20 -182
  82. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +19 -47
  83. package/lib/oh-story/skills/story-deslop/references/author-memory.md +10 -8
  84. package/lib/oh-story/skills/story-deslop/references/banned-words.md +3 -1
  85. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +154 -0
  86. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +27 -0
  87. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +6 -1
  88. package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +39 -20
  89. package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +10 -5
  90. package/lib/oh-story/skills/story-deslop/scripts/style-whitelist.js +39 -0
  91. package/lib/oh-story/skills/story-import/SKILL.md +2 -2
  92. package/lib/oh-story/skills/story-import/references/format-and-structure.md +2 -2
  93. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +31 -0
  94. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +2 -29
  95. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +176 -12
  96. package/lib/oh-story/skills/story-long-analyze/SKILL.md +1 -1
  97. package/lib/oh-story/skills/story-long-write/SKILL.md +20 -193
  98. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +19 -47
  99. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +62 -7
  100. package/lib/oh-story/skills/story-long-write/references/author-memory.md +10 -8
  101. package/lib/oh-story/skills/story-long-write/references/banned-words.md +3 -1
  102. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +20 -0
  103. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +6 -4
  104. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +2 -2
  105. package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -0
  106. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +2 -0
  107. package/lib/oh-story/skills/story-long-write/references/project-files.md +108 -0
  108. package/lib/oh-story/skills/story-long-write/references/reference-index.md +87 -0
  109. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -1
  110. package/lib/oh-story/skills/story-long-write/references/style-craft.md +9 -29
  111. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  112. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +27 -0
  113. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +31 -0
  114. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -29
  115. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +51 -52
  116. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +8 -7
  117. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +36 -15
  118. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +22 -0
  119. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +69 -2
  120. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +410 -0
  121. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +6 -1
  122. package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +39 -20
  123. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +176 -12
  124. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +90 -23
  125. package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +10 -5
  126. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +283 -0
  127. package/lib/oh-story/skills/story-long-write/scripts/style-whitelist.js +39 -0
  128. package/lib/oh-story/skills/story-review/SKILL.md +13 -3
  129. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +19 -47
  130. package/lib/oh-story/skills/story-review/references/author-memory.md +10 -8
  131. package/lib/oh-story/skills/story-review/references/banned-words.md +3 -1
  132. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +6 -4
  133. package/lib/oh-story/skills/story-review/references/review-quality.md +2 -2
  134. package/lib/oh-story/skills/story-review/references/style-resolution.md +27 -0
  135. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +31 -0
  136. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -29
  137. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +6 -1
  138. package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +39 -20
  139. package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +10 -5
  140. package/lib/oh-story/skills/story-review/scripts/style-whitelist.js +39 -0
  141. package/lib/oh-story/skills/story-setup/SKILL.md +17 -10
  142. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +19 -47
  143. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +3 -1
  144. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +154 -0
  145. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +6 -4
  146. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +2 -2
  147. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +1 -1
  148. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -1
  149. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  150. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +27 -0
  151. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +69 -2
  152. package/lib/oh-story/skills/story-setup/references/diagnostics.md +38 -0
  153. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +1 -1
  154. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +2 -2
  155. package/lib/oh-story/skills/story-short-write/SKILL.md +18 -186
  156. package/lib/oh-story/skills/story-short-write/references/author-memory.md +10 -8
  157. package/lib/oh-story/skills/story-short-write/references/banned-words.md +3 -1
  158. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +60 -0
  159. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +6 -4
  160. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +2 -2
  161. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +1 -1
  162. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
  163. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +3 -3
  164. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
  165. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +5 -5
  166. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +4 -4
  167. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +5 -5
  168. 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 +3 -3
  169. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +1 -1
  170. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +1 -1
  171. package/lib/oh-story/skills/story-short-write/references/reference-index.md +53 -0
  172. package/lib/oh-story/skills/story-short-write/references/short-craft.md +12 -14
  173. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +10 -10
  174. package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -1
  175. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -2
  176. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +27 -0
  177. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +77 -0
  178. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +5 -5
  179. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +6 -1
  180. package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +39 -20
  181. package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +34 -5
  182. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +90 -23
  183. package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +10 -5
  184. package/lib/oh-story/skills/story-short-write/scripts/style-whitelist.js +39 -0
  185. package/lib/types/client/drama-production-view.d.ts.map +1 -1
  186. package/lib/types/client/index.d.ts.map +1 -1
  187. package/lib/types/client/production-prompts.d.ts.map +1 -1
  188. package/lib/types/client/production-runtime.d.ts +17 -0
  189. package/lib/types/client/production-runtime.d.ts.map +1 -1
  190. package/lib/types/skill-provider.d.ts.map +1 -1
  191. package/lib/video-recap/CHANGELOG.md +31 -1
  192. package/lib/video-recap/manifest.json +162 -162
  193. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +4 -9
  194. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +47 -60
  195. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +77 -115
  196. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +41 -40
  197. package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +22 -32
  198. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +102 -192
  199. package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +14 -35
  200. package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +14 -12
  201. package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +8 -9
  202. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +3 -14
  203. package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +23 -12
  204. package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +1 -4
  205. package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +24 -25
  206. package/lib/video-recap/skills/video-assemble/scripts/lib.py +31 -85
  207. package/lib/video-recap/skills/video-assemble/scripts/media.py +100 -144
  208. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +101 -195
  209. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +10 -21
  210. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +90 -169
  211. package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +69 -122
  212. package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +10 -17
  213. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +33 -48
  214. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +14 -20
  215. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +135 -213
  216. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +49 -57
  217. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +38 -74
  218. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +46 -95
  219. package/lib/video-recap/skills/video-cut/scripts/lib.py +23 -25
  220. package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +70 -173
  221. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +28 -53
  222. package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +162 -322
  223. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +6 -7
  224. package/lib/video-recap/skills/video-recap/scripts/doctor.py +104 -124
  225. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +255 -412
  226. package/lib/video-recap/skills/video-recap/scripts/lib.py +30 -52
  227. package/lib/video-recap/skills/video-recap/scripts/materials.py +97 -120
  228. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +7 -12
  229. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +46 -97
  230. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +18 -36
  231. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +29 -47
  232. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +43 -76
  233. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +2 -1
  234. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +2 -1
  235. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +2 -2
  236. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +129 -145
  237. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +27 -20
  238. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +20 -31
  239. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +31 -106
  240. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +43 -113
  241. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +196 -377
  242. package/lib/video-recap/skills/video-script/scripts/agent_brief.py +1 -1
  243. package/lib/video-recap/skills/video-script/scripts/agent_text.py +63 -172
  244. package/lib/video-recap/skills/video-script/scripts/brief_context.py +80 -135
  245. package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +125 -167
  246. package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +93 -208
  247. package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +20 -46
  248. package/lib/video-recap/skills/video-script/scripts/lib.py +30 -26
  249. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +145 -140
  250. package/lib/video-recap/skills/video-script/scripts/review_response.py +12 -42
  251. package/lib/video-recap/skills/video-script/scripts/review_runner.py +0 -6
  252. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +39 -100
  253. package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +33 -124
  254. package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +1 -1
  255. package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +63 -172
  256. package/lib/video-recap/skills/video-understanding/scripts/asr.py +1 -2
  257. package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +80 -135
  258. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +125 -167
  259. package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +93 -208
  260. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +1 -1
  261. package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +20 -46
  262. package/lib/video-recap/skills/video-understanding/scripts/lib.py +31 -26
  263. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +145 -140
  264. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +39 -100
  265. package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +33 -124
  266. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +1 -4
  267. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +7 -13
  268. package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +12 -30
  269. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +98 -131
  270. package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +17 -28
  271. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +151 -240
  272. package/package.json +41 -41
@@ -2,13 +2,14 @@
2
2
  "schemaVersion": 1,
3
3
  "upstream": {
4
4
  "repository": "https://github.com/zenstory-ai/drama-skills.git",
5
- "commit": "4cd584668bf6dc613a51d1ca40d00de352db9713"
5
+ "commit": "bc96c5eb9c91cccd1c613c2b34645c35f1989a28"
6
6
  },
7
- "generatedAt": "2026-09-04T14:24:07.064Z",
7
+ "generatedAt": "2026-09-10T13:26:14.809Z",
8
8
  "skills": [
9
9
  "short-drama",
10
10
  "short-drama-assets",
11
11
  "short-drama-develop",
12
+ "short-drama-edit",
12
13
  "short-drama-image-prompts",
13
14
  "short-drama-novel-analyze",
14
15
  "short-drama-produce",
@@ -80,8 +81,8 @@
80
81
  },
81
82
  {
82
83
  "path": "skills/short-drama-assets/references/character-and-look.md",
83
- "sha256": "ae7e949ebc8c686d75a780597b43996d868e15b0c633801bf13f82f5c74752e9",
84
- "bytes": 10066
84
+ "sha256": "4c542e4df9e69fe21f7932dcf874ab65693e18b05e8f2f1249878a8f5da3e7c0",
85
+ "bytes": 11172
85
86
  },
86
87
  {
87
88
  "path": "skills/short-drama-assets/references/continuity-delta.md",
@@ -90,8 +91,8 @@
90
91
  },
91
92
  {
92
93
  "path": "skills/short-drama-assets/references/continuity-lock.md",
93
- "sha256": "5ba6bfa82597c89756b765263f618a21f98d9b534d9f2ee3c23308c026f97f41",
94
- "bytes": 6746
94
+ "sha256": "603e94313f052bff039a5c8c5115dd77be55b50f681ff3a7acf5798747240452",
95
+ "bytes": 7668
95
96
  },
96
97
  {
97
98
  "path": "skills/short-drama-assets/references/identity-vs-variant.md",
@@ -298,6 +299,101 @@
298
299
  "sha256": "812fecc4d0c022240ccafa01d4fee74f86bac0de98e9cae8b90ffc7eb1ffe231",
299
300
  "bytes": 1533
300
301
  },
302
+ {
303
+ "path": "skills/short-drama-edit/SKILL.md",
304
+ "sha256": "ff27a30ed5fddb26a2824a4975bf78d18a506cb1db8d87cf4059716514a2e24e",
305
+ "bytes": 11031
306
+ },
307
+ {
308
+ "path": "skills/short-drama-edit/agents/openai.yaml",
309
+ "sha256": "5f6f131727496be7d4512e6516722a5a33be83e55a11fefa6ca9c7d9a355a653",
310
+ "bytes": 254
311
+ },
312
+ {
313
+ "path": "skills/short-drama-edit/assets/remotion/README.md",
314
+ "sha256": "13cccd696d78e59f55e0ffa1aa4aa75c3d2be8fc7a7c12a2106dbca82c388a17",
315
+ "bytes": 2929
316
+ },
317
+ {
318
+ "path": "skills/short-drama-edit/assets/remotion/package.json",
319
+ "sha256": "437058ea7afd499fcc03f57f2f5b2470254826ebbe092d1c515b26bd01db1031",
320
+ "bytes": 386
321
+ },
322
+ {
323
+ "path": "skills/short-drama-edit/assets/remotion/remotion.config.ts",
324
+ "sha256": "a13e13dc5e99eba7fc8861ba1fbc6c1455fd068801a476432120d663e5ea7145",
325
+ "bytes": 219
326
+ },
327
+ {
328
+ "path": "skills/short-drama-edit/assets/remotion/src/Root.tsx",
329
+ "sha256": "522487f39c9b4d91c32304be4867f64784aab3ae5b25135b8d9fdbc6362a0dbc",
330
+ "bytes": 941
331
+ },
332
+ {
333
+ "path": "skills/short-drama-edit/assets/remotion/src/Subtitles.tsx",
334
+ "sha256": "21fbb6548fbe57842a59b2e9002513bcedd08b4bec488c1dd0c80c637499b87a",
335
+ "bytes": 3095
336
+ },
337
+ {
338
+ "path": "skills/short-drama-edit/assets/remotion/src/font.ts",
339
+ "sha256": "8b42d2fbc238e36cf74955492433fc56ea5197843875c62ef56e815337e61b54",
340
+ "bytes": 1794
341
+ },
342
+ {
343
+ "path": "skills/short-drama-edit/assets/remotion/src/index.ts",
344
+ "sha256": "957e481dd33a29b4a55ae0e95dbf763b7e48c37c427ca4bd1275faf34bc07a74",
345
+ "bytes": 109
346
+ },
347
+ {
348
+ "path": "skills/short-drama-edit/assets/remotion/src/schema.ts",
349
+ "sha256": "9dc78db7e6334673ca2086cfd632da1d2cd3bc9746dd441237926b2d79ac9a59",
350
+ "bytes": 835
351
+ },
352
+ {
353
+ "path": "skills/short-drama-edit/assets/remotion/tsconfig.json",
354
+ "sha256": "e58a703515f2767b0c4a7fb872a882f98cc05674aa641fd87e279f697d548f87",
355
+ "bytes": 255
356
+ },
357
+ {
358
+ "path": "skills/short-drama-edit/assets/剪辑单.md",
359
+ "sha256": "fe495fe94d65e04a99918567abdd901c025f6d216bdbff6e9fc93ea8146c53f6",
360
+ "bytes": 2054
361
+ },
362
+ {
363
+ "path": "skills/short-drama-edit/references/cut-craft.md",
364
+ "sha256": "456b4aa70b0039739751b8fbba54f9a00a103ccb91d0116a09707021f902ca6e",
365
+ "bytes": 4297
366
+ },
367
+ {
368
+ "path": "skills/short-drama-edit/references/delivery-verify.md",
369
+ "sha256": "f417d537cb87d65562e5838ebf2556b5f5f9412f5b0a522a64f733fe59fef8c5",
370
+ "bytes": 3242
371
+ },
372
+ {
373
+ "path": "skills/short-drama-edit/references/generated-footage.md",
374
+ "sha256": "8493ca0a1e45b798c402b8f659b6f61845eed42ac2bd33e0c29e06100665da02",
375
+ "bytes": 6550
376
+ },
377
+ {
378
+ "path": "skills/short-drama-edit/references/sound-and-subtitles.md",
379
+ "sha256": "68fa771e8d3c1a18eba0d03e865c350fa7b7d05d8bf22d3c1c6b33189e26447a",
380
+ "bytes": 7368
381
+ },
382
+ {
383
+ "path": "skills/short-drama-edit/references/stage-contract.md",
384
+ "sha256": "fc5ec18b416b992268eece21b6350299a49c8796992f1e6086849149d9bdc1a6",
385
+ "bytes": 6307
386
+ },
387
+ {
388
+ "path": "skills/short-drama-edit/scripts/edit_tool.py",
389
+ "sha256": "3b93f7c77c62a61978694dc679606c61366b4ddc131ce9ed3e1f4916aeb17db8",
390
+ "bytes": 42565
391
+ },
392
+ {
393
+ "path": "skills/short-drama-edit/scripts/selftest.py",
394
+ "sha256": "b28f420d35941ab3a2e6439c91cc5bdf06d572d97865b8d9abcfef0113eb18bb",
395
+ "bytes": 19403
396
+ },
301
397
  {
302
398
  "path": "skills/short-drama-image-prompts/SKILL.md",
303
399
  "sha256": "a3341fc0c5562ab2808c3e61ed5b9c57e720ea339bea58cf3a65268660d9032f",
@@ -315,8 +411,8 @@
315
411
  },
316
412
  {
317
413
  "path": "skills/short-drama-image-prompts/assets/image-prompts.md",
318
- "sha256": "fd4a629b4c4332fc510f0229855c7f14ed344abbe69d5dcab7cc23c01ee55167",
319
- "bytes": 1980
414
+ "sha256": "4bae26f62b9a6374a9d6a5a4bde55b8afc28374a0c483835b00d160b39848fa0",
415
+ "bytes": 2559
320
416
  },
321
417
  {
322
418
  "path": "skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md",
@@ -325,8 +421,8 @@
325
421
  },
326
422
  {
327
423
  "path": "skills/short-drama-image-prompts/assets/lookdev-prompts.md",
328
- "sha256": "3211141935eb5f8b34ca1bb0476e055dd4ad455f5c877df0f4daf75dcf451f70",
329
- "bytes": 1592
424
+ "sha256": "4b367dd74df4f8fb91807aa428ec70e882ed7dfda8cccdd7f180953618db2d88",
425
+ "bytes": 1824
330
426
  },
331
427
  {
332
428
  "path": "skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl",
@@ -420,13 +516,13 @@
420
516
  },
421
517
  {
422
518
  "path": "skills/short-drama-novel-analyze/references/aggregation-and-entities.md",
423
- "sha256": "1f47967b7d44d11435c104486f51fabb77ded47c6dbddf702b2a84eb869ffe77",
519
+ "sha256": "ffc622547a53070473e8293cc3bae35595c5d45eee18ddde3cafd4d88d0b8fe1",
424
520
  "bytes": 8511
425
521
  },
426
522
  {
427
523
  "path": "skills/short-drama-novel-analyze/references/chapter-extraction.md",
428
- "sha256": "428e6c80b37f75706808d3f3d7048c4ca91e6c98d020c2e67c996e325b6aa0f1",
429
- "bytes": 8139
524
+ "sha256": "72af59213d2a46d1670cdbc937d6a87a8b8086035acea5451be6970bac467802",
525
+ "bytes": 8518
430
526
  },
431
527
  {
432
528
  "path": "skills/short-drama-novel-analyze/references/stage-contract.md",
@@ -445,8 +541,8 @@
445
541
  },
446
542
  {
447
543
  "path": "skills/short-drama-produce/SKILL.md",
448
- "sha256": "9eb35a905f94fea67852d8437e1f5640a5d4090d71ac645e4857958f04b2c08e",
449
- "bytes": 12422
544
+ "sha256": "8e664f0a3a59c9f89426577c376880b15890b50dd09aa9905373e9b112426876",
545
+ "bytes": 14032
450
546
  },
451
547
  {
452
548
  "path": "skills/short-drama-produce/agents/openai.yaml",
@@ -455,8 +551,8 @@
455
551
  },
456
552
  {
457
553
  "path": "skills/short-drama-produce/references/adapter-contract.md",
458
- "sha256": "a2825dd9dee723fbc0cf24486348df9fd0a7cb2fcb39b384179a8302677fe4b1",
459
- "bytes": 9863
554
+ "sha256": "e64402f789bdc4046b9bd67226ee78da44a25930b04c42f17023f0961eafb968",
555
+ "bytes": 11507
460
556
  },
461
557
  {
462
558
  "path": "skills/short-drama-produce/references/providers/gpt-image-2.md",
@@ -465,8 +561,8 @@
465
561
  },
466
562
  {
467
563
  "path": "skills/short-drama-produce/references/providers/minimax-h3-video.md",
468
- "sha256": "ed2ebb0234cf841442f54342196b52df65c6f42a74a5bdfe80bc774bf6911e54",
469
- "bytes": 5531
564
+ "sha256": "39a827aaab23fe853d4b8bdc69dfa69f4cb5265a2782329408485b433477597e",
565
+ "bytes": 7300
470
566
  },
471
567
  {
472
568
  "path": "skills/short-drama-produce/references/providers/minimax-music.md",
@@ -475,23 +571,23 @@
475
571
  },
476
572
  {
477
573
  "path": "skills/short-drama-produce/references/providers/seedance.md",
478
- "sha256": "0c5672a8c6a1d9e47f7b950773d4a12843df92aa5ec4b67b053cc8e17de84ada",
479
- "bytes": 3380
574
+ "sha256": "76bfd27a1b1181c0e0079c49ba4ae926012e638794c9bec3c046aaa1846e1c8d",
575
+ "bytes": 3976
480
576
  },
481
577
  {
482
578
  "path": "skills/short-drama-produce/scripts/fixture_adapter.py",
483
- "sha256": "6c80a50efe36499231804df5e202f74a12590d707114ed41322fddd069ac2d81",
484
- "bytes": 1861
579
+ "sha256": "f3695da2aa5281b30991515d36863322f93f3d85de574cf30fe81664aec8a730",
580
+ "bytes": 2732
485
581
  },
486
582
  {
487
583
  "path": "skills/short-drama-produce/scripts/production_tool.py",
488
- "sha256": "b39253946f17ff966ce661ca365cdda5b2ea25d1b43466399d839fbb3bebe745",
489
- "bytes": 79461
584
+ "sha256": "560808219145a958723ff70841d8bac6280eed0ea4d55feb18646444f8661e3e",
585
+ "bytes": 87712
490
586
  },
491
587
  {
492
588
  "path": "skills/short-drama-produce/scripts/provider_adapters.py",
493
- "sha256": "056f49984683bffd7f7c8e13faa3aee3b7d73bc0f22e33d8f06b054bceb9ce67",
494
- "bytes": 62022
589
+ "sha256": "a4a0174592de2a13918807bbcb9bb793e881f659784c906db4255f0fd044b336",
590
+ "bytes": 64104
495
591
  },
496
592
  {
497
593
  "path": "skills/short-drama-produce/scripts/selftest.py",
@@ -500,8 +596,8 @@
500
596
  },
501
597
  {
502
598
  "path": "skills/short-drama-review/SKILL.md",
503
- "sha256": "594a11ecb99cbd61ec7e1154a6ab026cf2568fd976871046fc2fca9716f23361",
504
- "bytes": 4965
599
+ "sha256": "174bd5b6957640d4d5f4cf881e03f3af5a2b1a9b94556a18d7d9ff320b2e335b",
600
+ "bytes": 5273
505
601
  },
506
602
  {
507
603
  "path": "skills/short-drama-review/agents/openai.yaml",
@@ -540,8 +636,8 @@
540
636
  },
541
637
  {
542
638
  "path": "skills/short-drama-review/references/production-quality-gates.md",
543
- "sha256": "fe98c67d1a0016dd550ba5449889e3d67e57886c6b6504c07437c7392980c1d3",
544
- "bytes": 18647
639
+ "sha256": "06edf05c2a43a6cd8d6b774bdd8530a1044de32fc428c3c35e9ff24c560aa697",
640
+ "bytes": 20332
545
641
  },
546
642
  {
547
643
  "path": "skills/short-drama-review/references/project-calibration.md",
@@ -570,8 +666,8 @@
570
666
  },
571
667
  {
572
668
  "path": "skills/short-drama-review/references/rubric-visual-motion.md",
573
- "sha256": "03b14c6b8d708b0f3b24a6f8693f5b43343b20c7197690e472f94376cf334cca",
574
- "bytes": 9951
669
+ "sha256": "876247530e6cd8eca1d5a72921764f85fad1b0c35f95e94817513b51282e94e2",
670
+ "bytes": 12731
575
671
  },
576
672
  {
577
673
  "path": "skills/short-drama-review/references/stage-contract.md",
@@ -590,8 +686,8 @@
590
686
  },
591
687
  {
592
688
  "path": "skills/short-drama-storyboard/SKILL.md",
593
- "sha256": "187b38c3f17742959403cee6d99d688361bc8d62ef720a4e4096fd1adb6e0f26",
594
- "bytes": 16588
689
+ "sha256": "7a7ff4c83981e59de181946a0a814ef5c950e024036eed5cca4ff6fbb6118d48",
690
+ "bytes": 17488
595
691
  },
596
692
  {
597
693
  "path": "skills/short-drama-storyboard/agents/openai.yaml",
@@ -610,8 +706,8 @@
610
706
  },
611
707
  {
612
708
  "path": "skills/short-drama-storyboard/assets/keyframe-prompts.md",
613
- "sha256": "7feb2959deba04d78ef42e5cb1d20a9b7674c9e4056dfef0bfe93629bd293106",
614
- "bytes": 1500
709
+ "sha256": "da25a4f84f0ac80e487bc5a34f0131add83c161689d15f783c0324dc833fe20a",
710
+ "bytes": 1840
615
711
  },
616
712
  {
617
713
  "path": "skills/short-drama-storyboard/assets/keyframe-template.jsonl",
@@ -675,8 +771,8 @@
675
771
  },
676
772
  {
677
773
  "path": "skills/short-drama-storyboard/references/shot-craft.md",
678
- "sha256": "ff794b3d83e2fe5f58c1f023eb245bf9fd801a7516901c85f1d33c2c333e3f33",
679
- "bytes": 11127
774
+ "sha256": "7726bcbe0e364b03de7db5a7a12e46de321b4cac9bcb05bca800f675dad402d7",
775
+ "bytes": 14293
680
776
  },
681
777
  {
682
778
  "path": "skills/short-drama-storyboard/references/shot-revision-identity.md",
@@ -685,8 +781,8 @@
685
781
  },
686
782
  {
687
783
  "path": "skills/short-drama-storyboard/references/stage-contract.md",
688
- "sha256": "8624622c16dc60ca56aeba67f7d68c10c3f972ff533d6fbc484694a07ab5ae0e",
689
- "bytes": 9148
784
+ "sha256": "456ab66836a6375a4366e66cb791e263cf032a6f651257e26ab1c78f06573a8b",
785
+ "bytes": 10521
690
786
  },
691
787
  {
692
788
  "path": "skills/short-drama-storyboard/scripts/selftest.py",
@@ -700,8 +796,8 @@
700
796
  },
701
797
  {
702
798
  "path": "skills/short-drama-video-prompts/SKILL.md",
703
- "sha256": "6af04f52c90b92120648cc703dd3f85f6225afa428a76d7b5c61471baea39250",
704
- "bytes": 15419
799
+ "sha256": "fe4e682d358a586dd14923e5b71a6fe8d6c6514ce576cf898b12372d56ba1c09",
800
+ "bytes": 16452
705
801
  },
706
802
  {
707
803
  "path": "skills/short-drama-video-prompts/agents/openai.yaml",
@@ -765,23 +861,23 @@
765
861
  },
766
862
  {
767
863
  "path": "skills/short-drama-video-prompts/references/minimax-h3.md",
768
- "sha256": "d83692c446175da092521ec11f4fbcbb0861b9ac96ce1bb426e73e9a3dfcdb02",
769
- "bytes": 11266
864
+ "sha256": "9a1de7c5ea347714c0bdadfec2af51571925bbcce8135fcbe7cd9231245575cf",
865
+ "bytes": 19140
770
866
  },
771
867
  {
772
868
  "path": "skills/short-drama-video-prompts/references/motion-recipe.md",
773
- "sha256": "60fecef7a573b364ddb3d13708a6d2adc432e939fefd09653d2749a23b91c87b",
774
- "bytes": 20275
869
+ "sha256": "23e6b0ce936f0b050380799b9a340b5d2b7733502eee67e99ee0b61bcb666da7",
870
+ "bytes": 20896
775
871
  },
776
872
  {
777
873
  "path": "skills/short-drama-video-prompts/references/performance-action-timing.md",
778
- "sha256": "4b986ab6a61eef2a16530ffaed82b9195d4cb33038c0e6a80c7e908680ad9b2a",
779
- "bytes": 11060
874
+ "sha256": "41ad9c0dd7139449cfb8f8e170a035c03e616faddefb61646e410916c3a45b4a",
875
+ "bytes": 13665
780
876
  },
781
877
  {
782
878
  "path": "skills/short-drama-video-prompts/references/production-prompt-grammar.md",
783
- "sha256": "774b3fc3949a92ee3d1fe4f1daa2f278d5ecf2e4d93b19fb282ae0123b179abc",
784
- "bytes": 23136
879
+ "sha256": "fc915057f5d9088ab8fa3295ea8d4c8443d4771cb23ada560e72822f4fe96d94",
880
+ "bytes": 23428
785
881
  },
786
882
  {
787
883
  "path": "skills/short-drama-video-prompts/references/review-and-fixtures.md",
@@ -790,18 +886,18 @@
790
886
  },
791
887
  {
792
888
  "path": "skills/short-drama-video-prompts/references/seedance-2.0.md",
793
- "sha256": "24a7a6f6b15088a015d7e646458de109017e1f52ba45f4171c46c5121f7f88f9",
794
- "bytes": 2466
889
+ "sha256": "5f4d50c90366e3be35050aee9315052c7d1d0fcfeed44a1f2ca76166cb48283d",
890
+ "bytes": 3617
795
891
  },
796
892
  {
797
893
  "path": "skills/short-drama-video-prompts/references/seedance-2.5.md",
798
- "sha256": "c0365b29478aa81f5eeea78f07c83f1a8caff3f5ac56b4372ea629207835fdd6",
799
- "bytes": 4427
894
+ "sha256": "212f724dc05cd3ebc8cfc8c66b05108bbce7bb696d89e5091000405c5bae7656",
895
+ "bytes": 7235
800
896
  },
801
897
  {
802
898
  "path": "skills/short-drama-video-prompts/references/stage-contract.md",
803
- "sha256": "9e24f8e5459dfc50c4fdb00dd0d37b14c2586f582caaa934df72031bb263111a",
804
- "bytes": 11068
899
+ "sha256": "c8b0d09d002c1763296e17bd72e7d765c5c5f46d9028d49de15b9e7a319db94d",
900
+ "bytes": 11360
805
901
  },
806
902
  {
807
903
  "path": "skills/short-drama-video-prompts/references/target-model-profile.md",
@@ -830,8 +926,8 @@
830
926
  },
831
927
  {
832
928
  "path": "skills/short-drama-write/SKILL.md",
833
- "sha256": "859d01337ed392be36393d444d0222ee4742bafac8cd6cf4e3e8bcdd659a90cf",
834
- "bytes": 8719
929
+ "sha256": "8b76368dc799987f125db455942b4f175e004e5018d3718683ca8ec45527ae49",
930
+ "bytes": 9679
835
931
  },
836
932
  {
837
933
  "path": "skills/short-drama-write/agents/openai.yaml",
@@ -885,8 +981,8 @@
885
981
  },
886
982
  {
887
983
  "path": "skills/short-drama-write/references/screenplay-format.md",
888
- "sha256": "19b19b370e0958a3c6f004bc05312bf9ca53c92f07d5d58274409730897c8f71",
889
- "bytes": 9951
984
+ "sha256": "809b6033554899224c387d548aad096cfe469930fe0c0d713bfde732841a1dfa",
985
+ "bytes": 10614
890
986
  },
891
987
  {
892
988
  "path": "skills/short-drama-write/references/script-craft.md",
@@ -895,8 +991,8 @@
895
991
  },
896
992
  {
897
993
  "path": "skills/short-drama-write/references/stage-contract.md",
898
- "sha256": "9b0f5bade21156a59dd16d2917739f57eb793fd90f9d7bf47f46b535cd90b756",
899
- "bytes": 6744
994
+ "sha256": "c554b7dee6d7e57b25966c962465f7d2d0210594e4cb93fea8dcdf971a732c6a",
995
+ "bytes": 7238
900
996
  },
901
997
  {
902
998
  "path": "skills/short-drama-write/references/substitutable-realization.md",
@@ -925,8 +1021,8 @@
925
1021
  },
926
1022
  {
927
1023
  "path": "skills/short-drama/SKILL.md",
928
- "sha256": "0fe4e5630d93eea97108868f3806fb525661062d0636c12b8d7d2bd5d1e147ad",
929
- "bytes": 9772
1024
+ "sha256": "1245b5277dc4fb53ab81f7e5c92a6304e2d4a83985f6522ed05c2c291b5ec7b3",
1025
+ "bytes": 10145
930
1026
  },
931
1027
  {
932
1028
  "path": "skills/short-drama/agents/openai.yaml",
@@ -1035,13 +1131,13 @@
1035
1131
  },
1036
1132
  {
1037
1133
  "path": "skills/short-drama/scripts/creator_markdown_check.py",
1038
- "sha256": "f34e71b24bf725e105c4b943370064c6e7fa5d389e1835fb3c6a467ba2c05617",
1039
- "bytes": 55674
1134
+ "sha256": "208afedeb1ef87feff3c5632ae93f17bc1b7396224abfe83091ac204f593e1e6",
1135
+ "bytes": 61093
1040
1136
  },
1041
1137
  {
1042
1138
  "path": "skills/short-drama/scripts/project_tool.py",
1043
- "sha256": "5a195d69a256056940af74e89cae862ad7af12b350e2554376df445747a19f69",
1044
- "bytes": 95059
1139
+ "sha256": "40c40a1160ad86b83a5ad322d67968e5b9f805ff13e68643b530785a1c6189aa",
1140
+ "bytes": 95650
1045
1141
  },
1046
1142
  {
1047
1143
  "path": "skills/short-drama/scripts/selftest.py",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: short-drama
3
- description: 基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。
3
+ description: 基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜、剪辑或审查请求由对应子 skill 直接处理。
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -27,6 +27,7 @@ license: MIT
27
27
  | 做镜头和冻结关键帧 | `$short-drama-storyboard` → `分镜.md` |
28
28
  | 写视频/时间线音乐提示词 | `$short-drama-video-prompts` → `视频提示词.md` |
29
29
  | 实际生成媒体 | `$short-drama-produce`,先预览,再显式确认,最后运行 |
30
+ | 把已生产的素材剪成成片 | `$short-drama-edit` → `剪辑单.md` 与 `制作成果/成片/` |
30
31
  | 审稿或校验 | `$short-drama-review`,仅在用户点名时 |
31
32
  | 初始化、Dashboard、归档点名文档 | 本技能 |
32
33
 
@@ -36,6 +37,9 @@ license: MIT
36
37
  现成剧本可直接拆资产;已有视觉事实可直接写图片提示词或分镜;已有分镜可直接写视频提示词。
37
38
  不要为补齐名义流水线伪造上游。
38
39
 
40
+ 五文档是创作真相,剪辑单不是第六份。它写在素材生产之后,只记录「已有的这些素材,哪些帧进成片」,
41
+ 不改变任何一集的剧本、镜头职责或时长声明;需要改这些就回到拥有它们的文档。
42
+
39
43
  ## 执行请求
40
44
 
41
45
  1. 找到用户给出的项目或资料,只读当前任务的直接输入。