dsh-hyperframes 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. package/README.en.md +52 -6
  2. package/README.md +51 -7
  3. package/lib/index.d.ts +8 -41
  4. package/lib/index.js +38 -99
  5. package/lib/skill-bundle.d.ts +56 -0
  6. package/lib/skill-bundle.js +218 -0
  7. package/package.json +1 -1
  8. package/skills/embedded-captions/CATALOG.md +91 -0
  9. package/skills/embedded-captions/SKILL.md +258 -0
  10. package/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  11. package/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  12. package/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  13. package/skills/embedded-captions/dna/README.md +148 -0
  14. package/skills/embedded-captions/dna/chrome.json +68 -0
  15. package/skills/embedded-captions/dna/cream.json +69 -0
  16. package/skills/embedded-captions/dna/documentary.json +62 -0
  17. package/skills/embedded-captions/dna/editorial.json +70 -0
  18. package/skills/embedded-captions/dna/glitch.json +82 -0
  19. package/skills/embedded-captions/dna/ink.json +65 -0
  20. package/skills/embedded-captions/dna/keynote.json +62 -0
  21. package/skills/embedded-captions/dna/loud.json +75 -0
  22. package/skills/embedded-captions/dna/neon.json +58 -0
  23. package/skills/embedded-captions/dna/velocity.json +89 -0
  24. package/skills/embedded-captions/modes/cinematic/README.md +48 -0
  25. package/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  26. package/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  27. package/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  28. package/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  29. package/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  30. package/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  31. package/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  32. package/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  33. package/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  34. package/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  35. package/skills/embedded-captions/modes/standard/_motion.md +192 -0
  36. package/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  37. package/skills/embedded-captions/modes/standard/fonts/files/anton-latin-400-normal.woff2 +0 -0
  38. package/skills/embedded-captions/modes/standard/fonts/files/audiowide-latin-400-normal.woff2 +0 -0
  39. package/skills/embedded-captions/modes/standard/fonts/files/baloo-2-latin-400-normal.woff2 +0 -0
  40. package/skills/embedded-captions/modes/standard/fonts/files/baloo-2-latin-700-normal.woff2 +0 -0
  41. package/skills/embedded-captions/modes/standard/fonts/files/bangers-latin-400-normal.woff2 +0 -0
  42. package/skills/embedded-captions/modes/standard/fonts/files/bodoni-moda-latin-400-normal.woff2 +0 -0
  43. package/skills/embedded-captions/modes/standard/fonts/files/bodoni-moda-latin-700-normal.woff2 +0 -0
  44. package/skills/embedded-captions/modes/standard/fonts/files/caveat-latin-400-normal.woff2 +0 -0
  45. package/skills/embedded-captions/modes/standard/fonts/files/caveat-latin-700-normal.woff2 +0 -0
  46. package/skills/embedded-captions/modes/standard/fonts/files/chakra-petch-latin-500-normal.woff2 +0 -0
  47. package/skills/embedded-captions/modes/standard/fonts/files/chakra-petch-latin-700-normal.woff2 +0 -0
  48. package/skills/embedded-captions/modes/standard/fonts/files/cinzel-latin-400-normal.woff2 +0 -0
  49. package/skills/embedded-captions/modes/standard/fonts/files/cinzel-latin-700-normal.woff2 +0 -0
  50. package/skills/embedded-captions/modes/standard/fonts/files/cormorant-garamond-latin-400-normal.woff2 +0 -0
  51. package/skills/embedded-captions/modes/standard/fonts/files/cormorant-garamond-latin-700-normal.woff2 +0 -0
  52. package/skills/embedded-captions/modes/standard/fonts/files/creepster-latin-400-normal.woff2 +0 -0
  53. package/skills/embedded-captions/modes/standard/fonts/files/fredoka-latin-400-normal.woff2 +0 -0
  54. package/skills/embedded-captions/modes/standard/fonts/files/fredoka-latin-700-normal.woff2 +0 -0
  55. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-400-normal.woff2 +0 -0
  56. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-500-italic.woff2 +0 -0
  57. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-500-normal.woff2 +0 -0
  58. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-600-italic.woff2 +0 -0
  59. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-600-normal.woff2 +0 -0
  60. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-700-normal.woff2 +0 -0
  61. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-800-normal.woff2 +0 -0
  62. package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-900-normal.woff2 +0 -0
  63. package/skills/embedded-captions/modes/standard/fonts/files/monoton-latin-400-normal.woff2 +0 -0
  64. package/skills/embedded-captions/modes/standard/fonts/files/orbitron-latin-400-normal.woff2 +0 -0
  65. package/skills/embedded-captions/modes/standard/fonts/files/orbitron-latin-700-normal.woff2 +0 -0
  66. package/skills/embedded-captions/modes/standard/fonts/files/permanent-marker-latin-400-normal.woff2 +0 -0
  67. package/skills/embedded-captions/modes/standard/fonts/files/press-start-2p-latin-400-normal.woff2 +0 -0
  68. package/skills/embedded-captions/modes/standard/fonts/files/rajdhani-latin-500-normal.woff2 +0 -0
  69. package/skills/embedded-captions/modes/standard/fonts/files/rajdhani-latin-700-normal.woff2 +0 -0
  70. package/skills/embedded-captions/modes/standard/fonts/files/saira-stencil-one-latin-400-normal.woff2 +0 -0
  71. package/skills/embedded-captions/modes/standard/fonts/files/shippori-mincho-latin-400-normal.woff2 +0 -0
  72. package/skills/embedded-captions/modes/standard/fonts/files/shippori-mincho-latin-700-normal.woff2 +0 -0
  73. package/skills/embedded-captions/modes/standard/fonts/files/sora-latin-400-normal.woff2 +0 -0
  74. package/skills/embedded-captions/modes/standard/fonts/files/sora-latin-700-normal.woff2 +0 -0
  75. package/skills/embedded-captions/modes/standard/fonts/files/space-grotesk-latin-400-normal.woff2 +0 -0
  76. package/skills/embedded-captions/modes/standard/fonts/files/space-grotesk-latin-700-normal.woff2 +0 -0
  77. package/skills/embedded-captions/modes/standard/fonts/files/special-elite-latin-400-normal.woff2 +0 -0
  78. package/skills/embedded-captions/modes/standard/fonts/files/teko-latin-400-normal.woff2 +0 -0
  79. package/skills/embedded-captions/modes/standard/fonts/files/teko-latin-700-normal.woff2 +0 -0
  80. package/skills/embedded-captions/modes/standard/fonts/files/vt323-latin-400-normal.woff2 +0 -0
  81. package/skills/embedded-captions/modes/standard/fonts/fonts.css +401 -0
  82. package/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  83. package/skills/embedded-captions/references/anti-patterns.md +188 -0
  84. package/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  85. package/skills/embedded-captions/references/caption-grouping.md +130 -0
  86. package/skills/embedded-captions/references/composition-craft.md +522 -0
  87. package/skills/embedded-captions/references/direction-catalog.md +138 -0
  88. package/skills/embedded-captions/references/example-renders/champion.html +371 -0
  89. package/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  90. package/skills/embedded-captions/references/failure-modes.md +145 -0
  91. package/skills/embedded-captions/references/layout-heuristics.md +238 -0
  92. package/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  93. package/skills/embedded-captions/references/rail.md +68 -0
  94. package/skills/embedded-captions/references/reference-bar.md +47 -0
  95. package/skills/embedded-captions/references/scene-types.md +94 -0
  96. package/skills/embedded-captions/references/typographic-moves.md +266 -0
  97. package/skills/embedded-captions/references/typography-presets.md +63 -0
  98. package/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  99. package/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  100. package/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  101. package/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  102. package/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  103. package/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  104. package/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  105. package/skills/embedded-captions/scripts/gen-stroke-path.py +57 -0
  106. package/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  107. package/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  108. package/skills/embedded-captions/scripts/make-cinematic.cjs +1206 -0
  109. package/skills/embedded-captions/scripts/make-composition.cjs +405 -0
  110. package/skills/embedded-captions/scripts/make-theme.cjs +8585 -0
  111. package/skills/embedded-captions/scripts/matte.cjs +280 -0
  112. package/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  113. package/skills/embedded-captions/scripts/prepare.sh +39 -0
  114. package/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  115. package/skills/embedded-captions/scripts/render-and-composite.sh +469 -0
  116. package/skills/embedded-captions/scripts/render-theme.sh +34 -0
  117. package/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  118. package/skills/embedded-captions/scripts/transcribe.cjs +332 -0
  119. package/skills/embedded-captions/themes/README.md +243 -0
  120. package/skills/embedded-captions/themes/anchor.json +27 -0
  121. package/skills/embedded-captions/themes/arcade.json +51 -0
  122. package/skills/embedded-captions/themes/aurora.json +41 -0
  123. package/skills/embedded-captions/themes/biolume.json +35 -0
  124. package/skills/embedded-captions/themes/brush.json +74 -0
  125. package/skills/embedded-captions/themes/chalkboard.json +52 -0
  126. package/skills/embedded-captions/themes/dossier.json +56 -0
  127. package/skills/embedded-captions/themes/graffiti.json +62 -0
  128. package/skills/embedded-captions/themes/hologram.json +41 -0
  129. package/skills/embedded-captions/themes/inkwater.json +43 -0
  130. package/skills/embedded-captions/themes/laser.json +46 -0
  131. package/skills/embedded-captions/themes/lastpage.json +33 -0
  132. package/skills/embedded-captions/themes/neonsign.json +53 -0
  133. package/skills/embedded-captions/themes/ordnance.json +54 -0
  134. package/skills/embedded-captions/themes/papercut.json +37 -0
  135. package/skills/embedded-captions/themes/popup.json +46 -0
  136. package/skills/embedded-captions/themes/ransom.json +62 -0
  137. package/skills/embedded-captions/themes/scoreboard.json +54 -0
  138. package/skills/embedded-captions/themes/spectrum.json +46 -0
  139. package/skills/embedded-captions/themes/stardust.json +29 -0
  140. package/skills/embedded-captions/themes/stomp.json +43 -0
  141. package/skills/embedded-captions/themes/terminal.json +49 -0
  142. package/skills/embedded-captions/themes/thunder.json +44 -0
  143. package/skills/embedded-captions/themes/transit.json +44 -0
  144. package/skills/embedded-captions/themes/vhs.json +47 -0
  145. package/skills/faceless-explainer/SKILL.md +233 -0
  146. package/skills/faceless-explainer/references/cut-catalog.md +215 -0
  147. package/skills/faceless-explainer/references/motion-language.md +156 -0
  148. package/skills/faceless-explainer/references/story-design.md +255 -0
  149. package/skills/faceless-explainer/references/visual-design.md +146 -0
  150. package/skills/faceless-explainer/scripts/assemble-index.mjs +623 -0
  151. package/skills/faceless-explainer/scripts/assemble-index.test.mjs +72 -0
  152. package/skills/faceless-explainer/scripts/audio.mjs +291 -0
  153. package/skills/faceless-explainer/scripts/audio.test.mjs +176 -0
  154. package/skills/faceless-explainer/scripts/build-frame.mjs +551 -0
  155. package/skills/faceless-explainer/scripts/captions.mjs +521 -0
  156. package/skills/faceless-explainer/scripts/captions.test.mjs +219 -0
  157. package/skills/faceless-explainer/scripts/frame-packets.mjs +27 -0
  158. package/skills/faceless-explainer/scripts/frame-packets.test.mjs +66 -0
  159. package/skills/faceless-explainer/scripts/lib/assets.mjs +56 -0
  160. package/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  161. package/skills/faceless-explainer/scripts/lib/pad-frame-duration.mjs +36 -0
  162. package/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  163. package/skills/faceless-explainer/scripts/lib/tokens.mjs +211 -0
  164. package/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  165. package/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  166. package/skills/faceless-explainer/scripts/transitions.mjs +383 -0
  167. package/skills/faceless-explainer/scripts/transitions.test.mjs +68 -0
  168. package/skills/faceless-explainer/sub-agents/frame-worker.md +12 -0
  169. package/skills/figma/SKILL.md +132 -0
  170. package/skills/figma/scripts/verify-motion.mjs +153 -0
  171. package/skills/general-video/SKILL.md +165 -0
  172. package/skills/general-video/scripts/frame-packets.mjs +38 -0
  173. package/skills/general-video/scripts/frame-packets.test.mjs +80 -0
  174. package/skills/general-video/sub-agents/frame-worker.md +34 -0
  175. package/skills/hyperframes/SKILL.md +98 -337
  176. package/skills/hyperframes/references/capability-menu.md +47 -0
  177. package/skills/hyperframes/references/intent-interview.md +71 -0
  178. package/skills/hyperframes/references/pitch-round.md +40 -0
  179. package/skills/hyperframes/references/route-briefs.md +11 -0
  180. package/skills/hyperframes/references/routes/embedded-captions.md +11 -0
  181. package/skills/hyperframes/references/routes/faceless-explainer.md +12 -0
  182. package/skills/hyperframes/references/routes/general-video.md +12 -0
  183. package/skills/hyperframes/references/routes/motion-graphics.md +11 -0
  184. package/skills/hyperframes/references/routes/music-to-video.md +12 -0
  185. package/skills/hyperframes/references/routes/pr-to-video.md +28 -0
  186. package/skills/hyperframes/references/routes/product-launch-video.md +13 -0
  187. package/skills/hyperframes/references/routes/remotion-to-hyperframes.md +9 -0
  188. package/skills/hyperframes/references/routes/slideshow.md +11 -0
  189. package/skills/hyperframes/references/routes/talking-head-recut.md +11 -0
  190. package/skills/hyperframes/references/skill-lifecycle.md +33 -0
  191. package/skills/hyperframes/references/workflow-catalog.md +10 -0
  192. package/skills/hyperframes-animation/SKILL.md +84 -0
  193. package/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  194. package/skills/hyperframes-animation/adapters/animejs.md +130 -0
  195. package/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  196. package/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +199 -0
  197. package/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  198. package/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +129 -0
  199. package/skills/hyperframes-animation/adapters/gsap.md +105 -0
  200. package/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  201. package/skills/hyperframes-animation/adapters/lottie.md +117 -0
  202. package/skills/hyperframes-animation/adapters/three.md +131 -0
  203. package/skills/hyperframes-animation/adapters/typegpu.md +182 -0
  204. package/skills/hyperframes-animation/adapters/waapi.md +101 -0
  205. package/skills/hyperframes-animation/blueprints/agent-progress-theater.md +76 -0
  206. package/skills/hyperframes-animation/blueprints/camera-journey.md +61 -0
  207. package/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  208. package/skills/hyperframes-animation/blueprints/constellation-hub.md +63 -0
  209. package/skills/hyperframes-animation/blueprints/cta-morph-press.md +63 -0
  210. package/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +89 -0
  211. package/skills/hyperframes-animation/blueprints/dataviz-countup.md +59 -0
  212. package/skills/hyperframes-animation/blueprints/device-surface-showcase.md +68 -0
  213. package/skills/hyperframes-animation/blueprints/fixed-anchor-cycle.md +46 -0
  214. package/skills/hyperframes-animation/blueprints/grid-card-assemble.md +81 -0
  215. package/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +133 -0
  216. package/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +121 -0
  217. package/skills/hyperframes-animation/blueprints/overwhelm-surround.md +58 -0
  218. package/skills/hyperframes-animation/blueprints/panel-edit-live-sync.md +73 -0
  219. package/skills/hyperframes-animation/blueprints/prompt-type-submit-generate.md +85 -0
  220. package/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  221. package/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  222. package/skills/hyperframes-animation/blueprints/titlecard-reveal.md +80 -0
  223. package/skills/hyperframes-animation/blueprints/transcript-scroll-artifact-reveal.md +45 -0
  224. package/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  225. package/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  226. package/skills/hyperframes-animation/blueprints/zoom-out-workspace-reveal.md +68 -0
  227. package/skills/hyperframes-animation/blueprints-index.md +202 -0
  228. package/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  229. package/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  230. package/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  231. package/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  232. package/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  233. package/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  234. package/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  235. package/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  236. package/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  237. package/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  238. package/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  239. package/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  240. package/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  241. package/skills/hyperframes-animation/rules/3d-camera-flight.md +180 -0
  242. package/skills/hyperframes-animation/rules/3d-page-scroll.md +135 -0
  243. package/skills/hyperframes-animation/rules/3d-text-depth-layers.md +128 -0
  244. package/skills/hyperframes-animation/rules/ai-tracking-box.md +139 -0
  245. package/skills/hyperframes-animation/rules/ambient-glow-bloom.md +133 -0
  246. package/skills/hyperframes-animation/rules/anchored-layout-expand.md +148 -0
  247. package/skills/hyperframes-animation/rules/asr-keyword-glow.md +128 -0
  248. package/skills/hyperframes-animation/rules/avatar-cloud-network.md +145 -0
  249. package/skills/hyperframes-animation/rules/camera-cursor-tracking.md +133 -0
  250. package/skills/hyperframes-animation/rules/card-morph-anchor.md +134 -0
  251. package/skills/hyperframes-animation/rules/center-outward-expansion.md +88 -0
  252. package/skills/hyperframes-animation/rules/chart-scrub-readout.md +151 -0
  253. package/skills/hyperframes-animation/rules/chromatic-glitch.md +150 -0
  254. package/skills/hyperframes-animation/rules/context-sensitive-cursor.md +140 -0
  255. package/skills/hyperframes-animation/rules/control-target-sync.md +131 -0
  256. package/skills/hyperframes-animation/rules/coordinate-target-zoom.md +138 -0
  257. package/skills/hyperframes-animation/rules/counting-dynamic-scale.md +115 -0
  258. package/skills/hyperframes-animation/rules/css-marker-patterns.md +208 -0
  259. package/skills/hyperframes-animation/rules/cursor-click-ripple.md +104 -0
  260. package/skills/hyperframes-animation/rules/cursor-drag.md +141 -0
  261. package/skills/hyperframes-animation/rules/depth-of-field-blur.md +112 -0
  262. package/skills/hyperframes-animation/rules/depth-scatter-assemble.md +139 -0
  263. package/skills/hyperframes-animation/rules/discrete-text-sequence.md +146 -0
  264. package/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +149 -0
  265. package/skills/hyperframes-animation/rules/gradient-text-sweep.md +136 -0
  266. package/skills/hyperframes-animation/rules/gsap-effects.md +196 -0
  267. package/skills/hyperframes-animation/rules/hacker-flip-3d.md +123 -0
  268. package/skills/hyperframes-animation/rules/kinetic-beat-slam.md +137 -0
  269. package/skills/hyperframes-animation/rules/motion-blur-streak.md +130 -0
  270. package/skills/hyperframes-animation/rules/multi-cursor-choreography.md +133 -0
  271. package/skills/hyperframes-animation/rules/multi-phase-camera.md +129 -0
  272. package/skills/hyperframes-animation/rules/nudge-curve.md +47 -0
  273. package/skills/hyperframes-animation/rules/orbit-3d-entry.md +148 -0
  274. package/skills/hyperframes-animation/rules/particle-burst.md +149 -0
  275. package/skills/hyperframes-animation/rules/physics-press-reaction.md +101 -0
  276. package/skills/hyperframes-animation/rules/press-release-spring.md +108 -0
  277. package/skills/hyperframes-animation/rules/reactive-displacement.md +92 -0
  278. package/skills/hyperframes-animation/rules/scale-swap-transition.md +88 -0
  279. package/skills/hyperframes-animation/rules/sine-wave-loop.md +85 -0
  280. package/skills/hyperframes-animation/rules/split-tilt-cards.md +123 -0
  281. package/skills/hyperframes-animation/rules/spring-pop-entrance.md +107 -0
  282. package/skills/hyperframes-animation/rules/stat-bars-and-fills.md +145 -0
  283. package/skills/hyperframes-animation/rules/svg-icon-enrichment.md +141 -0
  284. package/skills/hyperframes-animation/rules/svg-path-draw.md +122 -0
  285. package/skills/hyperframes-animation/rules/theme-crossfade-morph.md +126 -0
  286. package/skills/hyperframes-animation/rules/vertical-spring-ticker.md +104 -0
  287. package/skills/hyperframes-animation/rules/viewport-change.md +148 -0
  288. package/skills/hyperframes-animation/rules/waterfall-entry.md +81 -0
  289. package/skills/hyperframes-animation/rules-index.md +113 -0
  290. package/skills/hyperframes-animation/scripts/animation-map-sampling.mjs +40 -0
  291. package/skills/hyperframes-animation/scripts/animation-map-sampling.test.mjs +48 -0
  292. package/skills/{hyperframes → hyperframes-animation}/scripts/animation-map.mjs +116 -53
  293. package/skills/hyperframes-animation/scripts/animation-map.test.mjs +444 -0
  294. package/skills/hyperframes-animation/scripts/package-loader.mjs +384 -0
  295. package/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  296. package/skills/{website-to-hyperframes/references → hyperframes-animation}/techniques.md +146 -26
  297. package/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +168 -0
  298. package/skills/{hyperframes/references → hyperframes-animation}/transitions/catalog.md +26 -16
  299. package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-destruction.md +1 -1
  300. package/skills/{hyperframes/references/transitions.md → hyperframes-animation/transitions/overview.md} +44 -3
  301. package/skills/hyperframes-audio/SKILL.md +470 -0
  302. package/skills/hyperframes-audio/references/attributes.md +138 -0
  303. package/skills/hyperframes-audio/references/diagnosis.md +276 -0
  304. package/skills/hyperframes-audio/references/fx-registry.md +84 -0
  305. package/skills/hyperframes-audio/references/presets.md +216 -0
  306. package/skills/hyperframes-audio/scripts/carve.mjs +569 -0
  307. package/skills/hyperframes-audio/scripts/carve.test.mjs +239 -0
  308. package/skills/hyperframes-cli/SKILL.md +121 -103
  309. package/skills/hyperframes-cli/references/beats.md +19 -0
  310. package/skills/hyperframes-cli/references/cloud.md +163 -0
  311. package/skills/hyperframes-cli/references/cloudrun.md +62 -0
  312. package/skills/hyperframes-cli/references/compare-and-batch.md +105 -0
  313. package/skills/hyperframes-cli/references/doctor-browser.md +57 -0
  314. package/skills/hyperframes-cli/references/init-and-scaffold.md +72 -0
  315. package/skills/hyperframes-cli/references/lambda.md +185 -0
  316. package/skills/hyperframes-cli/references/lint-validate-inspect.md +132 -0
  317. package/skills/hyperframes-cli/references/preview-render.md +190 -0
  318. package/skills/hyperframes-cli/references/upgrade-info-misc.md +77 -0
  319. package/skills/hyperframes-core/SKILL.md +94 -0
  320. package/skills/hyperframes-core/references/brief-contract.md +108 -0
  321. package/skills/hyperframes-core/references/brief-format.md +72 -0
  322. package/skills/hyperframes-core/references/composition-patterns.md +263 -0
  323. package/skills/hyperframes-core/references/creator-editing-recipes.md +367 -0
  324. package/skills/hyperframes-core/references/data-attributes.md +78 -0
  325. package/skills/hyperframes-core/references/determinism-rules.md +70 -0
  326. package/skills/hyperframes-core/references/frame-worker-core.md +80 -0
  327. package/skills/hyperframes-core/references/full-screen-motion.md +76 -0
  328. package/skills/hyperframes-core/references/minimal-composition.md +69 -0
  329. package/skills/hyperframes-core/references/production-loop.md +26 -0
  330. package/skills/hyperframes-core/references/review-loop.md +41 -0
  331. package/skills/hyperframes-core/references/script-format.md +52 -0
  332. package/skills/hyperframes-core/references/storyboard-format.md +130 -0
  333. package/skills/hyperframes-core/references/sub-compositions.md +239 -0
  334. package/skills/hyperframes-core/references/subagent-dispatch.md +35 -0
  335. package/skills/hyperframes-core/references/tailwind.md +123 -0
  336. package/skills/hyperframes-core/references/tracks-and-clips.md +91 -0
  337. package/skills/hyperframes-core/references/variables-and-media.md +107 -0
  338. package/skills/hyperframes-core/scripts/lib/frame-packets-core.mjs +212 -0
  339. package/skills/hyperframes-creative/SKILL.md +71 -0
  340. package/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  341. package/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  342. package/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  343. package/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  344. package/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  345. package/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  346. package/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  347. package/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  348. package/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  349. package/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  350. package/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  351. package/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  352. package/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  353. package/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  354. package/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  355. package/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  356. package/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  357. package/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  358. package/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  359. package/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  360. package/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  361. package/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  362. package/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  363. package/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  364. package/skills/hyperframes-creative/frame-presets/code-editorial/FRAME.md +277 -0
  365. package/skills/hyperframes-creative/frame-presets/code-editorial/caption-skin.html +224 -0
  366. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/EBGaramond-400.woff2 +0 -0
  367. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/EBGaramond-700.woff2 +0 -0
  368. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/Inter-400.woff2 +0 -0
  369. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/Inter-700.woff2 +0 -0
  370. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/JetBrainsMono-400.woff2 +0 -0
  371. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/JetBrainsMono-700.woff2 +0 -0
  372. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt +93 -0
  373. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-inter.txt +93 -0
  374. package/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt +93 -0
  375. package/skills/hyperframes-creative/frame-presets/code-editorial/frame-showcase.html +1438 -0
  376. package/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  377. package/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  378. package/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  379. package/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  380. package/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  381. package/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  382. package/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  383. package/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  384. package/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  385. package/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  386. package/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  387. package/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  388. package/skills/{hyperframes → hyperframes-creative}/references/audio-reactive.md +1 -1
  389. package/skills/hyperframes-creative/references/beat-direction.md +164 -0
  390. package/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  391. package/skills/{hyperframes → hyperframes-creative/references}/data-in-motion.md +1 -1
  392. package/skills/hyperframes-creative/references/design-adherence.md +19 -0
  393. package/skills/hyperframes-creative/references/design-picker.md +123 -0
  394. package/skills/hyperframes-creative/references/design-spec.md +55 -0
  395. package/skills/{hyperframes → hyperframes-creative/references}/house-style.md +4 -2
  396. package/skills/hyperframes-creative/references/motion-principles.md +151 -0
  397. package/skills/{website-to-hyperframes/references/step-3-script.md → hyperframes-creative/references/narration.md} +5 -9
  398. package/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  399. package/skills/hyperframes-creative/references/story-spine.md +43 -0
  400. package/skills/{hyperframes → hyperframes-creative}/references/typography.md +45 -2
  401. package/skills/hyperframes-creative/references/video-composition.md +63 -0
  402. package/skills/hyperframes-creative/references/visual-styles.md +457 -0
  403. package/skills/hyperframes-creative/scripts/contrast-report.mjs +538 -0
  404. package/skills/{gsap → hyperframes-creative}/scripts/extract-audio-data.py +13 -2
  405. package/skills/hyperframes-creative/scripts/package-loader.mjs +384 -0
  406. package/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  407. package/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  408. package/skills/hyperframes-keyframes/SKILL.md +262 -0
  409. package/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  410. package/skills/hyperframes-keyframes/references/keyframe-patterns.md +108 -0
  411. package/skills/hyperframes-registry/SKILL.md +55 -16
  412. package/skills/hyperframes-registry/references/component-quality-bar.md +250 -0
  413. package/skills/hyperframes-registry/references/contributing.md +174 -0
  414. package/skills/hyperframes-registry/references/discovery.md +191 -13
  415. package/skills/hyperframes-registry/references/placeholder-material.md +149 -0
  416. package/skills/hyperframes-registry/references/templates.md +417 -0
  417. package/skills/hyperframes-registry/references/wiring-blocks.md +1 -31
  418. package/skills/hyperframes-registry/references/wiring-components.md +1 -39
  419. package/skills/media-use/SKILL.md +96 -0
  420. package/skills/media-use/audio/assets/sfx/CREDITS.md +35 -0
  421. package/skills/media-use/audio/assets/sfx/chime.mp3 +0 -0
  422. package/skills/media-use/audio/assets/sfx/click-soft.mp3 +0 -0
  423. package/skills/media-use/audio/assets/sfx/click.mp3 +0 -0
  424. package/skills/media-use/audio/assets/sfx/error.mp3 +0 -0
  425. package/skills/media-use/audio/assets/sfx/glitch-1.mp3 +0 -0
  426. package/skills/media-use/audio/assets/sfx/glitch-2.mp3 +0 -0
  427. package/skills/media-use/audio/assets/sfx/glitch-3.mp3 +0 -0
  428. package/skills/media-use/audio/assets/sfx/impact-bass-1.mp3 +0 -0
  429. package/skills/media-use/audio/assets/sfx/impact-bass-2.mp3 +0 -0
  430. package/skills/media-use/audio/assets/sfx/key-press.mp3 +0 -0
  431. package/skills/media-use/audio/assets/sfx/manifest.json +97 -0
  432. package/skills/media-use/audio/assets/sfx/notification.mp3 +0 -0
  433. package/skills/media-use/audio/assets/sfx/ping.mp3 +0 -0
  434. package/skills/media-use/audio/assets/sfx/pop.mp3 +0 -0
  435. package/skills/media-use/audio/assets/sfx/riser.mp3 +0 -0
  436. package/skills/media-use/audio/assets/sfx/sparkle.mp3 +0 -0
  437. package/skills/media-use/audio/assets/sfx/typing.mp3 +0 -0
  438. package/skills/media-use/audio/assets/sfx/whoosh-cinematic.mp3 +0 -0
  439. package/skills/media-use/audio/assets/sfx/whoosh-short.mp3 +0 -0
  440. package/skills/media-use/audio/assets/sfx/whoosh.mp3 +0 -0
  441. package/skills/media-use/audio/references/bgm.md +74 -0
  442. package/skills/media-use/audio/references/captions/authoring.md +159 -0
  443. package/skills/{hyperframes/references/dynamic-techniques.md → media-use/audio/references/captions/motion.md} +8 -11
  444. package/skills/{hyperframes/references/transcript-guide.md → media-use/audio/references/captions/transcript-handling.md} +5 -59
  445. package/skills/media-use/audio/references/remove-background.md +143 -0
  446. package/skills/media-use/audio/references/requirements.md +29 -0
  447. package/skills/media-use/audio/references/sfx.md +42 -0
  448. package/skills/media-use/audio/references/transcribe.md +52 -0
  449. package/skills/media-use/audio/references/tts-to-captions.md +26 -0
  450. package/skills/media-use/audio/references/tts.md +165 -0
  451. package/skills/media-use/audio/scripts/audio.mjs +293 -0
  452. package/skills/media-use/audio/scripts/audio.test.mjs +49 -0
  453. package/skills/media-use/audio/scripts/heygen-tts.mjs +121 -0
  454. package/skills/media-use/audio/scripts/lib/bgm.mjs +257 -0
  455. package/skills/media-use/audio/scripts/lib/bgm.test.mjs +30 -0
  456. package/skills/media-use/audio/scripts/lib/concurrency.mjs +14 -0
  457. package/skills/media-use/audio/scripts/lib/concurrency.test.mjs +41 -0
  458. package/skills/media-use/audio/scripts/lib/heygen.mjs +155 -0
  459. package/skills/media-use/audio/scripts/lib/heygen.test.mjs +103 -0
  460. package/skills/media-use/audio/scripts/lib/python.mjs +63 -0
  461. package/skills/media-use/audio/scripts/lib/python.test.mjs +68 -0
  462. package/skills/media-use/audio/scripts/lib/sfx.mjs +143 -0
  463. package/skills/media-use/audio/scripts/lib/sfx.test.mjs +69 -0
  464. package/skills/media-use/audio/scripts/lib/tts.mjs +378 -0
  465. package/skills/media-use/audio/scripts/lib/tts.spawn.test.mjs +158 -0
  466. package/skills/media-use/audio/scripts/lib/tts.test.mjs +157 -0
  467. package/skills/media-use/audio/scripts/lyria-recipe.py +136 -0
  468. package/skills/media-use/audio/scripts/wait-bgm.mjs +167 -0
  469. package/skills/media-use/luts/README.md +28 -0
  470. package/skills/media-use/luts/index.json +57 -0
  471. package/skills/media-use/references/audio.md +19 -0
  472. package/skills/media-use/references/grading.md +160 -0
  473. package/skills/media-use/references/media-treatment-recipes.md +929 -0
  474. package/skills/media-use/references/media-treatments.md +202 -0
  475. package/skills/media-use/references/memory.md +36 -0
  476. package/skills/media-use/references/meta.md +61 -0
  477. package/skills/media-use/references/operations.md +325 -0
  478. package/skills/media-use/references/resolve.md +139 -0
  479. package/skills/media-use/references/setup-providers.md +80 -0
  480. package/skills/media-use/references/telemetry-dashboard.md +49 -0
  481. package/skills/media-use/scripts/audio-duck.mjs +121 -0
  482. package/skills/media-use/scripts/dither.mjs +328 -0
  483. package/skills/media-use/scripts/dither.test.mjs +176 -0
  484. package/skills/media-use/scripts/eval.mjs +369 -0
  485. package/skills/media-use/scripts/lib/adopt.mjs +128 -0
  486. package/skills/media-use/scripts/lib/adopt.test.mjs +95 -0
  487. package/skills/media-use/scripts/lib/bgm-provider.mjs +20 -0
  488. package/skills/media-use/scripts/lib/brand-provider.mjs +59 -0
  489. package/skills/media-use/scripts/lib/bundled-sfx-provider.mjs +108 -0
  490. package/skills/media-use/scripts/lib/bundled-sfx-provider.test.mjs +85 -0
  491. package/skills/media-use/scripts/lib/cache.mjs +150 -0
  492. package/skills/media-use/scripts/lib/candidates.mjs +91 -0
  493. package/skills/media-use/scripts/lib/candidates.test.mjs +155 -0
  494. package/skills/media-use/scripts/lib/codex-provider.mjs +161 -0
  495. package/skills/media-use/scripts/lib/codex-provider.test.mjs +34 -0
  496. package/skills/media-use/scripts/lib/coverage.test.mjs +117 -0
  497. package/skills/media-use/scripts/lib/cube-build.mjs +181 -0
  498. package/skills/media-use/scripts/lib/cube-build.test.mjs +80 -0
  499. package/skills/media-use/scripts/lib/cube-validate.mjs +198 -0
  500. package/skills/media-use/scripts/lib/cube-validate.test.mjs +125 -0
  501. package/skills/media-use/scripts/lib/cutlist.mjs +184 -0
  502. package/skills/media-use/scripts/lib/cutlist.test.mjs +148 -0
  503. package/skills/media-use/scripts/lib/duck.mjs +89 -0
  504. package/skills/media-use/scripts/lib/duck.test.mjs +118 -0
  505. package/skills/media-use/scripts/lib/error-diffusion.mjs +230 -0
  506. package/skills/media-use/scripts/lib/error-diffusion.test.mjs +102 -0
  507. package/skills/media-use/scripts/lib/freeze.mjs +70 -0
  508. package/skills/media-use/scripts/lib/freeze.test.mjs +46 -0
  509. package/skills/media-use/scripts/lib/grade-analyzer.mjs +264 -0
  510. package/skills/media-use/scripts/lib/grade-analyzer.test.mjs +285 -0
  511. package/skills/media-use/scripts/lib/heygen-cli.mjs +191 -0
  512. package/skills/media-use/scripts/lib/heygen-cli.test.mjs +301 -0
  513. package/skills/media-use/scripts/lib/heygen-search.mjs +45 -0
  514. package/skills/media-use/scripts/lib/heygen-search.test.mjs +49 -0
  515. package/skills/media-use/scripts/lib/heygen-video-provider.mjs +127 -0
  516. package/skills/media-use/scripts/lib/heygen-video-provider.test.mjs +344 -0
  517. package/skills/media-use/scripts/lib/image-provider.mjs +44 -0
  518. package/skills/media-use/scripts/lib/index-gen.mjs +63 -0
  519. package/skills/media-use/scripts/lib/local-models.mjs +318 -0
  520. package/skills/media-use/scripts/lib/local-models.test.mjs +220 -0
  521. package/skills/media-use/scripts/lib/local-run.mjs +78 -0
  522. package/skills/media-use/scripts/lib/local-run.test.mjs +121 -0
  523. package/skills/media-use/scripts/lib/logo-provider.mjs +222 -0
  524. package/skills/media-use/scripts/lib/logo-provider.test.mjs +137 -0
  525. package/skills/media-use/scripts/lib/ltx-video-provider.mjs +94 -0
  526. package/skills/media-use/scripts/lib/ltx-video-provider.test.mjs +316 -0
  527. package/skills/media-use/scripts/lib/lut-preset-provider.mjs +266 -0
  528. package/skills/media-use/scripts/lib/lut-preset-provider.test.mjs +176 -0
  529. package/skills/media-use/scripts/lib/manifest.mjs +229 -0
  530. package/skills/media-use/scripts/lib/manifest.test.mjs +388 -0
  531. package/skills/media-use/scripts/lib/match.mjs +47 -0
  532. package/skills/media-use/scripts/lib/mflux-provider.mjs +128 -0
  533. package/skills/media-use/scripts/lib/mflux-provider.test.mjs +174 -0
  534. package/skills/media-use/scripts/lib/misses.mjs +49 -0
  535. package/skills/media-use/scripts/lib/misses.test.mjs +78 -0
  536. package/skills/media-use/scripts/lib/npx-sync.mjs +31 -0
  537. package/skills/media-use/scripts/lib/npx-sync.test.mjs +50 -0
  538. package/skills/media-use/scripts/lib/parakeet-words.mjs +27 -0
  539. package/skills/media-use/scripts/lib/parakeet-words.test.mjs +44 -0
  540. package/skills/media-use/scripts/lib/prefs-store.mjs +180 -0
  541. package/skills/media-use/scripts/lib/prefs-store.test.mjs +189 -0
  542. package/skills/media-use/scripts/lib/probe.mjs +39 -0
  543. package/skills/media-use/scripts/lib/probe.test.mjs +31 -0
  544. package/skills/media-use/scripts/lib/providers.mjs +5 -0
  545. package/skills/media-use/scripts/lib/recipe-store.mjs +367 -0
  546. package/skills/media-use/scripts/lib/recipe-store.test.mjs +367 -0
  547. package/skills/media-use/scripts/lib/registry.mjs +218 -0
  548. package/skills/media-use/scripts/lib/registry.test.mjs +261 -0
  549. package/skills/media-use/scripts/lib/search.mjs +24 -0
  550. package/skills/media-use/scripts/lib/search.test.mjs +32 -0
  551. package/skills/media-use/scripts/lib/sfx-provider.mjs +23 -0
  552. package/skills/media-use/scripts/lib/specs.mjs +132 -0
  553. package/skills/media-use/scripts/lib/specs.test.mjs +157 -0
  554. package/skills/media-use/scripts/lib/stats.mjs +117 -0
  555. package/skills/media-use/scripts/lib/stats.test.mjs +165 -0
  556. package/skills/media-use/scripts/lib/telemetry.mjs +222 -0
  557. package/skills/media-use/scripts/lib/telemetry.test.mjs +373 -0
  558. package/skills/media-use/scripts/lib/tts-local-provider.mjs +92 -0
  559. package/skills/media-use/scripts/lib/tts-local-provider.test.mjs +72 -0
  560. package/skills/media-use/scripts/lib/usage.mjs +57 -0
  561. package/skills/media-use/scripts/lib/usage.test.mjs +54 -0
  562. package/skills/media-use/scripts/lib/voice-provider.mjs +57 -0
  563. package/skills/media-use/scripts/lib/voice-provider.test.mjs +46 -0
  564. package/skills/media-use/scripts/lib/words.mjs +18 -0
  565. package/skills/media-use/scripts/prefs.mjs +70 -0
  566. package/skills/media-use/scripts/recipe.mjs +103 -0
  567. package/skills/media-use/scripts/resolve.mjs +1271 -0
  568. package/skills/media-use/scripts/resolve.test.mjs +1120 -0
  569. package/skills/media-use/scripts/transcribe.mjs +180 -0
  570. package/skills/media-use/scripts/transcript-cut.mjs +239 -0
  571. package/skills/motion-graphics/SKILL.md +176 -0
  572. package/skills/motion-graphics/agents/builder.md +40 -0
  573. package/skills/motion-graphics/agents/director.md +53 -0
  574. package/skills/motion-graphics/agents/finalize.md +17 -0
  575. package/skills/motion-graphics/catalog-map.md +40 -0
  576. package/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  577. package/skills/motion-graphics/categories/charts/module.md +21 -0
  578. package/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  579. package/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  580. package/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  581. package/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  582. package/skills/motion-graphics/categories/maps/module.md +61 -0
  583. package/skills/motion-graphics/categories/news/module.md +56 -0
  584. package/skills/motion-graphics/categories/stat/module.md +21 -0
  585. package/skills/motion-graphics/categories/tweet/module.md +16 -0
  586. package/skills/motion-graphics/categories/webpage/module.md +30 -0
  587. package/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  588. package/skills/motion-graphics/grounding/locate.mjs +228 -0
  589. package/skills/motion-graphics/phases/source/guide.md +21 -0
  590. package/skills/motion-graphics/references/builder-contract.md +38 -0
  591. package/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  592. package/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  593. package/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  594. package/skills/music-to-video/SKILL.md +208 -0
  595. package/skills/music-to-video/references/frame-skeleton.md +100 -0
  596. package/skills/music-to-video/references/montage.md +58 -0
  597. package/skills/music-to-video/references/motion-primitive-catalog.md +75 -0
  598. package/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +154 -0
  599. package/skills/music-to-video/references/motion-primitives/assets/gsap.min.js +11 -0
  600. package/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +326 -0
  601. package/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +120 -0
  602. package/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +95 -0
  603. package/skills/music-to-video/references/motion-primitives/braam-punch/index.html +135 -0
  604. package/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +146 -0
  605. package/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +103 -0
  606. package/skills/music-to-video/references/motion-primitives/counting-punch/index.html +154 -0
  607. package/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +155 -0
  608. package/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +166 -0
  609. package/skills/music-to-video/references/motion-primitives/directional-fill/index.html +133 -0
  610. package/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +137 -0
  611. package/skills/music-to-video/references/motion-primitives/electric-arc/index.html +144 -0
  612. package/skills/music-to-video/references/motion-primitives/flash-cut/index.html +132 -0
  613. package/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +241 -0
  614. package/skills/music-to-video/references/motion-primitives/hard-cut/index.html +117 -0
  615. package/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +79 -0
  616. package/skills/music-to-video/references/motion-primitives/iris-open/index.html +104 -0
  617. package/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +98 -0
  618. package/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +131 -0
  619. package/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +109 -0
  620. package/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +124 -0
  621. package/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +108 -0
  622. package/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +117 -0
  623. package/skills/music-to-video/references/motion-primitives/palette-flip/index.html +132 -0
  624. package/skills/music-to-video/references/motion-primitives/particle-burst/index.html +141 -0
  625. package/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +121 -0
  626. package/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +160 -0
  627. package/skills/music-to-video/references/motion-primitives/screen-shake/index.html +113 -0
  628. package/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +130 -0
  629. package/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +137 -0
  630. package/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +117 -0
  631. package/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -0
  632. package/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +313 -0
  633. package/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +136 -0
  634. package/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +144 -0
  635. package/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +122 -0
  636. package/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +126 -0
  637. package/skills/music-to-video/references/planning.md +104 -0
  638. package/skills/music-to-video/references/storyboard-format.md +94 -0
  639. package/skills/music-to-video/references/template-catalog.md +106 -0
  640. package/skills/music-to-video/references/templates/card-flyby/index.html +527 -0
  641. package/skills/music-to-video/references/templates/card-flyby/program.json +13 -0
  642. package/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -0
  643. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/asphalt-031.png +0 -0
  644. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bark-014.png +0 -0
  645. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/brick.png +0 -0
  646. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-075-a.png +0 -0
  647. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-101.png +0 -0
  648. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-102.png +0 -0
  649. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-104.png +0 -0
  650. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/carpet.png +0 -0
  651. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-034.png +0 -0
  652. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-042-a.png +0 -0
  653. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-046.png +0 -0
  654. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-047-a.png +0 -0
  655. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete.png +0 -0
  656. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/diamond-plate-009.png +0 -0
  657. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/fabric-080.png +0 -0
  658. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/fabric-083.png +0 -0
  659. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/grass-001.png +0 -0
  660. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/grass-004.png +0 -0
  661. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/grass-005.png +0 -0
  662. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-037.png +0 -0
  663. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-054.png +0 -0
  664. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-068.png +0 -0
  665. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-080.png +0 -0
  666. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-103.png +0 -0
  667. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-104.png +0 -0
  668. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/lava.png +0 -0
  669. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/leather-037.png +0 -0
  670. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/marble-012.png +0 -0
  671. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/marble-016.png +0 -0
  672. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-032.png +0 -0
  673. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-038.png +0 -0
  674. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-041-a.png +0 -0
  675. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-046-b.png +0 -0
  676. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-048-a.png +0 -0
  677. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-049-a.png +0 -0
  678. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-055-a.png +0 -0
  679. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-061-b.png +0 -0
  680. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal.png +0 -0
  681. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/onyx.png +0 -0
  682. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/painted-plaster-017.png +0 -0
  683. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/paving-stones-138.png +0 -0
  684. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/paving-stones-150.png +0 -0
  685. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/plaster-001.png +0 -0
  686. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-007.png +0 -0
  687. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-008-a.png +0 -0
  688. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-009-c.png +0 -0
  689. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-012-a.png +0 -0
  690. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-012-b.png +0 -0
  691. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-013-a.png +0 -0
  692. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/rock-058.png +0 -0
  693. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/rock-063.png +0 -0
  694. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/rock.png +0 -0
  695. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/snow-015.png +0 -0
  696. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/snow.png +0 -0
  697. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/tiles-138.png +0 -0
  698. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/travertine-009.png +0 -0
  699. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-049.png +0 -0
  700. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-051.png +0 -0
  701. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-058.png +0 -0
  702. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-066.png +0 -0
  703. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-092.png +0 -0
  704. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-094.png +0 -0
  705. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-floor-051.png +0 -0
  706. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-floor-064.png +0 -0
  707. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-floor-070.png +0 -0
  708. package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood.png +0 -0
  709. package/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -0
  710. package/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -0
  711. package/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -0
  712. package/skills/music-to-video/references/templates/logo-split-lockup-pulse/assets/fredoka-700.woff2 +0 -0
  713. package/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -0
  714. package/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -0
  715. package/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -0
  716. package/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -0
  717. package/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -0
  718. package/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -0
  719. package/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -0
  720. package/skills/music-to-video/scripts/analyze-beatgrid.py +542 -0
  721. package/skills/music-to-video/scripts/assemble-index.mjs +220 -0
  722. package/skills/music-to-video/scripts/lib/storyboard.mjs +249 -0
  723. package/skills/music-to-video/scripts/stage-assets.mjs +58 -0
  724. package/skills/music-to-video/scripts/validate-plan.mjs +161 -0
  725. package/skills/music-to-video/sub-agents/frame-worker.md +49 -0
  726. package/skills/pr-to-video/SKILL.md +269 -0
  727. package/skills/pr-to-video/references/code-vocabulary.md +111 -0
  728. package/skills/pr-to-video/references/cut-catalog.md +215 -0
  729. package/skills/pr-to-video/references/motion-language.md +156 -0
  730. package/skills/pr-to-video/references/story-design.md +230 -0
  731. package/skills/pr-to-video/references/visual-design.md +164 -0
  732. package/skills/pr-to-video/scripts/assemble-index.mjs +629 -0
  733. package/skills/pr-to-video/scripts/assemble-index.test.mjs +75 -0
  734. package/skills/pr-to-video/scripts/audio.mjs +291 -0
  735. package/skills/pr-to-video/scripts/build-frame.mjs +586 -0
  736. package/skills/pr-to-video/scripts/captions.mjs +521 -0
  737. package/skills/pr-to-video/scripts/captions.test.mjs +219 -0
  738. package/skills/pr-to-video/scripts/fetch-people-avatars.mjs +157 -0
  739. package/skills/pr-to-video/scripts/fetch-pr.mjs +234 -0
  740. package/skills/pr-to-video/scripts/frame-contract.test.mjs +209 -0
  741. package/skills/pr-to-video/scripts/frame-packets.mjs +62 -0
  742. package/skills/pr-to-video/scripts/ingest.mjs +561 -0
  743. package/skills/pr-to-video/scripts/lib/assets.mjs +56 -0
  744. package/skills/pr-to-video/scripts/lib/dimensions.mjs +45 -0
  745. package/skills/pr-to-video/scripts/lib/frame-contract.mjs +54 -0
  746. package/skills/pr-to-video/scripts/lib/pad-frame-duration.mjs +36 -0
  747. package/skills/pr-to-video/scripts/lib/storyboard.mjs +249 -0
  748. package/skills/pr-to-video/scripts/lib/tokens.mjs +211 -0
  749. package/skills/pr-to-video/scripts/lib/transition-registry.mjs +38 -0
  750. package/skills/pr-to-video/scripts/lib/transitions.json +71 -0
  751. package/skills/pr-to-video/scripts/preflight.mjs +51 -0
  752. package/skills/pr-to-video/scripts/project-dir.mjs +92 -0
  753. package/skills/pr-to-video/scripts/transitions.mjs +381 -0
  754. package/skills/pr-to-video/scripts/workflow-guardrails.test.mjs +198 -0
  755. package/skills/pr-to-video/sub-agents/frame-worker.md +38 -0
  756. package/skills/product-launch-video/SKILL.md +260 -0
  757. package/skills/product-launch-video/references/cut-catalog.md +220 -0
  758. package/skills/product-launch-video/references/motion-language.md +156 -0
  759. package/skills/product-launch-video/references/story-design.md +508 -0
  760. package/skills/product-launch-video/references/visual-design.md +126 -0
  761. package/skills/product-launch-video/scripts/assemble-index.mjs +771 -0
  762. package/skills/product-launch-video/scripts/assemble-index.test.mjs +72 -0
  763. package/skills/product-launch-video/scripts/audio.mjs +291 -0
  764. package/skills/product-launch-video/scripts/audio.test.mjs +218 -0
  765. package/skills/product-launch-video/scripts/build-frame.mjs +549 -0
  766. package/skills/product-launch-video/scripts/captions.mjs +521 -0
  767. package/skills/product-launch-video/scripts/captions.test.mjs +219 -0
  768. package/skills/product-launch-video/scripts/capture-skill-guardrails.test.mjs +39 -0
  769. package/skills/product-launch-video/scripts/frame-packets.mjs +27 -0
  770. package/skills/product-launch-video/scripts/frame-packets.test.mjs +144 -0
  771. package/skills/product-launch-video/scripts/lib/assets.mjs +56 -0
  772. package/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  773. package/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
  774. package/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
  775. package/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  776. package/skills/product-launch-video/scripts/lib/tokens.mjs +218 -0
  777. package/skills/product-launch-video/scripts/lib/tokens.test.mjs +57 -0
  778. package/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  779. package/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  780. package/skills/product-launch-video/scripts/media-contract.test.mjs +200 -0
  781. package/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  782. package/skills/product-launch-video/scripts/stage-assets.test.mjs +52 -0
  783. package/skills/product-launch-video/scripts/transitions.mjs +381 -0
  784. package/skills/product-launch-video/sub-agents/frame-worker.md +21 -0
  785. package/skills/remotion-to-hyperframes/SKILL.md +129 -0
  786. package/skills/remotion-to-hyperframes/assets/.gitkeep +0 -0
  787. package/skills/remotion-to-hyperframes/assets/test-corpus/run.sh +249 -0
  788. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -0
  789. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -0
  790. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +61 -0
  791. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -0
  792. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts +13 -0
  793. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx +13 -0
  794. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx +34 -0
  795. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts +4 -0
  796. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -0
  797. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -0
  798. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -0
  799. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +118 -0
  800. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -0
  801. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/remotion.config.ts +13 -0
  802. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/MultiScene.tsx +105 -0
  803. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/Root.tsx +13 -0
  804. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/index.ts +4 -0
  805. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -0
  806. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/setup.sh +34 -0
  807. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -0
  808. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -0
  809. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +269 -0
  810. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -0
  811. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/remotion.config.ts +13 -0
  812. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Root.tsx +27 -0
  813. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Stargazed.tsx +37 -0
  814. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/AnimatedNumber.tsx +23 -0
  815. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/StatCard.tsx +59 -0
  816. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/UnderlinedText.tsx +47 -0
  817. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/index.ts +4 -0
  818. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/OutroScene.tsx +18 -0
  819. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/StatsScene.tsx +34 -0
  820. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsx +55 -0
  821. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -0
  822. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -0
  823. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/01-use-state.tsx +29 -0
  824. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/02-use-effect-deps.tsx +29 -0
  825. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/03-async-metadata.tsx +39 -0
  826. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/04-third-party-react.tsx +30 -0
  827. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/05-lambda-config.tsx +38 -0
  828. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/06-warnings-only.tsx +36 -0
  829. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/07-custom-hook.tsx +28 -0
  830. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/08-mixed.tsx +41 -0
  831. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -0
  832. package/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/validate.sh +110 -0
  833. package/skills/remotion-to-hyperframes/references/api-map.md +142 -0
  834. package/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -0
  835. package/skills/remotion-to-hyperframes/references/eval.md +140 -0
  836. package/skills/remotion-to-hyperframes/references/fonts.md +112 -0
  837. package/skills/remotion-to-hyperframes/references/limitations.md +136 -0
  838. package/skills/remotion-to-hyperframes/references/lottie.md +121 -0
  839. package/skills/remotion-to-hyperframes/references/media.md +149 -0
  840. package/skills/remotion-to-hyperframes/references/parameters.md +167 -0
  841. package/skills/remotion-to-hyperframes/references/sequencing.md +198 -0
  842. package/skills/remotion-to-hyperframes/references/timing.md +165 -0
  843. package/skills/remotion-to-hyperframes/references/transitions.md +114 -0
  844. package/skills/remotion-to-hyperframes/scripts/.gitkeep +0 -0
  845. package/skills/remotion-to-hyperframes/scripts/frame_strip.sh +107 -0
  846. package/skills/remotion-to-hyperframes/scripts/lint_source.py +370 -0
  847. package/skills/remotion-to-hyperframes/scripts/render_diff.sh +103 -0
  848. package/skills/remotion-to-hyperframes/scripts/tests/fixtures/blocker.tsx +50 -0
  849. package/skills/remotion-to-hyperframes/scripts/tests/fixtures/clean.tsx +46 -0
  850. package/skills/remotion-to-hyperframes/scripts/tests/smoke.sh +90 -0
  851. package/skills/slideshow/SKILL.md +529 -0
  852. package/skills/slideshow/references/standalone-harness.md +1020 -0
  853. package/skills/talking-head-recut/NOTICE.md +39 -0
  854. package/skills/talking-head-recut/SKILL.md +1211 -0
  855. package/skills/talking-head-recut/assets/fonts/Caveat-400-latin.woff2 +0 -0
  856. package/skills/talking-head-recut/assets/fonts/Caveat-700-latin.woff2 +0 -0
  857. package/skills/talking-head-recut/assets/fonts/Inter-400-latin.woff2 +0 -0
  858. package/skills/talking-head-recut/assets/fonts/Inter-700-latin.woff2 +0 -0
  859. package/skills/talking-head-recut/assets/fonts/LXGWWenKaiTC-400-latin.woff2 +0 -0
  860. package/skills/talking-head-recut/assets/fonts/Virgil.woff2 +0 -0
  861. package/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  862. package/skills/talking-head-recut/media-contract.test.mjs +35 -0
  863. package/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  864. package/skills/talking-head-recut/references/frames/clean.html +92 -0
  865. package/skills/talking-head-recut/references/frames/hairline.html +171 -0
  866. package/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  867. package/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  868. package/skills/talking-head-recut/references/layouts/pip.html +143 -0
  869. package/skills/talking-head-recut/references/layouts/split.html +121 -0
  870. package/skills/talking-head-recut/references/layouts/stack.html +109 -0
  871. package/skills/talking-head-recut/references/styles/academic.html +172 -0
  872. package/skills/talking-head-recut/references/styles/audit.html +170 -0
  873. package/skills/talking-head-recut/references/styles/editorial.html +189 -0
  874. package/skills/talking-head-recut/references/styles/geom.html +181 -0
  875. package/skills/talking-head-recut/references/styles/minimal.html +130 -0
  876. package/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  877. package/skills/talking-head-recut/references/styles/swiss.html +188 -0
  878. package/skills/talking-head-recut/references/styles/terminal.html +196 -0
  879. package/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  880. package/skills/talking-head-recut/references/styles/xhs.html +206 -0
  881. package/skills/gsap/SKILL.md +0 -213
  882. package/skills/gsap/references/effects.md +0 -297
  883. package/skills/hyperframes/patterns.md +0 -118
  884. package/skills/hyperframes/references/captions.md +0 -132
  885. package/skills/hyperframes/references/css-patterns.md +0 -373
  886. package/skills/hyperframes/references/motion-principles.md +0 -69
  887. package/skills/hyperframes/references/tts.md +0 -75
  888. package/skills/hyperframes/scripts/contrast-report.mjs +0 -335
  889. package/skills/hyperframes/visual-styles.md +0 -211
  890. package/skills/website-to-hyperframes/SKILL.md +0 -125
  891. package/skills/website-to-hyperframes/references/step-1-capture.md +0 -74
  892. package/skills/website-to-hyperframes/references/step-2-design.md +0 -178
  893. package/skills/website-to-hyperframes/references/step-4-storyboard.md +0 -246
  894. package/skills/website-to-hyperframes/references/step-5-vo.md +0 -42
  895. package/skills/website-to-hyperframes/references/step-6-build.md +0 -229
  896. package/skills/website-to-hyperframes/references/step-7-validate.md +0 -114
  897. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-3d.md +0 -0
  898. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-blur.md +0 -0
  899. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-cover.md +0 -0
  900. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-dissolve.md +0 -0
  901. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-distortion.md +0 -0
  902. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-grid.md +0 -0
  903. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-light.md +0 -0
  904. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-mechanical.md +0 -0
  905. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-other.md +0 -0
  906. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-push.md +0 -0
  907. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-radial.md +0 -0
  908. /package/skills/{hyperframes/references → hyperframes-animation}/transitions/css-scale.md +0 -0
  909. /package/skills/{hyperframes → hyperframes-creative}/palettes/bold-energetic.md +0 -0
  910. /package/skills/{hyperframes → hyperframes-creative}/palettes/clean-corporate.md +0 -0
  911. /package/skills/{hyperframes → hyperframes-creative}/palettes/dark-premium.md +0 -0
  912. /package/skills/{hyperframes → hyperframes-creative}/palettes/jewel-rich.md +0 -0
  913. /package/skills/{hyperframes → hyperframes-creative}/palettes/monochrome.md +0 -0
  914. /package/skills/{hyperframes → hyperframes-creative}/palettes/nature-earth.md +0 -0
  915. /package/skills/{hyperframes → hyperframes-creative}/palettes/neon-electric.md +0 -0
  916. /package/skills/{hyperframes → hyperframes-creative}/palettes/pastel-soft.md +0 -0
  917. /package/skills/{hyperframes → hyperframes-creative}/palettes/warm-editorial.md +0 -0
