@lemoncat7/dsh-partner 2.5.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +4 -0
  2. package/docs/THIRD_PARTY_LICENSES.md +13 -0
  3. package/docs/attachment-storage.md +18 -0
  4. package/docs/director-skills.md +24 -0
  5. package/docs/long-task-continuation.md +1 -1
  6. package/docs/releases/2.6.0.md +11 -0
  7. package/docs/releases/2.7.1.md +10 -0
  8. package/lib/agent-runtime.d.ts +3 -1
  9. package/lib/agent-runtime.d.ts.map +1 -1
  10. package/lib/agent-runtime.js +35 -11
  11. package/lib/agent-runtime.js.map +1 -1
  12. package/lib/api/features/attachments-api.d.ts.map +1 -1
  13. package/lib/api/features/attachments-api.js +31 -1
  14. package/lib/api/features/attachments-api.js.map +1 -1
  15. package/lib/api.d.ts +1 -1
  16. package/lib/api.d.ts.map +1 -1
  17. package/lib/api.js +1 -1
  18. package/lib/api.js.map +1 -1
  19. package/lib/attachments/grouped-storage.d.ts +5 -0
  20. package/lib/attachments/grouped-storage.d.ts.map +1 -0
  21. package/lib/attachments/grouped-storage.js +47 -0
  22. package/lib/attachments/grouped-storage.js.map +1 -0
  23. package/lib/attachments/service.d.ts +17 -0
  24. package/lib/attachments/service.d.ts.map +1 -1
  25. package/lib/attachments/service.js +100 -8
  26. package/lib/attachments/service.js.map +1 -1
  27. package/lib/attachments/shared-storage.d.ts +7 -0
  28. package/lib/attachments/shared-storage.d.ts.map +1 -0
  29. package/lib/attachments/shared-storage.js +44 -0
  30. package/lib/attachments/shared-storage.js.map +1 -0
  31. package/lib/attachments/storage-admin.d.ts +6 -0
  32. package/lib/attachments/storage-admin.d.ts.map +1 -0
  33. package/lib/attachments/storage-admin.js +43 -0
  34. package/lib/attachments/storage-admin.js.map +1 -0
  35. package/lib/attachments/storage-types.d.ts +33 -0
  36. package/lib/attachments/storage-types.d.ts.map +1 -0
  37. package/lib/attachments/storage-types.js +2 -0
  38. package/lib/attachments/storage-types.js.map +1 -0
  39. package/lib/attachments/tool.d.ts.map +1 -1
  40. package/lib/attachments/tool.js +16 -5
  41. package/lib/attachments/tool.js.map +1 -1
  42. package/lib/channels/delivery-policy.d.ts.map +1 -1
  43. package/lib/channels/delivery-policy.js +6 -4
  44. package/lib/channels/delivery-policy.js.map +1 -1
  45. package/lib/channels/direct/message-format.js +294 -157
  46. package/lib/channels/direct/message-format.js.map +4 -4
  47. package/lib/channels/manager.d.ts +6 -3
  48. package/lib/channels/manager.d.ts.map +1 -1
  49. package/lib/channels/manager.js +64 -44
  50. package/lib/channels/manager.js.map +1 -1
  51. package/lib/channels/weixin/api.d.ts.map +1 -1
  52. package/lib/channels/weixin/api.js +7 -2
  53. package/lib/channels/weixin/api.js.map +1 -1
  54. package/lib/channels/weixin/errors.d.ts +14 -0
  55. package/lib/channels/weixin/errors.d.ts.map +1 -0
  56. package/lib/channels/weixin/errors.js +29 -0
  57. package/lib/channels/weixin/errors.js.map +1 -0
  58. package/lib/channels/weixin/poll.d.ts +14 -0
  59. package/lib/channels/weixin/poll.d.ts.map +1 -0
  60. package/lib/channels/weixin/poll.js +50 -0
  61. package/lib/channels/weixin/poll.js.map +1 -0
  62. package/lib/client-controller.d.ts.map +1 -1
  63. package/lib/client-controller.js +3 -3
  64. package/lib/client-controller.js.map +1 -1
  65. package/lib/client.d.ts.map +1 -1
  66. package/lib/client.js +983 -575
  67. package/lib/client.js.map +4 -4
  68. package/lib/collaboration/composition.d.ts.map +1 -1
  69. package/lib/collaboration/composition.js +16 -6
  70. package/lib/collaboration/composition.js.map +1 -1
  71. package/lib/collaboration/domain.d.ts +6 -0
  72. package/lib/collaboration/domain.d.ts.map +1 -1
  73. package/lib/collaboration/domain.js.map +1 -1
  74. package/lib/collaboration/service.d.ts.map +1 -1
  75. package/lib/collaboration/service.js +33 -3
  76. package/lib/collaboration/service.js.map +1 -1
  77. package/lib/concern-notification.d.ts.map +1 -1
  78. package/lib/concern-notification.js +2 -1
  79. package/lib/concern-notification.js.map +1 -1
  80. package/lib/concern-tool.js +1 -1
  81. package/lib/concern-tool.js.map +1 -1
  82. package/lib/execution/reply-progress.d.ts.map +1 -1
  83. package/lib/execution/reply-progress.js +4 -2
  84. package/lib/execution/reply-progress.js.map +1 -1
  85. package/lib/execution/service.d.ts +1 -1
  86. package/lib/execution/service.d.ts.map +1 -1
  87. package/lib/execution/service.js +4 -7
  88. package/lib/execution/service.js.map +1 -1
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +3 -1
  91. package/lib/index.js.map +1 -1
  92. package/lib/memory-reflection.js +2 -2
  93. package/lib/memory-reflection.js.map +1 -1
  94. package/lib/message-source.d.ts +25 -0
  95. package/lib/message-source.d.ts.map +1 -0
  96. package/lib/message-source.js +8 -0
  97. package/lib/message-source.js.map +1 -0
  98. package/lib/observation-loop.js +4 -4
  99. package/lib/observation-loop.js.map +1 -1
  100. package/lib/pendant/reader.js +1 -1
  101. package/lib/pendant/reader.js.map +1 -1
  102. package/lib/pendant/renderer.d.ts.map +1 -1
  103. package/lib/pendant/renderer.js +18 -2
  104. package/lib/pendant/renderer.js.map +1 -1
  105. package/lib/pendant/settings-panel.js +1 -1
  106. package/lib/pendant/settings-panel.js.map +1 -1
  107. package/lib/pendant/startup.d.ts +4 -0
  108. package/lib/pendant/startup.d.ts.map +1 -0
  109. package/lib/pendant/startup.js +64 -0
  110. package/lib/pendant/startup.js.map +1 -0
  111. package/lib/pendant/widget.d.ts.map +1 -1
  112. package/lib/pendant/widget.js +2 -1
  113. package/lib/pendant/widget.js.map +1 -1
  114. package/lib/pendant-renderer.js +169 -169
  115. package/lib/persona/service.js +1 -1
  116. package/lib/persona/service.js.map +1 -1
  117. package/lib/requirements/attachments.d.ts +7 -0
  118. package/lib/requirements/attachments.d.ts.map +1 -0
  119. package/lib/requirements/attachments.js +26 -0
  120. package/lib/requirements/attachments.js.map +1 -0
  121. package/lib/requirements/domain.d.ts +1 -1
  122. package/lib/requirements/domain.d.ts.map +1 -1
  123. package/lib/requirements/service.d.ts.map +1 -1
  124. package/lib/requirements/service.js +4 -1
  125. package/lib/requirements/service.js.map +1 -1
  126. package/lib/scheduler/channel-origin.d.ts +7 -0
  127. package/lib/scheduler/channel-origin.d.ts.map +1 -0
  128. package/lib/scheduler/channel-origin.js +27 -0
  129. package/lib/scheduler/channel-origin.js.map +1 -0
  130. package/lib/scheduler/continuations.d.ts +2 -2
  131. package/lib/scheduler/continuations.d.ts.map +1 -1
  132. package/lib/scheduler/continuations.js +28 -8
  133. package/lib/scheduler/continuations.js.map +1 -1
  134. package/lib/scheduler/domain.d.ts +13 -0
  135. package/lib/scheduler/domain.d.ts.map +1 -1
  136. package/lib/scheduler/final-reply.d.ts +13 -0
  137. package/lib/scheduler/final-reply.d.ts.map +1 -0
  138. package/lib/scheduler/final-reply.js +21 -0
  139. package/lib/scheduler/final-reply.js.map +1 -0
  140. package/lib/skills/builtin-resources.d.ts +6 -0
  141. package/lib/skills/builtin-resources.d.ts.map +1 -0
  142. package/lib/skills/builtin-resources.js +47 -0
  143. package/lib/skills/builtin-resources.js.map +1 -0
  144. package/lib/skills/builtin.d.ts +2 -5
  145. package/lib/skills/builtin.d.ts.map +1 -1
  146. package/lib/skills/builtin.js +6 -0
  147. package/lib/skills/builtin.js.map +1 -1
  148. package/lib/skills/director-builtins.d.ts +8 -0
  149. package/lib/skills/director-builtins.d.ts.map +1 -0
  150. package/lib/skills/director-builtins.js +65 -0
  151. package/lib/skills/director-builtins.js.map +1 -0
  152. package/lib/skills/drama-builtin.d.ts +3 -0
  153. package/lib/skills/drama-builtin.d.ts.map +1 -0
  154. package/lib/skills/drama-builtin.js +49 -0
  155. package/lib/skills/drama-builtin.js.map +1 -0
  156. package/lib/skills/long-task-continuation.d.ts +2 -2
  157. package/lib/skills/long-task-continuation.d.ts.map +1 -1
  158. package/lib/skills/long-task-continuation.js +2 -2
  159. package/lib/skills/service.d.ts.map +1 -1
  160. package/lib/skills/service.js +8 -3
  161. package/lib/skills/service.js.map +1 -1
  162. package/lib/skills/viora-canvas-builtin.d.ts +3 -0
  163. package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
  164. package/lib/skills/viora-canvas-builtin.js +19 -0
  165. package/lib/skills/viora-canvas-builtin.js.map +1 -0
  166. package/lib/storage/migrate-layout.d.ts.map +1 -1
  167. package/lib/storage/migrate-layout.js +13 -4
  168. package/lib/storage/migrate-layout.js.map +1 -1
  169. package/lib/tasks/context.js +1 -0
  170. package/lib/tasks/context.js.map +1 -1
  171. package/lib/tasks/continuation.d.ts.map +1 -1
  172. package/lib/tasks/continuation.js +3 -0
  173. package/lib/tasks/continuation.js.map +1 -1
  174. package/lib/tasks/domain.d.ts +2 -0
  175. package/lib/tasks/domain.d.ts.map +1 -1
  176. package/lib/tasks/service.d.ts +2 -1
  177. package/lib/tasks/service.d.ts.map +1 -1
  178. package/lib/tasks/service.js +15 -1
  179. package/lib/tasks/service.js.map +1 -1
  180. package/lib/ui/attachment-storage.d.ts +2 -0
  181. package/lib/ui/attachment-storage.d.ts.map +1 -0
  182. package/lib/ui/attachment-storage.js +59 -0
  183. package/lib/ui/attachment-storage.js.map +1 -0
  184. package/lib/ui/capability-editor.js +1 -1
  185. package/lib/ui/capability-editor.js.map +1 -1
  186. package/lib/ui/companion-access-panel.js +1 -1
  187. package/lib/ui/companion-access-panel.js.map +1 -1
  188. package/lib/ui/companion-create.js +1 -1
  189. package/lib/ui/companion-create.js.map +1 -1
  190. package/lib/ui/companion-picker.js +1 -1
  191. package/lib/ui/companion-picker.js.map +1 -1
  192. package/lib/ui/identity-editor.js +1 -1
  193. package/lib/ui/identity-editor.js.map +1 -1
  194. package/lib/ui/mcp-capabilities.js +1 -1
  195. package/lib/ui/mcp-capabilities.js.map +1 -1
  196. package/lib/ui/mcp-panel.js +1 -1
  197. package/lib/ui/mcp-panel.js.map +1 -1
  198. package/lib/ui/memory/concern-board.js +2 -2
  199. package/lib/ui/memory/concern-board.js.map +1 -1
  200. package/lib/ui/memory/concern-deletion.d.ts +1 -1
  201. package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
  202. package/lib/ui/memory/concern-deletion.js +9 -4
  203. package/lib/ui/memory/concern-deletion.js.map +1 -1
  204. package/lib/ui/memory/concern-panel.js +1 -1
  205. package/lib/ui/memory/concern-panel.js.map +1 -1
  206. package/lib/ui/memory/memory-library.js +1 -1
  207. package/lib/ui/memory/memory-library.js.map +1 -1
  208. package/lib/ui/memory/memory-panel.js +1 -1
  209. package/lib/ui/memory/memory-panel.js.map +1 -1
  210. package/lib/ui/partner-components.js +1 -1
  211. package/lib/ui/partner-components.js.map +1 -1
  212. package/lib/ui/requirement-board.js +1 -1
  213. package/lib/ui/requirement-board.js.map +1 -1
  214. package/lib/ui/requirement-dialog.js +1 -1
  215. package/lib/ui/requirement-dialog.js.map +1 -1
  216. package/lib/ui/requirement-tasks-panel.js +1 -1
  217. package/lib/ui/requirement-tasks-panel.js.map +1 -1
  218. package/lib/ui/schedule-panel.js +1 -1
  219. package/lib/ui/schedule-panel.js.map +1 -1
  220. package/lib/ui/skills-panel.js +1 -1
  221. package/lib/ui/skills-panel.js.map +1 -1
  222. package/lib/ui/storage-settings.d.ts.map +1 -1
  223. package/lib/ui/storage-settings.js +2 -1
  224. package/lib/ui/storage-settings.js.map +1 -1
  225. package/lib/ui/task-board-stage.js +1 -1
  226. package/lib/ui/task-board-stage.js.map +1 -1
  227. package/lib/ui/workspace-components.js +1 -1
  228. package/lib/ui/workspace-components.js.map +1 -1
  229. package/lib/ui/workspace-navigation.d.ts +16 -16
  230. package/lib/ui/workspace-navigation.js +1 -1
  231. package/lib/ui/workspace-navigation.js.map +1 -1
  232. package/package.json +53 -41
  233. package/resources/skills/cinematic-director/manifest.json +205 -0
  234. package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
  235. package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
  236. package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
  237. package/resources/skills/cinematic-director/upstream/README.md +507 -0
  238. package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
  239. package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
  240. package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
  241. package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
  242. package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
  243. package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
  244. package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
  245. package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
  246. package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
  247. package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
  248. package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
  249. package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
  250. package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
  251. package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
  252. package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
  253. package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
  254. package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
  255. package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
  256. package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
  257. package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
  258. package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
  259. package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
  260. package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
  261. package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
  262. package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
  263. package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
  264. package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
  265. package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
  266. package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
  267. package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
  268. package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
  269. package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
  270. package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
  271. package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
  272. package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
  273. package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
  274. package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
  275. package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
  276. package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
  277. package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
  278. package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
  279. package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
  280. package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
  281. package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
  282. package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
  283. package/resources/skills/director-skills/manifest.json +541 -0
  284. package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
  285. package/resources/skills/director-skills/upstream/LICENSE +21 -0
  286. package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
  287. package/resources/skills/director-skills/upstream/README.md +251 -0
  288. package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
  289. package/resources/skills/director-skills/upstream/SKILL.md +114 -0
  290. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
  291. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
  292. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
  293. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
  294. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
  295. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
  296. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
  297. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
  298. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
  299. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
  300. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
  301. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
  302. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
  303. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
  304. package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
  305. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
  306. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
  307. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
  308. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
  309. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
  310. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
  311. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
  312. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
  313. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
  314. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
  315. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
  316. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
  317. package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
  318. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
  319. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
  320. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
  321. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
  322. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
  323. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
  324. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
  325. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
  326. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
  327. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
  328. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
  329. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
  330. package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
  331. package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
  332. package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
  333. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
  334. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
  335. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
  336. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
  337. package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
  338. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
  339. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
  340. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
  341. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
  342. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
  343. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
  344. package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
  345. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
  346. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
  347. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
  348. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
  349. package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
  350. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
  351. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
  352. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
  353. package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
  354. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
  355. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
  356. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
  357. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
  358. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
  359. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
  360. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
  361. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
  362. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
  363. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
  364. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
  365. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
  366. package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
  367. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
  368. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
  369. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
  370. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
  371. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
  372. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
  373. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
  374. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
  375. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
  376. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
  377. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
  378. package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
  379. package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
  380. package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
  381. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
  382. package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
  383. package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
  384. package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
  385. package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
  386. package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
  387. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
  388. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
  389. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
  390. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
  391. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
  392. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
  393. package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
  394. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
  395. package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
  396. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
  397. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
  398. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
  399. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
  400. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
  401. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
  402. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
  403. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
  404. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
  405. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
  406. package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
  407. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
  408. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
  409. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
  410. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
  411. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
  412. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
  413. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
  414. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
  415. package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
  416. package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
  417. package/resources/skills/drama-production/manifest.json +933 -0
  418. package/resources/skills/drama-production/upstream/LICENSE +21 -0
  419. package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
  420. package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
  421. package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  422. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
  423. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
  424. package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
  425. package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  426. package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
  427. package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  428. package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
  429. package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
  430. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
  431. package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
  432. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
  433. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
  434. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
  435. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  436. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
  437. package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
  438. package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
  439. package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
  440. package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
  441. package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
  442. package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
  443. package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
  444. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
  445. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
  446. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
  447. package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
  448. package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
  449. package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
  450. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  451. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  452. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  453. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  454. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  455. package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  456. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  457. package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  458. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
  459. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
  460. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
  461. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
  462. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
  463. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
  464. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
  465. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
  466. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
  467. package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
  468. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
  469. package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
  470. package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
  471. package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
  472. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  473. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
  474. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  475. package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
  476. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  477. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  478. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  479. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
  480. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  481. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
  482. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
  483. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
  484. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
  485. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
  486. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
  487. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
  488. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
  489. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
  490. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
  491. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
  492. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
  493. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
  494. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  495. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  496. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
  497. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  498. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  499. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
  500. package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
  501. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  502. package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
  503. package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
  504. package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
  505. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
  506. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
  507. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
  508. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
  509. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
  510. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
  511. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
  512. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
  513. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
  514. package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
  515. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
  516. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
  517. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
  518. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
  519. package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
  520. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
  521. package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
  522. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
  523. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  524. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  525. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
  526. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  527. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
  528. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  529. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
  530. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
  531. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
  532. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
  533. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
  534. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
  535. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  536. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
  537. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  538. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
  539. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  540. package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
  541. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
  542. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  543. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  544. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  545. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  546. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  547. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
  548. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  549. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  550. package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  551. package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
  552. package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
  553. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
  554. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  555. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
  556. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  557. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
  558. package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
  559. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
  560. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
  561. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
  562. package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
  563. package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
  564. package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
  565. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  566. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  567. package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
  568. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  569. package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  570. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
  571. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
  572. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
  573. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
  574. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
  575. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  576. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
  577. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
  578. package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
  579. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
  580. package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
  581. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
  582. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  583. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  584. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  585. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
  586. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  587. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  588. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  589. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  590. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
  591. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
  592. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
  593. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
  594. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
  595. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
  596. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
  597. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
  598. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
  599. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
  600. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
  601. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
  602. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  603. package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  604. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
  605. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  606. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  607. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  608. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
  609. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  610. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  611. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  612. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
  613. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  614. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
  615. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
  616. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
  617. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
  618. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
  619. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
  620. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
  621. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
  622. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
  623. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
  624. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
  625. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
  626. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  627. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  628. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  629. package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  630. package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
  631. package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
  632. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
  633. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  634. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
  635. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
  636. package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  637. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
  638. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
  639. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
  640. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  641. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
  642. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
  643. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
  644. package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
  645. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  646. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  647. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
  648. package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  649. package/resources/skills/viora-canvas-production/manifest.json +23 -0
  650. package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
  651. package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
  652. package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
  653. package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
