@lemoncat7/dsh-partner 2.4.2 → 2.7.0

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 (671) hide show
  1. package/README.md +8 -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 +51 -0
  6. package/docs/releases/2.5.0.md +13 -0
  7. package/docs/releases/2.6.0.md +11 -0
  8. package/docs/releases/2.7.0.md +21 -0
  9. package/lib/agent-runtime.d.ts +9 -1
  10. package/lib/agent-runtime.d.ts.map +1 -1
  11. package/lib/agent-runtime.js +117 -17
  12. package/lib/agent-runtime.js.map +1 -1
  13. package/lib/api/features/attachments-api.d.ts.map +1 -1
  14. package/lib/api/features/attachments-api.js +31 -1
  15. package/lib/api/features/attachments-api.js.map +1 -1
  16. package/lib/api.d.ts +1 -1
  17. package/lib/api.d.ts.map +1 -1
  18. package/lib/api.js +1 -1
  19. package/lib/api.js.map +1 -1
  20. package/lib/attachments/grouped-storage.d.ts +5 -0
  21. package/lib/attachments/grouped-storage.d.ts.map +1 -0
  22. package/lib/attachments/grouped-storage.js +47 -0
  23. package/lib/attachments/grouped-storage.js.map +1 -0
  24. package/lib/attachments/service.d.ts +17 -0
  25. package/lib/attachments/service.d.ts.map +1 -1
  26. package/lib/attachments/service.js +100 -8
  27. package/lib/attachments/service.js.map +1 -1
  28. package/lib/attachments/shared-storage.d.ts +7 -0
  29. package/lib/attachments/shared-storage.d.ts.map +1 -0
  30. package/lib/attachments/shared-storage.js +44 -0
  31. package/lib/attachments/shared-storage.js.map +1 -0
  32. package/lib/attachments/storage-admin.d.ts +6 -0
  33. package/lib/attachments/storage-admin.d.ts.map +1 -0
  34. package/lib/attachments/storage-admin.js +43 -0
  35. package/lib/attachments/storage-admin.js.map +1 -0
  36. package/lib/attachments/storage-types.d.ts +33 -0
  37. package/lib/attachments/storage-types.d.ts.map +1 -0
  38. package/lib/attachments/storage-types.js +2 -0
  39. package/lib/attachments/storage-types.js.map +1 -0
  40. package/lib/attachments/tool.d.ts.map +1 -1
  41. package/lib/attachments/tool.js +16 -5
  42. package/lib/attachments/tool.js.map +1 -1
  43. package/lib/channels/delivery-policy.d.ts.map +1 -1
  44. package/lib/channels/delivery-policy.js +7 -4
  45. package/lib/channels/delivery-policy.js.map +1 -1
  46. package/lib/channels/direct/message-format.js +418 -281
  47. package/lib/channels/direct/message-format.js.map +4 -4
  48. package/lib/channels/manager.d.ts +7 -3
  49. package/lib/channels/manager.d.ts.map +1 -1
  50. package/lib/channels/manager.js +73 -38
  51. package/lib/channels/manager.js.map +1 -1
  52. package/lib/channels/weixin/api.d.ts.map +1 -1
  53. package/lib/channels/weixin/api.js +7 -2
  54. package/lib/channels/weixin/api.js.map +1 -1
  55. package/lib/channels/weixin/errors.d.ts +14 -0
  56. package/lib/channels/weixin/errors.d.ts.map +1 -0
  57. package/lib/channels/weixin/errors.js +29 -0
  58. package/lib/channels/weixin/errors.js.map +1 -0
  59. package/lib/channels/weixin/poll.d.ts +14 -0
  60. package/lib/channels/weixin/poll.d.ts.map +1 -0
  61. package/lib/channels/weixin/poll.js +50 -0
  62. package/lib/channels/weixin/poll.js.map +1 -0
  63. package/lib/client-api.d.ts +1 -23
  64. package/lib/client-api.d.ts.map +1 -1
  65. package/lib/client-api.js.map +1 -1
  66. package/lib/client-controller.d.ts.map +1 -1
  67. package/lib/client-controller.js +3 -3
  68. package/lib/client-controller.js.map +1 -1
  69. package/lib/client.d.ts.map +1 -1
  70. package/lib/client.js +1078 -679
  71. package/lib/client.js.map +4 -4
  72. package/lib/collaboration/composition.d.ts.map +1 -1
  73. package/lib/collaboration/composition.js +32 -8
  74. package/lib/collaboration/composition.js.map +1 -1
  75. package/lib/collaboration/domain.d.ts +8 -0
  76. package/lib/collaboration/domain.d.ts.map +1 -1
  77. package/lib/collaboration/domain.js.map +1 -1
  78. package/lib/collaboration/service.d.ts.map +1 -1
  79. package/lib/collaboration/service.js +38 -5
  80. package/lib/collaboration/service.js.map +1 -1
  81. package/lib/concern-notification.d.ts.map +1 -1
  82. package/lib/concern-notification.js +2 -1
  83. package/lib/concern-notification.js.map +1 -1
  84. package/lib/concern-tool.js +1 -1
  85. package/lib/concern-tool.js.map +1 -1
  86. package/lib/execution/reply-progress.d.ts.map +1 -1
  87. package/lib/execution/reply-progress.js +4 -2
  88. package/lib/execution/reply-progress.js.map +1 -1
  89. package/lib/execution/service.d.ts +1 -1
  90. package/lib/execution/service.d.ts.map +1 -1
  91. package/lib/execution/service.js +4 -7
  92. package/lib/execution/service.js.map +1 -1
  93. package/lib/index.d.ts.map +1 -1
  94. package/lib/index.js +7 -1
  95. package/lib/index.js.map +1 -1
  96. package/lib/memory-reflection.js +2 -2
  97. package/lib/memory-reflection.js.map +1 -1
  98. package/lib/message-source.d.ts +25 -0
  99. package/lib/message-source.d.ts.map +1 -0
  100. package/lib/message-source.js +8 -0
  101. package/lib/message-source.js.map +1 -0
  102. package/lib/observation-loop.js +4 -4
  103. package/lib/observation-loop.js.map +1 -1
  104. package/lib/pendant/reader.js +1 -1
  105. package/lib/pendant/reader.js.map +1 -1
  106. package/lib/pendant/settings-panel.js +1 -1
  107. package/lib/pendant/settings-panel.js.map +1 -1
  108. package/lib/persona/service.js +1 -1
  109. package/lib/persona/service.js.map +1 -1
  110. package/lib/requirements/attachments.d.ts +7 -0
  111. package/lib/requirements/attachments.d.ts.map +1 -0
  112. package/lib/requirements/attachments.js +26 -0
  113. package/lib/requirements/attachments.js.map +1 -0
  114. package/lib/requirements/domain.d.ts +1 -1
  115. package/lib/requirements/domain.d.ts.map +1 -1
  116. package/lib/requirements/service.d.ts.map +1 -1
  117. package/lib/requirements/service.js +4 -1
  118. package/lib/requirements/service.js.map +1 -1
  119. package/lib/scheduler/channel-origin.d.ts +7 -0
  120. package/lib/scheduler/channel-origin.d.ts.map +1 -0
  121. package/lib/scheduler/channel-origin.js +27 -0
  122. package/lib/scheduler/channel-origin.js.map +1 -0
  123. package/lib/scheduler/continuations.d.ts +29 -0
  124. package/lib/scheduler/continuations.d.ts.map +1 -0
  125. package/lib/scheduler/continuations.js +286 -0
  126. package/lib/scheduler/continuations.js.map +1 -0
  127. package/lib/scheduler/domain.d.ts +40 -0
  128. package/lib/scheduler/domain.d.ts.map +1 -1
  129. package/lib/scheduler/final-reply.d.ts +13 -0
  130. package/lib/scheduler/final-reply.d.ts.map +1 -0
  131. package/lib/scheduler/final-reply.js +21 -0
  132. package/lib/scheduler/final-reply.js.map +1 -0
  133. package/lib/scheduler/service.d.ts +2 -0
  134. package/lib/scheduler/service.d.ts.map +1 -1
  135. package/lib/scheduler/service.js +30 -1
  136. package/lib/scheduler/service.js.map +1 -1
  137. package/lib/scheduler/wakeup-context.d.ts +7 -0
  138. package/lib/scheduler/wakeup-context.d.ts.map +1 -0
  139. package/lib/scheduler/wakeup-context.js +14 -0
  140. package/lib/scheduler/wakeup-context.js.map +1 -0
  141. package/lib/scheduler/wakeup.d.ts +11 -0
  142. package/lib/scheduler/wakeup.d.ts.map +1 -0
  143. package/lib/scheduler/wakeup.js +52 -0
  144. package/lib/scheduler/wakeup.js.map +1 -0
  145. package/lib/skills/builtin-resources.d.ts +6 -0
  146. package/lib/skills/builtin-resources.d.ts.map +1 -0
  147. package/lib/skills/builtin-resources.js +47 -0
  148. package/lib/skills/builtin-resources.js.map +1 -0
  149. package/lib/skills/builtin.d.ts +2 -5
  150. package/lib/skills/builtin.d.ts.map +1 -1
  151. package/lib/skills/builtin.js +11 -0
  152. package/lib/skills/builtin.js.map +1 -1
  153. package/lib/skills/director-builtins.d.ts +8 -0
  154. package/lib/skills/director-builtins.d.ts.map +1 -0
  155. package/lib/skills/director-builtins.js +65 -0
  156. package/lib/skills/director-builtins.js.map +1 -0
  157. package/lib/skills/drama-builtin.d.ts +3 -0
  158. package/lib/skills/drama-builtin.d.ts.map +1 -0
  159. package/lib/skills/drama-builtin.js +49 -0
  160. package/lib/skills/drama-builtin.js.map +1 -0
  161. package/lib/skills/long-task-continuation.d.ts +4 -0
  162. package/lib/skills/long-task-continuation.d.ts.map +1 -0
  163. package/lib/skills/long-task-continuation.js +43 -0
  164. package/lib/skills/long-task-continuation.js.map +1 -0
  165. package/lib/skills/service.d.ts.map +1 -1
  166. package/lib/skills/service.js +8 -3
  167. package/lib/skills/service.js.map +1 -1
  168. package/lib/skills/viora-canvas-builtin.d.ts +3 -0
  169. package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
  170. package/lib/skills/viora-canvas-builtin.js +19 -0
  171. package/lib/skills/viora-canvas-builtin.js.map +1 -0
  172. package/lib/storage/migrate-layout.d.ts.map +1 -1
  173. package/lib/storage/migrate-layout.js +13 -4
  174. package/lib/storage/migrate-layout.js.map +1 -1
  175. package/lib/store.d.ts.map +1 -1
  176. package/lib/store.js +2 -0
  177. package/lib/store.js.map +1 -1
  178. package/lib/tasks/context.js +1 -0
  179. package/lib/tasks/context.js.map +1 -1
  180. package/lib/tasks/continuation-yield.d.ts +4 -0
  181. package/lib/tasks/continuation-yield.d.ts.map +1 -0
  182. package/lib/tasks/continuation-yield.js +27 -0
  183. package/lib/tasks/continuation-yield.js.map +1 -0
  184. package/lib/tasks/continuation.d.ts +13 -0
  185. package/lib/tasks/continuation.d.ts.map +1 -0
  186. package/lib/tasks/continuation.js +106 -0
  187. package/lib/tasks/continuation.js.map +1 -0
  188. package/lib/tasks/domain.d.ts +2 -0
  189. package/lib/tasks/domain.d.ts.map +1 -1
  190. package/lib/tasks/scheduling.d.ts.map +1 -1
  191. package/lib/tasks/scheduling.js +7 -0
  192. package/lib/tasks/scheduling.js.map +1 -1
  193. package/lib/tasks/service.d.ts +2 -1
  194. package/lib/tasks/service.d.ts.map +1 -1
  195. package/lib/tasks/service.js +19 -1
  196. package/lib/tasks/service.js.map +1 -1
  197. package/lib/ui/attachment-storage.d.ts +2 -0
  198. package/lib/ui/attachment-storage.d.ts.map +1 -0
  199. package/lib/ui/attachment-storage.js +59 -0
  200. package/lib/ui/attachment-storage.js.map +1 -0
  201. package/lib/ui/capability-editor.js +1 -1
  202. package/lib/ui/capability-editor.js.map +1 -1
  203. package/lib/ui/companion-access-panel.js +1 -1
  204. package/lib/ui/companion-access-panel.js.map +1 -1
  205. package/lib/ui/companion-create.js +1 -1
  206. package/lib/ui/companion-create.js.map +1 -1
  207. package/lib/ui/companion-picker.js +1 -1
  208. package/lib/ui/companion-picker.js.map +1 -1
  209. package/lib/ui/identity-editor.js +1 -1
  210. package/lib/ui/identity-editor.js.map +1 -1
  211. package/lib/ui/mcp-capabilities.js +1 -1
  212. package/lib/ui/mcp-capabilities.js.map +1 -1
  213. package/lib/ui/mcp-panel.js +1 -1
  214. package/lib/ui/mcp-panel.js.map +1 -1
  215. package/lib/ui/memory/concern-board.js +2 -2
  216. package/lib/ui/memory/concern-board.js.map +1 -1
  217. package/lib/ui/memory/concern-deletion.d.ts +1 -1
  218. package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
  219. package/lib/ui/memory/concern-deletion.js +9 -4
  220. package/lib/ui/memory/concern-deletion.js.map +1 -1
  221. package/lib/ui/memory/concern-panel.js +1 -1
  222. package/lib/ui/memory/concern-panel.js.map +1 -1
  223. package/lib/ui/memory/memory-library.js +1 -1
  224. package/lib/ui/memory/memory-library.js.map +1 -1
  225. package/lib/ui/memory/memory-panel.js +1 -1
  226. package/lib/ui/memory/memory-panel.js.map +1 -1
  227. package/lib/ui/partner-components.js +1 -1
  228. package/lib/ui/partner-components.js.map +1 -1
  229. package/lib/ui/requirement-board.js +1 -1
  230. package/lib/ui/requirement-board.js.map +1 -1
  231. package/lib/ui/requirement-dialog.js +1 -1
  232. package/lib/ui/requirement-dialog.js.map +1 -1
  233. package/lib/ui/requirement-tasks-panel.js +1 -1
  234. package/lib/ui/requirement-tasks-panel.js.map +1 -1
  235. package/lib/ui/schedule-panel.d.ts.map +1 -1
  236. package/lib/ui/schedule-panel.js +20 -4
  237. package/lib/ui/schedule-panel.js.map +1 -1
  238. package/lib/ui/skills-panel.js +1 -1
  239. package/lib/ui/skills-panel.js.map +1 -1
  240. package/lib/ui/storage-settings.d.ts.map +1 -1
  241. package/lib/ui/storage-settings.js +2 -1
  242. package/lib/ui/storage-settings.js.map +1 -1
  243. package/lib/ui/task-board-stage.js +1 -1
  244. package/lib/ui/task-board-stage.js.map +1 -1
  245. package/lib/ui/workspace-components.js +1 -1
  246. package/lib/ui/workspace-components.js.map +1 -1
  247. package/lib/ui/workspace-navigation.d.ts +16 -16
  248. package/lib/ui/workspace-navigation.js +1 -1
  249. package/lib/ui/workspace-navigation.js.map +1 -1
  250. package/package.json +55 -41
  251. package/resources/skills/cinematic-director/manifest.json +205 -0
  252. package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
  253. package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
  254. package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
  255. package/resources/skills/cinematic-director/upstream/README.md +507 -0
  256. package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
  257. package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
  258. package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
  259. package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
  260. package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
  261. package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
  262. package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
  263. package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
  264. package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
  265. package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
  266. package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
  267. package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
  268. package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
  269. package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
  270. package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
  271. package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
  272. package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
  273. package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
  274. package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
  275. package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
  276. package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
  277. package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
  278. package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
  279. package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
  280. package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
  281. package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
  282. package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
  283. package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
  284. package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
  285. package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
  286. package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
  287. package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
  288. package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
  289. package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
  290. package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
  291. package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
  292. package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
  293. package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
  294. package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
  295. package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
  296. package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
  297. package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
  298. package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
  299. package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
  300. package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
  301. package/resources/skills/director-skills/manifest.json +541 -0
  302. package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
  303. package/resources/skills/director-skills/upstream/LICENSE +21 -0
  304. package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
  305. package/resources/skills/director-skills/upstream/README.md +251 -0
  306. package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
  307. package/resources/skills/director-skills/upstream/SKILL.md +114 -0
  308. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
  309. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
  310. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
  311. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
  312. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
  313. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
  314. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
  315. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
  316. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
  317. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
  318. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
  319. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
  320. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
  321. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
  322. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
  323. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
  324. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
  325. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
  326. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
  327. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
  328. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
  329. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
  330. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
  331. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
  332. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
  333. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
  334. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
  335. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
  336. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
  337. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
  338. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
  339. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
  340. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
  341. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
  342. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
  343. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
  344. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
  345. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
  346. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
  347. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
  348. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
  349. package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
  350. package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
  351. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
  352. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
  353. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
  354. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
  355. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
  356. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
  357. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
  358. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
  359. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
  360. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
  361. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
  362. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
  363. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
  364. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
  365. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
  366. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
  367. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
  368. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
  369. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
  370. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
  371. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
  372. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
  373. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
  374. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
  375. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
  376. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
  377. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
  378. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
  379. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
  380. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
  381. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
  382. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
  383. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
  384. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
  385. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
  386. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
  387. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
  388. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
  389. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
  390. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
  391. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
  392. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
  393. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
  394. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
  395. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
  396. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
  397. package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
  398. package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
  399. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
  400. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
  401. package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
  402. package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
  403. package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
  404. package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
  405. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
  406. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
  407. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
  408. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
  409. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
  410. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
  411. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
  412. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
  413. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
  414. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
  415. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
  416. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
  417. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
  418. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
  419. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
  420. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
  421. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
  422. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
  423. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
  424. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
  425. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
  426. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
  427. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
  428. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
  429. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
  430. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
  431. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
  432. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
  433. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
  434. package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
  435. package/resources/skills/drama-production/manifest.json +933 -0
  436. package/resources/skills/drama-production/upstream/LICENSE +21 -0
  437. package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
  438. package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
  439. package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  440. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
  441. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
  442. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
  443. package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  444. package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
  445. package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  446. package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
  447. package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
  448. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
  449. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
  450. 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
  451. 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
  452. 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
  453. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  454. 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
  455. 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
  456. package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
  457. package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
  458. package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
  459. package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
  460. package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
  461. package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
  462. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
  463. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
  464. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
  465. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
  466. package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
  467. package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
  468. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  469. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  470. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  471. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  472. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  473. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  474. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  475. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  476. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
  477. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
  478. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
  479. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
  480. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
  481. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
  482. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
  483. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
  484. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
  485. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
  486. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
  487. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
  488. package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
  489. package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
  490. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  491. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
  492. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  493. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
  494. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  495. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  496. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  497. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
  498. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  499. 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
  500. 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
  501. 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
  502. 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
  503. 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
  504. 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
  505. 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
  506. 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
  507. 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
  508. 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
  509. 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
  510. 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
  511. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
  512. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  513. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  514. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
  515. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  516. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  517. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
  518. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
  519. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  520. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
  521. package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
  522. package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
  523. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
  524. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
  525. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
  526. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
  527. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
  528. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
  529. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
  530. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
  531. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
  532. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
  533. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
  534. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
  535. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
  536. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
  537. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
  538. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
  539. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
  540. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
  541. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  542. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  543. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
  544. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  545. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
  546. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  547. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
  548. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
  549. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
  550. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
  551. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
  552. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
  553. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  554. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
  555. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  556. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
  557. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  558. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
  559. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
  560. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  561. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  562. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  563. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  564. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  565. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
  566. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  567. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  568. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  569. package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
  570. package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
  571. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
  572. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  573. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
  574. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  575. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
  576. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
  577. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
  578. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
  579. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
  580. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
  581. package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
  582. package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
  583. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  584. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  585. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
  586. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  587. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  588. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
  589. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
  590. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
  591. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
  592. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
  593. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  594. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
  595. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
  596. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
  597. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
  598. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
  599. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
  600. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  601. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  602. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  603. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
  604. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  605. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  606. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  607. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  608. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
  609. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
  610. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
  611. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
  612. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
  613. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
  614. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
  615. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
  616. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
  617. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
  618. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
  619. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
  620. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  621. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  622. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
  623. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  624. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  625. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  626. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
  627. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  628. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  629. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  630. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
  631. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  632. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
  633. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
  634. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
  635. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
  636. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
  637. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
  638. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
  639. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
  640. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
  641. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
  642. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
  643. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
  644. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  645. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  646. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  647. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  648. package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
  649. package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
  650. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
  651. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  652. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
  653. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
  654. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  655. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
  656. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
  657. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
  658. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  659. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
  660. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
  661. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
  662. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
  663. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  664. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  665. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
  666. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  667. package/resources/skills/viora-canvas-production/manifest.json +23 -0
  668. package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
  669. package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
  670. package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
  671. package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
