@lemoncat7/dsh-partner 2.5.0 → 2.7.1

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 (653) hide show
  1. package/README.md +4 -0
  2. package/docs/THIRD_PARTY_LICENSES.md +13 -0
  3. package/docs/attachment-storage.md +18 -0
  4. package/docs/director-skills.md +24 -0
  5. package/docs/long-task-continuation.md +1 -1
  6. package/docs/releases/2.6.0.md +11 -0
  7. package/docs/releases/2.7.1.md +10 -0
  8. package/lib/agent-runtime.d.ts +3 -1
  9. package/lib/agent-runtime.d.ts.map +1 -1
  10. package/lib/agent-runtime.js +35 -11
  11. package/lib/agent-runtime.js.map +1 -1
  12. package/lib/api/features/attachments-api.d.ts.map +1 -1
  13. package/lib/api/features/attachments-api.js +31 -1
  14. package/lib/api/features/attachments-api.js.map +1 -1
  15. package/lib/api.d.ts +1 -1
  16. package/lib/api.d.ts.map +1 -1
  17. package/lib/api.js +1 -1
  18. package/lib/api.js.map +1 -1
  19. package/lib/attachments/grouped-storage.d.ts +5 -0
  20. package/lib/attachments/grouped-storage.d.ts.map +1 -0
  21. package/lib/attachments/grouped-storage.js +47 -0
  22. package/lib/attachments/grouped-storage.js.map +1 -0
  23. package/lib/attachments/service.d.ts +17 -0
  24. package/lib/attachments/service.d.ts.map +1 -1
  25. package/lib/attachments/service.js +100 -8
  26. package/lib/attachments/service.js.map +1 -1
  27. package/lib/attachments/shared-storage.d.ts +7 -0
  28. package/lib/attachments/shared-storage.d.ts.map +1 -0
  29. package/lib/attachments/shared-storage.js +44 -0
  30. package/lib/attachments/shared-storage.js.map +1 -0
  31. package/lib/attachments/storage-admin.d.ts +6 -0
  32. package/lib/attachments/storage-admin.d.ts.map +1 -0
  33. package/lib/attachments/storage-admin.js +43 -0
  34. package/lib/attachments/storage-admin.js.map +1 -0
  35. package/lib/attachments/storage-types.d.ts +33 -0
  36. package/lib/attachments/storage-types.d.ts.map +1 -0
  37. package/lib/attachments/storage-types.js +2 -0
  38. package/lib/attachments/storage-types.js.map +1 -0
  39. package/lib/attachments/tool.d.ts.map +1 -1
  40. package/lib/attachments/tool.js +16 -5
  41. package/lib/attachments/tool.js.map +1 -1
  42. package/lib/channels/delivery-policy.d.ts.map +1 -1
  43. package/lib/channels/delivery-policy.js +6 -4
  44. package/lib/channels/delivery-policy.js.map +1 -1
  45. package/lib/channels/direct/message-format.js +294 -157
  46. package/lib/channels/direct/message-format.js.map +4 -4
  47. package/lib/channels/manager.d.ts +6 -3
  48. package/lib/channels/manager.d.ts.map +1 -1
  49. package/lib/channels/manager.js +64 -44
  50. package/lib/channels/manager.js.map +1 -1
  51. package/lib/channels/weixin/api.d.ts.map +1 -1
  52. package/lib/channels/weixin/api.js +7 -2
  53. package/lib/channels/weixin/api.js.map +1 -1
  54. package/lib/channels/weixin/errors.d.ts +14 -0
  55. package/lib/channels/weixin/errors.d.ts.map +1 -0
  56. package/lib/channels/weixin/errors.js +29 -0
  57. package/lib/channels/weixin/errors.js.map +1 -0
  58. package/lib/channels/weixin/poll.d.ts +14 -0
  59. package/lib/channels/weixin/poll.d.ts.map +1 -0
  60. package/lib/channels/weixin/poll.js +50 -0
  61. package/lib/channels/weixin/poll.js.map +1 -0
  62. package/lib/client-controller.d.ts.map +1 -1
  63. package/lib/client-controller.js +3 -3
  64. package/lib/client-controller.js.map +1 -1
  65. package/lib/client.d.ts.map +1 -1
  66. package/lib/client.js +983 -575
  67. package/lib/client.js.map +4 -4
  68. package/lib/collaboration/composition.d.ts.map +1 -1
  69. package/lib/collaboration/composition.js +16 -6
  70. package/lib/collaboration/composition.js.map +1 -1
  71. package/lib/collaboration/domain.d.ts +6 -0
  72. package/lib/collaboration/domain.d.ts.map +1 -1
  73. package/lib/collaboration/domain.js.map +1 -1
  74. package/lib/collaboration/service.d.ts.map +1 -1
  75. package/lib/collaboration/service.js +33 -3
  76. package/lib/collaboration/service.js.map +1 -1
  77. package/lib/concern-notification.d.ts.map +1 -1
  78. package/lib/concern-notification.js +2 -1
  79. package/lib/concern-notification.js.map +1 -1
  80. package/lib/concern-tool.js +1 -1
  81. package/lib/concern-tool.js.map +1 -1
  82. package/lib/execution/reply-progress.d.ts.map +1 -1
  83. package/lib/execution/reply-progress.js +4 -2
  84. package/lib/execution/reply-progress.js.map +1 -1
  85. package/lib/execution/service.d.ts +1 -1
  86. package/lib/execution/service.d.ts.map +1 -1
  87. package/lib/execution/service.js +4 -7
  88. package/lib/execution/service.js.map +1 -1
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +3 -1
  91. package/lib/index.js.map +1 -1
  92. package/lib/memory-reflection.js +2 -2
  93. package/lib/memory-reflection.js.map +1 -1
  94. package/lib/message-source.d.ts +25 -0
  95. package/lib/message-source.d.ts.map +1 -0
  96. package/lib/message-source.js +8 -0
  97. package/lib/message-source.js.map +1 -0
  98. package/lib/observation-loop.js +4 -4
  99. package/lib/observation-loop.js.map +1 -1
  100. package/lib/pendant/reader.js +1 -1
  101. package/lib/pendant/reader.js.map +1 -1
  102. package/lib/pendant/renderer.d.ts.map +1 -1
  103. package/lib/pendant/renderer.js +18 -2
  104. package/lib/pendant/renderer.js.map +1 -1
  105. package/lib/pendant/settings-panel.js +1 -1
  106. package/lib/pendant/settings-panel.js.map +1 -1
  107. package/lib/pendant/startup.d.ts +4 -0
  108. package/lib/pendant/startup.d.ts.map +1 -0
  109. package/lib/pendant/startup.js +64 -0
  110. package/lib/pendant/startup.js.map +1 -0
  111. package/lib/pendant/widget.d.ts.map +1 -1
  112. package/lib/pendant/widget.js +2 -1
  113. package/lib/pendant/widget.js.map +1 -1
  114. package/lib/pendant-renderer.js +169 -169
  115. package/lib/persona/service.js +1 -1
  116. package/lib/persona/service.js.map +1 -1
  117. package/lib/requirements/attachments.d.ts +7 -0
  118. package/lib/requirements/attachments.d.ts.map +1 -0
  119. package/lib/requirements/attachments.js +26 -0
  120. package/lib/requirements/attachments.js.map +1 -0
  121. package/lib/requirements/domain.d.ts +1 -1
  122. package/lib/requirements/domain.d.ts.map +1 -1
  123. package/lib/requirements/service.d.ts.map +1 -1
  124. package/lib/requirements/service.js +4 -1
  125. package/lib/requirements/service.js.map +1 -1
  126. package/lib/scheduler/channel-origin.d.ts +7 -0
  127. package/lib/scheduler/channel-origin.d.ts.map +1 -0
  128. package/lib/scheduler/channel-origin.js +27 -0
  129. package/lib/scheduler/channel-origin.js.map +1 -0
  130. package/lib/scheduler/continuations.d.ts +2 -2
  131. package/lib/scheduler/continuations.d.ts.map +1 -1
  132. package/lib/scheduler/continuations.js +28 -8
  133. package/lib/scheduler/continuations.js.map +1 -1
  134. package/lib/scheduler/domain.d.ts +13 -0
  135. package/lib/scheduler/domain.d.ts.map +1 -1
  136. package/lib/scheduler/final-reply.d.ts +13 -0
  137. package/lib/scheduler/final-reply.d.ts.map +1 -0
  138. package/lib/scheduler/final-reply.js +21 -0
  139. package/lib/scheduler/final-reply.js.map +1 -0
  140. package/lib/skills/builtin-resources.d.ts +6 -0
  141. package/lib/skills/builtin-resources.d.ts.map +1 -0
  142. package/lib/skills/builtin-resources.js +47 -0
  143. package/lib/skills/builtin-resources.js.map +1 -0
  144. package/lib/skills/builtin.d.ts +2 -5
  145. package/lib/skills/builtin.d.ts.map +1 -1
  146. package/lib/skills/builtin.js +6 -0
  147. package/lib/skills/builtin.js.map +1 -1
  148. package/lib/skills/director-builtins.d.ts +8 -0
  149. package/lib/skills/director-builtins.d.ts.map +1 -0
  150. package/lib/skills/director-builtins.js +65 -0
  151. package/lib/skills/director-builtins.js.map +1 -0
  152. package/lib/skills/drama-builtin.d.ts +3 -0
  153. package/lib/skills/drama-builtin.d.ts.map +1 -0
  154. package/lib/skills/drama-builtin.js +49 -0
  155. package/lib/skills/drama-builtin.js.map +1 -0
  156. package/lib/skills/long-task-continuation.d.ts +2 -2
  157. package/lib/skills/long-task-continuation.d.ts.map +1 -1
  158. package/lib/skills/long-task-continuation.js +2 -2
  159. package/lib/skills/service.d.ts.map +1 -1
  160. package/lib/skills/service.js +8 -3
  161. package/lib/skills/service.js.map +1 -1
  162. package/lib/skills/viora-canvas-builtin.d.ts +3 -0
  163. package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
  164. package/lib/skills/viora-canvas-builtin.js +19 -0
  165. package/lib/skills/viora-canvas-builtin.js.map +1 -0
  166. package/lib/storage/migrate-layout.d.ts.map +1 -1
  167. package/lib/storage/migrate-layout.js +13 -4
  168. package/lib/storage/migrate-layout.js.map +1 -1
  169. package/lib/tasks/context.js +1 -0
  170. package/lib/tasks/context.js.map +1 -1
  171. package/lib/tasks/continuation.d.ts.map +1 -1
  172. package/lib/tasks/continuation.js +3 -0
  173. package/lib/tasks/continuation.js.map +1 -1
  174. package/lib/tasks/domain.d.ts +2 -0
  175. package/lib/tasks/domain.d.ts.map +1 -1
  176. package/lib/tasks/service.d.ts +2 -1
  177. package/lib/tasks/service.d.ts.map +1 -1
  178. package/lib/tasks/service.js +15 -1
  179. package/lib/tasks/service.js.map +1 -1
  180. package/lib/ui/attachment-storage.d.ts +2 -0
  181. package/lib/ui/attachment-storage.d.ts.map +1 -0
  182. package/lib/ui/attachment-storage.js +59 -0
  183. package/lib/ui/attachment-storage.js.map +1 -0
  184. package/lib/ui/capability-editor.js +1 -1
  185. package/lib/ui/capability-editor.js.map +1 -1
  186. package/lib/ui/companion-access-panel.js +1 -1
  187. package/lib/ui/companion-access-panel.js.map +1 -1
  188. package/lib/ui/companion-create.js +1 -1
  189. package/lib/ui/companion-create.js.map +1 -1
  190. package/lib/ui/companion-picker.js +1 -1
  191. package/lib/ui/companion-picker.js.map +1 -1
  192. package/lib/ui/identity-editor.js +1 -1
  193. package/lib/ui/identity-editor.js.map +1 -1
  194. package/lib/ui/mcp-capabilities.js +1 -1
  195. package/lib/ui/mcp-capabilities.js.map +1 -1
  196. package/lib/ui/mcp-panel.js +1 -1
  197. package/lib/ui/mcp-panel.js.map +1 -1
  198. package/lib/ui/memory/concern-board.js +2 -2
  199. package/lib/ui/memory/concern-board.js.map +1 -1
  200. package/lib/ui/memory/concern-deletion.d.ts +1 -1
  201. package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
  202. package/lib/ui/memory/concern-deletion.js +9 -4
  203. package/lib/ui/memory/concern-deletion.js.map +1 -1
  204. package/lib/ui/memory/concern-panel.js +1 -1
  205. package/lib/ui/memory/concern-panel.js.map +1 -1
  206. package/lib/ui/memory/memory-library.js +1 -1
  207. package/lib/ui/memory/memory-library.js.map +1 -1
  208. package/lib/ui/memory/memory-panel.js +1 -1
  209. package/lib/ui/memory/memory-panel.js.map +1 -1
  210. package/lib/ui/partner-components.js +1 -1
  211. package/lib/ui/partner-components.js.map +1 -1
  212. package/lib/ui/requirement-board.js +1 -1
  213. package/lib/ui/requirement-board.js.map +1 -1
  214. package/lib/ui/requirement-dialog.js +1 -1
  215. package/lib/ui/requirement-dialog.js.map +1 -1
  216. package/lib/ui/requirement-tasks-panel.js +1 -1
  217. package/lib/ui/requirement-tasks-panel.js.map +1 -1
  218. package/lib/ui/schedule-panel.js +1 -1
  219. package/lib/ui/schedule-panel.js.map +1 -1
  220. package/lib/ui/skills-panel.js +1 -1
  221. package/lib/ui/skills-panel.js.map +1 -1
  222. package/lib/ui/storage-settings.d.ts.map +1 -1
  223. package/lib/ui/storage-settings.js +2 -1
  224. package/lib/ui/storage-settings.js.map +1 -1
  225. package/lib/ui/task-board-stage.js +1 -1
  226. package/lib/ui/task-board-stage.js.map +1 -1
  227. package/lib/ui/workspace-components.js +1 -1
  228. package/lib/ui/workspace-components.js.map +1 -1
  229. package/lib/ui/workspace-navigation.d.ts +16 -16
  230. package/lib/ui/workspace-navigation.js +1 -1
  231. package/lib/ui/workspace-navigation.js.map +1 -1
  232. package/package.json +53 -41
  233. package/resources/skills/cinematic-director/manifest.json +205 -0
  234. package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
  235. package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
  236. package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
  237. package/resources/skills/cinematic-director/upstream/README.md +507 -0
  238. package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
  239. package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
  240. package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
  241. package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
  242. package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
  243. package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
  244. package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
  245. package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
  246. package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
  247. package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
  248. package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
  249. package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
  250. package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
  251. package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
  252. package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
  253. package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
  254. package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
  255. package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
  256. package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
  257. package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
  258. package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
  259. package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
  260. package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
  261. package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
  262. package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
  263. package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
  264. package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
  265. package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
  266. package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
  267. package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
  268. package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
  269. package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
  270. package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
  271. package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
  272. package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
  273. package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
  274. package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
  275. package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
  276. package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
  277. package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
  278. package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
  279. package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
  280. package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
  281. package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
  282. package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
  283. package/resources/skills/director-skills/manifest.json +541 -0
  284. package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
  285. package/resources/skills/director-skills/upstream/LICENSE +21 -0
  286. package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
  287. package/resources/skills/director-skills/upstream/README.md +251 -0
  288. package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
  289. package/resources/skills/director-skills/upstream/SKILL.md +114 -0
  290. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
  291. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
  292. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
  293. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
  294. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
  295. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
  296. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
  297. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
  298. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
  299. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
  300. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
  301. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
  302. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
  303. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
  304. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
  305. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
  306. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
  307. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
  308. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
  309. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
  310. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
  311. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
  312. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
  313. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
  314. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
  315. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
  316. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
  317. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
  318. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
  319. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
  320. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
  321. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
  322. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
  323. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
  324. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
  325. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
  326. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
  327. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
  328. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
  329. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
  330. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
  331. package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
  332. package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
  333. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
  334. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
  335. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
  336. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
  337. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
  338. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
  339. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
  340. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
  341. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
  342. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
  343. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
  344. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
  345. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
  346. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
  347. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
  348. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
  349. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
  350. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
  351. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
  352. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
  353. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
  354. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
  355. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
  356. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
  357. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
  358. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
  359. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
  360. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
  361. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
  362. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
  363. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
  364. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
  365. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
  366. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
  367. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
  368. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
  369. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
  370. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
  371. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
  372. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
  373. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
  374. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
  375. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
  376. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
  377. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
  378. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
  379. package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
  380. package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
  381. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
  382. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
  383. package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
  384. package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
  385. package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
  386. package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
  387. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
  388. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
  389. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
  390. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
  391. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
  392. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
  393. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
  394. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
  395. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
  396. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
  397. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
  398. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
  399. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
  400. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
  401. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
  402. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
  403. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
  404. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
  405. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
  406. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
  407. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
  408. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
  409. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
  410. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
  411. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
  412. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
  413. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
  414. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
  415. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
  416. package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
  417. package/resources/skills/drama-production/manifest.json +933 -0
  418. package/resources/skills/drama-production/upstream/LICENSE +21 -0
  419. package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
  420. package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
  421. package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  422. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
  423. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
  424. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
  425. package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  426. package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
  427. package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  428. package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
  429. package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
  430. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
  431. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
  432. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
  433. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
  434. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
  435. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  436. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
  437. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
  438. package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
  439. package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
  440. package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
  441. package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
  442. package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
  443. package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
  444. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
  445. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
  446. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
  447. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
  448. package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
  449. package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
  450. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  451. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  452. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  453. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  454. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  455. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  456. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  457. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  458. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
  459. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
  460. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
  461. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
  462. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
  463. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
  464. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
  465. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
  466. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
  467. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
  468. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
  469. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
  470. package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
  471. package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
  472. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  473. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
  474. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  475. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
  476. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  477. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  478. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  479. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
  480. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  481. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
  482. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
  483. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
  484. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
  485. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
  486. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
  487. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
  488. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
  489. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
  490. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
  491. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
  492. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
  493. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
  494. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  495. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  496. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
  497. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  498. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  499. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
  500. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
  501. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  502. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
  503. package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
  504. package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
  505. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
  506. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
  507. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
  508. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
  509. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
  510. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
  511. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
  512. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
  513. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
  514. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
  515. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
  516. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
  517. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
  518. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
  519. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
  520. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
  521. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
  522. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
  523. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  524. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  525. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
  526. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  527. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
  528. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  529. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
  530. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
  531. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
  532. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
  533. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
  534. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
  535. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  536. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
  537. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  538. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
  539. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  540. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
  541. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
  542. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  543. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  544. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  545. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  546. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  547. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
  548. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  549. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  550. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  551. package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
  552. package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
  553. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
  554. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  555. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
  556. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  557. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
  558. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
  559. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
  560. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
  561. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
  562. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
  563. package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
  564. package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
  565. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  566. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  567. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
  568. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  569. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  570. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
  571. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
  572. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
  573. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
  574. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
  575. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  576. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
  577. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
  578. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
  579. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
  580. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
  581. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
  582. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  583. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  584. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  585. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
  586. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  587. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  588. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  589. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  590. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
  591. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
  592. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
  593. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
  594. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
  595. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
  596. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
  597. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
  598. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
  599. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
  600. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
  601. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
  602. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  603. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  604. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
  605. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  606. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  607. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  608. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
  609. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  610. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  611. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  612. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
  613. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  614. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
  615. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
  616. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
  617. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
  618. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
  619. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
  620. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
  621. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
  622. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
  623. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
  624. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
  625. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
  626. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  627. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  628. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  629. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  630. package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
  631. package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
  632. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
  633. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  634. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
  635. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
  636. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  637. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
  638. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
  639. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
  640. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  641. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
  642. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
  643. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
  644. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
  645. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  646. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  647. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
  648. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  649. package/resources/skills/viora-canvas-production/manifest.json +23 -0
  650. package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
  651. package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
  652. package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
  653. package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
