@lemoncat7/dsh-partner 2.5.0 → 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 (642) hide show
  1. package/README.md +4 -0
  2. package/docs/THIRD_PARTY_LICENSES.md +13 -0
  3. package/docs/attachment-storage.md +18 -0
  4. package/docs/director-skills.md +24 -0
  5. package/docs/long-task-continuation.md +1 -1
  6. package/docs/releases/2.6.0.md +11 -0
  7. package/docs/releases/2.7.0.md +21 -0
  8. package/lib/agent-runtime.d.ts +3 -1
  9. package/lib/agent-runtime.d.ts.map +1 -1
  10. package/lib/agent-runtime.js +35 -11
  11. package/lib/agent-runtime.js.map +1 -1
  12. package/lib/api/features/attachments-api.d.ts.map +1 -1
  13. package/lib/api/features/attachments-api.js +31 -1
  14. package/lib/api/features/attachments-api.js.map +1 -1
  15. package/lib/api.d.ts +1 -1
  16. package/lib/api.d.ts.map +1 -1
  17. package/lib/api.js +1 -1
  18. package/lib/api.js.map +1 -1
  19. package/lib/attachments/grouped-storage.d.ts +5 -0
  20. package/lib/attachments/grouped-storage.d.ts.map +1 -0
  21. package/lib/attachments/grouped-storage.js +47 -0
  22. package/lib/attachments/grouped-storage.js.map +1 -0
  23. package/lib/attachments/service.d.ts +17 -0
  24. package/lib/attachments/service.d.ts.map +1 -1
  25. package/lib/attachments/service.js +100 -8
  26. package/lib/attachments/service.js.map +1 -1
  27. package/lib/attachments/shared-storage.d.ts +7 -0
  28. package/lib/attachments/shared-storage.d.ts.map +1 -0
  29. package/lib/attachments/shared-storage.js +44 -0
  30. package/lib/attachments/shared-storage.js.map +1 -0
  31. package/lib/attachments/storage-admin.d.ts +6 -0
  32. package/lib/attachments/storage-admin.d.ts.map +1 -0
  33. package/lib/attachments/storage-admin.js +43 -0
  34. package/lib/attachments/storage-admin.js.map +1 -0
  35. package/lib/attachments/storage-types.d.ts +33 -0
  36. package/lib/attachments/storage-types.d.ts.map +1 -0
  37. package/lib/attachments/storage-types.js +2 -0
  38. package/lib/attachments/storage-types.js.map +1 -0
  39. package/lib/attachments/tool.d.ts.map +1 -1
  40. package/lib/attachments/tool.js +16 -5
  41. package/lib/attachments/tool.js.map +1 -1
  42. package/lib/channels/delivery-policy.d.ts.map +1 -1
  43. package/lib/channels/delivery-policy.js +6 -4
  44. package/lib/channels/delivery-policy.js.map +1 -1
  45. package/lib/channels/direct/message-format.js +418 -281
  46. package/lib/channels/direct/message-format.js.map +4 -4
  47. package/lib/channels/manager.d.ts +6 -3
  48. package/lib/channels/manager.d.ts.map +1 -1
  49. package/lib/channels/manager.js +64 -44
  50. package/lib/channels/manager.js.map +1 -1
  51. package/lib/channels/weixin/api.d.ts.map +1 -1
  52. package/lib/channels/weixin/api.js +7 -2
  53. package/lib/channels/weixin/api.js.map +1 -1
  54. package/lib/channels/weixin/errors.d.ts +14 -0
  55. package/lib/channels/weixin/errors.d.ts.map +1 -0
  56. package/lib/channels/weixin/errors.js +29 -0
  57. package/lib/channels/weixin/errors.js.map +1 -0
  58. package/lib/channels/weixin/poll.d.ts +14 -0
  59. package/lib/channels/weixin/poll.d.ts.map +1 -0
  60. package/lib/channels/weixin/poll.js +50 -0
  61. package/lib/channels/weixin/poll.js.map +1 -0
  62. package/lib/client-controller.d.ts.map +1 -1
  63. package/lib/client-controller.js +3 -3
  64. package/lib/client-controller.js.map +1 -1
  65. package/lib/client.d.ts.map +1 -1
  66. package/lib/client.js +996 -645
  67. package/lib/client.js.map +4 -4
  68. package/lib/collaboration/composition.d.ts.map +1 -1
  69. package/lib/collaboration/composition.js +16 -6
  70. package/lib/collaboration/composition.js.map +1 -1
  71. package/lib/collaboration/domain.d.ts +6 -0
  72. package/lib/collaboration/domain.d.ts.map +1 -1
  73. package/lib/collaboration/domain.js.map +1 -1
  74. package/lib/collaboration/service.d.ts.map +1 -1
  75. package/lib/collaboration/service.js +33 -3
  76. package/lib/collaboration/service.js.map +1 -1
  77. package/lib/concern-notification.d.ts.map +1 -1
  78. package/lib/concern-notification.js +2 -1
  79. package/lib/concern-notification.js.map +1 -1
  80. package/lib/concern-tool.js +1 -1
  81. package/lib/concern-tool.js.map +1 -1
  82. package/lib/execution/reply-progress.d.ts.map +1 -1
  83. package/lib/execution/reply-progress.js +4 -2
  84. package/lib/execution/reply-progress.js.map +1 -1
  85. package/lib/execution/service.d.ts +1 -1
  86. package/lib/execution/service.d.ts.map +1 -1
  87. package/lib/execution/service.js +4 -7
  88. package/lib/execution/service.js.map +1 -1
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +3 -1
  91. package/lib/index.js.map +1 -1
  92. package/lib/memory-reflection.js +2 -2
  93. package/lib/memory-reflection.js.map +1 -1
  94. package/lib/message-source.d.ts +25 -0
  95. package/lib/message-source.d.ts.map +1 -0
  96. package/lib/message-source.js +8 -0
  97. package/lib/message-source.js.map +1 -0
  98. package/lib/observation-loop.js +4 -4
  99. package/lib/observation-loop.js.map +1 -1
  100. package/lib/pendant/reader.js +1 -1
  101. package/lib/pendant/reader.js.map +1 -1
  102. package/lib/pendant/settings-panel.js +1 -1
  103. package/lib/pendant/settings-panel.js.map +1 -1
  104. package/lib/persona/service.js +1 -1
  105. package/lib/persona/service.js.map +1 -1
  106. package/lib/requirements/attachments.d.ts +7 -0
  107. package/lib/requirements/attachments.d.ts.map +1 -0
  108. package/lib/requirements/attachments.js +26 -0
  109. package/lib/requirements/attachments.js.map +1 -0
  110. package/lib/requirements/domain.d.ts +1 -1
  111. package/lib/requirements/domain.d.ts.map +1 -1
  112. package/lib/requirements/service.d.ts.map +1 -1
  113. package/lib/requirements/service.js +4 -1
  114. package/lib/requirements/service.js.map +1 -1
  115. package/lib/scheduler/channel-origin.d.ts +7 -0
  116. package/lib/scheduler/channel-origin.d.ts.map +1 -0
  117. package/lib/scheduler/channel-origin.js +27 -0
  118. package/lib/scheduler/channel-origin.js.map +1 -0
  119. package/lib/scheduler/continuations.d.ts +2 -2
  120. package/lib/scheduler/continuations.d.ts.map +1 -1
  121. package/lib/scheduler/continuations.js +28 -8
  122. package/lib/scheduler/continuations.js.map +1 -1
  123. package/lib/scheduler/domain.d.ts +13 -0
  124. package/lib/scheduler/domain.d.ts.map +1 -1
  125. package/lib/scheduler/final-reply.d.ts +13 -0
  126. package/lib/scheduler/final-reply.d.ts.map +1 -0
  127. package/lib/scheduler/final-reply.js +21 -0
  128. package/lib/scheduler/final-reply.js.map +1 -0
  129. package/lib/skills/builtin-resources.d.ts +6 -0
  130. package/lib/skills/builtin-resources.d.ts.map +1 -0
  131. package/lib/skills/builtin-resources.js +47 -0
  132. package/lib/skills/builtin-resources.js.map +1 -0
  133. package/lib/skills/builtin.d.ts +2 -5
  134. package/lib/skills/builtin.d.ts.map +1 -1
  135. package/lib/skills/builtin.js +6 -0
  136. package/lib/skills/builtin.js.map +1 -1
  137. package/lib/skills/director-builtins.d.ts +8 -0
  138. package/lib/skills/director-builtins.d.ts.map +1 -0
  139. package/lib/skills/director-builtins.js +65 -0
  140. package/lib/skills/director-builtins.js.map +1 -0
  141. package/lib/skills/drama-builtin.d.ts +3 -0
  142. package/lib/skills/drama-builtin.d.ts.map +1 -0
  143. package/lib/skills/drama-builtin.js +49 -0
  144. package/lib/skills/drama-builtin.js.map +1 -0
  145. package/lib/skills/long-task-continuation.d.ts +2 -2
  146. package/lib/skills/long-task-continuation.d.ts.map +1 -1
  147. package/lib/skills/long-task-continuation.js +2 -2
  148. package/lib/skills/service.d.ts.map +1 -1
  149. package/lib/skills/service.js +8 -3
  150. package/lib/skills/service.js.map +1 -1
  151. package/lib/skills/viora-canvas-builtin.d.ts +3 -0
  152. package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
  153. package/lib/skills/viora-canvas-builtin.js +19 -0
  154. package/lib/skills/viora-canvas-builtin.js.map +1 -0
  155. package/lib/storage/migrate-layout.d.ts.map +1 -1
  156. package/lib/storage/migrate-layout.js +13 -4
  157. package/lib/storage/migrate-layout.js.map +1 -1
  158. package/lib/tasks/context.js +1 -0
  159. package/lib/tasks/context.js.map +1 -1
  160. package/lib/tasks/continuation.d.ts.map +1 -1
  161. package/lib/tasks/continuation.js +3 -0
  162. package/lib/tasks/continuation.js.map +1 -1
  163. package/lib/tasks/domain.d.ts +2 -0
  164. package/lib/tasks/domain.d.ts.map +1 -1
  165. package/lib/tasks/service.d.ts +2 -1
  166. package/lib/tasks/service.d.ts.map +1 -1
  167. package/lib/tasks/service.js +15 -1
  168. package/lib/tasks/service.js.map +1 -1
  169. package/lib/ui/attachment-storage.d.ts +2 -0
  170. package/lib/ui/attachment-storage.d.ts.map +1 -0
  171. package/lib/ui/attachment-storage.js +59 -0
  172. package/lib/ui/attachment-storage.js.map +1 -0
  173. package/lib/ui/capability-editor.js +1 -1
  174. package/lib/ui/capability-editor.js.map +1 -1
  175. package/lib/ui/companion-access-panel.js +1 -1
  176. package/lib/ui/companion-access-panel.js.map +1 -1
  177. package/lib/ui/companion-create.js +1 -1
  178. package/lib/ui/companion-create.js.map +1 -1
  179. package/lib/ui/companion-picker.js +1 -1
  180. package/lib/ui/companion-picker.js.map +1 -1
  181. package/lib/ui/identity-editor.js +1 -1
  182. package/lib/ui/identity-editor.js.map +1 -1
  183. package/lib/ui/mcp-capabilities.js +1 -1
  184. package/lib/ui/mcp-capabilities.js.map +1 -1
  185. package/lib/ui/mcp-panel.js +1 -1
  186. package/lib/ui/mcp-panel.js.map +1 -1
  187. package/lib/ui/memory/concern-board.js +2 -2
  188. package/lib/ui/memory/concern-board.js.map +1 -1
  189. package/lib/ui/memory/concern-deletion.d.ts +1 -1
  190. package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
  191. package/lib/ui/memory/concern-deletion.js +9 -4
  192. package/lib/ui/memory/concern-deletion.js.map +1 -1
  193. package/lib/ui/memory/concern-panel.js +1 -1
  194. package/lib/ui/memory/concern-panel.js.map +1 -1
  195. package/lib/ui/memory/memory-library.js +1 -1
  196. package/lib/ui/memory/memory-library.js.map +1 -1
  197. package/lib/ui/memory/memory-panel.js +1 -1
  198. package/lib/ui/memory/memory-panel.js.map +1 -1
  199. package/lib/ui/partner-components.js +1 -1
  200. package/lib/ui/partner-components.js.map +1 -1
  201. package/lib/ui/requirement-board.js +1 -1
  202. package/lib/ui/requirement-board.js.map +1 -1
  203. package/lib/ui/requirement-dialog.js +1 -1
  204. package/lib/ui/requirement-dialog.js.map +1 -1
  205. package/lib/ui/requirement-tasks-panel.js +1 -1
  206. package/lib/ui/requirement-tasks-panel.js.map +1 -1
  207. package/lib/ui/schedule-panel.js +1 -1
  208. package/lib/ui/schedule-panel.js.map +1 -1
  209. package/lib/ui/skills-panel.js +1 -1
  210. package/lib/ui/skills-panel.js.map +1 -1
  211. package/lib/ui/storage-settings.d.ts.map +1 -1
  212. package/lib/ui/storage-settings.js +2 -1
  213. package/lib/ui/storage-settings.js.map +1 -1
  214. package/lib/ui/task-board-stage.js +1 -1
  215. package/lib/ui/task-board-stage.js.map +1 -1
  216. package/lib/ui/workspace-components.js +1 -1
  217. package/lib/ui/workspace-components.js.map +1 -1
  218. package/lib/ui/workspace-navigation.d.ts +16 -16
  219. package/lib/ui/workspace-navigation.js +1 -1
  220. package/lib/ui/workspace-navigation.js.map +1 -1
  221. package/package.json +53 -41
  222. package/resources/skills/cinematic-director/manifest.json +205 -0
  223. package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
  224. package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
  225. package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
  226. package/resources/skills/cinematic-director/upstream/README.md +507 -0
  227. package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
  228. package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
  229. package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
  230. package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
  231. package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
  232. package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
  233. package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
  234. package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
  235. package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
  236. package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
  237. package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
  238. package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
  239. package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
  240. package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
  241. package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
  242. package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
  243. package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
  244. package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
  245. package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
  246. package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
  247. package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
  248. package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
  249. package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
  250. package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
  251. package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
  252. package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
  253. package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
  254. package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
  255. package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
  256. package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
  257. package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
  258. package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
  259. package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
  260. package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
  261. package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
  262. package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
  263. package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
  264. package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
  265. package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
  266. package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
  267. package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
  268. package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
  269. package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
  270. package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
  271. package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
  272. package/resources/skills/director-skills/manifest.json +541 -0
  273. package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
  274. package/resources/skills/director-skills/upstream/LICENSE +21 -0
  275. package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
  276. package/resources/skills/director-skills/upstream/README.md +251 -0
  277. package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
  278. package/resources/skills/director-skills/upstream/SKILL.md +114 -0
  279. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
  280. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
  281. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
  282. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
  283. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
  284. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
  285. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
  286. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
  287. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
  288. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
  289. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
  290. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
  291. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
  292. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
  293. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
  294. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
  295. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
  296. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
  297. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
  298. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
  299. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
  300. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
  301. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
  302. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
  303. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
  304. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
  305. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
  306. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
  307. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
  308. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
  309. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
  310. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
  311. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
  312. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
  313. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
  314. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
  315. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
  316. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
  317. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
  318. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
  319. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
  320. package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
  321. package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
  322. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
  323. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
  324. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
  325. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
  326. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
  327. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
  328. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
  329. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
  330. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
  331. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
  332. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
  333. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
  334. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
  335. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
  336. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
  337. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
  338. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
  339. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
  340. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
  341. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
  342. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
  343. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
  344. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
  345. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
  346. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
  347. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
  348. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
  349. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
  350. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
  351. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
  352. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
  353. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
  354. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
  355. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
  356. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
  357. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
  358. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
  359. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
  360. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
  361. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
  362. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
  363. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
  364. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
  365. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
  366. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
  367. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
  368. package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
  369. package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
  370. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
  371. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
  372. package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
  373. package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
  374. package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
  375. package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
  376. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
  377. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
  378. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
  379. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
  380. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
  381. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
  382. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
  383. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
  384. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
  385. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
  386. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
  387. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
  388. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
  389. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
  390. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
  391. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
  392. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
  393. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
  394. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
  395. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
  396. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
  397. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
  398. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
  399. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
  400. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
  401. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
  402. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
  403. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
  404. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
  405. package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
  406. package/resources/skills/drama-production/manifest.json +933 -0
  407. package/resources/skills/drama-production/upstream/LICENSE +21 -0
  408. package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
  409. package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
  410. package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  411. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
  412. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
  413. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
  414. package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  415. package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
  416. package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  417. package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
  418. package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
  419. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
  420. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
  421. 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
  422. 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
  423. 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
  424. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  425. 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
  426. 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
  427. package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
  428. package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
  429. package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
  430. package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
  431. package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
  432. package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
  433. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
  434. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
  435. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
  436. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
  437. package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
  438. package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
  439. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  440. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  441. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  442. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  443. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  444. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  445. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  446. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  447. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
  448. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
  449. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
  450. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
  451. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
  452. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
  453. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
  454. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
  455. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
  456. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
  457. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
  458. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
  459. package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
  460. package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
  461. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  462. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
  463. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  464. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
  465. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  466. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  467. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  468. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
  469. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  470. 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
  471. 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
  472. 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
  473. 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
  474. 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
  475. 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
  476. 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
  477. 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
  478. 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
  479. 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
  480. 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
  481. 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
  482. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
  483. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  484. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  485. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
  486. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  487. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  488. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
  489. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
  490. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  491. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
  492. package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
  493. package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
  494. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
  495. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
  496. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
  497. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
  498. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
  499. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
  500. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
  501. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
  502. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
  503. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
  504. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
  505. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
  506. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
  507. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
  508. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
  509. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
  510. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
  511. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
  512. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  513. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  514. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
  515. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  516. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
  517. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  518. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
  519. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
  520. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
  521. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
  522. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
  523. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
  524. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  525. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
  526. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  527. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
  528. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  529. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
  530. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
  531. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  532. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  533. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  534. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  535. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  536. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
  537. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  538. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  539. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  540. package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
  541. package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
  542. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
  543. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  544. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
  545. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  546. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
  547. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
  548. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
  549. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
  550. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
  551. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
  552. package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
  553. package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
  554. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  555. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  556. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
  557. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  558. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  559. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
  560. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
  561. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
  562. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
  563. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
  564. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  565. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
  566. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
  567. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
  568. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
  569. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
  570. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
  571. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  572. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  573. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  574. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
  575. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  576. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  577. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  578. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  579. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
  580. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
  581. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
  582. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
  583. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
  584. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
  585. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
  586. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
  587. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
  588. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
  589. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
  590. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
  591. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  592. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  593. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
  594. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  595. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  596. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  597. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
  598. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  599. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  600. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  601. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
  602. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  603. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
  604. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
  605. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
  606. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
  607. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
  608. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
  609. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
  610. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
  611. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
  612. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
  613. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
  614. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
  615. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  616. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  617. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  618. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  619. package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
  620. package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
  621. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
  622. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  623. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
  624. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
  625. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  626. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
  627. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
  628. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
  629. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  630. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
  631. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
  632. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
  633. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
  634. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  635. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  636. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
  637. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  638. package/resources/skills/viora-canvas-production/manifest.json +23 -0
  639. package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
  640. package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
  641. package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
  642. package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
