@autoaiai/aicut 0.1.7 → 0.1.11

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 (796) hide show
  1. package/MANUAL.md +10 -0
  2. package/package.json +1 -1
  3. package/product.json +2 -1
  4. package/skills/30x-web-to-video/SKILL.md +421 -0
  5. package/skills/30x-web-to-video/examples/INDEX.md +26 -0
  6. package/skills/30x-web-to-video/references/animations.md +539 -0
  7. package/skills/30x-web-to-video/references/audio.md +256 -0
  8. package/skills/30x-web-to-video/references/components.md +340 -0
  9. package/skills/30x-web-to-video/references/lottie.md +174 -0
  10. package/skills/30x-web-to-video/references/visual-effects.md +157 -0
  11. package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +169 -0
  12. package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +134 -0
  13. package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +120 -0
  14. package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +154 -0
  15. package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +38 -0
  16. package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +152 -0
  17. package/skills/3d-asset-generation/SKILL.md +142 -0
  18. package/skills/action-fight-prompt/SKILL.md +136 -0
  19. package/skills/action-fight-prompt/references/camera-and-impact.md +64 -0
  20. package/skills/action-fight-prompt/references/example-15s-duel.md +59 -0
  21. package/skills/action-fight-prompt/references/scene-patterns.md +80 -0
  22. package/skills/ad-creative-video/SKILL.md +205 -0
  23. package/skills/ad-creative-video/references/batch-ad-pipeline.md +289 -0
  24. package/skills/ad-creative-video/references/platform-specs.md +72 -0
  25. package/skills/after-effects/SKILL.md +123 -0
  26. package/skills/after-effects/references/export-recipes.md +168 -0
  27. package/skills/after-effects/references/expression-library.md +184 -0
  28. package/skills/after-effects/references/expressions.md +134 -0
  29. package/skills/after-effects/references/performance-triage.md +138 -0
  30. package/skills/after-effects/references/project-hygiene.md +188 -0
  31. package/skills/ai-media-quality-review/SKILL.md +72 -0
  32. package/skills/ai-product-video/SKILL.md +296 -0
  33. package/skills/ai-product-video/references/aesthetic-rules.md +177 -0
  34. package/skills/ai-product-video/references/final-review.md +110 -0
  35. package/skills/ai-product-video/references/guided-free-creation.md +194 -0
  36. package/skills/ai-product-video/references/music-beat-sync.md +219 -0
  37. package/skills/ai-product-video/references/pipeline.md +392 -0
  38. package/skills/ai-product-video/references/sequences/promo-energy-arc.md +50 -0
  39. package/skills/ai-product-video/references/shots/ATTRIBUTION.md +65 -0
  40. package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +37 -0
  41. package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +39 -0
  42. package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +38 -0
  43. package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +40 -0
  44. package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +57 -0
  45. package/skills/aicut/SKILL.md +4 -4
  46. package/skills/aicut/references/commands.md +15 -15
  47. package/skills/aicut/references/film-format.md +1 -1
  48. package/skills/aicut/references/recipes.md +4 -4
  49. package/skills/aicut/references/troubleshooting.md +2 -2
  50. package/skills/aicut-motion/SKILL.md +6 -6
  51. package/skills/aicut-motion/references/design-systems/README.md +1 -1
  52. package/skills/aicut-motion/references/pages.md +1 -1
  53. package/skills/anidoodle/SKILL.md +185 -0
  54. package/skills/anidoodle/references/anatomy.md +91 -0
  55. package/skills/anidoodle/references/backends-and-adapters.md +82 -0
  56. package/skills/anidoodle/references/camera.md +148 -0
  57. package/skills/anidoodle/references/craft-bar.md +72 -0
  58. package/skills/anidoodle/references/determinism-and-contract.md +46 -0
  59. package/skills/anidoodle/references/formats.md +121 -0
  60. package/skills/anidoodle/references/motion-grammar.md +234 -0
  61. package/skills/anidoodle/references/music/compose.md +388 -0
  62. package/skills/anidoodle/references/music/sound-design.md +245 -0
  63. package/skills/anidoodle/references/music/sounds-licenses.md +69 -0
  64. package/skills/anidoodle/references/music/styles/lofi-electronic.md +112 -0
  65. package/skills/anidoodle/references/music/styles/music-box.md +57 -0
  66. package/skills/animated-component-libraries/SKILL.md +820 -0
  67. package/skills/animated-component-libraries/references/customization_guide.md +699 -0
  68. package/skills/animated-component-libraries/references/magic_ui_components.md +422 -0
  69. package/skills/animated-component-libraries/references/react_bits_components.md +587 -0
  70. package/skills/animated-infographic/SKILL.md +211 -0
  71. package/skills/animated-infographic/references/sequenced-infographic.md +286 -0
  72. package/skills/appshot-core/SKILL.md +872 -0
  73. package/skills/article-highlights/SKILL.md +151 -0
  74. package/skills/avatar-mix/SKILL.md +301 -0
  75. package/skills/bang-motion/SKILL.md +583 -0
  76. package/skills/bang-motion/references/ae-bridge-higgsfield.md +160 -0
  77. package/skills/bang-motion/references/anti-ppt.md +110 -0
  78. package/skills/bang-motion/references/architecture.md +188 -0
  79. package/skills/bang-motion/references/explainer.md +579 -0
  80. package/skills/bang-motion/references/kartun-panggung.md +221 -0
  81. package/skills/bang-motion/references/opener-konsep.md +817 -0
  82. package/skills/bang-motion/references/roadmap.md +85 -0
  83. package/skills/bang-motion/references/techniques.md +690 -0
  84. package/skills/beat-sync-edit/SKILL.md +148 -0
  85. package/skills/book-video-factory/SKILL.md +139 -0
  86. package/skills/book-video-factory/references/first-run.md +50 -0
  87. package/skills/book-video-factory/references/paper-collage-explainer.md +127 -0
  88. package/skills/book-video-factory/references/quality-gates.md +87 -0
  89. package/skills/book-video-production/SKILL.md +211 -0
  90. package/skills/brag/SKILL.md +195 -0
  91. package/skills/brag/references/audio.md +312 -0
  92. package/skills/brag/references/step-1-inspect.md +125 -0
  93. package/skills/brag/references/step-2-plan.md +234 -0
  94. package/skills/brag/references/step-3-compose.md +199 -0
  95. package/skills/brag/references/step-4-deliver.md +141 -0
  96. package/skills/brag/references/tones.md +231 -0
  97. package/skills/brand-setup/SKILL.md +228 -0
  98. package/skills/brewreel/SKILL.md +491 -0
  99. package/skills/brewreel/docs/broll.en.md +252 -0
  100. package/skills/brewreel/docs/broll.md +252 -0
  101. package/skills/brewreel/docs/custom-shot.en.md +66 -0
  102. package/skills/brewreel/docs/custom-shot.md +103 -0
  103. package/skills/brewreel/docs/faq.en.md +90 -0
  104. package/skills/brewreel/docs/faq.md +90 -0
  105. package/skills/brewreel/docs/features.en.md +157 -0
  106. package/skills/brewreel/docs/features.md +157 -0
  107. package/skills/brewreel/docs/gallery.en.md +44 -0
  108. package/skills/brewreel/docs/gallery.md +44 -0
  109. package/skills/brewreel/docs/how-it-works.en.md +64 -0
  110. package/skills/brewreel/docs/how-it-works.md +64 -0
  111. package/skills/caption-animation/SKILL.md +216 -0
  112. package/skills/caption-animation/references/word-timed-captions.md +254 -0
  113. package/skills/cartcut-editing/SKILL.md +615 -0
  114. package/skills/cartcut-editing/references/html-typography.md +277 -0
  115. package/skills/cassette-video-edit/SKILL.md +129 -0
  116. package/skills/ccvideo/SKILL.md +264 -0
  117. package/skills/chekhov-dramaturgy/SKILL.md +367 -0
  118. package/skills/chekhov-dramaturgy/reference.md +375 -0
  119. package/skills/chengfeng-check-updates/SKILL.md +283 -0
  120. package/skills/cinematic-product-promo-skill/SKILL.md +295 -0
  121. package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +187 -0
  122. package/skills/cinematic-product-promo-skill/references/final-review.md +116 -0
  123. package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +199 -0
  124. package/skills/cinematic-product-promo-skill/references/jianying-export.md +183 -0
  125. package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +257 -0
  126. package/skills/cinematic-product-promo-skill/references/pipeline.md +393 -0
  127. package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +50 -0
  128. package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +65 -0
  129. package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +37 -0
  130. package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +39 -0
  131. package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +38 -0
  132. package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +40 -0
  133. package/skills/claude-gif/SKILL.md +211 -0
  134. package/skills/claude-gif/references/gif-optimization.md +209 -0
  135. package/skills/claude-gif/references/perfect-loops.md +295 -0
  136. package/skills/claude-gif/references/platform-specs.md +138 -0
  137. package/skills/claude-gif/references/prompt-engineering.md +211 -0
  138. package/skills/claude-gif/references/remotion-gif.md +560 -0
  139. package/skills/codex-video-pipeline/SKILL.md +213 -0
  140. package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +10 -0
  141. package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +22 -0
  142. package/skills/codex-video-pipeline/references/captions.md +39 -0
  143. package/skills/codex-video-pipeline/references/cover-system.md +72 -0
  144. package/skills/codex-video-pipeline/references/cross-platform.md +77 -0
  145. package/skills/codex-video-pipeline/references/example-run.md +54 -0
  146. package/skills/codex-video-pipeline/references/first-run.md +130 -0
  147. package/skills/codex-video-pipeline/references/project-contract.md +54 -0
  148. package/skills/codex-video-pipeline/references/quality-gates.md +44 -0
  149. package/skills/codex-video-pipeline/references/research-and-script.md +50 -0
  150. package/skills/collage-broll-explainers/SKILL.md +429 -0
  151. package/skills/create-onboarding-video/SKILL.md +233 -0
  152. package/skills/cs-shotcraft-skill/SKILL.md +218 -0
  153. package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +207 -0
  154. package/skills/cs-shotcraft-skill/references/camera-table.md +88 -0
  155. package/skills/cs-shotcraft-skill/references/engineering.md +132 -0
  156. package/skills/cs-shotcraft-skill/references/final-review.md +118 -0
  157. package/skills/cs-shotcraft-skill/references/guided-free-creation.md +199 -0
  158. package/skills/cs-shotcraft-skill/references/jianying-export.md +183 -0
  159. package/skills/cs-shotcraft-skill/references/music-beat-sync.md +257 -0
  160. package/skills/cs-shotcraft-skill/references/pipeline.md +408 -0
  161. package/skills/cs-shotcraft-skill/references/product-machine.md +56 -0
  162. package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +50 -0
  163. package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +65 -0
  164. package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +37 -0
  165. package/skills/cut-video/SKILL.md +387 -0
  166. package/skills/cyxj-hyperframes-overlay/SKILL.md +75 -0
  167. package/skills/cyxj-remotion-evolve/SKILL.md +123 -0
  168. package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +123 -0
  169. package/skills/demo-video-creation-skill/SKILL.md +152 -0
  170. package/skills/demo-video-creation-skill/references/capture-workflow.md +74 -0
  171. package/skills/demo-video-creation-skill/references/qc-checklist.md +61 -0
  172. package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +94 -0
  173. package/skills/demo-video-creation-skill/references/storytelling.md +86 -0
  174. package/skills/demo-video-creation-skill/references/visual-system.md +83 -0
  175. package/skills/demoday/SKILL.md +148 -0
  176. package/skills/develop-premiere-pro-mcp/SKILL.md +131 -0
  177. package/skills/diagram-animation/SKILL.md +200 -0
  178. package/skills/diagram-animation/references/diagram-and-chart-recipes.md +218 -0
  179. package/skills/diagram-tour/SKILL.md +287 -0
  180. package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +78 -0
  181. package/skills/docvideoer/SKILL.md +139 -0
  182. package/skills/draftcut/SKILL.md +104 -0
  183. package/skills/draftcut/docs/agent-bootstrap.md +64 -0
  184. package/skills/draftcut/docs/approvals.md +45 -0
  185. package/skills/draftcut/docs/audio-first-migration.md +35 -0
  186. package/skills/draftcut/docs/configuration.md +54 -0
  187. package/skills/draftcut/docs/getting-started.md +63 -0
  188. package/skills/draftcut/docs/harness-case-study.en.md +23 -0
  189. package/skills/draftcut/docs/harness-case-study.md +47 -0
  190. package/skills/draftcut/references/01-plan.md +30 -0
  191. package/skills/draftcut/references/03-deliver.md +26 -0
  192. package/skills/draftcut/references/04-reference-theme-prompt.md +7 -0
  193. package/skills/draftcut/references/05-social-loudness.md +58 -0
  194. package/skills/draftcut/references/06-modern-components.md +72 -0
  195. package/skills/easyedit/SKILL.md +66 -0
  196. package/skills/erduo-broll-loop-engineering/SKILL.md +136 -0
  197. package/skills/erduo-broll-loop-engineering/references/animation-craft.md +208 -0
  198. package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +107 -0
  199. package/skills/erduo-broll-loop-engineering/references/handoff-template.md +70 -0
  200. package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +122 -0
  201. package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +171 -0
  202. package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +322 -0
  203. package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +334 -0
  204. package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +76 -0
  205. package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +174 -0
  206. package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +135 -0
  207. package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +7 -0
  208. package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +65 -0
  209. package/skills/explainer-assets/SKILL.md +98 -0
  210. package/skills/explainer-video/SKILL.md +146 -0
  211. package/skills/framewright/SKILL.md +324 -0
  212. package/skills/framewright/references/audio.md +230 -0
  213. package/skills/framewright/references/guide.md +276 -0
  214. package/skills/framewright/references/painting.md +425 -0
  215. package/skills/framewright/references/photo.md +75 -0
  216. package/skills/framewright/references/questionnaire.md +115 -0
  217. package/skills/framewright/references/styles.md +388 -0
  218. package/skills/framewright/references/troubleshooting.md +119 -0
  219. package/skills/framewright/references/world.md +215 -0
  220. package/skills/gbro-collage-broll/SKILL.md +435 -0
  221. package/skills/gbro-collage-info/SKILL.md +135 -0
  222. package/skills/gbro-collage-info/references/motion-grammar.md +66 -0
  223. package/skills/gbro-collage-info/references/production.md +67 -0
  224. package/skills/gbro-collage-info/references/style-system.md +38 -0
  225. package/skills/gemini-tts/SKILL.md +208 -0
  226. package/skills/gemini-tts/references/prompting-guide.md +169 -0
  227. package/skills/gen/SKILL.md +282 -0
  228. package/skills/ghost-editor/SKILL.md +437 -0
  229. package/skills/ghost-editor/docs/HOW-IT-WORKS.md +82 -0
  230. package/skills/ghost-editor/docs/PLAYBOOK.md +139 -0
  231. package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +17 -0
  232. package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +13 -0
  233. package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +20 -0
  234. package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +17 -0
  235. package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +22 -0
  236. package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +22 -0
  237. package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +20 -0
  238. package/skills/ghost-editor/docs/THIRD_PARTY/models.md +11 -0
  239. package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +13 -0
  240. package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +15 -0
  241. package/skills/git-story-film/SKILL.md +220 -0
  242. package/skills/git-story-film/examples/raven-story/FONTS.md +8 -0
  243. package/skills/git-story-film/examples/raven-story/OUTLINE.md +93 -0
  244. package/skills/git-story-film/references/craft.md +148 -0
  245. package/skills/git-story-film/references/directing.md +185 -0
  246. package/skills/git-story-film/references/forms.md +150 -0
  247. package/skills/git-story-film/references/production.md +150 -0
  248. package/skills/git-story-film/references/story.md +137 -0
  249. package/skills/git-story-film/references/text-and-fonts.md +90 -0
  250. package/skills/guizang-product-video-skill/SKILL.md +96 -0
  251. package/skills/guizang-product-video-skill/references/audio-and-qa.md +113 -0
  252. package/skills/guizang-product-video-skill/references/audio-sourcing.md +80 -0
  253. package/skills/guizang-product-video-skill/references/case-study.md +63 -0
  254. package/skills/guizang-product-video-skill/references/component-pipeline.md +86 -0
  255. package/skills/guizang-product-video-skill/references/cover.md +43 -0
  256. package/skills/guizang-product-video-skill/references/direction.md +91 -0
  257. package/skills/guizang-product-video-skill/references/onboarding.md +98 -0
  258. package/skills/guizang-product-video-skill/references/repo-and-style.md +44 -0
  259. package/skills/guizang-product-video-skill/references/review.md +38 -0
  260. package/skills/guizang-product-video-skill/references/starter.md +168 -0
  261. package/skills/guizang-product-video-skill/references/story-and-copy.md +88 -0
  262. package/skills/guizang-product-video-skill/references/visual-vocabulary.md +78 -0
  263. package/skills/guofeng-paper-video/SKILL.md +159 -0
  264. package/skills/guofeng-paper-video/style/design.md +43 -0
  265. package/skills/guofeng-paper-video/style/palette.md +21 -0
  266. package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +19 -0
  267. package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +37 -0
  268. package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +27 -0
  269. package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +67 -0
  270. package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +29 -0
  271. package/skills/hand-drawn-explainer-video-nikola/SKILL.md +113 -0
  272. package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +18 -0
  273. package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +22 -0
  274. package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +28 -0
  275. package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +35 -0
  276. package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +24 -0
  277. package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +67 -0
  278. package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +79 -0
  279. package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +49 -0
  280. package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +82 -0
  281. package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +39 -0
  282. package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +30 -0
  283. package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +37 -0
  284. package/skills/hbg-life-simulation/SKILL.md +285 -0
  285. package/skills/hbg-life-simulation/references/image-generation.md +53 -0
  286. package/skills/hbg-life-simulation/references/local-account-api.md +112 -0
  287. package/skills/hbg-life-simulation/references/opening-system.md +45 -0
  288. package/skills/hbg-life-simulation/references/project-spec.md +62 -0
  289. package/skills/hbg-life-simulation/references/render-and-qa.md +107 -0
  290. package/skills/hbg-life-simulation/references/storyboarding.md +69 -0
  291. package/skills/hbg-life-simulation/references/style-system.md +80 -0
  292. package/skills/hbg-life-simulation/references/visual-system.md +44 -0
  293. package/skills/heygen-avatar/SKILL.md +489 -0
  294. package/skills/heygen-avatar/references/asset-routing.md +86 -0
  295. package/skills/heygen-avatar/references/avatar-creation.md +181 -0
  296. package/skills/heygen-avatar/references/troubleshooting.md +137 -0
  297. package/skills/heytea-doodle-poster/SKILL.md +132 -0
  298. package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +103 -0
  299. package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +122 -0
  300. package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +106 -0
  301. package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +264 -0
  302. package/skills/heytea-doodle-poster/references/evaluation.md +246 -0
  303. package/skills/heytea-doodle-poster/references/lettering-guide.md +213 -0
  304. package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +101 -0
  305. package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +56 -0
  306. package/skills/heytea-doodle-poster/references/style-guide.md +412 -0
  307. package/skills/heytea-doodle-poster-hosted/SKILL.md +132 -0
  308. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +103 -0
  309. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +122 -0
  310. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +106 -0
  311. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +264 -0
  312. package/skills/heytea-doodle-poster-hosted/references/evaluation.md +246 -0
  313. package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +213 -0
  314. package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +101 -0
  315. package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +56 -0
  316. package/skills/heytea-doodle-poster-hosted/references/style-guide.md +412 -0
  317. package/skills/html2video/SKILL.md +290 -0
  318. package/skills/html2video/references/cjk-type.md +173 -0
  319. package/skills/html2video/references/editorial.md +145 -0
  320. package/skills/html2video/references/narration.md +111 -0
  321. package/skills/html2video/references/pitfalls.md +238 -0
  322. package/skills/html2video/references/shots.md +198 -0
  323. package/skills/html2video/references/storyboard.md +323 -0
  324. package/skills/hyperdirector/SKILL.md +202 -0
  325. package/skills/hyperdirector/docs/audio-workflow.md +160 -0
  326. package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +244 -0
  327. package/skills/hyperdirector/docs/brand-kit-setup.md +322 -0
  328. package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +277 -0
  329. package/skills/hyperdirector/docs/cursor-development-notes.md +474 -0
  330. package/skills/hyperdirector/docs/faq.md +285 -0
  331. package/skills/hyperdirector/docs/faq.zh-CN.md +198 -0
  332. package/skills/hyperdirector/docs/first-video.md +320 -0
  333. package/skills/hyperdirector/docs/first-video.zh-CN.md +265 -0
  334. package/skills/hyperdirector/docs/installation.md +254 -0
  335. package/skills/hyperdirector/docs/installation.zh-CN.md +222 -0
  336. package/skills/hyperdirector/docs/quickstart.md +203 -0
  337. package/skills/hyperframes/SKILL.md +117 -0
  338. package/skills/hyperframes/references/captions.md +46 -0
  339. package/skills/hyperframes/references/film.md +48 -0
  340. package/skills/hyperframes/references/format.md +158 -0
  341. package/skills/hyperframes/references/look.md +69 -0
  342. package/skills/hyperframes/references/motion.md +95 -0
  343. package/skills/hyperframes/references/overlays.md +39 -0
  344. package/skills/hyperframes/references/review.md +51 -0
  345. package/skills/hyperframes/references/runtimes.md +69 -0
  346. package/skills/hyperframes/references/skill-lifecycle.md +49 -0
  347. package/skills/hyperframes/references/sound.md +43 -0
  348. package/skills/hyperframes/references/spec.md +76 -0
  349. package/skills/hyperframes/references/story.md +103 -0
  350. package/skills/hyperframes-motion-director/SKILL.md +920 -0
  351. package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +185 -0
  352. package/skills/hyperframes-motion-director/references/audio-sync.md +83 -0
  353. package/skills/hyperframes-motion-director/references/design-engineering.md +156 -0
  354. package/skills/hyperframes-motion-director/references/gsap-choreography.md +202 -0
  355. package/skills/hyperframes-motion-director/references/hyperframes-stability.md +99 -0
  356. package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +227 -0
  357. package/skills/hyperframes-motion-director/references/motion-background-system.md +165 -0
  358. package/skills/hyperframes-motion-director/references/motion-craft.md +182 -0
  359. package/skills/hyperframes-motion-director/references/premium-product-promo.md +287 -0
  360. package/skills/hyperframes-motion-director/references/text-over-background-layout.md +221 -0
  361. package/skills/hyperframes-motion-director/references/visual-standard.md +174 -0
  362. package/skills/hyperframes-motion-director/references/workflow.md +320 -0
  363. package/skills/hypit/SKILL.md +367 -0
  364. package/skills/hypit/references/creation/brief.md +93 -0
  365. package/skills/hypit/references/creation/script-and-time.md +259 -0
  366. package/skills/hypit/references/creation/transformations.md +143 -0
  367. package/skills/hypit/references/playbooks/craft/b-roll.md +94 -0
  368. package/skills/hypit/references/playbooks/craft/caption-tracking.md +126 -0
  369. package/skills/hypit/references/playbooks/craft/captions.md +253 -0
  370. package/skills/hypit/references/playbooks/craft/generated-dependencies.md +38 -0
  371. package/skills/hypit/references/playbooks/craft/graphic-compositions.md +85 -0
  372. package/skills/hypit/references/playbooks/craft/motion-graphics.md +68 -0
  373. package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +51 -0
  374. package/skills/hypit/references/playbooks/craft/sound-mix.md +70 -0
  375. package/skills/hypit/references/playbooks/formats/narration-led-demo.md +87 -0
  376. package/skills/image/SKILL.md +153 -0
  377. package/skills/image/references/characters.md +86 -0
  378. package/skills/image/references/creative-direction.md +137 -0
  379. package/skills/image/references/de-slop.md +95 -0
  380. package/skills/image/references/dimensional.md +88 -0
  381. package/skills/image/references/editing.md +112 -0
  382. package/skills/image/references/golden-rules.md +198 -0
  383. package/skills/image/references/gpt-image.md +228 -0
  384. package/skills/image/references/models.md +78 -0
  385. package/skills/image/references/multi-panel.md +354 -0
  386. package/skills/image/references/nano-banana.md +150 -0
  387. package/skills/image/references/patterns/character-design.md +150 -0
  388. package/skills/image/references/patterns/ecommerce.md +124 -0
  389. package/skills/image-smixs/SKILL.md +153 -0
  390. package/skills/image-smixs/references/characters.md +86 -0
  391. package/skills/image-smixs/references/creative-direction.md +137 -0
  392. package/skills/image-smixs/references/de-slop.md +95 -0
  393. package/skills/image-smixs/references/dimensional.md +88 -0
  394. package/skills/image-smixs/references/editing.md +112 -0
  395. package/skills/image-smixs/references/golden-rules.md +198 -0
  396. package/skills/image-smixs/references/gpt-image.md +228 -0
  397. package/skills/image-smixs/references/models.md +78 -0
  398. package/skills/image-smixs/references/multi-panel.md +354 -0
  399. package/skills/image-smixs/references/nano-banana.md +150 -0
  400. package/skills/image-smixs/references/patterns/character-design.md +150 -0
  401. package/skills/image-smixs/references/patterns/ecommerce.md +124 -0
  402. package/skills/image-story-video-wizard/SKILL.md +148 -0
  403. package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +29 -0
  404. package/skills/image-story-video-wizard/references/host-routing.md +44 -0
  405. package/skills/image-story-video-wizard/references/state-schema.md +79 -0
  406. package/skills/image-story-video-wizard/references/workflow.md +203 -0
  407. package/skills/image-story-video-wizard/references/writing-and-review.md +60 -0
  408. package/skills/ip-as-logo/SKILL.md +151 -0
  409. package/skills/ip-as-logo-s1dashu/SKILL.md +151 -0
  410. package/skills/jtxvideo-skill/SKILL.md +337 -0
  411. package/skills/kinetic-reel/SKILL.md +140 -0
  412. package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +51 -0
  413. package/skills/kinetic-reel/references/sound.md +40 -0
  414. package/skills/kinetic-reel/references/style-guide.md +79 -0
  415. package/skills/knowledge-explainer-skill/SKILL.md +149 -0
  416. package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +61 -0
  417. package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +20 -0
  418. package/skills/knowledge-explainer-skill/examples/before_after_demo.md +38 -0
  419. package/skills/knowledge-explainer-skill/examples/cta_outro.md +11 -0
  420. package/skills/knowledge-explainer-skill/examples/double_pendulum.md +20 -0
  421. package/skills/knowledge-explainer-skill/examples/paper_fold.md +20 -0
  422. package/skills/knowledge-explainer-skill/examples/script.md +40 -0
  423. package/skills/lanshu-create-ai-presenter-video/SKILL.md +253 -0
  424. package/skills/lanshu-create-ai-presenter-video/references/editing.md +67 -0
  425. package/skills/lanshu-create-ai-presenter-video/references/generation.md +94 -0
  426. package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +83 -0
  427. package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +189 -0
  428. package/skills/laoxu-video-script/SKILL.md +117 -0
  429. package/skills/laoxu-video-script/references/cases.md +305 -0
  430. package/skills/laoxu-video-script/references/de-ai.md +32 -0
  431. package/skills/laoxu-video-script/references/diagnostics.md +67 -0
  432. package/skills/laoxu-video-script/references/format.md +62 -0
  433. package/skills/laoxu-video-script/references/formulas.md +43 -0
  434. package/skills/laoxu-video-script/references/method.md +115 -0
  435. package/skills/laoxu-video-script/references/motifs-and-lines.md +829 -0
  436. package/skills/laoxu-video-script/references/persona.md +38 -0
  437. package/skills/laoxu-video-script/references/qihao-path.md +35 -0
  438. package/skills/laoxu-video-script/references/qihao-xinfa.md +39 -0
  439. package/skills/laoxu-video-script/references/redlines.md +26 -0
  440. package/skills/lemo-opuscar/SKILL.md +67 -0
  441. package/skills/lipnardo/SKILL.md +308 -0
  442. package/skills/lipnardo/examples/batch-personalized.md +44 -0
  443. package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +56 -0
  444. package/skills/lipnardo/examples/single-video.md +44 -0
  445. package/skills/lipnardo/references/avatar-types.md +42 -0
  446. package/skills/lipnardo/references/credit-costs.md +39 -0
  447. package/skills/lipnardo/references/error-codes.md +66 -0
  448. package/skills/lipnardo/references/heygen-api-reference.md +416 -0
  449. package/skills/ll-video-decomposer/SKILL.md +105 -0
  450. package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +44 -0
  451. package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +41 -0
  452. package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +48 -0
  453. package/skills/ll-video-decomposer/references/single-video-report-template.md +47 -0
  454. package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +30 -0
  455. package/skills/ll-video-decomposer/references/transcription-routing.md +65 -0
  456. package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +30 -0
  457. package/skills/ltx2-video/SKILL.md +193 -0
  458. package/skills/ltx2-video/references/mode_ux.md +293 -0
  459. package/skills/make-ai-short/SKILL.md +130 -0
  460. package/skills/make-blender-education-video/SKILL.md +247 -0
  461. package/skills/make-blender-education-video/references/evidence-and-explanation.md +62 -0
  462. package/skills/make-blender-education-video/references/github-workflow-discovery.md +55 -0
  463. package/skills/make-blender-education-video/references/production-workflow.md +62 -0
  464. package/skills/make-blender-education-video/references/story-patterns.md +65 -0
  465. package/skills/make-blender-education-video/references/visual-quality.md +82 -0
  466. package/skills/manage-storyboard-projects/SKILL.md +128 -0
  467. package/skills/manim-composer/SKILL.md +176 -0
  468. package/skills/manim-composer/references/narrative-patterns.md +125 -0
  469. package/skills/manim-composer/references/scene-examples.md +216 -0
  470. package/skills/manim-composer/references/visual-techniques.md +223 -0
  471. package/skills/manim-composer/templates/scenes-template.md +147 -0
  472. package/skills/monet-ai-editor-monet/SKILL.md +367 -0
  473. package/skills/motion-graphics/SKILL.md +206 -0
  474. package/skills/motion-graphics/references/craft.md +136 -0
  475. package/skills/motion-graphics/references/engine.md +130 -0
  476. package/skills/motion-graphics/references/export.md +67 -0
  477. package/skills/motion-graphics/references/physics.md +100 -0
  478. package/skills/motion-graphics/references/verify.md +124 -0
  479. package/skills/motion-video/SKILL.md +133 -0
  480. package/skills/motion-video/references/audio-and-beat-sync.md +109 -0
  481. package/skills/motion-video/references/composition-contract.md +107 -0
  482. package/skills/motion-video/references/production-pipeline.md +147 -0
  483. package/skills/motion-video/references/style-comic-spiderverse.md +87 -0
  484. package/skills/motion-video/references/style-glass-keynote.md +69 -0
  485. package/skills/motion-video-maker/SKILL.md +1452 -0
  486. package/skills/motion-video-maker/reference/components.md +451 -0
  487. package/skills/motion-video-maker/reference/workflow.md +190 -0
  488. package/skills/motioncraft/SKILL.md +221 -0
  489. package/skills/motioncraft/references/animation-system.md +57 -0
  490. package/skills/motioncraft/references/assets-and-licensing.md +21 -0
  491. package/skills/motioncraft/references/customization.md +52 -0
  492. package/skills/motioncraft/references/gpu-cloud-render.md +15 -0
  493. package/skills/motioncraft/references/music.md +43 -0
  494. package/skills/motioncraft/references/phase1-planning-and-preview.md +74 -0
  495. package/skills/motioncraft/references/phase2-timeline-audio.md +33 -0
  496. package/skills/motioncraft/references/phase3-pixel-review.md +13 -0
  497. package/skills/motioncraft/references/phase4-templates.md +30 -0
  498. package/skills/motioncraft/references/preflight.md +27 -0
  499. package/skills/motioncraft/references/qa.md +53 -0
  500. package/skills/motioncraft/references/reference-analysis.md +37 -0
  501. package/skills/narrator-ai-cli/SKILL.md +256 -0
  502. package/skills/narrator-ai-cli/references/magic-video.md +205 -0
  503. package/skills/narrator-ai-cli/references/operations.md +230 -0
  504. package/skills/narrator-ai-cli/references/resources.md +126 -0
  505. package/skills/narrator-ai-cli/references/workflows.md +332 -0
  506. package/skills/newcut-video-clipping/SKILL.md +194 -0
  507. package/skills/newcut-video-clipping/references/examples.md +59 -0
  508. package/skills/newcut-video-clipping/references/provider-config.md +110 -0
  509. package/skills/newcut-video-clipping/references/quality-check.md +35 -0
  510. package/skills/newcut-video-clipping/references/semantic-plan.md +65 -0
  511. package/skills/notes-to-video/SKILL.md +476 -0
  512. package/skills/openchatcut/SKILL.md +100 -0
  513. package/skills/openchatcut/references/editing-workflow.md +54 -0
  514. package/skills/openchatcut/references/getting-started.md +106 -0
  515. package/skills/openchatcut/references/known-errors.md +62 -0
  516. package/skills/openstoryline-install/SKILL.md +228 -0
  517. package/skills/orca-motion/SKILL.md +100 -0
  518. package/skills/orca-motion/references/api.md +100 -0
  519. package/skills/orca-motion/references/integration.md +59 -0
  520. package/skills/orca-motion/references/kinetic-type.md +59 -0
  521. package/skills/orca-motion/references/principles.md +76 -0
  522. package/skills/package-talking-head-video/SKILL.md +90 -0
  523. package/skills/package-talking-head-video/docs/EXAMPLES.md +18 -0
  524. package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +29 -0
  525. package/skills/package-talking-head-video/docs/USAGE.md +83 -0
  526. package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +144 -0
  527. package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +1099 -0
  528. package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +154 -0
  529. package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +365 -0
  530. package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +56 -0
  531. package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +8 -0
  532. package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +34 -0
  533. package/skills/package-talking-head-video/references/director-rules.md +29 -0
  534. package/skills/package-talking-head-video/references/motion-and-illustration.md +25 -0
  535. package/skills/paper-cut/SKILL.md +164 -0
  536. package/skills/paper-cut/references/asset-spec.md +47 -0
  537. package/skills/paper-cut/references/audio-and-chatcut.md +26 -0
  538. package/skills/paper-cut/references/hyperframes-assembly.md +47 -0
  539. package/skills/paper-cut/references/image-led-production.md +65 -0
  540. package/skills/paper-cut/references/storyboard-schema.md +48 -0
  541. package/skills/paper-cut/references/workflow.md +39 -0
  542. package/skills/personal-ip-brand-intro/SKILL.md +216 -0
  543. package/skills/personal-ip-brand-intro/references/intake-schema.md +79 -0
  544. package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +40 -0
  545. package/skills/personal-ip-brand-intro/references/originality-rules.md +42 -0
  546. package/skills/personal-ip-brand-intro/references/qa-checklist.md +60 -0
  547. package/skills/personal-ip-brand-intro/references/rhythm-routing.md +41 -0
  548. package/skills/personal-ip-brand-intro/references/storyboard-contract.md +42 -0
  549. package/skills/pixel2motion/SKILL.md +279 -0
  550. package/skills/pixel2motion/references/html-delivery-template.md +42 -0
  551. package/skills/pixel2motion/references/motion-personality.md +109 -0
  552. package/skills/pixel2motion/references/reveal-patterns.md +163 -0
  553. package/skills/pixel2motion/references/ribbon-fitting.md +90 -0
  554. package/skills/pixel2motion/references/twelve-principles-for-logos.md +116 -0
  555. package/skills/premiere-batch-delivery/SKILL.md +71 -0
  556. package/skills/premiere-pro-mcp/SKILL.md +161 -0
  557. package/skills/promo-creator-skills/SKILL.md +209 -0
  558. package/skills/promo-creator-skills/references/mureka_prompt_guide.md +251 -0
  559. package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +100 -0
  560. package/skills/promo-video/SKILL.md +408 -0
  561. package/skills/qisi-video-remix/SKILL.md +134 -0
  562. package/skills/qisi-video-remix/examples/creative-plan.md +133 -0
  563. package/skills/qisi-video-remix/references/delivery-guide.md +63 -0
  564. package/skills/reel-video/SKILL.md +237 -0
  565. package/skills/remotion-ad-video/SKILL.md +252 -0
  566. package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +60 -0
  567. package/skills/remotion-ad-video/references/ad-brief-contract.md +235 -0
  568. package/skills/remotion-ad-video/references/ad-exemplars.md +186 -0
  569. package/skills/remotion-ad-video/references/ad-intake.md +54 -0
  570. package/skills/remotion-ad-video/references/asset-harvest.md +56 -0
  571. package/skills/remotion-ad-video/references/audio-caption-system.md +202 -0
  572. package/skills/remotion-ad-video/references/concept-contract.md +128 -0
  573. package/skills/remotion-ad-video/references/creative-direction.md +146 -0
  574. package/skills/remotion-ad-video/references/fast-test-workflow.md +86 -0
  575. package/skills/remotion-ad-video/references/game-ad-patterns.md +75 -0
  576. package/skills/remotion-ad-video/references/hyperframes-output.md +90 -0
  577. package/skills/remotion-ad-video/references/industry-angle-library.md +71 -0
  578. package/skills/remotion-ads/SKILL.md +278 -0
  579. package/skills/remotion-ads/references/ad-copywriting.md +229 -0
  580. package/skills/remotion-ads/references/animations.md +693 -0
  581. package/skills/remotion-ads/references/brand-config-template.md +355 -0
  582. package/skills/remotion-ads/references/captions.md +529 -0
  583. package/skills/remotion-ads/references/carousels.md +580 -0
  584. package/skills/remotion-ads/references/components.md +897 -0
  585. package/skills/remotion-ads/references/copy-frameworks.md +144 -0
  586. package/skills/remotion-ads/references/formats.md +436 -0
  587. package/skills/remotion-ads/references/gemini-tts.md +473 -0
  588. package/skills/remotion-ads/references/html-in-canvas.md +555 -0
  589. package/skills/remotion-ads/references/local-assets.md +543 -0
  590. package/skills/remotion-ads/references/music.md +656 -0
  591. package/skills/remotion-code-motion-explainer/SKILL.md +178 -0
  592. package/skills/remotion-code-motion-explainer/references/code-motion-design.md +86 -0
  593. package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +93 -0
  594. package/skills/remotion-code-motion-explainer/references/production-and-qc.md +99 -0
  595. package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +48 -0
  596. package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +62 -0
  597. package/skills/remotion-motion-graphics/SKILL.md +169 -0
  598. package/skills/remotion-motion-graphics/references/patterns.md +355 -0
  599. package/skills/remotion-motion-graphics/references/polish.md +102 -0
  600. package/skills/remotion-motion-graphics/references/scaffold.md +144 -0
  601. package/skills/remotion-motion-graphics/references/traps.md +152 -0
  602. package/skills/remotion-resemble-ai/SKILL.md +879 -0
  603. package/skills/remotion-resemble-ai/rules/resemble-captions.md +350 -0
  604. package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +305 -0
  605. package/skills/remotion-resemble-ai/rules/resemble-setup.md +284 -0
  606. package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +225 -0
  607. package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +239 -0
  608. package/skills/remotion-resemble-ai/rules/resemble-voices.md +213 -0
  609. package/skills/remotion-resemble-ai/rules/visual-animations.md +567 -0
  610. package/skills/riffkit/SKILL.md +196 -0
  611. package/skills/riffkit/examples/any-look-styles.md +11 -0
  612. package/skills/riffkit/examples/faceless-and-auto.md +16 -0
  613. package/skills/riffkit/examples/localize-spanish.md +18 -0
  614. package/skills/riffkit/examples/tiktok-shop-product.md +22 -0
  615. package/skills/riffkit/references/anchor.md +62 -0
  616. package/skills/riffkit/references/api.md +806 -0
  617. package/skills/riffkit/references/details.md +153 -0
  618. package/skills/riffkit/references/errors.md +69 -0
  619. package/skills/riffkit/references/intents.md +29 -0
  620. package/skills/saas-motion-video/SKILL.md +71 -0
  621. package/skills/script-to-video/SKILL.md +2627 -0
  622. package/skills/shorts/SKILL.md +372 -0
  623. package/skills/shorts/references/caption-styles.md +105 -0
  624. package/skills/shorts/references/platform-specs.md +149 -0
  625. package/skills/shorts/references/remotion-patterns.md +180 -0
  626. package/skills/shorts/references/scoring-rubric.md +106 -0
  627. package/skills/smart-video-editor/SKILL.md +327 -0
  628. package/skills/smart-video-editor/docs/FONTS.md +57 -0
  629. package/skills/story-telling/SKILL.md +222 -0
  630. package/skills/story-telling/rules/composition.md +130 -0
  631. package/skills/story-telling/rules/images.md +119 -0
  632. package/skills/story-telling/rules/models.md +98 -0
  633. package/skills/story-telling/rules/narration.md +87 -0
  634. package/skills/story-telling/rules/pitfalls.md +140 -0
  635. package/skills/story-telling/rules/story-formats.md +108 -0
  636. package/skills/story-telling/rules/story-json.md +143 -0
  637. package/skills/story-telling/rules/voices.md +114 -0
  638. package/skills/story-telling/rules/workflow.md +105 -0
  639. package/skills/story-to-handdrawn-video/SKILL.md +216 -0
  640. package/skills/story-to-handdrawn-video/references/asset-workflow.md +24 -0
  641. package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +27 -0
  642. package/skills/su-card-to-video/SKILL.md +103 -0
  643. package/skills/talking-head-video-pipeline/SKILL.md +224 -0
  644. package/skills/talking-head-video-pipeline/examples/prompts.md +217 -0
  645. package/skills/talking-head-video-pipeline/references/asr-adapters.md +51 -0
  646. package/skills/talking-head-video-pipeline/references/caption-workflow.md +53 -0
  647. package/skills/talking-head-video-pipeline/references/export-recipes.md +78 -0
  648. package/skills/talking-head-video-pipeline/references/layout-safety.md +49 -0
  649. package/skills/talking-head-video-pipeline/references/video-use-integration.md +71 -0
  650. package/skills/talking-head-video-pipeline/references/workflows/captions.md +52 -0
  651. package/skills/talking-head-video-pipeline/references/workflows/design.md +77 -0
  652. package/skills/talking-head-video-pipeline/references/workflows/doctor.md +51 -0
  653. package/skills/talking-head-video-pipeline/references/workflows/export.md +50 -0
  654. package/skills/talking-head-video-pipeline/references/workflows/init.md +51 -0
  655. package/skills/talking-head-video-pipeline/references/workflows/learn.md +36 -0
  656. package/skills/text-to-lottie/SKILL.md +202 -0
  657. package/skills/text-to-lottie/references/chapterization-transition-grammar.md +132 -0
  658. package/skills/text-to-lottie/references/design-taste.md +292 -0
  659. package/skills/text-to-lottie/references/lottie-spec-map.md +82 -0
  660. package/skills/text-to-lottie/references/motion-taste.md +260 -0
  661. package/skills/text-to-lottie/references/player-contract.md +325 -0
  662. package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +65 -0
  663. package/skills/text-to-lottie/references/recipe-data-stats.md +104 -0
  664. package/skills/text-to-lottie/references/recipe-diagram-technical.md +106 -0
  665. package/skills/text-to-lottie/references/recipe-loaders-icons.md +70 -0
  666. package/skills/text-to-lottie/references/recipe-logo.md +72 -0
  667. package/skills/text-to-lottie/references/recipe-lower-thirds.md +62 -0
  668. package/skills/text-to-lottie/references/recipe-product-promo.md +99 -0
  669. package/skills/ultrademo/SKILL.md +212 -0
  670. package/skills/video-assemble/SKILL.md +101 -0
  671. package/skills/video-assemble-zenstory-ai/SKILL.md +153 -0
  672. package/skills/video-assemble-zenstory-ai/references/audio-modes.md +63 -0
  673. package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +77 -0
  674. package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +14 -0
  675. package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +103 -0
  676. package/skills/video-assemble-zenstory-ai/references/packaging.md +44 -0
  677. package/skills/video-assemble-zenstory-ai/references/source-score.md +146 -0
  678. package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +202 -0
  679. package/skills/video-editing/SKILL.md +688 -0
  680. package/skills/video-explainer/SKILL.md +163 -0
  681. package/skills/video-explainer/references/brief-to-script.md +56 -0
  682. package/skills/video-explainer/references/errors-and-privacy.md +18 -0
  683. package/skills/video-explainer/references/motion-storyboard.md +82 -0
  684. package/skills/video-explainer/references/render-and-verify.md +62 -0
  685. package/skills/video-explainer/references/review-gate.md +82 -0
  686. package/skills/video-explainer/references/setup-and-doctor.md +33 -0
  687. package/skills/video-script-builder/SKILL.md +329 -0
  688. package/skills/video-script-builder/examples/quick-start-transcript.md +19 -0
  689. package/skills/video-script-builder/references/audio-workflow.md +84 -0
  690. package/skills/video-script-builder/references/caption-components.md +70 -0
  691. package/skills/video-script-builder/references/common-pitfalls.md +80 -0
  692. package/skills/video-script-builder/references/component-catalog.md +197 -0
  693. package/skills/video-script-builder/references/component-recipes.md +165 -0
  694. package/skills/video-script-builder/references/gsap-patterns.md +112 -0
  695. package/skills/video-script-builder/references/pacing-rules.md +78 -0
  696. package/skills/video-script-builder/references/quality-checklist.md +98 -0
  697. package/skills/video-script-builder/references/remotion-patterns.md +211 -0
  698. package/skills/video-script-builder/references/shader-transitions.md +115 -0
  699. package/skills/video-script-builder/references/taste-principles.md +160 -0
  700. package/skills/video-scrub/SKILL.md +216 -0
  701. package/skills/video-scrub/references/profiles.md +89 -0
  702. package/skills/video-scrub/references/residue-map.md +204 -0
  703. package/skills/video-short-maker/SKILL.md +182 -0
  704. package/skills/video-shot-analysis-feishu/SKILL.md +173 -0
  705. package/skills/video-shotcraft/SKILL.md +267 -0
  706. package/skills/video-shotcraft/docs/deepseek-harness.md +69 -0
  707. package/skills/video-shotcraft/references/aesthetic-rules.md +177 -0
  708. package/skills/video-shotcraft/references/final-review.md +112 -0
  709. package/skills/video-shotcraft/references/guided-free-creation.md +199 -0
  710. package/skills/video-shotcraft/references/jianying-export.md +182 -0
  711. package/skills/video-shotcraft/references/music-beat-sync.md +219 -0
  712. package/skills/video-shotcraft/references/pipeline.md +390 -0
  713. package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +50 -0
  714. package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +65 -0
  715. package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +37 -0
  716. package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +39 -0
  717. package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +38 -0
  718. package/skills/video-shotcraft-vincentwei10/SKILL.md +316 -0
  719. package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +187 -0
  720. package/skills/video-shotcraft-vincentwei10/references/final-review.md +116 -0
  721. package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +199 -0
  722. package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +183 -0
  723. package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +257 -0
  724. package/skills/video-shotcraft-vincentwei10/references/pipeline.md +401 -0
  725. package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +111 -0
  726. package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +50 -0
  727. package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +62 -0
  728. package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +41 -0
  729. package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +52 -0
  730. package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +39 -0
  731. package/skills/video-structure-analyzer/SKILL.md +148 -0
  732. package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +50 -0
  733. package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +19 -0
  734. package/skills/video-toolkit/SKILL.md +686 -0
  735. package/skills/videocut/SKILL.md +159 -0
  736. package/skills/videodb/SKILL.md +497 -0
  737. package/skills/videodb/reference/api-reference.md +741 -0
  738. package/skills/videodb/reference/capture-reference.md +399 -0
  739. package/skills/videodb/reference/capture.md +110 -0
  740. package/skills/videodb/reference/editor-reference.md +506 -0
  741. package/skills/videodb/reference/editor.md +389 -0
  742. package/skills/videodb/reference/generative.md +344 -0
  743. package/skills/videodb/reference/indexing-reference.md +481 -0
  744. package/skills/videodb/reference/indexing.md +537 -0
  745. package/skills/videodb/reference/legacy/index-reference.md +223 -0
  746. package/skills/videodb/reference/legacy/index.md +241 -0
  747. package/skills/videodb/reference/legacy/search.md +249 -0
  748. package/skills/videodb/reference/migration.md +113 -0
  749. package/skills/vlog-auto-edit/SKILL.md +982 -0
  750. package/skills/vlog-auto-edit/examples/project_structure.md +84 -0
  751. package/skills/vox-animated-ad-mcp/SKILL.md +419 -0
  752. package/skills/vox-director/SKILL.md +351 -0
  753. package/skills/vox-director/references/beat-layer.md +143 -0
  754. package/skills/vox-director/references/host-mode.md +120 -0
  755. package/skills/vox-director/references/local-engine.md +73 -0
  756. package/skills/vox-director/references/models-and-gotchas.md +91 -0
  757. package/skills/vox-director/references/prompt-guide.md +275 -0
  758. package/skills/vox-director/references/voices.md +59 -0
  759. package/skills/xingchen-vox-collage/SKILL.md +251 -0
  760. package/skills/xingchen-vox-collage/references/asset-layer-contract.md +98 -0
  761. package/skills/xingchen-vox-collage/references/creative-exploration.md +19 -0
  762. package/skills/xingchen-vox-collage/references/learned-branches.md +34 -0
  763. package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +77 -0
  764. package/skills/xingchen-vox-collage/references/visual-language.md +74 -0
  765. package/skills/xingchen-vox-collage/references/visual-qa.md +59 -0
  766. package/skills/youtube/SKILL.md +147 -0
  767. package/skills/youtube/references/algorithm-guide.md +59 -0
  768. package/skills/youtube/references/analytics-benchmarks.md +67 -0
  769. package/skills/youtube/references/dataforseo-integration.md +51 -0
  770. package/skills/youtube/references/monetization-guide.md +62 -0
  771. package/skills/youtube/references/repurposing-guide.md +54 -0
  772. package/skills/youtube/references/retention-scripting-guide.md +75 -0
  773. package/skills/youtube/references/seo-playbook.md +77 -0
  774. package/skills/youtube/references/shorts-playbook.md +64 -0
  775. package/skills/youtube/references/thumbnail-ctr-guide.md +73 -0
  776. package/skills/youtube-shorts-factory/SKILL.md +358 -0
  777. package/skills/youtube-shorts-factory/resources/adaptation-guide.md +133 -0
  778. package/skills/youtube-shorts-factory/resources/storyboard-template.md +271 -0
  779. package/skills/youtube-shorts-factory/resources/workflow-steps.md +139 -0
  780. package/studio/client.mjs +3 -3
  781. package/studio/server/server.mjs +31 -3
  782. package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +1 -0
  783. package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +2 -0
  784. package/studio/ui/dist/assets/apple-touch-icon-ClxQ7j-O.png +0 -0
  785. package/studio/ui/dist/assets/{es-BRUzvuoM.js → es-AqUfIkAy.js} +1 -1
  786. package/studio/ui/dist/assets/favicon-Blwx8Trs.png +0 -0
  787. package/studio/ui/dist/assets/index-C7moXjTY.css +1 -0
  788. package/studio/ui/dist/assets/index-DdU5QNpY.js +1623 -0
  789. package/studio/ui/dist/assets/{ja-Cth-uDcW.js → ja-YwiCB4QQ.js} +1 -1
  790. package/studio/ui/dist/assets/{ko-upvw591D.js → ko-CKtBPDze.js} +1 -1
  791. package/studio/ui/dist/assets/{zh-CN-BCfJFazB.js → zh-CN-DtNEwKWJ.js} +1 -1
  792. package/studio/ui/dist/index.html +4 -3
  793. package/studio/ui/dist/assets/ExportCenter-F-2vF-lQ.js +0 -1
  794. package/studio/ui/dist/assets/SettingsModal-BgVYguNu.js +0 -2
  795. package/studio/ui/dist/assets/index-Bhg-9dA3.css +0 -1
  796. package/studio/ui/dist/assets/index-CWur1Iw9.js +0 -1625
