@oh-story/dsh 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/README.md +17 -11
  2. package/lib/client.js +85 -35
  3. package/lib/client.js.map +3 -3
  4. package/lib/drama/manifest.json +41 -36
  5. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +340 -13
  6. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +4 -2
  7. package/lib/drama/skills/short-drama-edit/SKILL.md +32 -12
  8. package/lib/drama/skills/short-drama-edit/references/still-cuts.md +90 -0
  9. package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1035 -145
  10. package/lib/drama/skills/short-drama-edit/scripts/selftest.py +48 -0
  11. package/lib/drama/skills/short-drama-produce/SKILL.md +6 -1
  12. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +12 -0
  13. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +138 -9
  14. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +6 -0
  15. package/lib/drama/skills/short-drama-storyboard/SKILL.md +2 -0
  16. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +3 -1
  17. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +7 -0
  18. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +14 -0
  19. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +19 -6
  20. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -0
  21. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +5 -0
  22. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +4 -1
  23. package/lib/index.js +16 -7
  24. package/lib/index.js.map +2 -2
  25. package/lib/novel-to-game/README.md +98 -44
  26. package/lib/novel-to-game/README_ZH.md +100 -46
  27. package/lib/novel-to-game/VERSION +1 -1
  28. package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +27 -202
  29. package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +23 -115
  30. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/chamber.webp +0 -0
  31. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/court_night.webp +0 -0
  32. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/court_rain.webp +0 -0
  33. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/garden.webp +0 -0
  34. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/hall.webp +0 -0
  35. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/kitchen.webp +0 -0
  36. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/street.webp +0 -0
  37. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/street_dawn.webp +0 -0
  38. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/temple.webp +0 -0
  39. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/moon.webp +0 -0
  40. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/angry.webp +0 -0
  41. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/blush.webp +0 -0
  42. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/neutral.webp +0 -0
  43. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/sad.webp +0 -0
  44. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/smile.webp +0 -0
  45. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/surprised.webp +0 -0
  46. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/angry.webp +0 -0
  47. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/blush.webp +0 -0
  48. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/neutral.webp +0 -0
  49. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/sad.webp +0 -0
  50. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/smile.webp +0 -0
  51. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/surprised.webp +0 -0
  52. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/angry.webp +0 -0
  53. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/blush.webp +0 -0
  54. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/neutral.webp +0 -0
  55. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/sad.webp +0 -0
  56. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/smile.webp +0 -0
  57. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/surprised.webp +0 -0
  58. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/angry.webp +0 -0
  59. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/blush.webp +0 -0
  60. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/neutral.webp +0 -0
  61. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/sad.webp +0 -0
  62. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/smile.webp +0 -0
  63. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/surprised.webp +0 -0
  64. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/angry.webp +0 -0
  65. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/blush.webp +0 -0
  66. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/neutral.webp +0 -0
  67. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/sad.webp +0 -0
  68. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/smile.webp +0 -0
  69. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/surprised.webp +0 -0
  70. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +326 -2503
  71. package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +71 -4
  72. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/adv.js +221 -0
  73. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +113 -257
  74. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +511 -3026
  75. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/menus.js +277 -0
  76. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/petals.js +67 -0
  77. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/stage.js +180 -0
  78. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/store.js +70 -0
  79. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/common.js +198 -0
  80. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/common2.js +204 -0
  81. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/common3.js +198 -0
  82. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/dates.js +186 -0
  83. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/index.js +122 -0
  84. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/meng.js +190 -0
  85. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/pan.js +212 -0
  86. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/pinger.js +198 -0
  87. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/xuee.js +199 -0
  88. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/yue.js +214 -0
  89. package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -2
  90. package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +182 -45
  91. package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +7 -17
  92. package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +9 -9
  93. package/lib/novel-to-game/manifest.json +303 -78
  94. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +7 -2
  95. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +2 -0
  96. package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +2 -0
  97. package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +9 -0
  98. package/lib/types/client/drama-production-view.d.ts +11 -0
  99. package/lib/types/client/drama-production-view.d.ts.map +1 -1
  100. package/lib/types/client/file-activity.d.ts +1 -1
  101. package/lib/types/client/file-activity.d.ts.map +1 -1
  102. package/lib/types/client/production-prompts.d.ts +7 -1
  103. package/lib/types/client/production-prompts.d.ts.map +1 -1
  104. package/lib/types/client/production-runtime.d.ts +7 -2
  105. package/lib/types/client/production-runtime.d.ts.map +1 -1
  106. package/lib/types/drama-adapters.d.ts.map +1 -1
  107. package/lib/types/skill-provider.d.ts.map +1 -1
  108. package/lib/types/video-project.d.ts.map +1 -1
  109. package/lib/video-recap/CHANGELOG.md +108 -1
  110. package/lib/video-recap/README.en.md +18 -14
  111. package/lib/video-recap/README.md +18 -14
  112. package/lib/video-recap/manifest.json +297 -321
  113. package/lib/video-recap/skills/video-assemble/SKILL.md +18 -16
  114. package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +3 -1
  115. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +5 -5
  116. package/lib/video-recap/skills/video-assemble/references/packaging.md +4 -4
  117. package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +10 -10
  118. package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +13 -2
  119. package/lib/video-recap/skills/video-assemble/scripts/adoption/av_clock.py +109 -0
  120. package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +4 -1
  121. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +2 -9
  122. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +188 -51
  123. package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +0 -1
  124. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +32 -75
  125. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +8 -15
  126. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +202 -161
  127. package/lib/video-recap/skills/video-assemble/scripts/codec_peak.py +112 -0
  128. package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +10 -101
  129. package/lib/video-recap/skills/video-assemble/scripts/jianying/builders.py +44 -475
  130. package/lib/video-recap/skills/video-assemble/scripts/jianying/model.py +1 -22
  131. package/lib/video-recap/skills/video-assemble/scripts/jianying/templates.py +0 -3
  132. package/lib/video-recap/skills/video-assemble/scripts/jianying/timeline_contract.py +36 -103
  133. package/lib/video-recap/skills/video-assemble/scripts/jianying/tracks.py +0 -8
  134. package/lib/video-recap/skills/video-assemble/scripts/jianying/writer.py +28 -203
  135. package/lib/video-recap/skills/video-assemble/scripts/lib.py +20 -34
  136. package/lib/video-recap/skills/video-assemble/scripts/loudness.py +332 -0
  137. package/lib/video-recap/skills/video-assemble/scripts/media.py +158 -38
  138. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +30 -16
  139. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +49 -8
  140. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +17 -6
  141. package/lib/video-recap/skills/video-assemble/scripts/subtitles/core.py +24 -2
  142. package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +2 -5
  143. package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +2 -9
  144. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +12 -34
  145. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +3 -4
  146. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +28 -2
  147. package/lib/video-recap/skills/video-cut/SKILL.md +37 -11
  148. package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
  149. package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -34
  150. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +96 -124
  151. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +97 -182
  152. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +177 -166
  153. package/lib/video-recap/skills/video-cut/scripts/frame_grid.py +249 -0
  154. package/lib/video-recap/skills/video-cut/scripts/lib.py +0 -3
  155. package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +173 -7
  156. package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +234 -151
  157. package/lib/video-recap/skills/video-cut/scripts/sentence_gate.py +189 -0
  158. package/lib/video-recap/skills/video-cut/scripts/shot_review.py +2 -6
  159. package/lib/video-recap/skills/video-recap/SKILL.md +24 -27
  160. package/lib/video-recap/skills/video-recap/references/audio-routing.md +8 -6
  161. package/lib/video-recap/skills/video-recap/references/config-playbook.md +8 -11
  162. package/lib/video-recap/skills/video-recap/references/data-schema.md +131 -74
  163. package/lib/video-recap/skills/video-recap/references/resource-library.md +17 -1
  164. package/lib/video-recap/skills/video-recap/scripts/doctor.py +51 -268
  165. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +89 -254
  166. package/lib/video-recap/skills/video-recap/scripts/lib.py +81 -70
  167. package/lib/video-recap/skills/video-recap/scripts/library.py +40 -4
  168. package/lib/video-recap/skills/video-recap/scripts/materials.py +13 -80
  169. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +49 -17
  170. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +1 -3
  171. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +86 -116
  172. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +87 -23
  173. package/lib/video-recap/skills/video-recap/scripts/recap_source.py +0 -39
  174. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +37 -135
  175. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +118 -127
  176. package/lib/video-recap/skills/video-recap/scripts/resources/__init__.py +4 -0
  177. package/lib/video-recap/skills/video-recap/scripts/{resource_lock.py → resources/lock.py} +1 -1
  178. package/lib/video-recap/skills/video-recap/scripts/{project_binding.py → resources/project_binding.py} +78 -17
  179. package/lib/video-recap/skills/video-reference/SKILL.md +108 -0
  180. package/lib/video-recap/skills/video-reference/references/reference-schema.md +139 -0
  181. package/lib/video-recap/skills/video-reference/scripts/lib.py +85 -0
  182. package/lib/video-recap/skills/video-reference/scripts/reference.py +96 -0
  183. package/lib/video-recap/skills/video-reference/scripts/reference_check.py +553 -0
  184. package/lib/video-recap/skills/video-reference/scripts/reference_frames.py +122 -0
  185. package/lib/video-recap/skills/video-reference/scripts/reference_measure.py +253 -0
  186. package/lib/video-recap/skills/video-reference/scripts/reference_profile.py +271 -0
  187. package/lib/video-recap/skills/video-script/SKILL.md +9 -7
  188. package/lib/video-recap/skills/video-script/scripts/agent_text.py +18 -267
  189. package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +12 -30
  190. package/lib/video-recap/skills/video-script/scripts/entry_suggestion.py +125 -0
  191. package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +2 -26
  192. package/lib/video-recap/skills/video-script/scripts/lib.py +5 -15
  193. package/lib/video-recap/skills/video-script/scripts/lint_summary.py +184 -0
  194. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +120 -100
  195. package/lib/video-recap/skills/video-script/scripts/review.py +3 -34
  196. package/lib/video-recap/skills/video-script/scripts/review_grounding.py +20 -46
  197. package/lib/video-recap/skills/video-script/scripts/review_response.py +120 -258
  198. package/lib/video-recap/skills/video-script/scripts/review_runner.py +2 -10
  199. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +89 -5
  200. package/lib/video-recap/skills/video-script/scripts/validate.py +26 -34
  201. package/lib/video-recap/skills/video-understanding/SKILL.md +29 -4
  202. package/lib/video-recap/skills/video-understanding/references/data-schema.md +5 -22
  203. package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +24 -121
  204. package/lib/video-recap/skills/video-understanding/scripts/asr.py +11 -5
  205. package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +15 -24
  206. package/lib/video-recap/skills/video-understanding/scripts/briefing/builder.py +59 -25
  207. package/lib/video-recap/skills/video-understanding/scripts/briefing/context.py +39 -3
  208. package/lib/video-recap/skills/video-understanding/scripts/briefing/inputs.py +15 -27
  209. package/lib/video-recap/skills/video-understanding/scripts/briefing/timeline.py +136 -37
  210. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +121 -37
  211. package/lib/video-recap/skills/video-understanding/scripts/detect.py +118 -16
  212. package/lib/video-recap/skills/video-understanding/scripts/index_normalize.py +359 -0
  213. package/lib/video-recap/skills/video-understanding/scripts/lib.py +62 -21
  214. package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +181 -51
  215. package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +0 -26
  216. package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +37 -14
  217. package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +40 -32
  218. package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +100 -127
  219. package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +182 -30
  220. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +30 -27
  221. package/lib/video-recap/skills/video-voiceover/SKILL.md +19 -12
  222. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +3 -3
  223. package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +3 -1
  224. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +60 -135
  225. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +9 -34
  226. package/lib/video-recap/skills/video-voiceover/scripts/providers/fish_audio.py +6 -1
  227. package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +64 -1
  228. package/lib/video-recap/skills/video-voiceover/scripts/tts_cache.py +99 -0
  229. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +177 -200
  230. package/package.json +45 -45
  231. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  232. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  233. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  234. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +0 -1494
  235. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +0 -147
  236. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +0 -7470
  237. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +0 -13066
  238. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +0 -32
  239. package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +0 -99
  240. package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +0 -152
  241. package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +0 -118
  242. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +0 -84
  243. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +0 -98
  244. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +0 -204
  245. package/lib/video-recap/skills/video-assemble/references/pair-media.md +0 -74
  246. package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +0 -293
  247. package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +0 -216
  248. package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +0 -23
  249. package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +0 -33
  250. package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +0 -1
  251. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_client.py +0 -13
  252. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_contract.py +0 -9
  253. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_evidence.py +0 -287
  254. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_observations.py +0 -175
  255. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_payload.py +0 -206
  256. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_report.py +0 -318
  257. package/lib/video-recap/skills/video-recap/scripts/qc/mimo_runner.py +0 -130
  258. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -320
  259. package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +0 -108
  260. package/lib/video-recap/skills/video-understanding/scripts/brief.py +0 -9
  261. package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +0 -211
  262. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +0 -707
  263. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +0 -143
  264. /package/lib/video-recap/skills/video-cut/scripts/{narration_mapping.py → cut_qc.py} +0 -0
