@aswless_854771076/ai_short_studio_cli 0.1.98 → 0.1.100

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 (405) hide show
  1. package/README.md +15 -313
  2. package/dist/base-command.d.ts +0 -6
  3. package/dist/base-command.js +1 -39
  4. package/dist/client/api-client.js +2 -19
  5. package/dist/commands/auth/login.d.ts +1 -2
  6. package/dist/commands/auth/login.js +2 -5
  7. package/dist/commands/auth/logout.d.ts +0 -1
  8. package/dist/commands/auth/signup.d.ts +0 -1
  9. package/dist/commands/auth/status.d.ts +0 -1
  10. package/dist/commands/canvas/apply.d.ts +0 -1
  11. package/dist/commands/canvas/asset/get.d.ts +0 -1
  12. package/dist/commands/canvas/asset/list.d.ts +0 -1
  13. package/dist/commands/canvas/asset/select.d.ts +1 -3
  14. package/dist/commands/canvas/asset/select.js +3 -22
  15. package/dist/commands/canvas/asset/upload.d.ts +0 -14
  16. package/dist/commands/canvas/asset/upload.js +3 -43
  17. package/dist/commands/canvas/continuity/analyze.d.ts +0 -1
  18. package/dist/commands/canvas/edge/connect.d.ts +0 -1
  19. package/dist/commands/canvas/edge/disconnect.d.ts +0 -1
  20. package/dist/commands/canvas/edge/list.d.ts +0 -1
  21. package/dist/commands/canvas/edge/list.js +1 -4
  22. package/dist/commands/canvas/episode/create.d.ts +0 -1
  23. package/dist/commands/canvas/episode/list.d.ts +0 -1
  24. package/dist/commands/canvas/folder/copy-cross-project.d.ts +0 -1
  25. package/dist/commands/canvas/folder/create.d.ts +0 -1
  26. package/dist/commands/canvas/folder/delete.d.ts +0 -1
  27. package/dist/commands/canvas/folder/list.d.ts +0 -1
  28. package/dist/commands/canvas/folder/move.d.ts +0 -1
  29. package/dist/commands/canvas/folder/rename.d.ts +0 -1
  30. package/dist/commands/canvas/folder/restore.d.ts +0 -1
  31. package/dist/commands/canvas/get.d.ts +0 -1
  32. package/dist/commands/canvas/inspect.d.ts +0 -1
  33. package/dist/commands/canvas/node/add.d.ts +1 -1
  34. package/dist/commands/canvas/node/add.js +2 -2
  35. package/dist/commands/canvas/node/delete.d.ts +0 -1
  36. package/dist/commands/canvas/node/edit-resource.d.ts +0 -2
  37. package/dist/commands/canvas/node/edit-resource.js +1 -9
  38. package/dist/commands/canvas/node/edit-shot.d.ts +0 -1
  39. package/dist/commands/canvas/node/get.d.ts +0 -1
  40. package/dist/commands/canvas/node/list.d.ts +0 -5
  41. package/dist/commands/canvas/node/list.js +2 -43
  42. package/dist/commands/canvas/node/run.d.ts +0 -15
  43. package/dist/commands/canvas/node/run.js +6 -142
  44. package/dist/commands/canvas/node/types.d.ts +0 -1
  45. package/dist/commands/canvas/node/update-many.d.ts +0 -1
  46. package/dist/commands/canvas/node/update.d.ts +0 -1
  47. package/dist/commands/canvas/settings/get.d.ts +0 -1
  48. package/dist/commands/canvas/settings/set.d.ts +0 -24
  49. package/dist/commands/canvas/settings/set.js +1 -60
  50. package/dist/commands/config/get.d.ts +0 -1
  51. package/dist/commands/config/set.d.ts +0 -2
  52. package/dist/commands/config/set.js +2 -55
  53. package/dist/commands/preflight.d.ts +0 -1
  54. package/dist/commands/preflight.js +1 -9
  55. package/dist/commands/project/create.d.ts +0 -1
  56. package/dist/commands/project/delete.d.ts +0 -1
  57. package/dist/commands/project/get.d.ts +0 -1
  58. package/dist/commands/project/list.d.ts +0 -1
  59. package/dist/commands/project/update.d.ts +0 -1
  60. package/dist/commands/skill/install.d.ts +0 -1
  61. package/dist/commands/skill/install.js +0 -1
  62. package/dist/commands/skill/path.d.ts +0 -1
  63. package/dist/commands/skill/path.js +0 -1
  64. package/dist/commands/skill/status.d.ts +0 -1
  65. package/dist/commands/skill/status.js +0 -1
  66. package/dist/commands/task/cancel.d.ts +0 -1
  67. package/dist/commands/task/get.d.ts +0 -1
  68. package/dist/commands/task/wait.d.ts +0 -2
  69. package/dist/commands/task/wait.js +1 -6
  70. package/dist/domain/vvicat-api.d.ts +3 -63
  71. package/dist/domain/vvicat-api.js +9 -74
  72. package/dist/output/formatter.d.ts +0 -11
  73. package/dist/output/formatter.js +0 -20
  74. package/dist/preflight.d.ts +0 -1
  75. package/dist/preflight.js +1 -14
  76. package/dist/skill/command-flags.js +4 -7
  77. package/dist/skill/skill-manager.d.ts +2 -75
  78. package/dist/skill/skill-manager.js +15 -60
  79. package/package.json +3 -4
  80. package/scripts/postinstall.mjs +12 -7
  81. package/skills/using-vvicat-ai-short-studio-cli/SKILL.md +67 -27
  82. package/skills/using-vvicat-ai-short-studio-cli/references/commands/canvas.md +4 -3
  83. package/skills/using-vvicat-ai-short-studio-cli/references/commands/project.md +2 -26
  84. package/skills/using-vvicat-ai-short-studio-cli/references/commands.md +2 -2
  85. package/skills/using-vvicat-ai-short-studio-cli/references/editing-delivery.md +1 -1
  86. package/skills/using-vvicat-ai-short-studio-cli/references/h3-video-delivery.md +1 -1
  87. package/skills/using-vvicat-ai-short-studio-cli/references/humanizer/humanizer.md +9 -0
  88. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/SKILL.md +447 -0
  89. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/brief.md +93 -0
  90. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/project-files.md +246 -0
  91. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/reference-video.md +266 -0
  92. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/script-and-time.md +253 -0
  93. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/transformations.md +141 -0
  94. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/distribution.md +176 -0
  95. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/local-tools.md +411 -0
  96. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/model-and-provider.md +275 -0
  97. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/profile.md +286 -0
  98. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/asset-and-shot-preproduction.md +193 -0
  99. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/b-roll.md +94 -0
  100. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/caption-tracking.md +125 -0
  101. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/captions.md +252 -0
  102. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/conversation-images.md +218 -0
  103. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-base-prompt-writing.md +222 -0
  104. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-reference-prompt-writing.md +341 -0
  105. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/image-direction.md +123 -0
  106. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/generated-dependencies.md +38 -0
  107. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/graphic-compositions.md +85 -0
  108. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/h3-prompt-writing.md +54 -0
  109. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/image-direction.md +95 -0
  110. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/motion-graphics.md +68 -0
  111. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/recreation-policy.md +51 -0
  112. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/screen-demonstrations.md +51 -0
  113. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/shot-production-contracts.md +161 -0
  114. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/sound-mix.md +76 -0
  115. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/video-direction.md +433 -0
  116. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-and-performance.md +224 -0
  117. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-direction.md +99 -0
  118. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/narration-led-demo.md +87 -0
  119. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/presenter-led-explainer.md +160 -0
  120. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/ranking-listicle.md +71 -0
  121. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/reference-recreation-canvas.md +8 -0
  122. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama-workflow.md +165 -0
  123. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama.md +88 -0
  124. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/street-interview.md +92 -0
  125. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/talking-head.md +82 -0
  126. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/two-person-podcast.md +101 -0
  127. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/index.md +77 -0
  128. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/audio-presentation.md +49 -0
  129. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/authoring.md +228 -0
  130. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/browser-capture.md +112 -0
  131. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/builds.md +330 -0
  132. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-authoring.md +156 -0
  133. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-presentation.md +66 -0
  134. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-design.md +217 -0
  135. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-sharing.md +150 -0
  136. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-visuals.md +152 -0
  137. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/detail.svrun +8 -0
  138. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/direction.svs +14 -0
  139. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/look.svs +6 -0
  140. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/material.svrun +5 -0
  141. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svml +73 -0
  142. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svrun +5 -0
  143. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/visuals.ts +62 -0
  144. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/fonts-and-text.md +138 -0
  145. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/image-operations.md +102 -0
  146. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/index.md +73 -0
  147. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media-presentation.md +111 -0
  148. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media.md +246 -0
  149. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/performance.md +114 -0
  150. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/prompt-kits.md +165 -0
  151. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/rendering.md +141 -0
  152. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/review.md +211 -0
  153. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/runs.md +151 -0
  154. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/script-syntax.md +236 -0
  155. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/snapshots.md +90 -0
  156. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/sound.md +75 -0
  157. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/source-syntax.md +163 -0
  158. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/spatial.md +189 -0
  159. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio-companions.md +186 -0
  160. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio.md +249 -0
  161. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/system.md +169 -0
  162. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timeline.md +74 -0
  163. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timing.md +96 -0
  164. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/track-authoring.md +215 -0
  165. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/tracks.md +67 -0
  166. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/video-downloads.md +47 -0
  167. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/vocabulary.md +119 -0
  168. package/skills/using-vvicat-ai-short-studio-cli/references/project-and-canvas.md +1 -1
  169. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/README.md +11 -0
  170. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/SKILL.md +102 -0
  171. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/art-styles.json +585 -0
  172. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-images.md +11 -0
  173. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles/character-profile-output.schema.json +99 -0
  174. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles.md +7 -0
  175. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-drama-art-style.md +9 -0
  176. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-prop-assets.md +11 -0
  177. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-scene-assets.md +13 -0
  178. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-art-styles.md +9 -0
  179. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-assets.md +9 -0
  180. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.en.txt +24 -0
  181. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.zh.txt +24 -0
  182. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.en.txt +61 -0
  183. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.zh.txt +79 -0
  184. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.en.txt +101 -0
  185. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.zh.txt +150 -0
  186. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.en.txt +114 -0
  187. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.zh.txt +89 -0
  188. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.en.txt +114 -0
  189. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.zh.txt +389 -0
  190. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.en.txt +40 -0
  191. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.zh.txt +40 -0
  192. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.en.txt +24 -0
  193. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.zh.txt +24 -0
  194. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.en.txt +19 -0
  195. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.zh.txt +19 -0
  196. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.en.txt +26 -0
  197. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.zh.txt +26 -0
  198. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.en.txt +33 -0
  199. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.zh.txt +33 -0
  200. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.en.txt +36 -0
  201. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.zh.txt +36 -0
  202. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.en.txt +33 -0
  203. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.zh.txt +33 -0
  204. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.en.txt +26 -0
  205. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.zh.txt +26 -0
  206. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.en.txt +21 -0
  207. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.zh.txt +21 -0
  208. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.en.txt +12 -0
  209. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.zh.txt +12 -0
  210. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.en.txt +13 -0
  211. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.zh.txt +13 -0
  212. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.en.txt +11 -0
  213. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.zh.txt +11 -0
  214. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.en.txt +15 -0
  215. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.zh.txt +15 -0
  216. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.en.txt +14 -0
  217. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.zh.txt +14 -0
  218. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.en.txt +50 -0
  219. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.zh.txt +50 -0
  220. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.en.txt +18 -0
  221. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.zh.txt +18 -0
  222. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.en.txt +67 -0
  223. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.zh.txt +67 -0
  224. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.en.txt +14 -0
  225. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.zh.txt +14 -0
  226. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.en.txt +16 -0
  227. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.zh.txt +16 -0
  228. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.en.txt +17 -0
  229. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.zh.txt +17 -0
  230. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.en.txt +11 -0
  231. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.zh.txt +11 -0
  232. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.en.txt +14 -0
  233. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.zh.txt +14 -0
  234. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.en.txt +13 -0
  235. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.zh.txt +13 -0
  236. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.en.txt +12 -0
  237. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.zh.txt +12 -0
  238. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.en.txt +19 -0
  239. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.zh.txt +19 -0
  240. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.en.txt +18 -0
  241. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.zh.txt +17 -0
  242. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.en.txt +29 -0
  243. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.zh.txt +29 -0
  244. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.en.txt +77 -0
  245. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.zh.txt +77 -0
  246. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.en.txt +109 -0
  247. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.zh.txt +109 -0
  248. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.en.txt +23 -0
  249. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.zh.txt +23 -0
  250. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.en.txt +42 -0
  251. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.zh.txt +42 -0
  252. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.en.txt +55 -0
  253. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.zh.txt +55 -0
  254. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.en.txt +49 -0
  255. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.zh.txt +52 -0
  256. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.en.txt +37 -0
  257. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.zh.txt +37 -0
  258. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.en.txt +28 -0
  259. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.zh.txt +28 -0
  260. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.en.txt +57 -0
  261. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.zh.txt +169 -0
  262. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.en.txt +64 -0
  263. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.zh.txt +117 -0
  264. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.en.txt +34 -0
  265. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.zh.txt +34 -0
  266. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.en.txt +18 -0
  267. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.zh.txt +13 -0
  268. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.en.txt +7 -0
  269. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.zh.txt +7 -0
  270. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.en.txt +28 -0
  271. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.zh.txt +42 -0
  272. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.en.txt +35 -0
  273. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.zh.txt +35 -0
  274. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.en.txt +21 -0
  275. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.zh.txt +21 -0
  276. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.en.txt +39 -0
  277. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.zh.txt +39 -0
  278. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.en.txt +49 -0
  279. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.zh.txt +48 -0
  280. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.en.txt +51 -0
  281. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.zh.txt +51 -0
  282. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.en.txt +50 -0
  283. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.zh.txt +50 -0
  284. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.en.txt +48 -0
  285. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.zh.txt +46 -0
  286. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/plan-drama-assets.md +7 -0
  287. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/codex-contracts.md +14 -0
  288. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/comfly-provider.md +12 -0
  289. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/controlled-vocabulary.json +115 -0
  290. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/analyze-drama-source.md +7 -0
  291. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/define-drama-brief.md +8 -0
  292. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/design-drama-bible.md +5 -0
  293. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/humanizer.md +9 -0
  294. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/outline-drama-series.md +5 -0
  295. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/short-drama.md +13 -0
  296. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-director-book.md +6 -0
  297. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-episode.md +6 -0
  298. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/director-composition.md +794 -0
  299. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-deliver-drama.md +5 -0
  300. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-drama-timeline.md +22 -0
  301. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/remotion-best-practices.md +12 -0
  302. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing-workflow.md +56 -0
  303. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/feature-completeness.md +111 -0
  304. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/configure-generation-providers.md +17 -0
  305. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/design-drama-audio.md +11 -0
  306. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/drama-generation-service.md +13 -0
  307. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-drama-videos.md +9 -0
  308. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-storyboard-images.md +11 -0
  309. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/monitor-drama-tasks.md +15 -0
  310. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/transform-drama-media.md +9 -0
  311. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/write-drama-video-prompts.md +50 -0
  312. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/market-report.schema.json +46 -0
  313. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/methodology.md +24 -0
  314. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market.md +47 -0
  315. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market/market-inspiration.schema.json +109 -0
  316. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market.md +15 -0
  317. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/module-map.json +595 -0
  318. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/music-catalog-providers.md +16 -0
  319. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/manage-drama-projects.md +11 -0
  320. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/orchestrate-short-drama.md +20 -0
  321. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/recover-drama-pipeline.md +5 -0
  322. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/short-drama-skill-index.md +29 -0
  323. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/use-short-drama-studio.md +15 -0
  324. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/pipeline.md +85 -0
  325. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/project-spec-v1.md +217 -0
  326. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/prompt-skill-index.md +62 -0
  327. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/recreation/publish-drama-references/litterbox.md +5 -0
  328. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-script.md +7 -0
  329. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-shots.md +39 -0
  330. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/runninghub-provider.md +33 -0
  331. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/starrouter-provider.md +53 -0
  332. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/build-drama-storyboard.md +13 -0
  333. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/design-fight-video.md +19 -0
  334. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/action-previz.md +39 -0
  335. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/direction-contract.md +96 -0
  336. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/weapons-vfx.md +23 -0
  337. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz.md +15 -0
  338. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/generate-blender-previz.md +20 -0
  339. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-drama-production.md +21 -0
  340. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-shot-continuity.md +15 -0
  341. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/revise-drama-storyboards.md +5 -0
  342. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/usage-guide.md +107 -0
  343. package/skills/using-vvicat-ai-short-studio-cli/references/special-workflows.md +2 -8
  344. package/skills/using-vvicat-ai-short-studio-cli/references/troubleshooting.md +0 -1
  345. package/dist/auth/login-provider.d.ts +0 -2
  346. package/dist/auth/login-provider.js +0 -3
  347. package/dist/commands/canvas/node/quote.d.ts +0 -17
  348. package/dist/commands/canvas/node/quote.js +0 -13
  349. package/dist/commands/config/ai-provider/capabilities.d.ts +0 -60
  350. package/dist/commands/config/ai-provider/capabilities.js +0 -124
  351. package/dist/commands/config/ai-provider/get.d.ts +0 -22
  352. package/dist/commands/config/ai-provider/get.js +0 -21
  353. package/dist/commands/config/ai-provider/list.d.ts +0 -21
  354. package/dist/commands/config/ai-provider/list.js +0 -19
  355. package/dist/commands/config/ai-provider/models.d.ts +0 -22
  356. package/dist/commands/config/ai-provider/models.js +0 -21
  357. package/dist/commands/config/ai-provider/set.d.ts +0 -41
  358. package/dist/commands/config/ai-provider/set.js +0 -65
  359. package/dist/commands/config/ai-provider/test.d.ts +0 -25
  360. package/dist/commands/config/ai-provider/test.js +0 -24
  361. package/dist/commands/project/provider/get.d.ts +0 -15
  362. package/dist/commands/project/provider/get.js +0 -12
  363. package/dist/commands/project/provider/set.d.ts +0 -16
  364. package/dist/commands/project/provider/set.js +0 -18
  365. package/dist/commands/project/provider/test.d.ts +0 -15
  366. package/dist/commands/project/provider/test.js +0 -12
  367. package/dist/domain/ai-provider-capabilities.d.ts +0 -109
  368. package/dist/domain/ai-provider-capabilities.js +0 -180
  369. package/dist/domain/ai-provider-command-helpers.d.ts +0 -27
  370. package/dist/domain/ai-provider-command-helpers.js +0 -55
  371. package/skills/using-vvicat-ai-short-studio-cli/references/b-roll-and-screen.md +0 -9
  372. package/skills/using-vvicat-ai-short-studio-cli/references/caption-and-graphics-direction.md +0 -11
  373. package/skills/using-vvicat-ai-short-studio-cli/references/composition-and-shot-review.md +0 -17
  374. package/skills/using-vvicat-ai-short-studio-cli/references/craft-index.md +0 -20
  375. package/skills/using-vvicat-ai-short-studio-cli/references/drama-canvas.md +0 -19
  376. package/skills/using-vvicat-ai-short-studio-cli/references/format-relationships.md +0 -15
  377. package/skills/using-vvicat-ai-short-studio-cli/references/h3-prompts.md +0 -7
  378. package/skills/using-vvicat-ai-short-studio-cli/references/image-and-reference-direction.md +0 -9
  379. package/skills/using-vvicat-ai-short-studio-cli/references/licensed-music.md +0 -9
  380. package/skills/using-vvicat-ai-short-studio-cli/references/licenses/oh-my-short-drama-MIT.txt +0 -21
  381. package/skills/using-vvicat-ai-short-studio-cli/references/licenses/short-drama-MIT.txt +0 -21
  382. package/skills/using-vvicat-ai-short-studio-cli/references/media-provenance-and-review.md +0 -22
  383. package/skills/using-vvicat-ai-short-studio-cli/references/paid-plan.md +0 -7
  384. package/skills/using-vvicat-ai-short-studio-cli/references/production-specialties.md +0 -25
  385. package/skills/using-vvicat-ai-short-studio-cli/references/recreation.md +0 -21
  386. package/skills/using-vvicat-ai-short-studio-cli/references/reference-analysis-and-timing.md +0 -19
  387. package/skills/using-vvicat-ai-short-studio-cli/references/remotion-editing.md +0 -18
  388. package/skills/using-vvicat-ai-short-studio-cli/references/shot-production.md +0 -9
  389. package/skills/using-vvicat-ai-short-studio-cli/references/sound-and-captions.md +0 -7
  390. package/skills/using-vvicat-ai-short-studio-cli/references/sources.md +0 -6
  391. package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/canvas-production.md +0 -9
  392. package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/guide.md +0 -7
  393. package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/index.md +0 -13
  394. package/skills/using-vvicat-ai-short-studio-cli/references/video-and-performance-direction.md +0 -9
  395. package/skills/using-vvicat-ai-short-studio-cli/references/voice-and-sound-direction.md +0 -9
  396. package/skills/using-vvicat-ai-short-studio-cli/references/writing-polish.md +0 -15
  397. /package/skills/using-vvicat-ai-short-studio-cli/references/{licenses/humanizer-MIT.txt → short-drama/assets/modules/humanizer/LICENSE} +0 -0
  398. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/compliance-checklist.md +0 -0
  399. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/genre-guide.md +0 -0
  400. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/hook-design.md +0 -0
  401. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/opening-rules.md +0 -0
  402. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/paywall-design.md +0 -0
  403. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/rhythm-curve.md +0 -0
  404. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/satisfaction-matrix.md +0 -0
  405. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/villain-design.md +0 -0
