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,250 @@
1
+ # Component quality bar
2
+
3
+ What a catalog component has to be for us to keep shipping it. Every criterion here comes from a
4
+ defect found and verified on this branch, not from taste.
5
+
6
+ A registry component is a motion primitive an author installs into their own composition and
7
+ ships. The catalog page is marketing; the installed file is the product. Every criterion below is
8
+ therefore evaluated against **the item's own `<name>.html`, mounted alone**, never against
9
+ `demo.html` and never against the catalog page, because both of those carry scaffolding the author
10
+ does not receive.
11
+
12
+ Read this before auditing, scoring or cutting anything. It exists so several people auditing in
13
+ parallel reach the same verdict on the same item.
14
+
15
+ ## The one rule
16
+
17
+ > An item earns its place when the file the author installs, mounted by itself on the ground it
18
+ > was designed for, renders the subject its name promises and moves the way its description says.
19
+ > Anything that fails that and cannot be fixed into something no other item already does is cut.
20
+
21
+ ## How an audit runs
22
+
23
+ Two passes, in this order. The mechanical pass is free and runs across every item in seconds; the
24
+ visual pass costs a browser and eyes, so it is spent only on what the mechanical pass could not
25
+ decide. A mechanical signal is a **candidate**, never a verdict.
26
+
27
+ | Pass | Cost | Decides |
28
+ | -------------- | -------------- | ---------------------------------------------------------------------------------------- |
29
+ | **Mechanical** | grep and hash | duplicates, missing timeline, banned hexes, empty markup, name gaps, unbounded variables |
30
+ | **Visual** | render and eye | renders at all, implements its description, legible, deterministic |
31
+
32
+ `hyperframes check` is not a visual gate. It passes compositions that render nothing: a blank plot
33
+ produces no error, no warning and no layout finding, because an empty render is a valid render. No
34
+ criterion below may rest on `check` alone.
35
+
36
+ ### The mount harness
37
+
38
+ Three ways to get a false verdict from a working item, all of them the harness's fault. Build the
39
+ shell like this or the audit invents defects.
40
+
41
+ 1. **Two shapes of item, two ways to mount.** If the file, with HTML comments stripped, contains a
42
+ `data-composition-id`, it is a sub-composition: mount it with
43
+ `data-composition-src="./<name>.html"` on a clip. If it does not, it is a snippet: paste it
44
+ inline inside a `class="clip"` div. Inlining a sub-composition nests a document in a document
45
+ and renders black, which reads exactly like a dead item.
46
+ 2. **Use the item's own ground.** Take the background off its `demo.html` body rule. A snippet
47
+ whose ink defaults to `#18181b` is a 16:1 headline on its own `#f7f7f8` and an invisible 1.5:1
48
+ smudge on a dark stage. The stage is not evidence.
49
+ 3. **Load GSAP and register a paused root timeline**, then snapshot with
50
+ `hyperframes snapshot . --at 0.05,1.2,2.5,4.0 --no-end` and read the contact sheet.
51
+
52
+ An item whose own `data-duration` is shorter than the shell's will be blank in the last frames.
53
+ That is arithmetic, not a defect.
54
+
55
+ ## Fatal, cut the item
56
+
57
+ Fatal means there is nothing worth keeping underneath the defect: no edit short of writing a
58
+ different item fixes it, or the fix produces something the catalog already ships. Cite the named
59
+ evidence; a fatal verdict without it does not count.
60
+
61
+ **F1. Does not implement its own description.** The markup contains no trace of the subject the
62
+ item is named and described for. Not "renders badly", but "the thing is absent from the file".
63
+ `ecosystem-constellation`, `hero-device-assemble` and `terminal-to-browser-deploy` are the same
64
+ file holding empty card divs with different headings.
65
+ _Check:_ read the markup, then swap the name for any other item's name. If nothing in the file
66
+ would have to change, the name is a label on a generic shell.
67
+ _Evidence:_ the named subject has no element (no nodes in a constellation, no terminal in a
68
+ terminal deploy).
69
+
70
+ **F2. Redundant duplicate.** Same **motion fingerprint** and same **markup skeleton** as another
71
+ item that survives. Fingerprint is the gsap call list with selectors neutralised, keeping props,
72
+ durations and eases; skeleton is the tag sequence with classes and text stripped. One wipe
73
+ currently ships eight times with the same properties, durations and easings; one word-stagger
74
+ ships seven times.
75
+ _Evidence:_ both hashes match a sibling, and the sibling wins the tie-break below.
76
+
77
+ **F3. Renders nothing.** Frames are blank, or the named subject never appears, with the item
78
+ mounted correctly on its own ground and its recipe applied.
79
+ _Evidence:_ four blank frames plus the cause, in the item rather than the harness: a missing
80
+ sibling asset, a `ReferenceError` in the console, a subject that never enters the viewport. A
81
+ frame-capture artifact that renders correctly live is a false alarm, so confirm on a real page
82
+ before recording it.
83
+
84
+ **F4. The description is a different item.** The frames show the promised event never happening: a
85
+ wipe that never reveals its second panel, a chart that draws no series. Not a wording gap.
86
+
87
+ **F5. Cannot be made seekable.** Frame N genuinely depends on frame N-1 with no closed form and no
88
+ bounded replay, and making it seekable would make it a different effect. Rare. Most accumulators
89
+ have a trivial rewrite, so reach for this only after establishing there is none; a seeded,
90
+ index-derived replacement for `Math.random()` is X7, not F5.
91
+ _Evidence:_ two snapshots of the same timestamp reached by different seek paths differ.
92
+
93
+ ## Fixable, keep and repair
94
+
95
+ Real defects, but the item has a reason to exist that nothing else covers and the repair is
96
+ bounded. Log the specific fix, never "needs polish".
97
+
98
+ **X1. No timeline of its own.** No `__timelines` registration, so the installed artifact renders a
99
+ still frame while the catalog page looks fine, because the generator transplants the demo's
100
+ timeline into the preview. 97 of the 213 new components are in this state.
101
+ _Repair:_ fold the trailing `Timeline integration:` recipe into a real `<script>` that builds a
102
+ paused timeline and registers it. Roughly 10 to 15 minutes for a single-element item.
103
+ _Escalates to fatal_ only when there is no motion anywhere to fold in, which usually means F1 too.
104
+
105
+ **X2. Name claims a technique the code lacks.** Grep the code region, never the doc header: the
106
+ header's prose is full of the exact words you are looking for, and will report a match on an item
107
+ that has none.
108
+ | Name pattern | Must contain |
109
+ | -------------------------------- | -------------------------------------------------- |
110
+ | `spring-*` | `elastic`, `back.`, `bounce` or a custom spring ease |
111
+ | `mask-*`, `*-mask*` | `mask` or `clip-path` |
112
+ | `frosted*`, `*glass*` | `backdrop-filter` |
113
+ | `*3d*`, `*depth*`, `*orbit*`, `*camera*` | `perspective`, `rotateX`, `rotateY`, `translateZ` |
114
+ | `*-draw`, `*-trace`, `*stroke*` | `stroke-dash` or `pathLength` |
115
+ _Repair:_ add the technique, or rename the item. Renaming is often the honest fix.
116
+
117
+ **X3. Illegible.** At 1920x1080 on its own ground: text under 4.5:1, or a subject whose smallest
118
+ meaningful feature is under about 24px.
119
+ _Repair:_ one value step, per `placeholder-material.md`. Text never sits below L1.
120
+
121
+ **X4. Placeholder gradients.** The purple and blue palette standing in for content.
122
+ _Repair:_ the monochrome ramp. Already done across the catalog, so a new instance is a regression,
123
+ not a legacy defect.
124
+
125
+ **X5. Hardcoded ink, no theme token.** A literal colour on the item's own text or subject with no
126
+ `var(--...)` fallback chain, so it disappears when an author drops it on the opposite theme.
127
+ _Repair:_ route it through the theme token with the literal as fallback.
128
+
129
+ **X6. No markup of its own.** The file is a `<style>` and a `<script>` and nothing else, so
130
+ mounting it renders an empty box.
131
+ _Repair:_ ship sample markup, or declare it an attachment snippet in `registry-item.json` and give
132
+ the demo a host element.
133
+
134
+ **X7. Unseeded randomness.** Scatter derived from `Math.random()` rather than the element index.
135
+ _Repair:_ derive from the index.
136
+
137
+ **X8. Declared bounds it cannot honour.** A number variable with no `min`/`max`, so the control
138
+ offers values the item cannot express, or a default it can never return to.
139
+ _Repair:_ declare real bounds, or use a numeric field instead of a slider.
140
+
141
+ ## Duplicates, which one survives
142
+
143
+ A group is the set of items sharing both hashes from F2. Exactly one survives, chosen in order:
144
+
145
+ 1. **The one whose name describes what the shared motion actually does.** A group where one member
146
+ is a directional wipe and the rest borrowed it keeps the directional wipe.
147
+ 2. **Then the one with subject-specific markup.** More elements that only make sense for that
148
+ name, not more elements.
149
+ 3. **Then the one already on `origin/main`.** Removing a shipped item breaks installs.
150
+ 4. **Never a member whose name claims something the shared implementation does not do.**
151
+ `frosted-glass-wipe` has no `backdrop-filter`, `spring-scale-in` has no spring, `mask-reveal-up`
152
+ has no mask, so none of those three is the survivor. Such a member is F2 and X2 at once, and X2
153
+ cannot be fixed without breaking the group. If no member is honest, keep the plainest name.
154
+
155
+ **If every member of a group fails F1, the group is cut entire.** Do not preserve a survivor to
156
+ soften the count. Twelve names on one empty card shell is one bad item, not twelve, and keeping one
157
+ of them keeps the bad item.
158
+
159
+ Same motion with genuinely different subjects is not a duplicate. A bar chart, a line chart and a
160
+ dashboard populate can share a stagger; the subject is the item.
161
+
162
+ ## Never cut
163
+
164
+ Protection is per criterion, not blanket. A protected item still answers every other row.
165
+
166
+ **N1. Load-bearing colour** is exempt from X4 only. `chromatic-aberration-wipe` (the RGB split is
167
+ the effect), `confetti` (multi-hue is the celebration), `matrix-decode` (green is its identity),
168
+ `mesh-gradient-bg` (the gradient is the subject), `multi-device-splay`. `us-map`'s gradient is a
169
+ sequential choropleth scale, which is colour carrying data.
170
+
171
+ **N2. Real product depiction** is exempt from X4 and F1. A Figma logo inside a Figma mock is not
172
+ slop; the HyperFrames wordmark in `logo-brand-close` is the subject. Judge the placeholder content,
173
+ not the depicted product.
174
+
175
+ **N3. Deliberate static** is exempt from X1. An item whose description promises no motion is not
176
+ failing X1. A style snippet or a passive overlay is allowed to sit still.
177
+
178
+ **N4. Environment sets** are exempt from F3. An item that is a backdrop rather than a shot is not
179
+ failing F3 for being calm. Measured PSNR between frames separates the two: sets score 45 or higher,
180
+ things that genuinely run score 17 to 24. Judge against the description.
181
+
182
+ **N5. A rest state that is the recipe's `from` state** is exempt from F3. `confetti` ships
183
+ `.particle` spans sitting at opacity 0 until the timeline fans them out. Still is not dead.
184
+
185
+ **N6. Attachment snippets** are exempt from F3. A text splitter has no markup by design. Grade X6.
186
+
187
+ **N7. The 36 items already on `origin/main`** are out of audit scope.
188
+
189
+ ## Mechanical first pass
190
+
191
+ | Signal | How | Maps to |
192
+ | ------------------- | ------------------------------------------------------------------------------------- | ------- |
193
+ | No timeline | `grep -L __timelines` over each composition | X1 |
194
+ | Duplicate | motion fingerprint AND markup skeleton hashes, matched pairwise | F2 |
195
+ | Empty shell | markup skeleton matches an unrelated item, or is `<h3>` + `<p>` + generic panels only | F1 |
196
+ | No markup at all | element count of the comment-, style- and script-stripped file is 0 | X6 |
197
+ | Placeholder palette | grep the six banned hexes | X4 |
198
+ | Name gap | the X2 table, grepped over the code region only | X2 |
199
+ | Unbounded number | read `min`/`max` in `registry-item.json` | X8 |
200
+ | Non-determinism | grep `Math.random`, `Date.now`, `performance.now`, `requestAnimationFrame` | X7, F5 |
201
+
202
+ ## Visual pass, required for a verdict
203
+
204
+ Render at least four frames across the duration from the **composition**, not the demo, mounted per
205
+ the harness rules above, and look at them. Then, for anything not scoring clean, confirm on the
206
+ real catalog page before recording it.
207
+
208
+ Record per item: the criteria it fails, the evidence you saw, and fatal or fixable. An unviewed
209
+ item is not a pass.
210
+
211
+ ## Calibration
212
+
213
+ Ten items scored with this rubric, frames rendered and looked at. Three of them corrected the
214
+ rubric rather than the other way round.
215
+
216
+ | Item | Expected | Frames actually showed | Verdict |
217
+ | ---------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------ |
218
+ | `ecosystem-constellation` | fatal | Sidebar with three pill buttons and three empty white panels. No nodes, no edges. Identical at all four timestamps. | **Cut** F1, F2, F4 |
219
+ | `terminal-to-browser-deploy` | fatal | Pixel-identical to the above, only the `<h3>` and one subtitle differ. No terminal, no browser. | **Cut** F1, F2, F4 |
220
+ | `frosted-glass-wipe` | fatal | One card reading "Before", static, forever; the "After" panel stays clipped. Recipe byte-identical to `directional-wipe`. | **Cut** F2, F4, X2 |
221
+ | `char-slam-explode` | pass | Letters scattered at 0.05s, assembled into "Impact" by 1.2s, held. Real per-character motion. | **Keep** |
222
+ | `echo-trail` | pass | Card travels left to right with a decaying blurred echo trail behind it. Legible on its own light ground. | **Keep** |
223
+ | `logo-brand-close` | pass | "H" resolves into the full wordmark, tagline and URL land after it. Staged, legible. | **Keep** |
224
+ | `blur-in` | borderline | Still, but the still is the correct rest state: legible headline, unique implementation, theme-token ink. | **Keep**, X1 |
225
+ | `spring-scale-in` | borderline | Legible on its own `#f7f7f8`. Ease is `power3.out`, no spring anywhere. Shares its recipe with six others. | **Cut** F2, X2 |
226
+ | `confetti` | borderline | Card and mesh, no particles visible. Source ships `.particle` spans the recipe fans out from opacity 0. | **Keep**, X1 |
227
+ | `bottom-up-letters` | borderline | Four blank frames. The file is a splitter with no markup at all. | **Keep**, X6 |
228
+
229
+ Three corrections the calibration forced, all of them false cuts:
230
+
231
+ - `spring-scale-in` first scored X3 at roughly 1.5:1. That was the harness's dark stage, not the
232
+ item. Hence "use the item's own ground".
233
+ - `confetti` first scored F3. Its rest state is its recipe's `from` state. Hence N5.
234
+ - `char-slam-explode` first scored F3 with four black frames. It is a sub-composition and was being
235
+ inlined. Hence the two-shapes rule.
236
+
237
+ A rubric that cuts a working item is wrong even when the verdict is convenient.
238
+
239
+ ## Checklist
240
+
241
+ Per item, in order. Stop at the first fatal.
242
+
243
+ - [ ] Mounted the right way for its shape, on its own ground, with GSAP and a paused root.
244
+ - [ ] F1: the markup contains the named subject.
245
+ - [ ] F2: motion fingerprint and markup skeleton are not both shared with a survivor.
246
+ - [ ] F3: it renders something with the recipe applied, or it is protected by N3 to N6.
247
+ - [ ] F4: the frames show the event the description promises.
248
+ - [ ] F5: frame N is computed from N.
249
+ - [ ] X1 through X8 logged with the specific fix.
250
+ - [ ] Verdict cites the evidence the criterion names, not an impression.
@@ -0,0 +1,174 @@
1
+ # Contributing a Block or Component to the Registry
2
+
3
+ Guide the user from idea to merged PR for a new registry block or component.
4
+
5
+ ## Workflow
6
+
7
+ ```
8
+ 1. Clarify → 2. Scaffold → 3. Build → 4. Validate → 5. Preview → 6. Ship
9
+ ```
10
+
11
+ ### Step 1: Clarify
12
+
13
+ Ask what they're building. The registry has two item types:
14
+
15
+ - **Block** (`registry/blocks/`, type `hyperframes:block`) — a full standalone composition with fixed dimensions and duration. Caption styles, VFX effects, title cards, lower thirds.
16
+ - **Component** (`registry/components/`, type `hyperframes:component`) — a reusable snippet with no fixed dimensions or duration. CSS effects, text treatments, overlays that adapt to any composition size.
17
+
18
+ Then ask:
19
+
20
+ - One-sentence description of the effect
21
+ - Visual reference (URL, screenshot, or description)
22
+ - Who uses this and when?
23
+
24
+ ### Step 2: Scaffold
25
+
26
+ Create the registry structure:
27
+
28
+ **For blocks:**
29
+
30
+ ```
31
+ registry/blocks/{block-name}/
32
+ {block-name}.html
33
+ registry-item.json
34
+ ```
35
+
36
+ **For components:**
37
+
38
+ ```
39
+ registry/components/{component-name}/
40
+ {component-name}.html
41
+ registry-item.json
42
+ ```
43
+
44
+ **Naming convention:**
45
+
46
+ | Item name | ID prefix | Example IDs |
47
+ | ---------------- | --------- | ---------------------- |
48
+ | `cap-hormozi` | `hz` | `hz-cg-0`, `hz-cw-3` |
49
+ | `cap-typewriter` | `tw` | `tw-cg-0`, `tw-ch-0-5` |
50
+ | `vfx-chrome` | `vc` | `vc-canvas` |
51
+
52
+ Use a 2-3 letter prefix. ALL element IDs must use this prefix to avoid collisions in sub-compositions.
53
+
54
+ **registry-item.json** — use the canonical templates in [templates.md](templates.md) (block and component variants, both with all required fields).
55
+
56
+ ### Step 3: Build
57
+
58
+ Apply the correct template based on type. See [templates.md](templates.md) for copy-paste starters.
59
+
60
+ #### Caption blocks
61
+
62
+ **Non-negotiable caption rules:**
63
+
64
+ - Font: **96px minimum** for proportional fonts. **64-72px acceptable for monospace** (wider characters need less size).
65
+ - Readability: `-webkit-text-stroke: 2-3px` OR multi-layer `text-shadow`
66
+ - Overflow: call `window.__hyperframes.fitTextFontSize()` on every group
67
+ - Karaoke: highlight active word via `tl.to(wordEl, { color/scale }, WORDS[wi].start)`
68
+ - Hard kill: `tl.set(groupEl, { opacity: 0, visibility: "hidden" }, g.end)` on EVERY group
69
+ - **Never use `tl.from(el, { opacity: 0 })` at the same position as `tl.set(el, { opacity: 1 })`** — the from clobbers the set. Use `tl.to` instead.
70
+
71
+ **Per-character animation** (typewriter, scramble):
72
+
73
+ - Wrap each character in `<span>` with ID `{prefix}-ch-{group}-{char}`
74
+ - Stagger via `tl.set` at computed intervals from word timestamps
75
+ - Cursors/decorative elements: use `tl.set` at intervals — NOT CSS animation (not seekable)
76
+
77
+ **Positioning variants:**
78
+
79
+ - Centered: `display: flex; align-items: center; justify-content: center;`
80
+ - Lower-third: `position: absolute; bottom: 100px; left: 0; width: 100%; text-align: center;`
81
+ - Left-aligned: `position: absolute; bottom: 100px; left: 120px; text-align: left;`
82
+
83
+ #### VFX blocks (Three.js)
84
+
85
+ - Use `three@0.147.0` from CDN (global script)
86
+ - `tl.eventCallback("onUpdate", renderScene); renderScene();` — NO requestAnimationFrame
87
+ - State proxy pattern: GSAP animates plain JS object, render function reads it
88
+ - Seeded PRNG (`mulberry32`) for randomness
89
+
90
+ #### All types
91
+
92
+ - **Placeholder content is monochrome** — read
93
+ [placeholder-material.md](placeholder-material.md) before choosing a single colour. Stand-in
94
+ screens, images, cards, avatars, logos and chart series use four alpha steps of the
95
+ composition's ink; accent marks one element and never a placeholder.
96
+ - `data-composition-id` MUST match `window.__timelines["id"]`
97
+ - All element IDs prefixed with block abbreviation
98
+ - `gsap.timeline({ paused: true })` — always paused
99
+ - No `Math.random()`, no `Date.now()`
100
+
101
+ ### Step 4: Validate
102
+
103
+ ```bash
104
+ hyperframes lint # 0 errors required
105
+ hyperframes check --no-contrast # 0 console errors required
106
+ ```
107
+
108
+ ### Step 5: Preview
109
+
110
+ ```bash
111
+ # Render preview video
112
+ hyperframes render -o preview.mp4
113
+
114
+ # Snapshot for visual QA
115
+ hyperframes snapshot --at "1.0,3.0,5.0,7.0"
116
+
117
+ # Publish to hyperframes.dev for review
118
+ npx hyperframes publish
119
+ ```
120
+
121
+ **Catalog preview image** — The catalog card uses a PNG at `docs/images/catalog/{kind}/{name}.png` (where `{kind}` is `blocks` or `components`). Generate it from a snapshot, then:
122
+
123
+ - **HeyGen internal contributors:** run `scripts/upload-docs-images.sh` (requires AWS profile `engineering-767398024897`)
124
+ - **External contributors:** attach the preview MP4 to your PR description. A maintainer will generate and upload the catalog image before merging.
125
+
126
+ ### Step 6: Ship
127
+
128
+ **All steps are required. Missing any one produces a broken catalog entry.**
129
+
130
+ `{kind}` is `blocks` or `components` depending on what you built in Step 1.
131
+
132
+ ```bash
133
+ # 1. Create branch
134
+ git checkout -b feat/registry-{name}
135
+
136
+ # 2. Format HTML
137
+ npx oxfmt registry/{kind}/{name}/*.html
138
+
139
+ # 3. Regenerate registry/registry.json from the item directories.
140
+ # Do not hand-edit it: an entry added by hand survives until the next
141
+ # regeneration and then vanishes, and one left behind for a directory that
142
+ # no longer exists is worse, because `hyperframes add <name>` resolves the
143
+ # name and then fails on missing files.
144
+ npx tsx scripts/generate-registry-items.ts
145
+
146
+ # 4. Generate catalog docs page
147
+ npx tsx scripts/generate-catalog-pages.ts
148
+
149
+ # 5. Publish to hyperframes.dev so reviewers can preview
150
+ npx hyperframes publish
151
+
152
+ # 6. Stage everything
153
+ git add registry/{kind}/{name}/ registry/registry.json docs/catalog/
154
+
155
+ # 7. Commit
156
+ git commit -m "feat(registry): add {name} — {one sentence}"
157
+
158
+ # 8. Push and open PR with hyperframes.dev link
159
+ git push origin feat/registry-{name}
160
+ gh pr create --title "feat(registry): {name}" --body "preview: {hyperframes.dev-url}"
161
+ ```
162
+
163
+ **If you don't have a GitHub account:** you need one to open a PR. Sign up at https://github.com/signup, then run `gh auth login`.
164
+
165
+ ## Quality Gate
166
+
167
+ - [ ] `hyperframes lint` → 0 errors
168
+ - [ ] `hyperframes check` → 0 console errors
169
+ - [ ] `npx oxfmt --check` passes
170
+ - [ ] `registry/registry.json` updated with new entry
171
+ - [ ] `scripts/generate-catalog-pages.ts` run (docs page generated)
172
+ - [ ] `npx hyperframes publish` run (claim your project URL)
173
+ - [ ] Preview MP4 attached to PR (external) or catalog PNG uploaded (internal)
174
+ - [ ] All IDs unique and prefixed
@@ -1,8 +1,24 @@
1
- # Registry Discovery
1
+ # Registry discovery
2
2
 
