@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,181 @@
1
+ # Sound & Dialogue Plan Template (Mode H)
2
+
3
+ Load this file when you are at Step 11 (sound and dialogue plan) or the user asked for Mode H.
4
+ Sound craft — what a bed does, how audio leads a cut, lip-sync and VO technique, what music is
5
+ for — is owned by [sound and dialogue](../references/sound-and-dialogue.md). Cut points and pacing
6
+ math are owned by [editing and assembly](../references/editing-and-assembly.md). Asset naming is
7
+ owned by [continuity bible](../references/continuity-bible.md). This file owns the spreadsheet you
8
+ hand to whoever builds the mix.
9
+
10
+ The worked example inherits its sound direction from [director book](director-book-template.md)
11
+ and its shot timings from [shot plan](shot-plan-template.md): project `Under the Door` (`UTD`),
12
+ scene 7, 22s, five shots — a courier hesitates outside a Republican-era Shanghai apartment door,
13
+ slides an envelope under it, and leaves.
14
+
15
+ ## The five layers
16
+
17
+ Every shot gets an entry in all five layers, even when the entry is `none`. A blank you never
18
+ decided is a hole in the mix; a `none` you decided is a choice, and the difference is visible on
19
+ the page.
20
+
21
+ | Layer | Code | Cut to picture? |
22
+ |---|---|---|
23
+ | Room tone(房间底噪) | RT | No — continuous |
24
+ | Ambience(环境声) | AMB | No — continuous |
25
+ | Foley(拟音) | FOL | Yes — frame-accurate |
26
+ | Spot FX(效果音) | SFX | Yes — frame-accurate |
27
+ | Music(音乐) | MUS | No — to named beats on its own bar grid, never to a picture cut |
28
+
29
+ What each layer is, and the level range each one sits in, belong to
30
+ [sound and dialogue](../references/sound-and-dialogue.md) and are deliberately not repeated here —
31
+ two copies of a level table is how a mixer ends up 10 dB off. One thing worth carrying across
32
+ while you fill the sheet: every level in the skill is dB relative to dialogue at 0, the programme
33
+ is anchored once at delivery rather than per layer, and in a scene with no dialogue the 0 is
34
+ notional — the level dialogue would have occupied — so the ranges do not move.
35
+
36
+ One classification rule this sheet does enforce, because it is the cell people get wrong: anything
37
+ continuous is RT or AMB whatever object makes it, and only discrete designed events are SFX. A
38
+ filament hum belongs in room tone, not in a spot-FX cue that never stops.
39
+
40
+ ## The continuous-bed rule
41
+
42
+ Room tone and ambience run as one unbroken pair of tracks across the whole scene, laid before any
43
+ other layer and never cut at a picture edit. Only foley, spot FX, and music are cut to picture.
44
+
45
+ This matters more in AI video than in live action: generated clips each carry their own invented
46
+ audio and no two agree about the room, so splicing them produces an audible tone change at every
47
+ edit — the aural version of a seam (F15, F18). The fix is procedural, not creative:
48
+
49
+ 1. Mute or discard every generated audio track. Treat generated audio as a timing reference only.
50
+ 2. Lay one room-tone track for the full scene duration plus 1s of handle at each end.
51
+ 3. Lay one ambience track the same way. Change it only when the *space* changes, and then
52
+ cross-fade over 0.5–1.0s, never on a hard cut.
53
+ 4. Build foley and spot FX on top, cut to frame.
54
+ 5. Place music last, against beats you can name.
55
+
56
+ When the picture does cut to a different room, the bed changes — by cross-fade, and that change is
57
+ itself a story event you should be able to justify in one sentence.
58
+
59
+ ## Per-shot five-layer table
60
+
61
+ Columns follow the Mode H notation in [sound and dialogue](../references/sound-and-dialogue.md):
62
+ `Space` names the shot size and any source not in the camera's room — `same room` when there is none — so the perspective moves with the coverage instead of sitting flat across every size. The four cases and their level, filter and reverb offsets are owned by [sound and dialogue](../references/sound-and-dialogue.md). `@t` is time from that shot's first frame, never program time. Absolute program timecodes live in
63
+ one place only, [edit timeline template](edit-timeline-template.md), so a re-time changes one
64
+ document instead of two. Write `none` in a cell you decided against; leave nothing blank.
65
+
66
+ | Shot | In–Out | Space | RT | AMB | FOL | SFX | MUS | Dialogue/VO | Silence |
67
+ |---|---|---|---|---|---|---|---|---|---|
68
+ | `SHnn` | | | | | | | | | |
69
+
70
+ Filled — `UTD_SC07`. The book's sound direction is explicit: no score anywhere in this scene, and
71
+ the paper scraping tile is the loudest thing in it. There is no dialogue here, so 0 is notional and
72
+ every level below is read off the bands in
73
+ [sound and dialogue](../references/sound-and-dialogue.md) — the paper cue sits at the top of the
74
+ spot-FX band rather than being promoted to 0, which keeps this sheet legible next to a scene that
75
+ does have dialogue in it.
76
+
77
+ | Shot | In–Out | Space | RT | AMB | FOL | SFX | MUS | Dialogue/VO | Silence |
78
+ |---|---|---|---|---|---|---|---|---|---|
79
+ | `SH01` | 0:00–0:04 | WS, stairwell — same room; street is outside heard from inside | Stairwell tone with the filament bulb's hum baked into it, 0.8s reverb tail, continuous, −34 | Street two floors down, distant, no traffic detail, −28 | Cloth shoes on tile, three crossing steps @0.4 / @1.1 / @1.7, the last one short; satchel canvas shift on the stop | none — the hum is continuous, so it belongs in RT and never gets its own cue | none — no score in this scene | none | none |
80
+ | `SH02` | 0:04–0:09 | MCU, landing — same room; radio is through a closed door | bed continues | Radio behind the door comes up @0.6 to −18, mid-band only, no intelligible words | Padded-jacket rustle as the arm rises @0.8; one swallow, close, @2.4; jacket settle @4.2 | none | none | none | none |
81
+ | `SH03` | 0:09–0:12 | CU, landing — same room; radio and chair are through a closed door | bed continues | Radio holds; street ducks 2 dB | none — deliberate | Chair scrape behind the door @1.5, the first hard sound in the scene | none | none | The book's 1.5s of near-silence, @0.0–@1.5. Not digital silence: the bed stays under, everything else out |
82
+ | `SH04` | 0:12–0:18 | MS low, landing — same room; radio through the door, gap line at 20cm | bed continues | Radio holds, unchanged | Knees and heels on tile @0.2; two fingers on wood @5.4 | Paper scraping tile @2.0–@4.6 at −6, the top of the spot-FX band and the loudest cue in the scene, alone in its band | none | none | none |
83
+ | `SH05` | 0:18–0:22 | WS, stairwell — same room; radio recedes through the door as he goes | bed continues; tone tail runs 1.0s past picture | Radio and street unchanged — nothing acknowledges that he left | Two backing steps, then four descending, each 2 dB quieter, gone by @3.0 | none | none | none | none |
84
+
85
+ Reading it: the bed never breaks; only foley and spot FX respect the cuts; the radio enters on
86
+ `SH02` and never leaves, so the room behind the door stays occupied for the rest of the scene.
87
+ `SH03` carries the scene's turn in its Silence cell and has an empty foley line on purpose — which
88
+ is the reason the column exists. A blank there would have read as an oversight and someone would
89
+ have filled it with footsteps.
90
+
91
+ ## Music brief
92
+
93
+ One block per cue, in the field set owned by
94
+ [sound and dialogue](../references/sound-and-dialogue.md) — brief the function, never the genre.
95
+ When the scene has no score, still write the block: the decision is worth recording, and a written
96
+ `none` is the only thing that stops someone adding a cue in the mix six weeks later.
97
+
98
+ ```text
99
+ CUE M0 "no cue"
100
+ FUNCTION: none. The book scores this scene with a radio the courier cannot control
101
+ IN: n/a
102
+ OUT: n/a
103
+ TEMPO: n/a
104
+ INSTR: n/a
105
+ SHAPE: n/a
106
+ NOT: no cue at any level anywhere in SC07, including under the exit and the end tail
107
+ ENFORCED: no music track exists in the timeline; every generated clip's audio is muted at import
108
+ ```
109
+
110
+ The diegetic radio is briefed as a source element, not a cue. It belongs to ambience in the layer
111
+ table and to the location in the continuity bible, but it needs a brief of its own because someone
112
+ has to make or license it, and because it is the only thing in the scene an era error can reach:
113
+
114
+ ```text
115
+ SOURCE SRC-radio "behind door 3F"
116
+ FUNCTION: keep the room he will not enter occupied, from SH02 to the end
117
+ PLACEMENT: heard through a closed dark-stained door — low-pass around 900 Hz, 0.8s stairwell tail
118
+ IN: SH02 @0.6
119
+ OUT: runs past picture; leaves with the room-tone tail
120
+ ERA: 1937 Shanghai broadcast idiom; small band, no synthesis, no modern kit
121
+ LEVEL: -18, ducking 2 dB while the paper cue runs
122
+ NOT: never intelligible in any language; never lands on a cut; never changes program at the
123
+ chair scrape; never resolves when he leaves
124
+ ```
125
+
126
+ Two habits behind those blocks. Name the function before the instrumentation, because a function
127
+ survives a change of composer and "solo cello" does not. And fill `NOT:` every time — most bad cues
128
+ fail by doing too much, and the exclusion is the only line that stops them.
129
+
130
+ ## Dialogue & VO sheet
131
+
132
+ Speaking rates, the VO density ceiling, and the clip-length formula are owned by
133
+ [sound and dialogue](../references/sound-and-dialogue.md). Two of its numbers do all the work in
134
+ this column, and they are not the same number:
135
+
136
+ - **On camera**, the clip has to hold more than the words: `clip = 0.6s pre-roll + line ÷ rate +
137
+ 0.8s hold`, then add 2.5s of handle to the generation — a dialogue take is character performance
138
+ and pays the full rate, and the handle budget is owned by
139
+ [editing and assembly](../references/editing-and-assembly.md). A line that merely fits the clip
140
+ length does not fit the clip.
141
+ - **Voice-over** is laid in the mix, so it budgets the speech only — but it is capped by picture,
142
+ not by rate: about 1.3 words per second of shot, roughly half dialogue density.
143
+
144
+ Estimates are for planning. Measure the recorded take before locking picture.
145
+
146
+ | ID | Shot | Speaker | On/Off | Lang | Line | Delivery | Count | Est. dur | Decision |
147
+ |---|---|---|---|---|---|---|---|---|---|
148
+ | D1 | `SHnn` | | | | | | | | |
149
+
150
+ Filled — `UTD_SC07` and the head of the next scene:
151
+
152
+ | ID | Shot | Speaker | On/Off | Lang | Line | Delivery | Count | Est. dur | Decision |
153
+ |---|---|---|---|---|---|---|---|---|---|
154
+ | A1 | `SH02`–`SH05` | Radio behind door | Off | — | non-verbal, no intelligible words | Muffled, mid-band | — | 18.0s | Not dialogue. Never treat as a line; no lip-sync risk; must not become intelligible in the mix |
155
+ | V1 | `SH05` | Courier | VO | EN | "I told myself it was kindness." | Slow, weighted | 6 words | 3.0s speech | **Cut.** 6 words over a 4s shot is 1.5 words/s, over the VO ceiling — but that is not why it goes. At any length it explains the shot's only job. The aftermath is the argument; a VO turns it into a caption |
156
+ | D2 | `SC08_SH01` | Woman, 50s | On camera | 中文 | 「他没有敲门。」 | Slow, flat, reading aloud | 5 spoken chars | 2.8s clip | Keep. 5 ÷ 3.5 = 1.4s of speech, plus 0.6s pre-roll and 0.8s hold = 2.8s inside a 4s clip; generate at 6.5s, because a performance take pays the 2.5s handle and a first/last-frame pair cannot buy it back — the drift is between the pinned frames. Lip-sync required: generate speech, or shoot mute and lay VO |
157
+
158
+ Three decisions that sheet forces now instead of during the mix. A1 is not a line, so nobody
159
+ records it and no model is asked to lip-sync it. V1 dies on the page rather than after someone
160
+ records it, and the arithmetic is the cheap part of that call — count the spoken units before you
161
+ argue about the words. Note what is *not* counted in D2: the full-width period is a spoken pause,
162
+ not a character, and counting punctuation is the standard way a Chinese line comes back 20% over
163
+ its budget. D2 is also the project's only lip-sync shot, so it is the only place F15 can occur;
164
+ budget the retries there and nowhere else.
165
+
166
+ ## Handoff checklist
167
+
168
+ - [ ] Room tone and ambience exist as single continuous files, scene length plus 1s handles,
169
+ named `PROJ_SCnn_vNN_amb.wav` — version before role, per the continuity bible's grammar.
170
+ - [ ] Every generated clip's native audio is muted or deleted, not merely lowered.
171
+ - [ ] Every foley entry names the material, not just the object — "cloth shoes on tile".
172
+ - [ ] Every spot FX has an `@t` from its own shot's first frame, not just a shot number.
173
+ - [ ] The Silence column is filled on every row, including `none`, and nothing over 1s is held at
174
+ true digital zero — the bed stays under it.
175
+ - [ ] The music block exists even when the answer is "no score", and says who enforces it.
176
+ - [ ] Every dialogue line has an estimated duration and an explicit lip-sync decision.
177
+ - [ ] Any on-camera line fits pre-roll plus speech plus hold inside its clip — not just the speech.
178
+ - [ ] Every on-camera line is ordered at clip length plus the 2.5s performance handle, not at clip
179
+ length.
180
+ - [ ] Total dialogue and cue durations checked against the cut length in
181
+ [edit timeline template](edit-timeline-template.md).
@@ -0,0 +1,305 @@
1
+ # Video Motion Prompt Template (Mode F)
2
+
3
+ Load this file when you are at Step 10 (AI video prompt construction) or the user asked for Mode
4
+ F — finished prompts to paste into a generator. The four prompt shapes and their slot orders,
5
+ which slots a given model actually reads, and what its UI controls instead of text are owned by
6
+ [AI video tool adapters](../references/ai-video-tool-adapters.md). Word choice, word budgets,
7
+ banned words, the negative library and the cut order for an over-long prompt are owned by the
8
+ [prompt lexicon](../references/prompt-lexicon.md). This file owns the fill-in forms and the
9
+ per-prompt self-check.
10
+
11
+ Every worked example inherits from [director book](director-book-template.md) and
12
+ [shot plan](shot-plan-template.md), and animates the stills built in
13
+ [keyframe prompt template](keyframe-prompt-template.md): project `Under the Door` (`UTD`), scene
14
+ 7, 22s, 16:9, five shots — a courier hesitates outside a Republican-era Shanghai apartment door,
15
+ slides an envelope under it, and leaves.
16
+
17
+ ## Token economy
18
+
19
+ The slot order below is S1 in [AI video tool adapters](../references/ai-video-tool-adapters.md),
20
+ which owns the four shapes and their slot lists; the word budgets — for image-to-video, roughly
21
+ 40–80 words — the reasons the order matters, and the cut order for an over-long prompt are owned by
22
+ the [prompt lexicon](../references/prompt-lexicon.md). What this table adds is how that budget
23
+ divides and when a slot disappears entirely. `Slot` is position in the prompt, not importance: the
24
+ action and the end state are the two things the lexicon says never to cut.
25
+
26
+ | Slot | Content | Share of the budget | Cut it entirely when… |
27
+ |---|---|---|---|
28
+ | 1 | Camera behavior — one move, one speed, or `locked` | 10–15% | The tool has a camera-motion UI; set it there, not in text |
29
+ | 2 | Subject start state, only what the input frame already shows | 10% | Text-to-video: there is no input frame to anchor to |
30
+ | 3 | One primary action, with its pace and direction | 32% | Never |
31
+ | 4 | One environmental response | 10% | The scene has no movable element |
32
+ | 5 | Explicit end state | 15% | Never |
33
+ | 6 | Continuity lock — the book's invariants compressed to one clause | 10% | The clip is under 2s and locked |
34
+ | 7 | Exclusions — two or three risk classes | 8% | The tool has a real negative field; put them there instead |
35
+
36
+ Pace belongs inside slot 3 and does not get a slot of its own. A bare pace word floating between
37
+ the lock and the exclusions attaches itself to the nearest verb, which is as often the camera as
38
+ the subject — say "lowers slowly to his thigh over about two seconds", not "slow motion".
39
+
40
+ Slots 1–5 come to roughly 80% of an image-to-video prompt. If most of the prompt
41
+ re-describes what the input image already proves, you are paying tokens for nothing and diluting
42
+ the action. Each filled example below carries its word count — check yours against them, not
43
+ against how thorough the prompt feels.
44
+
45
+ ## Slot dictionary
46
+
47
+ | Bracket | Put in it | Never put in it |
48
+ |---|---|---|
49
+ | `[camera]` | One named move plus a speed and a distance, or `locked` | A second move; a move the tool controls by slider; "dynamic camera" |
50
+ | `[start state]` | A static, checkable body position that matches the input frame | New wardrobe, new props, a new location |
51
+ | `[action]` | One transitive verb, its object, a speed, a direction | Interior states: realizes, remembers, feels, struggles, hesitates |
52
+ | `[environment]` | One movable element: a shadow, cloth, dust, a light line, breath | A second character; a second action by the subject |
53
+ | `[end state]` | A pose or composition you could photograph as a still | "and then he leaves and it fades" — that is two shots |
54
+ | `[invariants]` | The book's `ID_`, `LOCK_`, `LIGHT_` strings, compressed to one clause | A full re-description of the input image |
55
+ | `[negatives]` | The 2–4 risks specific to this shot, plus only those `NEG_BASE` classes this framing can actually produce, to a combined ceiling of about six — the dilution rule is owned by [prompt lexicon](../references/prompt-lexicon.md) | A wall of negatives copied from another shot; a category ("no modern objects") rather than named instances |
56
+ | `[sound]` | Only if the model generates audio: the source, not an adjective | Anything the sound plan owns; see Mode H |
57
+
58
+ Where the tool has a separate negative field, put the whole of `NEG_BASE` in it — it costs nothing
59
+ there. Inline negatives are the ones that have to fight the positive prompt for attention, so
60
+ inline only what this framing can actually produce: "no extra people" earns its place in a landing
61
+ wide, not in an extreme close-up of a 4cm gap.
62
+
63
+ ## Template 1 — image-to-video, single shot
64
+
65
+ ```text
66
+ [Camera]. Starting from the input image, [subject] is [start state], then [one primary action
67
+ with speed and direction]. [Environment element] [moves how]. End with [explicit end state].
68
+ Maintain [invariants]. Avoid [negatives].
69
+ ```
70
+
71
+ Filled — `UTD_SC07_SH02`, 5s, from `UTD_SC07_SH02_v03_kf-first.png`. The input frame has the hand
72
+ down, because that is where shot 01 left it; the raised knuckles are what this clip has to produce:
73
+
74
+ ```text
75
+ Locked camera. His right hand rises until the knuckles stop 3cm short of the wood, holds about one
76
+ second, then lowers slowly to his thigh over about two seconds. The knuckles never touch the door.
77
+ His breath shows once against the cold rim behind him. End with the hand at his thigh, still facing
78
+ the door, the envelope still up at chest in his left hand. Same face, cap, jacket and satchel side;
79
+ same bulb camera-left. Avoid: the hand touching the door, knocking, the door opening, a second
80
+ person, rendered text.
81
+ ```
82
+
83
+ 91 words, just over the lexicon's 40–80 band, and two of them are the whole shot: `3cm short` and
84
+ `never touch`. If the tool truncates, the breath clause goes first. There is also no separate
85
+ start-state clause, because the action names the limb the frame already shows at rest — slot 2
86
+ earns its tokens only when the input frame leaves it ambiguous which part of the body moves. What
87
+ is *not* in it is the rest of the identity string and the whole room; the input frame proves both,
88
+ and re-describing them is the most common way a prompt starves its own action.
89
+
90
+ 中文变体 / Chinese-UI variant, same shot:
91
+
92
+ ```text
93
+ 固定镜头。他的右手抬起,指节停在距门板3厘米处,停约1秒,再用约2秒缓慢放下到大腿旁。
94
+ 指节始终不碰到门。他的呼吸在身后的冷调轮廓光上出现一次。结尾停在:右手垂在大腿旁,
95
+ 仍正对着门,信封仍举在左手胸前。保持同一张脸、帽子、棉袄、左肩挎带;灯泡仍在镜头左侧。
96
+ 避免:手碰到门、敲门、门被打开、出现第二个人、画面出现文字。
97
+ ```
98
+
99
+ ## Template 2 — first frame + last frame
100
+
101
+ Use when the change has a designed endpoint, and always for the scene's highest-risk shot. The
102
+ two frames must be one action apart; if you cannot describe the bridge in a single clause, split
103
+ the shot.
104
+
105
+ ```text
106
+ Use the first image as the opening frame and the second image as the closing frame. The shot
107
+ travels from [first-frame state] to [last-frame state] through [one continuous action].
108
+ Camera [one move with distance and duration, or locked]. Motion is [pace word].
109
+ Preserve [invariants]. No [negatives].
110
+ ```
111
+
112
+ A pair prompt should be *shorter* than a single-frame one, not longer: both ends are already
113
+ photographs, so the text pays only for the bridge between them. Describing the two stills back to
114
+ the tool is the classic way to waste a keyframe pair.
115
+
116
+ It is also the one generation you order at cut length rather than at cut length plus a handle:
117
+ both ends are pinned by approved stills, so there is no ramp-in to discard and no drift-out to
118
+ trim. That is the single licensed exception to the handle rule in
119
+ [editing and assembly](../references/editing-and-assembly.md), and it does not extend to a
120
+ dialogue take built as a pair — the performance happens between the two frames, which is exactly
121
+ where the drift is.
122
+
123
+ Filled — `UTD_SC07_SH04`, 6s, the scene's one moving shot and its highest-failure clip:
124
+
125
+ ```text
126
+ Use the first image as the opening frame and the second image as the closing frame. Between them,
127
+ one continuous feed-and-push: the envelope slides under the door, then two fingers push it the last
128
+ few centimetres until the fingertips meet the wood, with no stall between the two halves. Camera
129
+ dollies in 25cm over the full six seconds, one direction, no reverse, no reframe. Preserve the same
130
+ courier, satchel on the left shoulder, the door chip at frame-right, the bulb camera-left. No third
131
+ hand, no bending or tearing of the paper, no envelope visible at the end.
132
+ ```
133
+
134
+ 97 words, and the last sentence is three negatives — correct here and nowhere else in this scene.
135
+ This is the plan's one `Red` shot, and each of the three names a failure it has already been graded
136
+ as likely to produce.
137
+
138
+ ## Template 3 — text-to-video
139
+
140
+ No input frame, so you pay for description. Everything a keyframe would have proven now has to be
141
+ written, and identity is the part that will not hold from words alone — expect more retries per
142
+ usable second, and prefer this mode for plates, inserts, and shots with no face.
143
+
144
+ ```text
145
+ [Format, aspect, stock/finish]. [Subject with concrete identity and wardrobe]. [Location, era,
146
+ time of day]. [One primary action with speed and direction]. [Shot size, angle, camera move].
147
+ [Named light source, side, ratio]. [Composition and depth]. [Sound if supported]. [Negatives].
148
+ ```
149
+
150
+ Filled — `UTD_SC07_SH03`, 3s, the one shot in the scene with no face in it, which is exactly why it
151
+ can survive text-to-video:
152
+
153
+ ```text
154
+ 16:9, 35mm film stock, fine grain, low saturation. The 4cm gap under a dark-stained apartment
155
+ door, worn red floor tile, dark-green wainscot above; a third-floor landing in 1937 Shanghai,
156
+ winter. No figure except the toe of one cloth shoe at the bottom edge, motionless. A shadow
157
+ crosses the warm light line under the door from inside, right to left, over about two seconds, and
158
+ the line is unbroken again. Extreme close-up, head-on, camera 15cm off the floor, 85mm, locked.
159
+ The only light in frame is the spill from the room behind the door; the near side of frame is
160
+ three stops under. No rendered text or numerals, no watermark, no second foot, the door never
161
+ opens.
162
+ ```
163
+
164
+ 116 words, inside the lexicon's 60–120 text-to-video band. Read against Template 1 it shows where
165
+ the extra 25 went: format, era, materials, and light source — every line the input frame would
166
+ otherwise have supplied for free.
167
+
168
+ ## Template 4 — multi-shot / timestamped
169
+
170
+ Only for models that honor timestamps. Put the invariants once in the `Overall` line, never
171
+ inside each shot: per-shot repetition eats tokens and invites contradiction. Note that a
172
+ timestamped block gives up per-shot control of duration and cut point, so use it for previs or a
173
+ social cutdown, not for the deliverable when the shot plan has named cut frames.
174
+
175
+ ```text
176
+ Overall: [era, location, palette, stock, identity keywords, continuity rules].
177
+ [00:00-00:0X] Shot 1: [size/angle]. [one action]. Camera [move]. Sound: [source].
178
+ [00:0X-00:0Y] Shot 2: [size/angle]. [one action]. Camera [move]. Sound: [source].
179
+ [00:0Y-00:0Z] Shot 3: [size/angle]. [one action]. Camera [move]. Sound: [source].
180
+ ```
181
+
182
+ Filled — `UTD_SC07` as a 12s three-shot previs block:
183
+
184
+ ```text
185
+ Overall: third-floor landing of a 1937 Shanghai lilong apartment block, peeling dark-green
186
+ wainscot to waist height, cracked cream plaster, worn red floor tile, dark-stained door with a
187
+ chipped lower-left corner, a stairwell window at the head of the stairs opposite the door. One
188
+ bare filament bulb hanging over the stairhead, warm and hard, 5:1 lit side to shadow side; a thin
189
+ warm line spills from
190
+ the 4cm gap under the door. Low saturation, high contrast in the lower third; the envelope is the
191
+ only pure white. One character only: a 19-year-old Chinese man with a narrow jaw, deep-set eyes
192
+ under a low brow, a 2 cm scar through the left eyebrow, black hair clipped short and shaved high at
193
+ the neck, in a grey padded cotton jacket buttoned to the throat with one bone button missing at the
194
+ collar; wool cap pushed back, canvas satchel on the left shoulder. Same face and wardrobe in every
195
+ shot. No rendered text or numerals, no rubber soles, no wristwatch, the
196
+ door never opens.
197
+ [00:00-00:04] Shot 1: wide, high 15 degrees, 35mm. He climbs into frame, crosses the landing in
198
+ three steps and stops squared to the door 60cm out, envelope up at chest. Camera locked. Sound:
199
+ cloth shoes on tile, stairwell reverb.
200
+ [00:04-00:09] Shot 2: medium close-up, eye level, 50mm, bulb camera-left raking his face. He
201
+ raises his right hand, the knuckles stop 3cm short of the wood, he swallows, the hand lowers to
202
+ his thigh. Camera locked. Sound: a muffled radio behind the door, no intelligible words.
203
+ [00:09-00:12] Shot 3: extreme close-up, head-on, camera 15cm off the floor, 85mm, on the 4cm gap
204
+ and its warm light line; the bulb is out of frame here and the line is the only light. A shadow
205
+ crosses the line from inside, right to left, and the line is unbroken again. Camera locked. Sound:
206
+ a chair scrapes behind the door.
207
+ ```
208
+
209
+ Note what moved into the shot lines: camera height in cm, and the key direction. Heights go in cm
210
+ so a reader never parses them as a second focal length, and key direction is camera-relative, so it
211
+ is false the moment a setup changes — it cannot live in the `Overall` block with the invariants.
212
+
213
+ ## Template 5 — continuation / extend
214
+
215
+ For tools that extend a clip from its final frame. An extend continues one shot; it cannot cross a
216
+ cut, because the new footage inherits the old framing, and asking it to change setup produces a
217
+ morph rather than an edit. If the next thing on the timeline is a different size, angle or camera
218
+ height, that is a new generation, not an extension. The extend model also sees the tail of the
219
+ video and not your original prompt, so restate the invariants and start from the **observed** last
220
+ frame, not the one you intended.
221
+
222
+ ```text
223
+ Continue from the final frame of the previous clip. [Subject] is [observed end state, described
224
+ as a still]. Now [the single next action, with speed and direction]. Camera [same behavior as
225
+ before, or explicitly: camera behavior changes to X]. Preserve [invariants]. Do not restart, do
226
+ not reset the pose, do not cut. Avoid [negatives].
227
+ ```
228
+
229
+ Filled — `UTD_SC07_SH05`, extending its own first 3s. The EWS was generated up to the moment he
230
+ leaves frame; the extension is the hold that the shot exists for. Same setup, same lens, same
231
+ camera height — which is what makes it an extension and not a second shot:
232
+
233
+ ```text
234
+ Continue from the final frame of the previous clip. The landing is empty; he has just dropped out
235
+ of frame at the bottom of the stairs. Over about one second a shadow crosses the warm line under
236
+ the door from inside, right to left, and the line is unbroken again. Camera stays locked exactly as
237
+ before; it does not pan down after him. Preserve the worn red tile, the door chip, the bulb
238
+ camera-left, and the grain. Do not restart, do not reset, do not cut. Avoid: the door opening, a
239
+ figure re-entering frame, the warm line going dark.
240
+ ```
241
+
242
+ 99 words, and an extension always runs longer than the shot it continues, because it pays for two
243
+ things a fresh generation does not: a description of what the observed last frame contains, and the
244
+ do-not-restart clause. Everything else should come out. The identity string, for one, is absent on
245
+ purpose — there is no person in this extension, so `ID_COURIER` would be dead tokens at best and an
246
+ invitation to put him back in frame at worst. Preserve what is still in the picture: here the room,
247
+ the light and the texture.
248
+
249
+ ## Template 6 — dialogue shot
250
+
251
+ Only for models that generate speech. Label speakers by a visual attribute, never by a pronoun
252
+ and never by a name the model cannot see. Keep each line inside the clip's speakable budget —
253
+ roughly 2.5 English words or 4.5 Chinese characters per second, and the clip must also carry
254
+ pre-roll before the first word and a hold after the last. Rates and the clip-length formula are
255
+ owned by [sound and dialogue](../references/sound-and-dialogue.md); the sheet that records the
256
+ per-line decision is [sound plan template](sound-plan-template.md).
257
+
258
+ ```text
259
+ [Camera]. [Shot size on the speaker]. [Speaker A: visual label, vocal register, volume]:
260
+ "[line]". [A's visible behavior while speaking — mouth, breath, gaze, hands].
261
+ [Then Speaker B: visual label, vocal register]: "[line]". [B's visible behavior].
262
+ Lip movement must match the spoken line. Preserve [invariants]. Avoid [negatives].
263
+ ```
264
+
265
+ Filled — a shot from the following scene, where the letter is finally read aloud:
266
+
267
+ ```text
268
+ Locked camera, medium close-up, eye level, 50mm, on a woman in her fifties seated at a table by a
269
+ window. Woman in a dark quilted jacket, grey hair pinned back, reading aloud from a single sheet,
270
+ voice low and even, no tremor: 「他没有敲门。」 Her eyes stay on the page, her jaw moves only as
271
+ far as the words require, her free hand flat on the table. No other voice is heard. Lip movement
272
+ must match the spoken line and stops the moment the line ends. Preserve the same face, the quilted
273
+ jacket, the window light from camera-left, the 1937 interior. Avoid: a second speaker, the camera
274
+ pushing in, subtitles burned into the frame, the paper changing shape.
275
+ ```
276
+
277
+ Scene 7 itself has no speech at all — the book's sound direction allows only a muffled radio with
278
+ no intelligible words — which is why this example had to come from the scene after it. When a scene
279
+ is written that way, do not let a speech-capable model fill the silence. Any prompt that puts a
280
+ face in speaking range gets `no speech, no lip movement` in its negatives; the `SH02` prompt above
281
+ does not need it only because the shot never opens his mouth.
282
+
283
+ ## Per-prompt self-check
284
+
285
+ Run on every prompt before you send it. Five questions, and the failure each one prevents.
286
+
287
+ - [ ] **One action.** Count the objectives, not the verbs. One gesture with a named stop is one
288
+ action — rise, stop 3cm short, lower is a single aborted knock, and a swallow or a breath inside
289
+ it is texture. Two objectives is two clips. (Guards F4.)
290
+ - [ ] **One camera move.** Count camera verbs. More than one, or a move plus "dynamic"? Cut to
291
+ one, or lock it. Check it against the book's move budget. (Guards F6.)
292
+ - [ ] **Explicit end state.** Could you photograph the last sentence as a still? If not, rewrite
293
+ it as a pose or a composition. (Guards F5.)
294
+ - [ ] **Invariants present.** The `ID_`, `LOCK_`, and `LIGHT_` strings, compressed but not
295
+ reworded, plus the scene's checkable anchor. (Guards F1, F7, F8, F12.)
296
+ - [ ] **Negatives matched to real risk.** Name the condition in this shot that makes each one
297
+ plausible — including the `NEG_BASE` classes, which you select from rather than paste whole.
298
+ Cannot name it? Delete it. About six classes is the ceiling: every unearned negative dilutes
299
+ the ones that matter, and a category ("no modern objects") dilutes without ever resolving into
300
+ anything the model can withhold. (Guards F8, F9, F11.)
301
+
302
+ Two more that cost nothing: no adjective is doing work a noun could do better, and nothing in the
303
+ prompt merely re-describes the input image. Symptom-to-cause lookup for anything that comes back
304
+ wrong is in [failure modes](../references/failure-modes.md); scoring and gating are in
305
+ [qc checklist](qc-checklist.md).
@@ -0,0 +1,69 @@
1
+ # Running the Evals
2
+
3
+ [evals.json](evals.json) is a behaviour contract, not a suite that executes itself. Each case is a prompt plus assertions checkable from the response text alone. Running it means generating responses, then grading them.
4
+
5
+ ## Run one case by hand
6
+
7
+ 1. Open a fresh session with the skill installed and nothing else in context. A carried-over conversation is the largest source of false passes.
8
+ 2. Paste the case's `prompt` verbatim. Add nothing — no "use the cinematic-director skill", no format hint, no reminder of the mode.
9
+ 3. Save the whole response, preamble included, then grade the assertions in order against that text.
10
+
11
+ One case per session. Two cases in one session lets the second inherit the first's shot plan.
12
+
13
+ ## Run the suite with a grading agent
14
+
15
+ Generate one response per case in `evals.json` first, then grade. Generating and grading in one session leaks the assertions into the answer. Send this once per case, with nothing else in context:
16
+
17
+ ```text
18
+ You are grading one response against a fixed list of assertions. You have no other job.
19
+
20
+ CASE PROMPT:
21
+ <the case's prompt field, verbatim>
22
+
23
+ RESPONSE:
24
+ <the full response text>
25
+
26
+ ASSERTIONS:
27
+ 1. <assertion 1> ... n. <assertion n>
28
+
29
+ For each assertion output exactly one line:
30
+ <n>. PASS|FAIL — <quoted span from the response, or why nothing satisfies it>
31
+
32
+ Judge only what is written in RESPONSE. Do not infer intent, do not credit a near
33
+ miss, and do not reward good work the assertion did not ask for. An assertion naming
34
+ a number, a unit, or a verbatim clause fails unless that number, unit, or clause
35
+ appears in the text. Output no summary and no advice.
36
+ ```
37
+
38
+ ## What counts as a pass
39
+
40
+ | Assertion shape | Passes when |
41
+ |---|---|
42
+ | Names a number or range — "in mm", "sums to 20 seconds", "0-18" | The number is present and inside the range. Arithmetic that does not close is a fail. |
43
+ | Names a verbatim artifact — "repeated verbatim across all four prompts" | The string appears identically in every place the assertion names. |
44
+ | Forbids something — "no segment line contains an emotion word" | Zero instances anywhere in the response. One instance is a fail. |
45
+ | Names a structure — "look, what-is-seen, reaction" | Every named part is present and identifiable. Partial structure is a fail. |
46
+ | Names proportion — "no director's book appears" | Judge the delivered sections, not the word count. |
47
+
48
+ A case passes only when every one of its assertions passes. Assertions are the unit of diagnosis; cases are the unit of the score.
49
+
50
+ ## The pass bar
51
+
52
+ - **Ship bar: 92% of cases** — 52 of the 57 in the suite today. Below that, do not tag a release.
53
+ - **Hard-fail set, which must pass whatever the total:** `symptom-only-no-artifact`, `one-line-ask-one-deliverable`, `multi-shot-timestamped-sequence`, and every case carrying a copyright-safety assertion. These guard guardrails, not craft.
54
+ - Re-run a failing case twice before editing the skill. Three runs distinguish model variance from a real hole; one failure does not.
55
+
56
+ ## The `loads` field
57
+
58
+ `loads` is **advisory and is not graded**. Response text does not reliably state which files were opened, and an assertion that demanded it would be an assertion about hidden reasoning — which this suite forbids. Two ways to check it when it matters: read the harness's tool log for the run and diff the opened paths against `loads`; or, with no log, treat `loads` as a claim about the routing table in [../SKILL.md](../SKILL.md) and verify the table instead of the response. CI checks that every `loads` path exists on disk. It cannot check that a response used it.
59
+
60
+ ## Adding a case
61
+
62
+ 1. Give it a unique lowercase hyphenated id naming the behaviour under test, not the scene.
63
+ 2. Carry exactly the six fields — `id`, `mode`, `loads`, `prompt`, `expected_output`, `assertions`. The validator rejects extras and missing ones.
64
+ 3. Write 5-6 assertions, each checkable from the response text by a reader who has not opened SKILL.md.
65
+ 4. Assert nothing SKILL.md does not specify. Where the skill forbids something, assert the forbidden thing is absent — never assert behaviour the skill rules out.
66
+ 5. A new director overlay needs exactly one case proving the lens changed camera, palette, pacing, or sound, plus the copyright-safety assertion. See [../CONTRIBUTING.md](../CONTRIBUTING.md).
67
+ 6. Run `python3 -c "import json;json.load(open('evals/evals.json'))"` before pushing; the `evals` workflow runs the full validation.
68
+
69
+ Worked example — assertion 4 of `multi-shot-timestamped-sequence`, "no segment line contains an emotion word". Scan the three segment lines only, not the global block or the prose around them. `[00:03-00:06] Close on her hand taking the envelope, camera locked.` carries none, and neither do the other two: PASS. Had it read `she takes the envelope nervously`, that one instance fails the assertion outright — no credit for the two clean segments.