@@ -0,0 +1,410 @@
1
+ # Continuity Bible
2
+
3
+ Load this file when the project has a recurring character, location, or prop across more than one generated clip, or when a new shot must cut against footage that already exists. This is the Mode G deliverable and the state store that pipeline steps 6–13 read from.
4
+
5
+ A continuity bible is not documentation. It is (a) the strings you paste verbatim into prompts and (b) the questions you ask before approving a take. If a field is never pasted and never checked, delete it.
6
+
7
+ ## The continuity axes
8
+
9
+ Fifteen things drift. Walk this list twice per shot: once when writing the prompt, once when reviewing the return. This list owns the question you ask. The repair manual — symptom, ranked causes, ranked fixes — is [failure-modes.md](failure-modes.md); the last section here maps each axis onto its code there.
10
+
11
+ | # | Axis | Ask before approving | Highest risk when |
12
+ |---|---|---|---|
13
+ | 1 | Face | Same person or a sibling? Check mole/scar side, jaw width, eye spacing, hairline | Clips over ~6 s, head turns past 45°, size jumps bigger than one step |
14
+ | 2 | Hair | Same length, same parting side, same tie-up state, same wetness | Wind, wet transitions, hats on/off |
15
+ | 3 | Wardrobe (per layer) | Same layers present, same closure state, same sleeve/collar position | Outer layer added or removed; models silently re-button and un-roll |
16
+ | 4 | Props | Same object, same hand, same orientation, same fill level | Handoffs, eating/drinking, anything held for more than one shot |
17
+ | 5 | Wet / dirt / blood | Same coverage area and same darkness of soak | Rain and mud scenes; these states are monotonic and models reset them |
18
+ | 6 | Injury / makeup | Same side, same size, same age of the wound | Any progressive scene; a bruise cannot un-bruise |
19
+ | 7 | Light direction | Key on which side, from what height, how hard | Reverse angles; models default to flattering frontal light |
20
+ | 8 | Time of day | Same sun height, same lamp on/off state, same shadow length | Scenes over 6 shots; exteriors |
21
+ | 9 | Weather | Same intensity, same wind direction, same puddle state | Rain/snow progressions |
22
+ | 10 | Geography | Is the door still on the same wall relative to the window? | Wide → close → wide sandwiches |
23
+ | 11 | Screen direction | Does the subject still face and travel the same way? | Crossing the line; see [cinematic-language.md](cinematic-language.md) for the 180°/30° rules |
24
+ | 12 | Eyeline | Is the look aimed where the other subject actually is, at the right height? | Height differences between characters; over-the-shoulder pairs |
25
+ | 13 | Camera height | Same height as the last coverage of this subject, unless the change was a decision you wrote down? | Model reinterpreting "low angle" as "floor level" |
26
+ | 14 | Color palette | Same dominant and accent, same saturation | Multi-session generation; see [lighting-and-color.md](lighting-and-color.md) |
27
+ | 15 | Lens feel | Same compression, same edge distortion | Mixing a wide keyframe with a long-lens keyframe inside one scene |
28
+
29
+ ## The identity string contract
30
+
31
+ This section owns the identity string for the whole skill. Every other file links here rather than restating the budget or the rules, so if you meet a second word count anywhere, this one wins.
32
+
33
+ The identity string is one noun phrase, 30–50 words, that fully re-specifies a character to a model that has no memory. It is **pasted verbatim** into every keyframe prompt and every video prompt for that character. It is never paraphrased, never shortened for a close-up, never "improved" between shots. Write it once, at pipeline step 5, store it in the character record below, and from then on copy it — do not retype it, because retyping is how paraphrase gets in.
34
+
35
+ Divide the two drifts. *Inside* a clip, identity is lost mainly to length and head rotation — see F1 in [failure-modes.md](failure-modes.md). *Between* clips, it is lost mainly to paraphrase, because each rewording moves the model to a different point in identity space. The identity string is the fix for the second kind, and it is the one you control completely.
36
+
37
+ ### Why the budget is 30–50 words
38
+
39
+ Both bounds are load-bearing, and for different reasons.
40
+
41
+ - **Under 30 words it stops being reproducible.** Fewer than three independent face-structure facts plus one checkable landmark leaves enough slack for the same words to resolve to a different person on every generation, and leaves you nothing to audit the return against. A short string is not a safer string; it is an underspecified one.
42
+ - **Over 50 words the tail starts losing attention** in most models, so the last clause is the one that quietly stops arriving. That is why the wardrobe anchor goes last on purpose — it is the part a reference image or a dedicated wardrobe slot can carry if the words are dropped, whereas a dropped jawline cannot be recovered from anywhere.
43
+
44
+ Count the words when you write it, once. A string that is 28 or 56 is a defect, not a style choice.
45
+
46
+ ### What goes in it
47
+
48
+ 3–6 fixed physical facts that survive any lighting, plus exactly one wardrobe anchor with a colour and a material, as a present-tense noun phrase so it drops into any sentence. Build it as a recipe you can audit by counting, in this order:
49
+
50
+ 1. One or two demographic anchors — one age as a number, and ethnicity where it is a fact about the face.
51
+ 2. Two or three face-structure facts — jaw, eye set, brow, nose, hairline. These are what the model actually reconstructs.
52
+ 3. Exactly one unique checkable landmark — a mole with a side, a scar with a length, a chipped tooth, a cowlick. This clause earns its words twice: it is the QC handle, the one item that proves drift in half a second rather than merely suggesting it.
53
+ 4. One hair spec — length, cut, and parting or tie-up side.
54
+ 5. One wardrobe anchor, last — garment, colour, material, and one detail that can be checked at a distance.
55
+
56
+ Audit a candidate against the same counts before it is pasted anywhere: 30–50 words · 1–2 demographic · 2–3 structure · exactly 1 landmark · 1 hair · 1 wardrobe anchor, last. An empty slot, a doubled slot, or a slot out of order is a defect, and the landmark slot is the one to check first — at zero, nothing in the string proves drift. Fix it before the string enters a single prompt; after that it propagates by copy, and so does the defect.
57
+
58
+ Where a tool splits wardrobe into its own prompt slot — the keyframe slot anatomy in [image-model-adapters.md](image-model-adapters.md) does — the face-only portion is the first 15–25 words of this same string and the wardrobe anchor moves to its slot. That is a split of one string, not a second string; do not rewrite either half.
59
+
60
+ If the target tool takes a Chinese prompt, write one Chinese identity string and freeze it the same way. Translating the English string ad hoc per shot is paraphrase by another route, and it drifts exactly as fast. Craft terms in [prompt-lexicon.md](prompt-lexicon.md).
61
+
62
+ ### What must never go in it
63
+
64
+ | Never | The way it usually appears | Why it fails |
65
+ |---|---|---|
66
+ | Mood or judgment adjectives | beautiful, mysterious, intense, striking eyes | Not geometry. The model averages them, and the average lands somewhere new each generation |
67
+ | Camera, lens or lighting words | close-up, 85mm, backlit, moody, cinematic | Those slots are owned elsewhere in the prompt; two sources for one slot is drift, and the string is pasted into shots at every size |
68
+ | Celebrity or lookalike comparisons | looks like a young Tony Leung | Resolves to a different blend in every model, every version, and every tool. The fastest way to lose a face when you change platforms |
69
+ | An age range | 30s, mid-40s, around fifty | A range is a free parameter. Pick one number |
70
+ | Era or setting words doing wardrobe's work | period clothing, traditional dress, workwear | A research task, not a garment. Name the garment, its colour and its material |
71
+ | Negative or memory instructions | do not change her face, same as the reference image | Addresses a memory the model does not have — see the second bad example below |
72
+ | Anything that changes during the story | wet hair, muddy sleeve, the cut on his lip, the parcel | Progressive state belongs in the state-change ledger; a string that must never change cannot carry a value that must |
73
+ | A second character | …standing beside her husband | One string, one person. Blocking and relationships are the shot plan's job |
74
+
75
+ Good — 46, 41 and 37 words:
76
+
77
+ ```text
78
+ MEI, 24, a Chinese woman with an oval face, thin straight eyebrows, a small mole below the left corner of her mouth, black hair cut blunt at the jaw and tucked behind her right ear, in an army-green cotton postal jacket with a red collar tab
79
+ ```
80
+
81
+ ```text
82
+ LU, 58, a heavy-set Chinese man with a broad flat nose, deep vertical lines between the brows, grey stubble on a square jaw, close-cropped grey hair receding at the temples, in a navy quilted work coat with a torn right cuff
83
+ ```
84
+
85
+ ```text
86
+ The BOY, 9, thin, protruding ears, a chipped upper front tooth, straight black hair cut short with a cowlick at the crown, wearing a mustard wool sweater two sizes too large with the cuffs turned back twice
87
+ ```
88
+
89
+ Each one audits the same way: an age as a number, two or three structure facts, exactly one landmark you can look for (the mole and its side, the brow lines between the eyes, the chipped upper tooth), a hair spec with a side or a shape, and a garment carrying a colour, a material and one checkable detail. Note that the BOY's string carries no ethnicity clause and is still inside budget — that anchor is optional where it is not a fact about the face, and the words it frees up went into the sweater's fit, which is what actually identifies him at a distance.
90
+
91
+ Bad:
92
+
93
+ ```text
94
+ a beautiful mysterious young woman with striking eyes, wearing period clothing, cinematic look
95
+ ```
96
+
97
+ Nothing here is reproducible. "Striking eyes" is a judgment, not geometry; "period clothing" is a research task, not a garment; "cinematic" is noise. There is no landmark, so nothing to check on return. Two generations from this string are two different people.
98
+
99
+ ```text
100
+ MEI (same as the reference image, keep her consistent, do not change her face)
101
+ ```
102
+
103
+ This addresses a memory the model does not have. Reference-image binding is a control surface, not a sentence — see [image-model-adapters.md](image-model-adapters.md). Negative instructions about identity do not preserve identity; the positive description does.
104
+
105
+ ## Character schema
106
+
107
+ Filled, not a skeleton. Every field below carries a real value so you can see what "specific enough" looks like.
108
+
109
+ ```yaml
110
+ characters:
111
+ - id: char_boy # stable slug, used in every filename and prompt log
112
+ name: BOY
113
+ # the verbatim clause from the section above; the ONLY identity text ever used
114
+ identity_string: "The BOY, 9, thin, protruding ears, a chipped upper front tooth, straight black hair cut short with a cowlick at the crown, wearing a mustard wool sweater two sizes too large with the cuffs turned back twice"
115
+ age: 9 # one number, not a range
116
+ height_build: "132 cm, thin, narrow shoulders, eye height 122 cm" # eye height drives eyeline math
117
+ face: "chipped upper front tooth, right of centre; ears protrude, both sides; round chin; no freckles"
118
+ hair:
119
+ cut: "short back and sides, no parting, cowlick at the crown" # fixed; copy-paste
120
+ state: dry # dry | damp | soaked | windblown | pinned — CHANGES, track per shot
121
+ wardrobe: # by layer, outermost first; each layer named with color + material
122
+ outer: null # no coat in this scene; write null, never an empty string
123
+ mid: "mustard wool sweater, crew neck, two sizes large, cuffs turned back twice"
124
+ base: "white cotton undershirt, visible at the neck"
125
+ lower: "grey school shorts, ending above the knee"
126
+ feet: "white canvas lace-ups, grey at the toe, laces knotted not bowed"
127
+ accessories: []
128
+ wardrobe_state: dusty # clean | dusty | wet-shoulders | soaked-front | soaked-through | muddy-hem | torn-<where>
129
+ props_carried: [] # prop ids + which hand
130
+ injury_makeup: "scab on the LEFT knee, about a week old, edges lifting" # what, which side, how old
131
+ performance_baseline: "fast unfinished movements; looks at his hands when spoken to; stands with weight on one hip"
132
+ reference_assets: [RAIN_CHAR-boy_v01_ref-face, RAIN_CHAR-boy_v01_ref-body]
133
+ seed: 771204 # integer if the image model exposes one; null if not
134
+ must_keep: ["chipped front tooth", "cowlick at the crown", "cuffs turned back twice", "scab on the LEFT knee"]
135
+ must_avoid: ["adult proportions", "new clothes", "coat", "open smile showing a full set of teeth"]
136
+ ```
137
+
138
+ `must_avoid` is the negative-prompt feed; word it from the library in [prompt-lexicon.md](prompt-lexicon.md) rather than inventing phrasing per character.
139
+
140
+ The split between `wardrobe` (permanent, describes the garment) and `wardrobe_state` (transient, describes its condition) is the whole point. The garment lines are copy-paste; the state line is rewritten every shot from the state-change ledger.
141
+
142
+ ## Wardrobe schema
143
+
144
+ Use a separate wardrobe entry when a costume is shared across characters, changes between scenes, or has a state progression worth tracking on its own.
145
+
146
+ ```yaml
147
+ wardrobe:
148
+ - id: fit_mei_postal
149
+ worn_by: char_mei
150
+ scenes: [SC01, SC02, SC03]
151
+ layers:
152
+ outer: "army-green heavy cotton canvas postal jacket, red collar tab, brass buttons, hip length"
153
+ mid: "grey wool knit sweater, crew neck, visible at collar and cuffs"
154
+ lower: "dark blue cotton work trousers, straight leg, no crease"
155
+ feet: "black canvas lace-up shoes, thin rubber sole"
156
+ closure_state: "top two buttons open, collar folded down"
157
+ state_track: [clean, wet-shoulders, soaked-front, soaked-through]
158
+ fit_notes: "one size large; sleeves reach the second knuckle"
159
+ forbidden: ["zippers", "synthetic sheen", "logos", "modern athletic cut"]
160
+ reference_assets: [RAIN_FIT-mei-postal_v01_ref-fit]
161
+ ```
162
+
163
+ ## Prop schema
164
+
165
+ ```yaml
166
+ props:
167
+ - id: prop_parcel
168
+ name: "oilcloth parcel"
169
+ description: "shoebox-sized brown paper parcel wrapped in dark green oilcloth, tied crosswise with hemp twine, knot on top"
170
+ scale_ref: "roughly two hand-widths long"
171
+ # ordered; adjacent shots step one band, never skip. Oilcloth beads and never soaks
172
+ # through — the hemp twine is what darkens, and that is the visible progression
173
+ state_track: [dry, spotted, beaded, twine-dark]
174
+ held_by: char_mei # UPDATE on every handoff; this field is the bug source
175
+ hand: right
176
+ orientation: "knot up, long side across the body"
177
+ story_function: "the thing being given away"
178
+ continuity_risk: "changes hands in SH05; models tend to duplicate it into both pairs of hands"
179
+ reference_assets: [RAIN_PROP-parcel_v01_ref-detail]
180
+ must_avoid: ["plastic wrap", "printed labels", "tape", "second parcel"]
181
+ ```
182
+
183
+ ## Location schema
184
+
185
+ ```yaml
186
+ locations:
187
+ - id: loc_shelter
188
+ name: "highway bus shelter"
189
+ era_lock: "autumn 1994, provincial highway, southern China"
190
+ geography: "shelter sits on the north verge; highway runs left-to-right across frame; the town is screen-left, the truck depot screen-right"
191
+ orientation_rule: "camera stays north of the road; the road always runs L-R; anyone heading to the depot exits screen-right"
192
+ architecture: "open-sided concrete shelter, corrugated tin roof, three-slat wooden bench, peeling blue paint on the back wall, hand-painted timetable board"
193
+ light_sources:
194
+ - "sodium-vapour street lamp, head at 4 m on a pole standing clear of the shelter, camera-left — hard, amber; the key on every shot"
195
+ - "the bench is about 7 m from the pole: the key rakes in under the roof edge at about 20 degrees elevation, camera-left"
196
+ - "the roadside position is about 3 m from the pole: same key, about 40 degrees, and about two and a half stops brighter by inverse square"
197
+ - "sky ambient, blue-grey, the only fill; about 8:1 lit-side to shadow-side on the face"
198
+ - "truck headlights raking from screen-right — SH03 only, motivated by LU's arrival, never repeated"
199
+ key_direction: "camera-left on every shot; ~20 degrees elevation at the bench, ~40 degrees at the roadside; never camera-right"
200
+ exposure_rule: "expose for the roadside position; the bench then sits about two and a half stops down, so a character brightens as they step out to commit"
201
+ time_of_day: "21:00–21:20, full dark, no residual sky glow"
202
+ weather_track: [light-rain, moderate-rain, heavy-rain]
203
+ ambient_sound: "rain on tin roof, wet tyre hiss at distance, no birds, no insects, no traffic horns"
204
+ set_dressing: ["cigarette ends by the bench leg", "a cracked enamel basin catching a roof leak", "faded paper notice, half torn"]
205
+ forbidden_anachronisms: ["mobile phones", "LED or white light sources", "plastic wheeled luggage", "reflective road markings", "logo sportswear", "disposable cups", "modern signage fonts"]
206
+ palette: "amber key, blue-grey fill, desaturated except the red collar tab"
207
+ plate_assets: [RAIN_LOC-shelter_v01_plate-wide, RAIN_LOC-shelter_v01_plate-bench]
208
+ must_avoid: ["daylight", "second street lamp", "dry ground", "crowd"]
209
+ ```
210
+
211
+ Two fields do most of the work here. `orientation_rule` is the one people skip and then regret — write it as a sentence a stranger could obey.
212
+
213
+ `key_direction` must survive a geometry check before you paste it into anything. Draw the ray from the source head to the subject's head and ask what is in the way: a roof, a brim, a doorway, an awning. If the obstruction clips the ray, the key you wrote does not exist and the keyframe will come back lit some other way. Then check the distance ratio, because a single practical is a point source and the falloff is brutal — here the bench is 7 m from the pole and the roadside 3 m, so the same lamp is about two and a half stops apart between the two positions. That is not a continuity error to suppress; it is the light event of the scene, and MEI steps into it. Ratio conventions, falloff, and how to word a ratio in a prompt are in [lighting-and-color.md](lighting-and-color.md).
214
+
215
+ ## Shot-to-shot continuity schema
216
+
217
+ ```yaml
218
+ shots:
219
+ - shot_id: SC02_SH04
220
+ screen_direction: "MEI frame-left facing screen-right; LU frame-right facing screen-left; no travel across frame"
221
+ # the angle is NOT a property of the height difference alone. 14 cm of eye-height
222
+ # difference at 0.7 m of separation is ~11 degrees up; at 1.0 m it is ~8. Recompute
223
+ # whenever you change the separation, and write the separation next to the angle
224
+ eyeline_target: "MEI looks up to LU's eyes: 14 cm difference at 0.7 m separation, ~11 degrees up"
225
+ camera_height_m: 1.5
226
+ camera_angle: "level on MEI, whose eye height is 1.52 m; slightly low on LU, whose eye height is 1.66 m"
227
+ light_direction: "key camera-left, hard, amber; ~40 degrees on MEI now that she is at the roadside, still ~20 degrees on LU at the bench line, and she is ~2.5 stops up on him"
228
+ subject_state:
229
+ char_mei: { hair: "flattening, wet at the crown", wardrobe_state: wet-shoulders, props: [prop_parcel] }
230
+ char_lu: { hair: dry, wardrobe_state: clean, props: [prop_umbrella] }
231
+ prop_state: { prop_parcel: "dry on the cut in, spotted by the cut out; still in MEI's RIGHT hand, knot up" }
232
+ weather: heavy-rain
233
+ time_of_day: "21:12"
234
+ start_state: "MEI is under the roof, parcel held at her chest; LU's hands are at his sides"
235
+ end_state: "MEI has stepped clear of the roof and holds the parcel out at chest height; LU's left hand is rising into frame-right, not yet touching it"
236
+ must_match_prev: ["MEI dry at SH03 end", "key from camera-left", "parcel knot up in her RIGHT hand", "LU's umbrella in his RIGHT hand"]
237
+ must_match_next: ["parcel still in MEI's RIGHT hand at the cut", "LU's left hand entering from screen-right", "heavy rain", "MEI's shoulders dark, hair not yet flat"]
238
+ ```
239
+
240
+ Two things in that block are decisions, not bookkeeping. The contact is deliberately withheld: the shot ends on the offer and the next shot completes the transfer, so no single clip has to render two hands meeting around an object. That split is scored in [production-workflow.md](production-workflow.md). And the near-hand check — MEI faces screen-right so her right hand is the camera-side hand, LU faces screen-left so his left is — is what keeps the transfer in front of both bodies instead of hidden behind them. Run that check before you write the hands into a prompt; if both giving hands come out far-side, restage or flip the coverage. The line rules that constrain the flip are in [cinematic-language.md](cinematic-language.md).
241
+
242
+ ## Asset naming convention
243
+
244
+ One grammar, applied to every file. The name must be readable in a directory listing and sortable into shot order. Version always sits immediately before the role, so a sort groups a shot's versions together.
245
+
246
+ ```text
247
+ PROJ_SCnn_SHnn_vNN_role.ext shot assets
248
+ PROJ_SCnn_vNN_role.ext scene-level assets (ambience bed, edit timeline, scene grade)
249
+ PROJ_SUBJ-slug_vNN_role.ext non-scene assets (character, location, prop, costume refs)
250
+ PROJ_SCnn_SHnn_log.md the prompt log — the only file with no version, because it holds all of them
251
+ ```
252
+
253
+ | Token | Grammar | Example | Rule |
254
+ |---|---|---|---|
255
+ | `PROJ` | 3–6 uppercase chars, no internal separator | `RAIN` | Chosen once per project, never changed |
256
+ | `SCnn` | `SC` + 2 digits | `SC02` | Scene numbers come from the shot plan, zero-padded |
257
+ | `SHnn` | `SH` + 2 digits | `SH05` | Shot within scene; a late insert gets `SH05a`, never a renumber |
258
+ | `SUBJ-slug` | `CHAR-`, `LOC-`, `PROP-`, `FIT-` + lowercase slug | `CHAR-mei` | Matches the `id` in the schema above |
259
+ | `vNN` | `v` + 2 digits | `v03` | Starts at `v01`, monotonic, never reused, never overwritten. Two sibling options generated from the same decision point take a letter suffix (`v03a`, `v03b`); iterations never do |
260
+ | `role` | lowercase kebab from the fixed vocabulary | `kf-first` | See list below |
261
+ | `ext` | lowercase | `.png` | Stills `.png/.jpg`, clips `.mp4`, audio `.wav`, edit `.fcpxml/.edl` |
262
+
263
+ Role vocabulary: `ref-face`, `ref-body`, `ref-fit`, `ref-detail`, `plate-wide`, `plate-detail`, `kf-first`, `kf-last`, `kf-alt`, `clip`, `clip-FAIL-<axis>`, `vo-<char>`, `amb`, `sfx-<name>`, `mus`, `cut`, `log`.
264
+
265
+ ```text
266
+ RAIN_SC02_SH04_v03_kf-first.png approved first frame
267
+ RAIN_SC02_SH04_v03_kf-last.png matching last frame for a first/last-frame tool
268
+ RAIN_SC02_SH04_v05_clip.mp4 the take that got approved
269
+ RAIN_SC02_SH04_v04_clip-FAIL-face.mp4 kept on purpose; the axis is in the name
270
+ RAIN_SC02_SH04_v03a_kf-first.png sibling option, not an iteration; v03b is its pair
271
+ RAIN_CHAR-mei_v02_ref-face.png character reference
272
+ RAIN_FIT-mei-postal_v01_ref-fit.png costume reference
273
+ RAIN_LOC-shelter_v01_plate-wide.png location plate
274
+ RAIN_SC02_SH04_v01_vo-mei.wav dialogue take
275
+ RAIN_SC02_v01_amb.wav scene ambience bed
276
+ RAIN_SC02_v04_cut.fcpxml edit timeline
277
+ RAIN_SC02_SH04_log.md every prompt sent for this shot, in order
278
+ ```
279
+
280
+ Do not encode approval in the filename. Approval lives in the log — see [production-workflow.md](production-workflow.md). Renaming a file to mark it approved breaks every reference already written.
281
+
282
+ ## Seed and reference registry
283
+
284
+ One table per project. This is what you consult when a shot generated three weeks ago must be matched today.
285
+
286
+ | asset_id | subject | model class | seed | reference inputs | prompt file | locked | notes |
287
+ |---|---|---|---|---|---|---|---|
288
+ | `RAIN_CHAR-mei_v02_ref-face` | char_mei | image, ref-image binding | 4417823 | none (origin asset) | `RAIN_CHAR-mei_log.md` | yes | canonical face; all later shots reference this |
289
+ | `RAIN_FIT-mei-postal_v01_ref-fit` | fit_mei_postal | image, ref-image binding | 4417823 | `CHAR-mei_v02_ref-face` | `RAIN_FIT-mei-postal_log.md` | yes | full-length, neutral light, arms clear of the body |
290
+ | `RAIN_LOC-shelter_v01_plate-wide` | loc_shelter | image, text-to-image | 903112 | none | `RAIN_LOC-shelter_log.md` | yes | night, light rain; all coverage derives from this |
291
+ | `RAIN_SC02_SH04_v03_kf-first` | SC02_SH04 | image, 2 ref inputs | 4417823 | `CHAR-mei_v02_ref-face`, `LOC-shelter_v01_plate-wide` | `RAIN_SC02_SH04_log.md` | yes | approved 3rd attempt |
292
+
293
+ Seed rules, in order of how much they buy you. Change the seed only when you have decided the identity itself is wrong, never as a way to fix a framing or a light. Reuse the character's seed on keyframes that differ little from the origin asset — same size, same angle, same light — where it removes one source of variance. Expect it to buy almost nothing when the framing changes a lot, because a fresh composition puts the sampler somewhere else regardless. If the tool exposes no seed field, write `null` and lean harder on reference-image binding, which is the stronger control anyway; the control surfaces are in [image-model-adapters.md](image-model-adapters.md). A seed is not a guarantee of identity across prompt changes, and treating it as one is why people stop checking the face.
294
+
295
+ ## State-change ledger
296
+
297
+ The ledger is the working half of the bible. One row per shot, written *before* generation, corrected after approval. The discipline it enforces: every tracked state moves at most one band between adjacent shots. A progression that jumps two bands reads as a missing shot, and a progression that runs backwards reads as a different day.
298
+
299
+ | Shot | What changed inside this shot | Carries into next as | Verify in next shot |
300
+ |---|---|---|---|
301
+ | SC02_SH01 | Nothing changes; this row exists to fix the baseline | rain light, ground already wet, MEI dry under the roof | puddle coverage and rain density match |
302
+ | SC02_SH02 | Rain light → moderate; MEI still under the roof | MEI dry including shoulders, parcel dry, moderate rain | MEI's shoulders still dry |
303
+ | SC02_SH03 | LU arrives from screen-right, umbrella up in his RIGHT hand; rain moderate → heavy | LU dry under the umbrella, heavy rain | zero water on LU's coat or hair |
304
+ | SC02_SH04 | MEI steps clear of the roof: key 20° → 40° and ~2.5 stops up on her, wardrobe clean → wet-shoulders, hair flattening; parcel dry → spotted. The parcel is offered, not taken | MEI wet-shoulders, parcel still in her RIGHT hand | the parcel has NOT changed hands yet |
305
+ | SC02_SH05 | Transfer completes into LU's LEFT hand; oilcloth spotted → beaded, hemp twine darkening | parcel with LU, MEI's hands empty | exactly one parcel, knot still on top |
306
+ | SC02_SH06 | MEI does not go back under the roof: wet-shoulders → soaked-front; LU exits screen-right | into SC03: MEI soaked-front, parcel offscreen with LU | SC03 opens at soaked-front, never at clean |
307
+
308
+ The last row is the one people forget to write. A scene's exit state is the next scene's entry state, and `soaked-through` — the fourth band on MEI's track — is not reached in SC02 at all. Do not let SC03 open there just because it feels like the end of the story.
309
+
310
+ ## Worked example: RAIN / SC02, the bus shelter handoff
311
+
312
+ Two characters, one location, three progressions running at once: rain light → heavy, MEI clean → soaked-front, parcel from MEI's right hand to LU's left. This is the scene the rest of the skill scores and budgets against — [production-workflow.md](production-workflow.md) uses these same six shots.
313
+
314
+ ```yaml
315
+ project: RAIN
316
+ scene: SC02
317
+ characters:
318
+ - id: char_mei
319
+ name: MEI
320
+ identity_string: "MEI, 24, a Chinese woman with an oval face, thin straight eyebrows, a small mole below the left corner of her mouth, black hair cut blunt at the jaw and tucked behind her right ear, in an army-green cotton postal jacket with a red collar tab"
321
+ age: 24
322
+ height_build: "162 cm, slight, narrow shoulders, stands with weight on the left foot"
323
+ face: "oval; mole below LEFT mouth corner; thin straight brows; no makeup; wide-set dark eyes"
324
+ hair: { cut: "blunt bob at the jaw, no fringe, parted slightly right", state: "dry SH01-SH03; flattening at SH04; flat and dripping SH05-SH06" }
325
+ wardrobe:
326
+ outer: "army-green heavy cotton postal jacket, red collar tab, brass buttons, top two open"
327
+ mid: "grey wool crew-neck sweater, visible at collar and cuffs"
328
+ lower: "dark blue cotton work trousers, straight leg"
329
+ feet: "black canvas lace-up shoes"
330
+ accessories: ["canvas satchel, worn cross-body, hanging at her left hip"]
331
+ wardrobe_state: clean # walks clean → wet-shoulders → soaked-front across SH04-SH06
332
+ props_carried: [prop_parcel]
333
+ injury_makeup: ""
334
+ performance_baseline: "still, minimal gesture; looks at the road, not at people; speaks after a half-second delay"
335
+ reference_assets: [RAIN_CHAR-mei_v02_ref-face, RAIN_FIT-mei-postal_v01_ref-fit]
336
+ seed: 4417823
337
+ must_keep: ["mole on the LEFT", "blunt jaw-length bob", "red collar tab", "cross-body satchel on the left hip"]
338
+ must_avoid: ["makeup", "smile", "jewellery", "long hair", "modern jacket cut"]
339
+ - id: char_lu
340
+ name: LU
341
+ identity_string: "LU, 58, a heavy-set Chinese man with a broad flat nose, deep vertical lines between the brows, grey stubble on a square jaw, close-cropped grey hair receding at the temples, in a navy quilted work coat with a torn right cuff"
342
+ age: 58
343
+ height_build: "176 cm, heavy through the chest, stands square"
344
+ face: "square jaw; broad flat nose; deep glabellar lines; grey stubble; heavy upper lids"
345
+ hair: { cut: "close-cropped grey, receding at the temples", state: "dry throughout" }
346
+ wardrobe:
347
+ outer: "navy quilted work coat, oil-stained at the right hip, right cuff torn open"
348
+ lower: "brown corduroy trousers"
349
+ feet: "black rubber boots, mud to the ankle"
350
+ accessories: []
351
+ wardrobe_state: clean
352
+ props_carried: [prop_umbrella]
353
+ performance_baseline: "slow, economical; takes objects with the left hand; does not make eye contact while receiving"
354
+ reference_assets: [RAIN_CHAR-lu_v01_ref-face]
355
+ seed: 5560194
356
+ must_keep: ["torn RIGHT cuff", "oil stain at the right hip", "muddy boots", "dry throughout"]
357
+ must_avoid: ["wet coat", "clean boots", "hat", "glasses"]
358
+ props:
359
+ - id: prop_parcel
360
+ description: "shoebox-sized brown paper parcel in dark green oilcloth, tied crosswise with hemp twine, knot on top"
361
+ state_track: [dry, spotted, beaded, twine-dark]
362
+ held_by: char_mei
363
+ hand: right
364
+ continuity_risk: "changes hands at SH05; models duplicate it into both pairs of hands"
365
+ - id: prop_umbrella
366
+ description: "black cloth umbrella, one bent rib on the left side, wooden crook handle"
367
+ held_by: char_lu
368
+ hand: right # right, so his LEFT is free to receive; this is why the handoff works
369
+ continuity_risk: "the bent rib flips sides; state it as the LEFT-side rib every time"
370
+ ```
371
+
372
+ Shot rows for the same scene. The camera stays north of the road on every shot, so the road runs left-right in every frame; MEI is frame-left facing screen-right, LU is frame-right facing screen-left.
373
+
374
+ | Shot | Size / height | Screen direction | Eyeline | Key | Weather | MEI state | LU state | Parcel | must_match_next |
375
+ |---|---|---|---|---|---|---|---|---|---|
376
+ | SH01 | EWS, 1.6 m, locked | road L-R; town screen-left, depot screen-right | none | camera-left, lamp in frame | light rain | dry, seated under the roof | absent | dry, on her lap | ground already wet |
377
+ | SH02 | MS, 1.5 m, locked | MEI frame-left, faces screen-right | out to the road, level | camera-left, ~20° at the bench | light → moderate | dry, parcel held to her chest | absent | dry, both hands | MEI's shoulders still dry |
378
+ | SH03 | WS, 1.6 m, slow push-in(推镜) | LU enters from screen-right | MEI up to LU | camera-left ~20°, plus a headlight rake from screen-right | moderate → heavy | dry, standing | dry, umbrella up in his RIGHT hand | dry, her right hand | LU's coat and hair bone dry |
379
+ | SH04 | MCU 2-shot, 1.5 m, locked | MEI screen-right, LU screen-left | MEI ~11° up to LU at 0.7 m | camera-left; ~40° on MEI at the roadside, ~20° on LU, she is ~2.5 stops up | heavy | clean → wet-shoulders, hair flattening | dry under the umbrella | dry → spotted, still her RIGHT hand | parcel NOT yet transferred |
380
+ | SH05 | CU insert on hands, 1.25 m, locked | MEI's hand from screen-left, LU's from screen-right | no faces in frame | camera-left, ~40°, hands in the open | heavy | offscreen; wet cuff visible | offscreen; left hand only, umbrella above frame | spotted → beaded, twine darkening; into LU's LEFT hand | one parcel, now with LU |
381
+ | SH06 | WS, MEI's shoulder frame-left foreground, camera still north of the road, 1.6 m, locked | LU exits screen-right | MEI after LU | camera-left, ~40° | heavy | wet-shoulders → soaked-front, in the open | dry, receding | with LU, offscreen | SC03 opens at soaked-front |
382
+
383
+ Four traps this scene sets, and the answer in each case.
384
+
385
+ - The parcel. Name the holder and the hand in every prompt from SH04 on, and put "only one parcel" in the negative list. The transfer is split across the SH04/SH05 cut precisely so that no clip has to render two hands closing on one object.
386
+ - LU's dryness. The model wants to wet everyone in heavy rain, so restate "his coat and hair are completely dry, he is under a black umbrella" as a positive fact in SH04–SH06. A negative ("not wet") does not do this job.
387
+ - The lamp. At SH04 the reverse-angle instinct is to flip the key to camera-right. Write `key from camera-left` into the keyframe prompt, not just the video prompt, because the still is where the light gets decided. The elevation changes when MEI steps out; the side never does.
388
+ - SH06's camera. It is tempting to put the camera behind MEI and shoot down the road after LU. Do not — that rotates the axis roughly 90°, the road stops running left-right, and LU no longer exits screen-right. Keep the camera north of the road and let MEI's shoulder sit in the frame-left foreground instead.
389
+
390
+ ## Drift prevention map
391
+
392
+ Diagnose the axis, then leave. Repair itself belongs to [failure-modes.md](failure-modes.md) — go there for ranked causes, ranked fixes, and before/after prompt pairs under the code in column three. [../assets/qc-checklist.md](../assets/qc-checklist.md) is the pass you run before any of it. What this table owns is the last column: the field in this file that stops the same drift returning.
393
+
394
+ | Axis | Drift you see | Code | The field here that prevents a repeat |
395
+ |---|---|---|---|
396
+ | 1 Face | A sibling rather than the same person, or the face holds and then goes in the last second | F1 | `identity_string` pasted verbatim, one locked `ref-face` in `reference_assets`, `seed` recorded |
397
+ | 2 Hair | Length, parting side, or wetness changes between shots | F1, F7 | `hair.cut` (fixed, copy-paste) held separate from `hair.state` (rewritten per shot) |
398
+ | 3 Wardrobe | A layer appears, disappears, or silently re-buttons | F1 | `wardrobe` layer stack with color and material per layer, plus `closure_state` and `forbidden` |
399
+ | 4 Props | Two of them, or the right object in the wrong hand | F7, F9 | `held_by` and `hand` updated at the handoff *before* the prompt is written; `must_avoid: ["second <prop>"]` |
400
+ | 5 Wet / dirt / blood | The state resets to clean | F7 | `state_track` walked one band per shot, with a ledger row carrying the exit state forward |
401
+ | 6 Injury / makeup | The wound swaps sides or changes age | F7 | `injury_makeup` naming the side and the age, restated as a positive fact each shot |
402
+ | 7 Light direction | The key flips on the reverse angle | F12 | `key_direction` in the location, pasted into the keyframe prompt and not only the video prompt |
403
+ | 8 Time of day | "Night" drifts across the scene | F12 | `time_of_day` with a real clock time, plus a locked location plate to match against |
404
+ | 9 Weather | Intensity jumps backwards or skips a band | F7 | `weather_track` as an ordered list; adjacent shots never skip |
405
+ | 10 Geography | The door changes walls between wide and close | F7, F8 | `plate_assets`: lock a wide before any coverage, then reference it from every angle |
406
+ | 11 Screen direction | The subject flips which way they face or travel | F7 | `orientation_rule` as an obeyable sentence, checked at storyboard rather than at QC; the line rules are in [cinematic-language.md](cinematic-language.md) |
407
+ | 12 Eyeline | The look passes through or over the other person | F7 | `height_build` for both parties, and `eyeline_target` computed from eye-height difference *and* separation, not from height alone |
408
+ | 13 Camera height | Wanders because the angle was written as a mood word | F6, F17 | `camera_height_m` as a number in every shot row, with what sits at frame centre |
409
+ | 14 Color palette | Shifts between working sessions | F16 | `palette` line in the location; generate a scene's stills in one session; grading language in [lighting-and-color.md](lighting-and-color.md) |
410
+ | 15 Lens feel | A wide keyframe cut against a long-lens one inside a scene | F16 | One focal length fixed per scene in the director's book and restated in every keyframe prompt |
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: steven_spielberg_directing_skill
3
+ title: 史蒂文·斯皮尔伯格导演风格 Skill
4
+ description: 用于学习并转化斯皮尔伯格式的商业叙事、情感调度、视觉清晰度和奇观场面设计。请用于原创创作,不要复制其具体镜头、台词、角色或受版权保护的表达。
5
+ ---
6
+
7
+ # 史蒂文·斯皮尔伯格导演风格 Skill
8
+
9
+ Load this file when 用户点名「斯皮尔伯格 / Spielberg 风格」,或当场景需要普通人在超出其能力的事件面前保持情绪可读、空间可读。
10
+
11
+ ## 一句话镜头 / Lens in one line
12
+
13
+ 先拍看见的人,再拍被看见的东西;奇观永远排在一张脸后面。
14
+
15
+ Shoot the face that sees before the thing that is seen; spectacle always arrives second.
16
+
17
+ ## 适用场景
18
+
19
+ - 强情绪牵引的商业叙事:冒险、灾难、家庭创伤、童年视角、人道主义题材。
20
+ - 需要观众在开场 30 秒内认同主角的短片、预告片情绪段、品牌与公益片。
21
+ - 需要"大事件 + 小人物"结构,并且观众必须始终知道危险与出口在哪的动作段落。
22
+ - 不适用:反英雄叙事、道德暧昧的结局、要求观众保持分析距离的题材(改用库布里克或芬奇)。
23
+
24
+ ## 反例:这不是什么 / What this lens is NOT
25
+
26
+ - 不是通用大片:大片先给奇观再补反应,这里顺序固定为「角色看见 → 观众看见角色的脸(1.5–3 秒)→ 观众看见奇观」。顺序反了,风格就没了。
27
+ - 不是当代动作片的碎切语法:强度来自障碍逐级升级,不来自剪辑频率。同一动作段落内 180 度线与屏幕方向不得改变,越轴必须由一个中性镜头交代。
28
+ - 不是诺兰:诺兰用交叉剪辑把多条时间线并置来加压;这里压力来自单一空间内一个目标被连续阻挡,观众任何时刻都能指出人在哪。
29
+ - 不是温情家庭剧:情感来自人物被迫做出一次可见的选择,不靠拥抱与配乐堆砌。音乐必须早于情绪转折 1–2 秒进入,用来预告而非追认。
30
+ - 不是"低角度=英雄":低机位是复制孩子的视线高度(约 1.0–1.3 米),成人对话立刻回到眼平。
31
+ - 不是手持纪实:摄影机默认在轨道或稳定器上;晃动只在人物受到物理冲击的那几帧出现,不做默认焦虑语法。
32
+
33
+ ## 核心风格关键词
34
+
35
+ 情感动员、经典覆盖、奇观与亲密并置、儿童视线高度、家庭裂痕、三层纵深、先反应后揭示、代价之后的修复。
36
+
37
+ ## 叙事方法
38
+
39
+ - 外部目标必须一句话说清,并在前 90 秒说清:救人、找东西、逃出去、回家、揭真相。
40
+ - 情感缺口先于奇观:第一次奇观出现前,观众已经知道主角缺什么(一句对白 + 一件道具即可)。
41
+ - 高潮由 3–5 个小目标串成,每完成一个立刻出现新障碍;不要用一个长障碍撑满。
42
+ - 亚类型可换(战争、科幻、传记),情感核心不换:亲情、失落、恐惧、勇气。
43
+ - 结尾同时给出"不能复原的一样"和"被修复的一样",不给纯净胜利。
44
+
45
+ ## 镜头语言
46
+
47
+ - 主力 35–50mm 建立可信的日常;反应镜头换到 135mm,机位不必逼近人物——135mm 在 3 米处就给到约 0.8 米宽的画幅(胸口以上),景别跳一大级而人不受打扰,背景同时被压平成一片色。
48
+ - 三层纵深调度:前景道具或次要人物 / 中景主角 / 背景事件或出口。观众任何一帧都能指认危险与出口。
49
+ - 运动必须有目的:推轨速度与人物步速一致(约 1.2–1.4 m/s);升降镜头只在需要交出规模时用,一场戏不超过一次。
50
+ - 主观视线用"看—所见—反应"三镜结构完成,中间的所见镜头必须真的在人物眼高上。
51
+ - 覆盖几何与越轴规则见 [cinematic-language.md](../cinematic-language.md),此处只做取舍,不重复定义。
52
+
53
+ ## 灯光与色彩
54
+
55
+ - 基础是柔和环境底光 + 一束可见硬光(窗、门缝、车灯、探照灯、投影机),硬光必须穿过薄雾或尘才看得见。
56
+ - 温暖场景比 3:1;威胁场景拉到 8:1,做法是撤掉补光让暗面自己掉下去,不是关小主光——整体照度不变,观众始终看得清空间。饱和度是另一条轴,属于调色,不参与比值。
57
+ - 每个光源在剧作里都有名字:不是"神秘光芒",是"走廊尽头那盏没关的顶灯"。写进提示词的是名字,不是情绪。
58
+ - 主色琥珀 + 灰蓝绿;每场只留一个高饱和色点(一件红衣、一盏白灯)承担注意力。
59
+ - 比值的定义、光位命名与调色术语见 [lighting-and-color.md](../lighting-and-color.md),此处只给本透镜的取值。
60
+
61
+ ## 剪辑节奏
62
+
63
+ - 动作段 ASL 3–7 秒,情绪段 ASL 5–9 秒。强度靠障碍升级,不靠切点密度。
64
+ - 剪在反应上而不是剪在揭示上:切点落在表情变化的那一帧,观众带着情绪进入下一个镜头。
65
+ - 每个动作段落结束前给一个 1.5–3 秒的消化镜头:喘息、看向出口、握紧道具。
66
+ - 硬切为主;溶解只用于时间跳跃,一场戏内不用。
67
+
68
+ ## 声音与音乐
69
+
70
+ - 一个人物一个动机旋律,动机在情绪转折前 1–2 秒进入。
71
+ - 威胁先由声音出现(脚步、金属、低频、呼吸),画面滞后 3–8 秒再给。
72
+ - 关键揭示前留 1.5–3 秒近乎全静音,只保留一个环境元素(风、钟、水),然后让音效砸下来。
73
+ - 家庭群戏允许对白重叠,但每场至少有一句必须被完全听清。
74
+
75
+ ## 人物与表演
76
+
77
+ - 每个主角有一个可命名的缺口:缺席的父母、失去的孩子、被撤销的资格、没说出口的道歉。
78
+ - 表演可读性优先:观众要在 1 秒内命名情绪。给的是肌肉指令(眉毛抬起、下颌松开、吞咽、屏息),不是形容词。
79
+ - 群体是互补功能组:专家、行动者、怀疑者、孩子。每人在一场动作戏里有且只有一个用处。
80
+
81
+ ## 风格参数 / Style parameters
82
+
83
+ ```yaml
84
+ style_id: spielberg
85
+ lens_kit_mm: [21, 35, 50, 135] # 21/35 撑三层纵深与空间可读;50 是普通人的中性焦段;135 从远处切反应,机位不动而情绪跳变
86
+ camera:
87
+ prefer: ["slow dolly-in to close-up", "walking-pace tracking follow", "crane down into eye level", "motivated pan connecting person to threat", "rack focus across three planes"]
88
+ avoid: ["dutch angle", "unmotivated handheld", "orbit around subject", "snap zoom", "whip pan"]
89
+ motion_budget: medium
90
+ height: "成人对话眼平;奇观与威胁段落降到 1.0-1.3m 的孩子视线高度,机位锁定"
91
+ shot_size_bias: ["medium close-up reaction", "wide with three-plane depth", "medium two-shot", "insert on the carried object", "extreme wide for scale"]
92
+ composition: ["three-plane deep staging", "silhouette against a bright named source", "doorway frame-within-frame", "subject in lower third under a large event", "clear exit visible in every wide"]
93
+ lighting:
94
+ key_quality: mixed
95
+ key_ratio: "3:1 温暖段;8:1 威胁段"
96
+ motivation: practical
97
+ signature: "薄雾中一束看得见的硬光柱,加发梢逆光轮廓"
98
+ palette:
99
+ dominant: 琥珀、钨丝暖黄、灰蓝绿
100
+ accent: 单一高饱和红或纯白光点
101
+ saturation: mid
102
+ contrast: mid
103
+ editing:
104
+ avg_shot_length_s: "3-7 动作段;5-9 情绪段"
105
+ transition_bias: ["hard cut", "match cut", "dissolve"]
106
+ coverage_style: "完整经典覆盖:主镜 + 反打 + 反应 + 插入,切点落在反应而非揭示"
107
+ sound:
108
+ music: 单人物动机旋律,比情绪转折早 1-2 秒进入
109
+ ambience: 威胁先由声音抵达,画面滞后 3-8 秒
110
+ dialogue: 家庭群戏可重叠,每场保留一句完全听清
111
+ silence_use: 揭示前 1.5-3 秒近乎全静音,只留一个环境元素
112
+ performance:
113
+ register: 高可读性,观众 1 秒内能命名情绪;用肌肉指令而非形容词导戏
114
+ blocking: 人物朝向或背离他想要的东西移动;摄影机守住空间地图
115
+ aspect_bias: "1.85:1 / 16:9"
116
+ ai_video:
117
+ clip_duration_s: "4-8"
118
+ prompt_bias: 每条 clip 只装一次看、一个摄影机行为、一个环境反应;反应镜头单独成条,先生成反应再生成揭示。
119
+ risk: 惊奇脸会退化成呆滞空瞪。对策是把表情写成可执行动作(眉毛抬起、嘴唇分开约 1 厘米、屏住呼吸),并在同一条里写清引发它的光变化。
120
+ negative_prompt_adds: ["dutch angle", "handheld shake", "camera orbit", "slow motion", "extra background crowd", "modern screens or phones", "text or watermark", "flat even lighting"]
121
+ ```
122
+
123
+ ## 可迁移拍摄清单
124
+
125
+ 1. 先写下主角的情感缺口(一句话),再写奇观是什么;顺序反了就重来。
126
+ 2. 给每个动作段落画一张空间地图,标出主角、危险、出口三点,任何镜头不得破坏这三点的相对位置。
127
+ 3. 把每个奇观拆成"反应镜头 1.5–3 秒 + 揭示镜头"两条,先生成反应那条。
128
+ 4. 给场景里每个光源起名字,并把名字写进提示词。
129
+ 5. 高潮拆成 3–5 个小目标,每个写一行"完成 → 新障碍"。
130
+ 6. 在最宏大的镜头之后立刻安排一个手部或物件特写,把规模拉回到人。
131
+ 7. 让音乐动机比情绪转折早 1–2 秒进入。
132
+ 8. 结尾各列一样:不能复原的、被修复的。
133
+
134
+ ## 提示词模板 / Prompt templates
135
+
136
+ 镜头设计简报(中文,用于 Step 5 导演本与 Step 7 分镜):
137
+
138
+ ```text
139
+ 用斯皮尔伯格镜头设计以下场景:<一句话事件>
140
+ 硬性要求:
141
+ - 情感缺口:<一句话>;外部目标:<一句话>
142
+ - 结构:反应镜头(1.5-3 秒,135mm,机位距脸约 3 米,画幅横向约 0.8 米)→ 揭示镜头(21-35mm,三层纵深)
143
+ - 空间:写出主角 / 危险 / 出口三点位置,全段不越轴
144
+ - 光:柔环境底光 + 一束有名字的硬光穿过薄雾;温暖处 3:1,威胁处 8:1
145
+ - 色:琥珀 + 灰蓝绿,全场只留一个高饱和色点 <指定>
146
+ - 声:<角色>的动机旋律提前 1-2 秒进入;揭示前留 2 秒静音
147
+ - 节奏:ASL 5-9 秒,段尾给一个 1.5-3 秒消化镜头
148
+ 输出:分镜表(编号 / 时长 / 景别 / 焦段 / 角度 / 运动 / 调度 / 光 / 连续性锚点)
149
+ ```
150
+
151
+ Image-to-video motion prompt(英文,用于 Step 10,接关键帧):
152
+
153
+ ```text
154
+ [35mm | 135mm], [eye level | 1.2m child-height low angle], [locked | slow dolly-in at walking pace, 1.2 m/s].
155
+ [Subject] begins [visible start state, holding X, eyes on Y], then [one primary action with direction and pace].
156
+ [One environmental beat: dust drifting in the beam, a curtain moving, a distant light changing].
157
+ Soft warm tungsten ambient plus a single hard shaft from [named practical] through faint haze.
158
+ End with [named facial change] and [final body position]. Maintain [face, costume, prop, corridor light, palette].
159
+ Avoid: dutch angle, handheld shake, camera orbit, slow motion, extra people, text, watermark.
160
+ ```
161
+
162
+ Keyframe / still prompt(英文,用于 Step 8,接图像模型):
163
+
164
+ ```text
165
+ [Shot size] of [subject], 35mm-equivalent, [child-height low angle | eye level].
166
+ Three-plane depth: [foreground object] / [subject] / [background event or visible exit].
167
+ Lighting: soft ambient base plus one hard visible beam from [named practical] through thin haze;
168
+ 3:1 in warm beats, 8:1 under threat; hair rim from behind.
169
+ Palette: amber and desaturated blue-green, single saturated accent [red garment | white lamp].
170
+ Expression: [muscular action, e.g. eyebrows lifted, lips parted 1cm, breath held].
171
+ 16:9, 1.85:1 framing. No text, no watermark, no extra figures, no wide-angle distortion.
172
+ ```
173
+
174
+ ## 落地示例 / Worked example
175
+
176
+ 控制场景:一个人站在一扇关着的公寓门前,手里拿着打算送出去的东西,犹豫,最后没敲门就走了。
177
+
178
+ 这一拍的功能:让观众在他放弃之前,先看见他为什么想放弃。
179
+
180
+ 调度:走廊长约 12 米,他从远端走进来。SH1 是贴地广角(21mm,机位高 0.35 米),一次给全三层纵深:前景是门缝漏到走廊地板上的那条暖光带,中景是他越走越近的鞋,背景是走廊尽头亮着的出口。他停在门前 0.6 米,把东西换到左手,右手抬到门锁高度。就在这时门缝下的暖光熄灭。他的手落下,退后一步,转身沿原路走回;摄影机不跟,让走廊纵深把他缩小。
181
+
182
+ 关键镜头 SH3 完整规格:中近景反应,135mm,眼平,机位锁定,架在他前方 3 米——135mm 在这个距离给到约 0.8 米宽的画幅(胸口以上),他身后 9 米的走廊被压平成一片暖色。柔顶光做底,门缝漏出的那条暖光是他脸上唯一的硬光;灯灭时他脸上少掉整整一档。观众先看到脸暗下去,1.5 秒后才切回 SH1 那个贴地广角——这时门缝里已经没有光。反应在前、揭示在后,顺序不能反。音乐动机在他抬手前 1.5 秒进入,在灯灭的那一帧停住。
183
+
184
+ ```text
185
+ Medium close-up, 135mm, eye level, locked camera 3m in front of him; the warm corridor behind him compresses to a flat amber wash.
186
+ The man begins facing the closed door, wrapped parcel held at chest height, right hand rising toward the lock.
187
+ A thin warm light under the door goes out; his face loses one stop of light on that beat.
188
+ His hand lowers, he takes one step back, breath held, then turns away from the door.
189
+ Dust drifts in the ceiling lamp's beam. End on his profile as he starts walking back down the corridor.
190
+ Maintain his face, brown coat, wrapped parcel, warm tungsten corridor light.
191
+ Avoid: dutch angle, handheld shake, camera orbit, slow motion, extra people, text, watermark.
192
+ ```