3
- ## Reading the registry manifest
3
+ ## Use the catalog command first
4
4
 
5
- The top-level `registry.json` lists all available items:
5
+ ```bash
6
+ npx hyperframes catalog
7
+ npx hyperframes catalog --type block
8
+ npx hyperframes catalog --type component
9
+ npx hyperframes catalog --type block --tag social
10
+ npx hyperframes catalog --json
11
+ npx hyperframes catalog --human-friendly
12
+ ```
13
+
14
+ - Default output is a readable table. It does not install anything.
15
+ - `--type` accepts `block` or `component`; `--tag` may narrow either result.
16
+ - `--json` is the deterministic agent and CI surface. Select a name, then run `npx hyperframes add <name>`.
17
+ - `--human-friendly` opens a picker and installs the selected item immediately.
18
+
19
+ ## Read the registry manifest as a fallback
20
+
21
+ When the CLI is unavailable, the top-level `registry.json` lists all available items:
6
22
 
7
23
  ```bash
8
24
  curl -s https://raw.githubusercontent.com/heygen-com/hyperframes/main/registry/registry.json
@@ -38,16 +54,178 @@ Where `<type-dir>` is `examples`, `blocks`, or `components`.
38
54
 
39
55
  ### Blocks
40
56
 
41
- | Name | Description | Tags |
42
- | ------------ | ----------------------------------------------- | ------------------------------- |
43
- | `data-chart` | Animated bar + line chart with staggered reveal | data, chart, statistics |
44
- | `flowchart` | Decision tree with SVG connectors and cursor | diagram, flowchart, interactive |
45
- | `logo-outro` | Cinematic logo reveal with tagline | branding, outro, logo |
57
+ For an always-current list run `npx hyperframes catalog --type block`. The tables below group the 97 blocks by category. **Block name ≠ shader name**: shader-transition blocks (e.g. `domain-warp-dissolve`) wrap a HyperShader runtime whose internal name omits the `-dissolve`/`-warp` suffix — see the showcase HTML installed alongside the block for the canonical name.
58
+
59
+ #### Shader transitions (14)
60
+
61
+ Single-shader blocks; each installs one HyperShader runtime + a showcase composition. Use ≤2 per video.
62
+
63
+ | Name | Description |
64
+ | ------------------------ | ------------------------------------------------------------------------ |
65
+ | `chromatic-radial-split` | Chromatic aberration radial split |
66
+ | `cinematic-zoom` | Dramatic zoom blur |
67
+ | `cross-warp-morph` | Cross-warped morphing |
68
+ | `domain-warp-dissolve` | Fractal noise domain warping |
69
+ | `flash-through-white` | White flash crossfade (rarely a neutral default — see SKILL.md guidance) |
70
+ | `glitch` | Digital glitch artifacts |
71
+ | `gravitational-lens` | Gravitational lensing distortion |
72
+ | `light-leak` | Cinematic light leak overlay |
73
+ | `ridged-burn` | Ridged turbulence burn |
74
+ | `ripple-waves` | Concentric ripple wave distortion |
75
+ | `sdf-iris` | Signed-distance-field iris reveal |
76
+ | `swirl-vortex` | Swirling vortex distortion |
77
+ | `thermal-distortion` | Heat-haze thermal distortion |
78
+ | `whip-pan` | Fast camera whip-pan |
79
+
80
+ #### Transition galleries (13)
81
+
82
+ Showcase compositions grouping multiple CSS / GSAP transition styles by family. Use as reference for picking a CSS scene transition; not meant to embed as-is.
83
+
84
+ | Name | Description |
85
+ | ------------------------- | ----------------------------------- |
86
+ | `transitions-3d` | 3D perspective flip and rotate |
87
+ | `transitions-blur` | Blur-based scene transitions |
88
+ | `transitions-cover` | Cover / uncover slide |
89
+ | `transitions-destruction` | Destructive break-apart |
90
+ | `transitions-dissolve` | Dissolve and fade |
91
+ | `transitions-distortion` | Warp and distortion |
92
+ | `transitions-grid` | Grid-based tile |
93
+ | `transitions-light` | Light-based glow and flash |
94
+ | `transitions-mechanical` | Mechanical shutter and iris |
95
+ | `transitions-other` | Misc creative (VHS, gravity, morph) |
96
+ | `transitions-push` | Push and slide |
97
+ | `transitions-radial` | Radial wipe and reveal |
98
+ | `transitions-scale` | Scale and zoom |
99
+
100
+ #### Liquid Glass (7)
101
+
102
+ WebGPU + html-in-canvas frosted-glass surfaces. **Require Brave / Chrome canary** with WebGPU enabled — set `PRODUCER_HEADLESS_SHELL_PATH` to point at the browser; engine auto-passes `--enable-unsafe-webgpu`. See `/hyperframes-animation` → `adapters/typegpu.md`.
103
+
104
+ | Name | Description |
105
+ | ----------------------------- | --------------------------------------------------------------------------------------- |
106
+ | `ios26-liquid-glass` | 3D iPhone (GLTF) + iOS 26 home screen, glass app icons, shader wallpaper, notifications |
107
+ | `macos-tahoe-liquid-glass` | 3D MacBook (GLTF) + macOS Tahoe-style desktop, glass menu bar, Finder, dock |
108
+ | `liquid-glass-widgets` | Frosted stat cards, showcase panel, pill chips over aurora shader |
109
+ | `liquid-glass-notification` | Frosted notification cards floating over aurora shader |
110
+ | `liquid-glass-context-menu` | Frosted context-menu panel drifting over aurora shader |
111
+ | `liquid-glass-media-controls` | Frosted media-control panels spreading over aurora shader |
112
+ | `vfx-liquid-glass` | Bare VFX composition shell for liquid-glass effects |
113
+
114
+ #### VFX (6)
115
+
116
+ HTML-in-canvas + WebGL composition blocks. See `/hyperframes-animation` → `adapters/three.md` and `adapters/html-in-canvas-patterns.md` for the underlying APIs.
117
+
118
+ | Name | Description |
119
+ | ----------------------- | ------------------------------------------------------------------------------------------------------- |
120
+ | `vfx-iphone-device` | GLTF iPhone 15 Pro Max + MacBook Pro with live HTML-in-canvas screens, glass-lens morph, 360° turntable |
121
+ | `vfx-liquid-background` | Organic liquid sim — vertex displacement on subdivided plane, HTML floats above |
122
+ | `vfx-magnetic` | VFX shell (magnetic field-line treatment) |
123
+ | `vfx-portal` | VFX shell (portal reveal) |
124
+ | `vfx-shatter` | VFX shell (shatter into fragments) |
125
+ | `vfx-text-cursor` | Cursor glow + chromatic shadow rays + spectral edges on a black stage |
126
+
127
+ #### Showcases (6)
128
+
129
+ Story-driven showcase compositions — narrated YouTube-style inserts. Most include bundled SFX.
130
+
131
+ | Name | Description |
132
+ | -------------------------- | ----------------------------------------------------------------- |
133
+ | `app-showcase` | Three floating smartphone screens, fitness app product showcase |
134
+ | `apple-money-count` | Counter $0 → $10,000, green flash, money-icon burst, SFX |
135
+ | `blue-sweater-intro-video` | Warm AI-creator intro resolving into an X follow card |
136
+ | `north-korea-locked-down` | Map zoom with red scribble circle, locked-down pop-up label |
137
+ | `nyc-paris-flight` | Map animation, plane NYC → Paris, marker circle, landing pop, SFX |
138
+ | `vpn-youtube-spot` | App-store scroll, VPN install flow, SFX |
139
+
140
+ #### Maps + data viz (8)
141
+
142
+ D3 + GSAP animated geographies and charts.
143
+
144
+ | Name | Description |
145
+ | ---------------------------------- | -------------------------------------------------------------------------------------------------- |
146
+ | `us-map` | US choropleth, staggered state reveals, value labels, gradient legend |
147
+ | `us-map-bubble` | US bubble map — proportional city markers, callouts, connection lines |
148
+ | `us-map-flow` | US flow map — animated origin-destination arcs |
149
+ | `us-map-hex` | US hex-grid map — each state as equal-weight hex with data fill |
150
+ | `spain-map` | Spain choropleth by autonomous community — D3 conic conformal |
151
+ | `world-map` | World choropleth + rotating globe inset, D3 Natural Earth |
152
+ | `data-chart` | Animated bar + line chart, staggered reveal, NYT-style typography |
153
+ | `flowchart` / `flowchart-vertical` | Decision tree, SVG connectors, sticky-note nodes, cursor + typing correction (vertical = portrait) |
154
+
155
+ #### Social overlays (7)
156
+
157
+ Platform-recognizable UI overlays. Stamp on top of a beat or use as a beat closer.
158
+
159
+ | Name | Description |
160
+ | -------------------- | ------------------------------------------------ |
161
+ | `instagram-follow` | Profile card + follow button |
162
+ | `tiktok-follow` | Profile card + follow button |
163
+ | `yt-lower-third` | YouTube subscribe lower third with avatar |
164
+ | `x-post` | X/Twitter post card with engagement metrics |
165
+ | `reddit-post` | Post card with upvotes and comments |
166
+ | `spotify-card` | Now-playing card with album art and progress bar |
167
+ | `macos-notification` | macOS-style banner with app icon and message |
168
+
169
+ #### Branding + 3D UI (2)
170
+
171
+ | Name | Description |
172
+ | -------------- | ------------------------------------------------------------------- |
173
+ | `logo-outro` | Piece-by-piece logo assembly, glow bloom, tagline fade-in, URL pill |
174
+ | `ui-3d-reveal` | Perspective 3D reveal for UI elements |
175
+
176
+ #### Code snippets (24)
177
+
178
+ A code/terminal window that **types a code or shell session per-character**. Theme = visual chrome only; structure, wiring, and install are identical across all 24 — pick one by name, wire it like any block (`data-composition-id` + `data-start` + `data-track-index`, see `wiring-blocks.md`). Two chrome families:
179
+
180
+ **VS Code workbench (12)** — full editor chrome (activity bar, sidebar, tabs, integrated terminal, status bar). Theme variants: `code-snippet-dark-2026`, `code-snippet-dark-modern`, `code-snippet-dark-plus`, `code-snippet-light-2026`, `code-snippet-light-modern`, `code-snippet-light-plus`, `code-snippet-high-contrast`, `code-snippet-high-contrast-light`, `code-snippet-monokai`, `code-snippet-solarized-light`, `code-snippet-visual-studio-dark`, `code-snippet-visual-studio-light`.
181
+
182
+ **Apple Terminal (12)** — macOS Terminal.app window typing a shell session. Profile = window colors:
183
+
184
+ | Name | Look |
185
+ | -------------------------------------------- | ---------------------------------------- |
186
+ | `code-snippet-apple-terminal-basic` | White bg, black text |
187
+ | `code-snippet-apple-terminal-clear-dark` | Semi-transparent dark bg |
188
+ | `code-snippet-apple-terminal-clear-light` | Semi-transparent light bg |
189
+ | `code-snippet-apple-terminal-grass` | Black bg, green text |
190
+ | `code-snippet-apple-terminal-homebrew` | Black bg, bright green text, lime cursor |
191
+ | `code-snippet-apple-terminal-man-page` | Pale yellow bg, black text |
192
+ | `code-snippet-apple-terminal-novel` | Warm parchment bg, dark brown text |
193
+ | `code-snippet-apple-terminal-ocean` | Deep blue bg, white text |
194
+ | `code-snippet-apple-terminal-pro` | Black bg, grey text, lime cursor |
195
+ | `code-snippet-apple-terminal-red-sands` | Deep red bg, sandy text |
196
+ | `code-snippet-apple-terminal-silver-aerogel` | Dark grey bg, white text |
197
+ | `code-snippet-apple-terminal-solid-colors` | Deep purple bg, white text |
198
+
199
+ #### Code Animations (9)
200
+
201
+ The richer, motion-first counterpart to the static `code-snippet-*` window themes above: each is a self-contained 1920×1080 block (~5–8s) with a paused, deterministic GSAP timeline that _animates_ code — typing, diffing, morphing, spotlighting, or GPU hero reveals — rather than typing a fixed snippet inside editor/terminal chrome. **Reuse-first**: `npx hyperframes add <name>`, then customize the baked code/diff content in place; hand-author only when no block covers the motion you need.
202
+
203
+ **DOM / text reveal (6):**
204
+
205
+ | Name | Description |
206
+ | --------------------- | -------------------------------------------------------------------------------------------------------------------------- |
207
+ | `code-typing` | Token-streamed typing reveal, caret tracks the frontier (no CSS animation) — live-coding on screen |
208
+ | `code-diff` | An edit shown as a colored diff: removed lines collapse red, added expand green — before/after at line level |
209
+ | `code-morph` | One snippet transforms into another, tokens glide between positions (Shiki Magic Move) — a refactor / one state to another |
210
+ | `code-highlight` | A highlight band sweeps a target line while surrounding context dims — spotlight one line |
211
+ | `code-scroll` | Camera scrolls a long file to center + spotlight a target line — walk through a real module |
212
+ | `code-snippet-flight` | Discrete snippets fly in from the side and assemble into a stacked program (block-level FLIP) |
213
+
214
+ **GPU / WebGL hero reveals (3):** heavier, for a title-card / hero code moment.
215
+
216
+ | Name | Description |
217
+ | ------------------------ | --------------------------------------------------------------------------------------------------------------- |
218
+ | `code-3d-extrude` | Syntax-highlighted code on a lit beveled 3D slab that rotates through real space and settles (true WebGL depth) |
219
+ | `code-shader-dissolve` | Code resolves out of seeded noise with a chromatic dissolve front + edge glow, then holds crisp |
220
+ | `code-particle-assemble` | Thousands of GPU points fly to the exact glyph pixels and resolve into readable syntax-highlighted code |
46
221
 
47
222
  ### Components
48
223
 
49
- | Name | Description | Tags |
50
- | -------------------- | --------------------------------------- | -------------------------------- |
51
- | `grain-overlay` | Animated film grain texture overlay | texture, grain, overlay, film |
52
- | `shimmer-sweep` | CSS gradient light sweep for AI accents | text, shimmer, highlight, effect |
53
- | `grid-pixelate-wipe` | Grid dissolve transition between scenes | transition, wipe, grid, pixelate |
224
+ | Name | Description | Tags |
225
+ | -------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
226
+ | `grain-overlay` | Animated film grain texture overlay | texture, grain, overlay, film |
227
+ | `shimmer-sweep` | CSS gradient light sweep for AI accents | text, shimmer, highlight, effect |
228
+ | `morph-text` | Gooey text morph cycling an editable word list (SVG threshold + GSAP blur) | text, text-effect, typography, morph, gooey |
229
+ | `grid-pixelate-wipe` | Grid dissolve transition between scenes | transition, wipe, grid, pixelate |
230
+ | `parallax-zoom` | Center card scales up to fill the frame while siblings parallax outward (single `--pz-progress` 0→1) | transition, zoom, parallax, grid, hero |
231
+ | `parallax-unzoom` | Reverse of `parallax-zoom` — focus card shrinks from full frame as siblings parallax in (`--pu-progress`) | transition, reveal, unzoom, parallax, grid, hero |