@@ -0,0 +1,122 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=1920, height=1080" />
6
+ <title>typewriter_reveal</title>
7
+ <script src="../assets/gsap.min.js"></script>
8
+ <style>
9
+ :root {
10
+ --hg-violet: #7c3aed;
11
+ --hg-violet-2: #a855f7;
12
+ --hg-bg: #0a0a0f;
13
+ --hg-fg: #f5f5fa;
14
+ --hg-dim: #6b6b78;
15
+ }
16
+ * {
17
+ margin: 0;
18
+ padding: 0;
19
+ box-sizing: border-box;
20
+ }
21
+ html,
22
+ body {
23
+ margin: 0;
24
+ width: 1920px;
25
+ height: 1080px;
26
+ overflow: hidden;
27
+ background: var(--hg-bg);
28
+ font-family: "Inter", system-ui, sans-serif;
29
+ color: var(--hg-fg);
30
+ -webkit-font-smoothing: antialiased;
31
+ }
32
+ #scene {
33
+ position: absolute;
34
+ inset: 0;
35
+ width: 1920px;
36
+ height: 1080px;
37
+ }
38
+ .stage {
39
+ position: absolute;
40
+ inset: 0;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ }
45
+ .line {
46
+ display: flex;
47
+ align-items: baseline;
48
+ font-family: "JetBrains Mono", ui-monospace, monospace;
49
+ font-weight: 800;
50
+ font-size: 200px;
51
+ letter-spacing: 0.02em;
52
+ line-height: 0.95;
53
+ white-space: nowrap;
54
+ }
55
+ .char {
56
+ display: inline-block;
57
+ opacity: 0;
58
+ will-change: opacity;
59
+ }
60
+ .char.space {
61
+ width: 0.4em;
62
+ }
63
+ .caret {
64
+ display: inline-block;
65
+ width: 0.09em;
66
+ height: 0.86em;
67
+ margin-left: 0.06em;
68
+ background: var(--hg-violet-2);
69
+ will-change: opacity;
70
+ }
71
+ </style>
72
+ </head>
73
+ <body>
74
+ <div
75
+ id="root"
76
+ data-composition-id="main"
77
+ data-start="0"
78
+ data-duration="2.4"
79
+ data-width="1920"
80
+ data-height="1080"
81
+ >
82
+ <div id="scene" class="clip" data-start="0" data-duration="2.4" data-track-index="1">
83
+ <div class="stage">
84
+ <div class="line" id="line">
85
+ <span class="char">S</span><span class="char">Y</span><span class="char">S</span
86
+ ><span class="char">T</span><span class="char">E</span><span class="char">M</span
87
+ ><span class="char space">&nbsp;</span><span class="char">O</span
88
+ ><span class="char">N</span><span class="char">L</span><span class="char">I</span
89
+ ><span class="char">N</span><span class="char">E</span
90
+ ><span class="caret" id="caret"></span>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <script>
96
+ window.__timelines = window.__timelines || {};
97
+ const tl = gsap.timeline({ paused: true });
98
+
99
+ const chars = gsap.utils.toArray(".char");
100
+ const step = 0.07;
101
+
102
+ // Explicit per-character reveal: one set() per char at time i * step.
103
+ chars.forEach((char, i) => {
104
+ tl.set(char, { opacity: 1 }, i * step);
105
+ });
106
+
107
+ const lastT = (chars.length - 1) * step;
108
+
109
+ // Caret rides just past the last revealed char and blinks a finite number
110
+ // of times (no repeat:-1), then the phrase locks crisp.
111
+ tl.set("#caret", { opacity: 1 }, 0);
112
+ tl.to(
113
+ "#caret",
114
+ { opacity: 0, duration: 0.09, ease: "steps(1)", repeat: 8, yoyo: true },
115
+ lastT + step,
116
+ );
117
+ tl.set("#caret", { opacity: 0 }, 2.32);
118
+
119
+ window.__timelines["main"] = tl;
120
+ </script>
121
+ </body>
122
+ </html>
@@ -0,0 +1,126 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=1920, height=1080" />
6
+ <title>word_grid_burst</title>
7
+ <script src="../assets/gsap.min.js"></script>
8
+ <style>
9
+ :root {
10
+ --hg-violet: #7c3aed;
11
+ --hg-violet-2: #a855f7;
12
+ --hg-bg: #0a0a0f;
13
+ --hg-fg: #f5f5fa;
14
+ --hg-dim: #6b6b78;
15
+ }
16
+ * {
17
+ margin: 0;
18
+ padding: 0;
19
+ box-sizing: border-box;
20
+ }
21
+ html,
22
+ body {
23
+ margin: 0;
24
+ width: 1920px;
25
+ height: 1080px;
26
+ overflow: hidden;
27
+ background: var(--hg-bg);
28
+ font-family: "Inter", system-ui, sans-serif;
29
+ color: var(--hg-fg);
30
+ -webkit-font-smoothing: antialiased;
31
+ }
32
+ #scene {
33
+ position: absolute;
34
+ inset: 0;
35
+ width: 1920px;
36
+ height: 1080px;
37
+ }
38
+ .stage {
39
+ position: absolute;
40
+ inset: 0;
41
+ display: grid;
42
+ grid-template-columns: repeat(5, 1fr);
43
+ grid-template-rows: repeat(3, 1fr);
44
+ align-items: center;
45
+ justify-items: center;
46
+ padding: 140px 120px;
47
+ gap: 24px;
48
+ }
49
+ .cell {
50
+ font-weight: 900;
51
+ font-size: 92px;
52
+ letter-spacing: -0.03em;
53
+ line-height: 0.95;
54
+ color: var(--hg-fg);
55
+ white-space: nowrap;
56
+ will-change: transform, opacity;
57
+ }
58
+ </style>
59
+ </head>
60
+ <body>
61
+ <div
62
+ id="root"
63
+ data-composition-id="main"
64
+ data-start="0"
65
+ data-duration="2.8"
66
+ data-width="1920"
67
+ data-height="1080"
68
+ >
69
+ <div id="scene" class="clip" data-start="0" data-duration="2.8" data-track-index="1">
70
+ <div class="stage">
71
+ <div class="cell">PULSE</div>
72
+ <div class="cell">FORGE</div>
73
+ <div class="cell">SURGE</div>
74
+ <div class="cell">VOLT</div>
75
+ <div class="cell">CORE</div>
76
+ <div class="cell">FLUX</div>
77
+ <div class="cell">SPARK</div>
78
+ <div class="cell">DRIVE</div>
79
+ <div class="cell">BLAZE</div>
80
+ <div class="cell">WAVE</div>
81
+ <div class="cell">SHIFT</div>
82
+ <div class="cell">BOLT</div>
83
+ <div class="cell">RUSH</div>
84
+ <div class="cell">PEAK</div>
85
+ <div class="cell">IGNITE</div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ <script>
90
+ window.__timelines = window.__timelines || {};
91
+ const tl = gsap.timeline({ paused: true });
92
+
93
+ // Deterministic reveal order: scatter sequence across the 15-cell grid.
94
+ const order = [7, 0, 12, 4, 9, 2, 14, 6, 11, 1, 8, 3, 13, 5, 10];
95
+ const cells = gsap.utils.toArray(".cell");
96
+ const step = 0.13;
97
+ const FOCUS = 7; // chosen focal cell ("DRIVE")
98
+
99
+ // Each cell pops in on its own "onset" — explicit per-cell timing.
100
+ order.forEach((idx, i) => {
101
+ tl.fromTo(
102
+ cells[idx],
103
+ { autoAlpha: 0, scale: 0.8 },
104
+ { autoAlpha: 1, scale: 1, duration: 0.22, ease: "back.out(1.8)" },
105
+ i * step,
106
+ );
107
+ });
108
+
109
+ // Downbeat refocus (~2.3s): dim the whole grid, pop the focal word.
110
+ tl.to(".cell", { autoAlpha: 0.25, duration: 0.18, ease: "power2.out" }, 2.3);
111
+ tl.to(
112
+ cells[FOCUS],
113
+ {
114
+ autoAlpha: 1,
115
+ scale: 1.25,
116
+ color: "var(--hg-violet-2)",
117
+ duration: 0.22,
118
+ ease: "back.out(2)",
119
+ },
120
+ 2.32,
121
+ );
122
+
123
+ window.__timelines["main"] = tl;
124
+ </script>
125
+ </body>
126
+ </html>
@@ -0,0 +1,104 @@
1
+ # Planning (Step 3) — pick the brand, fill every frame
2
+
3
+ At Step 3 **you (the orchestrator)** turn the Step-2 skeleton into a complete, approved
4
+ `STORYBOARD.md`. You edit the **same file** in place: pick the brand spine, then for each
5
+ frame decide its **groups**, give each group a treatment, bind real beat anchors, and write
6
+ the copy.
7
+
8
+ Your mantra: **music is the spine; a template is a head start, not a cage; typography is the
9
+ floor and assets are an optional ingredient on the same beat grid.**
10
+
11
+ **You own WHAT, not HOW.** You name the template / primitives, the content, the brand, the
12
+ anchor seconds, and the intent. The frame-worker (Step 4) decides HOW — micro-timing,
13
+ realization, intra-frame cuts. **Never write millisecond tweens into the storyboard.**
14
+
15
+ ## Inputs
16
+
17
+ - The Step-2 skeleton already in `STORYBOARD.md` — frames with `span_sec` + `pacing` + `mood` + `feel`.
18
+ - `audiomap.json` — timing truth; read the real anchor seconds inside each frame's span.
19
+ - [`template-catalog.md`](template-catalog.md) — the template selection menu.
20
+ - [`motion-primitive-catalog.md`](motion-primitive-catalog.md) — the free-compose menu (L0 recipes).
21
+ - [`montage.md`](montage.md) — asset treatments (only if the user supplied images/videos).
22
+ - User brief / supplied copy — topic, mood, exact words to keep.
23
+
24
+ ## Step A — pick the brand spine (one preset, unmodified)
25
+
26
+ The whole video shares one type family + palette. Pick **one ready-made preset** from
27
+ `../hyperframes-creative/frame-presets/` using the preset table in
28
+ `../hyperframes-creative/references/design-spec.md` — choose by the track's mood + the brief,
29
+ and **only its fonts + colors matter** (templates own composition + motion; the preset only
30
+ sets the look). Copy it in **unmodified**:
31
+
32
+ ```bash
33
+ cp ../hyperframes-creative/frame-presets/<preset>/FRAME.md "$PROJECT_DIR/frame.md"
34
+ ```
35
+
36
+ Then fill the storyboard frontmatter `style` from it: the `font` from its `typography:` and a
37
+ ≤4–6 swatch `palette` from its `colors:`. **Quote the hex / family verbatim — never invent or
38
+ round.** Every group's palette params draw from this one palette; that unity is what makes
39
+ different templates read as one piece.
40
+
41
+ ## Step B — per frame, decide its groups
42
+
43
+ A frame is usually **one group** (one template or one free composition spanning the frame).
44
+ Subdivide into 2+ groups **only when a single treatment can't cover the frame** — e.g. a busy
45
+ opener plus a closing lockup. When you split, cut at a **real audiomap anchor** inside the
46
+ frame's span (a `key_moment` / `phrase` edge / onset-cluster gap), **never inside a `rolls[]`
47
+ run**, and keep every group **≥ ~1 bar**. Density does **not** force more groups — a dense
48
+ frame is usually ONE group whose template absorbs the density internally (a meta-template like
49
+ `poster-tile-mosaic`). **Group count tracks distinct treatments, not beats.**
50
+
51
+ ## Step C — per group, pick a treatment (exactly one of three)
52
+
53
+ ### A. Match a template
54
+
55
+ Read [`template-catalog.md`](template-catalog.md). Match the group's `feel` + `mood` + `pacing`
56
+ to a template's **Reach for it when**; take the closest fit. Then bind it:
57
+
58
+ - Fill `params` (keys from the catalog entry) — your copy into text slots, palette from the brand spine, `duration` = the group's span length.
59
+ - Fill `role_bindings` with this group's **real anchor seconds** read from `audiomap.json` over its span (not example times).
60
+ - If the template's natural stop and the group's span end disagree, snap to the nearest anchor.
61
+
62
+ ### B. Free-compose (no template fits)
63
+
64
+ Write a `free_design` — one visual thesis from [`motion-primitive-catalog.md`](motion-primitive-catalog.md)
65
+ (a dominant system + the named L0 primitives + a density topology) + `anchors` (the real
66
+ beat / onset seconds the moves ride). Free-compose is a **first-class** choice, written as
67
+ carefully as a matched group — never a failure.
68
+
69
+ ### C. Asset treatment (only when the user supplied assets and they fit)
70
+
71
+ Make it an `asset` group ([`montage.md`](montage.md)). **Obey `pacing`:** on a `beat_cut`
72
+ frame use `beat_cut` (one clip per anchor) or `bg_under_text`; on a `phrase_flow` frame use
73
+ `ken_burns` or a slow crossfade — **never** per-onset hard cuts. Assets are additive: if none
74
+ fits a group, fall back to template / free (typography is the floor — a complete video needs
75
+ no assets).
76
+
77
+ ## Copy (you own the words)
78
+
79
+ - Keep exact user words; else invent with taste, on the brief's mood.
80
+ - **Message vs texture:** a readable word holds ≥1 beat (headline 3–8, sentence 4–10), stable + focal; a word held <1 beat is texture (strobe / grid / ticks). Never force a message onto a sub-beat — demote it to texture.
81
+ - Place copy into the template's text params, onto a free group's anchors, or as an asset group's `overlay_copy`. Declare the anchor + accumulate / stagger intent; leave micro-timing to the worker.
82
+ - A closing logo / CTA lands on the final hit / hard stop and holds through trailing silence.
83
+
84
+ ## Transitions (you do not emit them)
85
+
86
+ Everything is a **0ms hard cut** for now. **frame → frame** is owned by the assembler
87
+ (back-to-back files); adjacent `span_sec` already imply the cut. **group → group inside a
88
+ frame** is owned by the worker on its frame timeline; you only set each group's `span_sec`.
89
+
90
+ ## Write + validate
91
+
92
+ Complete `STORYBOARD.md` ([`storyboard-format.md`](storyboard-format.md)), then run
93
+ `node scripts/validate-plan.mjs` and fix every `✗`. Show the user a frame-by-frame summary and
94
+ iterate until approved.
95
+
96
+ ## Self-check
97
+
98
+ - `frame.md` is a verbatim copy of one preset; frontmatter `style.font` / `style.palette` are drawn from it (exact values).
99
+ - Every frame became ≥1 group; groups tile the frame span in order; no group < ~1 bar; no group boundary inside a `rolls[]` run.
100
+ - Each group is exactly one of template / free_design / asset.
101
+ - Template `params` keys match the catalog entry; `role_bindings` / `anchors` use real audiomap seconds.
102
+ - Asset treatments obey `pacing` (no `beat_cut` on a `phrase_flow` frame).
103
+ - Every group's palette draws from the one brand palette.
104
+ - `duration_s == audiomap.audio.duration_sec`; `validate-plan.mjs` passes.
@@ -0,0 +1,94 @@
1
+ # STORYBOARD.md format — frames → groups
2
+
3
+ `STORYBOARD.md` is the single reviewable plan the user approves at Step 3 and the **manual**
4
+ each frame-worker follows at Step 4. It is **hierarchical**: one block per **frame**, written
5
+ as a `## Frame N — <frame_id>` heading (the parser recognizes `Frame`). **One frame = one
6
+ scene = one composition file.** Inside each frame block are its **groups** (the treatment
7
+ units). The assembler reads the frame level (`duration` → `data-start`, `src`); the worker
8
+ reads its own frame block. A frame's **composition id = its `src` file stem**
9
+ (`compositions/frames/01-f1.html` → `01-f1`), which the worker uses as `data-composition-id`
10
+ and the `window.__timelines` key.
11
+
12
+ Step 2 writes the skeleton (frame fields, groups `TBD`); Step 3 fills the groups + brand. It
13
+ is a build spec, not code — the planner writes WHAT, the worker decides HOW. **Never write
14
+ millisecond tweens here.**
15
+
16
+ ## File shape
17
+
18
+ YAML frontmatter (the video-wide spine) + one `## Frame N — <frame_id>` block per frame.
19
+
20
+ ```markdown
21
+ ---
22
+ compositionId: bgm
23
+ duration_s: 30.0 # == audiomap.audio.duration_sec, exactly
24
+ canvas: { w: 1920, h: 1080, fps: 30 }
25
+ style: # brand spine — from the chosen frame.md preset (Step 3)
26
+ font: "EB Garamond / Inter / JetBrains Mono" # the preset's typography, verbatim
27
+ palette: ["#FAF9F5", "#141413", "#CC785C", "#181715"] # ≤4–6 swatches from the preset's colors
28
+ assets: false # false, or a note like "assets/ has 6 user photos"
29
+ build_notes: ["one paused timeline per frame", "no remote assets"]
30
+ avoid: ["generic slideshow", "tiny unreadable hero text"]
31
+ ---
32
+
33
+ ## Frame 1 — f1
34
+
35
+ - src: compositions/frames/01-f1.html # worker writes here; assembler refs it; stem (01-f1) = composition id
36
+ - duration: 7.198s # = span length; the assembler reads this for cumulative data-start
37
+ - span_sec: [0.0, 7.198] # track seconds; frames tile the track
38
+ - pacing: beat_cut # beat_cut | phrase_flow (from the skeleton; obey it)
39
+ - mood: [hype]
40
+ - feel: accelerating onset stream into a held downbeat
41
+
42
+ ### Groups
43
+
44
+ - **g1** — template: `intro-kinetic-cascade`
45
+ - span_sec: [0.0, 4.017] # frame-LOCAL build is 0-based; these are TRACK seconds (worker subtracts frame start)
46
+ - params: { theme: "light", icon: "bolt", phrases: "[…]", climax: "{…}" }
47
+ - role_bindings: { phrase: { times: [0.14, 0.55, 0.87] }, climax: { in: 3.79, iconAt: 4.9 } }
48
+ - copy: "GROWTH THROUGH CREATIVITY"
49
+ - **g2** — free_design
50
+ - span_sec: [4.017, 7.198]
51
+ - free_design: { dominant_system: "per-onset typography", primitives: ["content-swap", "braam-punch"], density_topology: "accumulate" }
52
+ - anchors: [4.10, 4.80, 5.50, 6.20] # onset seconds the reveals ride (from audiomap)
53
+ - copy: ["BUILD", "SHIP", "REPEAT"]
54
+
55
+ ## Frame 2 — f2
56
+
57
+ …
58
+ ```
59
+
60
+ ## Frame block — required fields
61
+
62
+ | field | meaning |
63
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
64
+ | heading `## Frame N — <frame_id>` | `frame_id` matches the `src` stem; `N` = the 1-based index. |
65
+ | `src` | `compositions/frames/NN-<frame_id>.html` — where the worker writes; the assembler references it. Stem = `data-composition-id`. |
66
+ | `duration` | the frame span length in seconds (e.g. `7.198s`) — **required**; the assembler sums these for cumulative `data-start`. |
67
+ | `span_sec` | `[start, end]` track seconds. `duration = end − start`. |
68
+ | `pacing` | `beat_cut` \| `phrase_flow` — from the skeleton; the worker must obey (no hard-cut on `phrase_flow`). |
69
+ | `mood`, `feel` | from the skeleton; tone + the one-line music situation the planner matched against. |
70
+ | `### Groups` list | ≥1 group; groups tile the frame span in order. |
71
+
72
+ ## Group entry — exactly one of three kinds
73
+
74
+ Every group is **template** OR **free_design** OR **asset** — never two, never none. All three
75
+ carry `span_sec` (track seconds, tiling the frame) and may carry `copy`.
76
+
77
+ - **template** — `template: <catalog id>` + `params` (keys from the catalog entry) + `role_bindings` (real audiomap anchor seconds) + `copy`.
78
+ - **free_design** — `free_design: { dominant_system, primitives: [catalog ids], density_topology }` + `anchors` (real beat / onset seconds) + `copy`.
79
+ - **asset** — `asset: { treatment, clips: [public/…], anchors?, overlay_copy? }`. `treatment` ∈ `beat_cut` (one clip per anchor — only on a `beat_cut` frame) | `ken_burns` (slow push — fits `phrase_flow`) | `bg_under_text` (clip dimmed behind a template / free group). See [`montage.md`](montage.md).
80
+
81
+ ## Rules
82
+
83
+ - Frames tile the track (gap-free, first at 0, last at `duration_s`); a frame's groups tile its span; no group < ~1 bar; no group boundary inside a `rolls[]` run.
84
+ - `params` keys come from the template's [`template-catalog.md`](template-catalog.md) entry.
85
+ - All anchor seconds are **track seconds from `audiomap.json`** — the worker converts to frame-local by subtracting the frame start.
86
+ - A `phrase_flow` frame MUST NOT use `beat_cut` asset treatment or per-onset hard cuts.
87
+ - The brand `style` is set once; every group's palette draws from it.
88
+ - Reviewable prose-plus-data; keep it scannable. No GSAP, no millisecond timing.
89
+
90
+ ## Self-check (the planner runs `validate-plan.mjs`)
91
+
92
+ - frontmatter has `compositionId`, `duration_s` (== audiomap), `canvas`, `style`.
93
+ - every frame has `span_sec` + `src` + positive `duration` + `pacing` + ≥1 group; frames tile the track.
94
+ - every group is exactly one of template / free_design / asset; template ids exist in the catalog; anchors are real audiomap seconds; `phrase_flow` frames have no `beat_cut`.
@@ -0,0 +1,106 @@
1
+ # Template catalog — the selection menu (Step 3)
2
+
3
+ Reverse-engineered, asset-free **group templates**. This file is the **only** thing the
4
+ planner reads to pick one — you do **not** open the template's `index.html` to choose. One
5
+ template realizes **one group** of a frame (a frame may stack several groups; the brand spine
6
+ unifies them).
7
+
8
+ **How to pick.** For each group, read its frame's `pacing` + `mood` + the one-line music
9
+ situation from the skeleton, then scan **Reach for it when** + **Best span** below and take the
10
+ closest fit. If nothing fits, **free-compose** from
11
+ [`motion-primitive-catalog.md`](motion-primitive-catalog.md) — that is a first-class choice, not a
12
+ failure.
13
+
14
+ **Brand comes from `frame.md`, not the template.** Templates ship their own demo palette
15
+ (`theme` / `palette` / color params). Fill those params from the project's `frame.md` (the
16
+ chosen preset's colors + fonts) so every group reads as one piece — the template supplies the
17
+ **motion + layout**, the preset supplies the **look**.
18
+
19
+ **Params** are listed so you can fill content slots in the storyboard. Exact semantics +
20
+ defaults live in each template's `index.html` (`data-composition-variables`) — the frame-worker
21
+ reads those at build time; you only name the values.
22
+
23
+ Pacing tag: every template below is **beat_cut** except `held-message-living-field`
24
+ (**phrase_flow**). Never put a beat_cut template on a phrase_flow frame.
25
+
26
+ ## Group duration discipline
27
+
28
+ Template choice is per **group**, not per frame. A frame longer than a template's **Best span**
29
+ should usually split into multiple groups at real audiomap anchors (`SURGE`, `DROP`, roll edge,
30
+ hard_stop, phrase edge) instead of stretching one template across the whole frame.
31
+
32
+ - **Best span** below is the active treatment span: the part where the template's system is doing
33
+ meaningful motion. A short readable hold at the end is fine; a long empty tail means pick another
34
+ group.
35
+ - **Frames over ~6s** usually need 2+ groups. Beat-cut exceptions are rich programs with real
36
+ sub-phases (`poster-tile-mosaic`, sometimes `card-flyby`); phrase-flow exceptions use
37
+ `held-message-living-field`.
38
+ - **Roll templates are one-roll tools.** If a frame has two rolls or a drop between rolls, split it
39
+ into two groups.
40
+ - Do not extend by slowing every tween. Preserve the template's motion feel, then fill extra time
41
+ with a hold / palette change / new group.
42
+
43
+ ---
44
+
45
+ ### card-flyby
46
+
47
+ - **What** — a depth column of cards rolls forward through perspective; each landing beat tumbles the next card into the front slot with a solid colored wipe, the old front falls toward camera, dwells shrink card-to-card so the deck accelerates into a held final card.
48
+ - **Reach for it when** — a stream of discrete onsets that **accelerate** (gaps shrinking / a build into a downbeat) and you want to flash a **sequence of items** — titles, projects, posters, tiles — one per hit, climaxing on a held card.
49
+ - **Best span** — **4-6.5s** for 4-7 landings plus a short final hold; split at the next downbeat if it wants to run **>7s**.
50
+ - **Params** — `theme`, `bgColor`, `cards`, `landings`, `yaw`
51
+
52
+ ### held-message-living-field · phrase_flow
53
+
54
+ - **What** — a readable mark (logo / word / title) held dead still over a soft, color-shifting blurred field; only the field breathes.
55
+ - **Reach for it when** — a **calm / sparse** stretch with an onset desert — energy present but few or no onsets (a held pad or riser); you have one word or mark to hold and let breathe.
56
+ - **Best span** — **6-16s**; this is the long-group exception. Under 4s feels underdeveloped; over ~20s needs a state change or another group.
57
+ - **Params** — `markText`, `titleText`, `tagText`, `palette`, `flowSpeed`, `duration`
58
+
59
+ ### held-text-strobe-burst
60
+
61
+ - **What** — a dead-still word whose letters flip through texture-filled frames (texture-clipped fill + per-frame tint + bg color) every ~3 frames, in short bursts pinned to a roll.
62
+ - **Reach for it when** — a **dense, hard-hitting roll / fill** and a single word you want to strobe through textures for a few bars. (Ships texture-mask PNGs under `assets/`.)
63
+ - **Best span** — **1.2-3.5s**; strobe fatigue starts fast, so cap at ~4s and cut to a cleaner system.
64
+ - **Params** — `markText`, `fontStyle`, `markScale`, `idleColor`, `idleInk`, `frames`, `strobePlan`, `decor`, `duration`
65
+
66
+ ### intro-kinetic-cascade
67
+
68
+ - **What** — a line laid out as a sequence of big editorial **phrases** (each a stacked poster with one enlarged hero word), revealed word-by-word on its anchors, hard cut between phrases, climaxing on a phrase that slides in with a swappable ringing **icon** (bell / cursor / sparkle / emoji / SVG).
69
+ - **Reach for it when** — an **intro / opening statement**: a short line to land word-by-word as big type, climaxing on one keyword + an icon. Medium-or-more energy, steady grid.
70
+ - **Best span** — **3.5-7s** for 2-4 phrase beats; if the statement needs more time, make the next clause a new group.
71
+ - **Params** — `theme`, `icon`, `phrases`, `climax`
72
+
73
+ ### logo-split-lockup-pulse
74
+
75
+ - **What** — a two-part mark joined at center splits left↔right to open a gap, grows a center word-lockup one word per onset (key word lands on the downbeat surge), snap-closes on a hit, then pulses with the beat.
76
+ - **Reach for it when** — a short **logo / brand sting** (not a typed sentence): fast dense onsets + a sustained roll bed to pulse on, with a left/right bracketing mark.
77
+ - **Best span** — **2-4s**; at **>4.5s** it reads like a sting stretched too long. Follow with a separate held-lockup / next idea group.
78
+ - **Params** — `bgColor`, `markColor`, `textColor`, `leftMark`, `rightMark`, `word1`, `word2`, `word3`, `word4`
79
+
80
+ ### poster-tile-mosaic
81
+
82
+ - **What** — a packed **mosaic** of different-sized colored tiles that tessellate to fill the frame (no overlap), driven by interchangeable beat-synced operations: staggered enter/exit, locked global recolor, snake-fill + overlay.
83
+ - **Reach for it when** — many discrete, individually-placeable onsets (a hit for every tile move) with distinct sub-phases you want articulated differently (accumulate → recolor-on-roll → fill-then-drop). A dense section best held as **one** rich tile program rather than split.
84
+ - **Best span** — **4-7s**, up to **8s** only when the program has clear sub-phases. If the music changes regime, split even if the tile system could continue.
85
+ - **Params** — `bgColor`, `tiles`, `bands`, `gap`, `showText`, `labels`, `program`
86
+
87
+ ### roll-flipbook-word-cycle
88
+
89
+ - **What** — a hi-hat roll drives a centred word that flips every 16th-note through a word list; optionally the flicker resolves and locks into a final phrase.
90
+ - **Reach for it when** — a **fast sustained-fill roll** (hundreds of hits/min, ~16th-note) with no single readable message — fill the roll with a rapidly-cycling word flipbook.
91
+ - **Best span** — **1.2-3.8s**, one roll into one resolve. Two rolls, or a drop between rolls, means two groups.
92
+ - **Params** — `bgColor`, `textColor`, `accentColor`, `flipWords`, `resolveText`, `periodChar`
93
+
94
+ ### split-anchor-word-slot
95
+
96
+ - **What** — a held left anchor column of fixed-word rows beside a torn-paper word-slot box on the right, driven by beat-synced operators: anchor lock-in, slot word-group cycle (in/out + per-line color), full-scene background flip, per-beat jitter, box-zoom exit wipe. Row count + number of flips are data.
97
+ - **Reach for it when** — a short section with a **held idea** (a brand / name to anchor on the left) **and** a stream of onsets popping separate words on the right, plus a dense run to ride a shake on and a strong downbeat to wipe out into.
98
+ - **Best span** — **3-6s**; above ~6.5s the fixed anchor goes stale unless the right slot enters a new group/program.
99
+ - **Params** — `bgColor`, `anchors`, `theme`, `showText`, `program`
100
+
101
+ ### typewriter-phrase-keyword-shuffle
102
+
103
+ - **What** — words type in one-per-onset to spell a phrase, then one keyword cycles typefaces on the beat while everything else holds dead still.
104
+ - **Reach for it when** — a steady grid with a **continuous onset stream** (no desert): a phrase to type out, then a keyword to shuffle. The inverse of `held-message-living-field` (which wants an onset desert).
105
+ - **Best span** — **2.5-5s**; if the phrase cannot type and shuffle inside ~5s, reduce words or split the sentence across groups.
106
+ - **Params** — `bgColor`, `textColor`, `accentColor`, `lead1`, `lead2`, `lead3`, `keyword`, `periodChar`