takomi 2.1.40 → 2.1.42

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 (662) hide show
  1. package/.agents/plugins/marketplace.json +22 -22
  2. package/README.md +7 -4
  3. package/assets/.agent/skills/embedded-captions/CATALOG.md +93 -0
  4. package/assets/.agent/skills/embedded-captions/SKILL.md +286 -0
  5. package/assets/.agent/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
  6. package/assets/.agent/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
  7. package/assets/.agent/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  8. package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  9. package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  10. package/assets/.agent/skills/embedded-captions/dna/README.md +148 -0
  11. package/assets/.agent/skills/embedded-captions/dna/chrome.json +68 -0
  12. package/assets/.agent/skills/embedded-captions/dna/cream.json +69 -0
  13. package/assets/.agent/skills/embedded-captions/dna/documentary.json +62 -0
  14. package/assets/.agent/skills/embedded-captions/dna/editorial.json +70 -0
  15. package/assets/.agent/skills/embedded-captions/dna/glitch.json +82 -0
  16. package/assets/.agent/skills/embedded-captions/dna/ink.json +65 -0
  17. package/assets/.agent/skills/embedded-captions/dna/keynote.json +62 -0
  18. package/assets/.agent/skills/embedded-captions/dna/loud.json +75 -0
  19. package/assets/.agent/skills/embedded-captions/dna/neon.json +58 -0
  20. package/assets/.agent/skills/embedded-captions/dna/velocity.json +89 -0
  21. package/assets/.agent/skills/embedded-captions/modes/cinematic/README.md +48 -0
  22. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  23. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  24. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  25. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  26. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  27. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  28. package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  29. package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  30. package/assets/.agent/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  31. package/assets/.agent/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  32. package/assets/.agent/skills/embedded-captions/modes/standard/_motion.md +192 -0
  33. package/assets/.agent/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  34. package/assets/.agent/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  35. package/assets/.agent/skills/embedded-captions/references/anti-patterns.md +188 -0
  36. package/assets/.agent/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  37. package/assets/.agent/skills/embedded-captions/references/caption-grouping.md +130 -0
  38. package/assets/.agent/skills/embedded-captions/references/composition-craft.md +522 -0
  39. package/assets/.agent/skills/embedded-captions/references/direction-catalog.md +138 -0
  40. package/assets/.agent/skills/embedded-captions/references/example-renders/champion.html +371 -0
  41. package/assets/.agent/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  42. package/assets/.agent/skills/embedded-captions/references/failure-modes.md +145 -0
  43. package/assets/.agent/skills/embedded-captions/references/layout-heuristics.md +238 -0
  44. package/assets/.agent/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  45. package/assets/.agent/skills/embedded-captions/references/rail.md +68 -0
  46. package/assets/.agent/skills/embedded-captions/references/reference-bar.md +47 -0
  47. package/assets/.agent/skills/embedded-captions/references/scene-types.md +94 -0
  48. package/assets/.agent/skills/embedded-captions/references/test-set.md +66 -0
  49. package/assets/.agent/skills/embedded-captions/references/typographic-moves.md +266 -0
  50. package/assets/.agent/skills/embedded-captions/references/typography-presets.md +63 -0
  51. package/assets/.agent/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  52. package/assets/.agent/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  53. package/assets/.agent/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  54. package/assets/.agent/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  55. package/assets/.agent/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  56. package/assets/.agent/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  57. package/assets/.agent/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  58. package/assets/.agent/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
  59. package/assets/.agent/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  60. package/assets/.agent/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  61. package/assets/.agent/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
  62. package/assets/.agent/skills/embedded-captions/scripts/make-composition.cjs +404 -0
  63. package/assets/.agent/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
  64. package/assets/.agent/skills/embedded-captions/scripts/matte.cjs +279 -0
  65. package/assets/.agent/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  66. package/assets/.agent/skills/embedded-captions/scripts/prepare.sh +39 -0
  67. package/assets/.agent/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  68. package/assets/.agent/skills/embedded-captions/scripts/render-and-composite.sh +469 -0
  69. package/assets/.agent/skills/embedded-captions/scripts/render-theme.sh +34 -0
  70. package/assets/.agent/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  71. package/assets/.agent/skills/embedded-captions/scripts/transcribe.cjs +332 -0
  72. package/assets/.agent/skills/embedded-captions/themes/PORTING.md +49 -0
  73. package/assets/.agent/skills/embedded-captions/themes/README.md +244 -0
  74. package/assets/.agent/skills/embedded-captions/themes/anchor.json +27 -0
  75. package/assets/.agent/skills/embedded-captions/themes/arcade.json +51 -0
  76. package/assets/.agent/skills/embedded-captions/themes/aurora.json +41 -0
  77. package/assets/.agent/skills/embedded-captions/themes/biolume.json +35 -0
  78. package/assets/.agent/skills/embedded-captions/themes/brush.json +74 -0
  79. package/assets/.agent/skills/embedded-captions/themes/chalkboard.json +52 -0
  80. package/assets/.agent/skills/embedded-captions/themes/dossier.json +56 -0
  81. package/assets/.agent/skills/embedded-captions/themes/graffiti.json +62 -0
  82. package/assets/.agent/skills/embedded-captions/themes/hologram.json +41 -0
  83. package/assets/.agent/skills/embedded-captions/themes/inkwater.json +43 -0
  84. package/assets/.agent/skills/embedded-captions/themes/laser.json +46 -0
  85. package/assets/.agent/skills/embedded-captions/themes/lastpage.json +33 -0
  86. package/assets/.agent/skills/embedded-captions/themes/neonsign.json +53 -0
  87. package/assets/.agent/skills/embedded-captions/themes/nightcity.json +56 -0
  88. package/assets/.agent/skills/embedded-captions/themes/ordnance.json +54 -0
  89. package/assets/.agent/skills/embedded-captions/themes/papercut.json +37 -0
  90. package/assets/.agent/skills/embedded-captions/themes/popup.json +46 -0
  91. package/assets/.agent/skills/embedded-captions/themes/ransom.json +62 -0
  92. package/assets/.agent/skills/embedded-captions/themes/scoreboard.json +54 -0
  93. package/assets/.agent/skills/embedded-captions/themes/spectrum.json +46 -0
  94. package/assets/.agent/skills/embedded-captions/themes/stardust.json +29 -0
  95. package/assets/.agent/skills/embedded-captions/themes/stomp.json +43 -0
  96. package/assets/.agent/skills/embedded-captions/themes/terminal.json +49 -0
  97. package/assets/.agent/skills/embedded-captions/themes/thunder.json +44 -0
  98. package/assets/.agent/skills/embedded-captions/themes/transit.json +44 -0
  99. package/assets/.agent/skills/embedded-captions/themes/vhs.json +47 -0
  100. package/assets/.agent/skills/faceless-explainer/SKILL.md +209 -0
  101. package/assets/.agent/skills/faceless-explainer/references/cut-catalog.md +215 -0
  102. package/assets/.agent/skills/faceless-explainer/references/motion-language.md +156 -0
  103. package/assets/.agent/skills/faceless-explainer/references/story-design.md +248 -0
  104. package/assets/.agent/skills/faceless-explainer/references/visual-design.md +146 -0
  105. package/assets/.agent/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
  106. package/assets/.agent/skills/faceless-explainer/scripts/audio.mjs +253 -0
  107. package/assets/.agent/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
  108. package/assets/.agent/skills/faceless-explainer/scripts/captions.mjs +508 -0
  109. package/assets/.agent/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
  110. package/assets/.agent/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  111. package/assets/.agent/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  112. package/assets/.agent/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
  113. package/assets/.agent/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  114. package/assets/.agent/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  115. package/assets/.agent/skills/faceless-explainer/scripts/transitions.mjs +320 -0
  116. package/assets/.agent/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
  117. package/assets/.agent/skills/figma/SKILL.md +121 -0
  118. package/assets/.agent/skills/general-video/SKILL.md +143 -0
  119. package/assets/.agent/skills/hyperframes/SKILL.md +164 -0
  120. package/assets/.agent/skills/hyperframes-animation/SKILL.md +84 -0
  121. package/assets/.agent/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  122. package/assets/.agent/skills/hyperframes-animation/adapters/animejs.md +114 -0
  123. package/assets/.agent/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  124. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
  125. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  126. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
  127. package/assets/.agent/skills/hyperframes-animation/adapters/gsap.md +105 -0
  128. package/assets/.agent/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  129. package/assets/.agent/skills/hyperframes-animation/adapters/lottie.md +117 -0
  130. package/assets/.agent/skills/hyperframes-animation/adapters/three.md +131 -0
  131. package/assets/.agent/skills/hyperframes-animation/adapters/typegpu.md +178 -0
  132. package/assets/.agent/skills/hyperframes-animation/adapters/waapi.md +101 -0
  133. package/assets/.agent/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  134. package/assets/.agent/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
  135. package/assets/.agent/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
  136. package/assets/.agent/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
  137. package/assets/.agent/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
  138. package/assets/.agent/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
  139. package/assets/.agent/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
  140. package/assets/.agent/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
  141. package/assets/.agent/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
  142. package/assets/.agent/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
  143. package/assets/.agent/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  144. package/assets/.agent/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  145. package/assets/.agent/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
  146. package/assets/.agent/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  147. package/assets/.agent/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  148. package/assets/.agent/skills/hyperframes-animation/blueprints-index.md +146 -0
  149. package/assets/.agent/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
  150. package/assets/.agent/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
  151. package/assets/.agent/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
  152. package/assets/.agent/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
  153. package/assets/.agent/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
  154. package/assets/.agent/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  155. package/assets/.agent/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  156. package/assets/.agent/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  157. package/assets/.agent/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  158. package/assets/.agent/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  159. package/assets/.agent/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  160. package/assets/.agent/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  161. package/assets/.agent/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  162. package/assets/.agent/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  163. package/assets/.agent/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  164. package/assets/.agent/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  165. package/assets/.agent/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  166. package/assets/.agent/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  167. package/assets/.agent/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
  168. package/assets/.agent/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
  169. package/assets/.agent/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
  170. package/assets/.agent/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
  171. package/assets/.agent/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
  172. package/assets/.agent/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
  173. package/assets/.agent/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
  174. package/assets/.agent/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
  175. package/assets/.agent/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
  176. package/assets/.agent/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
  177. package/assets/.agent/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
  178. package/assets/.agent/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
  179. package/assets/.agent/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
  180. package/assets/.agent/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
  181. package/assets/.agent/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
  182. package/assets/.agent/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
  183. package/assets/.agent/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
  184. package/assets/.agent/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
  185. package/assets/.agent/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
  186. package/assets/.agent/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
  187. package/assets/.agent/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
  188. package/assets/.agent/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
  189. package/assets/.agent/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
  190. package/assets/.agent/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
  191. package/assets/.agent/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
  192. package/assets/.agent/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
  193. package/assets/.agent/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
  194. package/assets/.agent/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
  195. package/assets/.agent/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
  196. package/assets/.agent/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
  197. package/assets/.agent/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
  198. package/assets/.agent/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
  199. package/assets/.agent/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
  200. package/assets/.agent/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
  201. package/assets/.agent/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
  202. package/assets/.agent/skills/hyperframes-animation/rules/viewport-change.md +349 -0
  203. package/assets/.agent/skills/hyperframes-animation/rules-index.md +86 -0
  204. package/assets/.agent/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
  205. package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
  206. package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  207. package/assets/.agent/skills/hyperframes-animation/techniques.md +507 -0
  208. package/assets/.agent/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
  209. package/assets/.agent/skills/hyperframes-animation/transitions/catalog.md +127 -0
  210. package/assets/.agent/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  211. package/assets/.agent/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  212. package/assets/.agent/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  213. package/assets/.agent/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  214. package/assets/.agent/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  215. package/assets/.agent/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  216. package/assets/.agent/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  217. package/assets/.agent/skills/hyperframes-animation/transitions/css-light.md +49 -0
  218. package/assets/.agent/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  219. package/assets/.agent/skills/hyperframes-animation/transitions/css-other.md +25 -0
  220. package/assets/.agent/skills/hyperframes-animation/transitions/css-push.md +41 -0
  221. package/assets/.agent/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  222. package/assets/.agent/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  223. package/assets/.agent/skills/hyperframes-animation/transitions/overview.md +153 -0
  224. package/assets/.agent/skills/hyperframes-cli/SKILL.md +113 -0
  225. package/assets/.agent/skills/hyperframes-cli/references/doctor-browser.md +45 -0
  226. package/assets/.agent/skills/hyperframes-cli/references/init-and-scaffold.md +51 -0
  227. package/assets/.agent/skills/hyperframes-cli/references/lambda.md +132 -0
  228. package/assets/.agent/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
  229. package/assets/.agent/skills/hyperframes-cli/references/preview-render.md +164 -0
  230. package/assets/.agent/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
  231. package/assets/.agent/skills/hyperframes-core/SKILL.md +78 -0
  232. package/assets/.agent/skills/hyperframes-core/references/composition-patterns.md +263 -0
  233. package/assets/.agent/skills/hyperframes-core/references/data-attributes.md +70 -0
  234. package/assets/.agent/skills/hyperframes-core/references/determinism-rules.md +68 -0
  235. package/assets/.agent/skills/hyperframes-core/references/full-screen-motion.md +62 -0
  236. package/assets/.agent/skills/hyperframes-core/references/minimal-composition.md +66 -0
  237. package/assets/.agent/skills/hyperframes-core/references/script-format.md +49 -0
  238. package/assets/.agent/skills/hyperframes-core/references/storyboard-format.md +95 -0
  239. package/assets/.agent/skills/hyperframes-core/references/sub-compositions.md +237 -0
  240. package/assets/.agent/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
  241. package/assets/.agent/skills/hyperframes-core/references/tailwind.md +125 -0
  242. package/assets/.agent/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
  243. package/assets/.agent/skills/hyperframes-core/references/variables-and-media.md +90 -0
  244. package/assets/.agent/skills/hyperframes-creative/SKILL.md +70 -0
  245. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  246. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  247. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  248. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  249. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  250. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  251. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  252. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  253. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  254. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  255. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  256. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  257. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  258. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  259. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  260. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  261. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  262. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  263. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  264. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  265. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  266. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
  267. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
  268. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
  269. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  270. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  271. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  272. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  273. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  274. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  275. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  276. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  277. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  278. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  279. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  280. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  281. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  282. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  283. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  284. package/assets/.agent/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  285. package/assets/.agent/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  286. package/assets/.agent/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  287. package/assets/.agent/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  288. package/assets/.agent/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  289. package/assets/.agent/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  290. package/assets/.agent/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  291. package/assets/.agent/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  292. package/assets/.agent/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  293. package/assets/.agent/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  294. package/assets/.agent/skills/hyperframes-creative/references/beat-direction.md +164 -0
  295. package/assets/.agent/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  296. package/assets/.agent/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  297. package/assets/.agent/skills/hyperframes-creative/references/design-adherence.md +19 -0
  298. package/assets/.agent/skills/hyperframes-creative/references/design-picker.md +123 -0
  299. package/assets/.agent/skills/hyperframes-creative/references/design-spec.md +55 -0
  300. package/assets/.agent/skills/hyperframes-creative/references/house-style.md +73 -0
  301. package/assets/.agent/skills/hyperframes-creative/references/motion-principles.md +150 -0
  302. package/assets/.agent/skills/hyperframes-creative/references/narration.md +92 -0
  303. package/assets/.agent/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  304. package/assets/.agent/skills/hyperframes-creative/references/typography.md +218 -0
  305. package/assets/.agent/skills/hyperframes-creative/references/video-composition.md +63 -0
  306. package/assets/.agent/skills/hyperframes-creative/references/visual-styles.md +457 -0
  307. package/assets/.agent/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
  308. package/assets/.agent/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
  309. package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
  310. package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  311. package/assets/.agent/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  312. package/assets/.agent/skills/hyperframes-keyframes/SKILL.md +237 -0
  313. package/assets/.agent/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  314. package/assets/.agent/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
  315. package/assets/.agent/skills/hyperframes-media/SKILL.md +97 -0
  316. package/assets/.agent/skills/hyperframes-media/assets/sfx/CREDITS.md +35 -0
  317. package/assets/.agent/skills/hyperframes-media/assets/sfx/manifest.json +97 -0
  318. package/assets/.agent/skills/hyperframes-media/references/bgm.md +72 -0
  319. package/assets/.agent/skills/hyperframes-media/references/captions/authoring.md +159 -0
  320. package/assets/.agent/skills/hyperframes-media/references/captions/motion.md +87 -0
  321. package/assets/.agent/skills/hyperframes-media/references/captions/transcript-handling.md +97 -0
  322. package/assets/.agent/skills/hyperframes-media/references/remove-background.md +143 -0
  323. package/assets/.agent/skills/hyperframes-media/references/requirements.md +29 -0
  324. package/assets/.agent/skills/hyperframes-media/references/sfx.md +42 -0
  325. package/assets/.agent/skills/hyperframes-media/references/transcribe.md +52 -0
  326. package/assets/.agent/skills/hyperframes-media/references/tts-to-captions.md +24 -0
  327. package/assets/.agent/skills/hyperframes-media/references/tts.md +135 -0
  328. package/assets/.agent/skills/hyperframes-media/scripts/audio.mjs +293 -0
  329. package/assets/.agent/skills/hyperframes-media/scripts/heygen-tts.mjs +121 -0
  330. package/assets/.agent/skills/hyperframes-media/scripts/lib/bgm.mjs +235 -0
  331. package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.mjs +14 -0
  332. package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.test.mjs +41 -0
  333. package/assets/.agent/skills/hyperframes-media/scripts/lib/heygen.mjs +131 -0
  334. package/assets/.agent/skills/hyperframes-media/scripts/lib/sfx.mjs +128 -0
  335. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.mjs +298 -0
  336. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.spawn.test.mjs +97 -0
  337. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.test.mjs +66 -0
  338. package/assets/.agent/skills/hyperframes-media/scripts/lyria-recipe.py +128 -0
  339. package/assets/.agent/skills/hyperframes-media/scripts/wait-bgm.mjs +167 -0
  340. package/assets/.agent/skills/hyperframes-registry/SKILL.md +101 -0
  341. package/assets/.agent/skills/hyperframes-registry/examples/add-block.md +51 -0
  342. package/assets/.agent/skills/hyperframes-registry/examples/add-component.md +73 -0
  343. package/assets/.agent/skills/hyperframes-registry/references/contributing.md +166 -0
  344. package/assets/.agent/skills/hyperframes-registry/references/demo-html-pattern.md +54 -0
  345. package/assets/.agent/skills/hyperframes-registry/references/discovery.md +215 -0
  346. package/assets/.agent/skills/hyperframes-registry/references/install-locations.md +45 -0
  347. package/assets/.agent/skills/hyperframes-registry/references/templates.md +417 -0
  348. package/assets/.agent/skills/hyperframes-registry/references/wiring-blocks.md +61 -0
  349. package/assets/.agent/skills/hyperframes-registry/references/wiring-components.md +39 -0
  350. package/assets/.agent/skills/media-use/SKILL.md +124 -0
  351. package/assets/.agent/skills/media-use/scripts/eval.mjs +369 -0
  352. package/assets/.agent/skills/media-use/scripts/lib/adopt.mjs +112 -0
  353. package/assets/.agent/skills/media-use/scripts/lib/bgm-provider.mjs +20 -0
  354. package/assets/.agent/skills/media-use/scripts/lib/brand-provider.mjs +59 -0
  355. package/assets/.agent/skills/media-use/scripts/lib/cache.mjs +114 -0
  356. package/assets/.agent/skills/media-use/scripts/lib/freeze.mjs +26 -0
  357. package/assets/.agent/skills/media-use/scripts/lib/heygen-search.mjs +51 -0
  358. package/assets/.agent/skills/media-use/scripts/lib/image-provider.mjs +44 -0
  359. package/assets/.agent/skills/media-use/scripts/lib/index-gen.mjs +63 -0
  360. package/assets/.agent/skills/media-use/scripts/lib/manifest.mjs +91 -0
  361. package/assets/.agent/skills/media-use/scripts/lib/manifest.test.mjs +293 -0
  362. package/assets/.agent/skills/media-use/scripts/lib/probe.mjs +39 -0
  363. package/assets/.agent/skills/media-use/scripts/lib/probe.test.mjs +31 -0
  364. package/assets/.agent/skills/media-use/scripts/lib/providers.mjs +29 -0
  365. package/assets/.agent/skills/media-use/scripts/lib/sfx-provider.mjs +23 -0
  366. package/assets/.agent/skills/media-use/scripts/resolve.mjs +247 -0
  367. package/assets/.agent/skills/media-use/scripts/resolve.test.mjs +247 -0
  368. package/assets/.agent/skills/motion-graphics/SKILL.md +172 -0
  369. package/assets/.agent/skills/motion-graphics/agents/builder.md +40 -0
  370. package/assets/.agent/skills/motion-graphics/agents/director.md +53 -0
  371. package/assets/.agent/skills/motion-graphics/agents/finalize.md +17 -0
  372. package/assets/.agent/skills/motion-graphics/catalog-map.md +40 -0
  373. package/assets/.agent/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  374. package/assets/.agent/skills/motion-graphics/categories/charts/module.md +21 -0
  375. package/assets/.agent/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  376. package/assets/.agent/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  377. package/assets/.agent/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  378. package/assets/.agent/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  379. package/assets/.agent/skills/motion-graphics/categories/maps/module.md +61 -0
  380. package/assets/.agent/skills/motion-graphics/categories/news/module.md +56 -0
  381. package/assets/.agent/skills/motion-graphics/categories/stat/module.md +21 -0
  382. package/assets/.agent/skills/motion-graphics/categories/tweet/module.md +16 -0
  383. package/assets/.agent/skills/motion-graphics/categories/webpage/module.md +21 -0
  384. package/assets/.agent/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  385. package/assets/.agent/skills/motion-graphics/grounding/locate.mjs +227 -0
  386. package/assets/.agent/skills/motion-graphics/phases/source/guide.md +21 -0
  387. package/assets/.agent/skills/motion-graphics/references/builder-contract.md +38 -0
  388. package/assets/.agent/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  389. package/assets/.agent/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  390. package/assets/.agent/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  391. package/assets/.agent/skills/music-to-video/SKILL.md +197 -0
  392. package/assets/.agent/skills/music-to-video/references/frame-skeleton.md +100 -0
  393. package/assets/.agent/skills/music-to-video/references/montage.md +58 -0
  394. package/assets/.agent/skills/music-to-video/references/motion-primitive-catalog.md +75 -0
  395. package/assets/.agent/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +154 -0
  396. package/assets/.agent/skills/music-to-video/references/motion-primitives/assets/gsap.min.js +11 -0
  397. package/assets/.agent/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +326 -0
  398. package/assets/.agent/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +120 -0
  399. package/assets/.agent/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +95 -0
  400. package/assets/.agent/skills/music-to-video/references/motion-primitives/braam-punch/index.html +135 -0
  401. package/assets/.agent/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +146 -0
  402. package/assets/.agent/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +103 -0
  403. package/assets/.agent/skills/music-to-video/references/motion-primitives/counting-punch/index.html +154 -0
  404. package/assets/.agent/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +155 -0
  405. package/assets/.agent/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +166 -0
  406. package/assets/.agent/skills/music-to-video/references/motion-primitives/directional-fill/index.html +133 -0
  407. package/assets/.agent/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +137 -0
  408. package/assets/.agent/skills/music-to-video/references/motion-primitives/electric-arc/index.html +144 -0
  409. package/assets/.agent/skills/music-to-video/references/motion-primitives/flash-cut/index.html +132 -0
  410. package/assets/.agent/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +241 -0
  411. package/assets/.agent/skills/music-to-video/references/motion-primitives/hard-cut/index.html +117 -0
  412. package/assets/.agent/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +79 -0
  413. package/assets/.agent/skills/music-to-video/references/motion-primitives/iris-open/index.html +104 -0
  414. package/assets/.agent/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +92 -0
  415. package/assets/.agent/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +131 -0
  416. package/assets/.agent/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +109 -0
  417. package/assets/.agent/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +124 -0
  418. package/assets/.agent/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +108 -0
  419. package/assets/.agent/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +117 -0
  420. package/assets/.agent/skills/music-to-video/references/motion-primitives/palette-flip/index.html +132 -0
  421. package/assets/.agent/skills/music-to-video/references/motion-primitives/particle-burst/index.html +141 -0
  422. package/assets/.agent/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +121 -0
  423. package/assets/.agent/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +160 -0
  424. package/assets/.agent/skills/music-to-video/references/motion-primitives/screen-shake/index.html +113 -0
  425. package/assets/.agent/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +130 -0
  426. package/assets/.agent/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +137 -0
  427. package/assets/.agent/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +117 -0
  428. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -0
  429. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +313 -0
  430. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +136 -0
  431. package/assets/.agent/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +144 -0
  432. package/assets/.agent/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +122 -0
  433. package/assets/.agent/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +126 -0
  434. package/assets/.agent/skills/music-to-video/references/planning.md +104 -0
  435. package/assets/.agent/skills/music-to-video/references/storyboard-format.md +94 -0
  436. package/assets/.agent/skills/music-to-video/references/template-catalog.md +106 -0
  437. package/assets/.agent/skills/music-to-video/references/templates/card-flyby/index.html +527 -0
  438. package/assets/.agent/skills/music-to-video/references/templates/card-flyby/program.json +13 -0
  439. package/assets/.agent/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -0
  440. package/assets/.agent/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -0
  441. package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -0
  442. package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -0
  443. package/assets/.agent/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -0
  444. package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -0
  445. package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -0
  446. package/assets/.agent/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -0
  447. package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -0
  448. package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -0
  449. package/assets/.agent/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -0
  450. package/assets/.agent/skills/music-to-video/scripts/analyze-beatgrid.py +531 -0
  451. package/assets/.agent/skills/music-to-video/scripts/assemble-index.mjs +218 -0
  452. package/assets/.agent/skills/music-to-video/scripts/lib/storyboard.mjs +249 -0
  453. package/assets/.agent/skills/music-to-video/scripts/stage-assets.mjs +58 -0
  454. package/assets/.agent/skills/music-to-video/scripts/validate-plan.mjs +161 -0
  455. package/assets/.agent/skills/music-to-video/sub-agents/frame-worker.md +75 -0
  456. package/assets/.agent/skills/pr-to-video/SKILL.md +240 -0
  457. package/assets/.agent/skills/pr-to-video/references/code-vocabulary.md +111 -0
  458. package/assets/.agent/skills/pr-to-video/references/cut-catalog.md +215 -0
  459. package/assets/.agent/skills/pr-to-video/references/motion-language.md +156 -0
  460. package/assets/.agent/skills/pr-to-video/references/story-design.md +211 -0
  461. package/assets/.agent/skills/pr-to-video/references/visual-design.md +164 -0
  462. package/assets/.agent/skills/pr-to-video/scripts/assemble-index.mjs +570 -0
  463. package/assets/.agent/skills/pr-to-video/scripts/audio.mjs +253 -0
  464. package/assets/.agent/skills/pr-to-video/scripts/build-frame.mjs +536 -0
  465. package/assets/.agent/skills/pr-to-video/scripts/captions.mjs +508 -0
  466. package/assets/.agent/skills/pr-to-video/scripts/fetch-people-avatars.mjs +157 -0
  467. package/assets/.agent/skills/pr-to-video/scripts/fetch-pr.mjs +164 -0
  468. package/assets/.agent/skills/pr-to-video/scripts/ingest.mjs +539 -0
  469. package/assets/.agent/skills/pr-to-video/scripts/lib/assets.mjs +55 -0
  470. package/assets/.agent/skills/pr-to-video/scripts/lib/dimensions.mjs +45 -0
  471. package/assets/.agent/skills/pr-to-video/scripts/lib/storyboard.mjs +249 -0
  472. package/assets/.agent/skills/pr-to-video/scripts/lib/tokens.mjs +204 -0
  473. package/assets/.agent/skills/pr-to-video/scripts/lib/transition-registry.mjs +38 -0
  474. package/assets/.agent/skills/pr-to-video/scripts/lib/transitions.json +71 -0
  475. package/assets/.agent/skills/pr-to-video/scripts/transitions.mjs +320 -0
  476. package/assets/.agent/skills/pr-to-video/sub-agents/frame-worker.md +95 -0
  477. package/assets/.agent/skills/product-launch-video/SKILL.md +208 -0
  478. package/assets/.agent/skills/product-launch-video/references/cut-catalog.md +220 -0
  479. package/assets/.agent/skills/product-launch-video/references/motion-language.md +156 -0
  480. package/assets/.agent/skills/product-launch-video/references/story-design.md +373 -0
  481. package/assets/.agent/skills/product-launch-video/references/visual-design.md +126 -0
  482. package/assets/.agent/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
  483. package/assets/.agent/skills/product-launch-video/scripts/audio.mjs +253 -0
  484. package/assets/.agent/skills/product-launch-video/scripts/build-frame.mjs +536 -0
  485. package/assets/.agent/skills/product-launch-video/scripts/captions.mjs +508 -0
  486. package/assets/.agent/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
  487. package/assets/.agent/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  488. package/assets/.agent/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  489. package/assets/.agent/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
  490. package/assets/.agent/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  491. package/assets/.agent/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  492. package/assets/.agent/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  493. package/assets/.agent/skills/product-launch-video/scripts/transitions.mjs +320 -0
  494. package/assets/.agent/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
  495. package/assets/.agent/skills/remotion/rules/assets/charts-bar-chart.tsx +173 -173
  496. package/assets/.agent/skills/remotion/rules/assets/text-animations-typewriter.tsx +100 -100
  497. package/assets/.agent/skills/remotion/rules/text-animations.md +20 -20
  498. package/assets/.agent/skills/remotion/rules/videos.md +171 -171
  499. package/assets/.agent/skills/remotion-real-ui-video/SKILL.md +264 -0
  500. package/assets/.agent/skills/remotion-real-ui-video/references/anti-patterns.md +114 -0
  501. package/assets/.agent/skills/remotion-real-ui-video/references/completion-checklist.md +75 -0
  502. package/assets/.agent/skills/remotion-real-ui-video/references/real-ui-bridge-example.md +93 -0
  503. package/assets/.agent/skills/remotion-to-hyperframes/SKILL.md +127 -0
  504. package/assets/.agent/skills/remotion-to-hyperframes/assets/.gitkeep +0 -0
  505. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/run.sh +249 -0
  506. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -0
  507. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -0
  508. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +61 -0
  509. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -0
  510. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts +13 -0
  511. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx +13 -0
  512. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx +34 -0
  513. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts +4 -0
  514. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -0
  515. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -0
  516. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -0
  517. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +118 -0
  518. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -0
  519. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/remotion.config.ts +13 -0
  520. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/MultiScene.tsx +105 -0
  521. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/Root.tsx +13 -0
  522. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/index.ts +4 -0
  523. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -0
  524. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/setup.sh +34 -0
  525. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -0
  526. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -0
  527. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +269 -0
  528. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -0
  529. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/remotion.config.ts +13 -0
  530. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Root.tsx +27 -0
  531. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Stargazed.tsx +37 -0
  532. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/AnimatedNumber.tsx +23 -0
  533. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/StatCard.tsx +59 -0
  534. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/UnderlinedText.tsx +47 -0
  535. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/index.ts +4 -0
  536. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/OutroScene.tsx +18 -0
  537. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/StatsScene.tsx +34 -0
  538. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsx +55 -0
  539. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -0
  540. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -0
  541. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/01-use-state.tsx +29 -0
  542. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/02-use-effect-deps.tsx +29 -0
  543. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/03-async-metadata.tsx +39 -0
  544. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/04-third-party-react.tsx +30 -0
  545. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/05-lambda-config.tsx +38 -0
  546. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/06-warnings-only.tsx +36 -0
  547. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/07-custom-hook.tsx +28 -0
  548. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/08-mixed.tsx +41 -0
  549. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -0
  550. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/validate.sh +110 -0
  551. package/assets/.agent/skills/remotion-to-hyperframes/references/api-map.md +142 -0
  552. package/assets/.agent/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -0
  553. package/assets/.agent/skills/remotion-to-hyperframes/references/eval.md +140 -0
  554. package/assets/.agent/skills/remotion-to-hyperframes/references/fonts.md +112 -0
  555. package/assets/.agent/skills/remotion-to-hyperframes/references/limitations.md +136 -0
  556. package/assets/.agent/skills/remotion-to-hyperframes/references/lottie.md +121 -0
  557. package/assets/.agent/skills/remotion-to-hyperframes/references/media.md +149 -0
  558. package/assets/.agent/skills/remotion-to-hyperframes/references/parameters.md +167 -0
  559. package/assets/.agent/skills/remotion-to-hyperframes/references/sequencing.md +195 -0
  560. package/assets/.agent/skills/remotion-to-hyperframes/references/timing.md +165 -0
  561. package/assets/.agent/skills/remotion-to-hyperframes/references/transitions.md +114 -0
  562. package/assets/.agent/skills/remotion-to-hyperframes/scripts/.gitkeep +0 -0
  563. package/assets/.agent/skills/remotion-to-hyperframes/scripts/frame_strip.sh +107 -0
  564. package/assets/.agent/skills/remotion-to-hyperframes/scripts/lint_source.py +358 -0
  565. package/assets/.agent/skills/remotion-to-hyperframes/scripts/render_diff.sh +103 -0
  566. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/blocker.tsx +50 -0
  567. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/clean.tsx +46 -0
  568. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/smoke.sh +90 -0
  569. package/assets/.agent/skills/slideshow/SKILL.md +550 -0
  570. package/assets/.agent/skills/slideshow/references/standalone-harness.md +1020 -0
  571. package/assets/.agent/skills/takomi-flow/SKILL.md +244 -244
  572. package/assets/.agent/skills/talking-head-recut/NOTICE.md +39 -0
  573. package/assets/.agent/skills/talking-head-recut/SKILL.md +1191 -0
  574. package/assets/.agent/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  575. package/assets/.agent/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  576. package/assets/.agent/skills/talking-head-recut/references/frames/clean.html +92 -0
  577. package/assets/.agent/skills/talking-head-recut/references/frames/hairline.html +171 -0
  578. package/assets/.agent/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  579. package/assets/.agent/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  580. package/assets/.agent/skills/talking-head-recut/references/layouts/pip.html +143 -0
  581. package/assets/.agent/skills/talking-head-recut/references/layouts/split.html +121 -0
  582. package/assets/.agent/skills/talking-head-recut/references/layouts/stack.html +109 -0
  583. package/assets/.agent/skills/talking-head-recut/references/styles/academic.html +172 -0
  584. package/assets/.agent/skills/talking-head-recut/references/styles/audit.html +170 -0
  585. package/assets/.agent/skills/talking-head-recut/references/styles/editorial.html +189 -0
  586. package/assets/.agent/skills/talking-head-recut/references/styles/geom.html +181 -0
  587. package/assets/.agent/skills/talking-head-recut/references/styles/minimal.html +130 -0
  588. package/assets/.agent/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  589. package/assets/.agent/skills/talking-head-recut/references/styles/swiss.html +188 -0
  590. package/assets/.agent/skills/talking-head-recut/references/styles/terminal.html +196 -0
  591. package/assets/.agent/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  592. package/assets/.agent/skills/talking-head-recut/references/styles/xhs.html +206 -0
  593. package/assets/.agent/skills/website-to-video/SKILL.md +145 -0
  594. package/assets/.agent/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
  595. package/assets/.agent/skills/website-to-video/assets/sfx/manifest.json +97 -0
  596. package/assets/.agent/skills/website-to-video/references/beat-builder-guide.md +263 -0
  597. package/assets/.agent/skills/website-to-video/references/capabilities.md +713 -0
  598. package/assets/.agent/skills/website-to-video/references/step-0-capture.md +55 -0
  599. package/assets/.agent/skills/website-to-video/references/step-1-design.md +333 -0
  600. package/assets/.agent/skills/website-to-video/references/step-2-brief.md +178 -0
  601. package/assets/.agent/skills/website-to-video/references/step-3-storyboard.md +572 -0
  602. package/assets/.agent/skills/website-to-video/references/step-4-vo.md +230 -0
  603. package/assets/.agent/skills/website-to-video/references/step-5-build.md +483 -0
  604. package/assets/.agent/skills/website-to-video/references/step-6-validate.md +341 -0
  605. package/assets/.agent/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
  606. package/docs/features/TakomiFlow_Portable_Plugin.md +82 -82
  607. package/docs/takomi-flow-onboarding.md +86 -86
  608. package/docs/takomi-flow-public-distribution.md +94 -94
  609. package/package.json +1 -1
  610. package/plugins/takomi-flow/.mcp.json +11 -11
  611. package/plugins/takomi-flow/assets/capabilities.json +203 -203
  612. package/plugins/takomi-flow/assets/collection.schema.json +29 -29
  613. package/plugins/takomi-flow/assets/examples.json +94 -94
  614. package/plugins/takomi-flow/assets/request.schema.json +91 -91
  615. package/plugins/takomi-flow/assets/result.schema.json +46 -46
  616. package/plugins/takomi-flow/assets/templates/image-request.json +17 -17
  617. package/plugins/takomi-flow/assets/templates/video-request.json +19 -19
  618. package/plugins/takomi-flow/package.json +38 -38
  619. package/plugins/takomi-flow/pnpm-lock.yaml +813 -813
  620. package/plugins/takomi-flow/references/flow-provider-contract.md +349 -349
  621. package/plugins/takomi-flow/scripts/lib/agent-plan.mjs +140 -140
  622. package/plugins/takomi-flow/scripts/lib/api.mjs +113 -113
  623. package/plugins/takomi-flow/scripts/lib/args.mjs +66 -66
  624. package/plugins/takomi-flow/scripts/lib/audit.mjs +65 -65
  625. package/plugins/takomi-flow/scripts/lib/browser.mjs +78 -78
  626. package/plugins/takomi-flow/scripts/lib/capabilities.mjs +11 -11
  627. package/plugins/takomi-flow/scripts/lib/collect.mjs +53 -53
  628. package/plugins/takomi-flow/scripts/lib/commands.mjs +192 -192
  629. package/plugins/takomi-flow/scripts/lib/doctor.mjs +77 -77
  630. package/plugins/takomi-flow/scripts/lib/examples.mjs +17 -17
  631. package/plugins/takomi-flow/scripts/lib/flow-media.mjs +39 -39
  632. package/plugins/takomi-flow/scripts/lib/flow-outcome.mjs +115 -115
  633. package/plugins/takomi-flow/scripts/lib/flow-project-session.mjs +153 -153
  634. package/plugins/takomi-flow/scripts/lib/flow-ui.mjs +204 -204
  635. package/plugins/takomi-flow/scripts/lib/generation.mjs +190 -190
  636. package/plugins/takomi-flow/scripts/lib/inspect.mjs +81 -81
  637. package/plugins/takomi-flow/scripts/lib/mcp-prompts.mjs +39 -39
  638. package/plugins/takomi-flow/scripts/lib/mcp-resources.mjs +16 -16
  639. package/plugins/takomi-flow/scripts/lib/mcp-tools.mjs +165 -165
  640. package/plugins/takomi-flow/scripts/lib/media.mjs +78 -78
  641. package/plugins/takomi-flow/scripts/lib/observe.mjs +54 -54
  642. package/plugins/takomi-flow/scripts/lib/paths.mjs +37 -37
  643. package/plugins/takomi-flow/scripts/lib/playwright-loader.mjs +23 -23
  644. package/plugins/takomi-flow/scripts/lib/prompts.mjs +72 -72
  645. package/plugins/takomi-flow/scripts/lib/report.mjs +141 -141
  646. package/plugins/takomi-flow/scripts/lib/request-validator.mjs +73 -73
  647. package/plugins/takomi-flow/scripts/lib/request.mjs +66 -66
  648. package/plugins/takomi-flow/scripts/lib/resource-files.mjs +69 -69
  649. package/plugins/takomi-flow/scripts/lib/result.mjs +31 -31
  650. package/plugins/takomi-flow/scripts/lib/review.mjs +44 -44
  651. package/plugins/takomi-flow/scripts/lib/selftest.mjs +153 -153
  652. package/plugins/takomi-flow/scripts/lib/settings-plan.mjs +44 -44
  653. package/plugins/takomi-flow/scripts/lib/templates.mjs +37 -37
  654. package/plugins/takomi-flow/scripts/lib/trusted-chrome.mjs +67 -67
  655. package/plugins/takomi-flow/scripts/lib/workflow.mjs +56 -56
  656. package/plugins/takomi-flow/scripts/mcp-server.mjs +18 -18
  657. package/plugins/takomi-flow/scripts/mcp-smoke.mjs +144 -144
  658. package/plugins/takomi-flow/scripts/takomi-flow.mjs +17 -17
  659. package/plugins/takomi-flow/skills/takomi-flow/SKILL.md +244 -244
  660. package/plugins/takomi-flow/skills/takomi-flow/agents/openai.yaml +7 -7
  661. package/scripts/install-takomi-flow.ps1 +85 -85
  662. package/src/skills-catalog.js +42 -9