@@ -2,14 +2,15 @@
2
2
  "schemaVersion": 1,
3
3
  "upstream": {
4
4
  "repository": "https://github.com/zenstory-ai/video-recap-skills.git",
5
- "commit": "e7eb0a82f13aab930f64a669e91ece78b82f65f5",
6
- "releaseVersion": "0.6.0"
5
+ "commit": "88af4d4f37b09510a1169e945d43d0532770a8e4",
6
+ "releaseVersion": "0.6.1"
7
7
  },
8
- "generatedAt": "2026-09-28T04:09:53.544Z",
8
+ "generatedAt": "2026-10-03T14:32:42.171Z",
9
9
  "skills": [
10
10
  "video-assemble",
11
11
  "video-cut",
12
12
  "video-recap",
13
+ "video-reference",
13
14
  "video-script",
14
15
  "video-understanding",
15
16
  "video-voiceover"
@@ -17,8 +18,8 @@
17
18
  "files": [
18
19
  {
19
20
  "path": "CHANGELOG.md",
20
- "sha256": "1f1c9b54c80ccd4bd4ae65cc115e123ef88601df63cd078c5d8ad8d0b85418cc",
21
- "bytes": 49652
21
+ "sha256": "8b6c971f123fe170a97e7c517131fab120a2fcb5cb9bd06ebd2a795a7d26dfc3",
22
+ "bytes": 104618
22
23
  },
23
24
  {
24
25
  "path": "LICENSE",
@@ -27,18 +28,18 @@
27
28
  },
28
29
  {
29
30
  "path": "README.en.md",
30
- "sha256": "d34ac318ae1adaddd6ba0a9f5d3e2ae8156e0c857721491be90d96c3d6c21e51",
31
- "bytes": 29374
31
+ "sha256": "7557cd1dee6734697a26517d40a6337c2de5bcc470c17fd739c2a496fb018a24",
32
+ "bytes": 30570
32
33
  },
33
34
  {
34
35
  "path": "README.md",
35
- "sha256": "cbbeaaae063cbe821540b73edb1775b545266ebcf9d3acab59d4019734085ad2",
36
- "bytes": 25433
36
+ "sha256": "d70a2957ee9f1dcaa685fba9420ccd12506dc7509b2d96a647937ce535c465a4",
37
+ "bytes": 26510
37
38
  },
38
39
  {
39
40
  "path": "skills/video-assemble/SKILL.md",
40
- "sha256": "0d2225578266896418dbbc30e877c01da293c824a8ba3e500734453ea61143dd",
41
- "bytes": 8875
41
+ "sha256": "db9ba594e52b0e7a8a3daf9a439b6e079621e5bb0bec68818969664b8cff0b1f",
42
+ "bytes": 12210
42
43
  },
43
44
  {
44
45
  "path": "skills/video-assemble/references/audio-modes.md",
@@ -47,13 +48,8 @@
47
48
  },
48
49
  {
49
50
  "path": "skills/video-assemble/references/explicit-audio-mix.md",
50
- "sha256": "06957b2ba1879fd2064efb873d93c5640d86ac9247bf6de72147483f22a5c148",
51
- "bytes": 3756
52
- },
53
- {
54
- "path": "skills/video-assemble/references/foreground-compose.md",
55
- "sha256": "c7112618cd62e43a0a98a4dd31c43a2c5657fec8134c0b70df63be131f32d2fb",
56
- "bytes": 5244
51
+ "sha256": "51bcd4ed3d936e9a1370bfe65ca0ee2a648e24596a0880dcf90b71bd90f7bd26",
52
+ "bytes": 3951
57
53
  },
58
54
  {
59
55
  "path": "skills/video-assemble/references/jianying/LICENSE.duo-video",
@@ -62,29 +58,14 @@
62
58
  },
63
59
  {
64
60
  "path": "skills/video-assemble/references/jianying/SOURCE.md",
65
- "sha256": "8db68179c2f66c1e8b74653f69d26a4389c8b9505892e6eca1b16da60c83f4cc",
66
- "bytes": 728
61
+ "sha256": "726b1e12cbde535571cf0c37bd0a4b5dfe6da951bf2918e2210abcbd11e84c79",
62
+ "bytes": 781
67
63
  },
68
64
  {
69
65
  "path": "skills/video-assemble/references/jianying/empty_draft_meta_info.json",
70
66
  "sha256": "ea2d503b2c6b76a39e8d2ae9ba344608204d18675f88a01cc628898ca15bfbde",
71
67
  "bytes": 1768
72
68
  },
73
- {
74
- "path": "skills/video-assemble/references/jianying/empty_jy_combination_segment.json",
75
- "sha256": "ed5b7847ea168cd91126243307377ac576605b8523a958a4e11dd09053c9527f",
76
- "bytes": 1681
77
- },
78
- {
79
- "path": "skills/video-assemble/references/jianying/empty_jy_combination_video_material.json",
80
- "sha256": "bf005f8ea51d2f0359b8f164147ed9745d5bf93357f33acb958e82a40b1e662c",
81
- "bytes": 2202
82
- },
83
- {
84
- "path": "skills/video-assemble/references/jianying/empty_jy_draft.json",
85
- "sha256": "4061fd9e751ac4800cfe8d84c844077d34e487f14f2c300a31de15be45233f21",
86
- "bytes": 5500
87
- },
88
69
  {
89
70
  "path": "skills/video-assemble/references/jianying/empty_jy_material_video.json",
90
71
  "sha256": "d99fd9767b80cb5403f9801f431e7e2f048440a731c1994677737f2470dcbe99",
@@ -127,13 +108,8 @@
127
108
  },
128
109
  {
129
110
  "path": "skills/video-assemble/references/packaging.md",
130
- "sha256": "a3dd8e54f0e0bc696a3083f40e25875d5eda7695b03128ca4ae5e9a7f71616a0",
131
- "bytes": 2832
132
- },
133
- {
134
- "path": "skills/video-assemble/references/pair-media.md",
135
- "sha256": "797e94f495cddbae2e11e9a6544cd39487110939ca9737147007047d3ba7d7b1",
136
- "bytes": 4151
111
+ "sha256": "f4f8a1e3bec7775d14a976954e5173794e6109ac375fb3e466d8e08b95e55dd5",
112
+ "bytes": 2856
137
113
  },
138
114
  {
139
115
  "path": "skills/video-assemble/references/source-score.md",
@@ -142,8 +118,8 @@
142
118
  },
143
119
  {
144
120
  "path": "skills/video-assemble/references/subtitle-track.md",
145
- "sha256": "e34a687763061ef6b213483692af5b8b56902dfbc4ea3493c83e1af69889d18b",
146
- "bytes": 8730
121
+ "sha256": "f400033a378533db2c5b9b3ad21da159d693e3f7a55cf6de18ff8a41b594387b",
122
+ "bytes": 8659
147
123
  },
148
124
  {
149
125
  "path": "skills/video-assemble/scripts/adoption/__init__.py",
@@ -152,8 +128,13 @@
152
128
  },
153
129
  {
154
130
  "path": "skills/video-assemble/scripts/adoption/audio_mix_binding.py",
155
- "sha256": "0906c5ac568d26fe558b8e59d384f714f61cfd1062b091dbd8f3615df7efb6d7",
156
- "bytes": 13727
131
+ "sha256": "11a0355ebe1eb4cb0dd4e38d91252b6f0e238713f6cda4ee19d816b1c679989d",
132
+ "bytes": 14208
133
+ },
134
+ {
135
+ "path": "skills/video-assemble/scripts/adoption/av_clock.py",
136
+ "sha256": "0201ae5d5847bc0d0fc71d018181ec2f8a3c499233d628f3ee12427bb3daf2b0",
137
+ "bytes": 5933
157
138
  },
158
139
  {
159
140
  "path": "skills/video-assemble/scripts/adoption/frozen_audio.py",
@@ -172,33 +153,33 @@
172
153
  },
173
154
  {
174
155
  "path": "skills/video-assemble/scripts/adoption/strict_publish.py",
175
- "sha256": "0f51790a7a724385e2c8d06aa64a1aee727ad153fb2bae49b97f91d50be5848f",
176
- "bytes": 6144
156
+ "sha256": "05d02ebeb5d1534f92808e402b8522edcf8dcafd956390cfdd424215c1a29ad0",
157
+ "bytes": 6299
177
158
  },
178
159
  {
179
160
  "path": "skills/video-assemble/scripts/artifacts.py",
180
- "sha256": "0f7d502f6637ab58dfbd8496fe7e42784f4b2030ccfc9cce339d6e2998fa7a01",
181
- "bytes": 1399
161
+ "sha256": "9575f28bb7db7b5529f8b2096d4de121e4bd0908270f951bba2b2cea3eb5cb85",
162
+ "bytes": 1177
182
163
  },
183
164
  {
184
165
  "path": "skills/video-assemble/scripts/assemble.py",
185
- "sha256": "3f38bde7943eb1c2779e60ea146dc4a25ec0956b92733f426f674df7dcc3c0c6",
186
- "bytes": 29707
166
+ "sha256": "538168dc274fd475d6efcb3b07c3f6ad1198de6886e0144a65a21b0d46c4dee2",
167
+ "bytes": 36598
187
168
  },
188
169
  {
189
170
  "path": "skills/video-assemble/scripts/assemble_constants.py",
190
- "sha256": "73774582f82f387c40003d9d758e19d5c0070b3a8abee749647685f445971467",
191
- "bytes": 2024
171
+ "sha256": "fa3af12007d44e10db0d6b09a2a04fbb1dd052c6092fc64b4ef5e6c0832d6f17",
172
+ "bytes": 1991
192
173
  },
193
174
  {
194
175
  "path": "skills/video-assemble/scripts/assembly_contract.py",
195
- "sha256": "976acc985f75f644dbf3f5305221d4d7421002c57b1dc9d1a8f150125bedfe72",
196
- "bytes": 13881
176
+ "sha256": "b3dba32123edda81b19779e771bb2b4216cf16120f638b56f096f09091797106",
177
+ "bytes": 12501
197
178
  },
198
179
  {
199
180
  "path": "skills/video-assemble/scripts/assembly_settings.py",
200
- "sha256": "ab052125d1ca695bf7e10d63c1ca6fbf917f41531dfc1a72b153861d98fbac1e",
201
- "bytes": 6710
181
+ "sha256": "16c87eb46dfe8a83c1ec97b9a11e36b1a6d1f5472220115ae1f7bb6f81a49624",
182
+ "bytes": 6228
202
183
  },
203
184
  {
204
185
  "path": "skills/video-assemble/scripts/audio_automation.py",
@@ -207,18 +188,18 @@
207
188
  },
208
189
  {
209
190
  "path": "skills/video-assemble/scripts/audio_mix.py",
210
- "sha256": "4624eb6859cdd306f971fb49898d863aff692ca8b81c76a86ecbd0d8d99e6b57",
211
- "bytes": 18940
191
+ "sha256": "08df7343b75480a6a4f30866324ddbabe85135b0b50165153fd62b77f0018c3d",
192
+ "bytes": 21812
212
193
  },
213
194
  {
214
- "path": "skills/video-assemble/scripts/compose_foreground.py",
215
- "sha256": "49ba6eb4c6cfc179991c55c5a054eb43bc2c47fce31ccd3ea6bdea61d1ec794e",
216
- "bytes": 14431
195
+ "path": "skills/video-assemble/scripts/codec_peak.py",
196
+ "sha256": "fe90cc6c9f87e6974c06453477e07729855a176749488164eb4d72451be8e2d2",
197
+ "bytes": 5199
217
198
  },
218
199
  {
219
200
  "path": "skills/video-assemble/scripts/export_jianying.py",
220
- "sha256": "447fc4bd39f63445cb790430d637554ba643d4716b6a69f5dd3e7b42351b1596",
221
- "bytes": 8684
201
+ "sha256": "6fcffc50ceefd6f6e688fb577d0a0c07ac75908d4ee2ca3c56779655d3a3398f",
202
+ "bytes": 5740
222
203
  },
223
204
  {
224
205
  "path": "skills/video-assemble/scripts/jianying/__init__.py",
@@ -227,13 +208,13 @@
227
208
  },
228
209
  {
229
210
  "path": "skills/video-assemble/scripts/jianying/builders.py",
230
- "sha256": "4c66e77043cfbcb32b46a5345489c6c07425554730845c1271435dcba1c7b2d6",
231
- "bytes": 30773
211
+ "sha256": "efd780d98e2723323af67e7c1c83ca7da9372a38d254e785fc0180bfcb1d7ba9",
212
+ "bytes": 11062
232
213
  },
233
214
  {
234
215
  "path": "skills/video-assemble/scripts/jianying/model.py",
235
- "sha256": "02787ddfbe98132a1e53c2df458a365c29d1cb3d5882362f1ef31cdc9854b3b1",
236
- "bytes": 3432
216
+ "sha256": "d91224b4786e32469d3fda9ab332838eed8256cd78ea1ba4072dc8fa229f74bc",
217
+ "bytes": 2796
237
218
  },
238
219
  {
239
220
  "path": "skills/video-assemble/scripts/jianying/optional.py",
@@ -247,53 +228,53 @@
247
228
  },
248
229
  {
249
230
  "path": "skills/video-assemble/scripts/jianying/templates.py",
250
- "sha256": "5857fc622dbf71ec4ccb1012ddac56f03788e2da9294083ba5e46e3f08c648ad",
251
- "bytes": 1233
231
+ "sha256": "ae410804dd5cf666db89265f3b2dd6ef297ff604037e5eb329b1bf63d81c871c",
232
+ "bytes": 1064
252
233
  },
253
234
  {
254
235
  "path": "skills/video-assemble/scripts/jianying/timeline_contract.py",
255
- "sha256": "c4b2eee6f0cb4a2e9eb6a8c15e258732f8e2f5908c820b2a20b372b9e513d14a",
256
- "bytes": 9634
236
+ "sha256": "7566ec4fd14cd4813bbd2090a78ef4928e6593e7483867debfa212100967c3f2",
237
+ "bytes": 5914
257
238
  },
258
239
  {
259
240
  "path": "skills/video-assemble/scripts/jianying/tracks.py",
260
- "sha256": "9c20912d62b4845ca4b48c4c1c6a71c3899150865b6d7db05f21a34bd976888b",
261
- "bytes": 2666
241
+ "sha256": "cce02c3b15f11e3c6e3c17fa4001f3bfa716dd05943ec874f135a20d609db7e8",
242
+ "bytes": 2068
262
243
  },
263
244
  {
264
245
  "path": "skills/video-assemble/scripts/jianying/writer.py",
265
- "sha256": "24304446d7fe33b30abf2a1d91eaba604a34d1e6da0874e2f5854aae2d0d6e1e",
266
- "bytes": 15245
246
+ "sha256": "3695f0e8621a205f875eda55413b1b189a5b66dd1e9b2ced8360291ae46f7c95",
247
+ "bytes": 7973
267
248
  },
268
249
  {
269
250
  "path": "skills/video-assemble/scripts/lib.py",
270
- "sha256": "e043e844d34a68712c9774a51e29cdd3c5a1a0934422a973f31f0c28a27ae86d",
271
- "bytes": 14370
251
+ "sha256": "04d2f3f66c03d7abf8768a6d337afd40523ac3a6544f54bf679b8f91156e2a6a",
252
+ "bytes": 13254
253
+ },
254
+ {
255
+ "path": "skills/video-assemble/scripts/loudness.py",
256
+ "sha256": "af4d696a32170e32e2e9d87ec5117ae1b14b9777f21923337866121ec6131199",
257
+ "bytes": 15008
272
258
  },
273
259
  {
274
260
  "path": "skills/video-assemble/scripts/media.py",
275
- "sha256": "f0d416bfafd45c1743e7de5dc09f248837776e3b743038ac7be15ab1e51c1d63",
276
- "bytes": 8422
261
+ "sha256": "9981c7efe4205f5a520cb5ae724d85b6038439fba6138530fb1f9466e5f569b1",
262
+ "bytes": 13897
277
263
  },
278
264
  {
279
265
  "path": "skills/video-assemble/scripts/narration_audio.py",
280
- "sha256": "d20d48a37f2a49982e34d2c5ac20ed7581fd7f47ef8a646cbe164a6e746e8582",
281
- "bytes": 19362
266
+ "sha256": "ffe24997f8c498432cc9e9abec8039e91c45504bcd4446747329be5c22613e00",
267
+ "bytes": 20387
282
268
  },
283
269
  {
284
270
  "path": "skills/video-assemble/scripts/packaging.py",
285
271
  "sha256": "f4c59b07dac1b65509ca6c3d1f9d2770798b1b981b8d71be685788fdf2c29ae0",
286
272
  "bytes": 5586
287
273
  },
288
- {
289
- "path": "skills/video-assemble/scripts/pair_media.py",
290
- "sha256": "18be86a9eb1856f7f4ba9e1148ab1113e2fe28d33f6091c8485f42095764cc69",
291
- "bytes": 11113
292
- },
293
274
  {
294
275
  "path": "skills/video-assemble/scripts/render_preflight.py",
295
- "sha256": "62f0e2b2cf37ce7c1e6d5e2142fd198cb358b433339381d9cdfb6ab4e9ac3ce0",
296
- "bytes": 1329
276
+ "sha256": "f4096fdddcfce3f6a48dbb57dded758b4ec8c078d8df595a10b180e4eccf5136",
277
+ "bytes": 3481
297
278
  },
298
279
  {
299
280
  "path": "skills/video-assemble/scripts/source_score.py",
@@ -302,8 +283,8 @@
302
283
  },
303
284
  {
304
285
  "path": "skills/video-assemble/scripts/source_subtitles.py",
305
- "sha256": "5d47a798d7c321d632d070f6346ea3db9bb2a0fae72524234db06d0a2330ed3d",
306
- "bytes": 20485
286
+ "sha256": "a91c1dda332922c9a5b4ce5bc31ee819e208ad5a98c0a6ca8e1b7ba5113ffb87",
287
+ "bytes": 21111
307
288
  },
308
289
  {
309
290
  "path": "skills/video-assemble/scripts/subtitles/__init__.py",
@@ -312,8 +293,8 @@
312
293
  },
313
294
  {
314
295
  "path": "skills/video-assemble/scripts/subtitles/core.py",
315
- "sha256": "2019e96e8c8024fc2eac42a2d84abb709317a1f944e0a6bf553d9c6d33ad14f3",
316
- "bytes": 13938
296
+ "sha256": "a73bcb123a214229b26f2bc56c37a48906fb4f608045f7a898947bc9c3d57bc4",
297
+ "bytes": 15097
317
298
  },
318
299
  {
319
300
  "path": "skills/video-assemble/scripts/subtitles/render.py",
@@ -322,73 +303,78 @@
322
303
  },
323
304
  {
324
305
  "path": "skills/video-assemble/scripts/subtitles/track.py",
325
- "sha256": "11f15d2af362c9f9ab37fdc5e11ccb52200ca82b40cb5b6cb4210bbe316a9129",
326
- "bytes": 12878
306
+ "sha256": "6adb31def99a5cd099f99d25176568d3eb6d2e30af5da3023236e37e731693a2",
307
+ "bytes": 12677
327
308
  },
328
309
  {
329
310
  "path": "skills/video-assemble/scripts/subtitles/track_binding.py",
330
- "sha256": "e04b86fe8d5f15cd2fce33b8aad5be0da5bda7cd6ef0dc712b3963298e635d3e",
331
- "bytes": 10572
311
+ "sha256": "e4fe295da479f6e297474479d961790ce8ba0353c95845d792632ece87bb6e27",
312
+ "bytes": 10175
332
313
  },
333
314
  {
334
315
  "path": "skills/video-assemble/scripts/timeline.py",
335
- "sha256": "e25f5c933809769f3b705bf64f6f1cbc28d9efef34c2d8c4501dc9db8ae304b0",
336
- "bytes": 9466
316
+ "sha256": "e7cbb6f8d180ce35586984c915717dc84fd3265e261bf4a8d5d0571e8af8df56",
317
+ "bytes": 8371
337
318
  },
338
319
  {
339
320
  "path": "skills/video-assemble/scripts/timeline_emit.py",
340
- "sha256": "0b4af848b4774d095bf3556c2781f7673ff5d156f202ce898a59d2e4fea23774",
341
- "bytes": 7854
321
+ "sha256": "78202d95fe8a76b98c6458123a0550b0e624b6211e7733e2adcd462a8919b6e0",
322
+ "bytes": 7774
342
323
  },
343
324
  {
344
325
  "path": "skills/video-assemble/scripts/visual_render.py",
345
- "sha256": "6310e6eac017578fe945bffcdb221ef1f58246e66b0adfacf7bf10497adaad65",
346
- "bytes": 17225
326
+ "sha256": "75b3ef05e9e8e633f8b73cb997daede7d1326332176af0b1e7b5d9adfb253831",
327
+ "bytes": 18372
347
328
  },
348
329
  {
349
330
  "path": "skills/video-cut/SKILL.md",
350
- "sha256": "9a403ef16ed16d961f161d828ad9e601f8c3a85b9982e7fd756b76386fff021e",
351
- "bytes": 7281
331
+ "sha256": "d4068e941c98bd773c6000cbafe1f593ada4ac7914ada378b1db5a301879c6b4",
332
+ "bytes": 11756
352
333
  },
353
334
  {
354
335
  "path": "skills/video-cut/references/shot-review.md",
355
- "sha256": "188699940f614a6876b4018990e74e117165e5b462a28db949814ca2137839b7",
356
- "bytes": 5549
336
+ "sha256": "3be8547c064a44f2d03d8cf83b1edcc6cf7c72c0916e794a942bb8476accb790",
337
+ "bytes": 5537
357
338
  },
358
339
  {
359
340
  "path": "skills/video-cut/scripts/cut.py",
360
- "sha256": "a1c3228d71ec25115f8e57f02b0b94e7c9d36fb91bc08844bce9b71eb4f4fe67",
361
- "bytes": 1131
341
+ "sha256": "a39c9964c5c316fd3403474a661d271e99d977b54cc6eeeadeaeaf15a1c0af45",
342
+ "bytes": 169
362
343
  },
363
344
  {
364
345
  "path": "skills/video-cut/scripts/cut_cli.py",
365
- "sha256": "16b6b47247196f5dcd0704fe1eaba011980189e2b4f9a7252c2724350d4f0b42",
366
- "bytes": 12385
346
+ "sha256": "f5c54890e694923558a81d7f525f6e5591ff5341e4c6e672ee0bb6b247af185c",
347
+ "bytes": 11648
367
348
  },
368
349
  {
369
350
  "path": "skills/video-cut/scripts/cut_contract.py",
370
- "sha256": "8bd575ac319e97551ef44bdd8fa0feb369e92cbe1ae27cef647d25dc94eb052b",
371
- "bytes": 16364
351
+ "sha256": "be8866c64524eff70edd97ec3890dff6949e03ceb6c71c991866df5849335b65",
352
+ "bytes": 12842
353
+ },
354
+ {
355
+ "path": "skills/video-cut/scripts/cut_qc.py",
356
+ "sha256": "b1a95b0ac1cac78137a4c3f1a5ab9255f3b8ad6ed4d3ccaada103aa8a6454495",
357
+ "bytes": 2674
372
358
  },
373
359
  {
374
360
  "path": "skills/video-cut/scripts/cut_render.py",
375
- "sha256": "b979e9d1c67102f29cd98c1f34e861ca995bc337304592cb3ab21e67825d50c4",
376
- "bytes": 11249
361
+ "sha256": "6d1e94237668f39bcb37fe0c771a2da7d1a3cd6c20ccd9b6355fe821bb480a9d",
362
+ "bytes": 13582
377
363
  },
378
364
  {
379
- "path": "skills/video-cut/scripts/lib.py",
380
- "sha256": "6b5f2a63869d61d5b60ed2860cdc36ac03e2fe8ec0f0acbceff3923af46f8c9c",
381
- "bytes": 4796
365
+ "path": "skills/video-cut/scripts/frame_grid.py",
366
+ "sha256": "ae956b6f17d534569d261f3b4aa4a839b402b32a9cc086597740701988f3a345",
367
+ "bytes": 10854
382
368
  },
383
369
  {
384
- "path": "skills/video-cut/scripts/media_geometry.py",
385
- "sha256": "99577428a0f442ee5656cefdb8fca27609f4be90215340b4b42ca3f51bc3121d",
386
- "bytes": 8555
370
+ "path": "skills/video-cut/scripts/lib.py",
371
+ "sha256": "3f8511b710272473da7b36e6505da857f29b815f9a1aabe616b58610a05b9b55",
372
+ "bytes": 4556
387
373
  },
388
374
  {
389
- "path": "skills/video-cut/scripts/narration_mapping.py",
390
- "sha256": "b1a95b0ac1cac78137a4c3f1a5ab9255f3b8ad6ed4d3ccaada103aa8a6454495",
391
- "bytes": 2674
375
+ "path": "skills/video-cut/scripts/media_geometry.py",
376
+ "sha256": "044c5d33fe03877ccff909296fa182bd117b06ee3ee7c75201f059e31d49d819",
377
+ "bytes": 16360
392
378
  },
393
379
  {
394
380
  "path": "skills/video-cut/scripts/narrative_selection.py",
@@ -397,178 +383,173 @@
397
383
  },
398
384
  {
399
385
  "path": "skills/video-cut/scripts/sentence_boundaries.py",
400
- "sha256": "9ba7f55ce51b2b86d885532b6800f42052ce7911d2816b4068eae7ccf2ae6962",
401
- "bytes": 22883
386
+ "sha256": "e3725e0c491710d15e39655c1eca85e7fcab1dbf4360f65ce0f422c89e83853c",
387
+ "bytes": 27827
388
+ },
389
+ {
390
+ "path": "skills/video-cut/scripts/sentence_gate.py",
391
+ "sha256": "be2f086c9abb86eed1a78087b5e33caf0c6f80d40f96cfdd43983212759abe3e",
392
+ "bytes": 8766
402
393
  },
403
394
  {
404
395
  "path": "skills/video-cut/scripts/shot_review.py",
405
- "sha256": "0b341a1050bbfcf5484db633349542521ecc3823a36454cf93815b218727b0b7",
406
- "bytes": 17440
396
+ "sha256": "fd6bf41449ea41cc966f618836785e59d30497a286eb09db720620d863303850",
397
+ "bytes": 17087
407
398
  },
408
399
  {
409
400
  "path": "skills/video-recap/SKILL.md",
410
- "sha256": "021dc178c4ba55e3b1f546430481658a7240e36802a7feecf2411f93a92b1fba",
411
- "bytes": 15438
401
+ "sha256": "940ba0b6621d59f1fe30f7e598a80f96acfb700628bbdd86d852f98b32c5c38b",
402
+ "bytes": 16498
412
403
  },
413
404
  {
414
405
  "path": "skills/video-recap/references/audio-routing.md",
415
- "sha256": "5613ec941acec2e36ed9557839340bc0427834a16d39cc03cde1706ac03557fc",
416
- "bytes": 7139
406
+ "sha256": "31d245880c19b86f795ee8a6265cb681198938cf95e5d5876443a21810b6ceee",
407
+ "bytes": 7361
417
408
  },
418
409
  {
419
410
  "path": "skills/video-recap/references/config-playbook.md",
420
- "sha256": "649eecc1de73b3eb3137c945ad3a0ac0aee1ad7c5c3d40924f37100fe445b288",
421
- "bytes": 11916
411
+ "sha256": "45a1cbdff2c66fb0a083341355f3e051f8bb2a50a9943b1a29ba329421b1a68e",
412
+ "bytes": 12839
422
413
  },
423
414
  {
424
415
  "path": "skills/video-recap/references/data-schema.md",
425
- "sha256": "916973e83f24c6e1b90a55a6a115ca3b3ad1ce9fee47a1f480d0ded1876b63c1",
426
- "bytes": 28353
416
+ "sha256": "d9992b03e036d8c53f73c24232eac7249b3ebc1931ca012286adf085d7746a91",
417
+ "bytes": 36030
427
418
  },
428
419
  {
429
420
  "path": "skills/video-recap/references/resource-library.md",
430
- "sha256": "1d29835427b82352c7a404c78e20b42977b8d1700e677e8e6aec33fb4ff419d9",
431
- "bytes": 8460
432
- },
433
- {
434
- "path": "skills/video-recap/references/shift-left-qc-schema.md",
435
- "sha256": "3e2628f803fda686611dfdbcdd018799155f2a9d7833d934e20a872cb641eae3",
436
- "bytes": 2288
421
+ "sha256": "ae7b2646415d3d9eee1d492d3f21eccb736b44ba32e4384761e76735a0d91bcf",
422
+ "bytes": 10117
437
423
  },
438
424
  {
439
425
  "path": "skills/video-recap/scripts/doctor.py",
440
- "sha256": "50a12a5526dc9d5c025f838ea0d03b86a7bacec5e59147670b4b199a86716ddb",
441
- "bytes": 20852
426
+ "sha256": "a87681017232691edb1745bdfd0f1bee2af313dbbfdb1e5cb93f087734c0783c",
427
+ "bytes": 13727
442
428
  },
443
429
  {
444
430
  "path": "skills/video-recap/scripts/final_qc.py",
445
- "sha256": "e4ed593259cc2190ec7d6fdf097e5f08eb0a864a83ed0746827dce145048823d",
446
- "bytes": 23040
431
+ "sha256": "37307ad67d49b3e73f6ef53fca767ec563ae3da4e72764973a21d65919e89edf",
432
+ "bytes": 15918
447
433
  },
448
434
  {
449
435
  "path": "skills/video-recap/scripts/lib.py",
450
- "sha256": "e5de141a2fb548824f43f56e1974d6d06559f06d35ebee60f062e5323e8dfc50",
451
- "bytes": 10070
436
+ "sha256": "0cb43d673f0e7ba3c8b060478c261107c7cf60834c334bbd78f6aa48def29bb6",
437
+ "bytes": 10357
452
438
  },
453
439
  {
454
440
  "path": "skills/video-recap/scripts/library.py",
455
- "sha256": "739fa6f16a376e5430a9fc9c21bcb03940f29f644fe04b0ea448f390c81db757",
456
- "bytes": 25314
441
+ "sha256": "1cc4ded70b32a9235218b41ed2a71bb7f22e707b8d866136d006928a86e43c13",
442
+ "bytes": 27579
457
443
  },
458
444
  {
459
445
  "path": "skills/video-recap/scripts/materials.py",
460
- "sha256": "49f66b14b8ee617e2e7f9e9d93382b4180244f6799f479584022078742004228",
461
- "bytes": 16415
446
+ "sha256": "fedb4a1d6fb72f915e44f84fbe03032d66b530e4bf96065919039488ae9a1717",
447
+ "bytes": 14006
462
448
  },
463
449
  {
464
- "path": "skills/video-recap/scripts/mimo_qc.py",
465
- "sha256": "3dcfe28a9d4dc5235e4924c73b23d2a99bf401bac8d44e29d0e4c20d2c4e53b0",
466
- "bytes": 885
467
- },
468
- {
469
- "path": "skills/video-recap/scripts/project_binding.py",
470
- "sha256": "678f1ad5a7f14b72a037c316f5313af44760d9698522d0656ffba35118d153d1",
471
- "bytes": 12121
450
+ "path": "skills/video-recap/scripts/recap.py",
451
+ "sha256": "873a1f849fb25b2c192cf5e57b6ca82a339c3045ca90f18dfded49fe3f34a222",
452
+ "bytes": 183
472
453
  },
473
454
  {
474
- "path": "skills/video-recap/scripts/qc/__init__.py",
475
- "sha256": "df3276d8bc4e83f0dd2be8bbca7ec976dc67b7ad5a7f3312c8d0974972f58ff2",
476
- "bytes": 26
455
+ "path": "skills/video-recap/scripts/recap_cli.py",
456
+ "sha256": "45058a6ea3cb147b79e3765d2314e184c0732acf9e08760d0bbac1aaa36c21d9",
457
+ "bytes": 8819
477
458
  },
478
459
  {
479
- "path": "skills/video-recap/scripts/qc/mimo_client.py",
480
- "sha256": "47010cda466f92600c5744d72e7f716cb3c6542bd8e3ae70d6f6f10fcf412bb7",
481
- "bytes": 410
460
+ "path": "skills/video-recap/scripts/recap_inspect.py",
461
+ "sha256": "37d65ebb8bb8d00f4f946a54a9b871913eb5fe889b65e9f8e76365fc8772d464",
462
+ "bytes": 18630
482
463
  },
483
464
  {
484
- "path": "skills/video-recap/scripts/qc/mimo_contract.py",
485
- "sha256": "e51d30a11798d056ebfadfd1fa21142fea82bc69a07d611670b0dab394cca6fc",
486
- "bytes": 239
465
+ "path": "skills/video-recap/scripts/recap_review.py",
466
+ "sha256": "4aeb13286d6f7f31fb8b43ab3e60a2f7cbad1b8926cb35213362b3b5b93e746f",
467
+ "bytes": 2894
487
468
  },
488
469
  {
489
- "path": "skills/video-recap/scripts/qc/mimo_evidence.py",
490
- "sha256": "d2cba1f68f4f43f7314f48a4e44bcef501668cf9ea58fee6b34cadacc15fdf03",
491
- "bytes": 9696
470
+ "path": "skills/video-recap/scripts/recap_runner.py",
471
+ "sha256": "4643ddc62689940cf5ffff76f8f862bab10cb79a52ad392364d33172685f2ebc",
472
+ "bytes": 28261
492
473
  },
493
474
  {
494
- "path": "skills/video-recap/scripts/qc/mimo_observations.py",
495
- "sha256": "4c2cfbf621c85d1943d7a47adeeb3ea1c939b60762e160b74f78597a8f35ec51",
496
- "bytes": 6425
475
+ "path": "skills/video-recap/scripts/recap_runtime.py",
476
+ "sha256": "8fda24ba11c2f84617c41950f6482f07f941d9542355be399ee0ef30706ab19f",
477
+ "bytes": 12639
497
478
  },
498
479
  {
499
- "path": "skills/video-recap/scripts/qc/mimo_payload.py",
500
- "sha256": "fffaefe42ff475c2e836ff4abadcce5d2b77b14869a73d4f4716404622f4b567",
501
- "bytes": 10673
480
+ "path": "skills/video-recap/scripts/recap_source.py",
481
+ "sha256": "1d010f8d8096382ac5f6d958e237d9733919ce4b94b1e4690a6464bef06eed7b",
482
+ "bytes": 9263
502
483
  },
503
484
  {
504
- "path": "skills/video-recap/scripts/qc/mimo_report.py",
505
- "sha256": "a13f93981ab55710b169554122e129902e1ba1a6c1655ec72b05bb2e90a02234",
506
- "bytes": 10588
485
+ "path": "skills/video-recap/scripts/recap_stage_qc.py",
486
+ "sha256": "e87891501a02ec8499720b528bf6594b3683e3285c5916ca0f15c92d2465cd04",
487
+ "bytes": 2828
507
488
  },
508
489
  {
509
- "path": "skills/video-recap/scripts/qc/mimo_runner.py",
510
- "sha256": "a14d14c657e8fff13af672e953f5b6ca558738cbd9050e11e885929c15f3d3a8",
511
- "bytes": 3823
490
+ "path": "skills/video-recap/scripts/recap_timeline.py",
491
+ "sha256": "bdc4f761ea843ccbed7603c4e4624eb60d76724e548bde6849575dc96b8f9562",
492
+ "bytes": 29321
512
493
  },
513
494
  {
514
- "path": "skills/video-recap/scripts/qc_contract.py",
515
- "sha256": "a105e3b6f12debd9de3e50d1bc39a3d0520b7397ac7d659b60ded9b8f078f6a9",
516
- "bytes": 11990
495
+ "path": "skills/video-recap/scripts/resources/__init__.py",
496
+ "sha256": "8483515392cb7bf558b9b95e3eced6d33399caa6e9c568bf459af74f1861d435",
497
+ "bytes": 200
517
498
  },
518
499
  {
519
- "path": "skills/video-recap/scripts/recap.py",
520
- "sha256": "873a1f849fb25b2c192cf5e57b6ca82a339c3045ca90f18dfded49fe3f34a222",
521
- "bytes": 183
500
+ "path": "skills/video-recap/scripts/resources/lock.py",
501
+ "sha256": "297c23305a2f809b47bdc983f687084d4808f9f59a7476429968287528a273f0",
502
+ "bytes": 7157
522
503
  },
523
504
  {
524
- "path": "skills/video-recap/scripts/recap_cli.py",
525
- "sha256": "ba6161ebb0ec30b1e228b2155535fdd66cfdd9bc4b9e7785c9fe63a3d498e16d",
526
- "bytes": 7602
505
+ "path": "skills/video-recap/scripts/resources/project_binding.py",
506
+ "sha256": "21c75023e4841b123f676f7fb22ac2be3f880dd6c8fe074c7316bb3eb29ca22f",
507
+ "bytes": 15025
527
508
  },
528
509
  {
529
- "path": "skills/video-recap/scripts/recap_inspect.py",
530
- "sha256": "37a5b9a9f74be9af478329cc2e453527dc45a685264819ee74cfeb2cb8c8bbee",
531
- "bytes": 18688
510
+ "path": "skills/video-reference/SKILL.md",
511
+ "sha256": "88940900b89b705883aca00598719e89516b5941a4623f0f9de5eb21d0fb3cb9",
512
+ "bytes": 9699
532
513
  },
533
514
  {
534
- "path": "skills/video-recap/scripts/recap_review.py",
535
- "sha256": "4aeb13286d6f7f31fb8b43ab3e60a2f7cbad1b8926cb35213362b3b5b93e746f",
536
- "bytes": 2894
515
+ "path": "skills/video-reference/references/reference-schema.md",
516
+ "sha256": "844be9370c1e03d90da51719e9e9375ddc72cec0b3906668c10682404757486f",
517
+ "bytes": 9279
537
518
  },
538
519
  {
539
- "path": "skills/video-recap/scripts/recap_runner.py",
540
- "sha256": "7a5baa9ebefce4369f21154ef418fe6bdbbf5d9ebbbf215456a167e47d61e0dd",
541
- "bytes": 28650
520
+ "path": "skills/video-reference/scripts/lib.py",
521
+ "sha256": "4076b47f1feb01571b45bebc17f0ada297bf69cf62ce4c8be0ce287d7647f83d",
522
+ "bytes": 3049
542
523
  },
543
524
  {
544
- "path": "skills/video-recap/scripts/recap_runtime.py",
545
- "sha256": "0c5f4d2baa72b57c4f629c3f0426d4c814c53f1cb92bd963443216f7dfc7b7d0",
546
- "bytes": 9557
525
+ "path": "skills/video-reference/scripts/reference.py",
526
+ "sha256": "34e945034d64c619b356d2d29a03a876718f86fc3b79d20fe4d79f03f671d0e4",
527
+ "bytes": 5286
547
528
  },
548
529
  {
549
- "path": "skills/video-recap/scripts/recap_source.py",
550
- "sha256": "401eb5b81b66bfe9081c082000ad40e65831261b49e6a9ed6137446a41d17673",
551
- "bytes": 10645
530
+ "path": "skills/video-reference/scripts/reference_check.py",
531
+ "sha256": "5e10d2cebb6bbd0a91b53f3ca84d6a146d044f2e386c017d92d1e8b7bcc877b7",
532
+ "bytes": 29054
552
533
  },
553
534
  {
554
- "path": "skills/video-recap/scripts/recap_stage_qc.py",
555
- "sha256": "f7f31e92aa234a7f837abf5c02ed2c4fb472053b1771b843f1b1d174e95e22f9",
556
- "bytes": 5793
535
+ "path": "skills/video-reference/scripts/reference_frames.py",
536
+ "sha256": "f7e56cb7750f7355ee2740de8342dd529d3d989033c349a8349a77d48a2014ac",
537
+ "bytes": 5715
557
538
  },
558
539
  {
559
- "path": "skills/video-recap/scripts/recap_timeline.py",
560
- "sha256": "205f0c89969365daecd0d8183b1ebc83dbd85cd83550310c7a76b126f01654b8",
561
- "bytes": 28631
540
+ "path": "skills/video-reference/scripts/reference_measure.py",
541
+ "sha256": "a3be2371905f3bbe0d1f7f82916db15a256bb0b26f9e93a1c2fdd3f21c28e3b1",
542
+ "bytes": 12090
562
543
  },
563
544
  {
564
- "path": "skills/video-recap/scripts/resource_lock.py",
565
- "sha256": "6ea34ef4a4befdf6749c99d7042e77d701d30833c5143585021ae0f92bb99942",
566
- "bytes": 7163
545
+ "path": "skills/video-reference/scripts/reference_profile.py",
546
+ "sha256": "7755b9a81fba9f03575210c48be8c842f2c84e0686c2cf591a371c50e86b534a",
547
+ "bytes": 11485
567
548
  },
568
549
  {
569
550
  "path": "skills/video-script/SKILL.md",
570
- "sha256": "bec6a27c499bb342779c5e2115cf57440c4ebc454e18806a628396ac747ab253",
571
- "bytes": 13634
551
+ "sha256": "387b8e7f57c11938c934d736ed5df564871b8f654a7d421dc2aeef73537dc3c9",
552
+ "bytes": 15352
572
553
  },
573
554
  {
574
555
  "path": "skills/video-script/references/creative-editing-playbook.md",
@@ -587,73 +568,78 @@
587
568
  },
588
569
  {
589
570
  "path": "skills/video-script/scripts/agent_text.py",
590
- "sha256": "49880a67bde8ae872743b604435222e766db81147e9bd64f2435a510c4622341",
591
- "bytes": 11084
571
+ "sha256": "15af0f4f252024f19f6c10af5f56053b825f7d5fe01aa3335f959514ddb785ad",
572
+ "bytes": 2010
592
573
  },
593
574
  {
594
575
  "path": "skills/video-script/scripts/deslop_qc.py",
595
- "sha256": "72ae5740191740f44c1801d8e377a4df962d43e8e126c6e705cca05e06e5c5ce",
596
- "bytes": 10332
576
+ "sha256": "bc9f854f7de5c344ba35c273ae2db301ef0c4beda47c2fe8449d839da48d9d2b",
577
+ "bytes": 9527
578
+ },
579
+ {
580
+ "path": "skills/video-script/scripts/entry_suggestion.py",
581
+ "sha256": "b9574856d2d76edc24c0a2a2e164eeef735375a69ab6401e835da05670a28dbd",
582
+ "bytes": 5015
597
583
  },
598
584
  {
599
585
  "path": "skills/video-script/scripts/evidence_bundle.py",
600
- "sha256": "c6357f68a142df77325b60cf0250101740de1bc9887d7199fca22b6723699ba8",
601
- "bytes": 14769
586
+ "sha256": "1d3f51ad5024927708b1b8e08c7694413e5857335854d112b3fd5b096f19a116",
587
+ "bytes": 13759
602
588
  },
603
589
  {
604
590
  "path": "skills/video-script/scripts/lib.py",
605
- "sha256": "f53ef1ac0a1ce83d1f6c11b72674116b6d543b761de27fdf2c978bb4cb9057a8",
606
- "bytes": 12853
591
+ "sha256": "427cc6974ad67fdbdfbaabbe95742ac06368db270d5aff6fc1d21cc12d5afa38",
592
+ "bytes": 12063
593
+ },
594
+ {
595
+ "path": "skills/video-script/scripts/lint_summary.py",
596
+ "sha256": "f06dd5e0fb3d786813d316fe9ae90ee04c640b0c991324f2a4b2a62e3fc22a98",
597
+ "bytes": 8331
607
598
  },
608
599
  {
609
600
  "path": "skills/video-script/scripts/narration_lint.py",
610
- "sha256": "2df85ede64f78bdbcafc4887162c4d7f3327d106a2aeb62f5fde1149764944e3",
611
- "bytes": 28869
601
+ "sha256": "9d5cf9c4fccc6e208ce5d769c2d098196ee4bd2b1831f5fc1b4eeb4208a574a8",
602
+ "bytes": 30199
612
603
  },
613
604
  {
614
605
  "path": "skills/video-script/scripts/review.py",
615
- "sha256": "50b65f01cd354cc8e9dcc08cd0c5c73d9b06630512b253f945b98dc4a73ed7ae",
616
- "bytes": 1007
606
+ "sha256": "27b8ab2262dc8db5a33a351a18f50372f5a53b9ec9bd05b10c6a33d06faeea41",
607
+ "bytes": 157
617
608
  },
618
609
  {
619
610
  "path": "skills/video-script/scripts/review_grounding.py",
620
- "sha256": "3d1b21ec6a64da90d1dd317d954bcb9a8a8cbc79243dd0a6c820679f3f6eccc5",
621
- "bytes": 9245
611
+ "sha256": "1ee9b37d0bb140c42c00fe2649a152fb8ae030a2e59fc4d231bf5f2e801e6f8e",
612
+ "bytes": 8349
622
613
  },
623
614
  {
624
615
  "path": "skills/video-script/scripts/review_response.py",
625
- "sha256": "825332ce92b00eac46676d774562cefcbbbf5031db5ebcae48ec8ab523a30857",
626
- "bytes": 31624
616
+ "sha256": "11917df6249e2a1bdb4096ecf43da38ba39f34ff2fa91caadd802d86e7c91163",
617
+ "bytes": 25350
627
618
  },
628
619
  {
629
620
  "path": "skills/video-script/scripts/review_runner.py",
630
- "sha256": "02fb26fd14fe6a35b9024bb040464d27345e6905c9a54c67b3ee00fd7a984c51",
631
- "bytes": 6869
621
+ "sha256": "da3c0b402bd11df72fad80a8a4f266e329a5b2c807f97ff53d92b67a7df4712b",
622
+ "bytes": 6667
632
623
  },
633
624
  {
634
625
  "path": "skills/video-script/scripts/speech_ownership.py",
635
- "sha256": "3816fdf7e2817c7ddc958025337c387e02bee571c3bbc1e72187ccd7c0c90e51",
636
- "bytes": 5009
637
- },
638
- {
639
- "path": "skills/video-script/scripts/timeline_fusion.py",
640
- "sha256": "148455bc8f500c353c7c9fa097c02463042d9f78046f25f31023c6138f61242c",
641
- "bytes": 4265
626
+ "sha256": "daa87eeb96db2263810c98b8bc89337f0963a06215746bb88fc959e1a94c8ce1",
627
+ "bytes": 8897
642
628
  },
643
629
  {
644
630
  "path": "skills/video-script/scripts/validate.py",
645
- "sha256": "ee8ba36179192af23f499663697d4d25c6f6edf0d9faf68c3ecebac9920d0885",
646
- "bytes": 6682
631
+ "sha256": "3996dd45c0c0eca9dff10940e17edad913db9a5cd9959520dece4d2325cfaf67",
632
+ "bytes": 6431
647
633
  },
648
634
  {
649
635
  "path": "skills/video-understanding/SKILL.md",
650
- "sha256": "3cd5bc643ea2f427c96e3c37d9cf3ea67606f653f07ba64c3a1f57c186bfbec9",
651
- "bytes": 4128
636
+ "sha256": "e62600a4194f720a80075dcdb13e65fe7afcbbefba39e8f018de840e871d3ef6",
637
+ "bytes": 7191
652
638
  },
653
639
  {
654
640
  "path": "skills/video-understanding/references/data-schema.md",
655
- "sha256": "479a5475e4bb964243d9c60273f21a1e1ab781fa6a51967e005296b75835fc89",
656
- "bytes": 6925
641
+ "sha256": "6f0ac8486933a1bab344dd230830971fe5ab6ed3e1f5711068554f28825c3b1a",
642
+ "bytes": 6212
657
643
  },
658
644
  {
659
645
  "path": "skills/video-understanding/references/prompt-templates.md",
@@ -667,23 +653,18 @@
667
653
  },
668
654
  {
669
655
  "path": "skills/video-understanding/scripts/agent_text.py",
670
- "sha256": "49880a67bde8ae872743b604435222e766db81147e9bd64f2435a510c4622341",
671
- "bytes": 11084
656
+ "sha256": "f882aac588bdf4a9167ee4a2f7322238cad65cf99ec9668470142e20ff3b6627",
657
+ "bytes": 7379
672
658
  },
673
659
  {
674
660
  "path": "skills/video-understanding/scripts/asr.py",
675
- "sha256": "c75749ee562ae1bfc3cba9dbad3067c55e8ba591346df848bf313b1e07eac9b7",
676
- "bytes": 11124
661
+ "sha256": "60d9df6732f607c4ee5998525b0775f31b48a7ecd0279de12ea4aef95aed02f7",
662
+ "bytes": 11581
677
663
  },
678
664
  {
679
665
  "path": "skills/video-understanding/scripts/asr_timing_evidence.py",
680
- "sha256": "f2787d1465ae0ac5020c213b44847d078cba431582d481b133c61795defdae1e",
681
- "bytes": 10508
682
- },
683
- {
684
- "path": "skills/video-understanding/scripts/brief.py",
685
- "sha256": "15c070ebcdf4d2a2010c586243c35af951136ac068ec41af7ae2be8f29652a12",
686
- "bytes": 250
666
+ "sha256": "01bff1616596a7bc5411fd0cbbe9c6fe06d904ef7b942618bc096d0e379a68fb",
667
+ "bytes": 9958
687
668
  },
688
669
  {
689
670
  "path": "skills/video-understanding/scripts/briefing/__init__.py",
@@ -692,38 +673,33 @@
692
673
  },
693
674
  {
694
675
  "path": "skills/video-understanding/scripts/briefing/builder.py",
695
- "sha256": "15bc4c392a0bbaea56b451afe2dd7af2667e4f42a65fc64927ec25906d836b3b",
696
- "bytes": 27097
676
+ "sha256": "c30cb1772e5f71edb95f0c2a9b139299746ad7e98d1f6b6cc59dfac342e3fd75",
677
+ "bytes": 28763
697
678
  },
698
679
  {
699
680
  "path": "skills/video-understanding/scripts/briefing/context.py",
700
- "sha256": "977a7c906f7bbaed4cc50ab077b7728d29af99faf532fb741aa1de6d9a39517d",
701
- "bytes": 11882
681
+ "sha256": "69f6ec3685d2560098d5695b717540d2743f8a4b28baa1b8ba38cbae98fcf661",
682
+ "bytes": 13844
702
683
  },
703
684
  {
704
685
  "path": "skills/video-understanding/scripts/briefing/inputs.py",
705
- "sha256": "3f7cff1180414f3aabe7f9a9f2577a3fec7cc71b3aed32f2c1e74c8789f5ea42",
706
- "bytes": 9375
686
+ "sha256": "8923867d4743d21ed29a9bac1a672dcba5d8fe94ea9a48160baa32dad84fd374",
687
+ "bytes": 9105
707
688
  },
708
689
  {
709
690
  "path": "skills/video-understanding/scripts/briefing/timeline.py",
710
- "sha256": "f8f7d82398114644a8f6b0627c6db7622ac3c9c8249444c8ffb32a4849c2a99c",
711
- "bytes": 13737
691
+ "sha256": "08a60e88380207072da56830715120d3ca1d429cf8b574b304cf2d0c1c2fc541",
692
+ "bytes": 18812
712
693
  },
713
694
  {
714
695
  "path": "skills/video-understanding/scripts/consolidate.py",
715
- "sha256": "e748c207c19076c3e514a8e009f669a9174d9da1695b4c24b81ad826278c6eb1",
716
- "bytes": 23213
717
- },
718
- {
719
- "path": "skills/video-understanding/scripts/deslop_qc.py",
720
- "sha256": "72ae5740191740f44c1801d8e377a4df962d43e8e126c6e705cca05e06e5c5ce",
721
- "bytes": 10332
696
+ "sha256": "72740b5ca7052ebdb6969417411410fc2b571e407af2f384c0e0e0319ffcfba3",
697
+ "bytes": 27417
722
698
  },
723
699
  {
724
700
  "path": "skills/video-understanding/scripts/detect.py",
725
- "sha256": "60dd6217e2822459345392b489a79d91a33949eb2396cbaea5f7c9e49c8b474f",
726
- "bytes": 21490
701
+ "sha256": "66f54e44ab43e709c3b092d54d2da01a3a841992a3cdb0106c71ee41e545f13a",
702
+ "bytes": 25952
727
703
  },
728
704
  {
729
705
  "path": "skills/video-understanding/scripts/extract.py",
@@ -731,29 +707,24 @@
731
707
  "bytes": 2559
732
708
  },
733
709
  {
734
- "path": "skills/video-understanding/scripts/lib.py",
735
- "sha256": "8cbc1b9800683371fe569a3e967c623f74a4b39f292dd7737354c4892e7effd4",
736
- "bytes": 22160
710
+ "path": "skills/video-understanding/scripts/index_normalize.py",
711
+ "sha256": "7b9d269d6a6db1bb8fa536b05af934c0317a7a0a7d36359ea22f67131d6de8be",
712
+ "bytes": 14305
737
713
  },
738
714
  {
739
- "path": "skills/video-understanding/scripts/narration_lint.py",
740
- "sha256": "2df85ede64f78bdbcafc4887162c4d7f3327d106a2aeb62f5fde1149764944e3",
741
- "bytes": 28869
742
- },
743
- {
744
- "path": "skills/video-understanding/scripts/speech_ownership.py",
745
- "sha256": "3816fdf7e2817c7ddc958025337c387e02bee571c3bbc1e72187ccd7c0c90e51",
746
- "bytes": 5009
715
+ "path": "skills/video-understanding/scripts/lib.py",
716
+ "sha256": "e3c589fe1d691ab32524bb348487da632e6214a66070a3c4d562df00a334d3c7",
717
+ "bytes": 23644
747
718
  },
748
719
  {
749
720
  "path": "skills/video-understanding/scripts/storyboard.py",
750
- "sha256": "632c9f75d49034ae3c75e86dc0db0ab7007ee0a9af1188f2cf8cea59c74939f5",
751
- "bytes": 18908
721
+ "sha256": "98400e66f42ce1d74f3bd12cb36d5a489f49dd47385051494110d74b106b9247",
722
+ "bytes": 24654
752
723
  },
753
724
  {
754
725
  "path": "skills/video-understanding/scripts/timeline_fusion.py",
755
- "sha256": "148455bc8f500c353c7c9fa097c02463042d9f78046f25f31023c6138f61242c",
756
- "bytes": 4265
726
+ "sha256": "da643a5ae2f29dc3c24a04c936b3a17d0e6f19cab03edf48ae9b1d886c2b3f70",
727
+ "bytes": 3102
757
728
  },
758
729
  {
759
730
  "path": "skills/video-understanding/scripts/understand.py",
@@ -762,53 +733,53 @@
762
733
  },
763
734
  {
764
735
  "path": "skills/video-understanding/scripts/understanding_brief.py",
765
- "sha256": "73ee674ebfed90bb5dff42786aa57d6993d8a8a29851d424ba6c219c5f677193",
766
- "bytes": 7554
736
+ "sha256": "a3141e489437f258e26b9d77a1950ce10b4205367db5e3fe1e281928e76de013",
737
+ "bytes": 8770
767
738
  },
768
739
  {
769
740
  "path": "skills/video-understanding/scripts/understanding_cache.py",
770
- "sha256": "ebd1c7a66838b673eb9fddcfb9f63a18925dfdc02697dc55bdf5d0692795e83c",
771
- "bytes": 12322
741
+ "sha256": "4fd7b5a6e203ae03f7cdbe309d5fb5af6b3fef918f2e536304e27d9489affb27",
742
+ "bytes": 12607
772
743
  },
773
744
  {
774
745
  "path": "skills/video-understanding/scripts/understanding_runner.py",
775
- "sha256": "8d13ba78d93ce7f22803a0ff02ddd535d777413a8279cd5b754329d477ec03ce",
776
- "bytes": 15080
746
+ "sha256": "6e02893b52e27a416b1a698d08a54698c82111c44b7dcf8759ebebedecca6e68",
747
+ "bytes": 14528
777
748
  },
778
749
  {
779
750
  "path": "skills/video-understanding/scripts/understanding_storyboard.py",
780
- "sha256": "9ab94c02141a8d1fc9f9cb2db5f0d16b08d2ead1d1202fcd2c20e2feab26271e",
781
- "bytes": 6940
751
+ "sha256": "30ee2e72585de8f5b04d3f7ed4af6bda9376dd2e15d01c89bdacf990118015ce",
752
+ "bytes": 13614
782
753
  },
783
754
  {
784
755
  "path": "skills/video-understanding/scripts/vlm.py",
785
- "sha256": "e5345bd144d4e56b6af320b562fe22c73fca894bd248624845576c656e70ebab",
786
- "bytes": 28797
756
+ "sha256": "80552042a32b36ebf1053e08bcd4273d16ae51c0f79bf1096472593d135da959",
757
+ "bytes": 29109
787
758
  },
788
759
  {
789
760
  "path": "skills/video-voiceover/SKILL.md",
790
- "sha256": "c7a716b0ef9bcb30f5411cb3eb07ea8c4d79174f47a94a8b2aab2cb69fde4566",
791
- "bytes": 5941
761
+ "sha256": "c6b407aec1310c2db4d7704bc522700461fae681cdfcafd99a533676db4192a1",
762
+ "bytes": 7583
792
763
  },
793
764
  {
794
765
  "path": "skills/video-voiceover/references/index-tts.md",
795
- "sha256": "89607ca70af6ad92ac3f4155d34dbf6344c8f4bcc82a0b24c99f819b43f20aaf",
796
- "bytes": 1603
766
+ "sha256": "fb3972271efd389da432310d69787fcab93460ac32485ca4f2cd11a49865642c",
767
+ "bytes": 1623
797
768
  },
798
769
  {
799
770
  "path": "skills/video-voiceover/scripts/approved_text_policy.py",
800
- "sha256": "8ac33e2fbf37813b30edf1d35936c46a9030e7edc3783372d85203c304ed0f08",
801
- "bytes": 4329
771
+ "sha256": "547b1c7735934e13ea447aeb5102e51f87b00b0a8e88ad61d31171b049cc26da",
772
+ "bytes": 4486
802
773
  },
803
774
  {
804
775
  "path": "skills/video-voiceover/scripts/dub.py",
805
- "sha256": "51ca829a694eea54417e4ee84b0b60772d250c7aee5c8ebe5358156722bb5ae0",
806
- "bytes": 28343
776
+ "sha256": "78d494206648c6adb1637ec81a288dccc71a02beda53e646269b51a01a3ac7d3",
777
+ "bytes": 25292
807
778
  },
808
779
  {
809
780
  "path": "skills/video-voiceover/scripts/lib.py",
810
- "sha256": "24fec28435d5b6c838683749c68930e1d1888600c0a713876b71a4268d9396d4",
811
- "bytes": 15754
781
+ "sha256": "5a62947c75b7f9846bfde76a1ae0188015bdd82624b42f94b3f9f4cce2274fed",
782
+ "bytes": 14617
812
783
  },
813
784
  {
814
785
  "path": "skills/video-voiceover/scripts/providers/__init__.py",
@@ -817,8 +788,8 @@
817
788
  },
818
789
  {
819
790
  "path": "skills/video-voiceover/scripts/providers/fish_audio.py",
820
- "sha256": "1a48175331d295a0a5f1b4fcdcefaf5df464b3ac7f68c7c7fb77f577120072bb",
821
- "bytes": 3102
791
+ "sha256": "2d1358137e8f53f54354591ddaeac4174d87b315fd1c8686d3efc52c3da6d1b0",
792
+ "bytes": 3234
822
793
  },
823
794
  {
824
795
  "path": "skills/video-voiceover/scripts/providers/index_tts.py",
@@ -827,13 +798,18 @@
827
798
  },
828
799
  {
829
800
  "path": "skills/video-voiceover/scripts/tts_audio.py",
830
- "sha256": "7124ec8458e797229599a24ac1b9bbc77bc867c751161d3e4eed48c184cbc20b",
831
- "bytes": 3939
801
+ "sha256": "2f6d95c1eac4cad089e4eee4df816d62fd2cff904d03c127844df1cfa3c2d95c",
802
+ "bytes": 6896
803
+ },
804
+ {
805
+ "path": "skills/video-voiceover/scripts/tts_cache.py",
806
+ "sha256": "366864ae2e1dd4b7cb19f068c734762417f15991822980052f6948b8d9c7ea67",
807
+ "bytes": 4093
832
808
  },
833
809
  {
834
810
  "path": "skills/video-voiceover/scripts/voiceover.py",
835
- "sha256": "2ae0847403bd0d2092e91d2b28aaa001f31af789d797d5fbb66505df414bd4f3",
836
- "bytes": 32915
811
+ "sha256": "ad0276befb246478ec550e1c21a31a9ece9a88dbbdeebe2a8be14043dd1db969",
812
+ "bytes": 33172
837
813
  }
838
814
  ]
839
815
  }