@@ -0,0 +1,189 @@
1
+ # Spatial layout
2
+
3
+ Read this when positioning or fitting media, text or a project component. Timing is explained in
4
+ [Timing](timing.md); it is independent of these coordinates. Read
5
+ [component design](component-design.md) when deciding which content shares layout or motion;
6
+ [image direction](../playbooks/craft/image-direction.md) owns the source camera view. This page owns
7
+ the destination geometry, for Performance, independent Media and project scenes alike.
8
+
9
+ ## Canvas, extent and destination
10
+
11
+ The Canvas gives the final image's pixel dimensions and coordinate basis. Introduce Frames and
12
+ component scopes where they help organize the picture; they need not tile the canvas or remain
13
+ separate rectangles. Components can overlap, share motion and own local trees. Canvas itself does
14
+ not contain a central list of layers. Each rendered Present supplies its own paint order.
15
+
16
+ An IntrinsicExtent gives a source image's actual dimensions. A Frame gives the destination rectangle
17
+ a consumer should occupy. A landscape image can retain its real extent while appearing in a portrait
18
+ composition. An A-roll source has no prescribed Frame or crop. For performance remaining mostly
19
+ full-screen, its intended final aspect can guide source direction; later insets or splits remain
20
+ presentation choices. Translate required source framing into visible camera facts before generation.
21
+
22
+ ```svml
23
+ <import as="space" from="@hypit/spatial@1"/>
24
+
25
+ <space:Canvas id="canvas" width="1080" height="1920"/>
26
+ <space:Extent id="photo-size" width="1600" height="1200"/>
27
+ <space:Frame id="full" within={canvas}
28
+ left="0%" top="0%" right="100%" bottom="100%"/>
29
+ <space:Frame id="content" within={full}
30
+ left="6%" top="8%" right="94%" bottom="90%"/>
31
+ ```
32
+
33
+ Coordinates start at the top left; x increases rightward and y downward. Frame edges are positions
34
+ from the parent's left/top, so `right="94%"` is the right edge at 94% of parent width. It leaves a
35
+ 6% margin. A percentage on the x axis uses the parent width; on y it uses parent height. Nesting
36
+ changes that reference rectangle. Pixel lengths use `px`.
37
+
38
+ ## Anchor an object or preserve its aspect
39
+
40
+ ```svml
41
+ <space:AnchoredFrame id="label" within={content}
42
+ x="50%" y="85%" width="80%" height="12%" anchor="center"/>
43
+ <space:AspectFrame id="photo-frame" within={content}
44
+ x="100%" y="0%" width="45%" aspect={photo-size} anchor="top-right"/>
45
+ ```
46
+
47
+ AnchoredFrame pins the named point of a sized rectangle to x/y in the parent. AspectFrame derives
48
+ one dimension from the other: specify width or height, plus an Extent or a ratio such as `4/3`.
49
+ An `offset-x` or `offset-y` is an additional pixel nudge. An anchored frame can extend beyond its
50
+ parent when that is the intended composition.
51
+
52
+ For text, `space:Point` supplies a pixel position and `space:Path` supplies authored Move/Line/curve
53
+ commands. [Fonts and text](fonts-and-text.md) shows which Typography placement consumes each.
54
+
55
+ ## Fit the source into the Frame
56
+
57
+ Media Track and the ordinary Performance Style share two spatial roles:
58
+
59
+ - The **destination Frame** places the visual on the Canvas and supplies its outer shape.
60
+ - The **fitted content rectangle** places the scaled source inside that Frame. Its size and position
61
+ come from the source's real Extent and the appearance Recipe's fit and alignment choices.
62
+
63
+ Supply the destination Frame and the source's actual dimensions. A still image needs an Extent;
64
+ prepared moving media already carries its dimensions. The component calculates the content rectangle.
65
+ Border and padding reduce the area used for fitting inside the outer Frame. This inset is derived
66
+ from those settings, rather than requiring another authored Frame.
67
+
68
+ For example, with no border or padding, a `1600 × 900` image fitted into a `600 × 600` Frame becomes
69
+ `600 × 337.5` under `contain`, leaving room above and below when centered. Under `cover`, it becomes
70
+ about `1066.7 × 600`; a frame clip shows the middle square. Moving the destination moves the whole
71
+ presentation; changing content alignment changes which part of that image occupies the square.
72
+
73
+ Choose fitting through the component's appearance Recipe:
74
+
75
+ - **contain** keeps the complete image visible and may leave space around it;
76
+ - **cover** fills the destination and may crop the image;
77
+ - **stretch** changes the source proportions to occupy the destination.
78
+
79
+ The selected Media/Performance vocabulary also exposes `fit-width`, `fit-height`, `native` and `scale-down` when one
80
+ dimension or the source's own pixel size should determine the scale. The default is centered
81
+ `contain`. `fit: stretch` is spatial resizing; Media Track's `playback: stretch` is a separate choice
82
+ about video speed.
83
+
84
+ ## Align the picture inside its destination
85
+
86
+ The fit aligns a point on the scaled picture with a point in the fitting area:
87
+
88
+ | Control in the appearance Recipe | Meaning |
89
+ | --- | --- |
90
+ | `frame-x`, `frame-y` | The destination alignment point, from `0` to `1` across the fitting area's width and height |
91
+ | `content-x`, `content-y` | The point on the scaled source that meets it, also from `0` to `1` |
92
+ | `fit-offset-x`, `fit-offset-y` | Additional source displacement in pixels, positive right and down |
93
+ | `fit-constraint` | `bounded` keeps the fitted rectangle within the available placement range; `free` preserves the authored alignment and offsets |
94
+
95
+ The four point coordinates default to `0.5`; offsets default to zero. To keep a cover crop aligned
96
+ to the top, use `frame-y: 0; content-y: 0;`. `frame-x` and `frame-y` are alignment fractions inside
97
+ this fitting area. Position the whole card or inset with its spatial Frame.
98
+
99
+ With `bounded`, a source larger than the fitting area keeps it covered on that axis; a smaller
100
+ source stays inside it. An offset can therefore be limited, including to zero when the dimensions
101
+ match. Use `free` when exposing space through an offset is part of the design. Choose alignment from
102
+ the actual subject and composition; these coordinates express your crop choice.
103
+
104
+ ## Shape the outer frame
105
+
106
+ Clipping, border, padding, shadow and frame paint belong to the outer Frame. The shared appearance
107
+ Recipe uses `clip: frame` for a rectangular clip, `clip: rounded` with a pixel `radius` for rounded
108
+ corners, or `clip: none` to show overflow. A radius takes effect with the rounded clip.
109
+
110
+ Here is a circular presenter inset; the named Canvas, SemanticTake and imported namespaces are
111
+ already available:
112
+
113
+ ```svml
114
+ <space:AnchoredFrame id="presenter-frame" within={canvas}
115
+ x="94%" y="94%" width="320px" height="320px" anchor="bottom-right"/>
116
+ <time:Clock id="clock" frame-rate="30"/>
117
+ <time:Timeline id="speech" clock={clock}>
118
+ <time:Take source={opening.take}/>
119
+ </time:Timeline>
120
+ <performance:Style id="presenter-style" frame={presenter-frame} appearance={look.presenter}/>
121
+ <performance:Track id="presenter" timeline={speech.timeline} canvas={canvas}>
122
+ <performance:Use style={presenter-style} during="program"/>
123
+ </performance:Track>
124
+ ```
125
+
126
+ ```svs
127
+ look.presenter {
128
+ stack-order: 20;
129
+ fit: cover;
130
+ clip: rounded;
131
+ radius: 160;
132
+ border-width: 3;
133
+ border-color: #D8C7A8;
134
+ }
135
+ ```
136
+
137
+ A square Frame with radius half its side makes a circle. This crops the source geometrically;
138
+ subject-shaped transparency comes from the prepared media. For a rounded card, choose a radius
139
+ appropriate to its size. Rounded clipping follows the Frame: a smaller `contain` picture sitting
140
+ away from its corners can still have square picture corners. For rounded edges that follow the
141
+ picture itself, make the Frame match its displayed aspect and place the content flush inside it.
142
+
143
+ `padding` uses quoted pixel values: `"12"` for all sides, `"8 12"` for vertical/horizontal, or
144
+ `"8 12 16 12"` for top/right/bottom/left. Border and padding both reduce the fitting area while the
145
+ outer Frame keeps its size. Padding changes where fitting happens; the clip still follows the outer
146
+ Frame. `frame-paint` colors the space behind the source, including space left by fitting. Borders
147
+ outline the Frame and `shadows` sit behind it. Sample `opacity` and filters affect the picture;
148
+ the frame's paint and decoration have their own appearance.
149
+
150
+ ## Move the frame or move its contents
151
+
152
+ A lifecycle `motion` Recipe moves or fades the complete framed presentation, including its border
153
+ and paint. `Sampling` children pan, zoom or rotate the fitted picture under that frame. Use Sampling
154
+ for a moving crop or a slow push-in while a card's outline stays still:
155
+
156
+ ```svml
157
+ <media:Item media={prepared.media} during={story.selection.detail}
158
+ frame={detail-frame} appearance={look.detail}>
159
+ <media:Sampling at="start" zoom="1"/>
160
+ <media:Sampling at="end" zoom="1.08" y="-18"/>
161
+ </media:Item>
162
+ ```
163
+
164
+ This excerpt belongs inside Media Track, with prepared media, a Selection, Frame and Recipe already
165
+ available. Sampling fields apply to a direct-source Item or Member, or a sampled Layer.
166
+ `x` and `y` are pixel offsets, `rotate` is in
167
+ degrees, and `at` follows the source unit's active span from `start` to `end`, with percentages for
168
+ intermediate keys. Sampling acts after the static fit; its movement can expose space inside the
169
+ Frame. Choose the crop and motion together for the intended coverage.
170
+
171
+ [Performance](performance.md) applies fixed or custom Styles to existing Timeline footage. A moving
172
+ Style retains the original Use Window across partial coverage and Take boundaries. A scene that
173
+ coordinates the viewport with surrounding graphics can own the shared motion in its
174
+ [component program](component-visuals.md#compose-video-and-graphics-in-one-browser-program), retaining
175
+ source playback positions.
176
+
177
+ [Media presentation](media-presentation.md) and [Performance](performance.md) own their content and
178
+ playback inputs. Read their installed vocabulary for the complete appearance and motion fields.
179
+
180
+ ## Carry measured regions through the same geometry
181
+
182
+ RegionTimeline contains already measured boxes indexed by program frame. Its recipe uses normalized
183
+ `[x, y, width, height]` boxes and `null` for absent measurements, converted against the chosen Canvas.
184
+ Take-local measurements need their actual program offsets. Reframed or cropped footage needs the
185
+ corresponding spatial transform before its boxes can position text correctly.
186
+
187
+ [Caption tracking](../playbooks/craft/caption-tracking.md) explains producing and applying head
188
+ regions. In a new component's visual element tree, child positions are relative to their parent;
189
+ [component visuals](component-visuals.md) shows that final layout boundary.
@@ -0,0 +1,186 @@
1
+ # Make a component useful in Studio
2
+
3
+ Read this while adding timeline meaning, picture selection or author controls to a project
4
+ component. [Studio](studio.md) owns opening and operating the editor;
5
+ [component design](component-design.md) owns the component's creative boundary.
6
+
7
+ The Companion describes two things: **what an author can recognize and select**, and **which
8
+ authored fact an edit changes**. Keep the same concepts across the picture, timeline and Inspector.
9
+ A reveal can be one entity even when its graphic moves and later remains on a board. A coordinated
10
+ presenter-and-diagram scene can stay one entity when its layout is intended to be edited together.
11
+ Recognition and editing are separate capabilities. A production may use Studio mainly to watch and
12
+ show its arrangement, with a few useful adjustments. Clear labels, timing and selected read-only
13
+ facts can fully serve a one-off scene; useful Caption controls can coexist with that fixed scene.
14
+
15
+ ## Choose useful entities and lanes
16
+
17
+ Match the component's actual Module ABI, Surface and terminal output Type. Generic VisualTrack or
18
+ AudioTrack entities are enough for simple occupancy. Use `project(context)` when the author needs
19
+ domain meaning that the terminal drawing no longer contains. A Surface preview supplies a useful
20
+ static recognition image; live entities and editable bindings come from the Companion.
21
+
22
+ Generic presentation recognizes the terminal Type, not the component's creative role. A custom
23
+ Caption Track can therefore render correct subtitles yet appear as a generic blue visual lane with
24
+ opaque ids when its package has no matching Companion. Inspect the selected Companion and its
25
+ Module/Surface match before treating this as misplaced content or moving visuals between Tracks.
26
+ The package declares its role; Studio does not infer one from a tag name or the text in a picture.
27
+
28
+ When adapting an existing family, carry forward its editor meaning wherever the public content,
29
+ schedule and author identities still agree. Reuse its Companion with the actual Module/Surface
30
+ identity, or adapt its projection for the changed behavior. Preserve useful Cue/Use or item/event
31
+ relationships along with rendering. A rendering wrapper alone does not activate that integration.
32
+
33
+ For example, a board can expose its outer lifetime and its individual reveal events. Publish the
34
+ deterministic schedule/program needed to describe these from the same Surface, then request its
35
+ exact output port through `requiredValues`. `requiredSurfaceValue(context, "schedule")` reads that
36
+ published output. `requiredReferencedValue` reads an exact typed author reference instead.
37
+
38
+ | Declaration | Authoring meaning |
39
+ | --- | --- |
40
+ | Companion label, tone, icon and `lane.heightPx` | Recognize the component and give its information enough room. |
41
+ | Entity id and authored identity | Select the same authored object after recompilation or reordering. Qualify child ids across component instances. |
42
+ | `display.title` and display layers | Show useful content, text or declared media rather than an opaque implementation id. |
43
+ | `startFrame`, `endFrameExclusive` | Describe what this rectangle edits: occupancy, activation or another explicit interval. |
44
+ | `stackOrder` | Order overlapping editor entities; this is separate from changing the Film's paint order. |
45
+ | Companion `attachments` and entity `lane` | Expose a meaningful child lane, such as reveals under a board, with its own fields. |
46
+
47
+ Each declared lane is one row. Overlapping items remain selectable; selection raises the selected
48
+ rectangle within that row. Parent and attached lanes use the same behavior. Add a child lane when
49
+ it explains another authoring relationship, such as activation within a persistent board.
50
+
51
+ An activation rectangle may end before the object disappears. Keep the activation's editable range
52
+ and the object's continuing picture identity distinct. The installed Ranking Companion demonstrates
53
+ this with the board and its independent reveals.
54
+
55
+ ## Put related rules in a Band
56
+
57
+ A Track's `bands` are internal strips sharing its label. For example, Caption shows Cue content
58
+ with a bottom band for Style Uses; Performance and Sound show placed Takes with their Uses below.
59
+ The rule is a selectable entity with its own Window, even when overridden or currently empty.
60
+ It remains one Use across gaps and content boundaries.
61
+
62
+ ```ts
63
+ bands: [{ id: "uses", placement: "after", heightPx: 15, display: "label" }]
64
+ // The projected Use entity selects: band: "uses"
65
+ ```
66
+
67
+ Use `attachments` for independent child objects such as Ranking reveals. Use a Band for another
68
+ aspect of the same Track such as its presentation choices. Both use ordinary entity selection,
69
+ overlap order, field declarations and time editing. Each entity chooses one declared band or lane.
70
+
71
+ ## Connect the picture to the entity
72
+
73
+ Associate the actual rendered parts with `presentId` or `renderIds`. All phases belonging to the
74
+ same item can select that item: entrance, movement and settled appearance. Give the board/background
75
+ parts to the parent and the reveal's parts to its child when separate selection is useful.
76
+
77
+ The renderer's explicit `subjectId` can associate multiple rendered phases with one domain item;
78
+ the Companion carries their actual ids into `renderIds`. Studio uses the visible parts at the
79
+ current frame. This preserves selection after an icon lands without duplicating animation geometry
80
+ in the Companion. A preset with no separately exposed child remains part of the parent entity.
81
+
82
+ Picture selection and timeline selection identify the same authored object. If position and size
83
+ are exposed choices, its declared Inspector fields can adjust them.
84
+
85
+ ## Expose decisions, not implementation debris
86
+
87
+ Declare `bindings` for the actual author endpoints, then choose visible `inspector` fields. A
88
+ binding can follow a shared authored Frame or Style through `referenced`, or an SVS Recipe through
89
+ `recipe`. Use `parameterReferences` for an entity's actual reference, when a derived entity points to a different authored object. Shared values retain their shared effect when edited.
90
+
91
+ A Companion presents the author model. A meaningful semantic event may deserve a timeline handle
92
+ without turning every animation key into an Inspector field. Conversely, a visible number or
93
+ qualitative setting inside drawing code need not become a public input. The
94
+ [parameter boundary](component-design.md#expose-the-choices-the-work-needs) applies before choosing UI controls. When an Inspector adjustment
95
+ is actually needed, bind it to a real Source input or domain event. A label inside a one-off renderer
96
+ can remain an implementation detail until external control has a purpose. Useful child entities can
97
+ live inside the same Track, and selection can be read-only. The
98
+ [component boundary](component-design.md#separate-responsibility-parameters-and-reuse) determines
99
+ what is independently organized; it does not prescribe how many controls to provide.
100
+
101
+ Where describes placement and layout. When describes timing, playback and motion. How describes
102
+ appearance, content and sound. Each Companion chooses useful pages and sections within them.
103
+
104
+ | Control | Useful choice |
105
+ | --- | --- |
106
+ | `text` | Wording or a meaningful expression; `multiline` for longer text. |
107
+ | `number` | Magnitude, with appropriate units, scale and limits. |
108
+ | `boolean` | An actual two-state choice. |
109
+ | `select` | Preset, font, alignment or another finite choice, with readable labels. |
110
+ | `color` | Exact hex color, optionally with suggested `swatches`. |
111
+ | `list` / `record` | A schema-described ordered list or named set of values, saved together when editing ends and the value is complete. |
112
+
113
+ For a Surface with a literal `label` attribute, a minimal declaration is:
114
+
115
+ ```ts
116
+ bindings: [{ name: "label", writable: true }],
117
+ inspector: [{
118
+ binding: "label", label: "Label", domain: "how",
119
+ section: { id: "content", label: "Content" }, control: "text",
120
+ }],
121
+ ```
122
+
123
+ The Surface already owns `label`; the Companion exposes it. A width stored as `"78%"` can use
124
+ `control: "number", number: { suffixes: ["%", "px"] }`: editing 42 retains the existing suffix.
125
+ An opacity stored as `0.78` can use `unit: "%", number: { scale: 100, minimum: 0, maximum: 100 }`:
126
+ the control shows 78 and entering 42 writes 0.42. `unit` alone is a display label. Suffix handling
127
+ retains an authored unit; it does not convert percentages to pixels.
128
+
129
+ A Style can own its controls independently of the Track that consumes it. The Track declares
130
+ `{ name: "style", companion: true }`; the Style's package contributes
131
+ `createStudioCompanionHostFacet({ parameters: [{ id, match: { module, surface }, bindings, inspector }] })`.
132
+ Its field names are local to that Style. Studio follows the reference and combines those fields
133
+ with the Use's time controls. This works for a new project motion Style as well as a familiar
134
+ framed presentation. Shared Style edits continue to affect its other Uses.
135
+
136
+ A binding's typed `fallback` exposes an omitted default; first editing it writes the property or
137
+ attribute into its owning source. A fallback function can express a dependent default from the
138
+ authored properties. Choose useful valid defaults in the component's own vocabulary. Read-only
139
+ facts and controls share Where, When and How; unpaged fields remain visible beside the active page.
140
+
141
+ Related scalar attributes can share one `record` draft through a binding's `attributes` list and
142
+ schema. Use object alternatives with a literal mode field when each choice needs different inputs;
143
+ Once its required fields are complete, editing writes the chosen group together and removes unused members. Audio playback demonstrates
144
+ this for its mode and stretch bounds. The package owns those alternatives; see
145
+ the installed Studio adapter README, “Edit related attributes together,” for the exact declaration.
146
+
147
+ Select options may be plain strings or `{ value, label, description, preview }` entries. Color and
148
+ font previews are small visual hints; the actual option value is written. A font hint uses a family
149
+ available to the editor, while the production font remains an explicit resource as described in
150
+ [fonts and text](fonts-and-text.md). The component's schema owns valid author values. Studio
151
+ performs the declared conversion, serializes in the source language and saves the owning file.
152
+
153
+ ## Preserve the timing decision through editing
154
+
155
+ Carry the real Window/Instant lineage into each entity. For a domain Spec consumed beside a
156
+ projection, `temporalLineageFor(context, item.id, "activation")` follows that actual consumer input;
157
+ use the real input name, such as `window`, `outer` or `activation`. `authoredChildFor` and
158
+ `childEntities` connect domain child identities to their exact author origins.
159
+
160
+ The [authored time form](timing.md#choose-what-a-later-edit-changes) determines the edit: a direct
161
+ Selection changes its two Script anchors, a direct Moment changes one anchor, and a quoted clock
162
+ expression changes its local time or offset. A projected frame alone does not establish that
163
+ relationship. Several objects can consume the same Selection or Moment; changing it updates them
164
+ all through normal compilation. A separate offset remains a separate local decision.
165
+
166
+ ## Load it with the project package
167
+
168
+ Keep the Companion separate from the component's Producers. External packages import
169
+ `@hypit/hypit/studio-adapter` and relevant public `@hypit/hypit/*` APIs, with the Distribution as a
170
+ development dependency. Add `createStudioTrackCompanionHostFacet(companions)` to the existing
171
+ activation's `hostFacets`, retaining its author and producer contributions. Ship the compiled
172
+ Companion through the package's normal activation entry.
173
+
174
+ The Source-selected package activates its Companion. Restart Studio after changing package code
175
+ or activation. Ordinary Source and Recipe edits recompile within the current session.
176
+
177
+ Use the installed `packages/studio-adapter/README.md` for the complete minimal Companion and
178
+ activation example, `packages/studio/INSPECTOR.md` for field declarations, and
179
+ `packages/temporal-markup/EDITING.md` for exact time-form behavior. These are package references
180
+ inside the installed Distribution. Ranking, Caption Fine and Media Track Companions demonstrate
181
+ persistent events, Cue content with Style Uses, and material occupancy respectively.
182
+
183
+ Try the component in its actual Run: select a meaningful picture part, inspect the corresponding
184
+ timeline entity, change an exposed value and inspect the owning Source and resulting picture.
185
+ For a shared timing edit, inspect the other consumers too. Seek into both movement and settled
186
+ states when those belong to the component's behavior.
@@ -0,0 +1,249 @@
1
+ # Work in Studio
2
+
3
+ Read this when opening a Run, choosing its interface language, using its timeline and Inspector, or giving a project component a
4
+ useful Studio presentation. For component implementation, read [Companion authoring](studio-companions.md).
5
+ [Review](review.md) owns the judgment made from the visible work;
6
+ [Track authoring](track-authoring.md) owns the component's production behavior.
7
+
8
+ ## Open the actual Run
9
+
10
+ From the video project, use the installed Distribution's command:
11
+
12
+ ```bash
13
+ hypit studio --run build.svrun
14
+ ```
15
+
16
+ Supply `--runtime <profile>` when intentionally using a different Profile from the project's
17
+ `hypit runtime use` selection. Studio needs a Run whose selected targets reach one Film with resolved
18
+ composition and time. The Timeline supplies the clock and any placed Script anchors for component
19
+ lanes, including a pure animation with no Takes. An image-generation-only Run is not a Film view; several distinct
20
+ Films need separate Runs or sessions.
21
+
22
+ Open the URL actually printed by the process and retain it with the Run it serves. For review, open
23
+ that URL with `#comments` appended, such as `http://localhost:5179/#comments`; this selects the
24
+ Comments view directly. The printed port is authoritative. The default
25
+ requested port is 5179; `--port` selects another, and an occupied port can cause Vite to choose a
26
+ different one. Reuse an existing session when it serves the intended project and Run.
27
+
28
+ The startup output identifies the project, absolute Run path, Runtime Profile and selection source.
29
+ An explicit `--runtime` applies to this session; the project's default comes from `.hypit/runtime`.
30
+ When launching from another directory, use `--workspace` to select the project and supply the Run
31
+ path from the current directory, as shown in [project boundaries](../creation/project-files.md#establish-the-project-boundary).
32
+
33
+ Studio watches the Run and its loaded Author/Recipe Sources and recompiles them after changes.
34
+ Changing package code, adding a package import, changing Companion activation, or selecting another
35
+ Runtime or Result repository requires restarting that Studio session: those implementations and
36
+ selections are loaded at startup. A browser refresh alone does not reload the server-side modules.
37
+ Stop only the relevant Studio process; stopping Studio does not cancel a submitted Build.
38
+
39
+ ## Choose the interface language
40
+
41
+ The globe menu to the left of **Studio / Comments** changes the interface language. English and
42
+ Simplified Chinese are included. The first visit follows browser language preferences; later visits
43
+ remember the user's choice. Switching preserves the playhead, selection and comment draft. When
44
+ introducing the review, point out this menu if it helps the user work in their preferred language.
45
+ This choice affects Studio's interface, not the video's Script, captions or user comments;
46
+ component-owned names and Companion labels retain their authored text.
47
+
48
+ Additional languages are ordinary JSON data, loaded explicitly when opening Studio:
49
+
50
+ ```bash
51
+ hypit studio --check-locale ./studio-ja.json
52
+ hypit studio --run build.svrun --locale-pack ./studio-ja.json
53
+ ```
54
+
55
+ For a new translation, copy `packages/studio/locales/en.json` from the installed Distribution.
56
+ Set `locale`, the native language `name`, and `direction` (`ltr` or `rtl`); translate `messages`
57
+ while keeping their IDs and named variables such as `{count}`. Missing entries use English.
58
+ The check command reports missing entries, unknown IDs and invalid variables without opening a Run.
59
+ Relative file paths start at the command's working directory. Repeat `--locale-pack` for several
60
+ languages, or pass an installed package's JSON export instead, such as
61
+ `--locale-pack @your-scope/studio-ja/locale.json`. A local file is enough; sharing it as a package
62
+ is optional. Restart Studio to load changed language files. The installed
63
+ `packages/studio/LOCALIZATION.md` covers plural forms and JSON package exports.
64
+
65
+ ## Discuss the work while composing
66
+
67
+ When the user is collaborating locally, open the actual composition once a meaningful passage is
68
+ available and keep its Studio URL connected to the current Run. Point to the passage, object or
69
+ transition being discussed so the user can give concrete direction. Continue through settled choices;
70
+ showing progress need not become an approval stop. Use the prepared production media and explain
71
+ which passages are already composed. A rendered frame or clip remains useful when it answers the
72
+ current question more directly.
73
+
74
+ Check that the objects being discussed are recognizable and that their useful author choices are
75
+ available. A successful preview establishes that the picture renders; the component's Companion
76
+ establishes what the user can select and revise. [Companion authoring](studio-companions.md) explains
77
+ this view of the same Source, including generic fallback and project-defined families.
78
+
79
+ ## Revise from timestamped Comments
80
+
81
+ Open Comments directly when the user wants to point at a moment and describe a change.
82
+ It gives the same composition a larger player and a comment column. A change of visual style,
83
+ choreography or graphic structure often needs authored code or direction, while a position or color
84
+ may fit an Inspector field. Both are ordinary collaboration: Comments carries the desired result,
85
+ and the Agent chooses the owning Source, Recipe, component or material decision to change.
86
+
87
+ Comments live in `FEEDBACK.json` at the project workspace root. Read the entries for the reviewed Run
88
+ and the open notes before revising. Each entry has a stable `id`, workspace-relative `run`, `at` in
89
+ seconds, `text`, and optional `resolved` (false when omitted). For example:
90
+
91
+ ```json
92
+ {"comments":[{"id":"opening-title","run":"runs/render.svrun","at":1.5,
93
+ "text":"Give the title a softer pink and a stronger offset shadow.","resolved":false}]}
94
+ ```
95
+
96
+ The UI displays notes in time order; its `#` labels follow submission order within that Run. Identify
97
+ file edits by `id` and preserve the array order and unrelated entries. Clicking a note seeks to its
98
+ saved time. Interpret that time with its words and the reviewed composition: changing Script or Take
99
+ placement can move the intended event. Comments retain the reviewed seconds rather than silently
100
+ following new semantic timing.
101
+
102
+ Explain the changes you will make, apply them to their owning facts, and inspect the affected passage
103
+ and handoffs. Mark the addressed notes `resolved: true`; a note can be reopened with false. Both the
104
+ user and Agent can edit this file, and Studio observes saved changes. Read the current file before
105
+ writing so newly added comments survive. Retain useful directing decisions in Treatment or Progress;
106
+ comments remain the concrete review conversation.
107
+
108
+ Send saves a comment. Agent notification is not connected yet; when the user asks for another review
109
+ pass, read the latest file. [Composition review](review.md) explains the judgment, and
110
+ [project files](../creation/project-files.md) owns the production's durable memory.
111
+
112
+ ## Review before export
113
+
114
+ For visual inspection, use [snapshot](snapshots.md) on this session first. It reads the current
115
+ compiled programme and selected resources, captures exact original frames, and writes PNGs with
116
+ optional grids. Studio remains the interactive view for playback, sound and editing.
117
+
118
+
119
+ When the composition is substantially ready and the user can access it, open the current Run at
120
+ `#comments` for discussion and introduce Comments and Studio together. Comments lets the user
121
+ pause and leave direction at a time; Studio shows the timeline, component relationships and exposed
122
+ parameters they can adjust. Both views stay with the same work and playhead. Browser playback does not render an MP4,
123
+ create an export Build or save frame sequences. It can therefore show real material and animation
124
+ while avoiding a full encode for changes the user is still choosing. Use Studio's other view for
125
+ Inspector or timeline edits, and an encoded frame or clip when that evidence is needed.
126
+
127
+ Introduce the review in the user's language: explain what is ready, invite timestamped comments,
128
+ and say whether export is waiting for their review or already covered by their request. For example:
129
+ “I've opened the editable video. You can pause and leave timestamped notes in Comments, or switch
130
+ to Studio to explore the timeline and adjust available parameters. When you're happy with it,
131
+ I can export the video.” This is a collaboration choice, not a mandatory
132
+ approval stage. A user who has asked for final export has already chosen that step.
133
+
134
+ A first-time reviewer may benefit from one short welcome note at the relevant time, saved with
135
+ `resolved: true`. Write it explicitly as the Agent's invitation, such as “You can pause here and
136
+ leave a note about anything you'd like changed.” It demonstrates the file workflow without adding
137
+ an unfinished production task or pretending that the user requested a change. Keep this optional
138
+ and specific to the collaboration; existing comments need no repeated welcome.
139
+
140
+ Once export is wanted, reuse the accepted material in a Build, retrieve its completed video and
141
+ check that encoded deliverable. [Rendering](rendering.md) and [Builds](builds.md) own that execution.
142
+ Comments is a review view of the editable work; the exported file is the deliverable.
143
+
144
+ ## Show the finished work
145
+
146
+ Alongside the delivered video, a brief look at its editable production can make the handoff more
147
+ tangible. When Studio is readily accessible to the user, open the finished work and share the session
148
+ URL. Use a Run that reuses the completed media and SemanticTakes while keeping its Tracks and Recipes
149
+ available for editing. Reuse a suitable existing session or launch one as described above.
150
+
151
+ Point out something specific to this piece: a reveal tied to a word, the Caption styling, or a
152
+ component parameter they can adjust. Let the actual work demonstrate the editing experience. For a
153
+ remote user, a readily available screenshot or short recording can provide the same introduction.
154
+ [Project handoff](../creation/project-files.md#hand-over-an-editable-production) explains what to
155
+ include when the user wants to continue editing on another machine.
156
+
157
+ ## Read the different views
158
+
159
+ | View | What it shows and what it can change |
160
+ | --- | --- |
161
+ | Source | The exact Run, Author and imported Source/Recipe files. Select a file and use Edit source; changes save automatically, and Cmd/Ctrl+S saves immediately. Check save/error state. This is not a project filesystem browser. |
162
+ | Preview | The selected Film composition rendered by HyperFrames in the browser. Play or seek with the transport or timeline. Selecting a component-declared visual part selects its corresponding timeline entity; adjust its exposed position in the Inspector. |
163
+ | Timeline | Semantic Segments, Selections and Moments, plus the component-projected Track entities and their visible intervals, materials or event lanes. A rectangle may describe occupancy, activation or persistent visibility; read the component's meaning. |
164
+ | Inspector | With nothing selected, project, Canvas, time and Run facts. For a selected entity, its declared read-only facts and adjustable fields, organized under Where, When and How where applicable. |
165
+ | Tasks | One card per Build, grouped into ongoing and finished. Active status and progress come from the selected Runtime; completed, failed and cancelled Builds come from project Results. Cards retain the source Run, times and any failure or attention reason. |
166
+ | Artifacts | Image, video and audio file Outputs from project Results, including those already published by ongoing Builds. Use the sidebar to choose all media, videos, images or audio. View media on a Build opens its Outputs; opening the Artifacts tab returns to project media. Composite Outputs such as normalized media and Semantic Takes stay intact and do not add their internal files to this gallery. Click a card to view it in the central preview; video and audio have playback and a time slider. Back to composition returns to the existing composition position. Previewing a file does not select it as a Candidate in the Run. |
167
+
168
+ A declared lane stays one row even when items overlap. Later items cover earlier ones at equal
169
+ stacking order; selecting an item brings its full rectangle forward within that lane. This changes
170
+ editor selection, not the Film's paint order. The same behavior applies to attached child lanes.
171
+ The time ruler and its Segment, Word and Selection/Moment bands form one pinned Timeline area.
172
+ Empty information bands are omitted; a work without Segments keeps the ordinary time ruler.
173
+ Select an overlapping object to bring it forward, or right-click the overlap to choose one covered
174
+ by its peers. This changes editor selection, not the composition.
175
+
176
+ Open either library tab or click Refresh to read its latest state. These lists do not poll.
177
+ Refresh replaces the view; scrolling to the end loads more. Media categories query matching files
178
+ across Result pages, so an intervening Build without that kind of media does not require a separate action. A failed refresh keeps the
179
+ previous view and displays the error. Multiple references to one stored file share a media card;
180
+ its source details retain the originating Builds and Outputs. Highlighted Outputs appear first.
181
+ Names show up to two lines. Double-click a name or press F2 to edit; Enter or leaving the field
182
+ saves, and Escape cancels. Renaming changes the displayed Output name in the finished Result,
183
+ not its reference identifier or media file.
184
+
185
+ Use [Builds and Results](builds.md) to inspect Output names, export media, finish an incomplete Result,
186
+ edit Result presentation metadata or select an earlier Output. Studio reads the same project Result
187
+ repository. With no Runtime selected, finished Results remain accessible; preview works when its
188
+ display closure needs no unresolved Endpoint work. Active Runtime status and transient Endpoint
189
+ processing require the selected environment.
190
+
191
+ Studio opens the selected work for interactive playback and editing. It creates no Build and submits
192
+ no paid generation. It can evaluate deterministic Producers and the exact immediate capabilities a
193
+ Provider permits for transient authoring, such as media inspection and normalization. Select existing
194
+ files or produced Outputs through the Run for the material the view needs. If a required generation
195
+ is still running, continue component work and open its resulting composition when the material is ready.
196
+
197
+ [Runs](runs.md) explains selection and reuse. [Snapshots](snapshots.md) captures the current picture
198
+ directly with `hypit snapshot --studio <this-studio-url>`. [Rendering](rendering.md) provides frame-range Builds
199
+ for inspecting the composition as encoded media; choose the view that helps answer the current question.
200
+
201
+ ## Edit the owning Source fact
202
+
203
+ Inspector fields and timeline handles write back to actual Source endpoints. A field can live in a
204
+ referenced Frame, Style or SVS Recipe rather than on the selected Track tag. Editing a shared Recipe
205
+ changes every consumer that uses it; create and select a separate authored instance when the design
206
+ needs independent variation. Lists and records save their complete validated value when editing ends. Required fields that are
207
+ still incomplete remain in the editor with a completion hint. Check save status and the resulting preview.
208
+
209
+ Where groups position, size, fitting and layout. When groups timing, playback, trims and motion.
210
+ How groups content, typography, color, effects and audio levels. Components name their own pages
211
+ and sections within these questions. Numeric units sit outside the editable value: a width authored
212
+ as `78%` keeps `%` when edited, while a fractional opacity may display as a percentage and write
213
+ back as a fraction. Dropdowns can have readable option names and previews; their underlying value
214
+ is what the Source receives. Color fields support exact hex values and suggested swatches.
215
+
216
+ For catalog fonts, Caption, Typography and Ranking can expose the primary font family's dropdown
217
+ through the selected Style. It edits the shared font declaration; its weight and style must be
218
+ available in the chosen family. A local font continues to use its exact file. A project component
219
+ can offer its own font or preset choices through Companion fields.
220
+
221
+ Timeline's placed Takes and complete extent provide reference information. Edit their `at` and
222
+ `end` declarations in Source when their placement should change. Presentation handles edit Uses
223
+ or component events; they do not move Takes or adjust Canvas dimensions implicitly.
224
+
225
+ Timing edits follow the authored relationship. A direct Selection or Moment edits that identity
226
+ in Script; a quoted expression edits its local clock value or offset; a duration changes independently.
227
+ [Timing and edit behavior](timing.md#choose-what-a-later-edit-changes) gives the complete forms,
228
+ affinity choices and shared-consumer consequences. Marker moves preserve unrelated prose whitespace. With unchanged spoken tokens and identities,
229
+ new marker references can use the existing Take's anchor times. [Reuse boundaries](authoring.md#reuse-produced-work-explicitly)
230
+ explain when to retain prepared Takes and when to retain only their upstream media.
231
+
232
+ A successful parameter or timeline edit saves the owning Source and recompiles the selected Run
233
+ for the view. Rejected edits retain the accepted Source and values. Result renaming instead updates
234
+ Result presentation metadata; it does not change the authored composition or trigger a Build.
235
+
236
+ Source edits outside Studio are observed too. If a stale UI edit conflicts with a newer file, read
237
+ the current Source and retry the intended change against it instead of overwriting the newer work.
238
+ Composition edits return to the ordinary Sources; they do not create a second Studio project.
239
+
240
+ ## Give a project component a useful Companion
241
+
242
+ A Companion makes the component's own production relationships legible and editable: a board's
243
+ lifetime, a reveal event, a Cue's actual Style, or a scene's layout choices. Its Producers still own
244
+ the rendered work. Generic Track presentation is useful when no additional authoring concepts are
245
+ needed; a component with meaningful child events or controls can publish those directly.
246
+
247
+ Read [Companion authoring](studio-companions.md) for entities and child lanes, picture selection,
248
+ parameter controls, unit conversion, semantic writeback and package activation. It builds on the
249
+ same [component design](component-design.md) decisions used to make the video.