@@ -4,29 +4,29 @@
4
4
  "displayName": "J StaR Films Studios"
5
5
  },
6
6
  "plugins": [
7
- {
8
- "name": "takomi-codex",
9
- "source": {
10
- "source": "local",
11
- "path": "./plugins/takomi-codex"
7
+ {
8
+ "name": "takomi-codex",
9
+ "source": {
10
+ "source": "local",
11
+ "path": "./plugins/takomi-codex"
12
12
  },
13
13
  "policy": {
14
14
  "installation": "AVAILABLE",
15
15
  "authentication": "ON_INSTALL"
16
- },
17
- "category": "Productivity"
18
- },
19
- {
20
- "name": "takomi-flow",
21
- "source": {
22
- "source": "local",
23
- "path": "./plugins/takomi-flow"
24
- },
25
- "policy": {
26
- "installation": "AVAILABLE",
27
- "authentication": "ON_INSTALL"
28
- },
29
- "category": "Productivity"
30
- }
31
- ]
32
- }
16
+ },
17
+ "category": "Productivity"
18
+ },
19
+ {
20
+ "name": "takomi-flow",
21
+ "source": {
22
+ "source": "local",
23
+ "path": "./plugins/takomi-flow"
24
+ },
25
+ "policy": {
26
+ "installation": "AVAILABLE",
27
+ "authentication": "ON_INSTALL"
28
+ },
29
+ "category": "Productivity"
30
+ }
31
+ ]
32
+ }
package/README.md CHANGED
@@ -24,7 +24,7 @@ This isn't prompt engineering. This is **orchestrated development** — a battle
24
24
 