@@ -0,0 +1,334 @@
1
+ # Keyframe Prompt Template (Mode E)
2
+
3
+ Load this file when you are at Step 8 (keyframe strategy) or the user asked for Mode E — first
4
+ frames, last frames, storyboard panels, character sheets, or location plates. The nine-slot order
5
+ and the reasoning behind it are owned by
6
+ [image model adapters](../references/image-model-adapters.md) §3, together with model control
7
+ surfaces and consistency tooling. Word choice, banned words, and the negative library are owned by
8
+ the [prompt lexicon](../references/prompt-lexicon.md). Asset ids and seed tracking are owned by
9
+ [continuity bible](../references/continuity-bible.md). This file owns the fill-in forms.
10
+
11
+ Build keyframes only after the rules exist. Every worked example below inherits from
12
+ [director book](director-book-template.md) and [shot plan](shot-plan-template.md): project
13
+ `Under the Door` (`UTD`), scene 7, 22s, 16:9, five shots — a courier hesitates outside a
14
+ Republican-era Shanghai apartment door, slides an envelope under it, and leaves.
15
+
16
+ ## Slot dictionary
17
+
18
+ Nine slots, then a constraints tail. Fill in this order; image-model-adapters §3 explains why the
19
+ order is not cosmetic.
20
+
21
+ | # | Slot | Must contain | Must never contain |
22
+ |---|---|---|---|
23
+ | 1 | Shot id | `PROJ_SCnn_SHnn` plus the frame role: `kf-first`, `kf-last`, `panel`, `sheet`, `plate` | Beat name, emotion, story explanation |
24
+ | 2 | Size, angle, lens | Shot size, camera height in cm or m, angle in degrees, focal length in mm | Camera *movement* — a still does not move; a height written in mm, which reads as a second focal length |
25
+ | 3 | Identity string | The book's frozen invariant, verbatim, word for word | A paraphrase, an emotion, an attractiveness word, "same as before" |
26
+ | 4 | Pose implying action | Limb positions, hand shape, eyeline target, distances in cm | Intent verbs: hesitating, wondering, deciding |
27
+ | 5 | Wardrobe & props | Every garment and carried object with material, closure, and which side | Style labels: "period clothing", "vintage look" |
28
+ | 6 | Location & era | The book's location invariant, verbatim, then which setup within it and where the door plane and the window fall for *this* camera | Genre words: "noir", "period drama" |
29
+ | 7 | Light source & direction | The book's light invariant, verbatim — it is world space: source, height, ratio, what stays under — then one sentence giving this setup's camera-relative key direction, copied from the shot plan's `Light dir` cell | Mood words: "moody", "dramatic lighting"; a camera-relative direction rewritten *into* the invariant |
30
+ | 8 | Composition | Placement in frame, headroom, which plane sits under, depth layers. At 9:16 or 1:1, also the band of frame height the story-critical content occupies — see the vertical safe zones in [cinematic language](../references/cinematic-language.md), which are per-platform and must be checked, not remembered | A rule name with no placement attached; a safe-zone percentage quoted from memory |
31
+ | 9 | Texture / medium | Stock or medium, grain, halation, palette in plain color words | "8K", "masterpiece", "hyperrealistic"; a bare millimetre number slot 2 could read as a second lens — write `35mm film stock`, never `35mm` alone |
32
+ | — | Constraints | Aspect ratio, then the book's `NEG_BASE` plus this frame's own risks | A boilerplate wall carried over from a different shot |
33
+
34
+ ## Working with the book's invariant strings
35
+
36
+ The director's book publishes four strings. Three of them — `ID_COURIER`, `LOCK_LANDING`,
37
+ `LIGHT_INVARIANT` — fill slots 3, 6 and 7 verbatim. Copy them; do not improve them. One re-worded
38
+ adjective is a different person, a different room, or a different lamp. `NEG_BASE` fills the
39
+ constraints tail and is the one string you select from rather than paste whole, for the reason
40
+ given under it.
41
+
42
+ ```text
43
+ ID_COURIER: a 19-year-old Chinese man with a narrow jaw, deep-set eyes under a low brow, a
44
+ 2 cm scar through the left eyebrow, black hair clipped short and shaved high at the neck, in
45
+ a grey padded cotton jacket buttoned to the throat with one bone button missing at the collar
46
+
47
+ LOCK_LANDING: third-floor landing of a 1937 Shanghai lilong apartment block, peeling dark-green
48
+ wainscot to waist height, cracked cream plaster above, worn red floor tile, dark-stained door
49
+ with a brass knob and a chipped lower-left corner, a stairwell window at the head of the stairs
50
+ opposite the door
51
+
52
+ LIGHT_INVARIANT: a single bare filament bulb hanging over the stairhead, warm, hard, above head
53
+ height, 5:1 lit side to shadow side with no fill but plaster bounce; cold daylight from the
54
+ stairwell window behind him, rimming his back and cap and never reaching his shadow side; the
55
+ door face stays well under; the only light on the door is a thin warm line spilling from the 4cm
56
+ gap beneath it
57
+
58
+ NEG_BASE: no rendered text, signage or numerals; no watermark; no lever handles, plastic, rubber
59
+ soles, wristwatch or printed logos; no extra people; no face or costume change; the door never
60
+ opens
61
+ ```
62
+
63
+ `NEG_BASE` names instances and never categories: "no modern objects" is a category no generator
64
+ can resolve into things, and it is the mechanism behind F8. The era class therefore lists the
65
+ objects the book's `must avoid` line already named. Six classes is the working size — small
66
+ enough to paste whole into a tool's negative field, and small enough that a prompt carrying it
67
+ inline plus this frame's own risks still lands near the lexicon's budget rather than at a wall.
68
+
69
+ None of them contains `camera-left` or `frame-right`, and that is deliberate: one string is pasted
70
+ into a setup and into its reverse, where those words flip. Camera-relative direction is per-setup
71
+ and comes from the shot plan's `Light dir` and `Frame content` cells — paste the invariant, then
72
+ add one sentence for this camera. In this scene every setup sits on one side of the line, so the
73
+ bulb reads high camera-left 45°, the door plane sits camera-right, and the window is behind him at
74
+ camera-left rear; write that sentence in each prompt, never back into the string.
75
+
76
+ Note what `ID_COURIER` does: it is face structure first and ends on exactly one wardrobe anchor,
77
+ the jacket with its missing collar button, so its tail reaches into slot 5. Everything else the
78
+ character wears — the cap, the satchel — stays in slot 5 and never migrates back into the string.
79
+ Split the anchor off the moment the project has a second fitting or a costume change; otherwise a
80
+ wardrobe edit in reel two silently rewrites the face. When you split, keep the face half under the
81
+ same name and add a fitting string (`FIT_COURIER`), and record both in the continuity bible.
82
+
83
+ `ID_COURIER` carries its own checkable landmark, the scar through the left eyebrow — that is what
84
+ proves identity. The scene needs a second anchor that is not on the actor at all, because half the
85
+ shots do not hold his face. The book bans rendered numerals, so the door number cannot be it: use
86
+ the **chip in the door's lower-left corner** and the **unbroken warm line under the door**. Both
87
+ survive at every shot size in this scene, and either one missing is provable drift.
88
+
89
+ ## Template — first frame
90
+
91
+ ```text
92
+ [PROJ_SCnn_SHnn kf-first]. [Size, angle, camera height, ##mm].
93
+ [ID string verbatim]. [Static pose: limbs, hand shape, distances in cm], eyes on [target].
94
+ [Prop and its state]. [LOCK string verbatim]; [which setup within it, and where the key planes
95
+ fall for this camera]. [LIGHT string verbatim]. In this setup [camera-relative key direction].
96
+ [Placement, headroom, which plane sits under, depth layers].
97
+ [Stock, grain, palette]. The pose must read as [action] about to begin.
98
+ [Aspect]. [NEG_BASE + this frame's own risks].
99
+ ```
100
+
101
+ The first frame of a shot is the previous shot's end state, not a moment plucked from the middle of
102
+ the gesture. Shot 01 ends squared to the door with the envelope at chest and both arms down, so
103
+ that is where `SH02` starts; the raised knuckles are something the video prompt has to produce.
104
+
105
+ Filled — `UTD_SC07_SH02_v03_kf-first`, the hand that cannot knock:
106
+
107
+ ```text
108
+ UTD_SC07_SH02 kf-first. Medium close-up, eye level, camera at 1.6m, 50mm. A 19-year-old Chinese man
109
+ with a narrow jaw, deep-set eyes under a low brow, a 2 cm scar through the left eyebrow, black hair
110
+ clipped short and shaved high at the neck, in a grey padded cotton jacket buttoned to the throat
111
+ with one bone button missing at the collar. He stands squared to the door 60cm out, both arms down,
112
+ the right hand at his thigh with the fingers half closed and the knuckle scrape showing, his weight
113
+ settled forward toward the door; eyes level on the door face. A wool cap pushed back off his
114
+ forehead, a canvas satchel strap across his chest on the left shoulder, and a cream envelope, white
115
+ face out, held up at chest height in his left hand. Third-floor landing of a 1937 Shanghai lilong
116
+ apartment block, peeling dark-green wainscot to waist height, cracked cream plaster above, worn red
117
+ floor tile, dark-stained door with a brass knob and a chipped lower-left corner, a stairwell window
118
+ at the head of the stairs opposite the door; door-side setup, the door plane camera-right, the
119
+ window behind him at camera-left rear. A single bare filament bulb hanging over the stairhead,
120
+ warm, hard, above head height, 5:1 lit side to shadow side with no fill but plaster bounce; cold
121
+ daylight from the stairwell window behind him, rimming his back and cap and never reaching his
122
+ shadow side; the door face stays well under; the only light on the door is a thin warm line
123
+ spilling from the 4cm gap beneath it. In this setup the bulb reads high camera-left at 45 degrees
124
+ and rakes the side of his face. His head and near shoulder occupy frame-left, the dark door plane
125
+ fills frame-right, envelope edge low-left, the cold rim along the back of his cap. 35mm film stock,
126
+ fine grain, low saturation, high contrast in the lower third, dull green and cracked cream against
127
+ worn red, the envelope the only pure white. The pose must read as a knock about to begin. 16:9. No
128
+ rendered text, signage or numerals; no watermark; no wristwatch, no rubber soles, no printed logos;
129
+ no face or costume change; the brass number plate defocused or out of frame; the right hand still
130
+ down and not touching the wood.
131
+ ```
132
+
133
+ Six classes in the tail, and note that it is not `NEG_BASE` pasted whole. Two base classes were
134
+ dropped because this framing cannot produce them — an MCU on one man has no room for an extra
135
+ person, and "the door never opens" is a motion constraint that means nothing to a still — and the
136
+ era class was pruned to the three instances that could actually appear at this size. Two of the
137
+ frame's own risks took the space. Where the model exposes a negative field, put all six `NEG_BASE`
138
+ classes in it and keep only those two frame-specific lines inline.
139
+
140
+ ## Template — last frame
141
+
142
+ The last frame is the first frame plus one completed change. Reuse slots 2, 3, 5, 6, 7, 9 word
143
+ for word; edit only slot 4 and, if the body moved, slot 8. Derive it from the approved first
144
+ frame rather than generating it fresh — see image-model-adapters §6.
145
+
146
+ Not every shot earns a pair. `SH02` starts with the hand down and ends with the hand down, so its
147
+ two frames would be near-identical and the tool would have nothing to travel through; that shot is
148
+ image-to-video from one frame. Build a pair when the end state is a different photograph.
149
+
150
+ ```text
151
+ [PROJ_SCnn_SHnn kf-last]. [Slot 2 line, identical]. [ID string verbatim].
152
+ He has completed [action]; now [new static pose]. [Prop in its new state].
153
+ [LOCK string, identical]. [LIGHT string, identical]. [New placement if the body moved].
154
+ [Slot 9 line, identical]. Same face, same wardrobe, same room, same lamp, same lens as kf-first.
155
+ [Aspect]. [Constraints].
156
+ ```
157
+
158
+ Filled — `UTD_SC07_SH04_v06_kf-last`, the irreversible delivery:
159
+
160
+ ```text
161
+ UTD_SC07_SH04 kf-last. Medium shot, low, camera 40cm off the floor, tilted up 10 degrees, 35mm. A
162
+ 19-year-old Chinese man with a narrow jaw, deep-set eyes under a low brow, a 2 cm scar through the
163
+ left eyebrow, black hair clipped short and shaved high at the neck, in a grey padded cotton jacket
164
+ buttoned to the throat with one bone button missing at the collar. He has completed feeding the
165
+ envelope under the door; now he is still crouched on his heels with the first two fingers of his
166
+ right hand flat against the wood just above the gap, the knuckle scrape up, both hands otherwise
167
+ empty and open, forearms resting on his knees. The same wool cap pushed back off his forehead and
168
+ the canvas satchel strap across his chest on the left shoulder. No envelope is visible anywhere in
169
+ frame. Third-floor landing of a 1937 Shanghai lilong apartment block, peeling dark-green wainscot
170
+ to waist height, cracked cream plaster above, worn red floor tile, dark-stained door with a brass
171
+ knob and a chipped lower-left corner, a stairwell window at the head of the stairs opposite the
172
+ door; door-side low setup, the door plane camera-right. A single bare filament bulb hanging over
173
+ the stairhead, warm, hard, above head height, 5:1 lit side to shadow side with no fill but plaster
174
+ bounce; cold daylight from the stairwell window behind him, rimming his back and cap and never
175
+ reaching his shadow side; the door face stays well under; the only light on the door is a thin warm
176
+ line spilling from the 4cm gap beneath it. In this setup the bulb reads high camera-left and sits
177
+ on his back and cap; the gap line underlights his hands from 20cm; his face two stops down. He is
178
+ crouched frame-left, the door plane fills the right two-thirds with the chipped lower-left corner
179
+ visible in it, the warm line under the door unbroken again and running the full width. 35mm film
180
+ stock, fine grain, low saturation, warmest and lowest frame of the scene, dull green and cracked
181
+ cream against worn red. Same face, same wardrobe, same room, same lamp, same lens as kf-first.
182
+ 16:9. No rendered text, signage or numerals; no watermark; no wristwatch, no rubber soles, no
183
+ printed logos; no face or costume change; no envelope still visible; no third hand.
184
+ ```
185
+
186
+ Its `kf-first` is that block with one substitution, which is what "one action apart" means in
187
+ practice: slot 4 becomes *crouched on his heels, the envelope pinched flat between the thumbs and
188
+ first fingers of both hands, its leading edge touching the 4cm gap, no part of it yet through*, and
189
+ the closing line becomes *the warm line under the door broken by the envelope*. Slots 2, 3, 5, 6,
190
+ 7, 9 are copied, not retyped.
191
+
192
+ ## Template — storyboard panel
193
+
194
+ A panel is not a pose. It must carry one of five jobs — a motion about to begin, a motion just
195
+ completed, a reveal, a power relation, or a story clue — and if it carries none of them, delete the
196
+ shot row rather than draw the panel. The jobs, and the physical devices that make a still imply
197
+ motion, are in image-model-adapters §7.
198
+
199
+ ```text
200
+ [PROJ_SCnn_SHnn panel]. [Size, angle, ##mm]. [Who and where, one clause each].
201
+ The panel shows [about-to / just-completed / reveal / power / clue] — specifically
202
+ [the visible evidence]. [Light source and where the shadow falls]. [Placement].
203
+ Loose graphite storyboard line drawing, grey wash for shadow, no color. [Aspect]. [Exclusions].
204
+ ```
205
+
206
+ Filled — `UTD_SC07_SH05 panel`, the aftermath:
207
+
208
+ ```text
209
+ UTD_SC07_SH05 panel. Extreme wide shot, high +15 degrees from the half-landing, 35mm. The empty
210
+ landing; the courier already out of frame at the bottom of the stairs; the closed door small at
211
+ frame-right. The panel shows a motion just completed — specifically the unbroken warm line under
212
+ the door with a shadow entering it from inside, and no one on the landing to see it. The bulb
213
+ high camera-left throws a hard rail shadow across the tile toward camera. The door occupies the
214
+ right quarter; two-thirds of the frame is empty tile and plaster. Loose graphite storyboard line
215
+ drawing, grey wash for shadow, no color. 16:9. No text, no arrows, no panel border, no figure.
216
+ ```
217
+
218
+ ## Template — character sheet
219
+
220
+ Generate once, before any shot keyframe. Everything downstream inherits from it. If the model
221
+ drifts between panels on one canvas, generate views separately and compose the sheet yourself —
222
+ image-model-adapters §4.
223
+
224
+ ```text
225
+ [PROJ_CHAR-slug_vNN ref-face | ref-body]. [Views, evenly spaced, named left to right].
226
+ [ID string verbatim]. Neutral expression, relaxed shoulders, arms at sides.
227
+ Flat frontal light, 5600K, about 1:1 lit side to shadow side so neither side reads as the shadow
228
+ side, no rim. Plain mid-grey seamless background.
229
+ No lens distortion; subject occupies 80% of frame height. [Aspect]. [Exclusions].
230
+ ```
231
+
232
+ The reference sheet is the one image that must carry no lighting opinion. A ratio as steep as 2:1
233
+ already picks a shadow side, and every shot generated from the sheet inherits that decision as if
234
+ it were bone structure.
235
+
236
+ Filled — `UTD_CHAR-courier_v01_ref-body`:
237
+
238
+ ```text
239
+ UTD_CHAR-courier_v01 ref-body. Four views of the same person, evenly spaced left to right: front,
240
+ three-quarter left, full profile left, full body front. A 19-year-old Chinese man with a narrow
241
+ jaw, deep-set eyes under a low brow, a 2 cm scar through the left eyebrow, black hair clipped short
242
+ and shaved high at the neck, in a grey padded cotton jacket buttoned to the throat with one bone
243
+ button missing at the collar. Thin, narrow-shouldered under the jacket. Wool cap pushed back off
244
+ his forehead, canvas satchel strap across his chest on the left shoulder. Neutral expression,
245
+ relaxed shoulders, arms at sides, gaze to camera; right hand turned so the knuckle scrape is
246
+ visible. Cloth shoes with worn welts. Flat frontal light, 5600K, about 1:1 lit
247
+ side to shadow side so neither side reads as the shadow side, no rim. Plain mid-grey seamless
248
+ background. No
249
+ lens distortion; subject occupies 80% of frame height. 1:1. No props except the satchel. No text,
250
+ no labels, no watermark, no extra people, no wristwatch, no rubber soles.
251
+ ```
252
+
253
+ Crop the three-quarter head as the reference for MCU and CU; use the full body for wides — a head
254
+ crop makes the model guess the build, and this character is specifically thin.
255
+
256
+ ## Template — location plate
257
+
258
+ An empty plate with no actor. It fixes architecture, lamp position, and tile direction so every
259
+ shot in the location inherits the same room instead of re-inventing it.
260
+
261
+ ```text
262
+ [PROJ_LOC-slug_vNN plate-wide]. No people. [Size, camera height, angle, ##mm].
263
+ [LOCK string verbatim]. [LIGHT string verbatim, naming which source is dominant].
264
+ [Foreground / mid / background layers]. [Texture line]. [Aspect].
265
+ Empty room, no figures, no animals, no text. [Era exclusions].
266
+ ```
267
+
268
+ Filled — `UTD_LOC-landing_v01_plate-wide`:
269
+
270
+ ```text
271
+ UTD_LOC-landing_v01 plate-wide. No people. Wide shot, high +15 degrees from the half-landing,
272
+ 35mm — the scene's widest permitted lens. Third-floor landing of a 1937 Shanghai lilong apartment
273
+ block, peeling dark-green wainscot to waist height, cracked cream plaster above, worn red floor
274
+ tile, dark-stained door with a brass knob and a chipped lower-left corner, a stairwell window at
275
+ the head of the stairs opposite the door. A single bare filament bulb hanging over the stairhead,
276
+ warm, hard, above head height, dominant, 5:1 lit side to shadow side with no fill but plaster
277
+ bounce; cold daylight from
278
+ the stairwell window, a rim only and never a fill; the door face stays well under; a thin warm line
279
+ spills from the 4cm gap beneath the door. In this setup the bulb reads high camera-left at 45
280
+ degrees and the window shaft rakes in from the back of frame. Foreground: painted iron stair rail
281
+ frame-left. Mid: red tile and the door at frame-right. Background: the window shaft, dust visible
282
+ in it. 35mm film stock, fine grain, low saturation, high contrast in the lower third. 16:9.
283
+ Empty room, no figures, no animals, no text. No lever handles, no plastic, no conduit wiring, no
284
+ glass in the door, no printed logos, no rendered numerals on the door.
285
+ ```
286
+
287
+ One clause of `LIGHT_INVARIANT` is edited here and only here: the window is described as a rim
288
+ rather than "rimming his back and cap", because on an empty plate that phrase has no referent. That
289
+ is the single permitted deviation, it applies to the plate alone, and the full string goes back in
290
+ verbatim the moment a figure is in frame.
291
+
292
+ Generate this plate and shot 03's ECU first: they are the cheapest images in the scene, they settle
293
+ the palette, and where the tool exposes a reference-image or seed slot they are what the rest of
294
+ the scene binds to.
295
+
296
+ ## Pre-video keyframe QC gate
297
+
298
+ Run before spending video credits. Every box here is free to fix now and can only be fixed by
299
+ regenerating the still later — video never repairs a keyframe error, it animates it. This is the
300
+ tick-box form of the reasoned gate in image-model-adapters §9; the scored form is Gate 1 in
301
+ [qc-checklist.md](qc-checklist.md).
302
+
303
+ - [ ] The book's three descriptive invariants — `ID_`, `LOCK_`, `LIGHT_` — appear verbatim, not
304
+ paraphrased, in every frame, the empty location plate's single documented edit aside.
305
+ - [ ] No camera-relative direction has been written back into an invariant string; every
306
+ `camera-left` / `frame-right` in the prompt sits in a per-setup sentence of its own.
307
+ - [ ] No emotion or attractiveness word sits in slot 3; expression is physical, in slot 4.
308
+ - [ ] The scene's checkable anchor (here: the door chip and the unbroken warm line) is visible
309
+ and correct at this shot size.
310
+ - [ ] The `kf-first` pose is the previous shot's end state, not a moment from mid-gesture.
311
+ - [ ] `kf-first` and `kf-last` of the same shot share slots 2, 3, 5, 6, 7, 9 word for word.
312
+ - [ ] The gap between first and last frame is one action, not two.
313
+ - [ ] The pose implies a direction of motion; it is not a symmetrical resting pose.
314
+ - [ ] Hands are visible and countable, or deliberately cropped out of frame.
315
+ - [ ] No numerals, signage, or text appear — the number plate is defocused or out of frame.
316
+ - [ ] Era check: nothing in frame post-dates the stated year, against the book's `must avoid`.
317
+ - [ ] Focal length is inside the book's kit; nothing wider than 35mm in this scene.
318
+ - [ ] Apparent perspective matches the stated focal length — no wide-angle nose or bowed room
319
+ edges on a 50mm or longer frame, no flattened planes on a 35mm. Video cannot repair this.
320
+ - [ ] The key direction matches this row's `Light dir` cell in the shot plan, and the ratio matches
321
+ the invariant.
322
+ - [ ] Aspect matches delivery; you are not planning to crop later.
323
+ - [ ] If 9:16 or 1:1 — faces, the hands doing the action, and anything that will be burned in
324
+ sit inside the frame-height band the vertical safe zones leave clear, per
325
+ [cinematic language](../references/cinematic-language.md). Check the current per-platform
326
+ numbers against the platform's spec; do not quote them from memory, and do not assume the
327
+ 16:9 headroom habit survived the crop.
328
+ - [ ] Exclusions are the `NEG_BASE` classes this framing can actually produce, plus this frame's
329
+ own risks — around six classes total, nothing inherited blindly, and no category among them.
330
+ - [ ] Filename follows `PROJ_SCnn_SHnn_vNN_role.ext` and the asset is in the seed and reference
331
+ registry — `seed: null` where the tool exposes none.
332
+
333
+ Anything that fails maps to an F-code in [failure modes](../references/failure-modes.md); report
334
+ it using the block at the end of [qc-checklist.md](qc-checklist.md).
@@ -0,0 +1,153 @@
1
+ # QC & Repair Checklist (Mode J)
2
+
3
+ Load this file when you are at Step 13 (QC and repair loop) or the user says a generation is
4
+ wrong. Diagnosis depth — the symptom, cause, and fix behind every F-code below — is owned by
5
+ [failure modes](../references/failure-modes.md). Retry budgets, version naming, and the approval
6
+ log are owned by [production workflow](../references/production-workflow.md). This file owns the
7
+ three gates, the score, and the report format.
8
+
9
+ Three gates, in order. PRE runs on the plan and keyframes before you spend credits, POST runs per
10
+ clip, SEQUENCE runs on the assembled cut. Only the PRE gate's failures are free to fix: a planning
11
+ error caught there costs an edit, and the same error caught after generation costs every clip built
12
+ on it.
13
+
14
+ Worked examples use project `Under the Door` (`UTD`), scene 7, the five-shot scene planned in
15
+ [beat sheet](beat-sheet-template.md), [director book](director-book-template.md), and
16
+ [shot plan](shot-plan-template.md).
17
+
18
+ ## Gate 1 — PRE-GENERATION
19
+
20
+ | # | Weight | Category | Check |
21
+ |---|---|---|---|
22
+ | P1 | 20 | Story function | Every shot names a beat id and the job it does for that beat. A shot whose function is "it looks good" is deleted, not scored |
23
+ | P2 | 15 | Blocking & camera logic | Start, motion, end written for each shot; one dominant move at most; the move is inside the book's move budget and is motivated by what the audience must newly see |
24
+ | P3 | 25 | Keyframe integrity | The tick-box gate at the end of [keyframe prompt template](keyframe-prompt-template.md) passes: invariant strings verbatim, `kf-first` and `kf-last` sharing slots 2, 3, 5, 6, 7, 9, the checkable anchor visible at this shot size, hands visible or deliberately cropped, apparent perspective matching the stated focal length, no rendered text |
25
+ | P4 | 20 | Prompt hygiene | The five-question self-check in [video prompt template](video-prompt-template.md) passes on every prompt: one action, one camera move, explicit end state, invariants present, negatives matched to real risk. Clip length sits inside the duration strategy owned by [ai video tool adapters](../references/ai-video-tool-adapters.md) — 3–5s for a face-carrying shot, 3–4s for fine hand work, 8–12s only where no legible face is in frame |
26
+ | P5 | 20 | Continuity setup | End state of shot N equals start state of shot N+1; era, props, and light state declared and consistent; seeds and reference assets recorded in the registry |
27
+
28
+ Score each 0–5, then `weighted = Σ (score ÷ 5 × weight)`.
29
+
30
+ - Threshold to generate: **80 / 100**. Below that you are buying rework.
31
+ - 90 and above: generate the whole scene. 80–89: generate, and expect one retry on the weakest
32
+ shot. 70–79: fix the failing row first — it is cheaper than a retry. Below 70: the problem is
33
+ the plan, and no number of generations will find it for you.
34
+
35
+ ## Gate 2 — POST-GENERATION, per clip
36
+
37
+ Watch each clip four times: once at speed for the whole, once at 0.25× for hands and face, once
38
+ with the sound off, once with the sound only. The last two are not padding — picture errors hide
39
+ under plausible audio, and audio errors hide under picture you have already accepted.
40
+
41
+ | # | Weight | Category | Check | F-codes |
42
+ |---|---|---|---|---|
43
+ | G1 | 25 | Identity & wardrobe | Face, build, hair, the checkable anchor, and every garment hold from the first frame to the last | F1, F16 |
44
+ | G2 | 20 | Action & end state | The requested action happened, once, and the clip ends on the pose you specified; the clip is an event, not a still frame drifting under a camera move | F2, F4, F5 |
45
+ | G3 | 20 | Motion, anatomy, physics | Limbs and fingers stay countable; weight, contact, and gravity read correctly; speed matches life | F3, F10, F13, F14 |
46
+ | G4 | 10 | Camera behavior | One move, the one you asked for, at the distance you asked for; no unrequested drift or zoom | F6, F17 |
47
+ | G5 | 15 | Frame integrity | No extra people or objects; nothing that was in frame at the head of the clip has gone missing or come back changed at the tail; no rendered text or watermark; no morphing background | F9, F11, F19 |
48
+ | G6 | 10 | Look consistency | Lighting direction, level, color temperature, and grain hold across the clip | F12, F16 |
49
+
50
+ - **80–100**: use as-is.
51
+ - **65–79**: usable if an edit-side fix exists — trim the bad frames, crop in, regrade, or cover
52
+ the moment with a cut. Log the fix in the timeline note, not just in your head.
53
+ - **Below 65**: regenerate. Change exactly one thing per retry, or you will not learn which change
54
+ worked.
55
+
56
+ Worked example — `UTD_SC07_SH04_v05_clip.mp4`, the irreversible delivery, generated as plain
57
+ image-to-video from the first frame alone:
58
+
59
+ ```text
60
+ G1 identity 5/5 × 25 = 25.0 narrow jaw, deep-set eyes under the low brow, and the 2 cm
61
+ left-eyebrow scar all hold; so does the missing collar button
62
+ G2 action 4/5 × 20 = 16.0 envelope goes under, but the two-finger push starts before
63
+ the feed completes, so the end state arrives 14f early
64
+ G3 motion 2/5 × 20 = 8.0 right hand shows a sixth finger from 0:03.6 to 0:04.1
65
+ G4 camera 5/5 × 10 = 10.0 25cm dolly-in, one direction, no reverse
66
+ G5 frame 5/5 × 15 = 15.0 clean; door chip present throughout
67
+ G6 look 4/5 × 10 = 8.0 gap line brightens about 1/3 stop over the clip
68
+ -------
69
+ 82.0 -> but G3 is a blocker (F10, visible hand). Regenerate.
70
+ ```
71
+
72
+ That is the point of keeping blockers separate from the score. At 82 the rubric alone would pass
73
+ this clip; the hand disqualifies it regardless. `v06` fixed both flagged rows with one change —
74
+ re-generating as first/last-frame, with the last frame showing empty hands and two fingertips on
75
+ wood, which is what the shot plan's generation note asked for in the first place. It scored 91.
76
+ Had `v06` also failed, the next step was the shot plan's stated contingency: split into `04a`
77
+ crouch-and-feed and `04b` two-fingers-pushing, and re-time the scene.
78
+
79
+ ## Gate 3 — SEQUENCE
80
+
81
+ Only meaningful on the assembled cut. These failures are invisible clip by clip. Rows are `Q`-prefixed
82
+ because `S` belongs to the four prompt shapes in
83
+ [ai video tool adapters](../references/ai-video-tool-adapters.md); a `Q` in a QC note is always a
84
+ sequence row.
85
+
86
+ | # | Weight | Category | Check | F-codes |
87
+ |---|---|---|---|---|
88
+ | Q1 | 25 | Splice continuity | Identity, wardrobe, prop state, and light state hold across every splice; end state of shot N matches start state of N+1 | F1, F7, F19 |
89
+ | Q2 | 20 | Rhythm | ASL matches the scene's subject; no shot outstays its information; the cut has a shape rather than a constant pulse | — |
90
+ | Q3 | 15 | Geography & direction | The 180° line is respected or deliberately broken; eyelines match; direction of travel is consistent | F7, F17 |
91
+ | Q4 | 15 | Look uniformity | One grade pass across all clips; no clip is brighter, warmer, or grainier than its neighbours | F12, F16 |
92
+ | Q5 | 15 | Sound | One continuous bed under the whole scene; no tone change at any picture cut; lip movement matches any spoken line | F15, F18 |
93
+ | Q6 | 10 | Story delivered | A viewer who has not read the script understands what happened and what it cost | — |
94
+
95
+ Threshold to deliver: **85 / 100**. The sequence gate is stricter than the clip gate because
96
+ sequence errors are the ones an audience actually notices — nobody watches a clip in isolation.
97
+
98
+ ## Blockers — must fix regardless of score
99
+
100
+ A clip or cut carrying any of these does not ship, even at 95.
101
+
102
+ - An identity break a viewer can name: a different face, a vanished anchor, a changed garment (F1).
103
+ - The requested action did not happen, or a different action happened (F4).
104
+ - An extra person, hand, or animal in frame (F9).
105
+ - A prop the story depends on vanishes mid-clip, or reappears as a different object (F19).
106
+ - Rendered text, signage, subtitles, or a watermark (F11).
107
+ - Anachronism in a period scene, against the book's `must avoid` list (F8).
108
+ - An anatomy failure on a visible hand or face: extra fingers, fused limbs, a face that liquefies
109
+ mid-shot (F10).
110
+ - A continuity contradiction across a cut that a second viewing exposes (F7).
111
+ - Audio contradicting picture: lips that do not match the line, room tone that changes at a
112
+ splice (F15, F18).
113
+ - Anything the user or the book listed explicitly under `must avoid` or `never`.
114
+
115
+ Everything else is negotiable against schedule. These are not.
116
+
117
+ ## From a failed row to a repair
118
+
119
+ This file scores; it does not diagnose. Take the F-codes attached to whichever row failed and go to
120
+ [failure modes](../references/failure-modes.md), which is the sole owner of the F1–F19 taxonomy — the
121
+ symptom in the user's own words, the ranked causes with their mechanism, the cost-ordered fixes, and a
122
+ before/after prompt pair for every code. If the user described a symptom rather than a failed row,
123
+ start at that file's symptom-to-code quick index and read only the one code it returns; if they
124
+ described several, run its triage tree once per symptom and collect every code before reading any fix.
125
+
126
+ Do not restate the taxonomy here. A second copy drifts within a version or two, and a repair note that
127
+ quotes a drifted row is exactly the untraceable diagnosis the codes exist to prevent.
128
+
129
+ ## How to report a failure
130
+
131
+ Paste this block. Filled, it gets a diagnosis in one pass. Unfilled, it still gets one — the
132
+ diagnosis is simply given against stated assumptions, with the branches that would change it marked,
133
+ because the skill answers on inference rather than interrogating you. The block is the shortcut, not
134
+ the toll gate.
135
+
136
+ ```text
137
+ CLIP: <asset filename with version, e.g. UTD_SC07_SH04_v05_clip.mp4>
138
+ SHOT: <shot id, size, angle, lens, intended duration>
139
+ TOOL: <model or platform, and mode: text-to-video / image-to-video / first+last frame / extend>
140
+ INPUTS: <which keyframes, references, and seeds were used>
141
+ PROMPT: <the exact prompt text, unedited>
142
+ NEGATIVES: <exactly what you passed>
143
+ EXPECTED: <one sentence>
144
+ HAPPENED: <one sentence, plus the timecode of the first bad frame, e.g. "sixth finger at 0:03.6">
145
+ GATE 2 SCORE: <per-category scores, if you ran them>
146
+ ALREADY TRIED: <each retry, and the single thing changed in it>
147
+ CONSTRAINTS: <credits left, deadline, whether the keyframe may be regenerated>
148
+ ```
149
+
150
+ Two fields do most of the work. The timecode of the first bad frame separates a prompt problem
151
+ from a duration problem: a failure at 0:00 is the prompt or the reference, a failure at 0:03 of a
152
+ 4s clip is almost always length. And `ALREADY TRIED` stops a diagnosis from proposing a retry that
153
+ has already failed — which is, in practice, the most common way credits get spent twice.
@@ -0,0 +1,95 @@
1
+ # Shot Plan Template
2
+
3
+ Load this file when you are at Step 7 (shot list and coverage) or the user asked for Mode D — a shot list, 分镜表, storyboard table, or "give me the shots".
4
+
5
+ Build rows only after the beats exist ([beat sheet](beat-sheet-template.md)) and the rules exist ([director book](director-book-template.md)). A shot plan written before those two is a list of pictures.
6
+
7
+ ## Shot table
8
+
9
+ | # | Sec | Beat / function | Loc | Frame content | Blocking start → move → end | Size / Angle | Lens | Move | Light dir | Light / atmos | Continuity anchors | Risk | Transition | Gen note |
10
+ |---:|---:|---|---|---|---|---|---|---|---|---|---|---|---|---|
11
+ | 01 | | | | | | | | | | | | | | |
12
+ | 02 | | | | | | | | | | | | | | |
13
+
14
+ ## Field dictionary
15
+
16
+ | Column | Must contain | Good | Bad |
17
+ |---|---|---|---|
18
+ | `#` | Story-order number, zero-padded, stable for the life of the project | `04`, later split into `04a` / `04b` | `Shot 4 (was 3)` |
19
+ | `Sec` | In and out inside the scene, plus duration | `0:12–0:18 (6s)` | `about six seconds` |
20
+ | `Beat / function` | The beat id from the beat sheet, plus the job this shot does for it | `B4 · irreversible delivery` | `emotional moment` |
21
+ | `Loc` | The continuity-bible location id, plus which setup within it | `loc_landing / door side, low` | `hallway` |
22
+ | `Frame content` | What a storyboard artist would draw: subject placement plus the two or three set and prop elements that must be in frame | `head and near shoulder frame-left, dark door plane fills frame-right, envelope edge low-left` | `he stands at the door` |
23
+ | `Blocking start → move → end` | Three states, the last one named explicitly | `starts squared to the door → right hand rises, knuckles stop 3cm short → ends hand down at his thigh, still facing the door` | `he hesitates to knock` |
24
+ | `Size / Angle` | One size off the ladder plus an angle in degrees or a named height. Give camera heights in cm so nothing here can be misread as a focal length | `MCU, eye level` / `MS, low, camera 40cm off the floor, tilted up 10°` | `medium-ish, dramatic angle` |
25
+ | `Lens` | Focal length in mm (full-frame equivalent) and, when not obvious, the reason | `85mm — compresses the gap and keeps the corridor out of the background` | `telephoto` |
26
+ | `Move` | Exactly one named move with distance and duration, or `locked` | `slow dolly-in, 25cm over 6s` | `slight push with a bit of drift` |
27
+ | `Light dir` | Key direction relative to *this* camera, height, the named practical motivating it, the ratio written lit side : shadow side as the book records it, and what the fill actually is. Call a source behind the subject a rim, not a fill — a fill opens the shadow side and must sit near the lens axis to do it | `key: bulb, high camera-left 45°, 5:1, fill is plaster bounce only; window is a cold rim from upstage` | `moody side light` |
28
+ | `Light / atmos` | What the light does in this frame that it did not do in the last one — contrast, atmosphere, which plane is held under | `door face 1.5 stops under; dust in the window shaft; breath visible` | `dark and cold` |
29
+ | `Continuity anchors` | The named items that must match adjacent shots: identity, costume, prop state, light state | `scar through the left eyebrow, cap pushed back, satchel on left shoulder, envelope white face out, knuckle scrape right hand, warm line under door unbroken` | `same character and setting` |
30
+ | `Risk` | The band — `Green` / `Amber` / `Red` — read off the difficulty rubric in [production workflow](../references/production-workflow.md), plus the six dimension scores in the rubric's own order and the one that drove the band | `Red 12 (3/1/1/2/3/2) — interaction 3, and it trips the contact override` | `might be tricky` |
31
+ | `Transition` | How you leave the shot, and on which frame | `hard cut the frame the fingertips touch wood` | `cut to next` |
32
+ | `Gen note` | The one thing the generator will get wrong, the instruction that prevents it, and the split plan if it still fails | `say "his knuckles stop short and never touch the door"; negative: knocking, hand on door. If it knocks anyway, drop to 3s.` | `use a good prompt, high quality` |
33
+
34
+ ## Risk legend
35
+
36
+ Risk is a generation budget, not commentary. Score the six dimensions and read the band — Green, Amber, Red — off the difficulty rubric in [production workflow](../references/production-workflow.md), which also owns the retry budgets and the stop rules. Copy the band and the six scores into this column, in the rubric's order — Action / People / Camera / Duration / Interaction / Continuity — with the dimension that drove the band, and do not invent a second scale here; a plan that grades on its own private words cannot be budgeted against the retry table.
37
+
38
+ In the worked example below the bands read 01 Green, 02 Amber, 03 Green, 04 Red, 05 Green. Shot 04 scores 12 — action 3, people 1, camera 1, duration 2, interaction 3, continuity 2 — and it also trips the contact override, because the envelope passes between his hand and the door and the rubric counts a prop passing between a subject and a fixed feature as contact. The override is the useful half of that reading: a 3-on-interaction plus 3-on-anything pair does not come down with a better prompt, only with the split already written into its Gen note.
39
+
40
+ One Red in five is a plan. Three Reds in five is a wish — go back to Step 5 and lower the ambition, or split those shots on paper now rather than after a day of failed generations.
41
+
42
+ ## Worked example
43
+
44
+ Project `Under the Door`, scene 7 — 22s, 16:9, 5 shots, ASL 4.4s. Beats `B1`–`B5` from [beat sheet](beat-sheet-template.md); lens kit, key direction and invariant strings from [director book](director-book-template.md).
45
+
46
+ | # | Sec | Beat / function | Loc | Frame content | Blocking start → move → end | Size / Angle | Lens | Move | Light dir | Light / atmos | Continuity anchors | Risk | Transition | Gen note |
47
+ |---:|---:|---|---|---|---|---|---|---|---|---|---|---|---|---|
48
+ | 01 | 0:00–0:04 (4s) | B1 · locate the errand | loc_landing / stairhead side | stair rail foreground frame-left, empty landing, cracked plaster filling the top third, door at frame-right, cold window shaft raking in from the back | starts off-frame below on the stairs → climbs into frame, three steps across the landing → ends squared to the door 60cm out, envelope up at chest, motionless | WS, high +15° from the half-landing | 35mm — holds him and the whole door in one frame | locked | key: stairhead bulb, high camera-left 45°, 5:1, fill is plaster bounce only; the window is a cold rim from upstage, not a fill | door face 1.5 stops under; dust in the window shaft; breath faintly visible | cap pushed back, grey padded jacket, satchel on left shoulder, envelope white face out, chipped lower-left door corner, warm line under door unbroken | Green 5 — one walking figure carrying a prop, locked camera | hard cut the frame he stops | I2V from keyframe, 4s. State the end state ("he stops walking and stands still facing the door") or he is as likely to be walked straight past it. One motion only — do not also animate the window light. |
49
+ | 02 | 0:04–0:09 (5s) | B2 · the hand that cannot knock | loc_landing / door side | his head and near shoulder frame-left, dark door plane fills frame-right, envelope edge low-left | starts squared to the door, envelope in his left hand → right hand rises, knuckles stop 3cm short of the wood, held 1s → ends hand down at his thigh, still facing the door, envelope still up | MCU, eye level | 50mm — his single coverage, keeps the door plane readable behind him | locked | key: bulb, high camera-left 45°, rakes the side of his face; the window is behind him, so it rims his back and cap from camera-left rear and never opens the shadow side | door stays dark, nothing on it; 5:1; breath visible against the cold rim | the scar through his left eyebrow legible at this size; same cap, jacket, satchel and envelope; knuckle scrape on the right hand | Amber 7 (2/1/0/1/2/1) — a hand approaching a surface without contact is a classic completion error | hard cut as the hand reaches his thigh | Say "his knuckles stop short of the door and never touch it"; negative: knocking, hand touching door. Keep a hold-and-abort gesture near 5s: past that the clip has runway left over and tends to fill it with a second, unwanted gesture. |
50
+ | 03 | 0:09–0:12 (3s) | B3 · the person inside becomes real | loc_landing / floor level at the door | the 4cm gap under the door, the warm light line, worn red tile, his boot toe at the bottom frame edge | starts on an unbroken warm line → a shadow crosses it from inside, right to left, as the radio comes up → ends with the line unbroken again but the room now audibly occupied | ECU, head-on, camera 15cm off the floor — the scene's one frontal frame | 85mm — compresses the gap and keeps the corridor out of the background | locked | only source in frame is the spill from inside, behind the door; his side of frame is 3 stops down | highest contrast in the scene; the light line is the sole highlight | tile pattern and grout direction, gap height, worn welt on the boot | Green 2 — no face, no hands, one moving shadow | hard cut as the shadow clears frame | Simplest shot here: generate it first and, where the tool exposes a reference-image or seed slot, use it as the palette reference for the rest. Animate the shadow only; state "the camera does not move and the door does not open." |
51
+ | 04 | 0:12–0:18 (6s) | B4 · irreversible delivery | loc_landing / door side, low | low three-quarter on him crouched frame-left, door plane filling the right two-thirds, envelope entering the gap | starts crouched on his heels, envelope pinched in both hands at the gap → he feeds it under, then pushes with two fingers until his fingertips touch the wood → ends fingertips on the door, hands empty, still crouched | MS, low, camera 40cm off the floor, tilted up 10° | 35mm — the only lens that fits the crouch and the door plane together | slow dolly-in, 25cm over 6s — the scene's one moving shot | key: bulb still on his back and cap from camera-left; the gap line underlights his hands from 20cm; his face 2 stops down | warmest and lowest frame of the scene; the light line is briefly blocked by the envelope, then unbroken | envelope white face out until it disappears, two fingers of the right hand, knuckle scrape, door chip visible frame-right | Red 12 (3/1/1/2/3/2) — action 3 and interaction 3: the envelope passes between his hand and the door, which is contact with a fixed feature, so the contact override fires whatever the total says | hard cut the frame the fingertips touch wood | Highest-failure shot in the scene. Where the tool exposes a first/last-frame pair, use it, with the last frame showing empty hands and fingertips on wood. The split is already decided: 04a MS crouch and feed (4s) and 04b ECU two fingers pushing (3s), then re-time the scene. |
52
+
53
+ Shot 05 (B5, aftermath, 4s) is left out of the table for length and reads: EWS, 35mm, high +15°, locked — shot 01's setup with the camera backed up the flight to the half-landing, since the lens does not change and the size has to come from distance. He backs two steps, turns and drops out of frame down the stairs; hold on the empty landing until a shadow crosses the light line from inside. Risk `Green 4`. Cut on the shadow.
54
+
55
+ Check the plan against itself: 4+5+3+6+4 = 22s over 5 shots = ASL 4.4s, inside the book's 4–5s target. Size ladder reads WS(2) → MCU(4) → ECU(6) → MS(3) → EWS(1) — every adjacent pair differs by at least two steps, and 01/05 repeat one setup deliberately as a bookend. One moving shot out of five, on the commitment beat, as the book allows.
56
+
57
+ ## Compact variant
58
+
59
+ Use these three columns when the user wants a short answer, a chat-width table, or a first pass before committing to the full plan. Everything technical collapses into the Frame cell; the story stays legible.
60
+
61
+ | # | Frame | Action → end state |
62
+ |---:|---|---|
63
+ | 01 | WS · 35mm · high +15° · locked · 4s | He climbs into the landing, crosses it in three steps — ends squared to the door 60cm out, envelope at chest, motionless. |
64
+ | 02 | MCU · 50mm · eye level · locked · 5s | His right hand rises and stops 3cm short of the wood — ends hand down at his thigh, still facing the door. |
65
+ | 03 | ECU · 85mm · head-on, 15cm off the floor · locked · 3s | A shadow crosses the warm line under the door — ends on the line unbroken, the room now audibly occupied. |
66
+ | 04 | MS · 35mm · low · dolly-in 25cm · 6s | Crouched, he feeds the envelope under and pushes with two fingers — ends fingertips on wood, hands empty. |
67
+ | 05 | EWS · 35mm · high +15° · locked · 4s | He backs off, turns and drops down the stairs — ends on the empty landing as a shadow crosses the light line. |
68
+
69
+ ## Coverage check
70
+
71
+ Read the plan column-wise before you read it row-wise. Each of these catches a different class of error.
72
+
73
+ - Every beat has at least one shot. The turn beat may have two or three; no other beat may have more shots than the turn beat.
74
+ - Every shot has exactly one job. Two jobs means two shots, or one shot re-blocked so the second job disappears.
75
+ - Read the Frame content column alone, top to bottom. It should tell the story without the other columns. If it reads as five variations on one picture, you have angles, not coverage.
76
+ - Read the Blocking column alone. Each end state should be the next row's start state — or the cut is doing work nobody has accounted for, and you should say what. The example has exactly one gap: 02 ends standing and 04 starts crouched. Shot 03 is what covers the crouch, and that is half of why it exists; if you cut it, you owe the audience the move.
77
+ - Count the moving shots against the book's move budget. Over budget means the moves have stopped meaning anything.
78
+ - Track screen direction down the page. In the example the courier faces camera-right at the door in every row; the first row that reverses that owes the audience a neutral shot or a cutaway.
79
+ - Confirm the scene has an entry the audience can orient in and an exit they can leave on. A scene that starts on an insert and ends on an insert has no geography.
80
+
81
+ Each row hands Step 8 (keyframes) its Frame content, Size, Lens, Light dir and Continuity anchors, and hands Step 10 (video prompts) its Blocking, Move, end state and Gen note. If a cell is empty, the downstream prompt will invent something in its place.
82
+
83
+ ## Rules
84
+
85
+ - Shot numbers follow story order, not production order, and stay stable. Splitting a shot yields `04a` / `04b`; it never renumbers `05`.
86
+ - Beat and story function must be explicit. If that cell is empty, the shot probably should not exist.
87
+ - Blocking must contain a start and an end state, and **every shot must name its end state** in words a generator can be held to. "He hesitates" is not an end state; "hand down at his thigh, still facing the door" is. Staging geometry and blocking notation live in [blocking and staging](../references/blocking-and-staging.md); this column records the result, not the reasoning.
88
+ - Every shot needs one dominant camera move or none — never two. If the shot needs a move and then a reframe, it is two shots.
89
+ - Size change at a cut is conditional on angle change, and the condition is the one in [cinematic language](../references/cinematic-language.md): stay on the same axis and you owe two size steps, because one step on the same axis reads as a stutter rather than a cut; change the angle by 30° or more and one step is enough. A deliberate match — a true match cut, or a repeated setup used as a bookend — is exempt from both. Count the rungs on the ladder that file owns.
90
+ - Lens and distance-to-subject stay matched across a shot-reverse-shot pair, and the only sanctioned break is the deliberate power imbalance — that rule is owned by [cinematic language](../references/cinematic-language.md). Record the choice and its reason in the `Lens` cell; do not grant yourself a second exception here.
91
+ - Light direction may not change between shots of the same moment unless a source in the world changed. That is what the Light dir column is for — scan it down the page and any unexplained flip is a continuity error you can catch before generating.
92
+ - Continuity anchors name specific items — face, costume, prop state, light state. Copy them from [continuity bible](../references/continuity-bible.md); do not invent them per row.
93
+ - Do not cross the line or break screen direction between rows. Coverage geometry lives in [cinematic language](../references/cinematic-language.md).
94
+ - Seconds must reconcile with the beat sheet's estimates and the book's target ASL. If the three disagree, fix the document that is wrong rather than adjusting the arithmetic.
95
+ - Grade Risk before writing a single prompt, and split the `Red` rows on paper. Symptom-to-fix repair for shots that fail anyway is in [failure modes](../references/failure-modes.md).