@@ -0,0 +1,114 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <meta name="color-scheme" content="dark">
7
+ <title>短剧创作台</title>
8
+ <link rel="icon" href="data:,">
9
+ <link rel="stylesheet" href="/styles.css">
10
+ </head>
11
+ <body>
12
+ <header class="app-header">
13
+ <a class="brand" href="/" aria-label="回到创作台顶部">
14
+ <span class="brand-mark" aria-hidden="true">场</span>
15
+ <h1 class="brand-title">短剧创作台</h1>
16
+ </a>
17
+ <div class="project-tools">
18
+ <div id="workspaceStatus" aria-live="polite"></div>
19
+ <label class="project-picker">
20
+ <span>正在创作</span>
21
+ <select id="projects" aria-label="选择短剧项目"></select>
22
+ </label>
23
+ </div>
24
+ </header>
25
+
26
+ <main id="mainContent" tabindex="-1">
27
+ <section id="projectOverview" class="project-overview" aria-labelledby="projectTitle">
28
+ <div class="overview-lead">
29
+ <span class="eyebrow">PROJECT OVERVIEW</span>
30
+ <div class="overview-title-row">
31
+ <div>
32
+ <h2 id="projectTitle">正在打开项目…</h2>
33
+ <p>浏览全剧内容、分集进度与已有媒体。创作和生产仍由 skills 完成。</p>
34
+ </div>
35
+ <button id="openScreenplay" class="secondary" disabled>阅读当前剧本</button>
36
+ </div>
37
+ <div id="overviewStats" class="overview-stats" aria-live="polite"></div>
38
+ </div>
39
+ <div class="overview-flow">
40
+ <div class="section-heading">
41
+ <div><span class="eyebrow">EPISODES</span><h3>分集进度</h3></div>
42
+ <span id="episodeHint" class="section-note"></span>
43
+ </div>
44
+ <div id="episodeStrip" class="episode-strip" aria-label="按分集浏览"></div>
45
+ </div>
46
+ <div id="mediaShowcase" class="media-showcase" hidden>
47
+ <div class="section-heading">
48
+ <div><span class="eyebrow">MEDIA</span><h3>已有制作成果</h3></div>
49
+ <span class="section-note">仅展示 · 生产需在 skill 中明确确认</span>
50
+ </div>
51
+ <div id="mediaGallery" class="media-gallery"></div>
52
+ </div>
53
+ </section>
54
+
55
+ <section class="creator-desk" aria-label="创作内容">
56
+ <aside class="content-nav">
57
+ <div class="content-nav-heading">
58
+ <h2>本剧内容</h2>
59
+ <label class="creator-search"><span class="sr-only">搜索内容标题或集数</span><input id="search" type="search" placeholder="搜索标题或集数"></label>
60
+ </div>
61
+ <div id="contentList" class="content-list" aria-live="polite"></div>
62
+ </aside>
63
+
64
+ <section id="documentPane" class="document-pane" aria-labelledby="filename">
65
+ <div class="document-toolbar">
66
+ <div class="file-identity">
67
+ <span id="fileKind" class="file-location">创作正文</span>
68
+ <h2 id="filename">创作内容</h2>
69
+ <span id="fileMeta" class="file-meta"></span>
70
+ </div>
71
+ <div class="toolbar-actions">
72
+ <button id="editMode" class="secondary" aria-pressed="false" disabled>修改正文</button>
73
+ <button id="save" class="primary" disabled>已保存</button>
74
+ </div>
75
+ </div>
76
+ <div class="content-stage">
77
+ <textarea id="editor" hidden disabled spellcheck="false" aria-label="内容编辑器"></textarea>
78
+ <article id="preview" class="document-preview empty-document" aria-label="内容预览"></article>
79
+ <div id="media" class="media" hidden></div>
80
+ </div>
81
+ <footer class="document-footer"><div id="message" role="status" aria-live="polite"></div><span>⌘/Ctrl + S 保存</span></footer>
82
+ </section>
83
+ </section>
84
+
85
+ <section id="assistRow" class="assist-row" aria-label="创作辅助" hidden>
86
+ <article id="taskSummary" class="assist-card" aria-live="polite"></article>
87
+ <article id="exportSummary" class="assist-card" aria-live="polite"></article>
88
+ </section>
89
+ </main>
90
+
91
+ <div id="notices" class="notices" aria-live="polite"></div>
92
+
93
+ <!-- One drawn icon family: 24×24 grid, one stroke weight, cloned by app.js.
94
+ They live in markup so the script never needs the SVG namespace string. -->
95
+ <template id="iconTemplates">
96
+ <svg data-icon="sources" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 6.5C10.4 5.2 8.4 4.5 6 4.5H4v13h2c2.4 0 4.4.7 6 2"/><path d="M12 6.5c1.6-1.3 3.6-2 6-2h2v13h-2c-2.4 0-4.4.7-6 2"/><path d="M12 6.5v15"/></svg>
97
+ <svg data-icon="analysis" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 4.5h9l3.5 3.5v6"/><path d="M14 4.5v3.5h3.5"/><path d="M8 9.5h5"/><path d="M8 13h3"/><path d="M14.5 15.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z"/><path d="M16.8 20.3l2.7 2.2"/></svg>
98
+ <svg data-icon="project" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17Z"/><path d="M15.4 8.6l-1.9 4.9-4.9 1.9 1.9-4.9 4.9-1.9Z"/></svg>
99
+ <svg data-icon="cast" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 12.5a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/><path d="M4.5 20.5c1.4-3.4 4.1-5 7.5-5s6.1 1.6 7.5 5"/></svg>
100
+ <svg data-icon="story" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M6 3.5h8l4 4v13H6v-17Z"/><path d="M14 3.5v4h4"/><path d="M9 12.5h6"/><path d="M9 16h4"/></svg>
101
+ <svg data-icon="prompts" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M9.5 4l1.4 3.7 3.6 1.3-3.6 1.4L9.5 14l-1.4-3.6L4.5 9l3.6-1.3L9.5 4Z"/><path d="M17 13.5l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8.8-2.2Z"/></svg>
102
+ <svg data-icon="visual" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4.5 5.5h15v13h-15v-13Z"/><path d="M4.5 15.5l4.2-4.2 3.3 3.3 3-3 4 4"/><path d="M9 9.7a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Z"/></svg>
103
+ <svg data-icon="storyboard" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M3.5 5.5h17v13h-17v-13Z"/><path d="M3.5 12h17"/><path d="M9.5 5.5v13"/><path d="M15.5 5.5v13"/></svg>
104
+ <svg data-icon="other" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M3.5 6.5h6l2 2.5h9v11h-17v-13.5Z"/></svg>
105
+ <svg data-icon="media" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 20.5a8.5 8.5 0 1 0 0-17 8.5 8.5 0 0 0 0 17Z"/><path d="M10.2 8.5l6 3.5-6 3.5v-7Z"/></svg>
106
+ <svg data-icon="image" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4.5 5.5h15v13h-15v-13Z"/><path d="M4.5 15.5l4.2-4.2 3.3 3.3 3-3 4 4"/><path d="M9 9.7a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Z"/></svg>
107
+ <svg data-icon="video" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4.5 5.5h15v13h-15v-13Z"/><path d="M10 9l5 3-5 3V9Z"/></svg>
108
+ <svg data-icon="audio" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 13v-2"/><path d="M9 16V8"/><path d="M13 19V5"/><path d="M17 16V8"/><path d="M21 13v-2"/></svg>
109
+ <svg data-icon="chevron" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M9.5 6.5l5.5 5.5-5.5 5.5"/></svg>
110
+ </template>
111
+
112
+ <script src="/app.js"></script>
113
+ </body>
114
+ </html>
@@ -0,0 +1,297 @@
1
+ :root {
2
+ color-scheme: dark;
3
+
4
+ /* Ground, then the desk, then what sits on it. */
5
+ --bg: #0d0c0b;
6
+ --workspace: #131210;
7
+ --surface: #171513;
8
+ --surface-raised: #211e1a;
9
+
10
+ /* Two line roles. --line and --line-soft draw structure and may stay quiet;
11
+ --line-control outlines real controls, so it clears 3:1 on every surface
12
+ it is used on (3.6:1 on --surface, 3.3:1 on --surface-raised). */
13
+ --line: #37312a;
14
+ --line-soft: #292520;
15
+ --line-control: #7a6d5e;
16
+
17
+ --ink: #f5efe5;
18
+ --ink-dark: #eee6dc;
19
+ --muted: #aaa095;
20
+ --muted-dim: #978c7f;
21
+ --accent: #e1643c;
22
+ --accent-strong: #ff7950;
23
+ --accent-wash: rgba(225, 100, 60, .12);
24
+ --success: #78b892;
25
+ --warning: #d9a550;
26
+ --danger: #e16d68;
27
+
28
+ /* Latin from the platform UI face, CJK from the platform CJK face. Naming a
29
+ font the page never loads (Inter) left the desk rendering differently on
30
+ every machine. */
31
+ --font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
32
+ "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
33
+ /* Lining figures first. Georgia and Hoefler Text set EP001 in old-style
34
+ figures — it reads as "EP0o1" — and neither carries an lnum table to turn
35
+ them off, so the fix is the face order, not the feature. Latin from
36
+ Charter, CJK from the platform Song face behind it. */
37
+ --font-doc: Charter, "New York", "Iowan Old Style", "Times New Roman",
38
+ "Songti SC", "Noto Serif CJK SC", serif;
39
+
40
+ /* 4px base. Every gap, pad and inset below picks a step from this scale. */
41
+ --space-1: .25rem;
42
+ --space-2: .5rem;
43
+ --space-3: .75rem;
44
+ --space-4: 1rem;
45
+ --space-5: 1.25rem;
46
+ --space-6: 1.5rem;
47
+ --space-8: 2rem;
48
+ --space-10: 2.5rem;
49
+ --space-12: 3rem;
50
+
51
+ /* Fixed rem roles, ~1.15 apart. rem so browser zoom and the reader's own
52
+ font size still move the interface; 12px is the floor because Chinese
53
+ glyphs below it stop resolving. */
54
+ --text-2xs: .75rem;
55
+ --text-xs: .8125rem;
56
+ --text-sm: .875rem;
57
+ --text-base: .9375rem;
58
+ --text-md: 1.0625rem;
59
+ --text-lg: 1.25rem;
60
+ --text-xl: 1.5rem;
61
+ --text-read: 1rem;
62
+
63
+ --radius-sm: 6px;
64
+ --radius-md: 9px;
65
+ --radius-lg: 14px;
66
+ --radius-xl: 18px;
67
+ --radius-pill: 999px;
68
+
69
+ --ease: cubic-bezier(.2, .7, .3, 1);
70
+ --duration: 160ms;
71
+
72
+ --header-height: 4.625rem;
73
+ --desk-gutter: var(--space-4);
74
+ --measure: 54rem;
75
+
76
+ font-family: var(--font-ui);
77
+ }
78
+
79
+ * { box-sizing: border-box; }
80
+ html { min-height: 100%; scroll-behavior: smooth; }
81
+ body { min-height: 100%; margin: 0; color: var(--ink); background: radial-gradient(circle at 78% -10%, rgba(225,100,60,.11), transparent 27rem), var(--bg); font: var(--text-base)/1.6 inherit; -webkit-font-smoothing: antialiased; }
82
+ button, input, select, textarea { font: inherit; }
83
+ button, input, select { color: inherit; border: 1px solid var(--line-control); border-radius: var(--radius-md); background: var(--surface); }
84
+ button { min-height: 2.5rem; padding: var(--space-2) var(--space-4); cursor: pointer; transition: border-color var(--duration) var(--ease), background var(--duration) var(--ease), color var(--duration) var(--ease); }
85
+ button:hover:not(:disabled) { border-color: var(--ink-dark); background: var(--surface-raised); }
86
+ button:active:not(:disabled) { background: var(--bg); }
87
+ button:disabled { cursor: not-allowed; opacity: .45; }
88
+ button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline: 3px solid var(--accent-strong); outline-offset: 3px; }
89
+ [hidden] { display: none !important; }
90
+ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
91
+
92
+ /* Belt and braces for a fallback face that defaults to old-style but does
93
+ carry the feature. See --font-doc for why the stack does the real work. */
94
+ .content-nav-heading h2, .file-identity h2, .assist-card h2, .document-preview { font-variant-numeric: lining-nums; }
95
+
96
+ /* One drawn icon family: 24×24 grid, one stroke weight, inherits its colour. */
97
+ .icon { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
98
+
99
+ .app-header { min-height: var(--header-height); padding: var(--space-3) clamp(var(--space-4), 4vw, var(--space-12)); display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); border-bottom: 1px solid var(--line-soft); background: var(--bg); }
100
+ .brand { display: inline-flex; align-items: center; gap: var(--space-3); color: inherit; text-decoration: none; }
101
+ .brand-mark { display: grid; place-items: center; flex: 0 0 auto; width: 2.375rem; height: 2.375rem; border-radius: 50%; color: #16110d; background: var(--accent); font-family: var(--font-doc); font-size: var(--text-md); font-weight: 900; }
102
+ .brand-title { margin: 0; font-size: var(--text-md); font-weight: 650; letter-spacing: .01em; white-space: nowrap; }
103
+ .project-tools { display: flex; align-items: center; gap: var(--space-4); }
104
+ .project-picker { display: flex; align-items: center; gap: var(--space-2); color: var(--muted); font-size: var(--text-2xs); }
105
+ .project-picker select { min-width: 11.875rem; max-width: 36vw; min-height: 2.5rem; padding: var(--space-2) var(--space-8) var(--space-2) var(--space-3); color: var(--ink); }
106
+
107
+ main { width: min(100%, 100rem); margin: 0 auto; padding: var(--desk-gutter) clamp(var(--space-3), 1.5vw, var(--space-6)) var(--space-8); }
108
+ main:focus { outline: none; }
109
+
110
+ .project-overview { padding: clamp(var(--space-5), 3vw, var(--space-10)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(20rem, .75fr); gap: var(--space-8); border: 1px solid var(--line); border-radius: var(--radius-xl); background: linear-gradient(145deg, rgba(33,30,26,.96), rgba(19,18,16,.96)); box-shadow: 0 24px 60px rgba(0,0,0,.22); }
111
+ .overview-lead { min-width: 0; display: grid; align-content: start; gap: var(--space-4); }
112
+ .eyebrow { color: #d79072; font-size: var(--text-2xs); font-weight: 750; letter-spacing: .16em; }
113
+ .overview-title-row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-6); }
114
+ .overview-title-row > div { min-width: 0; }
115
+ .overview-title-row h2 { margin: 0; overflow-wrap: anywhere; font-family: var(--font-doc); font-size: clamp(1.9rem, 3vw, 3.25rem); font-weight: 580; line-height: 1.08; letter-spacing: -.02em; }
116
+ .overview-title-row p { max-width: 44rem; margin: var(--space-3) 0 0; color: var(--muted); }
117
+ .overview-title-row button { flex: 0 0 auto; }
118
+ .overview-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); }
119
+ .overview-stat { min-width: 0; padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(13,12,11,.38); }
120
+ .overview-stat strong { display: block; overflow: hidden; font-family: var(--font-doc); font-size: var(--text-xl); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
121
+ .overview-stat span { display: block; margin-top: 2px; color: var(--muted); font-size: var(--text-2xs); }
122
+ .overview-flow, .media-showcase { min-width: 0; display: grid; align-content: start; gap: var(--space-3); }
123
+ .media-showcase { grid-column: 1 / -1; padding-top: var(--space-6); border-top: 1px solid var(--line); }
124
+ .section-heading { min-height: 2.75rem; display: flex; align-items: end; justify-content: space-between; gap: var(--space-4); }
125
+ .section-heading h3 { margin: 2px 0 0; font-family: var(--font-doc); font-size: var(--text-lg); font-weight: 600; }
126
+ .section-note { color: var(--muted); font-size: var(--text-2xs); text-align: right; }
127
+ .episode-strip { display: grid; gap: var(--space-2); }
128
+ .episode-card { width: 100%; min-height: 4.5rem; padding: var(--space-3) var(--space-4); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); border-color: var(--line); background: rgba(13,12,11,.34); text-align: left; }
129
+ .episode-card:hover:not(:disabled) { border-color: var(--line-control); }
130
+ .episode-number { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: var(--radius-sm); color: var(--accent-strong); background: var(--accent-wash); font-size: var(--text-2xs); font-weight: 750; }
131
+ .episode-copy { min-width: 0; display: grid; }
132
+ .episode-copy strong { overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
133
+ .episode-copy small { color: var(--muted); font-size: var(--text-2xs); }
134
+ .episode-state { color: var(--muted); font-size: var(--text-2xs); }
135
+ .media-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: var(--space-3); }
136
+ .media-card { min-width: 0; min-height: 9.5rem; padding: 0; overflow: hidden; display: grid; grid-template-rows: 6.25rem auto; border-color: var(--line); background: rgba(13,12,11,.42); text-align: left; }
137
+ .media-card:hover:not(:disabled) { border-color: var(--accent); }
138
+ .media-card-visual { position: relative; display: grid; place-items: center; overflow: hidden; color: var(--muted); background: linear-gradient(135deg, #2b2722, #11100e); }
139
+ .media-card-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 240ms var(--ease); }
140
+ .media-card:hover .media-card-visual img { transform: scale(1.025); }
141
+ .media-card-visual .icon { width: 2rem; height: 2rem; color: #c9b8a7; }
142
+ .media-card-type { position: absolute; top: var(--space-2); right: var(--space-2); padding: 2px var(--space-2); border-radius: var(--radius-pill); color: var(--ink); background: rgba(13,12,11,.78); font-size: .6875rem; font-weight: 700; backdrop-filter: blur(5px); }
143
+ .media-card-copy { min-width: 0; padding: var(--space-3); display: grid; gap: 1px; }
144
+ .media-card-copy strong, .media-card-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
145
+ .media-card-copy strong { font-size: var(--text-xs); }
146
+ .media-card-copy small { color: var(--muted); font-size: .6875rem; }
147
+
148
+ .creator-desk { height: min(50rem, calc(100dvh - var(--header-height) - var(--desk-gutter) - var(--space-6))); min-height: 38.75rem; margin-top: var(--space-4); display: grid; grid-template-columns: 18.75rem minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--workspace); }
149
+
150
+ .content-nav { min-width: 0; min-height: 0; padding: var(--space-5) var(--space-3); display: grid; grid-template-rows: auto minmax(0, 1fr); gap: var(--space-4); border-right: 1px solid var(--line); background: var(--workspace); }
151
+ .content-nav-heading { padding: 0 var(--space-1); display: grid; gap: var(--space-3); }
152
+ .content-nav-heading h2 { margin: 0; font-family: var(--font-doc); font-size: var(--text-xl); font-weight: 600; }
153
+ .creator-search { display: block; }
154
+ .creator-search input { width: 100%; min-height: 2.75rem; padding: var(--space-2) var(--space-3); }
155
+ .creator-search input::placeholder { color: var(--muted-dim); }
156
+ .content-list { min-height: 0; overflow: auto; display: grid; align-content: start; gap: var(--space-2); padding-bottom: var(--space-2); }
157
+ .content-nav-group { min-width: 0; }
158
+ .content-nav-group-toggle { width: 100%; min-height: 2rem; padding: var(--space-1) var(--space-2); display: grid; grid-template-columns: 1rem minmax(0, 1fr) auto; align-items: center; gap: var(--space-2); border-color: transparent; background: transparent; text-align: left; }
159
+ .content-nav-group-toggle:hover:not(:disabled) { border-color: transparent; background: var(--surface); }
160
+ .content-nav-group-toggle strong { font-size: var(--text-xs); font-weight: 650; }
161
+ .content-nav-group-count { color: var(--muted); font-size: var(--text-2xs); }
162
+ .content-nav-group-chevron { width: 1rem; height: 1rem; color: var(--muted); transform: rotate(90deg); transition: transform var(--duration) var(--ease); }
163
+ .content-nav-group-toggle[aria-expanded="false"] .content-nav-group-chevron { transform: rotate(0); }
164
+ .content-link-list { margin-top: var(--space-1); display: grid; gap: var(--space-1); }
165
+ .content-link { width: 100%; min-width: 0; padding: var(--space-2) var(--space-3); display: flex; align-items: center; gap: var(--space-3); border-color: transparent; background: transparent; text-align: left; }
166
+ .content-link:hover:not(:disabled) { border-color: transparent; background: var(--surface); }
167
+ .content-link-icon { color: var(--muted); transition: color var(--duration) var(--ease); }
168
+ .content-link.active { border-color: var(--accent); background: var(--accent-wash); }
169
+ .content-link.active .content-link-icon { color: var(--accent-strong); }
170
+ .content-link.active .content-link-copy strong { color: var(--ink); }
171
+ .content-link-copy { min-width: 0; display: grid; gap: 1px; }
172
+ .content-link-copy strong, .content-link-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
173
+ .content-link-copy strong { font-size: var(--text-sm); font-weight: 600; }
174
+ .content-link-copy small { color: var(--muted); font-size: var(--text-2xs); }
175
+ .empty-copy { margin: var(--space-3); color: var(--muted); }
176
+
177
+ /* Desktop Grid shrink contract: keep the long document inside .content-stage's scroll area. */
178
+ .document-pane { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; scroll-margin-top: var(--space-4); background: var(--workspace); }
179
+ .document-toolbar { min-height: 5.375rem; padding: var(--space-4) var(--space-5); display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); border-bottom: 1px solid var(--line); }
180
+ .file-identity { min-width: 0; display: grid; gap: var(--space-1); }
181
+ .file-identity h2 { margin: 0; overflow: hidden; font-family: var(--font-doc); font-size: var(--text-lg); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
182
+ /* Where the open file sits, not a label for the heading below it. */
183
+ .file-location { overflow: hidden; color: var(--muted); font-size: var(--text-2xs); text-overflow: ellipsis; white-space: nowrap; }
184
+ .file-meta { color: var(--warning); font-size: var(--text-2xs); }
185
+ .toolbar-actions { display: flex; align-items: center; gap: var(--space-2); }
186
+ .primary { border-color: var(--accent); color: #20130e; background: var(--accent); font-weight: 700; }
187
+ .primary:hover:not(:disabled) { border-color: var(--accent-strong); background: var(--accent-strong); }
188
+ /* "已保存" is a state readout, not an offer. A dimmed accent slab reads as a
189
+ broken button; drop to the quiet control treatment instead. */
190
+ .primary:disabled { border-color: var(--line); color: var(--muted); background: transparent; opacity: 1; }
191
+ .secondary { color: var(--ink); background: var(--surface-raised); font-weight: 600; }
192
+ .content-stage { min-height: 0; overflow: auto; background: var(--workspace); }
193
+ /* Editor and preview hold the same text, so they share the measure and the
194
+ inset — toggling 修改正文 must not move the line the creator was reading. */
195
+ #editor { display: block; width: min(var(--measure), 100%); min-height: 42.5rem; margin: 0 auto; padding: var(--space-12) var(--space-8); resize: vertical; border: 0; outline-offset: -3px; color: var(--ink); background: var(--workspace); font: var(--text-read)/1.8 var(--font-doc); }
196
+ .document-preview { width: min(var(--measure), 100%); min-height: 42.5rem; margin: 0 auto; padding: var(--space-12) var(--space-8); color: var(--ink-dark); background: transparent; }
197
+ .empty-document { display: grid; place-items: center; color: var(--muted-dim); text-align: center; }
198
+ .document-preview h1, .document-preview h2, .document-preview h3, .document-preview h4 { margin: 1.45em 0 .5em; font-family: var(--font-doc); line-height: 1.25; }
199
+ .document-preview h1:first-child, .document-preview h2:first-child { margin-top: 0; }
200
+ .document-preview p, .document-preview li { font-size: var(--text-read); line-height: 1.8; }
201
+ .document-preview blockquote { margin: 1.2em 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--muted); }
202
+ .document-preview code { padding: 2px 5px; border-radius: 4px; background: rgba(255,255,255,.07); }
203
+
204
+ .document-loading { display: block; }
205
+ .skeleton { display: grid; gap: var(--space-4); }
206
+ .skeleton-line { height: .875rem; border-radius: var(--radius-sm); background: linear-gradient(90deg, var(--surface-raised) 25%, #322d27 50%, var(--surface-raised) 75%) 0 0 / 300% 100%; animation: skeleton-sweep 1.4s var(--ease) infinite; }
207
+ .skeleton-heading { width: 45%; height: 1.75rem; margin-bottom: var(--space-4); }
208
+ @keyframes skeleton-sweep { from { background-position: 150% 0; } to { background-position: -150% 0; } }
209
+
210
+ .structured-card { margin-bottom: var(--space-4); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-raised); }
211
+ .record-number { display: block; margin-bottom: var(--space-3); color: #c89b7f; font-size: var(--text-2xs); font-weight: 700; letter-spacing: .1em; }
212
+ .structured-fields { margin: 0; display: grid; grid-template-columns: minmax(5.625rem, .3fr) 1fr; gap: var(--space-2) var(--space-5); }
213
+ .structured-fields dt { color: #b5a79a; font-size: var(--text-xs); font-weight: 650; }
214
+ .structured-fields dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
215
+ .structured-list { margin: 0; padding-left: 1.15em; }
216
+ .structured-nested { margin: 0; display: grid; grid-template-columns: minmax(5rem, .3fr) 1fr; gap: var(--space-1) var(--space-3); }
217
+ .structured-nested dd { margin: 0; }
218
+ .plain-copy { white-space: pre-wrap; }
219
+ .preview-warning { padding: var(--space-4); border: 1px solid rgba(225,109,104,.5); border-radius: var(--radius-sm); color: #f0aaa5; background: rgba(225,109,104,.09); }
220
+
221
+ .media { min-height: 42.5rem; }
222
+ .media-shell { min-height: 42.5rem; display: grid; grid-template-rows: minmax(0, 1fr) auto; }
223
+ .media-stage { min-height: 0; padding: var(--space-8); display: grid; place-items: center; background: #080807; }
224
+ .media-stage img, .media-stage video { max-width: 100%; max-height: 40.625rem; object-fit: contain; box-shadow: 0 15px 55px rgba(0,0,0,.4); }
225
+ .media-stage audio { width: min(38rem, 100%); }
226
+ .media-facts { padding: var(--space-3) var(--space-6); display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); color: var(--muted); border-top: 1px solid var(--line); }
227
+ .document-footer { min-height: 2.875rem; padding: var(--space-2) var(--space-5); display: flex; justify-content: space-between; gap: var(--space-5); border-top: 1px solid var(--line); color: var(--muted); font-size: var(--text-2xs); }
228
+ #message[data-tone="success"] { color: var(--success); }
229
+ #message[data-tone="warning"] { color: var(--warning); }
230
+ #message[data-tone="danger"] { color: var(--danger); }
231
+
232
+ .assist-row { margin-top: var(--space-4); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
233
+ .assist-row.single { grid-template-columns: 1fr; }
234
+ .assist-card { min-height: 10.625rem; padding: var(--space-6); display: grid; align-content: start; gap: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
235
+ .assist-card h2 { margin: 0; font-family: var(--font-doc); font-size: var(--text-xl); font-weight: 600; }
236
+ .assist-card p { margin: 0 0 var(--space-2); color: var(--muted); }
237
+ .assist-card button { justify-self: start; }
238
+ .status-pill { display: inline-flex; width: fit-content; padding: var(--space-1) var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-pill); color: var(--muted); background: rgba(255,255,255,.025); font-size: var(--text-2xs); font-weight: 650; }
239
+ .status-pill[data-tone="success"] { border-color: rgba(120,184,146,.34); color: var(--success); }
240
+ .status-pill[data-tone="warning"] { border-color: rgba(217,165,80,.38); color: var(--warning); }
241
+ .status-pill[data-tone="danger"] { border-color: rgba(225,109,104,.4); color: var(--danger); }
242
+ .notices { position: fixed; right: var(--space-4); bottom: var(--space-4); z-index: 20; width: min(25.625rem, calc(100vw - var(--space-8))); }
243
+ .notice { padding: var(--space-3) var(--space-4); border: 1px solid var(--line-control); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: 0 12px 42px rgba(0,0,0,.36); }
244
+ .notice[data-tone="danger"] { border-color: rgba(225,109,104,.45); color: var(--danger); }
245
+ .notice[data-tone="success"] { border-color: rgba(120,184,146,.42); color: var(--success); }
246
+
247
+ @media (max-width: 860px) {
248
+ .project-overview { grid-template-columns: 1fr; }
249
+ .media-showcase { grid-column: 1; }
250
+ .creator-desk { height: auto; min-height: 0; grid-template-columns: 1fr; overflow: visible; }
251
+ .content-nav { display: block; border-right: 0; border-bottom: 1px solid var(--line); }
252
+ .content-nav-heading { margin-bottom: var(--space-4); }
253
+ .content-list { max-height: 16.25rem; }
254
+ .document-pane { min-height: 40rem; }
255
+ .content-stage { max-height: none; }
256
+ #editor, .document-preview { padding: var(--space-8) var(--space-6); }
257
+ .assist-row { grid-template-columns: 1fr; }
258
+ }
259
+
260
+ @media (max-width: 620px) {
261
+ .app-header { align-items: flex-start; padding-inline: var(--space-4); }
262
+ .project-tools { align-items: flex-end; flex-direction: column-reverse; gap: var(--space-1); }
263
+ .project-picker { align-items: flex-start; flex-direction: column; gap: var(--space-1); }
264
+ .project-picker select { min-width: 9.0625rem; max-width: 47vw; }
265
+ button, input, select { min-height: 2.75rem; }
266
+ .content-nav-group-toggle { min-height: 2.75rem; }
267
+ main { padding-top: var(--space-3); }
268
+ .project-overview { padding: var(--space-5); gap: var(--space-6); }
269
+ .overview-title-row { align-items: stretch; flex-direction: column; }
270
+ .overview-title-row button { width: 100%; }
271
+ .overview-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
272
+ .section-heading { align-items: start; flex-direction: column; gap: var(--space-1); }
273
+ .section-note { text-align: left; }
274
+ .media-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
275
+ .document-toolbar { align-items: stretch; flex-direction: column; }
276
+ .toolbar-actions { justify-content: space-between; }
277
+ .toolbar-actions button { flex: 1; }
278
+ #editor, .document-preview { min-height: 37.5rem; padding: var(--space-6) var(--space-5); }
279
+ .structured-fields, .structured-nested { grid-template-columns: 1fr; gap: var(--space-1); }
280
+ .structured-fields dd, .structured-nested dd { margin-bottom: var(--space-3); }
281
+ .document-footer span { display: none; }
282
+ }
283
+
284
+ @media (max-width: 420px) {
285
+ .app-header { flex-direction: column; }
286
+ .project-tools, .project-picker { width: 100%; align-items: stretch; }
287
+ .project-picker select { width: 100%; max-width: none; }
288
+ }
289
+
290
+ @media (max-width: 360px) {
291
+ .media-gallery { grid-template-columns: 1fr; }
292
+ }
293
+
294
+ @media (prefers-reduced-motion: reduce) {
295
+ html { scroll-behavior: auto; }
296
+ *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
297
+ }
@@ -0,0 +1,2 @@
1
+ {"record_type":"sources","schema_version":"1.0.0","sources":{"prompt-or-spec":{"owner":"short-drama-image-prompts | short-drama-video-prompts | short-drama-storyboard","artifact":"<project-relative-text-artifact>"},"reference-record":{"owner":"<reference-owner>","artifact":"<project-relative-reference-record>"},"short-drama":{"owner":"creator","artifact":"short-drama.json"}}}
2
+ {"example_only":true,"observation_id":"PROD-OBS-001","evidence_state":"active","observation_kind":"generated_result","method":"creator_supplied_description | authorized_visual_inspection","observer":{"owner":"<creator-or-authorized-observer>","independent_from_prompt_owner":false},"prompt_or_spec_refs":[{"src":"prompt-or-spec","record_id":"<stable-record-id>","field":"/<exact-field>"}],"reference_conditions":[{"slot_id":"REF-01","order":1,"artifact_ref":{"src":"reference-record","record_id":"<stable-record-id>"},"role":"identity | style | geography | composition | scale | effect | start_frame | end_frame"}],"production_configuration":{"profile_ref":{"src":"short-drama","field":"/creator_authority/production_profile"},"external_configuration_note":"<private-safe description or unknown; no provider task fields>"},"observations":[{"region_or_interval":"<bounded region or interval>","direct_observation":"<what the authorized observer actually saw/heard>","limitations":["<occlusion/resolution/unseen interval/unknown cause>"]}],"valid_only_for":{"project_id":"<project-id>"},"limitations":["This observation does not prove general model behavior or cross-project quality"],"observed_at":"<ISO-8601>","provenance":"creator_project"}
@@ -0,0 +1,36 @@
1
+ {
2
+ "schema_version": "1.0.0-draft",
3
+ "project_id": "LOCAL-PROJECT-ID",
4
+ "title": "未命名短剧",
5
+ "language": "zh-CN",
6
+ "format": {
7
+ "aspect_ratio": "9:16",
8
+ "prompt_language": "en",
9
+ "episode_count": null,
10
+ "target_seconds_per_episode": null,
11
+ "pacing": {
12
+ "spoken_characters_per_second": null,
13
+ "seconds_per_action_paragraph": null
14
+ }
15
+ },
16
+ "creator_authority": {
17
+ "decisions_artifact": "创作者决策/",
18
+ "constraints": [],
19
+ "visual_direction": {
20
+ "status": "unset",
21
+ "choices": {
22
+ "look_development": null
23
+ }
24
+ },
25
+ "production_profile": {
26
+ "status": "unset",
27
+ "choices": {}
28
+ },
29
+ "delivery_surface": {
30
+ "status": "unset",
31
+ "aspect": null,
32
+ "overlay_regions": [],
33
+ "source_ref": null
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,2 @@
1
+ {"record_type":"sources","schema_version":"1.0.0","sources":{"characters":{"owner":"short-drama-assets","artifact":"设定集/characters.jsonl"}}}
2
+ {"example_only":true,"observation_id":"REF-OBS-001","evidence_state":"active","observation_kind":"input_reference","admission_status":"creator_described | visually_inspected","reference_artifact_ref":{"src":"characters","record_id":"CHAR-EXAMPLE","authority":"candidate"},"method":"creator_supplied_description | authorized_visual_inspection","observer":{"owner":"<creator-or-reference-owner-or-authorized-inspector>","independent_from_prompt_owner":false},"observed_regions":[{"region":"<whole frame or bounded region>","visible_text_or_glyphs":"<none observed or private-safe description>","identity_or_geography_evidence":"<only the visible facts this reference may support>","crop_mask_or_cleanup":"<none or declared treatment>","limitations":["<occlusion/resolution/unseen area>"]}],"text_policy_conclusion":"compatible | conflict | unresolved","unresolved_risks":["<risk kept unresolved when evidence is absent or incomplete>"],"observed_at":"<ISO-8601>","provenance":"creator_project"}
@@ -0,0 +1,21 @@
1
+ # 观众此刻可以知道什么
2
+
3
+ 背影、门缝、画外声、浅景深和遮挡会决定观众何时知道一个人是谁、看见证据或发现门后有人。
4
+ 需要同时防两种错:该给的信息被漂亮构图挡住;不该给的信息被镜头提前泄露。
5
+
6
+ ## 一条事实一条判断
7
+
8
+ 对每个有揭示时机的事实,在对应 `SHOT-...` 下写清:
9
+
10
+ - **事实来源**:来自哪个场景 ID、对白、动作或画面文字;
11
+ - **本镜权限**:现在展示,还是暂时扣住;
12
+ - **可见/可听载体**:观众具体能看到或听到什么;
13
+ - **释放时机**:若暂时扣住,在哪个可见事件后释放;
14
+ - **保护方法**:靠遮挡、景深、画外声、光线或构图怎样实现;
15
+ - **戏剧理由**:为什么这个时机改变理解或压力。
16
+
17
+ 同一镜头里“来者认识主角”和“来者是谁”是两件事:可以让旧称呼先从画外传来,同时让来者的脸
18
+ 留在暗处。揉成一句“稍后揭示”,下游就无法分别处理声音和身份。
19
+
20
+ 扣住信息本身没有价值;说不出何时释放,就说明还没完成设计。审查时同时核对原文此刻允许透露什么,
21
+ 以及本镜必须让观众明白什么。
@@ -0,0 +1,45 @@
1
+ # 契约与所有权
2
+
3
+ ## 工作流不是瀑布
4
+
5
+ ```text
6
+ 开发? -> 剧本 -> 视觉设定 -> 图片提示词
7
+ \-> 分镜 -> 视频提示词
8
+ \-> 明确确认后的媒体生产
9
+ ```
10
+
11
+ 可以从任一已有材料直接进入;Look Development 和审查都按需发生。每个 owner 只修改自己的 Markdown,
12
+ 引用上游可见事实,但不静默改写它们。
13
+
14
+ ## 输出语言
15
+
16
+ | 内容 | 有项目配置时 | 独立任务默认 |
17
+ |---|---|---|
18
+ | 创作者可读说明与审查 | `short-drama.json#/language` | 用户当前语言 |
19
+ | 图片、关键帧的可复制正文 | `short-drama.json#/format/prompt_language` | `en` |
20
+ | 视频的可复制正文 | 目标视频模型档案的 `production_profile.choices.video_prompt_language`;未声明时回退 `format.prompt_language` | 根据目标视频模型确认;未声明时使用用户当前语言 |
21
+
22
+ 创作者说明、通用提示词语言和视频模型提示词语言互相独立;画面中的对白和可读文字来自剧本/视觉事实,
23
+ 不由描述语言推断。
24
+
25
+ ## 稳定身份与引用
26
+
27
+ 创作文档条目使用创作者可见的稳定 ID:`EP001-SC001`、`IMG-...`、`SHOT-...`、`MOTION-...`。其中 `IMG-...` 专属《图片提示词.md》的提示词标题,不代表已有图片。显示名可以改变,身份不因此改变。跨文档条目引用直接写这些 ID;不写哈希、内部路径、隐藏状态或第二套 record ID。
28
+
29
+ 真实输入参考图不是图片提示词条目,所以每张图使用独立稳定的 `REF-...` 槽位,槽位内写显式顺序、可见项目相对路径、中文名称、用途和控制范围。它不使用 `IMG-...`;路径只用 `/` 分隔,不写绝对路径、Windows 盘符/网络路径或项目外路径。
30
+
31
+ 图片由创作者在项目外准备、生成时自行挂载时没有项目内路径可写,改用 `PLAN-...` 槽位:其余字段与 `REF-...` 相同,定位符写这张图对应的 `IMG-...` 板子或 `SHOT-...` 冻结关键帧。这里出现 `IMG-...` 不是把提示词条目当成图片,而是回答「这张图画的是哪一条已决定的事实」;`PLAN-...` 不声称项目里有文件,也因此不能作为生产输入。
32
+
33
+ ## 规则分级
34
+
35
+ - `structural_invariant`:本地可证明的引用、ID、算术或显式矛盾;
36
+ - `reviewed_invariant`:需要结合语义证据判断的义务;
37
+ - `craft_default`:通常有效,但创作者可以说明理由覆盖;
38
+ - `taste_option`:表达选择,不能单独阻断。
39
+
40
+ 字数、镜头数、情绪曲线和案例配方不是通用结构门槛。
41
+
42
+ ## 信任与文件安全
43
+
44
+ 普通创作不联网。实际媒体生产只允许项目外 adapter 读取环境凭据,并始终经过
45
+ `preview -> explicit confirm -> run`。不要把私有输入、凭据、绝对路径或非公开观察写入可交付文档。