25
25
  ## Features
26
26
 
27
- - **🧠 72+ Skills** — Specialized capabilities from security audits to AI video generation, installed on demand
27
+ - **🧠 95+ Skills** — Specialized capabilities from security audits to AI video generation, installed on demand
28
28
  - **🔄 Universal IDE Sync** — Install once, sync to Antigravity, Claude Code, Codex, Cursor, Kilo Code, Pi, and Windsurf
29
29
  - **🏗️ Full Project Lifecycle** — From genesis (planning) through design, build, and finalize — with verification gates at every step
30
30
  - **🎭 Specialized Agent Modes** — Orchestrator, Architect, Coder, Debugger, Reviewer — each with purpose-built workflows
@@ -147,7 +147,7 @@ See [TakomiFlow Onboarding](docs/takomi-flow-onboarding.md) and [TakomiFlow Publ
147
147
 
148
148
  ## Skill Ecosystem
149
149
 
150
- Think of skills as specialized team members you can summon on demand. Takomi ships **72+ skills** organized by category.
150
+ Think of skills as specialized team members you can summon on demand. Takomi ships **95+ skills** organized by category.
151
151
 
152
152
  ### Core Skills (Default Install)
153
153
 
@@ -176,7 +176,7 @@ npx -y skills add https://github.com/JStaRFilms/VibeCode-Protocol-Suite
176
176
 
177
177
  **Convex** — `convex`, `convex-agents`, `convex-best-practices`, `convex-component-authoring`, `convex-cron-jobs`, `convex-file-storage`, `convex-functions`, `convex-http-actions`, `convex-migrations`, `convex-realtime`, `convex-schema-validator`, `convex-security-audit`, `convex-security-check`
178
178
 
179
- **Frontend / UI** — `frontend-design`, `web-design-guidelines`, `building-native-ui`, `ui-ux-pro-max`, `component-analysis`, `21st-dev-components`, `stitch`, `webapp-testing`
179
+ **Frontend / UI** — `frontend-design`, `web-design-guidelines`, `building-native-ui`, `ui-ux-pro-max`, `component-analysis`, `21st-dev-components`, `stitch`, `webapp-testing`, `figma`
180
180
 
181
181
  **Docs / Office / Extraction** — `pdf`, `docx`, `pptx`, `xlsx`, `high-fidelity-extraction`, `crafting-effective-readmes`, `exam-creator-skill`
182
182
 
@@ -184,7 +184,9 @@ npx -y skills add https://github.com/JStaRFilms/VibeCode-Protocol-Suite
184
184
 
185
185
  **AI Media / Content Creation** — `ai-avatar-video`, `ai-marketing-videos`, `ai-podcast-creation`, `ai-product-photography`, `ai-social-media-content`, `ai-voice-cloning`, `takomi-flow`
186
186
 
187
- **Creative / Video / Art** — `algorithmic-art`, `blender-mcp-scene-director`, `takomi-flow`, `remotion`, `youtube-pipeline`, `ai-avatar-video`, `ai-marketing-videos`, `photo-book-builder`
187
+ **Creative / Video / Art** — `algorithmic-art`, `blender-mcp-scene-director`, `takomi-flow`, `remotion`, `remotion-real-ui-video`, `youtube-pipeline`, `ai-avatar-video`, `ai-marketing-videos`, `photo-book-builder`, `hyperframes`, `general-video`, `motion-graphics`
188
+
189
+ **HyperFrames** — `hyperframes`, `hyperframes-core`, `hyperframes-keyframes`, `hyperframes-animation`, `hyperframes-creative`, `hyperframes-media`, `hyperframes-registry`, `hyperframes-cli`, `remotion-to-hyperframes`, `media-use`, `embedded-captions`, `faceless-explainer`, `general-video`, `motion-graphics`, `music-to-video`, `pr-to-video`, `product-launch-video`, `slideshow`, `talking-head-recut`, `website-to-video`
188
190
 
189
191
  **Skill Building / Prompting / Orchestration** — `skill-creator`, `prompt-engineering`, `subagent-driven-development`, `spawn-task`
190
192
 
@@ -322,6 +324,7 @@ Takomi-original skills, workflows, and runtime extensions — including `21st-de
322
324
  | **[Vercel AI SDK](https://github.com/vercel/ai)** | AI SDK reference, Web Design Guidelines |
323
325
  | **[UI/UX Pro Max](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill)** | Premium design intelligence |
324
326
  | **[Remotion](https://github.com/remotion-dev/skills)** | Programmatic video creation |
327
+ | **[HyperFrames](https://github.com/heygen-com/hyperframes)** | HTML-native video creation and animation framework: HyperFrames core, keyframes, creative, media OS, animation engine, registry, CLI, and specialized creator workflows (product launch, website showcase, faceless explainer, music video, PR walkthrough, overlays, captions) |
325
328
  | **[Subagent Development](https://github.com/obra/superpowers)** | Advanced implementation planning |
326
329
  | **[Context7](https://github.com/upstash/context7)** | Library documentation fetcher |
327
330
  | **[Audit Website](https://github.com/squirrelscan/skills)** | Professional website auditor |
@@ -0,0 +1,93 @@
1
+ # THE CATALOG — one front-end, three engines behind
2
+
3
+ This is the skill's single selection surface. **The user picks an IDENTITY from
4
+ this table; everything else (engine, compiler, authoring file) is derived by
5
+ lookup — never ask the user (or yourself) "Standard or Cinematic or Theme?"**
6
+ Those are backend names; a product has one UX even when it has several engines.
7
+
8
+ Routing procedure (replaces any mode decision):
9
+
10
+ 1. Probe the clip (decision gate + pre-flight probes as in SKILL.md).
11
+ 2. Shortlist 2–3 identities from this table by **content register + the user's
12
+ own words + scene constraints**.
13
+ 3. Recommend ONE with a one-line why; the user picks.
14
+ 4. Author the identity's file (last column), then render with its engine's
15
+ pipeline. Done — no category question ever surfaced.
16
+
17
+ ## Identities
18
+
19
+ | Identity | Reading surface | Voice (one line) | Recommend for | Scene needs | Author → engine |
20
+ | ------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
21
+ | `cream` | scene-embedded column flow | warm poetic light, emergence + glow | introspective, narrative, emotional monologues | dark/mid-tone warm scenes (luma < 150) | cinematic.json → make-cinematic |
22
+ | `ink` | scene-embedded column flow | letterpress pressed into bright surfaces | the bright scenes everything else washes out on | BRIGHT scenes (luma > 150) | cinematic.json → make-cinematic |
23
+ | `editorial` | scene-embedded column flow | lowercase italic serif, pen-stroke glides | fashion / beauty / lyrical / premium brand films | mid/dark scenes | cinematic.json → make-cinematic |
24
+ | `keynote` | scene-embedded column flow | confident centered slides-in-the-scene | launches, founder updates, tech explainers (mood over verbatim reading) | any mid/dark | cinematic.json → make-cinematic |
25
+ | `documentary` | scene-embedded column flow | burn-in stillness, bone on charcoal | interviews, journalism, testimony — gravitas IS the style | any | cinematic.json → make-cinematic |
26
+ | `loud` | scene-embedded, body in front | percussion type that competes with the face | hype, social reels, sport, music, motivational | any (counter-accent handles warm) | cinematic.json → make-cinematic |
27
+ | `neon` | scene-embedded column flow | captions as neon signage in the dark | cyberpunk / nightlife / tech-noir / music | dark scenes | cinematic.json → make-cinematic |
28
+ | `glitch` | scene-embedded column flow | corrupted-feed RGB-split type | hacker / AI / dystopia content | mid/dark | cinematic.json → make-cinematic |
29
+ | `chrome` | scene-embedded column flow | liquid-metal hero with sheen sweeps | fashion-tech, Y2K, product-flex | mid/dark | cinematic.json → make-cinematic |
30
+ | `velocity` | scene-embedded column flow | every word arrives along its motion vector | sport, automotive, fitness, kinetic content | any mid/dark | cinematic.json → make-cinematic |
31
+ | `anchor` | verbatim lower-third rail + 1 settled climax | the quiet professional — fade-up rail that simply reads; the apex settles behind the subject with a drawn accent underline. Discipline IS the style. | explainers, tutorials, corporate, news-adjacent — **where every word must be read**; the conservative default | any (opaque rail; settle carries a soft veil) | theme.json → make-theme |
32
+ | `ordnance` | stamped verbatim rail + detonation apex | military marking system; everything has mass; the room reacts | punchy announcements, drops, "炸一点 / 像 AE 做的" asks | any (charge-dim makes its own contrast) | theme.json → make-theme |
33
+ | `terminal` | typed console panel + glyph-decode apex | the transcript is a signal log; apex decodes from noise | tech / data / AI / investigative, "终端/控制台/解码" asks | cool/dusk preferred | theme.json → make-theme |
34
+ | `neonsign` | warm tube rail + hand-written neon apex | a sign district at dusk; the apex is WRITTEN stroke by stroke | lifestyle / music / mood, "霓虹/手写" asks | dusk/dark backdrop; needs `python3` (stroke-path gen) | theme.json → make-theme |
35
+ | `stardust` | accumulating poem, condensing letters | words condense from dust and return to it | poetic / memory / science-wonder monologues | one clear column side (probe fails → fall back to `cream`) | theme.json → make-theme |
36
+ | `stomp` | full-frame takeover cards | hard-cut typographic takeover with a void before the drop | hooks, manifestos, ad openers — the words ARE the show | any (plate runs dimmed) | theme.json → make-theme |
37
+ | `lastpage` | manuscript rail + a blurred future-field | the future hangs unreadable in the room; one rack-focus reveals every faint line was the apex word | visionary thesis, prophecy-toned talks, trailers, literary content | mid/dark (the field needs air) | theme.json → make-theme |
38
+ | `nightcity` | corrupted-UI rail + cover-letterform apex | body words boot through a corrupted-cyan frame into acid-yellow UI; the apex slams in BEHIND the subject set in the CP2077 cover replica typeface (cyan offset, baseline streak, circuit trace), tears in as displaced slices, lives as a glitching print | gaming / tech-edge / glitch culture / hype drops, "赛博朋克/游戏封面" asks | any (the lockup carries its own contrast); CP2077-adjacent content only (fan-kit terms) | theme.json → make-theme |
39
+ | `scoreboard` | split-flap chyron rail + departures-board apex | stadium split-flap mechanics — body words flip-cycle wrong words on tiles before clacking onto the real one; ROW counter + odometer chip furniture; the apex is a giant departures board behind the subject that locks the word letter-by-letter under floodlights and a crowd-flash, status ticker types on | sports, transit/travel, scores, countdowns, reveals, "翻牌/记分牌/机场大屏" asks | any (board + chyron bring their own dark metal contrast) | theme.json → make-theme |
40
+ | `transit` | LED departure-strip rail + illumination-wipe apex | amber dot-matrix station PA — body words light column-by-column (L→R LED wipe + arrival flicker) on a docked departure strip whose lines page by scroll-snap; platform tag, ticking clock, ⚠ DELAYED → ● ON TIME gag; the apex panel expands behind the subject inside a chasing LED-marquee border, the word illuminates column-by-column under a PA flash + ding pulses, then pages up and collapses | travel/transit, announcements, schedules, countdowns, retro-terminal, "LED屏/车站到站/点阵屏" asks | any (LED strip + panel bring their own dark contrast) | theme.json → make-theme |
41
+ | `vhs` | camcorder OSD rail + REC-FREEZE tracking-slam apex | tape playback — permanent lens vignette + OSD furniture (▶ PLAY, ● REC, blinking green timestamp); body words carry a permanent red/cyan misregistration fringe, arrive by tracking glitch and REWIND off with flat-white echoes + scrub lines (the deck flips PLAY→REW in dead air); the apex is REC FREEZE: 1-frame white tear + head-switching noise bar, the word slams in behind the subject as three sheared tracking bands that SNAP into register, misregistration breathes through the hold under tape weave + auto-iris, then rewinds off | retro / nostalgia / found-footage / home-video, '90s tech, music & lifestyle edits, "录像带/VHS/复古/DV" asks | any (backlight-comp scrim makes its own contrast on bright skies) | theme.json → make-theme |
42
+ | `arcade` | arcade HUD rail + pixel-block boss-intro apex | 8-bit cabinet attract mode — the frame plays through CRT scanlines + a corner vignette; body words coin-pop onto a bordered HUD bar (blinking 1UP, CREDIT 01) with a 1-frame white blip each, emphasis words run a cyan→magenta palette swap, lines dissolve checkerboard; the apex is a BOSS INTRO behind the subject: the room dims, WARNING blinks twice, ~64 seeded pixel blocks fall quantized into a matrix grid over the word rect, the word flashes ON in Press Start 2P with chromatic ghost layers + a 3-frame palette strobe while letterbox bars slam in and a HI-SCORE odometer rolls top-right; everything dissolves checkerboard and the blocks drop away | gaming, retro-tech, playful hype, launches, achievement/level-up beats, "像素/街机/8-bit/打游戏" asks | any (boss dim + dark HUD bar bring their own contrast) | theme.json → make-theme |
43
+ | `dossier` | manila case-file strip + rubber-stamp apex | cold-war case file — carbon Special Elite HAMMERS onto a manila transcript strip char by char (seeded baselines + ribbon ink, every strike kicks the paper; typed case header, CONFIDENTIAL watermark, red ink circles around the evidence; pages are X-row over-struck and carriage-fed away); the apex is a RUBBER STAMP behind the subject: the footage goes sepia-archival, the stamp crushes in at −8° with a double-strike ghost + thin-ink patches, then holds DEAD STILL — sold only by a breathing paper indent — until the page is filed away with a mechanical yank | investigations, exposés, true-crime, document-driven storytelling, declassified/archival framing, "档案/卷宗/解密/盖章" asks | any (the manila strip is self-lit; the stamp brings its own sepia charge) | theme.json → make-theme |
44
+ | `laser` | beam-ignited rail + 6-beam laser-cage apex | concert laser rig in a blackout — every body word is IGNITED where a green and a magenta beam converge on it two frames early (flare pop, snap-on, single strobe on emphasis; a sweeper beam carries each line away); the apex is the drop: a 6-beam array sweeps to one hot point, the word ignites behind the subject in an additive glow stack with two controlled strobe pops, a criss-cross beam cage draws around it, the array fans out wide through the hold, then the beams sweep everything off L→R | music, nightlife, festivals, drops, hype reveals, keynote 'one more thing' beats, "激光/灯光秀/蹦迪字幕" asks | any (the concert blackout makes its own contrast, bright skies included) | theme.json → make-theme |
45
+ | `thunder` | rain-washed rail + branched-bolt strike apex | the storm is the editor — slate storm mood on the room, ambient slanted rain falling in front of the subject, and the sky "kisses" (1-frame brighten) on every body word; rail words arrive with a lit-bright lightning pop (emphasis = sheet-lightning double flash mirrored by a double sky-kiss); the apex is THE STRIKE: a hand-authored branched bolt flashes two frames before the word, the word slams in lit HARD with its shadow flipped toward the bolt, ozone under-glow breathes through the hold while the rain doubles, then everything washes downward with the rain | dramatic reveals, storm/weather content, epic hype beats, trailer-toned monologues, "雷电/闪电/暴风雨字幕" asks | any (charge-dim + radial word scrim make their own contrast, bright skies included) | theme.json → make-theme |
46
+ | `hologram` | volumetric projection plate + hologram-boot apex | every caption is LIGHT cast from an emitter — body words boot onto a scanlined projection plate with a rising sweep, a 1-frame interference glitch and a permanent cyan/magenta fringe (emphasis words drop out for 2 frames and restore brighter; lines drift in rotationY and exit by projector cut); the apex is the full volumetric boot: a desk emitter dot pops, the cone snaps wide, a seed beam fires, and the word materializes behind the subject as a 7-layer hologram with climbing interference bands — a hand passes through it before the projector cuts it back to the dot | tech / sci-fi / AI / space / imaging explainers, futuristic product reveals, "全息/投影/科幻字幕" asks | any (the apex scrim + dim make their own contrast; wants a lower frame edge for the emitter dots) | theme.json → make-theme |
47
+ | `biolume` | jellyfish glow-on rail + bioluminescent-bloom apex | deep-sea bioluminescence — the clip sinks into an abyss grade with a breathing vignette and every caption is a living light: body words GLOW ON like jellyfish (radial bloom from center while a cyan glow breathes in; emphasis words pulse a slow propulsion double-beat) across two coexisting floating rows and SINK away dimming; seeded plankton motes drift the open water and the ones ringing the apex are pulled into the bloom; the apex is the BLOOM behind the subject: a creature pre-glow double-beats and crushes to a point, the word condenses in, six luminous tendrils draw outward like filaments while caustics shimmer, cyan light spills onto the scene and spores burst past — then all the light sinks back into the deep | ocean / nature / science-wonder docs, dreamy or meditative monologues, slow night-time reveals, "深海/发光水母/水下字幕" asks | any (the abyss grade + pocket scrim make their own contrast on bright scenes) | theme.json → make-theme |
48
+ | `aurora` | iridescent sheen rail + silk-ribbon draw-on apex | polar-night elegance — two huge aurora blobs drift the sky all clip; body words are silk serif ink whose rose→teal→violet sheen drifts continuously through the letters (entrance = 2-frame flow-on + y8 settle; emphasis = one bright highlight sweep marching through the word), lines share two coexisting rows like a woven couplet and dissolve UPWARD into drifting light streaks; the apex is a SILK RIBBON: the hero word is hand-WRITTEN into the sky behind the subject stroke by stroke (script single-line font, blurred halo + bright core, a light mote riding the pen) and the aurora gradient keeps FLOWING through the drawn ribbon during the hold while a soft spill tints the sky and light motes rise past the subject — gentle, no shake | dreamy / romantic / wonder content, night-sky and travel pieces, poetry, weddings, elegant brand films, "极光/丝带/优雅手写字幕" asks | any (apex scrim + dark understroke carry contrast on bright skies; loves dusk/night) | theme.json → make-theme |
49
+ | `spectrum` | oscilloscope scope-band rail + phosphor trace-write apex | an oscilloscope is listening — a dark scope band hosts an ALWAYS-ALIVE waveform (seeded pseudo-RMS envelope: speech grows it, silence flattens it, every word arrival kicks a local burst) under VT323 phosphor lines that wipe in L→R over reserved slots with a 2-frame just-traced flash (emphasis words get a ticking frequency-readout chip, the trig LED blinks on every word); the apex is the trace itself LEAPING off the scope (surge column) to hand-WRITE the hero word in a thin phosphor script stroke, fill flicker-on, hum + breathe, then COLLAPSE to a flatline before the next spoken word — and on the FINAL word the trace explodes to max-amp chaos, flatlines to a single dot and stamps SIGNAL LOST | science / signal / audio / measurement / astronomy explainers, data-nerd content, retro-lab or synth aesthetics, "示波器/波形/信号字幕" asks | any (the scope band brings its own dark glass; the apex scrim handles bright skies); needs `python3` (stroke-path gen) | theme.json → make-theme |
50
+ | `papercut` | paper-chip craft rail + stop-motion papermat apex | stop-motion paper craft — the frame becomes an animator's table: body words are cream paper chips PLACED one by one (steps(2) drop, seeded crooked, ~5fps wobble) on a kraft strip with torn top edge, washi-taped corners and a handwritten cut&paste tag; emphasis words get a washi-tape slap, the final word is an accent-red sign-off chip, and a red paper star stands in for the hero word; the apex is a torn kraft mat slapped down behind the subject where torn-edge letter chips DROP with stepped gravity + anticipation shadows, land crooked, settle in 12fps poses, wobble at 8fps while a warm vignette charges — then the FINAL word bumps the table and everything scatters off down-right | craft/DIY, kids & family, indie product demos, behind-the-scenes, maker channels, "手工/剪纸/定格动画字幕" asks | any (kraft strip + cream chips bring their own warm contrast) | theme.json → make-theme |
51
+ | `popup` | pop-up book page rail + centerfold starburst apex | a pop-up book opens inside the frame — body words POP UP on a baseline hinge (rotationX back.out, paper overshoot, a growing back-shadow) along a cream page strip that unfolds from the bottom edge (center foldline, two alternating reading rows); emphasis words land bigger with a contact squash the page FEELS (1px strip dip), then flick-wobble with a blue paper strut leaning in behind; line exits fold flat in an L→R wave (the page closing), the whole page TILTS on the final word and the strip folds shut on the last frame; the apex is THE CENTERFOLD: blue + cream 12-point paper starbursts unfold behind the subject, the hero word pops up in three hinged clip-path segments, kraft struts lean in, backdrop + word wobble-settle TOGETHER and breathe through the hold — then the whole spread folds flat before the next sentence; a blue paper star holds the hero slot on the rail and paper confetti flicks past the subject at the pop | kids and family content, storytelling, education, greeting-card / wholesome brand spots, picture-book and craft channels, "立体书/弹出书/纸艺字幕" asks | any (the cream page strip is self-lit; the apex dusk scrim guards bright skies) | theme.json → make-theme |
52
+ | `chalkboard` | chalk-band rail + hand-written chalkwrite apex | night lecture — a worn deep-green chalk band where every word is SCRIBBLED in fast chalk (2-frame pop + steps(4) scribble reveal + dust puff at the base, seeded crooked); emphasis gets double underline dashes, the final word lands in yellow chalk, and between sentences an ERASER SWIPE smears the old words off (blurred light band, ghost smudges stay — chalk never fully erases); the apex: the band GROWS into a full blackboard behind the subject and the hero word is HAND-WRITTEN 130px tall stroke by stroke (jittered chalk nib, dust falling from the pen, blurred halo under a tight core), finished with a hand-slap dust CLAP in front of the subject + a 1-frame board shake and two violent accelerating underlines, then the halo breathes through the hold | education / explainers, science and lecture content, teacher channels, documentary asides, "黑板/粉笔/板书/老师讲课字幕" asks | any (the deep-green board brings its own contrast); needs `python3` (stroke-path gen) | theme.json → make-theme |
53
+ | `graffiti` | marker rail + spray-tagged handstyle apex | street bombing run — marker words FLICK onto the rail crooked (1-frame squeak skew, seeded rotation, back.out settle); emphasis takes alternating yellow/magenta paint + a spray-underline swoosh with overspray dots; spent lines are ROLLER-BUFFED away (gray roller sweep, wet smear lingers) and the final word lands BIG in yellow with the punch; the apex: the dusk wall dims, the can RATTLES, and the hero word is spray-TAGGED stroke by stroke behind the subject in fat yellow paint (dark under-stroke armor + blurred overspray halo + glowing nib + seeded overspray dots), paint DRIPS grow from the low points through the hold, a magenta paint splat pops at the pen-finish and the plate punches on it | street culture, hip-hop / rap, sneaker & fashion drops, urban sports, skate/BMX, rebellious brand spots, "涂鸦/喷漆/街头字幕" asks | any (the dark under-stroke armors the tag against bright skies); needs `python3` (stroke-path gen) | theme.json → make-theme |
54
+ | `brush` | washi paper-band rail + sumi-e brush-gesture apex | sumi-e study — a deckle-edged washi paper band swipes in behind a traveling brush-head shadow; body words are brush-WIPED on in a Mincho serif (clip reveal behind a per-word brush head, seeded ±1° tilt), emphasis gets a double curved ink underline, and spent lines are wiped OFF right-to-left like a wet cloth (erase brush head riding the wipe); the apex: a warm paper wash charges behind the subject and the hero word is written in ONE violent calligraphic gesture — pressure-tapered wet brush (four stacked stroke widths, blurred bleed underneath), start-SPLAT at the first pen contact with ink flecks kicking past the subject, spatter droplets ejected at the sharpest curves — then the ink BLEEDS into the paper through the hold (the work breathes) and a vermilion SEAL chop (観) stamps beside the ink with the plate punch | calm-authority explainers, craft / design / philosophy / Japan-adjacent content, tea / meditation / writing channels, elegant brand films, "水墨/毛笔/书法字幕" asks | mid/bright scene band (dark ink + its paper wash carry the contrast); needs `python3` (stroke-path gen) | theme.json → make-theme |
55
+ | `inkwater` | three-row ink rail + ink-drop bloom apex | sumi ink dropped in still water — paper-white radial washes back the text zones, Mincho-serif ink words BLEED into three fixed reading rows (blur+scale bleed over a paper-glow halo, dark blurred halo overshoots then tightens, an ink-settling hairline under each line, emphasis sheds a curling ink wisp) and spent lines re-dissolve upward like dispersing ink; the apex: a dark drop falls behind the subject, hits an invisible water surface at the word point and BLOOMS (three stacked blurred ink ellipses at counter-rotating rates + two thin ripple rings) while the world stills under a gentle vignette — the hero words resolve out of the blob on their own spoken times, breathe at the glyph edges through the hold, then re-dissolve before the next thought needs the reader | contemplative / literary / scientific-wonder narration, astronomy / nature / memory / essay films, poetry and slow-craft channels — one liquid meditative event instead of an impact, "水墨滴落/墨水字幕" asks | mid/bright scene band (dark ink + its paper washes carry the contrast) | theme.json → make-theme |
56
+ | `ransom` | cutout-chip collage rail + ransom-note slam apex | kidnapper's collage — every word is a chip clipped from a different page (cream Anton / black Inter / newsprint typewriter / accent-yellow marker, torn edges, hard offset shadows) PASTED crooked on the rail with misaligned baselines (the apex slam at low amplitude); emphasis words get a 1-frame RE-PASTE lift (shadow grows, rotation flips sign for good) and spent chips are RIPPED off one by one under 1-frame paper-tear flashes; the apex: a collage scrim darkens the sky and the hero word slams in letter by letter as a ransom note BEHIND the subject — each letter a different cutout chip, flight shadow popping tight on contact — the whole word JOLTS as the last letter lands (the plate punches with it), looms crooked through the hold, then is torn off chip by chip while the closing line speaks | true crime, mystery / thriller, heist energy, punk / DIY zine aesthetics, edgy drops, unhinged-comedy hooks, "勒索信/剪贴/拼贴字幕" asks | any (solid chip backgrounds carry their own contrast; the apex scrim guards bright skies) | theme.json → make-theme |
57
+
58
+ ## Shortlisting heuristics (identity-level, not category-level)
59
+
60
+ - **"每个词都要被读到 / accessibility / 教程·新闻"** → rail or panel surfaces:
61
+ `anchor`, `ordnance`, `terminal` (all verbatim by construction).
62
+ - **"嵌进场景 / 电影感 / 高级"** → the column-flow ten; pick by register + scene luma
63
+ (bright → `ink`; warm dark → `cream`; fashion → `editorial`; …). Bright + must-read → `anchor`.
64
+ - **"炸 / 特效 / 酷炫 / 像 AE"** → `ordnance`, `stomp`, `terminal`, `loud` — pick by
65
+ what should explode: a word (`ordnance`), the frame (`stomp`), a decode (`terminal`),
66
+ every beat (`loud`).
67
+ - **Named worlds** → direct hits: 控制台/终端 → `terminal`; 霓虹/招牌 → `neonsign`;
68
+ 诗/星尘/记忆 → `stardust`; 军事/重击 → `ordnance`; 预言/未来/悬念揭示 → `lastpage`;
69
+ 赛博朋克/游戏封面/夜之城 → `nightcity`.
70
+ - **Scene constraints veto last**: luma > 180 kills cream/screen column looks
71
+ (→ `ink` or a rail/panel surface); dusk/dark unlocks `neon`/`neonsign`.
72
+ - **Unsure** → `anchor` (the conservative default: words read, scene safe, zero spectacle).
73
+ EXCEPTION: if the ask literally says "嵌进场景 / embed into the scene / 电影感", that signal
74
+ OUTRANKS the conservative default — go column-flow (pick by register + luma), not a rail.
75
+
76
+ Adjacencies worth knowing (these pairs are why the old mode question was hard —
77
+ recommend by the difference, don't agonize over category): `loud` vs `ordnance`
78
+ (percussive type vs a themed world with plate reaction) · `neon` vs `neonsign`
79
+ (neon-styled captions vs a sign being written) · `cream` vs `stardust` (warm
80
+ embedded flow vs an accumulating poem with semantic dispersal) · `terminal` vs
81
+ `glitch` (a console WORLD with typed log + decode vs corrupted-feed styling on
82
+ normal captions) · `stomp` vs `loud` (every beat takes over the dead-center
83
+ frame vs energetic type that still shares the frame with the subject).
84
+
85
+ ## Rules
86
+
87
+ - Identities are **engine-locked** — no cross combos. Opening a new combo (e.g.
88
+ another DNA under rail) is a validation event: render → user review → flip the
89
+ DNA's `deliveries.rail` flag (see dna/README.md).
90
+ - New identities join via their family's registry rules (dna/README.md for
91
+ classic, themes/README.md for themed — "any input, zero hand-fixing" bar).
92
+ - The engines' internals (Standard/Cinematic/Theme compilers, gates, layers)
93
+ are documented in their own files; this catalog is the only routing surface.
@@ -0,0 +1,286 @@
1
+ ---
2
+ name: embedded-captions
3
+ description: 'Add captions to a talking-head video. ONE catalog (CATALOG.md) of 32 visual identities behind two engines: column-flow (captions composited INTO the scene — matte occlusion + mix-blend; cream/ink/editorial/keynote/documentary/loud/neon/glitch/chrome/velocity) and themed constitutions (anchor/ordnance/terminal/neonsign/stardust/stomp/scoreboard/transit/vhs/arcade/dossier/laser/thunder/hologram/biolume/aurora/spectrum/papercut/popup/chalkboard/graffiti/brush/inkwater/ransom/lastpage/nightcity — e.g. a glyph-decode climax, a neon sign WRITTEN stroke by stroke, or the quiet `anchor` rail default). Route by identity, never by mode. Trigger on "captions/subtitles", "embed/cinematic captions", "VFX captions", "炸/特效/酷炫字幕", a named identity, or top-tier motion-graphics asks. Embedding every word is wrong for most talking-head content — `anchor` is the verbatim default. Pipeline: transcription → hyperframes remove-background matting → HTML render → ffmpeg overlay. Requires hyperframes and a single-subject clip.'
4
+ metadata:
5
+ tags: captions, embedded-captions, occlusion, matting, talking-head, rembg-matting, whisper, ffmpeg, cinematic
6
+ ---
7
+
8
+ # Embedded Captions
9
+
10
+ **One catalog, picked up front** ([CATALOG.md](CATALOG.md) — 17 identities; the three engines behind it are backend detail). **Standard** (default) builds a clean verbatim **rail** (lower-third subtitle carrying most text) + an **embed** climax composited _into_ the scene behind the subject at the peak. **Cinematic** is pure embed — no rail, every caption composited behind the subject (hero typography, accumulation, occlusion as the effect). **Theme** is a complete themed constitution — body paradigm × hero setpiece × front fx × plate reaction, composed from registries ([themes/README.md](themes/README.md)): `ordnance` `terminal` `neonsign` `stardust` `stomp`. Most explainer / voiceover is **Standard**; **embed is the scarce, earned peak** — embedding every word is the common mistake; Theme is for VFX-grade asks ("炸", "特效", "像 AE 做的").
11
+
12
+ ---
13
+
14
+ ## Operational flow (TL;DR)
15
+
16
+ The craft prose below is long; the **pipeline itself is short** — and everything
17
+ deterministic is computed or compiled, never hand-written:
18
+
19
+ 1. **Decision gate** (refuse bad clips) → **pick ONE identity from [CATALOG.md](CATALOG.md)** (17 identities; engine/compiler derived by lookup — never surface a mode/category question)
20
+ 2. `hyperframes init` (skip it if the project dir already exists with the video inside — `matte.cjs`/`transcribe.cjs` adopt any video in the dir as source.mp4) → **`bash scripts/prepare.sh <project>`** (matte ∥ transcribe ∥ audio-envelope in parallel, then safe-zones v2 with scene palette/optics/lighting — one command, nothing forgotten)
21
+ 3. **author a small JSON of creative choices** (read `safe-zones.json` first):
22
+ Cinematic → `plan.json` → `fill-timings.cjs` → `fit-fonts.cjs` → `make-composition.cjs`;
23
+ Theme → `theme.json` → `make-theme.cjs` (rail/panel/poem/takeover paradigms; `anchor` is the quiet rail default)
24
+ 4. **Visual QA**: `node scripts/preview-frames.cjs <project>` → faithful composite previews in ~2s/frame (no render). Check § Visual QA before paying for a render.
25
+ 5. `render-and-composite.sh` → gates (timing / occlusion+hero / overflow / hand-off) → `final.mp4`
26
+
27
+ Load-bearing rules people miss:
28
+
29
+ - **rail (default) + embed (promotion).** `drop` (filler, not shown) / `rail` (verbatim lower-third subtitle, in front, carries most text) / `embed` (a peak word composited behind the subject). **Standard mode does both**, embedding only the peak(s). See **§ Caption model**.
30
+ - **The video is delivered UNTOUCHED (Standard/Cinematic; **Theme mode's PLATE budget is the one sanctioned exception** — register-gated reaction beats (charge-dim, punch, shake, grain) defined per theme DNA and applied AFTER the matte composite so subject+text+plate move as one frame)** — captions are the only thing added; the matte just lets the subject occlude the embed track. Never grade/recolor/scanline the footage.
31
+ - Two rulebooks: **rail → [references/rail.md](references/rail.md)** (thin), **embed craft → [references/composition-craft.md](references/composition-craft.md)** (rich, embed-only). Skim by need.
32
+
33
+ ---
34
+
35
+ ## Caption model — rail + embed
36
+
37
+ Every spoken phrase is one of three things:
38
+
39
+ | | What | How it's shown |
40
+ | --------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
41
+ | **drop** | filler — um/uh, stutters, self-corrections | not shown |
42
+ | **rail** | the default — ordinary spoken content (verbatim) | clean lower-third subtitle, **in front**, readable. A punch word can get an inline `emphasis` highlight (accent colour / active-word pop) — it stays on the rail. |
43
+ | **embed** | a promoted peak — the headline beat | one big word composited **behind the subject** (matte occlusion), designed entrance + exit |
44
+
45
+ **The rail carries most of the text; embed is the scarce, earned peak.** Scarcity is **per beat/block, not per clip**: ≤1 hero per block (thought), never two co-visible, ≥ a beat of air between hero windows (the compiler warns under 0.6s). A short clip → usually 1–2; a long explainer → ~one per section. Among multiple heroes, the **largest authored one is the APEX** (it alone gets the full lockup embed + width-fit raise); smaller ones are **MINOR peaks** that ride their column as oversized emphasis lines (fg, damped motion) — not every beat needs the matte showcase, which is exactly what keeps the apex an event. Embedding every word is still the common mistake.
46
+
47
+ Rail-surface identities build exactly this (rail = `rail.html`, embed = the climax in `index.html`). Column-flow identities drop the rail and make everything embed-style — recommend them only for mood-over-verbatim asks, never for explainer / voiceover where the words must read (CATALOG.md encodes this per identity).
48
+
49
+ ---
50
+
51
+ ## Step 0 — pick ONE identity from the CATALOG
52
+
53
+ **One front-end, three engines behind.** The user picks an IDENTITY from
54
+ [CATALOG.md](CATALOG.md) (17 entries: 12 classic + 5 themed); the engine,
55
+ compiler and authoring file are derived by lookup from the catalog row.
56
+ **Never surface "Standard vs Cinematic vs Theme" as a question** — those are
57
+ backend names (a product has one UX even with several engines). The catalog
58
+ encodes everything routing needs: reading surface, voice, recommend-for, scene
59
+ needs, adjacency notes for the genuinely-close pairs (loud↔ordnance,
60
+ neon↔neonsign, cream↔stardust).
61
+
62
+ Procedure: probe the clip → shortlist 2–3 identities from the catalog →
63
+ recommend ONE with a one-line why → **the user picks** → author that identity's
64
+ file. Identities are engine-locked (no cross combos; opening one is a
65
+ validation event — see dna/README.md).
66
+
67
+ **Always present your recommendation and let the user pick before you author.** Don't silently default.
68
+
69
+ (The full identity table lives in [CATALOG.md](CATALOG.md) — single source of truth for routing. The engine docs below describe each backend's authoring contract.)
70
+
71
+ **Recommendation heuristic**: use the "Shortlisting heuristics" in [CATALOG.md](CATALOG.md) — they are identity-level (e.g. "炸" shortlists ordnance/stomp/terminal/loud and picks by WHAT should explode), never category-level. Unsure → `anchor`.
72
+
73
+ - **Cinematic** → write `plan.json` for a locked template, compiled by `make-composition.cjs`.
74
+ - **Theme** → read [themes/README.md](themes/README.md), author `theme.json`, run `scripts/render-theme.sh` (compiles + renders + plate reaction → **final_fx.mp4**).
75
+
76
+ ---
77
+
78
+ ## Decision gate — RUN FIRST
79
+
80
+ Probe the video and classify the scene before either mode.
81
+
82
+ ```bash
83
+ ffprobe <video.mp4> # specs
84
+ ffmpeg -ss <t> -i <video.mp4> -vframes 1 sample.png # at 20/50/80%
85
+ ```
86
+
87
+ Read the samples. Refuse if:
88
+
89
+ - Multiple speakers / hard cuts (split & render each shot, or refuse)
90
+ - No human subject (this skill is for talking-head)
91
+ - Under 3 seconds, **no speech**, or face never clearly visible — `transcribe.cjs` warns when audio is near-silent (Whisper hallucinates words like "Thank you." over silence); **heed it and refuse** rather than caption fabricated words
92
+ - **Source already has burned-in captions / subtitles / heavy text graphics** — adding a second caption system conflicts and the footage ships untouched (no covering/inpainting). Burned text often appears only mid-clip: sample a **1fps contact sheet** (`ffmpeg -i in.mp4 -vf "fps=1,scale=160:-1,tile=10x5" sheet.png`), don't trust 3 spot frames.
93
+ - **Transcript is garbage** — non-native/heavy-accent speech can transcribe into confident gibberish. Sanity-read `transcript.json` before authoring; if it doesn't parse as language, try `WHISPER_MODEL=medium` once, else refuse (a verbatim rail of fabricated words is worse than no captions).
94
+ - Busy handheld with fast motion (matte flickers)
95
+
96
+ ### Pre-flight probes (cost nothing, prevent the worst failures)
97
+
98
+ 1. **Shot-cut probe.** Sample frames at 20%, 50%, 80%. If a different subject/scene appears, **trim the clip** before the cut.
99
+ 2. **Letterbox / pillarbox probe.** Black bars on the first frame? Compute safe content rect and constrain caption placement inside it.
100
+ 3. **Luminance probe.** Sample the caption region's average luminance — `under 60` → light text reads as-is, `60-180` → add the glyph scrim, `180+` → opaque text + scrim (never bare light text). **Cinematic templates are cream+`screen` and LOCKED** — use this probe to _pick a fitting identity_ (bright scenes → `ink`, or the opaque-rail `anchor` theme), never to recolour one.
101
+ 4. **Identity recommendation by tone (you recommend; the user picks — see Step 0 + CATALOG.md).** explainer / interview / must-read words → rail/panel-surface identities; poetic / social / "cinematic" → column-flow identities by register; "炸 / 特效 / VFX" / named worlds → themed identities. When unsure → `anchor` (words read, scene safe) — but present a shortlist and let the user choose.
102
+
103
+ ---
104
+
105
+ ## Pipeline — 5 steps
106
+
107
+ ```
108
+ 1. hyperframes init <project> --non-interactive --video <video.mp4>
109
+ 2. bash scripts/prepare.sh <project> # matte ∥ transcribe (parallel) → safe-zones. One command.
110
+ # → frames_fg/ transcript.json safe-zones.json
111
+ 3. [AGENT STEP — the only creative step] author a small JSON; see below by mode
112
+ Cinematic: author plan.json → node scripts/fill-timings.cjs → fit-fonts.cjs → make-composition.cjs
113
+ Theme: author theme.json → bash scripts/render-theme.sh <project> (compiles + renders + plate fx)
114
+ 4. node scripts/preview-frames.cjs <project> # ~2s/frame composite previews → § Visual QA (BEFORE the render)
115
+ 5. bash scripts/render-and-composite.sh <project> # gates → final.mp4 + history/ snapshot
116
+ (Theme mode: SKIP steps 3b/5 — render-theme.sh already runs compile + render-and-composite
117
+ + _postfx.sh; the deliverable is final_fx.mp4, final.mp4 is pre-plate-reaction)
118
+ ```
119
+
120
+ Step 1's `init` checks the installed skills against the latest on GitHub and updates the global set if any are out of date.
121
+
122
+ Step 3 differs by mode:
123
+
124
+ ### Step 3 — Cinematic mode (pure embed)
125
+
126
+ 1. **Read `safe-zones.json` first.** Narration planes go in **`zones.hugLeft`/`hugRight`** — clean strips ABUTTING the silhouette (text far from the body reads as floating, not embedded; far corners are the fallback, not the default). The hero defaults to `heroAnchor`/`heroBands.best` (centered ON the subject, ~30–55% occluded). `recommendation:"fg"` moves NARRATION in front for legibility; **the hero stays embedded whenever `heroBands.feasible`** — hero-fg is the last resort.
127
+ 2. **The DNA is the identity you picked in Step 0** (CATALOG.md) — do not re-open the choice here. Sanity-check it against the scene (bright hero band luma > 150 wants `ink`; full pick guidance lives in the catalog, covering all ten incl. neon / glitch / chrome / velocity). State your pick + why; the user decides. The DNA locks type/palette/blend/motion + hero three-act; safe-zones v2 (`palette`/`optics`/`lighting`) parameterizes it to THIS scene automatically.
128
+ 3. **Author `<project>/cinematic.json`** — `"dna": "<name>"` + thought-BLOCKS, not raw groups: each block = lines of words (grouped 2–5 at clause boundaries) + the plane it stacks in + per-line `css` (size/weight/style only — no positions) + at most ONE line marked `"hero": true` (the promoted word; `"text"` for display form). Schema: `scripts/make-cinematic.cjs` header.
129
+ 4. **Compile**: `node scripts/make-cinematic.cjs <project>` — lowers blocks → plan.json → index.html. Generated for you: transcript-sequenced timings, accumulate-within-block, page-flip-between-blocks, **the hero LOCKUP** (a hero block's pre-context, HERO and post-context stack as ONE bonded composition centered on the subject — reading order top→bottom = spoken order by construction; context floats in FRONT while the hero embeds BEHIND = the depth sandwich; a mass rule keeps the hero dominating its context), apex/minor hero split, **reading order by construction**, fg fallback per safe-zones. Then the gates run as usual. _(Hand-authoring plan.json directly remains possible for designs blocks can't express — then run `fill-timings.cjs` + `fit-fonts.cjs` + `make-composition.cjs` yourself.)_
130
+
131
+ ### Step 3 — Theme mode (themed constitution)
132
+
133
+ **Read [themes/README.md](themes/README.md) FIRST** — paradigm/setpiece registries, linkages, hard rules, and the exact `theme.json` schema.
134
+
135
+ 1. **Pick a theme DNA** by content register (each `themes/<name>.json` has `voice` + `when`). State your pick + why; the user decides.
136
+ 2. **Author `<project>/theme.json`** — `dna`, `lines` (verbatim, transcript order; 1–5 words each — for `takeover` each line is one CARD), `minors` (emphasis words), `hero:{match}` (the climax word/phrase; leave it OUT of `lines` for embed setpieces, keep it IN for inline setpieces and panel+redact).
137
+ 3. **Render**: `bash scripts/render-theme.sh <project>` — compiles (verbatim-completeness gate at compile time), renders both layers, composites, applies the plate reaction → `final_fx.mp4`. Use `preview-frames.cjs` between compile and render for Visual QA.
138
+
139
+ ---
140
+
141
+ ## Visual QA — preview BEFORE you render
142
+
143
+ `node scripts/preview-frames.cjs <project> [t…]` composites **faithful preview frames in ~2s each**
144
+ (caption layers screenshotted at seek-time + real video frame + matte occlusion + rail overlay = what
145
+ the final composite will look like at that moment). Default samples = each group/climax window.
146
+ A full render costs minutes — never use it to _discover_ layout problems.
147
+
148
+ Check the previews (`<project>/preview/sheet.png`) against this list — these are the failures the
149
+ geometric gates **cannot** catch:
150
+
151
+ 1. **Washout** — light text over a bright region (window/sign/sky): unreadable → move the plane or change DNA/mode (bright scene → `ink`).
152
+ 2. **Text-on-text** — captions over the scene's own text/graphics, or two caption groups colliding.
153
+ 3. **Reading order** — on-screen vertical order must match spoken order; the hero must not sit below later words.
154
+ 4. **Hero presence** — the climax should be BIG and visibly behind the subject (~30–55% occluded), not a floating label in a margin.
155
+ 5. **Balance** — one coherent column/band, not scattered fragments; margins breathing; nothing clipped.
156
+
157
+ Then the **5 positive checks** in [references/reference-bar.md](references/reference-bar.md)
158
+ (poster test · timid test · one-glance hierarchy · scene handshake · dead-air audit) — the
159
+ failure list keeps a render from being broken; the positive list is what makes it _designed_.
160
+ Ship when both pass.
161
+
162
+ **Fresh-eyes review (recommended for anything user-facing):** you have confirmation bias about your
163
+ own layout. If you can spawn a subagent, give it ONLY the preview sheet + this checklist and ask for
164
+ PASS/FIX verdicts per frame ("review these caption previews against the 5-point checklist; answer
165
+ PASS or the specific fix per frame"). Apply fixes in plan.json / theme.json, recompile, re-preview —
166
+ each loop costs seconds. Render once, when the previews pass.
167
+
168
+ ---
169
+
170
+ ## The DNA registry — ten visual languages (replaces the template catalog)
171
+
172
+ Both modes draw from **[dna/](dna/README.md)** — six art-directed visual languages that
173
+ **parameterize per scene** (accent sampled from the footage, contact shadow along the
174
+ measured light direction, depth-match blur, RMS-coupled hero amplitude):
175
+
176
+ | DNA | Register | Scene fit | Voice |
177
+ | --------------- | -------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------- |
178
+ | **cream** | premium-warm | dark/mid warm scenes | Inter + warm cream + screen; glowing emergence hero (successor of cinematic-cream) |
179
+ | **ink** | premium | **bright scenes (luma > 150)** | near-black multiply — type printed ON the wall; the bright-scene answer |
180
+ | **editorial** | editorial-luxe | introspective / fashion / poetic | Bodoni Moda, lowercase-italic hero — magazine elegance |
181
+ | **keynote** | tech-premium | product / launch | opaque white Inter 800, dead-center stillness |
182
+ | **documentary** | formal | interview / serious | burn-in reveals, no hero — gravitas IS the style |
183
+ | **loud** | loud | hype / sport / social | Anton + scene-sampled accent, single-unit slam + ripple; body ANNOUNCES in front (`bodyLayer: fg`) |
184
+ | **neon** | loud-cyber | cyberpunk / nightlife / tech-noir (dark scenes) | electric-cyan signage, ignition flicker, the hero powers ON like a sign |
185
+ | **glitch** | loud-cyber | digital / hacker / AI | RGB-split echoes snap together on landing; machine-percussive timing |
186
+ | **chrome** | loud-luxe | Y2K / fashion-tech / music | liquid-metal gradient hero + one sheen sweep during the hold |
187
+ | **velocity** | loud-sport | sport / auto / fitness | every word arrives along its motion vector (streak+skew), hero passes with speed trails |
188
+
189
+ Pick by `safe-zones.json` (`heroAnchor.bandLuma`, `palette.temperature`) × content
190
+ register — [dna/README.md](dna/README.md) has the decision rule. Authoring:
191
+ `cinematic.json` takes `"dna": "<name>"`.
192
+
193
+ The engine generates the **hero three-act** from the DNA (no authoring needed):
194
+ co-visible captions dim (setup) → per-letter entrance with amplitude ∝ spoken loudness
195
+ (impact) → breathe + glow until exit (afterglow).
196
+
197
+ (Legacy: `plan.template:"cinematic-cream"` maps to `dna:"cream"` automatically.
198
+ The retired 54-template library lives outside the skill at
199
+ `~/Downloads/embedded-captions-archive/standard-templates-54/`; `_motion.md` remains
200
+ in-skill as the motion-verb reference catalog.)
201
+
202
+ ---
203
+
204
+ ## Aesthetic decision — tone × shot × platform (input to the catalog shortlist, NOT a second router)
205
+
206
+ Classify the clip on 3 axes and feed the result into CATALOG.md's shortlisting — this section never picks a mode/engine by itself:
207
+
208
+ **Tone** (what feel does the content have?)
209
+
210
+ - documentary | conversational | energetic | poetic | keynote | investigative | music-video
211
+
212
+ **Shot** (what's the framing?)
213
+
214
+ - close-up (head + shoulders) | mid-shot (torso+) | wide (full body+) | cut-montage (mixed shots)
215
+
216
+ **Platform** (where will it play?)
217
+
218
+ - 9:16 portrait (TikTok/IG/Shorts) | 16:9 landscape (YouTube/web) | 1:1 square | broadcast export
219
+
220
+ Cross-reference in [references/direction-catalog.md § Classification matrix](references/direction-catalog.md) for direction language — then return to [CATALOG.md](CATALOG.md) to shortlist identities (this matrix informs the shortlist; the catalog is the only routing surface).
221
+
222
+ ## Composition craft (embed track) — read before embedding
223
+
224
+ The full **embed-track** playbook lives in **[references/composition-craft.md](references/composition-craft.md)**:
225
+ transcript role-annotation, phrase grouping, planes & clean-zone anchoring, zone coherence,
226
+ climax pop & readability, edge-breathing, the occlusion 3-step judgement, and
227
+ accumulation/persistence. It governs how a _promoted_ phrase sits INTO the scene — read it
228
+ before authoring any embed (Cinematic `plan.json` or Standard `index.html`). The default **rail**
229
+ track has its own, much simpler spec → **[references/rail.md](references/rail.md)**.
230
+
231
+ ---
232
+
233
+ ## Shared knowledge
234
+
235
+ | Doc | What |
236
+ | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
237
+ | [references/rail.md](references/rail.md) | **The rail track** — standard lower-third subtitle spec (the default; carries most text). |
238
+ | [references/composition-craft.md](references/composition-craft.md) | **The embed-track playbook** — grouping, planes, climax pop, occlusion judgement, accumulation/persistence. Read before embedding. |
239
+ | [dna/README.md](dna/README.md) | **The DNA registry** — six scene-parameterized visual languages; how to pick. |
240
+ | [references/reference-bar.md](references/reference-bar.md) | **The taste bar** — per-register world-class references + the 5 positive checks. |
241
+ | [references/aesthetic-principles.md](references/aesthetic-principles.md) | **The 18 rules.** Beat Veed AI on taste. Read first. |
242
+ | [references/motion-vocabulary.md](references/motion-vocabulary.md) | 10 named motion primitives + tone→timing lookup |
243
+ | [references/direction-catalog.md](references/direction-catalog.md) | 10 ship-ready aesthetics + tone×shot×platform matrix |
244
+ | [references/anti-patterns.md](references/anti-patterns.md) | Bugs already locked out (CoreML, letter-spacing reflow, etc.) |
245
+ | [references/scene-types.md](references/scene-types.md) | When a wall surface is usable (4 conditions) |
246
+ | [references/layout-heuristics.md](references/layout-heuristics.md) | Plane positioning, clean-zone selection, crown 3 conditions, pillarbox math |
247
+ | [references/typography-presets.md](references/typography-presets.md) | Font-size × column-width matrix (starting points) |
248
+ | [references/caption-grouping.md](references/caption-grouping.md) | Word → group rules (pauses, sentence boundaries) |
249
+ | [references/failure-modes.md](references/failure-modes.md) | Long tail of dev gotchas |
250
+ | [references/bespoke-vs-presets.md](references/bespoke-vs-presets.md) | Why presets fail sometimes; clone-and-tweak pattern |
251
+
252
+ **Read the aesthetic principles and direction catalog FIRST.** Everything else is implementation detail.
253
+
254
+ ---
255
+
256
+ ## Non-negotiables
257
+
258
+ - **Face must never be 100%-covered continuously** — every 0.3s window, face bbox ≥30% uncovered.
259
+ - **WCAG contrast** — final render lints; fix palette if it fails.
260
+ - **Deterministic** — no `Math.random()`, no `Date.now()`, no `repeat:-1`.
261
+ - **Never grade/recolor the video.** The footage ships untouched — captions are the only addition. No full-frame scanlines / duotone / darken / vignette over the a-roll. Cyberpunk/CRT texture belongs _inside_ a caption element, not over the whole frame.
262
+ - **Rail-first for talking-head / explainer.** Don't embed the whole transcript — most text is the rail; embed only peaks. Embedding everything is the default mistake.
263
+ - **Embed is scarce + spaced.** ≤1 embed per sentence/beat, never two adjacent or co-visible, ≥ a beat apart, at most one `apex`. climax = per-beat peak, **not** "the single payoff of the entire clip."
264
+ - **Matte = the PERSON (hyperframes `remove-background`, u2net_human_seg, Apache-2.0).** Human segmentation by intent, but not surgically: thin offset furniture (mic boom arms) is usually excluded — captions render over it, behind the person — while large salient objects NEAR the subject (a telescope, a desk rig) can still leak into the matte and occlude captions. Objects HELD by the subject (products, phones) may drop out intermittently, letting captions pass in front. NEVER assume: sample `frames_fg/` at 2-3 timestamps before placing the hero, and prefer hero positions clear of any leaked furniture (`heroAnchor` can be skewed by leaks — cross-check against frames_bg).
265
+ - **safe-zones is PROP-BLIND — eyeball every band you use.** Zones/heroBands score _subject_ occlusion + luma only: a mic, telescope, or screen sitting inside a "clean" zone is invisible to them (and a prop leaking INTO the matte skews `heroAnchor.centerXPct` off the person). Before authoring, extract ONE frame of each band you intend to use; if a prop lives there, measure its bbox and move/shrink the plane. Two real cases shipped clean only because the agent did exactly this. (Auto prop-saliency is a known gap; zones' `peakLuma` only catches _moving_ bright objects.)
266
+ - **Captions stay on-frame.** Cinematic mode hard-gates frame-overflow; Standard mode runs `check-overflow.cjs` as a WARNING (intentional bleed is the only exception — read the warning).
267
+ - **Each caption ≥ 0.5s on screen** — shorter = unreadable.
268
+ - **Word timings must match transcript.json within 80ms** — a caption firing 500ms off-beat destroys the scene illusion. Cinematic runs `check-timing.cjs --strict` before rendering (via render-and-composite.sh); THEME mode enforces the same timings at compile time instead (make-theme's sequential transcript matcher + verbatim completeness gate — drift is a compile error). Never pack multiple transcript words into one entry (e.g. `"FUTURE OF"` or an `IT` + line-break + `ALL` stack with one start/end) — the second word inherits the first's timestamp and fires early. Split them into separate word entries with their own timings, even if you want them on the same visual line (use CSS `white-space` / natural wrap instead of `<br>`). Creative substitutions where caption text ≠ transcript (e.g. `"15%"` replacing `"fifteen percent"`) are supported — register them in `CREATIVE_SUBS` inside `check-timing.cjs`.
269
+ - **Group windows must envelop their words** — `group.in ≤ min(word.start)` and `group.out ≥ max(word.end)` for every group. If `group.in` is later than a word's start, the word is silently delayed until the container mounts (we've shipped 800ms lag bugs from this). The validator enforces this.
270
+ - **No two caption groups may overlap in both time AND screen region** — overlapping-in-time captions create text-on-text pileups. Options: (a) **spatial separation** — place each group in a non-overlapping vertical band so they can coexist (memory-wall cascade style); (b) **handoff** — set the earlier group's `out` ≤ the next group's `in` so only one is on screen; (c) **deliberate layered typography** — add `"allow_overlap": true` on one of the groups to silence the validator. The validator estimates each group's vertical bbox from its CSS and flags collisions. Pick (a) by default — it's what makes cinematic-cream feel like a poem accumulating, not a subtitle track replacing itself.
271
+ - **Screen-blend fails on bright backgrounds (>180 luminance).** **Cinematic** templates are cream + `screen` and that DNA is **locked** (the plan can't recolour them) → on a bright backdrop they wash out, so pick `ink` (letterpress built FOR bright surfaces) or the `anchor` theme (opaque rail surface) rather than overriding a look.
272
+ - **Don't animate `letter-spacing` or `filter:blur` on word entrance** — inline-block reflow causes line-jumps.
273
+ - **CoreML banned for matting** — the onnxruntime CoreML EP's mixed-precision partitioning corrupted face alpha (observed with the previous RVM engine; don't re-try it). Matting is CPU-only (~2 fps @1080p ≈ 2-3 min per 10s clip; budget for it on long clips).
274
+
275
+ ---
276
+
277
+ ## Dependencies
278
+
279
+ - **hyperframes**, built (`packages/cli/dist/cli.js`). Scripts auto-resolve the checkout: `HYPERFRAMES_ROOT` env → repo root if this skill ships _inside_ hyperframes → `~/Downloads/hyperframes`. Build with `bun install && bun run build`.
280
+ - **Node-first; two Python touchpoints via `uvx` (no manual installs):** transcription runs WhisperX through `uvx` (word-level timings; falls back per SKILL §transcription), and Theme's `drawon` setpiece shells `python3 scripts/gen-stroke-path.py` at compile time. Everything else runs on the toolchain hyperframes already ships: matting via the hyperframes CLI's **`remove-background`** (u2net_human_seg; weights auto-download once, ~168 MB, to `~/.cache/hyperframes/`), image/alpha math via **`sharp`**, layout/occlusion/overflow via **`puppeteer`**, plus **`ffmpeg`**. The scripts auto-resolve these from the hyperframes checkout — nothing extra to install.
281
+ - **Transcription = WhisperX via `uvx`** (word-level timings + alignment; no manual install — `transcribe.cjs` drives `uvx whisperx`). Falls back to an existing word-level `transcript.json` if present.
282
+ - **Source video** — `matte.cjs` / `transcribe.cjs` auto-resolve `source.mp4` (or glob the clip / read `hyperframes.json`), so `hyperframes init --video X.mp4` needs no manual rename.
283
+ - **fps** — `matte.cjs` extracts at the source's native rate and records `matte.fps`; `render-and-composite.sh` uses that so the matte stays frame-aligned.
284
+ - Matting weights are NOT bundled: `matte.cjs` shells the hyperframes CLI's `remove-background`, which downloads u2net_human_seg (~168 MB, Apache-2.0) once to `~/.cache/hyperframes/background-removal/models/`. First prepare on a fresh machine needs network for that one download.
285
+
286
+ If a hard dependency is missing, STOP and ask the user — don't silently skip steps.