@@ -0,0 +1,263 @@
1
+ # Editing and Assembly
2
+
3
+ Load this file when the deliverable is a cut plan, a shot count derived from a target duration, a transition design between separately generated clips, or a timeline/assembly spec (Step 12, Mode I). Fillable template: [edit-timeline-template.md](../assets/edit-timeline-template.md). Audio layers, pre-laps and music tempo live in [sound-and-dialogue.md](sound-and-dialogue.md); shot sizes, angles and screen-direction geometry live in [cinematic-language.md](cinematic-language.md).
4
+
5
+ Frame-rate assumption throughout: 24 fps. Timecodes written `m:ss.d`; frame counts written `f`.
6
+
7
+ ## Pacing math
8
+
9
+ ### Average shot length by cutting register
10
+
11
+ ASL is the mean, not the metronome. Use it to size the job, then distribute unevenly.
12
+
13
+ Per-genre ASL defaults are owned by [genre-playbooks.md](genre-playbooks.md), which gives a number for each of nineteen genres. **Where a genre lens is loaded, its number wins.** The table below is for when no lens is loaded, or when a sequence inside a scene runs at its own tempo — a chase inside a drama, a montage inside a documentary.
14
+
15
+ | Register | ASL | Shots per 30 s | Longest hold |
16
+ |---|---|---|---|
17
+ | Long-take / contemplative | 15–40 s | 1–2 | the whole scene |
18
+ | Observational | 8–15 s | 2–4 | 30 s |
19
+ | Conventional scene | 5–12 s | 3–6 | 20 s |
20
+ | Tightening / suspense build | 3–6 s | 5–10 | 14 s (the hold is the device) |
21
+ | Dialogue comedy | 2–5 s | 6–15 | 8 s, plus the reaction hold |
22
+ | Rapid action | 0.8–2.5 s | 12–38 | 5 s |
23
+ | Sell / product | 0.8–2.0 s | 15–38 | 6 s (the product hold) |
24
+ | Montage, mid-intensity | 1.2–2.5 s | 12–25 | 4 s |
25
+ | Montage, terminal | 0.4–1.0 s | 30–75 | 1.5 s |
26
+ | Feed / vertical | 0.7–2.0 s | 15–43 | 3 s |
27
+ | Tempo-locked | 1–2 bars per shot | set by the BPM table in [sound-and-dialogue.md](sound-and-dialogue.md) | 1 bar past the ASL |
28
+
29
+ ### Procedure: target duration to shot count
30
+
31
+ 1. `N = duration / ASL`, rounded to a whole number.
32
+ 2. Reserve one anchor shot at 2–3× ASL. Every sequence needs one place the audience can rest or dread. Take the low end when N is small and the target is tight.
33
+ 3. Reserve one shortest shot at 0.25–0.5× ASL. Contrast is what makes the anchor read as long.
34
+ 4. Distribute the rest so the **median lands below the ASL**. Real shot-length distributions are right-skewed: a few long shots pull the mean up, and most shots sit under it. About 15% long (1.5–3× ASL), 40% near ASL (0.9–1.2×), 45% short (0.4–0.8×). That mix averages back to roughly 1.0× ASL; an even spread around ASL does not, because the anchor drags the mean above target and you end up trimming the wrong shots.
35
+ 5. Sum, reconcile to target ±1 s by trimming the shots near ASL, never the anchor.
36
+
37
+ Worked: 30 seconds, tightening register, ASL 3.5 s. `N = 30 / 3.5 = 8.6 → 9 shots`. Anchor 9.0 s (2.6× ASL), shortest 1.2 s (0.34× ASL), remaining seven sum to 19.8 s — 4.6 / 3.5 / 3.4 / 3.0 / 2.2 / 1.7 / 1.4.
38
+
39
+ Total 30.0 s across 9 shots. Mean 3.33 s, median 3.0 s — the median sits below the mean, which is the check that step 4 was applied. The plan now has a shape rather than an average.
40
+
41
+ ### Adjust for handles: AI clips are longer than their cuts
42
+
43
+ Every generated clip loses its head and its tail (see the trim rule below). Budget **cut length + 1.5 s minimum** per clip, and cut length + 2.5 s for character performance or complex motion. Dialogue is character performance and pays the full 2.5 s.
44
+
45
+ `generated_seconds = finished_seconds + 1.5 × T`, where `T` is the number of **kept takes** you will cut from — not the number of shots, and not the number of attempts. Handle is paid per take, so harvesting several shots from one clip pays it once. Attempts are a different quantity with a different budget, counted and priced in [production-workflow.md](production-workflow.md); do not feed a retry count into this formula or you will over-order footage by the whole retry multiplier.
46
+
47
+ | ASL | T for 30 s, one take per shot | Generated seconds | Generation cost per finished second |
48
+ |---|---|---|---|
49
+ | 15 s | 2 | 33.0 | 1.10× |
50
+ | 8 s | 4 | 36.0 | 1.20× |
51
+ | 5 s | 6 | 39.0 | 1.30× |
52
+ | 3 s | 10 | 45.0 | 1.50× |
53
+ | 2 s | 15 | 52.5 | 1.75× |
54
+ | 1.2 s | 25 | 67.5 | 2.25× |
55
+ | 0.7 s | 43 | 94.5 | 3.15× |
56
+
57
+ The consequence is not obvious and it drives budgets: **fast cutting is expensive in AI film**, because the fixed handle is paid per take, not per second.
58
+
59
+ It gets worse below about 3 seconds. Tools generally impose a minimum generation length — commonly a few seconds, and typically offered as fixed length options rather than a free duration field; check the current docs for the tool you are on. Below that threshold, cost is set by the tool minimum, not by your cut. A 43-shot montage at 0.7 s each, generated one clip per cut against a 5 s minimum, costs 215 s of generation for 30 s of film: 7.2×.
60
+
61
+ Mitigation — **harvest**. Generate one 8–10 s clip containing a continuous move or action and take three or four non-adjacent fragments from it. The fragments share identity, light and grade automatically, which is exactly what a fast montage needs. Retry economics and per-shot budgeting are in [production-workflow.md](production-workflow.md).
62
+
63
+ ## Cut motivation taxonomy
64
+
65
+ If you cannot name the motivation, the cut is arbitrary and the audience feels it as a slideshow.
66
+
67
+ | Motivation | Trigger frame | Correct when | Cliché it invites | AI-specific note |
68
+ |---|---|---|---|---|
69
+ | Cut on action | Roughly one third into a movement in A; resume in B one sixth of the movement later, clamped to 2–8 f — see the overlap trim rule below | Continuous physical business; the default for invisible cutting | Cutting on every door, every sit, every handshake | Hides drift best. Motion masks difference between two generations — use it wherever the two clips disagree |
70
+ | Cut on look | The frame after the eyeline settles off-screen | Establishing what a character knows or wants | The mechanical look / POV / look-back triplet on every beat | Cheapest coverage in the pipeline: the POV clip needs no character in it, so no identity risk |
71
+ | Cut on sound | The picture cuts 4–12 f after the sound arrives | Redirecting attention; motivating a location change | A whoosh on every transition | Lets you cut between clips that share nothing visually. See pre-lap in [sound-and-dialogue.md](sound-and-dialogue.md) |
72
+ | Cut on idea | Wherever the thought completes, regardless of motion | Essayistic, montage, irony, thematic rhyme | Hourglass-to-crowd "time passes" matches | The only motivation that survives a total visual mismatch, so it rescues incompatible generations |
73
+ | Cut on emptiness | When the frame has nothing left to give | The shot has been exhausted and holding longer would be about the director, not the scene | The meaningful stare held 4 s past its meaning | Watch for it in reverse: AI clips run out of content early because the model stops inventing. Cut there |
74
+ | Cut on impact | Exactly on the hit, land, or slam — or 1–2 f before it | Violence, comedy falls, doors, decisions | Cutting on every punch to conceal that nothing connects | In AI film, concealing that nothing connects is a legitimate primary use, not a cheat |
75
+ | Cut on juxtaposition of two lines | Leave line A on its question, before its outcome; land in line B on its own live moment | Two lines of action running at once in story time — cross-cutting, a threat against its target | The intercut ticking clock on a metronome; the rescuer who is always exactly halfway there | The cheapest cut available here: the two clips share no space, no axis and no cast, so nothing has to match. See Cross-cutting two lines below |
76
+
77
+ Five of the seven appear in the worked assembly at the end of this file. The two absent are cut on impact, because nothing in that scene lands, and cut on juxtaposition, because the scene follows one line throughout — both of which are the design.
78
+
79
+ ## Transition engineering for separately generated clips
80
+
81
+ This is where AI film is actually different from live action. In live action, continuity is a property of the shoot. Here a clean hard cut is a property of the design: you get one only if you built A's last frame and B's first frame **as a pair**, before generating either. Everything else in this section is what you do when you did not.
82
+
83
+ ### The hard-cut agreement checklist
84
+
85
+ A hard cut holds when A's last frame and B's first frame **match on five things and deliberately break the sixth**:
86
+
87
+ 1. **Subject screen position** — within about 15% of frame width of where the eye expects it, or deliberately opposed across the frame.
88
+ 2. **Screen direction of travel** — same direction, or a designed reversal with a neutral shot between. Geometry owned by [cinematic-language.md](cinematic-language.md).
89
+ 3. **Light direction and level** — key from the same side; overall exposure within roughly half a stop.
90
+ 4. **State** — costume, prop position, hair, wetness, what is in which hand. The fifteen tracked axes are in [continuity-bible.md](continuity-bible.md).
91
+ 5. **Eyeline side** — the character looks off the same edge of frame in both.
92
+ 6. **Shot size — this is the one you break.** Two rungs on the size ladder if the camera stays on the same axis; one rung is enough if the angle also moves 30° or more around the subject. Ladder and the 30-degree rule are owned by [cinematic-language.md](cinematic-language.md).
93
+
94
+ Items 1–3 and 6 you control by writing the shot. Item 4 you control from the continuity bible. Item 5 is the one people forget, and it is the one that reads as an error rather than as a style.
95
+
96
+ ### Constructing a match cut
97
+
98
+ Pick exactly **one** carrier — shape, motion vector, sound, or colour. Two carriers at once cancel out and the cut reads as a coincidence.
99
+
100
+ | Carrier | Design rule | How to build it |
101
+ |---|---|---|
102
+ | Shape | The dominant contour occupies the same 20–40% of frame area at the same screen position in both frames | Build the two stills first as a diptych, overlay them at 50% opacity, adjust until the contours sit on each other |
103
+ | Motion vector | Same direction and comparable speed across the cut. A reversed vector reads as a mistake, never as a match | Specify the direction in both prompts ("moves left to right across frame") and check the last and first frames, not the middle |
104
+ | Sound | Same transient, different source — a slam and a gunshot, a scream and a kettle | Purely a timeline operation, costs no generation. See [sound-and-dialogue.md](sound-and-dialogue.md) |
105
+ | Colour | Same dominant hue at the same luminance, different scene | Set it at the keyframe stage; palette systems are owned by [lighting-and-color.md](lighting-and-color.md) |
106
+
107
+ Worked, single carrier — shape. A is to end on a ceiling light: a white disc filling roughly 30% of frame area, centred, on a dark ground. B is to open on a coin on a table: white disc, roughly 30%, centred, dark ground. Build both stills first, overlay them at 50%, and move the coin until the two discs sit on each other; only then generate. Do not also try to match the motion — the second carrier would split the audience's attention and neither would land.
108
+
109
+ Execution: design the pair of stills at Step 8 (keyframes), then generate A **toward** its last frame and B **away from** its first frame, using first-frame/last-frame slots where the tool exposes them — see [ai-video-tool-adapters.md](ai-video-tool-adapters.md) and [image-model-adapters.md](image-model-adapters.md).
110
+
111
+ ### Faking a whip or blur transition
112
+
113
+ Two ways, in order of preference:
114
+
115
+ 1. Generate it. Ask A for a fast camera whip in its final half second ("in the last half second the camera whips hard to the right and the frame smears") and B for the same whip decelerating into its opening. Then cut in the middle of the two smears. Expect to re-roll: models routinely return the whip in the wrong direction, or start it too early and eat the frames you needed. Check A's last frame and B's first frame for the smear axis before you commit to the pair.
116
+ 2. Fake it in post. Ramp a directional blur **up** across A's last 6–10 f and back **down** across B's first 6–10 f, streaking along the same axis and in the same direction in both. Opposed directions read as two unrelated whips and are worse than a plain cut. That gives 12–20 f in which nothing resolves, straddling an ordinary hard cut — no clip overlap is required. Add a 2–4 f dissolve at the splice only if a clean frame still shows through.
117
+
118
+ Either way the whip's real job is licence: for those 12–20 frames the audience cannot resolve detail, so A and B are free to disagree about everything.
119
+
120
+ ### The dissolve as an honest repair
121
+
122
+ A dissolve half-shows both images at the seam, so neither is auditable. That makes it the correct tool for a continuity gap you cannot fix — a light level that will not match, a wall texture that shifted, hair that moved.
123
+
124
+ | Length | Reads as |
125
+ |---|---|
126
+ | 6–10 f | Softening. Nearly subliminal; hides a small mismatch without implying anything |
127
+ | 12–24 f | A beat of time passing, or interiority |
128
+ | 24–48 f | A real transition between scenes |
129
+ | 48 f and up | Sequence break, memory, dream |
130
+
131
+ Two costs. Meaning: a dissolve asserts time passage or interiority whether you want it to or not, so never dissolve two shots that are continuous in time — the audience will read a gap the story does not have. And duration: a dissolve consumes frames from the program, so four of them in a short scene quietly shorten it. The arithmetic is in [edit-timeline-template.md](../assets/edit-timeline-template.md).
132
+
133
+ ### The cutaway and the insert as continuity patches
134
+
135
+ The cheapest continuity repair in AI film. Drop a 0.8–1.5 s insert of a detail between two clips that do not match, and the requirement that they match disappears — the audience's memory of A's exact frame is gone in under a second.
136
+
137
+ Insert candidates, in order of generation reliability: a static object (hands, a cup, a keyring, a sign), a slow environmental motion (rain on glass, steam, a curtain), a moving detail without a face (a foot, a wheel, a page). No face means no identity axis to drift, which is why these clear on the first pass where a character shot needs several.
138
+
139
+ Rule: the insert must belong to this scene's world, ideally generated from the same location keyframe, or it becomes a second continuity problem.
140
+
141
+ ### The empty-frame bridge
142
+
143
+ The strongest cheat available. End A by letting the subject exit frame; start B on an empty frame that the subject then enters. Across an empty frame the audience will accept a change of costume, of light, of location, of time.
144
+
145
+ Cost: 0.5–1.0 s of screen time at each end, and the shots must be planned for it — you cannot add an exit to an existing clip. Use it deliberately at the one or two seams in a sequence you already know will not hold.
146
+
147
+ ## Handles and trimming
148
+
149
+ Generate 1.5–2.5 s longer than the cut you need. This is not optional; it is the single most common reason a sequence cannot be assembled.
150
+
151
+ **One exception, and only one.** A first/last-frame generation has both of its ends pinned by approved stills, so the model is interpolating toward a known frame rather than drifting away from one: that clip may be generated at cut length and used whole. Everything else pays the handle, including every dialogue take — dialogue is character performance, so it pays the 2.5 s rate, not the 1.5 s one. If you find yourself writing a second exception, what you actually have is a shot you have not budgeted.
152
+
153
+ What is wrong with the ends of a generated clip:
154
+
155
+ - **Head (ramp-in)**: the first 4–10 f typically show the model resolving from its conditioning image — motion accelerating from an unnatural zero, a brief morph as texture settles, occasionally a one-frame flash.
156
+ - **Tail (drift-out)**: the last 8–20 f are where identity slides, hands deform, physics decays, and motion either loops or stops dead.
157
+
158
+ Practical trim rule: **discard the first 8 f and the last 12 f of every generated clip before you even look at it** (0.33 s head, 0.50 s tail at 24 fps). Then trim for content. If the clip becomes unusable after that discard, it was going to be unusable anyway. The one clip you do not blind-trim is the first/last-frame generation above: its first and last frames are the approved stills, so discarding them throws away the thing you paid for. Inspect that clip's ends instead of trimming them, and if either end has drifted off its still, the interpolation failed and the fix is a regeneration, not a trim.
159
+
160
+ Cut mid-motion, not at rest. A cut on a static frame invites the eye to compare A's last frame with B's first frame in detail, and it will find every mismatch. A cut during movement gives the eye a vector to follow instead of an inventory to audit. Place the cut point where subject velocity is at or near its peak.
161
+
162
+ Overlap trim rule. When cutting on action, remove **one sixth of the movement's on-screen duration, clamped to a 2 f floor and an 8 f ceiling**. The eye fills the removed slice in and the cut feels tighter; leaving the action complete on both sides makes it feel duplicated. The clamp is what makes one rule work at both ends: a 0.3 s snap gives 1.2 f, which rounds to nothing, so take 2; a 3 s head turn gives 12 f, and an elision that long stops being invisible and reads as a jump, so take 8. Between 0.5 s and 2.0 s the sixth lands inside 2–8 f on its own and no clamp applies — which is most directed gesture, and exactly the band [blocking-and-staging.md](blocking-and-staging.md) grades most reliable for generation, so this is the case you will be in.
163
+
164
+ ## Rhythm patterns as reusable devices
165
+
166
+ | Pattern | Beat structure | Durations | Use |
167
+ |---|---|---|---|
168
+ | Accelerating sequence | Each shot roughly 0.7× the previous, then one long release | 4.0 / 2.8 / 2.0 / 1.4 / 1.0 / 0.7, then 5–8 s | Pressure toward a decision or a collision. The release shot is mandatory or the sequence has no landing |
169
+ | Long hold, sudden cut | One held shot, then one very short one | 8–14 s, then 0.5–1.0 s | The disproportion is the whole effect. Do not precede it with any other long shot |
170
+ | Three-beat comedy | Setup, reinforcement, turn, then the hold | 3.0 / 2.5 / 1.2, then a hard cut to a 2.0–2.5 s reaction with no music | The laugh lives in the hold, not the turn. Cutting away from the reaction kills it |
171
+ | Horror delay | Hold a reveal-worthy frame past comfort, then either nothing or the event | Hold 3–5 s longer than feels right; if the event comes, land it at an unpredictable point inside a 2–6 s window | The audience must not be able to count to it. Alternate delivering and withholding across the film |
172
+ | The breath | One held near-empty shot immediately after a shock | 2.5–4.0 s, ambience only, no music, no cut inside it | Without it the shock is not remembered. This is the shot everyone cuts for time and should not |
173
+ | Rule-of-three escalation | Three shots at the same size, same angle, same length, one element escalating; break on the fourth | 3 × 1.5–2.5 s, then a shot of different size and different length | Works identically for comedy and dread. The break is the payload; the repetition is the setup |
174
+
175
+ ### Cross-cutting two lines
176
+
177
+ Which line a beat belongs to is decided upstream, in the `thread` column of [beat-sheet-template.md](../assets/beat-sheet-template.md). The cut plan inherits that assignment; it does not invent it.
178
+
179
+ 1. **Each line must be identifiable from its own first shot** — different location, different light level, different lead body. If the audience needs a second shot of a line to know which line it is in, you have one confusing scene rather than two.
180
+ 2. **Each line carries its own ASL, and both tighten toward the convergence.** Start them apart — say 5 s against 2.5 s — and bring both down to the tighter number as the beat approaches. Two lines cut at the same ASL throughout read as one scene shot in two places.
181
+ 3. **Alternate in shortening blocks**: 3 shots / 3 shots, then 2 / 2, then 1 / 1. Block length is the tension gauge, and the audience reads it without being told.
182
+ 4. **The convergence beat is the first shared frame or the first shared sound** — a phone answered in both lines, a door opened from both sides, one siren audible in each. Name it before you write either line, because every duration upstream is timed to it.
183
+ 5. If the lines never converge you have not cross-cut, you have interleaved two scenes, and the audience will spend both of them waiting.
184
+
185
+ Worked, 32.7 s. Line A, a woman driving: WS/MS, six shots, 6.0 / 5.0 / 4.0 / 3.0 / 2.0 / 1.5. Line B, a phone ringing in an empty kitchen: ECU/MCU, six shots, 3.0 / 2.5 / 2.0 / 1.5 / 1.2 / 1.0. Blocks 3/3, then 2/2, then 1/1; both lines land on 1.0–1.5 s at the end. Convergence is sound — her ringtone starts in the car under the last kitchen shot, 8 f before the picture cuts to her. Twelve single-location clips, no frame containing both.
186
+
187
+ AI note: this is the cheapest structural device in the pipeline. Two locations are two identity islands that never share a frame — no two-person drift, no shared axis to hold across a cut, no lip-sync collision, and each line can be generated from its own keyframe set and graded on its own. What it costs instead is the convergence: that is the one shot where both lines must appear together, so it is a full character-performance generation with retries budgeted, or you design the convergence as sound and never generate such a frame at all.
188
+
189
+ ### Montage and time compression
190
+
191
+ A run of shots reads as time passing rather than as a list only when it is measurable.
192
+
193
+ 1. **Name one monotonically advancing variable the audience can read** — light from dawn to dusk, a page stack growing, snow accumulating, a bottle emptying, a wound closing. One variable. Three variables cancel out and the audience tracks none of them.
194
+ 2. **Hold composition at the head and the tail.** Same size, same angle, same framing on the first and last shot of the run, so the change in the variable is measured against a fixed frame. Everything between those two is free.
195
+ 3. **The thing that tells the audience time passed is the sound bed, not the pictures.** One continuous piece of music or one unbroken ambience across the whole run, its own accents landing off the picture cuts — see [sound-and-dialogue.md](sound-and-dialogue.md). Re-trigger the bed at a cut and the run collapses into a list of separate facts.
196
+ 4. ASL bands are in the table at the top of this file (montage, mid-intensity and montage, terminal), and the cost warning that goes with them applies hardest here: at terminal ASL, generate one long clip and harvest fragments rather than ordering one clip per cut.
197
+
198
+ This is what separates a montage from the fast slideshow the rules below warn about. A slideshow is a run with no advancing variable and a bed that restarts or is absent, so every shot is a new fact and nothing accumulates. Test: hide the last shot of the run and the audience can still predict roughly what it shows. If they cannot, there is no variable and no compression.
199
+
200
+ Worked, 10 s, five shots at ASL 2.0 s: a man relearning to walk along a hospital corridor rail. Head and tail are the same WS from the same camera mark; the variable is how far along the rail he has got — 1 m, 3 m, 6 m, 9 m, the full length. Shots 2–4 are free to be MCU hands, ECU feet, MS back. One piano cue runs under all five with no cut in it. Hide the fifth shot and the audience already knows what it shows.
201
+
202
+ AI note: a monotonic variable is the easiest thing in this pipeline to pin on a keyframe, because it is a still-image property — light level, pile height, liquid line. Build the head and tail frames first as a pair, set the intermediate values between them, and each clip then only has to animate a small movement inside an already-correct frame.
203
+
204
+ ## Anti-slideshow rules at the edit stage
205
+
206
+ The slideshow feeling is created at the cut, not in the prompt. Enforce all eight:
207
+
208
+ 1. **Overlap motion across the cut.** Something must be moving in A's last 12 f and something moving in B's first 12 f, in the same general direction.
209
+ 2. **Break the size, the angle, or both — and break them big.** On the same camera axis, change size by at least two rungs (WS to MCU, not WS to MS). If the angle also moves 30° or more around the subject, one rung is enough. Ladder and the 30-degree rule are owned by [cinematic-language.md](cinematic-language.md).
210
+ 3. **Never place two same-size, same-angle shots adjacent**, unless the repetition is the device (rule-of-three).
211
+ 4. **One continuous audio bed under the whole sequence**, never re-triggered at a cut. See the continuity-glue rule in [sound-and-dialogue.md](sound-and-dialogue.md). This does more for the sequence than any picture fix.
212
+ 5. **Let a movement start in A and finish in B.** A hand reaches in A; the object is already held in B. The audience stitches the two clips into one event.
213
+ 6. **Vary shot length.** If three consecutive cuts land within 0.3 s of each other, the sequence starts to tick like a metronome and reads as a template.
214
+ 7. **Change the axis or the direction of travel at least once every four shots**, within the geometry rules.
215
+ 8. **Never open two consecutive shots on a static frame.** If B has to start still, give A a moving exit.
216
+
217
+ ## The assembly spec
218
+
219
+ The timeline document itself — the exact columns, the transition notation, and the frame arithmetic that makes the totals check — is owned by [edit-timeline-template.md](../assets/edit-timeline-template.md). What this file owns is what goes in the `Note` column: why each cut happens, and what it repairs.
220
+
221
+ The example below uses the template's column names, drops its `Shot` column for width, and displays times as `m:ss.d` rather than the `HH:MM:SS:FF` the template's arithmetic assumes — convert before handing it over.
222
+
223
+ Worked example — "Unlocked", 8 clips, 35.0 s finished, tightening register, ASL 4.4 s. A woman returns to her flat at night and finds the door already open.
224
+
225
+ | Clip | Source asset | Src in | Src out | Dur | Rec in | Transition in | Audio layers | Note |
226
+ |---|---|---|---|---|---|---|---|---|
227
+ | C01 | `UNL_SC01_SH01_v04_clip.mp4` (8.0 s) | 0:00.8 | 0:06.3 | 5.5 | 0:00.0 | Up from black 24f | Bed in — RT street + AMB rain, runs to the end of the scene | EWS street, she crosses L→R to the entrance, rain. Head discard 19 f (ramp-in), tail discard 41 f (drift) |
228
+ | C02 | `UNL_SC01_SH02_v02_clip.mp4` (6.0 s) | 0:00.5 | 0:03.5 | 3.0 | 0:05.5 | Hard cut | Bed crossfades street→interior over 16 f; FOL steps | MS stairwell, her back, climbing away from camera. Cut on action, on her passing the doorframe. The ambience change carries the location cut, so no interior establishing clip was generated at all |
229
+ | C03 | `UNL_SC01_SH03_v01_clip.mp4` (9.0 s) | 0:01.4 | 0:03.6 | 2.2 | 0:08.5 | J-cut 8f | Bed; SFX keyring at 0:08.2, 8 f ahead of the picture | ECU keyring turning in her hand. Cut on sound. Harvest 1 of 2 from this generation |
230
+ | C04 | `UNL_SC01_SH04_v06_clip.mp4` (10.0 s) | 0:01.2 | 0:07.7 | 6.5 | 0:10.7 | Hard cut | Bed; FOL cloth; M1 in at 0:14.0 | MCU her face at the door, she stops, looks down. Cut on action — her hand rises out of frame in C03. 1.5× ASL, the second-longest shot |
231
+ | C05 | `UNL_SC01_SH05_v01_clip.mp4` (5.0 s) | 0:02.0 | 0:03.2 | 1.2 | 0:17.2 | Hard cut | 6 f of hard silence at the cut, then bed only | ECU door edge, a 2 cm gap, black inside. Cut on look. Shortest shot, 0.27× ASL. The silence does the work the picture cannot |
232
+ | C06 | `UNL_SC01_SH06_v03_clip.mp4` (8.0 s) | 0:02.6 | 0:07.0 | 4.4 | 0:18.4 | Hard cut | Bed; one breath; M1 rising | MCU her face, one breath, then her eyes go down. Cut on idea. Same size as C04, but C05 sits between them, so the repeat reads as a return rather than a stutter |
233
+ | C07 | `UNL_SC01_SH03_v01_clip.mp4` (9.0 s) | 0:04.6 | 0:08.2 | 3.6 | 0:22.8 | Match on the down-move | Bed; FOL key rattle stops mid-move | ECU keys lowering out of frame, slow. Cut on action, started in C06. One carrier only — her eyes go down, the keys go down; nothing else is matched. Harvest 2 of 2, so identity and grade match for free |
234
+ | C08 | `UNL_SC01_SH08_v02_clip.mp4` (12.0 s) | 0:01.5 | 0:10.5 | 9.0 | 0:26.0 | Dissolve 10f | Bed; M1 out at 0:33.4, cut dead; last 1.6 s bed only | WS from behind, static, she stands facing the dark gap. Cut on emptiness. Anchor, 2.1× ASL. The dissolve is a repair, not a choice: v02 sits half a stop brighter than C06 and would not hold on a hard cut |
235
+
236
+ Arithmetic, per the template's formula. Σ durations 35.4 s; Σ overlaps 0.4 s (the 10 f dissolve into C08 — the fade-up and the J-cut consume nothing); program 35.4 − 0.4 = **35.0 s**, which agrees with `rec_in(C08) 26.0 + 9.0`.
237
+
238
+ Totals: 35.0 s of program from **58.0 s across 7 kept takes — 1.66×** — because C03 and C07 are two harvests from one take. Against the handle formula (`35.0 + 1.5 × 7 = 45.5 s`) that is 12.5 s of overshoot, spread across all seven takes at 1.0–2.3 s each — every clip was ordered longer than its handle minimum so the shots carrying the scene could be trimmed to taste. The formula is a floor, not a forecast.
239
+
240
+ Rule checks: every adjacent pair differs by at least two rungs on the size ladder, so the angle dial was never needed; no three consecutive durations fall within 0.3 s of each other; one bed runs under all eight clips; anchor 9.0 s (2.1× ASL), shortest 1.2 s (0.27× ASL).
241
+
242
+ ## Fix in the edit, regenerate, or cover it
243
+
244
+ Three options, and the third is the one people forget.
245
+
246
+ Cost model, honestly stated. A regeneration costs one more clip generation at whatever your tool charges, some minutes of wall time, and — the part that hurts — a fresh roll of the dice on identity, which can turn one defect into a different continuity problem in a shot that was otherwise fine. An edit fix costs 2–10 minutes of your time, is deterministic, and cannot break a neighbouring shot. A cover shot costs one cheap generation with a much higher first-pass rate than any character-performance re-roll, because it has no face in it.
247
+
248
+ | Symptom | Fix in edit | Regenerate | Cover |
249
+ |---|---|---|---|
250
+ | Defect in the first 8 f or last 12 f | Trim. Always | — | — |
251
+ | Defect off the centre of interest | Punch in up to 20% (on 1080p that leaves 864 effective lines — fine for web, not for a 4K master) | If the master matters | — |
252
+ | Defect under 8 f anywhere | Cut around it, or freeze 2 f | — | 1 s insert over it |
253
+ | Colour or exposure mismatch with the neighbour | Grade it. Always cheaper than a re-roll | — | — |
254
+ | Motion too fast or too slow | Retime 90–110%, which most viewers will not see. Beyond roughly ±15% it reads as slow-motion or under-cranking, which is a style choice rather than a repair; optical-flow retiming also smears hands and edges on generated footage | Yes, if the pace is wrong by more than that | — |
255
+ | Wrong face, wrong costume, wrong prop | — | Yes | — |
256
+ | Anatomy or physics break the eye will lock onto | — | Yes | Only if the break is brief and peripheral |
257
+ | Defect present through more than half the clip | — | Yes | — |
258
+ | Two adjacent clips simply do not match | Dissolve 10–24 f | Only after cover fails | Insert or empty-frame bridge first |
259
+ | Action does not read | — | Yes, with a changed shot design | — |
260
+
261
+ Decision rule: **regenerate only when the defect is in identity, is present through more than half the clip, or is a physics break the viewer will fixate on.** Everything else is a trim, a grade, a retime, or a cover.
262
+
263
+ Retry ceiling: how many generations a shot gets before you stop — the per-band stop rules, the retry budget, and version naming — is owned by [production-workflow.md](production-workflow.md). The edit-side rule is narrower and it is the one people ignore: when you hit that stop, change the size, the move, or the action. Do not change the adjectives. Symptom-to-cause diagnosis is in [failure-modes.md](failure-modes.md).