@@ -0,0 +1,234 @@
1
+ # Motion grammar: six ways to get from one picture to the next
2
+
3
+ A film that shows one good thing, then another unrelated good thing, reads as a slideshow however
4
+ well each is animated. These six mechanisms are ways to make the next picture come OUT of the
5
+ current one. They are a grammar to compose from, never presets: pick the one the story is already
6
+ asking for, and build it for that film's subject and medium.
7
+
8
+ **The default does not change.** A gentle move (a bloom, a flip, a push) is still the standard
9
+ seam (`workflows/launch-video.md`, Motion). Each mechanism below is a judgement with conditions.
10
+ If its "use it when" does not clearly hold, use the gentle move.
11
+
12
+ Three things hold for all six:
13
+
14
+ - **The destination is in place before the move starts.** The next scene is already drawn under
15
+ or behind the move, so there is never an empty frame between scenes.
16
+ - **Something is carried across**: a shape, a position, a direction of travel. That is what
17
+ separates a designed seam from a transition laid over a join.
18
+ - **One or two mechanisms a film, each used for the seams that matter.** All six in 30 seconds is
19
+ a demo reel of moves, not a story.
20
+
21
+ ## 1. Foreground as transition
22
+
23
+ Something already in the scene (a word, a mark, a shape) grows or sweeps until it covers the
24
+ frame, and when it clears the next scene is there.
25
+
26
+ - **Use it when** the covering thing is part of the story (the brand's ink, the product's mark,
27
+ the claim itself) and the two scenes share nothing else to carry across.
28
+ - **Not when** the cover would be an arbitrary shape brought in only to hide the join, or when it
29
+ would happen on every seam: the third time, it reads as a wipe preset.
30
+ - **Ours**: the type frames of the launch film (`launch3.ts`, `typeFrame` in `launchCut.ts`). Ink
31
+ blooms open from a point over the picture, the word letters itself on the page inside the
32
+ bloom, and the ink closes to a point on the NEXT picture. The bloom takes the content frame it
33
+ opens over and the one it closes onto as data (`type(lines, len, before, after)`), so the next
34
+ scene is always waiting under it.
35
+
36
+ ## 2. Persistent actor
37
+
38
+ One object keeps its identity through the whole film while the scenes change around it.
39
+
40
+ - **Use it when** the story already owns such an object (a cursor, the product's dot, a
41
+ character, a line being drawn) and it has a reason to be in every scene it visits.
42
+ - **Not when** it has to be invented for the purpose, or dragged through scenes where it does
43
+ nothing: a mascot that only watches is decoration.
44
+ - **Ours**: the ink drop in the launch template (`launchTemplate.ts`). Every press of Generate
45
+ sends a drop into the thread, where it blooms into the answer card; at the end it lifts off
46
+ Generate one last time, lands as the dot of the end card's mark, and the end card opens from
47
+ it. `motif.ts` holds it to the rule: same screen position and size on both sides of the seam,
48
+ within 2 px, or `checkRelay` throws.
49
+
50
+ - **The general move**: `engine/src/canvas-core/morph.ts`. `handoff({ from, to, t0, t1 })` carries
51
+ one outline from a source shape to a target shape: it travels, stretches a little while it is
52
+ moving, and becomes the target in the second half of the trip, landing on it exactly.
53
+ `coverShape` grows a shape until it is the whole page. Keep the object's colour and edge the
54
+ same on both sides, and hold the seam with `checkShapes` (2 px). `morphDemo.ts`: a full stop
55
+ becomes a card, the card becomes the page.
56
+
57
+ ## 3. Selection to expansion
58
+
59
+ One item in a set is picked, and it grows until it IS the next scene.
60
+
61
+ - **Use it when** the story moves from many to one: a wall of options, then the one being used;
62
+ a list, then the item opened. The viewer sees where the next scene came from.
63
+ - **Not when** the set was only there to be left (build the set because the story needs range,
64
+ not as a launch pad), or when the item's small and full-frame versions do not match: frame the
65
+ full scene's first frame exactly like the card it grew from.
66
+ - **Ours**: the style wall (`launchGallery.ts`, used in `launch2.ts`). The camera punches into
67
+ cards and comes back out; the last punch does not come back, the card fills the frame and
68
+ becomes the scene. The koi does the same from a still: `koiWorld.ts` frames its first frame
69
+ exactly like the koi plate, so the card hands over to the swimming world with no seam.
70
+
71
+ ## 4. Registered decomposition
72
+
73
+ A whole stays recognisable while its parts move into groups, each part traceable from where it
74
+ was to where it lands.
75
+
76
+ - **Use it when** the point is that the product sorts, extracts or reorganises something the
77
+ viewer has just seen: a crowded week becoming a plan, a document becoming fields.
78
+ - **Not when** the parts cannot be followed. Past about seven moving at once, or with parts that
79
+ cross paths, the viewer loses the map; stagger them, or move groups rather than items.
80
+ - **Ours**: `productUI.ts` (a `kind: "ui"` ask in the launch template). The interface is drawn
81
+ from data in two states. One press of the product's action and every item, matched by id,
82
+ springs from its place in the before state to its place in the after: rows travel to their new
83
+ slots, values count to their new numbers, new items arrive, old ones leave.
84
+
85
+ ## 5. Continuous canvas
86
+
87
+ All the scenes live in one layout bigger than the frame, and the camera travels between them
88
+ instead of cutting.
89
+
90
+ - **Use it when** the places are really related in space (sections of one page, rooms of one
91
+ building, steps along one path) and the route between them tells the viewer how.
92
+ - **Not when** the places are unrelated (the travel then invents a relationship that is not
93
+ there), or when the journey between two stops is long and empty: every second must change
94
+ (`craft-bar.md`, no dead air). One camera for every plane (`camera.md`).
95
+ - **Ours**: `webTour.ts`. Three sections on one long page, a visible cursor, and a camera that
96
+ shows the whole page, then pushes in on every click and every field. `koiWorld.ts` is the
97
+ drawn version: a pond much bigger than the frame, with the scenery placed in the world so it
98
+ changes as the fish travels.
99
+
100
+ ## 6. Exploded layers
101
+
102
+ One object separates into its layers along its depth, holds so each can be read, then closes
103
+ back into the object.
104
+
105
+ - **Use it when** what is inside is the point: how a thing is built, what a stack is made of.
106
+ The layers must be real parts of the subject, in their real order.
107
+ - **Not when** the subject has no true layers and they would be invented for the effect, or when
108
+ the pieces are not held long enough apart to be read. If it never closes again, it is a
109
+ diagram, which may be what the film wants; decide which.
110
+ - **Ours, in one direction only**: `paperCraft.ts`, the toy theatre. The scene is built from the
111
+ back, flat by flat, with real gaps between the flats: each piece travels held above the stack,
112
+ its shadow wide and far, and the shadow closes as it lands. That is the closing half. No film
113
+ of ours yet starts whole and separates; treat the opening half as unproven until one does.
114
+
115
+ ## Three ready-made seams
116
+
117
+ For a plain change of scene that still wants a made mark, `engine/src/canvas-core/transitions.ts`
118
+ has three calls. Each takes the two scenes as draw functions and a progress, at any frame size,
119
+ with the incoming scene already complete underneath. `transitionsDemo.ts` shows each once.
120
+
121
+ - **`brushWipe`**: a loaded brush pulled across; with `ink`, a band of wet ink ahead of the new
122
+ picture (without it, a clean bristled edge).
123
+ For the drawn register, in the direction the story is already moving. Not in the clean
124
+ register, and not more than once or twice a film.
125
+ - **`iris`**: a round opening from a point, or closing to one. Open it from the thing the next
126
+ scene is about, close it on the thing this one was about; centred on nothing it is only a
127
+ shape. `shape: "blot"` for ink, the plain circle for the clean register.
128
+ - **`flashCut`**: a hard cut under a short burst of light, so the hard cut's conditions apply
129
+ (a strong beat, in a piece whose energy asks for it). Never one frame, never full white by
130
+ default, never repeated quickly: declare a film's flashes to `checkFlashes`, which throws on
131
+ any two within half a second.
132
+
133
+ ## Cuts that carry motion
134
+
135
+ A hard cut between two shots that are both moving can be the smoothest seam there is, or the
136
+ roughest. The difference is arithmetic, and `engine/src/canvas-core/seams.ts` does it.
137
+
138
+ - **Both sides at rest, or both at one speed.** A cut from a moving shot to a still one (or the
139
+ other way) reads as a jerk. So does a cut where the travel turns, halves or doubles.
140
+ - **Accelerate out, cut after the fastest frame, arrive and settle.** The outgoing shot speeds up
141
+ over about 0.2 to 0.4 s; the incoming shot opens at that same speed, in that same screen
142
+ direction, and comes to rest over 0.8 to 1.4 s. The exit is the short side.
143
+ `matchedMove({ dir, exitDist, exitF, entryF })` gives both halves, to add to each scene's
144
+ camera look; the entry distance is worked out from the exit speed, so the two always agree.
145
+ The incoming shot owns the cut frame: the outgoing shot's last frame on screen is the one
146
+ before it, and that is its fastest.
147
+ - **Through the cut, in depth.** `matchedZoom({ push, exitF, entryF })` does the same for a
148
+ camera that flies into one shot and out in the next: a dolly push through the cut. A push is a
149
+ ratio, so both sides run in log space and grow at the same rate per frame across the cut. With the default push the
150
+ incoming shot opens at about two thirds of its size, so its scene must be painted that much
151
+ wider than the frame; a zoom that would open it under 0.4 is refused.
152
+ - **There is a top speed.** Past about two and a half frame widths a second
153
+ (`speedCeiling(W, fps)`), blur stops reading as motion and shows as a streak with stepped
154
+ copies. A move that needs more than that wants a shorter travel with the rest hidden behind
155
+ the cut, or a plain cut on the beat. Render fast seams with `--blur auto`.
156
+ - **Match everything, once.** Whatever crosses the cut keeps its position, size, colour and
157
+ edge; a property that flips on the cut frame pops. And the resting pose is shown once: if one
158
+ shot settles onto a pose and the next opens on it, the first shot's last frame is the move's
159
+ last in-between, never the pose itself, or the film stops, holds and goes.
160
+ - **Never dissolve two copies of one thing.** At the halfway point both are half there and the
161
+ eye sees a ghost. Move one object; change what it is at the middle of its trip.
162
+
163
+ `checkSeam(velocity before, velocity after, { W, fps })` returns what is wrong with a cut, or
164
+ nothing: one side at rest, a turn of more than 30 degrees, a speed that drops or jumps. `checkSeamPlan` reads the film's list of seams and flags a designed seam used a third
165
+ time; plain and matched cuts are exempt, and the film's one signature move gets three (the open,
166
+ the middle, the close). Use this when both scenes have room to travel the same way. When they do
167
+ not, bring both to rest and cut on a beat.
168
+
169
+ ## Dealing a hand
170
+
171
+ Left to choose, every film reaches for the same three moves. `node tools/deck.mjs deal --kind
172
+ story --energy high --seconds 27` deals a hand from `references/motion-deck.json`: an opening, a
173
+ close and a spread of seams, camera moves, reveals and acting notes, each with its numbers, its
174
+ engine call and when not to use it. The deal is weighted toward what fits the film and is
175
+ repeatable from its printed seed; `--avoid` keeps the next film off the last one's cards.
176
+
177
+ A card is a prompt, never an order. Keep it, adapt it to this film's subject and medium, or drop
178
+ it, and say which in the brief. The default at the top of this page still holds: a card whose
179
+ "not when" applies is dropped, and the gentle move takes its place.
180
+
181
+ ## Names people use
182
+
183
+ People ask for moves by the names they know: a whip pan, a mask reveal, a Vertigo shot, a J-cut.
184
+ `node tools/deck.mjs find "<name>"` routes the words to the card that builds it, to an engine call
185
+ that is not a card (an iris, a lens zoom, a typewriter), or to a refusal. Every card carries those
186
+ names in its `aka`. Run it before building anything named, so a word never turns into an
187
+ improvised effect; the card's numbers are the default unless the person gave their own
188
+ (`workflows/start-here.md`, When they name a move).
189
+
190
+ ## Names we refuse
191
+
192
+ Some names ask for an effect that breaks the contract or the craft bar. Say so in one line and
193
+ offer the alternative; `deck.mjs find` prints the same reason.
194
+
195
+ | Name | Why not | Make instead |
196
+ |---|---|---|
197
+ | glitch | colour split and torn pixels are a template overlay with no cause in the picture | a cut on the beat, or one shake on a real impact |
198
+ | light sweep | a shine sliding over chrome that nothing in the picture casts | `reveal-by-light`: the light belongs to the world |
199
+ | fade-in | marks are made, not faded or scaled up from nothing; a tell on the craft bar | drawn on, revealed from behind, or written |
200
+ | particle burst | decoration with no force behind it, never a default | `emph-contact`: dust or splash born on a real contact |
201
+ | cross dissolve | two copies of one thing read as a ghost; unrelated pictures, a slideshow join (a poster frame or a reduced-motion fallback may still dissolve) | one object moving and changing mid-trip; the gentle move |
202
+ | lens flare | lens artefacts (flare, leaks, bokeh discs) painted onto a drawing read as stock overlays | one named light in the scene, or `reveal-by-light` |
203
+
204
+ ## Callouts and the label handoff
205
+
206
+ `engine/src/canvas-core/callout.ts` names one thing in the picture: a dot lands on it, a leader
207
+ line is drawn out, a label is written at the end. The dot follows the thing as the camera moves
208
+ (pin it with `cam.toScreen`, `camera.md`); the label holds still so it can be read. It is type
209
+ over the picture, so that judgement applies in full (`workflows/launch-video.md`, Type): a calm
210
+ area, a label that names what it points at, one or two on screen at a time. Where the picture is
211
+ busy, give the label a `backing` or leave the callout out.
212
+
213
+ The label can also be the persistent actor across a seam. With `handoff`, the dot and line
214
+ retract and the label travels to where the next scene starts, landing as its heading on that
215
+ scene's first frame; the next scene draws it from there with `drawLabel` at the same pose.
216
+ `checkHandoff` holds the two sides to within 2 px and throws if the seam jumps.
217
+ `calloutDemo.ts` shows both.
218
+
219
+ ## Choosing
220
+
221
+ Ask what the seam has to tell the viewer, then take the mechanism that says it:
222
+
223
+ | The seam says | Mechanism |
224
+ |---|---|
225
+ | "and now this", with nothing shared but the brand | Foreground as transition |
226
+ | "the same thing, further along" | Persistent actor |
227
+ | "this one, out of all of those" | Selection to expansion |
228
+ | "the same things, put in order" | Registered decomposition |
229
+ | "next to that, over here" | Continuous canvas |
230
+ | "and this is what is inside" | Exploded layers |
231
+
232
+ If none of these is what the seam says, it is a plain change of scene: use the gentle move, or
233
+ a matched hard cut where its conditions hold. Review every designed seam as a before/after pair
234
+ of stills, and as a strip of the frames between them, before the film is rendered in full.
@@ -0,0 +1,388 @@
1
+ # Compose: from a brief to an original score
2
+
3
+ A style is a **vocabulary**. It gives you:
4
+ - sound: voices, levels and fx;
5
+ - groove families;
6
+ - a harmony language;
7
+ - melody rules;
8
+ - an arrangement grammar.
9
+
10
+ It never gives you notes. **You write every note**:
11
+ - the chords and their voicings;
12
+ - the bass lines;
13
+ - the motifs and lines;
14
+ - the form.
15
+
16
+ The engine refuses to fill gaps. Missing harmony, melody, grooves or form is an error that tells you
17
+ what to compose. The engine then performs, mixes and masters, deterministically, in code, and it
18
+ plays recordings of real instruments where you ask for one.
19
+
20
+ > **Never reuse shipped material.** The demos (`node tools/music.mjs list`) and our own film scores
21
+ > are listening references and the novelty corpus. They are never a film's score or a template. Don't
22
+ > copy them, transpose them or re-rhythm them. `node tools/music.mjs novelty` fails a score that
23
+ > sounds like any shipped piece, or that quotes one: a 6-note fragment (transposed or not), or an
24
+ > 8-note melody shape in any key, meter or rhythm.
25
+ >
26
+ > **Idioms are fine.** A ii-V-I, a plagal amen, a two-chord vamp, a I-bVII-IV are vocabulary. The
27
+ > style pages name them so you can use them. What is not fine is reusing the same music: a
28
+ > multi-bar progression together with its rhythm, groove, contour and form, or a quoted melody.
29
+ >
30
+ > Why this rule exists: a "new" example once changed the key, chords and pitches of the launch
31
+ > score but kept its rhythms, contour, drums and form. It was heard at once as the same song. The
32
+ > novelty fingerprint weighs exactly those things.
33
+
34
+ ## The workflow
35
+
36
+ 1. **Read the brief as numbers.** Write down:
37
+ - the use case (launch film, explainer, loop for a site, game, ad);
38
+ - the length in seconds, and whether it must loop;
39
+ - 3-5 picture beats with their times (the reveal, the claim, the cut to the end card);
40
+ - the words the person used for the feeling.
41
+ 2. **Pick one style and one mood.** Styles:
42
+ ```
43
+ node tools/music.mjs vocab
44
+ node tools/music.mjs vocab <style>
45
+ ```
46
+ For the details, see [styles/vocabularies.md](styles/vocabularies.md). The mood is a row in
47
+ `tables.ts` (see the README's mood list). Then set the five **mood controls**, each 0..1, where
48
+ 0.5 = the calibrated palette:
49
+
50
+ | Control | What it moves |
51
+ |---|---|
52
+ | `energy` | groove density, drum level, sidechain depth, dynamics |
53
+ | `warmth` | filters darker, tape drive and wow, a little more bass |
54
+ | `brightness` | filters and pluck brightness open, hats up |
55
+ | `tension` | pad detune wider, string attacks shorter, lead decays shorter |
56
+ | `space` | reverb sends, delay mix, pad release |
57
+
58
+ Controls change the sound only. Harmonic tension is yours to write (step 4). To choose the tempo,
59
+ mode, register and density that make a feeling read, see [theory/mood.md](theory/mood.md): tempo
60
+ and mode are the strongest cues, and several cues pointing the same way make the mood unmistakable.
61
+ 3. **Sketch the arc and the motif before any chord.** Write three things down:
62
+ - **The tension curve.** One number 0..1 per section: it rises, dips just before the peak (a breath
63
+ or breakdown), peaks on the picture's key frame, then releases. This becomes each section's
64
+ `energy`, its layers and its harmony (leaning chords before home).
65
+ - **The climax.** The bar, the highest note of the piece, and the chord under it (home, full layers).
66
+ - **The motif.** Its rhythm (which beats it avoids, where the long note sits), its contour (one leap,
67
+ then steps back), and how it will develop across the form: stated, sequenced, fragmented in the
68
+ build, augmented at the climax, last word at the end ([theory/melody.md](theory/melody.md)).
69
+ 4. **Compose the harmony.** Work inside the style's harmony language: its modes, chord qualities,
70
+ tendencies and voicing rule. Decide the key and mode from the mood, not from habit.
71
+ - Write a progression **for this brief**. Choose its length (2, 3, 4, 5, 6 or 8 bars) and its
72
+ harmonic rhythm (one chord per bar, two per bar, or one per two bars) on purpose.
73
+ - Voice each chord yourself. Move the voices by step and hold common tones. The bass owns the
74
+ root.
75
+ - Write each chord's bass line (one bar) in the style's bass idiom: held root, root and fifth,
76
+ walking, offbeat 8ths, a syncopated 808 figure. Make the rhythm YOURS.
77
+ - **Tension and release as a curve.** Stable (tonic), moving away (subdominant, relative,
78
+ borrowed), leaning (dominant, suspension, pedal), home. Put home on the picture's key beat. End
79
+ inner sections on half or deceptive cadences, and save the full close for the end
80
+ ([theory/harmony.md](theory/harmony.md)).
81
+ - **Spread low, close high.** No close intervals below about C3 ([theory/sound.md](theory/sound.md)).
82
+ 5. **Compose the motif(s).** A motif is 2-5 notes with its own rhythm. Invent the rhythm first:
83
+ - Which beats does it avoid?
84
+ - Does it start on an upbeat?
85
+ - Where is the long note?
86
+
87
+ Then the pitches: the contour, one leap, then steps back.
88
+
89
+ Develop the motif. Don't photocopy it:
90
+ - **repeat**, then **vary**: change the last interval, displace it by an eighth, extend it;
91
+ - **sequence**: the same shape a step or a third higher;
92
+ - **call and response**: the question ends off the tonic, the answer lands on it, or another
93
+ instrument answers;
94
+ - **fragment** it in a build, **augment** it (slower, longer notes) at the climax;
95
+ - put it in the bass for menace, or high and quiet at the close.
96
+
97
+ The phrase's high point goes in its second half. A phrase is 2 or 4 bars; a period is two phrases
98
+ (question, answer). The line must respect the style's range and density. Put chord tones on strong
99
+ beats, and put the feeling in appoggiaturas and suspensions that resolve by step.
100
+ 6. **Choose or write the groove.** Pick a family from the style's list (`bounce`, `trap`,
101
+ `brushes`, `hand`, ...). Set `density` 0..1, `variation` 0..1 and `fill` (a fill on a section's
102
+ last bar). The seed varies every bar, so no two pieces share a loop. You can also write the drum
103
+ bars yourself as notation, one or more bars per lane: `kick`, `snare`, `ghost`, `hat`, `perc`.
104
+ Use a second groove for contrast (`half`, `build`). Keep the kick and backbeat stable, and syncopate on
105
+ top of them ([theory/rhythm.md](theory/rhythm.md)).
106
+ 7. **Write the form.** Sections are `{ kind, bars, harmony, lead, counter, arp, comp, groove, bass,
107
+ chordVel, energy, repeat, stretch }`.
108
+ - The **kind** sets which layers may sound: intro, verse, groove, hook, build, half, breakdown,
109
+ drop, bridge, swell, breath, outro. See the arrangement grammar in vocabularies.md.
110
+ - Lines sound only where you write them.
111
+ - Land each section change on a picture beat. At `bpm`, a bar lasts `beatsPerBar x 60 / bpm`
112
+ seconds, and at 30 fps a beat is `1800 / bpm` frames.
113
+ - Mark one section `stretch: true`: a film fit repeats or drops it to reach the exact length and
114
+ still end on your outro.
115
+ - **Music that must hit exact picture moments** (a drop on the reveal at 16.0 s): compose it to
116
+ the length (bars x beats x 60 / bpm) and render without `--fit`, or use the beat-grid mode the
117
+ launch films use (`gridScore` in `launchTemplate.ts`: the score plays at the film's bpm exactly
118
+ and the cuts sit on its downbeats). `--fit` keeps your tempo when the form already ends within
119
+ max(0.5 s, one beat) of the length, and the tail takes up the difference. Past that it changes
120
+ the tempo, and every hit moves with it.
121
+ - Song and cue forms, builds, and orchestration slots: [theory/form.md](theory/form.md).
122
+ 8. **Revise with craft, before you render.** `craft` reads the notes in milliseconds:
123
+ ```
124
+ node tools/music.mjs craft <file>.ts#<export>
125
+ ```
126
+ - It prints scores (0..1) for melody, harmony, rhythm, tension and mood, the tension curve per
127
+ section and per bar, and each section's cadence.
128
+ - Each `CRAFT` line names what it saw, where (bar and beat), and a fix.
129
+ - Loop: read the findings, revise the notes, run `craft` again. Stop when every remaining
130
+ finding is one you chose on purpose (an open ending for suspense, parallel fifths in rock). Say
131
+ which ones in your note to the person.
132
+ - Compare the printed tension curve with your sketch from step 3. If the peak is not where you
133
+ planned it, the arrangement is wrong, not the sketch. The line under the curve says what drives
134
+ each section (loudness, density, register, harmony): loudness and density weigh most, so a
135
+ home-chord tutti or a drop is the peak ([theory/harmony.md](theory/harmony.md), section 8).
136
+
137
+ | `craft` says | Usual fix |
138
+ |---|---|
139
+ | leaps keep going the same way | turn back by step after a leap |
140
+ | nothing comes back / exact copies | develop one motif: sequence, vary the last interval, fragment |
141
+ | phrases don't end on chord tones | land answers on 1, 3 or 5; keep one open question |
142
+ | the melody peaks early | move the highest note to the second half, on the key frame |
143
+ | parallel 5ths (common-practice idiom) | contrary motion; hold the common tone |
144
+ | close intervals below their low limit | spread the voicing: 1-5-3', or lift the upper note an octave |
145
+ | melody under the chords | voice the chords lower, or the melody higher |
146
+ | no syncopation (groove idiom) | anticipate a bass or melody note by an eighth |
147
+ | flat tension curve / no release | change layers, loudness (`energy`), register and harmony by section; release after the peak (a loop, ambient or calm piece may stay level: a note, not a warning) |
148
+ | mood cues (tempo, mode, register, density) | move the cue toward the mood, or declare the mood you wrote |
149
+ 9. **Check, render, listen:**
150
+ ```
151
+ node tools/music.mjs check <file>.ts#<export> [--fit --seconds 62] # EVERYTHING, must PASS (below)
152
+ node tools/music.mjs render <file>.ts#<export> out.mp3 --stems # the file, plus the same report
153
+ node tools/music.mjs novelty <a>.ts#x <b>.ts#y # several scores: vs shipped AND pairwise
154
+ node tools/music.mjs score <file>.ts#<export> # the text score, bar by bar
155
+ ```
156
+ `check` runs everything:
157
+ - key/mode problems and composer warnings (for example, a line shorter than its section);
158
+ - the master: loudness vs target, true peak, and a note when the -1 dBTP ceiling stopped the
159
+ gain short;
160
+ - the **ghost, reverb and masking guards**;
161
+ - the stems;
162
+ - craft (the step-8 report, with brightness measured from the render; only an unplayable range fails);
163
+ - novelty.
164
+
165
+ It exits non-zero on any failure. `render` prints the same report (stems with `--stems`), except
166
+ novelty. Both synthesize each voice once, on all but one of your cores, and render the guards and
167
+ the stems in parallel with the mix: the audio is bit-identical to a serial render (`render
168
+ --verify` renders again serially and compares; `ANIDOODLE_THREADS=1` turns the pool off).
169
+ - **Stems:** fix any part flagged more than 3 dB off with `levels`. `levels` is a **dB offset** per
170
+ slot (+2 = two dB louder), added on top of the calibrated gain, the trims and the mood controls'
171
+ shifts, on the same scale as your own voice's `gainDb`. LUFS alone once hid a sub 7-10 dB too hot.
172
+ - **When the guards and the stems disagree, the guards win.** If masking fails (the melody isn't
173
+ heard), raise the lead. The stem meter lets the lead sit up to +3 dB above its tolerance for
174
+ this. You can also lower or thin what sits in the melody's register. Mood controls shift the
175
+ stem targets with the sound (for example, brightness lifts the hats and their target); the
176
+ printed targets already include that.
177
+ - **Master short of target:** a gentle master (-16 LUFS) never compresses. If one peak blocks the
178
+ gain, the whole piece stays quieter, and `check` says by how much, where the peak is (bar, beat
179
+ and seconds) and which parts pile up there, loudest first, with the notes they are playing.
180
+ Fix it in the notes at that spot: stagger the bass under that downbeat, roll the big chord, don't
181
+ double the climax note.
182
+ - **Novelty:** if it fails, change what the numbers point at. Changing the key fixes nothing.
183
+ Each feature is a bag of n-grams compared by cosine (0 = nothing shared, 1 = the same); the
184
+ score is their weighted mean, and it fails above 0.5:
185
+
186
+ | Feature | Weight | What it counts |
187
+ |---|---|---|
188
+ | `melodyRhythm` | 0.20 | the lead's onset positions in each bar, and its inter-onset-interval trigrams |
189
+ | `melodyContour` | 0.15 | the lead's up / down / same 4-grams |
190
+ | `melodyIntervals` | 0.10 | the lead's interval trigrams, in semitones (transposition-free) |
191
+ | `lineRhythm` | 0.15 | the counter line's rhythm plus the bass's rhythm (bar positions and inter-onset trigrams of each) |
192
+ | `drums` | 0.15 | each drum part's hit positions per bar |
193
+ | `chords` | 0.10 | chord-function trigrams: each root against the key, with its quality |
194
+ | `qualities` | 0.07 | chord-quality trigrams (maj7, min, dom, sus ...) |
195
+ | `form` | 0.08 | the order of section kinds, in pairs |
196
+
197
+ The lead is the top note of each onset of the melody part. Bar positions depend on the meter;
198
+ the inter-onset trigrams, the contour, the intervals and both quote gates do not. Two gates fail
199
+ outright whatever the score: a **6-note fragment** of a shipped melody (its intervals and
200
+ durations, in any key), and an **8-note melody shape** (its intervals alone, in any key, meter
201
+ or rhythm: a quote re-barred into 5/4 or stretched is still the tune). Only distinctive shapes
202
+ count (three or more different intervals, a leap of a third or more, at most three repeated
203
+ notes), so a scale run is never a quote.
204
+ - **Listen:** the person hears it before it is used. Meters prove you aren't obviously wrong.
205
+ Only an ear says right. For a **loop**, deliver a `.wav`: mp3 adds encoder padding, so it clicks
206
+ or gaps at the loop point.
207
+
208
+ ## Recorded instruments
209
+
210
+ Eight acoustic parts play recordings of the real thing when the sound pack is installed: `piano`
211
+ (and `piano` with `variant: "upright"`), `harp`, `marimba`, `vibes`, `glockenspiel`, `bell` with
212
+ `variant: "tubular"`, and `timpani`. Strings, guitar, bass, brass, woodwinds, choir, celesta, music
213
+ box, the electric pianos and the acoustic drum kit stay modeled either way, and every score plays
214
+ without the pack.
215
+
216
+ Four things decide what you write:
217
+
218
+ - **Stay inside the range, or the render throws.** The grand reaches A0; the timpani stops at B3;
219
+ the vibraphone starts at F3 and the glockenspiel at G5. The full table is in
220
+ [README.md](README.md#recorded-instruments-the-optional-sound-pack).
221
+ - **A recorded note decays the way that instrument decays.** A low grand note rings for tens of
222
+ seconds. Do not write a dense texture under it and expect the tail to get out of the way.
223
+ - **The piano has a real pedal.** `sus` zones sound while the dampers are lifted, so the pedal
224
+ changes `perform.ts` already writes just after each harmony change are audible, and a chord left
225
+ ringing under the next one is what a real player does. `opts: { pedal: false }` holds the pedal.
226
+ - **A real marimba's low notes are rich.** D2 to C4 carries as much as its top. Keep a bass line out
227
+ of the melody's register instead of reaching down for a note that will not sit under a tune.
228
+
229
+ Two options go in a part's `opts`:
230
+
231
+ | Option | What it does |
232
+ |---|---|
233
+ | `variant: "upright"` / `variant: "tubular"` | picks the second recording of that instrument |
234
+ | `sampled: false` | keeps the modeled voice for that part, whatever is installed |
235
+
236
+ `node tools/music.mjs check` prints the split, so read it before you believe the instrument table:
237
+
238
+ ```
239
+ voices recordings: lead (piano), accomp (piano.upright); modeled: bass (bass), drums (kick)
240
+ ```
241
+
242
+ A part you expected to be recorded and find modeled is either out of range or opted out. Both are
243
+ yours to fix; neither is a silent fallback.
244
+
245
+ ## The material format
246
+
247
+ Write the score in the film's own file, next to the film module: `src/canvas-core/<film>Score.ts`
248
+ in a scaffolded project (`engine/src/canvas-core/<film>Score.ts` inside the skill), and export it:
249
+
250
+ ```ts
251
+ import type { Material } from "./music";
252
+ export const score = (): Material => ({
253
+ style: "<style id>", title: "<this film's score>", seed: <any integer>, mood: "<mood id>",
254
+ bpm: <tempo in the style's range>, key: "<tonic>", mode: "<mode id>", meter: "<meter>",
255
+ moodControls: { energy: <0..1>, warmth: <0..1>, brightness: <0..1>, tension: <0..1>, space: <0..1> },
256
+ swing: <0.5 straight .. 0.67 hard>, dyn: [<start 0..1>, <end 0..1>], tail: <seconds of ring-out>,
257
+ chords: { "<name>": { voicing: "[<note> <note> <note>]", bass: "<one bar of notation>" }, /* ... */ },
258
+ motifs: { "<motif>": "<one or more bars of notation>", /* your variations are motifs too */ },
259
+ grooves: { main: { family: "<family>", density: <0..1>, variation: <0..1> }, half: { family: "<family>" } },
260
+ sections: [
261
+ { kind: "intro", bars: <n>, harmony: ["<chord>", /* per bar, cycled */], chordVel: <0..1> },
262
+ { kind: "hook", bars: <n>, harmony: [/* ... */], lead: ["<motif>", "<motif variant>", "r:<beats>"], stretch: true, energy: <0..1> },
263
+ { kind: "groove", bars: <n>, harmony: [/* ... */], lead: ["<2-bar motif>"], loopLines: true },
264
+ { kind: "verse", bars: <n>, harmony: ["<chord>", "~"], comp: ["x:1 r:.5 x:.5 r:2"] }, // held over the bar line; a comped rhythm
265
+ { kind: "bridge", bars: <n>, key: "<new tonic>", mode: "<mode>", harmony: [/* in the new key */], lead: [/* ... */] },
266
+ /* ... */
267
+ { kind: "outro", bars: <n>, harmony: ["<home chord>"], lead: ["<the motif's last word>"] },
268
+ ],
269
+ });
270
+ ```
271
+
272
+ A film plays it with `filmScore(score(), fps, frames)` from `canvas-core/score.ts`. That fits your
273
+ form to the exact length. `score.ts` is an empty skeleton to copy.
274
+
275
+ - **Voices:** `voices: { lead: "<alternate name>" }` swaps a slot for one of the style's
276
+ alternates. Or give your own `{ inst, role, opts }` (instruments: README table), with the slot's
277
+ role: `chords` and `arp` are `"accomp"`, `lead` is `"melody"`, `counter` is `"color"`, `bass` is
278
+ `"bass"`, drum lanes are `"drum"`. **Levels are one scale.** The palette voice, an alternate and
279
+ your own voice all sit at the slot's stem target (the column in
280
+ [styles/vocabularies.md](styles/vocabularies.md), fix included): alternates carry a measured trim,
281
+ and your own voice is placed from its instrument's measured level in the register your notes
282
+ play in. So leave your voice's `gainDb` out (0 = at the target) and set it, like `levels`, only
283
+ as an offset: `gainDb: 2` is two dB over. Then read `check`'s stems and adjust by the dB it
284
+ prints. Options (`attack`, `bright`, `drive`) move the level a little; a piano far up its range
285
+ is quiet by nature. `variant` and `sampled` are the two options that change which sound you get,
286
+ and they are in [Recorded instruments](#recorded-instruments) above.
287
+ - **Loops:** `loop: true`, and the form length is the loop. `render` makes it seamless.
288
+ - **Split bars:** `harmony: ["<chord> <chord>"]` splits a bar where the meter divides, not at its
289
+ arithmetic middle. Give that section a `bass` override for it.
290
+
291
+ | Meter | 2 chords | 3 chords |
292
+ |---|---|---|
293
+ | 2/4 | 1 + 1 | even |
294
+ | 3/4 | 2 + 1 (the change on beat 3) | 1 + 1 + 1 |
295
+ | 4/4 | 2 + 2 | 2 + 1 + 1 |
296
+ | 5/4 | 3 + 2 | 2 + 1 + 2 |
297
+ | 6/8 | 1 + 1 (3 + 3 eighths) | even |
298
+ | 7/8 | 2 + 1.5 (4 + 3 eighths) | 1 + 1 + 1.5 (2 + 2 + 3) |
299
+ | 9/8 | 2 + 1 | 1 + 1 + 1 |
300
+ | 12/8 | 2 + 2 | 2 + 1 + 1 |
301
+
302
+ Beats are the meter's beats (in 6/8, 9/8 and 12/8 a dotted quarter). To feel the bar another
303
+ way, set the piece's `grouping` (for example `grouping: [2, 3]` for a 5/4 felt 2 + 3): a split
304
+ into as many chords as it has groups follows it. Or give each chord its beats: `"Dm9:1 G13:2"`.
305
+ - **Held chords:** `"~"` holds the chord before it over the bar line, with no restrike, so a pad
306
+ never dips at the bar line: `harmony: ["Cmaj9", "~", "Am9", "~"]` is two chords of two bars each.
307
+ `"~ G13"` holds into the bar, then changes. The bass keeps its own line under a held chord (the
308
+ chord's bass line plays again). To tie the bass too, write that bar of the section's `bass` as `"~"`.
309
+ - **Comping:** a section's `comp` gives the chord part a rhythm, one bar per item, cycled over the
310
+ section. `x:DUR` strikes the chord sounding at that point, `r:DUR` rests, `x:DUR@0.7` accents, and
311
+ a bar may start with `~:DUR` to hold the last strike over the bar line (a pushed chord):
312
+ `comp: ["x:1 r:.5 x:.5 r:1 x:1", "r:3.5 x:.5", "~:1 r:1 x:2"]`. A comp bar must add up to the bar.
313
+ Without `comp`, each chord sounds for its whole span.
314
+ - **A silent chord:** `voicing: "r"` makes the chord part rest while the chord still names the
315
+ harmony: the key check, `craft`, novelty and the bass all read it. Use it for a bar that the bass
316
+ or an arp states alone, or a stop-time break.
317
+ - **Lines play once.** `lead`, `counter` and `arp` start at the section's first bar and play ONCE,
318
+ even though `harmony` cycles. A shorter line leaves rests, and `check` warns. Set
319
+ `loopLines: true` to repeat the line until the section is full. `repeat: n` replays the whole
320
+ section, lines included.
321
+ - **Section `energy`** (0..1, 0.5 = as written) sets the section's dynamics for every part,
322
+ hand-written lines included. It scales velocity from 0.55x to 1.45x, roughly -5 to +3 dB. It
323
+ also sets the density of generated grooves.
324
+ - **`dyn`** is the whole piece's dynamic level `[start, end]`, ramped (default `[0.62, 0.66]`).
325
+ `swing` and `tail` default to the style's lower swing bound and 3.2 s.
326
+ - **Modulation:** give a section its own `key` and `mode`. The key check then reads each key region
327
+ on its own. A lift of a step for the last chorus is fine when that section declares the new key.
328
+ - **The key check weighs the tonic.** It accepts your declared tonic and mode when the mode's scale
329
+ explains the notes as well as any other reading, and the tonic is heard (at least 8 % of note
330
+ time). A lydian or dorian passage whose notes lean on another degree gets read as that degree's
331
+ major. Put the bass on the tonic at section starts and cadences, and state the mode's colour note.
332
+ - **Written drums:**
333
+ - A `LiteralGroove` gives notation bars per lane (`kick`, `snare`, `ghost`, `hat`, `perc`).
334
+ - The bars cycle from each section's first bar; `cycle: "piece"` cycles on the piece's bar count
335
+ instead.
336
+ - Unpitched drums ignore the written pitch: write `C4`.
337
+ - A timpani in a drum lane (orchestral, choral, suspense, world) is tuned to the tonic of `key`,
338
+ generated grooves included (`epic`).
339
+
340
+ **Notation** (bar-checked; a bar that doesn't add up throws, the last bar too: a line that ends
341
+ mid-bar writes its rest, `C2:3 r:1`, never a silent gap):
342
+ - A token is `NOTE:DUR[@VEL]` (a pitch name with an octave, e.g. `F#4`), `[NOTE NOTE ...]:DUR` (a
343
+ chord) or `r:DUR` (a rest).
344
+ - Bars are separated by `|`, or given as array items.
345
+ - Durations are in beats. In 6/8, 9/8 and 12/8 a beat is a dotted quarter, so an eighth is `1/3`.
346
+ In 7/8 a beat is a quarter, so an eighth is `.5` and a bar is 3.5.
347
+ - `@VEL` scales the line's velocity (0..1).
348
+ - In a hand-written piece, a one-bar sting on any beat says so: `line(t, "G6:1", { ..., hit: true })`.
349
+
350
+ ## What makes it beautiful (check before you call it done)
351
+
352
+ - [ ] **One idea, developed.** One motif, heard 6-12 times, never the same way twice. A second idea
353
+ answers or contrasts it.
354
+ - [ ] **A line you could sing.** Mostly steps, leaps that turn back, arches, and one high point per
355
+ phrase group in its second half.
356
+ - [ ] **Questions and answers.** Phrases in 2s and 4s. Questions end open, answers end home.
357
+ - [ ] **Feeling in the dissonance.** Chord tones on the beats. An appoggiatura or suspension where
358
+ the picture needs an ache, resolved down by step.
359
+ - [ ] **Harmony that moves smoothly.** Common tones held, voices by step, the bass contrary to the
360
+ tune, the low end spread.
361
+ - [ ] **A groove that breathes.** An anchored kick and backbeat, syncopation on top, rests in the
362
+ melody, a fill only at section ends.
363
+ - [ ] **An arc.** Contrast by section in density, register, harmonic rhythm and groove. A dip
364
+ before the peak, the peak on the key frame, then release.
365
+ - [ ] **Cadences on picture beats.** The claim, the reveal and the logo each get a structural
366
+ downbeat.
367
+ - [ ] **An ending on a phrase:** a held home chord with the motif's last word, a button, or (suspense
368
+ only) an unresolved hold.
369
+ - [ ] **Mood cues aligned.** Tempo, mode, register, density, articulation and brightness all point
370
+ at the words. If a listener names a different emotion, the choice was wrong, not the listener.
371
+ - [ ] **Breadth.** Across projects, vary the meter, harmonic rhythm, groove family and form length.
372
+ Two scores for two products should not be siblings.
373
+
374
+ ## What checks what
375
+
376
+ | Check | Runs in | Fails when |
377
+ |---|---|---|
378
+ | key/mode (`planProblems`) | `check`, `render` | a key region's notes don't support its declared tonic and mode |
379
+ | composer warnings | `check`, `render` | (warns only) a line is shorter than its section, ... |
380
+ | master | `check`, `render` | (notes only) the peak ceiling stopped the gain short of the target |
381
+ | ghost guard | `check`, `render` | 4-bar windows are formless (few onsets, sustained, wet, no cadence) |
382
+ | reverb guard | `check`, `render` | the late tail sits within 10 dB of the dry sound |
383
+ | masking guard | `check`, `render` | the melody doesn't clear the other parts in 500 Hz-4 kHz |
384
+ | stems | `check`, `render --stems`, `stems` | a part is more than 3 dB off target (lead: up to +6 dB allowed); advisory for uncalibrated styles |
385
+ | craft | `craft`, `check` | (advisory scores and fixes) melody, harmony, rhythm, tension, mood fit; fails only on a note an acoustic instrument cannot play |
386
+ | novelty | `check`, `novelty` | similarity above 0.5 to a shipped piece (or to each other), a reused 6-note melody fragment, or an 8-note melody shape in any key, meter or rhythm |
387
+
388
+ `tools/music-unit.mjs` keeps the engine honest: determinism, no defaults, every vocabulary renders.