takomi 2.5.1 → 2.5.4

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 (661) hide show
  1. package/.pi/agents/worker.md +32 -32
  2. package/.pi/extensions/oauth-router/README.md +3 -3
  3. package/.pi/extensions/oauth-router/config.ts +34 -34
  4. package/.pi/extensions/oauth-router/report-ui.ts +205 -205
  5. package/.pi/extensions/oauth-router/scripts/vibe-verify.py +5 -5
  6. package/.pi/extensions/takomi-context-manager/diagnostics.ts +560 -560
  7. package/.pi/extensions/takomi-context-manager/policy-tools.ts +93 -93
  8. package/.pi/extensions/takomi-context-manager/skill-categories.d.ts +11 -11
  9. package/.pi/extensions/takomi-context-manager/skill-tools.ts +208 -208
  10. package/.pi/extensions/takomi-context-manager/tool-renderers.ts +112 -112
  11. package/.pi/extensions/takomi-runtime/gate-provenance.ts +24 -24
  12. package/.pi/extensions/takomi-runtime/model-routing-defaults.ts +262 -262
  13. package/.pi/extensions/takomi-runtime/tool-renderers.ts +234 -234
  14. package/.pi/extensions/takomi-runtime/workflow-catalog.ts +54 -54
  15. package/.pi/extensions/takomi-subagents/async-lifecycle.ts +401 -401
  16. package/.pi/extensions/takomi-subagents/detached-results.ts +940 -940
  17. package/.pi/extensions/takomi-subagents/native-render.ts +253 -250
  18. package/.pi/extensions/takomi-subagents/result-heartbeat.ts +55 -55
  19. package/.pi/extensions/takomi-subagents/subagent-ux.ts +162 -162
  20. package/.pi/extensions/takomi-subagents/tool-runner.ts +25 -0
  21. package/.pi/takomi-profile.json +54 -54
  22. package/README.md +1 -1
  23. package/assets/.agent/skills/embedded-captions/CATALOG.md +93 -93
  24. package/assets/.agent/skills/embedded-captions/SKILL.md +286 -286
  25. package/assets/.agent/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -35
  26. package/assets/.agent/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -115
  27. package/assets/.agent/skills/embedded-captions/assets/fonts/char-widths.json +2211 -2211
  28. package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +241 -241
  29. package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +241 -241
  30. package/assets/.agent/skills/embedded-captions/dna/README.md +148 -148
  31. package/assets/.agent/skills/embedded-captions/dna/chrome.json +68 -68
  32. package/assets/.agent/skills/embedded-captions/dna/cream.json +69 -69
  33. package/assets/.agent/skills/embedded-captions/dna/documentary.json +62 -62
  34. package/assets/.agent/skills/embedded-captions/dna/editorial.json +70 -70
  35. package/assets/.agent/skills/embedded-captions/dna/glitch.json +82 -82
  36. package/assets/.agent/skills/embedded-captions/dna/ink.json +65 -65
  37. package/assets/.agent/skills/embedded-captions/dna/keynote.json +62 -62
  38. package/assets/.agent/skills/embedded-captions/dna/loud.json +75 -75
  39. package/assets/.agent/skills/embedded-captions/dna/neon.json +58 -58
  40. package/assets/.agent/skills/embedded-captions/dna/velocity.json +89 -89
  41. package/assets/.agent/skills/embedded-captions/modes/cinematic/README.md +48 -48
  42. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -98
  43. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -188
  44. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -134
  45. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -179
  46. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -81
  47. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -170
  48. package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -16
  49. package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -226
  50. package/assets/.agent/skills/embedded-captions/modes/cinematic/engine.html +355 -355
  51. package/assets/.agent/skills/embedded-captions/modes/standard/_anatomy.md +233 -233
  52. package/assets/.agent/skills/embedded-captions/modes/standard/_motion.md +192 -192
  53. package/assets/.agent/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -97
  54. package/assets/.agent/skills/embedded-captions/references/aesthetic-principles.md +168 -168
  55. package/assets/.agent/skills/embedded-captions/references/anti-patterns.md +188 -188
  56. package/assets/.agent/skills/embedded-captions/references/bespoke-vs-presets.md +178 -178
  57. package/assets/.agent/skills/embedded-captions/references/caption-grouping.md +130 -130
  58. package/assets/.agent/skills/embedded-captions/references/composition-craft.md +522 -522
  59. package/assets/.agent/skills/embedded-captions/references/direction-catalog.md +138 -138
  60. package/assets/.agent/skills/embedded-captions/references/example-renders/champion.html +371 -371
  61. package/assets/.agent/skills/embedded-captions/references/example-renders/memory-wall.html +334 -334
  62. package/assets/.agent/skills/embedded-captions/references/failure-modes.md +145 -145
  63. package/assets/.agent/skills/embedded-captions/references/layout-heuristics.md +238 -238
  64. package/assets/.agent/skills/embedded-captions/references/motion-vocabulary.md +148 -148
  65. package/assets/.agent/skills/embedded-captions/references/rail.md +68 -68
  66. package/assets/.agent/skills/embedded-captions/references/reference-bar.md +47 -47
  67. package/assets/.agent/skills/embedded-captions/references/scene-types.md +94 -94
  68. package/assets/.agent/skills/embedded-captions/references/test-set.md +66 -66
  69. package/assets/.agent/skills/embedded-captions/references/typographic-moves.md +266 -266
  70. package/assets/.agent/skills/embedded-captions/references/typography-presets.md +63 -63
  71. package/assets/.agent/skills/embedded-captions/scripts/audio-envelope.cjs +95 -95
  72. package/assets/.agent/skills/embedded-captions/scripts/check-occlusion.cjs +250 -250
  73. package/assets/.agent/skills/embedded-captions/scripts/check-overflow.cjs +194 -194
  74. package/assets/.agent/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -233
  75. package/assets/.agent/skills/embedded-captions/scripts/check-timing.cjs +173 -173
  76. package/assets/.agent/skills/embedded-captions/scripts/fill-timings.cjs +124 -124
  77. package/assets/.agent/skills/embedded-captions/scripts/fit-fonts.cjs +158 -158
  78. package/assets/.agent/skills/embedded-captions/scripts/gen-stroke-path.py +46 -46
  79. package/assets/.agent/skills/embedded-captions/scripts/inject-fonts.cjs +169 -169
  80. package/assets/.agent/skills/embedded-captions/scripts/lib-dna.cjs +201 -201
  81. package/assets/.agent/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -1205
  82. package/assets/.agent/skills/embedded-captions/scripts/make-composition.cjs +404 -404
  83. package/assets/.agent/skills/embedded-captions/scripts/make-theme.cjs +8781 -8781
  84. package/assets/.agent/skills/embedded-captions/scripts/matte.cjs +279 -279
  85. package/assets/.agent/skills/embedded-captions/scripts/measure-layout.cjs +293 -293
  86. package/assets/.agent/skills/embedded-captions/scripts/prepare.sh +39 -39
  87. package/assets/.agent/skills/embedded-captions/scripts/preview-frames.cjs +268 -268
  88. package/assets/.agent/skills/embedded-captions/scripts/render-and-composite.sh +469 -469
  89. package/assets/.agent/skills/embedded-captions/scripts/render-theme.sh +34 -34
  90. package/assets/.agent/skills/embedded-captions/scripts/safe-zones.cjs +813 -813
  91. package/assets/.agent/skills/embedded-captions/scripts/transcribe.cjs +332 -332
  92. package/assets/.agent/skills/embedded-captions/themes/PORTING.md +49 -49
  93. package/assets/.agent/skills/embedded-captions/themes/README.md +244 -244
  94. package/assets/.agent/skills/embedded-captions/themes/anchor.json +27 -27
  95. package/assets/.agent/skills/embedded-captions/themes/arcade.json +51 -51
  96. package/assets/.agent/skills/embedded-captions/themes/aurora.json +41 -41
  97. package/assets/.agent/skills/embedded-captions/themes/biolume.json +35 -35
  98. package/assets/.agent/skills/embedded-captions/themes/brush.json +74 -74
  99. package/assets/.agent/skills/embedded-captions/themes/chalkboard.json +52 -52
  100. package/assets/.agent/skills/embedded-captions/themes/dossier.json +56 -56
  101. package/assets/.agent/skills/embedded-captions/themes/graffiti.json +62 -62
  102. package/assets/.agent/skills/embedded-captions/themes/hologram.json +41 -41
  103. package/assets/.agent/skills/embedded-captions/themes/inkwater.json +43 -43
  104. package/assets/.agent/skills/embedded-captions/themes/laser.json +46 -46
  105. package/assets/.agent/skills/embedded-captions/themes/lastpage.json +33 -33
  106. package/assets/.agent/skills/embedded-captions/themes/neonsign.json +53 -53
  107. package/assets/.agent/skills/embedded-captions/themes/nightcity.json +56 -56
  108. package/assets/.agent/skills/embedded-captions/themes/ordnance.json +54 -54
  109. package/assets/.agent/skills/embedded-captions/themes/papercut.json +37 -37
  110. package/assets/.agent/skills/embedded-captions/themes/popup.json +46 -46
  111. package/assets/.agent/skills/embedded-captions/themes/ransom.json +62 -62
  112. package/assets/.agent/skills/embedded-captions/themes/scoreboard.json +54 -54
  113. package/assets/.agent/skills/embedded-captions/themes/spectrum.json +46 -46
  114. package/assets/.agent/skills/embedded-captions/themes/stardust.json +29 -29
  115. package/assets/.agent/skills/embedded-captions/themes/stomp.json +43 -43
  116. package/assets/.agent/skills/embedded-captions/themes/terminal.json +49 -49
  117. package/assets/.agent/skills/embedded-captions/themes/thunder.json +44 -44
  118. package/assets/.agent/skills/embedded-captions/themes/transit.json +44 -44
  119. package/assets/.agent/skills/embedded-captions/themes/vhs.json +47 -47
  120. package/assets/.agent/skills/faceless-explainer/SKILL.md +209 -209
  121. package/assets/.agent/skills/faceless-explainer/references/cut-catalog.md +215 -215
  122. package/assets/.agent/skills/faceless-explainer/references/motion-language.md +156 -156
  123. package/assets/.agent/skills/faceless-explainer/references/story-design.md +248 -248
  124. package/assets/.agent/skills/faceless-explainer/references/visual-design.md +146 -146
  125. package/assets/.agent/skills/faceless-explainer/scripts/assemble-index.mjs +570 -570
  126. package/assets/.agent/skills/faceless-explainer/scripts/audio.mjs +253 -253
  127. package/assets/.agent/skills/faceless-explainer/scripts/build-frame.mjs +536 -536
  128. package/assets/.agent/skills/faceless-explainer/scripts/captions.mjs +508 -508
  129. package/assets/.agent/skills/faceless-explainer/scripts/lib/assets.mjs +55 -55
  130. package/assets/.agent/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -45
  131. package/assets/.agent/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -249
  132. package/assets/.agent/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -204
  133. package/assets/.agent/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -38
  134. package/assets/.agent/skills/faceless-explainer/scripts/lib/transitions.json +71 -71
  135. package/assets/.agent/skills/faceless-explainer/scripts/transitions.mjs +320 -320
  136. package/assets/.agent/skills/faceless-explainer/sub-agents/frame-worker.md +75 -75
  137. package/assets/.agent/skills/figma/SKILL.md +121 -121
  138. package/assets/.agent/skills/general-video/SKILL.md +143 -143
  139. package/assets/.agent/skills/hyperframes/SKILL.md +164 -164
  140. package/assets/.agent/skills/hyperframes-animation/SKILL.md +84 -84
  141. package/assets/.agent/skills/hyperframes-animation/adapters/animate-text.md +64 -64
  142. package/assets/.agent/skills/hyperframes-animation/adapters/animejs.md +114 -114
  143. package/assets/.agent/skills/hyperframes-animation/adapters/css-animations.md +143 -143
  144. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -118
  145. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -96
  146. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -96
  147. package/assets/.agent/skills/hyperframes-animation/adapters/gsap.md +105 -105
  148. package/assets/.agent/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -507
  149. package/assets/.agent/skills/hyperframes-animation/adapters/lottie.md +117 -117
  150. package/assets/.agent/skills/hyperframes-animation/adapters/three.md +131 -131
  151. package/assets/.agent/skills/hyperframes-animation/adapters/typegpu.md +178 -178
  152. package/assets/.agent/skills/hyperframes-animation/adapters/waapi.md +101 -101
  153. package/assets/.agent/skills/hyperframes-animation/blueprints/comparison-split.md +27 -27
  154. package/assets/.agent/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -44
  155. package/assets/.agent/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -28
  156. package/assets/.agent/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -57
  157. package/assets/.agent/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -46
  158. package/assets/.agent/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -53
  159. package/assets/.agent/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -66
  160. package/assets/.agent/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -78
  161. package/assets/.agent/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -69
  162. package/assets/.agent/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -28
  163. package/assets/.agent/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -37
  164. package/assets/.agent/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -29
  165. package/assets/.agent/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -42
  166. package/assets/.agent/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -51
  167. package/assets/.agent/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -30
  168. package/assets/.agent/skills/hyperframes-animation/blueprints-index.md +146 -146
  169. package/assets/.agent/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -382
  170. package/assets/.agent/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -649
  171. package/assets/.agent/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -520
  172. package/assets/.agent/skills/hyperframes-animation/examples/cta-morph-press.html +468 -468
  173. package/assets/.agent/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -1298
  174. package/assets/.agent/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -759
  175. package/assets/.agent/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -729
  176. package/assets/.agent/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -352
  177. package/assets/.agent/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -779
  178. package/assets/.agent/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -1374
  179. package/assets/.agent/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -861
  180. package/assets/.agent/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -347
  181. package/assets/.agent/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -606
  182. package/assets/.agent/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -227
  183. package/assets/.agent/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -297
  184. package/assets/.agent/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -382
  185. package/assets/.agent/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -305
  186. package/assets/.agent/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -286
  187. package/assets/.agent/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -371
  188. package/assets/.agent/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -246
  189. package/assets/.agent/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -267
  190. package/assets/.agent/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -227
  191. package/assets/.agent/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -257
  192. package/assets/.agent/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -332
  193. package/assets/.agent/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -283
  194. package/assets/.agent/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -373
  195. package/assets/.agent/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -262
  196. package/assets/.agent/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -313
  197. package/assets/.agent/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -303
  198. package/assets/.agent/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -273
  199. package/assets/.agent/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -307
  200. package/assets/.agent/skills/hyperframes-animation/rules/gsap-effects.md +299 -299
  201. package/assets/.agent/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -223
  202. package/assets/.agent/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -183
  203. package/assets/.agent/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -328
  204. package/assets/.agent/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -273
  205. package/assets/.agent/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -301
  206. package/assets/.agent/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -350
  207. package/assets/.agent/skills/hyperframes-animation/rules/press-release-spring.md +296 -296
  208. package/assets/.agent/skills/hyperframes-animation/rules/reactive-displacement.md +277 -277
  209. package/assets/.agent/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -298
  210. package/assets/.agent/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -278
  211. package/assets/.agent/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -277
  212. package/assets/.agent/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -273
  213. package/assets/.agent/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -156
  214. package/assets/.agent/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -329
  215. package/assets/.agent/skills/hyperframes-animation/rules/svg-path-draw.md +274 -274
  216. package/assets/.agent/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -239
  217. package/assets/.agent/skills/hyperframes-animation/rules/viewport-change.md +349 -349
  218. package/assets/.agent/skills/hyperframes-animation/rules-index.md +86 -86
  219. package/assets/.agent/skills/hyperframes-animation/scripts/animation-map.mjs +606 -606
  220. package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.mjs +288 -288
  221. package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -62
  222. package/assets/.agent/skills/hyperframes-animation/techniques.md +507 -507
  223. package/assets/.agent/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -167
  224. package/assets/.agent/skills/hyperframes-animation/transitions/catalog.md +127 -127
  225. package/assets/.agent/skills/hyperframes-animation/transitions/css-3d.md +12 -12
  226. package/assets/.agent/skills/hyperframes-animation/transitions/css-blur.md +51 -51
  227. package/assets/.agent/skills/hyperframes-animation/transitions/css-cover.md +43 -43
  228. package/assets/.agent/skills/hyperframes-animation/transitions/css-destruction.md +95 -95
  229. package/assets/.agent/skills/hyperframes-animation/transitions/css-dissolve.md +66 -66
  230. package/assets/.agent/skills/hyperframes-animation/transitions/css-distortion.md +45 -45
  231. package/assets/.agent/skills/hyperframes-animation/transitions/css-grid.md +10 -10
  232. package/assets/.agent/skills/hyperframes-animation/transitions/css-light.md +49 -49
  233. package/assets/.agent/skills/hyperframes-animation/transitions/css-mechanical.md +30 -30
  234. package/assets/.agent/skills/hyperframes-animation/transitions/css-other.md +25 -25
  235. package/assets/.agent/skills/hyperframes-animation/transitions/css-push.md +41 -41
  236. package/assets/.agent/skills/hyperframes-animation/transitions/css-radial.md +37 -37
  237. package/assets/.agent/skills/hyperframes-animation/transitions/css-scale.md +24 -24
  238. package/assets/.agent/skills/hyperframes-animation/transitions/overview.md +153 -153
  239. package/assets/.agent/skills/hyperframes-cli/SKILL.md +113 -113
  240. package/assets/.agent/skills/hyperframes-cli/references/doctor-browser.md +45 -45
  241. package/assets/.agent/skills/hyperframes-cli/references/init-and-scaffold.md +51 -51
  242. package/assets/.agent/skills/hyperframes-cli/references/lambda.md +132 -132
  243. package/assets/.agent/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -121
  244. package/assets/.agent/skills/hyperframes-cli/references/preview-render.md +164 -164
  245. package/assets/.agent/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -75
  246. package/assets/.agent/skills/hyperframes-core/SKILL.md +78 -78
  247. package/assets/.agent/skills/hyperframes-core/references/composition-patterns.md +263 -263
  248. package/assets/.agent/skills/hyperframes-core/references/data-attributes.md +70 -70
  249. package/assets/.agent/skills/hyperframes-core/references/determinism-rules.md +68 -68
  250. package/assets/.agent/skills/hyperframes-core/references/full-screen-motion.md +62 -62
  251. package/assets/.agent/skills/hyperframes-core/references/minimal-composition.md +66 -66
  252. package/assets/.agent/skills/hyperframes-core/references/script-format.md +49 -49
  253. package/assets/.agent/skills/hyperframes-core/references/storyboard-format.md +95 -95
  254. package/assets/.agent/skills/hyperframes-core/references/sub-compositions.md +237 -237
  255. package/assets/.agent/skills/hyperframes-core/references/subagent-dispatch.md +41 -41
  256. package/assets/.agent/skills/hyperframes-core/references/tailwind.md +125 -125
  257. package/assets/.agent/skills/hyperframes-core/references/tracks-and-clips.md +76 -76
  258. package/assets/.agent/skills/hyperframes-core/references/variables-and-media.md +90 -90
  259. package/assets/.agent/skills/hyperframes-creative/SKILL.md +70 -70
  260. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -289
  261. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -221
  262. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -1214
  263. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -275
  264. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -224
  265. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -1347
  266. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -307
  267. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -223
  268. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -1372
  269. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -275
  270. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -230
  271. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -1140
  272. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -284
  273. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -225
  274. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -1166
  275. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -284
  276. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -224
  277. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -1465
  278. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -278
  279. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -222
  280. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -1263
  281. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -277
  282. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -224
  283. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -1439
  284. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -265
  285. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -238
  286. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -1468
  287. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -314
  288. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -226
  289. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -1268
  290. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -333
  291. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -227
  292. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -1330
  293. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -274
  294. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -230
  295. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -1444
  296. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -265
  297. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -223
  298. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -1273
  299. package/assets/.agent/skills/hyperframes-creative/palettes/bold-energetic.md +14 -14
  300. package/assets/.agent/skills/hyperframes-creative/palettes/clean-corporate.md +14 -14
  301. package/assets/.agent/skills/hyperframes-creative/palettes/dark-premium.md +14 -14
  302. package/assets/.agent/skills/hyperframes-creative/palettes/jewel-rich.md +14 -14
  303. package/assets/.agent/skills/hyperframes-creative/palettes/monochrome.md +14 -14
  304. package/assets/.agent/skills/hyperframes-creative/palettes/nature-earth.md +14 -14
  305. package/assets/.agent/skills/hyperframes-creative/palettes/neon-electric.md +14 -14
  306. package/assets/.agent/skills/hyperframes-creative/palettes/pastel-soft.md +14 -14
  307. package/assets/.agent/skills/hyperframes-creative/palettes/warm-editorial.md +14 -14
  308. package/assets/.agent/skills/hyperframes-creative/references/audio-reactive.md +76 -76
  309. package/assets/.agent/skills/hyperframes-creative/references/beat-direction.md +164 -164
  310. package/assets/.agent/skills/hyperframes-creative/references/composition-patterns.md +199 -199
  311. package/assets/.agent/skills/hyperframes-creative/references/data-in-motion.md +19 -19
  312. package/assets/.agent/skills/hyperframes-creative/references/design-adherence.md +19 -19
  313. package/assets/.agent/skills/hyperframes-creative/references/design-picker.md +123 -123
  314. package/assets/.agent/skills/hyperframes-creative/references/design-spec.md +55 -55
  315. package/assets/.agent/skills/hyperframes-creative/references/house-style.md +73 -73
  316. package/assets/.agent/skills/hyperframes-creative/references/motion-principles.md +150 -150
  317. package/assets/.agent/skills/hyperframes-creative/references/narration.md +92 -92
  318. package/assets/.agent/skills/hyperframes-creative/references/prompt-expansion.md +68 -68
  319. package/assets/.agent/skills/hyperframes-creative/references/typography.md +218 -218
  320. package/assets/.agent/skills/hyperframes-creative/references/video-composition.md +63 -63
  321. package/assets/.agent/skills/hyperframes-creative/references/visual-styles.md +457 -457
  322. package/assets/.agent/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -353
  323. package/assets/.agent/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -188
  324. package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.mjs +288 -288
  325. package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -62
  326. package/assets/.agent/skills/hyperframes-creative/templates/design-picker.html +1432 -1432
  327. package/assets/.agent/skills/hyperframes-keyframes/SKILL.md +237 -237
  328. package/assets/.agent/skills/hyperframes-keyframes/agents/openai.yaml +4 -4
  329. package/assets/.agent/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -106
  330. package/assets/.agent/skills/hyperframes-media/SKILL.md +97 -97
  331. package/assets/.agent/skills/hyperframes-media/assets/sfx/CREDITS.md +35 -35
  332. package/assets/.agent/skills/hyperframes-media/assets/sfx/manifest.json +97 -97
  333. package/assets/.agent/skills/hyperframes-media/references/bgm.md +72 -72
  334. package/assets/.agent/skills/hyperframes-media/references/captions/authoring.md +159 -159
  335. package/assets/.agent/skills/hyperframes-media/references/captions/motion.md +87 -87
  336. package/assets/.agent/skills/hyperframes-media/references/captions/transcript-handling.md +97 -97
  337. package/assets/.agent/skills/hyperframes-media/references/remove-background.md +143 -143
  338. package/assets/.agent/skills/hyperframes-media/references/requirements.md +29 -29
  339. package/assets/.agent/skills/hyperframes-media/references/sfx.md +42 -42
  340. package/assets/.agent/skills/hyperframes-media/references/transcribe.md +52 -52
  341. package/assets/.agent/skills/hyperframes-media/references/tts-to-captions.md +24 -24
  342. package/assets/.agent/skills/hyperframes-media/references/tts.md +135 -135
  343. package/assets/.agent/skills/hyperframes-media/scripts/audio.mjs +293 -293
  344. package/assets/.agent/skills/hyperframes-media/scripts/heygen-tts.mjs +121 -121
  345. package/assets/.agent/skills/hyperframes-media/scripts/lib/bgm.mjs +235 -235
  346. package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.mjs +14 -14
  347. package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.test.mjs +41 -41
  348. package/assets/.agent/skills/hyperframes-media/scripts/lib/heygen.mjs +131 -131
  349. package/assets/.agent/skills/hyperframes-media/scripts/lib/sfx.mjs +128 -128
  350. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.mjs +298 -298
  351. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.spawn.test.mjs +97 -97
  352. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.test.mjs +66 -66
  353. package/assets/.agent/skills/hyperframes-media/scripts/lyria-recipe.py +128 -128
  354. package/assets/.agent/skills/hyperframes-media/scripts/wait-bgm.mjs +167 -167
  355. package/assets/.agent/skills/hyperframes-registry/SKILL.md +101 -101
  356. package/assets/.agent/skills/hyperframes-registry/examples/add-block.md +51 -51
  357. package/assets/.agent/skills/hyperframes-registry/examples/add-component.md +73 -73
  358. package/assets/.agent/skills/hyperframes-registry/references/contributing.md +166 -166
  359. package/assets/.agent/skills/hyperframes-registry/references/demo-html-pattern.md +54 -54
  360. package/assets/.agent/skills/hyperframes-registry/references/discovery.md +215 -215
  361. package/assets/.agent/skills/hyperframes-registry/references/install-locations.md +45 -45
  362. package/assets/.agent/skills/hyperframes-registry/references/templates.md +417 -417
  363. package/assets/.agent/skills/hyperframes-registry/references/wiring-blocks.md +61 -61
  364. package/assets/.agent/skills/hyperframes-registry/references/wiring-components.md +39 -39
  365. package/assets/.agent/skills/media-use/SKILL.md +124 -124
  366. package/assets/.agent/skills/media-use/scripts/eval.mjs +369 -369
  367. package/assets/.agent/skills/media-use/scripts/lib/adopt.mjs +112 -112
  368. package/assets/.agent/skills/media-use/scripts/lib/bgm-provider.mjs +20 -20
  369. package/assets/.agent/skills/media-use/scripts/lib/brand-provider.mjs +59 -59
  370. package/assets/.agent/skills/media-use/scripts/lib/cache.mjs +114 -114
  371. package/assets/.agent/skills/media-use/scripts/lib/freeze.mjs +26 -26
  372. package/assets/.agent/skills/media-use/scripts/lib/heygen-search.mjs +51 -51
  373. package/assets/.agent/skills/media-use/scripts/lib/image-provider.mjs +44 -44
  374. package/assets/.agent/skills/media-use/scripts/lib/index-gen.mjs +63 -63
  375. package/assets/.agent/skills/media-use/scripts/lib/manifest.mjs +91 -91
  376. package/assets/.agent/skills/media-use/scripts/lib/manifest.test.mjs +293 -293
  377. package/assets/.agent/skills/media-use/scripts/lib/probe.mjs +39 -39
  378. package/assets/.agent/skills/media-use/scripts/lib/probe.test.mjs +31 -31
  379. package/assets/.agent/skills/media-use/scripts/lib/providers.mjs +29 -29
  380. package/assets/.agent/skills/media-use/scripts/lib/sfx-provider.mjs +23 -23
  381. package/assets/.agent/skills/media-use/scripts/resolve.mjs +247 -247
  382. package/assets/.agent/skills/media-use/scripts/resolve.test.mjs +247 -247
  383. package/assets/.agent/skills/motion-graphics/SKILL.md +172 -172
  384. package/assets/.agent/skills/motion-graphics/agents/builder.md +40 -40
  385. package/assets/.agent/skills/motion-graphics/agents/director.md +53 -53
  386. package/assets/.agent/skills/motion-graphics/agents/finalize.md +17 -17
  387. package/assets/.agent/skills/motion-graphics/catalog-map.md +40 -40
  388. package/assets/.agent/skills/motion-graphics/categories/asset-fusion/module.md +37 -37
  389. package/assets/.agent/skills/motion-graphics/categories/charts/module.md +21 -21
  390. package/assets/.agent/skills/motion-graphics/categories/kinetic-type/module.md +19 -19
  391. package/assets/.agent/skills/motion-graphics/categories/logo-reveal/module.md +17 -17
  392. package/assets/.agent/skills/motion-graphics/categories/lower-thirds/module.md +16 -16
  393. package/assets/.agent/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -273
  394. package/assets/.agent/skills/motion-graphics/categories/maps/module.md +61 -61
  395. package/assets/.agent/skills/motion-graphics/categories/news/module.md +56 -56
  396. package/assets/.agent/skills/motion-graphics/categories/stat/module.md +21 -21
  397. package/assets/.agent/skills/motion-graphics/categories/tweet/module.md +16 -16
  398. package/assets/.agent/skills/motion-graphics/categories/webpage/module.md +21 -21
  399. package/assets/.agent/skills/motion-graphics/grounding/PROTOCOL.md +64 -64
  400. package/assets/.agent/skills/motion-graphics/grounding/locate.mjs +227 -227
  401. package/assets/.agent/skills/motion-graphics/phases/source/guide.md +21 -21
  402. package/assets/.agent/skills/motion-graphics/references/builder-contract.md +38 -38
  403. package/assets/.agent/skills/motion-graphics/references/motion-vocabulary.md +43 -43
  404. package/assets/.agent/skills/motion-graphics/references/shot-plan-ir.md +54 -54
  405. package/assets/.agent/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -306
  406. package/assets/.agent/skills/music-to-video/SKILL.md +197 -197
  407. package/assets/.agent/skills/music-to-video/references/frame-skeleton.md +100 -100
  408. package/assets/.agent/skills/music-to-video/references/montage.md +58 -58
  409. package/assets/.agent/skills/music-to-video/references/motion-primitive-catalog.md +75 -75
  410. package/assets/.agent/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +154 -154
  411. package/assets/.agent/skills/music-to-video/references/motion-primitives/assets/gsap.min.js +11 -11
  412. package/assets/.agent/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +326 -326
  413. package/assets/.agent/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +120 -120
  414. package/assets/.agent/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +95 -95
  415. package/assets/.agent/skills/music-to-video/references/motion-primitives/braam-punch/index.html +135 -135
  416. package/assets/.agent/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +146 -146
  417. package/assets/.agent/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +103 -103
  418. package/assets/.agent/skills/music-to-video/references/motion-primitives/counting-punch/index.html +154 -154
  419. package/assets/.agent/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +155 -155
  420. package/assets/.agent/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +166 -166
  421. package/assets/.agent/skills/music-to-video/references/motion-primitives/directional-fill/index.html +133 -133
  422. package/assets/.agent/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +137 -137
  423. package/assets/.agent/skills/music-to-video/references/motion-primitives/electric-arc/index.html +144 -144
  424. package/assets/.agent/skills/music-to-video/references/motion-primitives/flash-cut/index.html +132 -132
  425. package/assets/.agent/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +241 -241
  426. package/assets/.agent/skills/music-to-video/references/motion-primitives/hard-cut/index.html +117 -117
  427. package/assets/.agent/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +79 -79
  428. package/assets/.agent/skills/music-to-video/references/motion-primitives/iris-open/index.html +104 -104
  429. package/assets/.agent/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +92 -92
  430. package/assets/.agent/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +131 -131
  431. package/assets/.agent/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +109 -109
  432. package/assets/.agent/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +124 -124
  433. package/assets/.agent/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +108 -108
  434. package/assets/.agent/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +117 -117
  435. package/assets/.agent/skills/music-to-video/references/motion-primitives/palette-flip/index.html +132 -132
  436. package/assets/.agent/skills/music-to-video/references/motion-primitives/particle-burst/index.html +141 -141
  437. package/assets/.agent/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +121 -121
  438. package/assets/.agent/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +160 -160
  439. package/assets/.agent/skills/music-to-video/references/motion-primitives/screen-shake/index.html +113 -113
  440. package/assets/.agent/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +130 -130
  441. package/assets/.agent/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +137 -137
  442. package/assets/.agent/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +117 -117
  443. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -42
  444. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +313 -313
  445. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +136 -136
  446. package/assets/.agent/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +144 -144
  447. package/assets/.agent/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +122 -122
  448. package/assets/.agent/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +126 -126
  449. package/assets/.agent/skills/music-to-video/references/planning.md +104 -104
  450. package/assets/.agent/skills/music-to-video/references/storyboard-format.md +94 -94
  451. package/assets/.agent/skills/music-to-video/references/template-catalog.md +106 -106
  452. package/assets/.agent/skills/music-to-video/references/templates/card-flyby/index.html +527 -527
  453. package/assets/.agent/skills/music-to-video/references/templates/card-flyby/program.json +13 -13
  454. package/assets/.agent/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -485
  455. package/assets/.agent/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -302
  456. package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -610
  457. package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -41
  458. package/assets/.agent/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -596
  459. package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -589
  460. package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -25
  461. package/assets/.agent/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -267
  462. package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -594
  463. package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -39
  464. package/assets/.agent/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -238
  465. package/assets/.agent/skills/music-to-video/scripts/analyze-beatgrid.py +531 -531
  466. package/assets/.agent/skills/music-to-video/scripts/assemble-index.mjs +218 -218
  467. package/assets/.agent/skills/music-to-video/scripts/lib/storyboard.mjs +249 -249
  468. package/assets/.agent/skills/music-to-video/scripts/stage-assets.mjs +58 -58
  469. package/assets/.agent/skills/music-to-video/scripts/validate-plan.mjs +161 -161
  470. package/assets/.agent/skills/music-to-video/sub-agents/frame-worker.md +75 -75
  471. package/assets/.agent/skills/pr-to-video/SKILL.md +240 -240
  472. package/assets/.agent/skills/pr-to-video/references/code-vocabulary.md +111 -111
  473. package/assets/.agent/skills/pr-to-video/references/cut-catalog.md +215 -215
  474. package/assets/.agent/skills/pr-to-video/references/motion-language.md +156 -156
  475. package/assets/.agent/skills/pr-to-video/references/story-design.md +211 -211
  476. package/assets/.agent/skills/pr-to-video/references/visual-design.md +164 -164
  477. package/assets/.agent/skills/pr-to-video/scripts/assemble-index.mjs +570 -570
  478. package/assets/.agent/skills/pr-to-video/scripts/audio.mjs +253 -253
  479. package/assets/.agent/skills/pr-to-video/scripts/build-frame.mjs +536 -536
  480. package/assets/.agent/skills/pr-to-video/scripts/captions.mjs +508 -508
  481. package/assets/.agent/skills/pr-to-video/scripts/fetch-people-avatars.mjs +157 -157
  482. package/assets/.agent/skills/pr-to-video/scripts/fetch-pr.mjs +164 -164
  483. package/assets/.agent/skills/pr-to-video/scripts/ingest.mjs +539 -539
  484. package/assets/.agent/skills/pr-to-video/scripts/lib/assets.mjs +55 -55
  485. package/assets/.agent/skills/pr-to-video/scripts/lib/dimensions.mjs +45 -45
  486. package/assets/.agent/skills/pr-to-video/scripts/lib/storyboard.mjs +249 -249
  487. package/assets/.agent/skills/pr-to-video/scripts/lib/tokens.mjs +204 -204
  488. package/assets/.agent/skills/pr-to-video/scripts/lib/transition-registry.mjs +38 -38
  489. package/assets/.agent/skills/pr-to-video/scripts/lib/transitions.json +71 -71
  490. package/assets/.agent/skills/pr-to-video/scripts/transitions.mjs +320 -320
  491. package/assets/.agent/skills/pr-to-video/sub-agents/frame-worker.md +95 -95
  492. package/assets/.agent/skills/product-launch-video/SKILL.md +208 -208
  493. package/assets/.agent/skills/product-launch-video/references/cut-catalog.md +220 -220
  494. package/assets/.agent/skills/product-launch-video/references/motion-language.md +156 -156
  495. package/assets/.agent/skills/product-launch-video/references/story-design.md +373 -373
  496. package/assets/.agent/skills/product-launch-video/references/visual-design.md +126 -126
  497. package/assets/.agent/skills/product-launch-video/scripts/assemble-index.mjs +570 -570
  498. package/assets/.agent/skills/product-launch-video/scripts/audio.mjs +253 -253
  499. package/assets/.agent/skills/product-launch-video/scripts/build-frame.mjs +536 -536
  500. package/assets/.agent/skills/product-launch-video/scripts/captions.mjs +508 -508
  501. package/assets/.agent/skills/product-launch-video/scripts/lib/assets.mjs +55 -55
  502. package/assets/.agent/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -45
  503. package/assets/.agent/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -249
  504. package/assets/.agent/skills/product-launch-video/scripts/lib/tokens.mjs +204 -204
  505. package/assets/.agent/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -38
  506. package/assets/.agent/skills/product-launch-video/scripts/lib/transitions.json +71 -71
  507. package/assets/.agent/skills/product-launch-video/scripts/stage-assets.mjs +39 -39
  508. package/assets/.agent/skills/product-launch-video/scripts/transitions.mjs +320 -320
  509. package/assets/.agent/skills/product-launch-video/sub-agents/frame-worker.md +75 -75
  510. package/assets/.agent/skills/remotion/SKILL.md +357 -38
  511. package/assets/.agent/skills/remotion/rules/3d.md +5 -5
  512. package/assets/.agent/skills/remotion/rules/assets/text-animations-word-highlight.tsx +1 -6
  513. package/assets/.agent/skills/remotion/rules/audio-visualization.md +198 -0
  514. package/assets/.agent/skills/remotion/rules/audio.md +1 -4
  515. package/assets/.agent/skills/remotion/rules/calculate-metadata.md +48 -18
  516. package/assets/.agent/skills/remotion/rules/compositions.md +16 -24
  517. package/assets/.agent/skills/remotion/rules/display-captions.md +79 -21
  518. package/assets/.agent/skills/remotion/rules/effects.md +235 -0
  519. package/assets/.agent/skills/remotion/rules/ffmpeg.md +34 -0
  520. package/assets/.agent/skills/remotion/rules/get-audio-duration.md +13 -13
  521. package/assets/.agent/skills/remotion/rules/get-video-dimensions.md +1 -1
  522. package/assets/.agent/skills/remotion/rules/get-video-duration.md +12 -10
  523. package/assets/.agent/skills/remotion/rules/gifs.md +21 -18
  524. package/assets/.agent/skills/remotion/rules/google-fonts.md +72 -0
  525. package/assets/.agent/skills/remotion/rules/html-in-canvas.md +122 -0
  526. package/assets/.agent/skills/remotion/rules/images.md +5 -64
  527. package/assets/.agent/skills/remotion/rules/import-srt-captions.md +9 -7
  528. package/assets/.agent/skills/remotion/rules/light-leaks.md +73 -0
  529. package/assets/.agent/skills/remotion/rules/local-fonts.md +65 -0
  530. package/assets/.agent/skills/remotion/rules/lottie.md +10 -8
  531. package/assets/.agent/skills/remotion/rules/maplibre.md +458 -0
  532. package/assets/.agent/skills/remotion/rules/measuring-dom-nodes.md +0 -1
  533. package/assets/.agent/skills/remotion/rules/measuring-text.md +2 -5
  534. package/assets/.agent/skills/remotion/rules/parameters.md +21 -10
  535. package/assets/.agent/skills/remotion/rules/sequencing.md +35 -9
  536. package/assets/.agent/skills/remotion/rules/sfx.md +51 -0
  537. package/assets/.agent/skills/remotion/rules/silence-detection.md +71 -0
  538. package/assets/.agent/skills/remotion/rules/subtitles.md +36 -0
  539. package/assets/.agent/skills/remotion/rules/tailwind.md +2 -2
  540. package/assets/.agent/skills/remotion/rules/timing.md +89 -106
  541. package/assets/.agent/skills/remotion/rules/transcribe-captions.md +58 -7
  542. package/assets/.agent/skills/remotion/rules/transitions.md +117 -42
  543. package/assets/.agent/skills/remotion/rules/transparent-videos.md +106 -0
  544. package/assets/.agent/skills/remotion/rules/trimming.md +1 -3
  545. package/assets/.agent/skills/remotion/rules/video-layout.md +68 -0
  546. package/assets/.agent/skills/remotion/rules/voiceover.md +99 -0
  547. package/assets/.agent/skills/remotion-real-ui-video/SKILL.md +264 -264
  548. package/assets/.agent/skills/remotion-real-ui-video/references/anti-patterns.md +114 -114
  549. package/assets/.agent/skills/remotion-real-ui-video/references/completion-checklist.md +75 -75
  550. package/assets/.agent/skills/remotion-real-ui-video/references/real-ui-bridge-example.md +93 -93
  551. package/assets/.agent/skills/remotion-to-hyperframes/SKILL.md +127 -127
  552. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/run.sh +249 -249
  553. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -41
  554. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -26
  555. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +61 -61
  556. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -14
  557. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts +13 -13
  558. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx +13 -13
  559. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx +34 -34
  560. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts +4 -4
  561. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -15
  562. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -54
  563. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -29
  564. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +118 -118
  565. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -14
  566. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/remotion.config.ts +13 -13
  567. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/MultiScene.tsx +105 -105
  568. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/Root.tsx +13 -13
  569. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/index.ts +4 -4
  570. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -15
  571. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/setup.sh +34 -34
  572. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -85
  573. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -41
  574. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +269 -269
  575. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -15
  576. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/remotion.config.ts +13 -13
  577. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Root.tsx +27 -27
  578. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Stargazed.tsx +37 -37
  579. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/AnimatedNumber.tsx +23 -23
  580. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/StatCard.tsx +59 -59
  581. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/UnderlinedText.tsx +47 -47
  582. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/index.ts +4 -4
  583. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/OutroScene.tsx +18 -18
  584. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/StatsScene.tsx +34 -34
  585. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsx +55 -55
  586. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -15
  587. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -51
  588. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/01-use-state.tsx +29 -29
  589. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/02-use-effect-deps.tsx +29 -29
  590. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/03-async-metadata.tsx +39 -39
  591. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/04-third-party-react.tsx +30 -30
  592. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/05-lambda-config.tsx +38 -38
  593. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/06-warnings-only.tsx +36 -36
  594. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/07-custom-hook.tsx +28 -28
  595. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/08-mixed.tsx +41 -41
  596. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -85
  597. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/validate.sh +110 -110
  598. package/assets/.agent/skills/remotion-to-hyperframes/references/api-map.md +142 -142
  599. package/assets/.agent/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -115
  600. package/assets/.agent/skills/remotion-to-hyperframes/references/eval.md +140 -140
  601. package/assets/.agent/skills/remotion-to-hyperframes/references/fonts.md +112 -112
  602. package/assets/.agent/skills/remotion-to-hyperframes/references/limitations.md +136 -136
  603. package/assets/.agent/skills/remotion-to-hyperframes/references/lottie.md +121 -121
  604. package/assets/.agent/skills/remotion-to-hyperframes/references/media.md +149 -149
  605. package/assets/.agent/skills/remotion-to-hyperframes/references/parameters.md +167 -167
  606. package/assets/.agent/skills/remotion-to-hyperframes/references/sequencing.md +195 -195
  607. package/assets/.agent/skills/remotion-to-hyperframes/references/timing.md +165 -165
  608. package/assets/.agent/skills/remotion-to-hyperframes/references/transitions.md +114 -114
  609. package/assets/.agent/skills/remotion-to-hyperframes/scripts/frame_strip.sh +107 -107
  610. package/assets/.agent/skills/remotion-to-hyperframes/scripts/lint_source.py +358 -358
  611. package/assets/.agent/skills/remotion-to-hyperframes/scripts/render_diff.sh +103 -103
  612. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/blocker.tsx +50 -50
  613. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/clean.tsx +46 -46
  614. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/smoke.sh +90 -90
  615. package/assets/.agent/skills/shared-resend-portfolio/SKILL.md +124 -124
  616. package/assets/.agent/skills/slideshow/SKILL.md +550 -550
  617. package/assets/.agent/skills/slideshow/references/standalone-harness.md +1020 -1020
  618. package/assets/.agent/skills/talking-head-recut/NOTICE.md +39 -39
  619. package/assets/.agent/skills/talking-head-recut/SKILL.md +1191 -1191
  620. package/assets/.agent/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -10
  621. package/assets/.agent/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -145
  622. package/assets/.agent/skills/talking-head-recut/references/frames/clean.html +92 -92
  623. package/assets/.agent/skills/talking-head-recut/references/frames/hairline.html +171 -171
  624. package/assets/.agent/skills/talking-head-recut/references/frames/polaroid.html +131 -131
  625. package/assets/.agent/skills/talking-head-recut/references/layouts/overlay.html +164 -164
  626. package/assets/.agent/skills/talking-head-recut/references/layouts/pip.html +143 -143
  627. package/assets/.agent/skills/talking-head-recut/references/layouts/split.html +121 -121
  628. package/assets/.agent/skills/talking-head-recut/references/layouts/stack.html +109 -109
  629. package/assets/.agent/skills/talking-head-recut/references/styles/academic.html +172 -172
  630. package/assets/.agent/skills/talking-head-recut/references/styles/audit.html +170 -170
  631. package/assets/.agent/skills/talking-head-recut/references/styles/editorial.html +189 -189
  632. package/assets/.agent/skills/talking-head-recut/references/styles/geom.html +181 -181
  633. package/assets/.agent/skills/talking-head-recut/references/styles/minimal.html +130 -130
  634. package/assets/.agent/skills/talking-head-recut/references/styles/spotlight.html +142 -142
  635. package/assets/.agent/skills/talking-head-recut/references/styles/swiss.html +188 -188
  636. package/assets/.agent/skills/talking-head-recut/references/styles/terminal.html +196 -196
  637. package/assets/.agent/skills/talking-head-recut/references/styles/whiteboard.html +170 -170
  638. package/assets/.agent/skills/talking-head-recut/references/styles/xhs.html +206 -206
  639. package/assets/.agent/skills/website-to-video/SKILL.md +145 -145
  640. package/assets/.agent/skills/website-to-video/assets/sfx/CREDITS.md +35 -35
  641. package/assets/.agent/skills/website-to-video/assets/sfx/manifest.json +97 -97
  642. package/assets/.agent/skills/website-to-video/references/beat-builder-guide.md +263 -263
  643. package/assets/.agent/skills/website-to-video/references/capabilities.md +713 -713
  644. package/assets/.agent/skills/website-to-video/references/step-0-capture.md +55 -55
  645. package/assets/.agent/skills/website-to-video/references/step-1-design.md +333 -333
  646. package/assets/.agent/skills/website-to-video/references/step-2-brief.md +178 -178
  647. package/assets/.agent/skills/website-to-video/references/step-3-storyboard.md +572 -572
  648. package/assets/.agent/skills/website-to-video/references/step-4-vo.md +230 -230
  649. package/assets/.agent/skills/website-to-video/references/step-5-build.md +483 -483
  650. package/assets/.agent/skills/website-to-video/references/step-6-validate.md +341 -341
  651. package/assets/.agent/skills/website-to-video/scripts/w2h-verify.mjs +759 -759
  652. package/package.json +5 -4
  653. package/src/pi-takomi-core/workflows.ts +86 -86
  654. package/src/takomi-stats.js +5 -5
  655. package/assets/.agent/skills/remotion/rules/animations.md +0 -29
  656. package/assets/.agent/skills/remotion/rules/assets.md +0 -78
  657. package/assets/.agent/skills/remotion/rules/can-decode.md +0 -75
  658. package/assets/.agent/skills/remotion/rules/charts.md +0 -58
  659. package/assets/.agent/skills/remotion/rules/extract-frames.md +0 -229
  660. package/assets/.agent/skills/remotion/rules/fonts.md +0 -152
  661. package/assets/.agent/skills/remotion/rules/maps.md +0 -403
@@ -1,104 +1,104 @@
1
- # Planning (Step 3) — pick the brand, fill every frame
2
-
3
- At Step 3 **you (the orchestrator)** turn the Step-2 skeleton into a complete, approved
4
- `STORYBOARD.md`. You edit the **same file** in place: pick the brand spine, then for each
5
- frame decide its **groups**, give each group a treatment, bind real beat anchors, and write
6
- the copy.
7
-
8
- Your mantra: **music is the spine; a template is a head start, not a cage; typography is the
9
- floor and assets are an optional ingredient on the same beat grid.**
10
-
11
- **You own WHAT, not HOW.** You name the template / primitives, the content, the brand, the
12
- anchor seconds, and the intent. The frame-worker (Step 4) decides HOW — micro-timing,
13
- realization, intra-frame cuts. **Never write millisecond tweens into the storyboard.**
14
-
15
- ## Inputs
16
-
17
- - The Step-2 skeleton already in `STORYBOARD.md` — frames with `span_sec` + `pacing` + `mood` + `feel`.
18
- - `audiomap.json` — timing truth; read the real anchor seconds inside each frame's span.
19
- - [`template-catalog.md`](template-catalog.md) — the template selection menu.
20
- - [`motion-primitive-catalog.md`](motion-primitive-catalog.md) — the free-compose menu (L0 recipes).
21
- - [`montage.md`](montage.md) — asset treatments (only if the user supplied images/videos).
22
- - User brief / supplied copy — topic, mood, exact words to keep.
23
-
24
- ## Step A — pick the brand spine (one preset, unmodified)
25
-
26
- The whole video shares one type family + palette. Pick **one ready-made preset** from
27
- `../hyperframes-creative/frame-presets/` using the preset table in
28
- `../hyperframes-creative/references/design-spec.md` — choose by the track's mood + the brief,
29
- and **only its fonts + colors matter** (templates own composition + motion; the preset only
30
- sets the look). Copy it in **unmodified**:
31
-
32
- ```bash
33
- cp ../hyperframes-creative/frame-presets/<preset>/FRAME.md "$PROJECT_DIR/frame.md"
34
- ```
35
-
36
- Then fill the storyboard frontmatter `style` from it: the `font` from its `typography:` and a
37
- ≤4–6 swatch `palette` from its `colors:`. **Quote the hex / family verbatim — never invent or
38
- round.** Every group's palette params draw from this one palette; that unity is what makes
39
- different templates read as one piece.
40
-
41
- ## Step B — per frame, decide its groups
42
-
43
- A frame is usually **one group** (one template or one free composition spanning the frame).
44
- Subdivide into 2+ groups **only when a single treatment can't cover the frame** — e.g. a busy
45
- opener plus a closing lockup. When you split, cut at a **real audiomap anchor** inside the
46
- frame's span (a `key_moment` / `phrase` edge / onset-cluster gap), **never inside a `rolls[]`
47
- run**, and keep every group **≥ ~1 bar**. Density does **not** force more groups — a dense
48
- frame is usually ONE group whose template absorbs the density internally (a meta-template like
49
- `poster-tile-mosaic`). **Group count tracks distinct treatments, not beats.**
50
-
51
- ## Step C — per group, pick a treatment (exactly one of three)
52
-
53
- ### A. Match a template
54
-
55
- Read [`template-catalog.md`](template-catalog.md). Match the group's `feel` + `mood` + `pacing`
56
- to a template's **Reach for it when**; take the closest fit. Then bind it:
57
-
58
- - Fill `params` (keys from the catalog entry) — your copy into text slots, palette from the brand spine, `duration` = the group's span length.
59
- - Fill `role_bindings` with this group's **real anchor seconds** read from `audiomap.json` over its span (not example times).
60
- - If the template's natural stop and the group's span end disagree, snap to the nearest anchor.
61
-
62
- ### B. Free-compose (no template fits)
63
-
64
- Write a `free_design` — one visual thesis from [`motion-primitive-catalog.md`](motion-primitive-catalog.md)
65
- (a dominant system + the named L0 primitives + a density topology) + `anchors` (the real
66
- beat / onset seconds the moves ride). Free-compose is a **first-class** choice, written as
67
- carefully as a matched group — never a failure.
68
-
69
- ### C. Asset treatment (only when the user supplied assets and they fit)
70
-
71
- Make it an `asset` group ([`montage.md`](montage.md)). **Obey `pacing`:** on a `beat_cut`
72
- frame use `beat_cut` (one clip per anchor) or `bg_under_text`; on a `phrase_flow` frame use
73
- `ken_burns` or a slow crossfade — **never** per-onset hard cuts. Assets are additive: if none
74
- fits a group, fall back to template / free (typography is the floor — a complete video needs
75
- no assets).
76
-
77
- ## Copy (you own the words)
78
-
79
- - Keep exact user words; else invent with taste, on the brief's mood.
80
- - **Message vs texture:** a readable word holds ≥1 beat (headline 3–8, sentence 4–10), stable + focal; a word held <1 beat is texture (strobe / grid / ticks). Never force a message onto a sub-beat — demote it to texture.
81
- - Place copy into the template's text params, onto a free group's anchors, or as an asset group's `overlay_copy`. Declare the anchor + accumulate / stagger intent; leave micro-timing to the worker.
82
- - A closing logo / CTA lands on the final hit / hard stop and holds through trailing silence.
83
-
84
- ## Transitions (you do not emit them)
85
-
86
- Everything is a **0ms hard cut** for now. **frame → frame** is owned by the assembler
87
- (back-to-back files); adjacent `span_sec` already imply the cut. **group → group inside a
88
- frame** is owned by the worker on its frame timeline; you only set each group's `span_sec`.
89
-
90
- ## Write + validate
91
-
92
- Complete `STORYBOARD.md` ([`storyboard-format.md`](storyboard-format.md)), then run
93
- `node scripts/validate-plan.mjs` and fix every `✗`. Show the user a frame-by-frame summary and
94
- iterate until approved.
95
-
96
- ## Self-check
97
-
98
- - `frame.md` is a verbatim copy of one preset; frontmatter `style.font` / `style.palette` are drawn from it (exact values).
99
- - Every frame became ≥1 group; groups tile the frame span in order; no group < ~1 bar; no group boundary inside a `rolls[]` run.
100
- - Each group is exactly one of template / free_design / asset.
101
- - Template `params` keys match the catalog entry; `role_bindings` / `anchors` use real audiomap seconds.
102
- - Asset treatments obey `pacing` (no `beat_cut` on a `phrase_flow` frame).
103
- - Every group's palette draws from the one brand palette.
104
- - `duration_s == audiomap.audio.duration_sec`; `validate-plan.mjs` passes.
1
+ # Planning (Step 3) — pick the brand, fill every frame
2
+
3
+ At Step 3 **you (the orchestrator)** turn the Step-2 skeleton into a complete, approved
4
+ `STORYBOARD.md`. You edit the **same file** in place: pick the brand spine, then for each
5
+ frame decide its **groups**, give each group a treatment, bind real beat anchors, and write
6
+ the copy.
7
+
8
+ Your mantra: **music is the spine; a template is a head start, not a cage; typography is the
9
+ floor and assets are an optional ingredient on the same beat grid.**
10
+
11
+ **You own WHAT, not HOW.** You name the template / primitives, the content, the brand, the
12
+ anchor seconds, and the intent. The frame-worker (Step 4) decides HOW — micro-timing,
13
+ realization, intra-frame cuts. **Never write millisecond tweens into the storyboard.**
14
+
15
+ ## Inputs
16
+
17
+ - The Step-2 skeleton already in `STORYBOARD.md` — frames with `span_sec` + `pacing` + `mood` + `feel`.
18
+ - `audiomap.json` — timing truth; read the real anchor seconds inside each frame's span.
19
+ - [`template-catalog.md`](template-catalog.md) — the template selection menu.
20
+ - [`motion-primitive-catalog.md`](motion-primitive-catalog.md) — the free-compose menu (L0 recipes).
21
+ - [`montage.md`](montage.md) — asset treatments (only if the user supplied images/videos).
22
+ - User brief / supplied copy — topic, mood, exact words to keep.
23
+
24
+ ## Step A — pick the brand spine (one preset, unmodified)
25
+
26
+ The whole video shares one type family + palette. Pick **one ready-made preset** from
27
+ `../hyperframes-creative/frame-presets/` using the preset table in
28
+ `../hyperframes-creative/references/design-spec.md` — choose by the track's mood + the brief,
29
+ and **only its fonts + colors matter** (templates own composition + motion; the preset only
30
+ sets the look). Copy it in **unmodified**:
31
+
32
+ ```bash
33
+ cp ../hyperframes-creative/frame-presets/<preset>/FRAME.md "$PROJECT_DIR/frame.md"
34
+ ```
35
+
36
+ Then fill the storyboard frontmatter `style` from it: the `font` from its `typography:` and a
37
+ ≤4–6 swatch `palette` from its `colors:`. **Quote the hex / family verbatim — never invent or
38
+ round.** Every group's palette params draw from this one palette; that unity is what makes
39
+ different templates read as one piece.
40
+
41
+ ## Step B — per frame, decide its groups
42
+
43
+ A frame is usually **one group** (one template or one free composition spanning the frame).
44
+ Subdivide into 2+ groups **only when a single treatment can't cover the frame** — e.g. a busy
45
+ opener plus a closing lockup. When you split, cut at a **real audiomap anchor** inside the
46
+ frame's span (a `key_moment` / `phrase` edge / onset-cluster gap), **never inside a `rolls[]`
47
+ run**, and keep every group **≥ ~1 bar**. Density does **not** force more groups — a dense
48
+ frame is usually ONE group whose template absorbs the density internally (a meta-template like
49
+ `poster-tile-mosaic`). **Group count tracks distinct treatments, not beats.**
50
+
51
+ ## Step C — per group, pick a treatment (exactly one of three)
52
+
53
+ ### A. Match a template
54
+
55
+ Read [`template-catalog.md`](template-catalog.md). Match the group's `feel` + `mood` + `pacing`
56
+ to a template's **Reach for it when**; take the closest fit. Then bind it:
57
+
58
+ - Fill `params` (keys from the catalog entry) — your copy into text slots, palette from the brand spine, `duration` = the group's span length.
59
+ - Fill `role_bindings` with this group's **real anchor seconds** read from `audiomap.json` over its span (not example times).
60
+ - If the template's natural stop and the group's span end disagree, snap to the nearest anchor.
61
+
62
+ ### B. Free-compose (no template fits)
63
+
64
+ Write a `free_design` — one visual thesis from [`motion-primitive-catalog.md`](motion-primitive-catalog.md)
65
+ (a dominant system + the named L0 primitives + a density topology) + `anchors` (the real
66
+ beat / onset seconds the moves ride). Free-compose is a **first-class** choice, written as
67
+ carefully as a matched group — never a failure.
68
+
69
+ ### C. Asset treatment (only when the user supplied assets and they fit)
70
+
71
+ Make it an `asset` group ([`montage.md`](montage.md)). **Obey `pacing`:** on a `beat_cut`
72
+ frame use `beat_cut` (one clip per anchor) or `bg_under_text`; on a `phrase_flow` frame use
73
+ `ken_burns` or a slow crossfade — **never** per-onset hard cuts. Assets are additive: if none
74
+ fits a group, fall back to template / free (typography is the floor — a complete video needs
75
+ no assets).
76
+
77
+ ## Copy (you own the words)
78
+
79
+ - Keep exact user words; else invent with taste, on the brief's mood.
80
+ - **Message vs texture:** a readable word holds ≥1 beat (headline 3–8, sentence 4–10), stable + focal; a word held <1 beat is texture (strobe / grid / ticks). Never force a message onto a sub-beat — demote it to texture.
81
+ - Place copy into the template's text params, onto a free group's anchors, or as an asset group's `overlay_copy`. Declare the anchor + accumulate / stagger intent; leave micro-timing to the worker.
82
+ - A closing logo / CTA lands on the final hit / hard stop and holds through trailing silence.
83
+
84
+ ## Transitions (you do not emit them)
85
+
86
+ Everything is a **0ms hard cut** for now. **frame → frame** is owned by the assembler
87
+ (back-to-back files); adjacent `span_sec` already imply the cut. **group → group inside a
88
+ frame** is owned by the worker on its frame timeline; you only set each group's `span_sec`.
89
+
90
+ ## Write + validate
91
+
92
+ Complete `STORYBOARD.md` ([`storyboard-format.md`](storyboard-format.md)), then run
93
+ `node scripts/validate-plan.mjs` and fix every `✗`. Show the user a frame-by-frame summary and
94
+ iterate until approved.
95
+
96
+ ## Self-check
97
+
98
+ - `frame.md` is a verbatim copy of one preset; frontmatter `style.font` / `style.palette` are drawn from it (exact values).
99
+ - Every frame became ≥1 group; groups tile the frame span in order; no group < ~1 bar; no group boundary inside a `rolls[]` run.
100
+ - Each group is exactly one of template / free_design / asset.
101
+ - Template `params` keys match the catalog entry; `role_bindings` / `anchors` use real audiomap seconds.
102
+ - Asset treatments obey `pacing` (no `beat_cut` on a `phrase_flow` frame).
103
+ - Every group's palette draws from the one brand palette.
104
+ - `duration_s == audiomap.audio.duration_sec`; `validate-plan.mjs` passes.
@@ -1,94 +1,94 @@
1
- # STORYBOARD.md format — frames → groups
2
-
3
- `STORYBOARD.md` is the single reviewable plan the user approves at Step 3 and the **manual**
4
- each frame-worker follows at Step 4. It is **hierarchical**: one block per **frame**, written
5
- as a `## Frame N — <frame_id>` heading (the parser recognizes `Frame`). **One frame = one
6
- scene = one composition file.** Inside each frame block are its **groups** (the treatment
7
- units). The assembler reads the frame level (`duration` → `data-start`, `src`); the worker
8
- reads its own frame block. A frame's **composition id = its `src` file stem**
9
- (`compositions/frames/01-f1.html` → `01-f1`), which the worker uses as `data-composition-id`
10
- and the `window.__timelines` key.
11
-
12
- Step 2 writes the skeleton (frame fields, groups `TBD`); Step 3 fills the groups + brand. It
13
- is a build spec, not code — the planner writes WHAT, the worker decides HOW. **Never write
14
- millisecond tweens here.**
15
-
16
- ## File shape
17
-
18
- YAML frontmatter (the video-wide spine) + one `## Frame N — <frame_id>` block per frame.
19
-
20
- ```markdown
21
- ---
22
- compositionId: bgm
23
- duration_s: 30.0 # == audiomap.audio.duration_sec, exactly
24
- canvas: { w: 1920, h: 1080, fps: 30 }
25
- style: # brand spine — from the chosen frame.md preset (Step 3)
26
- font: "EB Garamond / Inter / JetBrains Mono" # the preset's typography, verbatim
27
- palette: ["#FAF9F5", "#141413", "#CC785C", "#181715"] # ≤4–6 swatches from the preset's colors
28
- assets: false # false, or a note like "assets/ has 6 user photos"
29
- build_notes: ["one paused timeline per frame", "no remote assets"]
30
- avoid: ["generic slideshow", "tiny unreadable hero text"]
31
- ---
32
-
33
- ## Frame 1 — f1
34
-
35
- - src: compositions/frames/01-f1.html # worker writes here; assembler refs it; stem (01-f1) = composition id
36
- - duration: 7.198s # = span length; the assembler reads this for cumulative data-start
37
- - span_sec: [0.0, 7.198] # track seconds; frames tile the track
38
- - pacing: beat_cut # beat_cut | phrase_flow (from the skeleton; obey it)
39
- - mood: [hype]
40
- - feel: accelerating onset stream into a held downbeat
41
-
42
- ### Groups
43
-
44
- - **g1** — template: `intro-kinetic-cascade`
45
- - span_sec: [0.0, 4.017] # frame-LOCAL build is 0-based; these are TRACK seconds (worker subtracts frame start)
46
- - params: { theme: "light", icon: "bolt", phrases: "[…]", climax: "{…}" }
47
- - role_bindings: { phrase: { times: [0.14, 0.55, 0.87] }, climax: { in: 3.79, iconAt: 4.9 } }
48
- - copy: "GROWTH THROUGH CREATIVITY"
49
- - **g2** — free_design
50
- - span_sec: [4.017, 7.198]
51
- - free_design: { dominant_system: "per-onset typography", primitives: ["content-swap", "braam-punch"], density_topology: "accumulate" }
52
- - anchors: [4.10, 4.80, 5.50, 6.20] # onset seconds the reveals ride (from audiomap)
53
- - copy: ["BUILD", "SHIP", "REPEAT"]
54
-
55
- ## Frame 2 — f2
56
-
57
-
58
- ```
59
-
60
- ## Frame block — required fields
61
-
62
- | field | meaning |
63
- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
64
- | heading `## Frame N — <frame_id>` | `frame_id` matches the `src` stem; `N` = the 1-based index. |
65
- | `src` | `compositions/frames/NN-<frame_id>.html` — where the worker writes; the assembler references it. Stem = `data-composition-id`. |
66
- | `duration` | the frame span length in seconds (e.g. `7.198s`) — **required**; the assembler sums these for cumulative `data-start`. |
67
- | `span_sec` | `[start, end]` track seconds. `duration = end − start`. |
68
- | `pacing` | `beat_cut` \| `phrase_flow` — from the skeleton; the worker must obey (no hard-cut on `phrase_flow`). |
69
- | `mood`, `feel` | from the skeleton; tone + the one-line music situation the planner matched against. |
70
- | `### Groups` list | ≥1 group; groups tile the frame span in order. |
71
-
72
- ## Group entry — exactly one of three kinds
73
-
74
- Every group is **template** OR **free_design** OR **asset** — never two, never none. All three
75
- carry `span_sec` (track seconds, tiling the frame) and may carry `copy`.
76
-
77
- - **template** — `template: <catalog id>` + `params` (keys from the catalog entry) + `role_bindings` (real audiomap anchor seconds) + `copy`.
78
- - **free_design** — `free_design: { dominant_system, primitives: [catalog ids], density_topology }` + `anchors` (real beat / onset seconds) + `copy`.
79
- - **asset** — `asset: { treatment, clips: [public/…], anchors?, overlay_copy? }`. `treatment` ∈ `beat_cut` (one clip per anchor — only on a `beat_cut` frame) | `ken_burns` (slow push — fits `phrase_flow`) | `bg_under_text` (clip dimmed behind a template / free group). See [`montage.md`](montage.md).
80
-
81
- ## Rules
82
-
83
- - Frames tile the track (gap-free, first at 0, last at `duration_s`); a frame's groups tile its span; no group < ~1 bar; no group boundary inside a `rolls[]` run.
84
- - `params` keys come from the template's [`template-catalog.md`](template-catalog.md) entry.
85
- - All anchor seconds are **track seconds from `audiomap.json`** — the worker converts to frame-local by subtracting the frame start.
86
- - A `phrase_flow` frame MUST NOT use `beat_cut` asset treatment or per-onset hard cuts.
87
- - The brand `style` is set once; every group's palette draws from it.
88
- - Reviewable prose-plus-data; keep it scannable. No GSAP, no millisecond timing.
89
-
90
- ## Self-check (the planner runs `validate-plan.mjs`)
91
-
92
- - frontmatter has `compositionId`, `duration_s` (== audiomap), `canvas`, `style`.
93
- - every frame has `span_sec` + `src` + positive `duration` + `pacing` + ≥1 group; frames tile the track.
94
- - every group is exactly one of template / free_design / asset; template ids exist in the catalog; anchors are real audiomap seconds; `phrase_flow` frames have no `beat_cut`.
1
+ # STORYBOARD.md format — frames → groups
2
+
3
+ `STORYBOARD.md` is the single reviewable plan the user approves at Step 3 and the **manual**
4
+ each frame-worker follows at Step 4. It is **hierarchical**: one block per **frame**, written
5
+ as a `## Frame N — <frame_id>` heading (the parser recognizes `Frame`). **One frame = one
6
+ scene = one composition file.** Inside each frame block are its **groups** (the treatment
7
+ units). The assembler reads the frame level (`duration` → `data-start`, `src`); the worker
8
+ reads its own frame block. A frame's **composition id = its `src` file stem**
9
+ (`compositions/frames/01-f1.html` → `01-f1`), which the worker uses as `data-composition-id`
10
+ and the `window.__timelines` key.
11
+
12
+ Step 2 writes the skeleton (frame fields, groups `TBD`); Step 3 fills the groups + brand. It
13
+ is a build spec, not code — the planner writes WHAT, the worker decides HOW. **Never write
14
+ millisecond tweens here.**
15
+
16
+ ## File shape
17
+
18
+ YAML frontmatter (the video-wide spine) + one `## Frame N — <frame_id>` block per frame.
19
+
20
+ ```markdown
21
+ ---
22
+ compositionId: bgm
23
+ duration_s: 30.0 # == audiomap.audio.duration_sec, exactly
24
+ canvas: { w: 1920, h: 1080, fps: 30 }
25
+ style: # brand spine — from the chosen frame.md preset (Step 3)
26
+ font: "EB Garamond / Inter / JetBrains Mono" # the preset's typography, verbatim
27
+ palette: ["#FAF9F5", "#141413", "#CC785C", "#181715"] # ≤4–6 swatches from the preset's colors
28
+ assets: false # false, or a note like "assets/ has 6 user photos"
29
+ build_notes: ["one paused timeline per frame", "no remote assets"]
30
+ avoid: ["generic slideshow", "tiny unreadable hero text"]
31
+ ---
32
+
33
+ ## Frame 1 — f1
34
+
35
+ - src: compositions/frames/01-f1.html # worker writes here; assembler refs it; stem (01-f1) = composition id
36
+ - duration: 7.198s # = span length; the assembler reads this for cumulative data-start
37
+ - span_sec: [0.0, 7.198] # track seconds; frames tile the track
38
+ - pacing: beat_cut # beat_cut | phrase_flow (from the skeleton; obey it)
39
+ - mood: [hype]
40
+ - feel: accelerating onset stream into a held downbeat
41
+
42
+ ### Groups
43
+
44
+ - **g1** — template: `intro-kinetic-cascade`
45
+ - span_sec: [0.0, 4.017] # frame-LOCAL build is 0-based; these are TRACK seconds (worker subtracts frame start)
46
+ - params: { theme: "light", icon: "bolt", phrases: "[…]", climax: "{…}" }
47
+ - role_bindings: { phrase: { times: [0.14, 0.55, 0.87] }, climax: { in: 3.79, iconAt: 4.9 } }
48
+ - copy: "GROWTH THROUGH CREATIVITY"
49
+ - **g2** — free_design
50
+ - span_sec: [4.017, 7.198]
51
+ - free_design: { dominant_system: "per-onset typography", primitives: ["content-swap", "braam-punch"], density_topology: "accumulate" }
52
+ - anchors: [4.10, 4.80, 5.50, 6.20] # onset seconds the reveals ride (from audiomap)
53
+ - copy: ["BUILD", "SHIP", "REPEAT"]
54
+
55
+ ## Frame 2 — f2
56
+
57
+
58
+ ```
59
+
60
+ ## Frame block — required fields
61
+
62
+ | field | meaning |
63
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
64
+ | heading `## Frame N — <frame_id>` | `frame_id` matches the `src` stem; `N` = the 1-based index. |
65
+ | `src` | `compositions/frames/NN-<frame_id>.html` — where the worker writes; the assembler references it. Stem = `data-composition-id`. |
66
+ | `duration` | the frame span length in seconds (e.g. `7.198s`) — **required**; the assembler sums these for cumulative `data-start`. |
67
+ | `span_sec` | `[start, end]` track seconds. `duration = end − start`. |
68
+ | `pacing` | `beat_cut` \| `phrase_flow` — from the skeleton; the worker must obey (no hard-cut on `phrase_flow`). |
69
+ | `mood`, `feel` | from the skeleton; tone + the one-line music situation the planner matched against. |
70
+ | `### Groups` list | ≥1 group; groups tile the frame span in order. |
71
+
72
+ ## Group entry — exactly one of three kinds
73
+
74
+ Every group is **template** OR **free_design** OR **asset** — never two, never none. All three
75
+ carry `span_sec` (track seconds, tiling the frame) and may carry `copy`.
76
+
77
+ - **template** — `template: <catalog id>` + `params` (keys from the catalog entry) + `role_bindings` (real audiomap anchor seconds) + `copy`.
78
+ - **free_design** — `free_design: { dominant_system, primitives: [catalog ids], density_topology }` + `anchors` (real beat / onset seconds) + `copy`.
79
+ - **asset** — `asset: { treatment, clips: [public/…], anchors?, overlay_copy? }`. `treatment` ∈ `beat_cut` (one clip per anchor — only on a `beat_cut` frame) | `ken_burns` (slow push — fits `phrase_flow`) | `bg_under_text` (clip dimmed behind a template / free group). See [`montage.md`](montage.md).
80
+
81
+ ## Rules
82
+
83
+ - Frames tile the track (gap-free, first at 0, last at `duration_s`); a frame's groups tile its span; no group < ~1 bar; no group boundary inside a `rolls[]` run.
84
+ - `params` keys come from the template's [`template-catalog.md`](template-catalog.md) entry.
85
+ - All anchor seconds are **track seconds from `audiomap.json`** — the worker converts to frame-local by subtracting the frame start.
86
+ - A `phrase_flow` frame MUST NOT use `beat_cut` asset treatment or per-onset hard cuts.
87
+ - The brand `style` is set once; every group's palette draws from it.
88
+ - Reviewable prose-plus-data; keep it scannable. No GSAP, no millisecond timing.
89
+
90
+ ## Self-check (the planner runs `validate-plan.mjs`)
91
+
92
+ - frontmatter has `compositionId`, `duration_s` (== audiomap), `canvas`, `style`.
93
+ - every frame has `span_sec` + `src` + positive `duration` + `pacing` + ≥1 group; frames tile the track.
94
+ - every group is exactly one of template / free_design / asset; template ids exist in the catalog; anchors are real audiomap seconds; `phrase_flow` frames have no `beat_cut`.
@@ -1,106 +1,106 @@
1
- # Template catalog — the selection menu (Step 3)
2
-
3
- Reverse-engineered, asset-free **group templates**. This file is the **only** thing the
4
- planner reads to pick one — you do **not** open the template's `index.html` to choose. One
5
- template realizes **one group** of a frame (a frame may stack several groups; the brand spine
6
- unifies them).
7
-
8
- **How to pick.** For each group, read its frame's `pacing` + `mood` + the one-line music
9
- situation from the skeleton, then scan **Reach for it when** + **Best span** below and take the
10
- closest fit. If nothing fits, **free-compose** from
11
- [`motion-primitive-catalog.md`](motion-primitive-catalog.md) — that is a first-class choice, not a
12
- failure.
13
-
14
- **Brand comes from `frame.md`, not the template.** Templates ship their own demo palette
15
- (`theme` / `palette` / color params). Fill those params from the project's `frame.md` (the
16
- chosen preset's colors + fonts) so every group reads as one piece — the template supplies the
17
- **motion + layout**, the preset supplies the **look**.
18
-
19
- **Params** are listed so you can fill content slots in the storyboard. Exact semantics +
20
- defaults live in each template's `index.html` (`data-composition-variables`) — the frame-worker
21
- reads those at build time; you only name the values.
22
-
23
- Pacing tag: every template below is **beat_cut** except `held-message-living-field`
24
- (**phrase_flow**). Never put a beat_cut template on a phrase_flow frame.
25
-
26
- ## Group duration discipline
27
-
28
- Template choice is per **group**, not per frame. A frame longer than a template's **Best span**
29
- should usually split into multiple groups at real audiomap anchors (`SURGE`, `DROP`, roll edge,
30
- hard_stop, phrase edge) instead of stretching one template across the whole frame.
31
-
32
- - **Best span** below is the active treatment span: the part where the template's system is doing
33
- meaningful motion. A short readable hold at the end is fine; a long empty tail means pick another
34
- group.
35
- - **Frames over ~6s** usually need 2+ groups. Beat-cut exceptions are rich programs with real
36
- sub-phases (`poster-tile-mosaic`, sometimes `card-flyby`); phrase-flow exceptions use
37
- `held-message-living-field`.
38
- - **Roll templates are one-roll tools.** If a frame has two rolls or a drop between rolls, split it
39
- into two groups.
40
- - Do not extend by slowing every tween. Preserve the template's motion feel, then fill extra time
41
- with a hold / palette change / new group.
42
-
43
- ---
44
-
45
- ### card-flyby
46
-
47
- - **What** — a depth column of cards rolls forward through perspective; each landing beat tumbles the next card into the front slot with a solid colored wipe, the old front falls toward camera, dwells shrink card-to-card so the deck accelerates into a held final card.
48
- - **Reach for it when** — a stream of discrete onsets that **accelerate** (gaps shrinking / a build into a downbeat) and you want to flash a **sequence of items** — titles, projects, posters, tiles — one per hit, climaxing on a held card.
49
- - **Best span** — **4-6.5s** for 4-7 landings plus a short final hold; split at the next downbeat if it wants to run **>7s**.
50
- - **Params** — `theme`, `bgColor`, `cards`, `landings`, `yaw`
51
-
52
- ### held-message-living-field · phrase_flow
53
-
54
- - **What** — a readable mark (logo / word / title) held dead still over a soft, color-shifting blurred field; only the field breathes.
55
- - **Reach for it when** — a **calm / sparse** stretch with an onset desert — energy present but few or no onsets (a held pad or riser); you have one word or mark to hold and let breathe.
56
- - **Best span** — **6-16s**; this is the long-group exception. Under 4s feels underdeveloped; over ~20s needs a state change or another group.
57
- - **Params** — `markText`, `titleText`, `tagText`, `palette`, `flowSpeed`, `duration`
58
-
59
- ### held-text-strobe-burst
60
-
61
- - **What** — a dead-still word whose letters flip through texture-filled frames (texture-clipped fill + per-frame tint + bg color) every ~3 frames, in short bursts pinned to a roll.
62
- - **Reach for it when** — a **dense, hard-hitting roll / fill** and a single word you want to strobe through textures for a few bars. (Ships texture-mask PNGs under `assets/`.)
63
- - **Best span** — **1.2-3.5s**; strobe fatigue starts fast, so cap at ~4s and cut to a cleaner system.
64
- - **Params** — `markText`, `fontStyle`, `markScale`, `idleColor`, `idleInk`, `frames`, `strobePlan`, `decor`, `duration`
65
-
66
- ### intro-kinetic-cascade
67
-
68
- - **What** — a line laid out as a sequence of big editorial **phrases** (each a stacked poster with one enlarged hero word), revealed word-by-word on its anchors, hard cut between phrases, climaxing on a phrase that slides in with a swappable ringing **icon** (bell / cursor / sparkle / emoji / SVG).
69
- - **Reach for it when** — an **intro / opening statement**: a short line to land word-by-word as big type, climaxing on one keyword + an icon. Medium-or-more energy, steady grid.
70
- - **Best span** — **3.5-7s** for 2-4 phrase beats; if the statement needs more time, make the next clause a new group.
71
- - **Params** — `theme`, `icon`, `phrases`, `climax`
72
-
73
- ### logo-split-lockup-pulse
74
-
75
- - **What** — a two-part mark joined at center splits left↔right to open a gap, grows a center word-lockup one word per onset (key word lands on the downbeat surge), snap-closes on a hit, then pulses with the beat.
76
- - **Reach for it when** — a short **logo / brand sting** (not a typed sentence): fast dense onsets + a sustained roll bed to pulse on, with a left/right bracketing mark.
77
- - **Best span** — **2-4s**; at **>4.5s** it reads like a sting stretched too long. Follow with a separate held-lockup / next idea group.
78
- - **Params** — `bgColor`, `markColor`, `textColor`, `leftMark`, `rightMark`, `word1`, `word2`, `word3`, `word4`
79
-
80
- ### poster-tile-mosaic
81
-
82
- - **What** — a packed **mosaic** of different-sized colored tiles that tessellate to fill the frame (no overlap), driven by interchangeable beat-synced operations: staggered enter/exit, locked global recolor, snake-fill + overlay.
83
- - **Reach for it when** — many discrete, individually-placeable onsets (a hit for every tile move) with distinct sub-phases you want articulated differently (accumulate → recolor-on-roll → fill-then-drop). A dense section best held as **one** rich tile program rather than split.
84
- - **Best span** — **4-7s**, up to **8s** only when the program has clear sub-phases. If the music changes regime, split even if the tile system could continue.
85
- - **Params** — `bgColor`, `tiles`, `bands`, `gap`, `showText`, `labels`, `program`
86
-
87
- ### roll-flipbook-word-cycle
88
-
89
- - **What** — a hi-hat roll drives a centred word that flips every 16th-note through a word list; optionally the flicker resolves and locks into a final phrase.
90
- - **Reach for it when** — a **fast sustained-fill roll** (hundreds of hits/min, ~16th-note) with no single readable message — fill the roll with a rapidly-cycling word flipbook.
91
- - **Best span** — **1.2-3.8s**, one roll into one resolve. Two rolls, or a drop between rolls, means two groups.
92
- - **Params** — `bgColor`, `textColor`, `accentColor`, `flipWords`, `resolveText`, `periodChar`
93
-
94
- ### split-anchor-word-slot
95
-
96
- - **What** — a held left anchor column of fixed-word rows beside a torn-paper word-slot box on the right, driven by beat-synced operators: anchor lock-in, slot word-group cycle (in/out + per-line color), full-scene background flip, per-beat jitter, box-zoom exit wipe. Row count + number of flips are data.
97
- - **Reach for it when** — a short section with a **held idea** (a brand / name to anchor on the left) **and** a stream of onsets popping separate words on the right, plus a dense run to ride a shake on and a strong downbeat to wipe out into.
98
- - **Best span** — **3-6s**; above ~6.5s the fixed anchor goes stale unless the right slot enters a new group/program.
99
- - **Params** — `bgColor`, `anchors`, `theme`, `showText`, `program`
100
-
101
- ### typewriter-phrase-keyword-shuffle
102
-
103
- - **What** — words type in one-per-onset to spell a phrase, then one keyword cycles typefaces on the beat while everything else holds dead still.
104
- - **Reach for it when** — a steady grid with a **continuous onset stream** (no desert): a phrase to type out, then a keyword to shuffle. The inverse of `held-message-living-field` (which wants an onset desert).
105
- - **Best span** — **2.5-5s**; if the phrase cannot type and shuffle inside ~5s, reduce words or split the sentence across groups.
106
- - **Params** — `bgColor`, `textColor`, `accentColor`, `lead1`, `lead2`, `lead3`, `keyword`, `periodChar`
1
+ # Template catalog — the selection menu (Step 3)
2
+
3
+ Reverse-engineered, asset-free **group templates**. This file is the **only** thing the
4
+ planner reads to pick one — you do **not** open the template's `index.html` to choose. One
5
+ template realizes **one group** of a frame (a frame may stack several groups; the brand spine
6
+ unifies them).
7
+
8
+ **How to pick.** For each group, read its frame's `pacing` + `mood` + the one-line music
9
+ situation from the skeleton, then scan **Reach for it when** + **Best span** below and take the
10
+ closest fit. If nothing fits, **free-compose** from
11
+ [`motion-primitive-catalog.md`](motion-primitive-catalog.md) — that is a first-class choice, not a
12
+ failure.
13
+
14
+ **Brand comes from `frame.md`, not the template.** Templates ship their own demo palette
15
+ (`theme` / `palette` / color params). Fill those params from the project's `frame.md` (the
16
+ chosen preset's colors + fonts) so every group reads as one piece — the template supplies the
17
+ **motion + layout**, the preset supplies the **look**.
18
+
19
+ **Params** are listed so you can fill content slots in the storyboard. Exact semantics +
20
+ defaults live in each template's `index.html` (`data-composition-variables`) — the frame-worker
21
+ reads those at build time; you only name the values.
22
+
23
+ Pacing tag: every template below is **beat_cut** except `held-message-living-field`
24
+ (**phrase_flow**). Never put a beat_cut template on a phrase_flow frame.
25
+
26
+ ## Group duration discipline
27
+
28
+ Template choice is per **group**, not per frame. A frame longer than a template's **Best span**
29
+ should usually split into multiple groups at real audiomap anchors (`SURGE`, `DROP`, roll edge,
30
+ hard_stop, phrase edge) instead of stretching one template across the whole frame.
31
+
32
+ - **Best span** below is the active treatment span: the part where the template's system is doing
33
+ meaningful motion. A short readable hold at the end is fine; a long empty tail means pick another
34
+ group.
35
+ - **Frames over ~6s** usually need 2+ groups. Beat-cut exceptions are rich programs with real
36
+ sub-phases (`poster-tile-mosaic`, sometimes `card-flyby`); phrase-flow exceptions use
37
+ `held-message-living-field`.
38
+ - **Roll templates are one-roll tools.** If a frame has two rolls or a drop between rolls, split it
39
+ into two groups.
40
+ - Do not extend by slowing every tween. Preserve the template's motion feel, then fill extra time
41
+ with a hold / palette change / new group.
42
+
43
+ ---
44
+
45
+ ### card-flyby
46
+
47
+ - **What** — a depth column of cards rolls forward through perspective; each landing beat tumbles the next card into the front slot with a solid colored wipe, the old front falls toward camera, dwells shrink card-to-card so the deck accelerates into a held final card.
48
+ - **Reach for it when** — a stream of discrete onsets that **accelerate** (gaps shrinking / a build into a downbeat) and you want to flash a **sequence of items** — titles, projects, posters, tiles — one per hit, climaxing on a held card.
49
+ - **Best span** — **4-6.5s** for 4-7 landings plus a short final hold; split at the next downbeat if it wants to run **>7s**.
50
+ - **Params** — `theme`, `bgColor`, `cards`, `landings`, `yaw`
51
+
52
+ ### held-message-living-field · phrase_flow
53
+
54
+ - **What** — a readable mark (logo / word / title) held dead still over a soft, color-shifting blurred field; only the field breathes.
55
+ - **Reach for it when** — a **calm / sparse** stretch with an onset desert — energy present but few or no onsets (a held pad or riser); you have one word or mark to hold and let breathe.
56
+ - **Best span** — **6-16s**; this is the long-group exception. Under 4s feels underdeveloped; over ~20s needs a state change or another group.
57
+ - **Params** — `markText`, `titleText`, `tagText`, `palette`, `flowSpeed`, `duration`
58
+
59
+ ### held-text-strobe-burst
60
+
61
+ - **What** — a dead-still word whose letters flip through texture-filled frames (texture-clipped fill + per-frame tint + bg color) every ~3 frames, in short bursts pinned to a roll.
62
+ - **Reach for it when** — a **dense, hard-hitting roll / fill** and a single word you want to strobe through textures for a few bars. (Ships texture-mask PNGs under `assets/`.)
63
+ - **Best span** — **1.2-3.5s**; strobe fatigue starts fast, so cap at ~4s and cut to a cleaner system.
64
+ - **Params** — `markText`, `fontStyle`, `markScale`, `idleColor`, `idleInk`, `frames`, `strobePlan`, `decor`, `duration`
65
+
66
+ ### intro-kinetic-cascade
67
+
68
+ - **What** — a line laid out as a sequence of big editorial **phrases** (each a stacked poster with one enlarged hero word), revealed word-by-word on its anchors, hard cut between phrases, climaxing on a phrase that slides in with a swappable ringing **icon** (bell / cursor / sparkle / emoji / SVG).
69
+ - **Reach for it when** — an **intro / opening statement**: a short line to land word-by-word as big type, climaxing on one keyword + an icon. Medium-or-more energy, steady grid.
70
+ - **Best span** — **3.5-7s** for 2-4 phrase beats; if the statement needs more time, make the next clause a new group.
71
+ - **Params** — `theme`, `icon`, `phrases`, `climax`
72
+
73
+ ### logo-split-lockup-pulse
74
+
75
+ - **What** — a two-part mark joined at center splits left↔right to open a gap, grows a center word-lockup one word per onset (key word lands on the downbeat surge), snap-closes on a hit, then pulses with the beat.
76
+ - **Reach for it when** — a short **logo / brand sting** (not a typed sentence): fast dense onsets + a sustained roll bed to pulse on, with a left/right bracketing mark.
77
+ - **Best span** — **2-4s**; at **>4.5s** it reads like a sting stretched too long. Follow with a separate held-lockup / next idea group.
78
+ - **Params** — `bgColor`, `markColor`, `textColor`, `leftMark`, `rightMark`, `word1`, `word2`, `word3`, `word4`
79
+
80
+ ### poster-tile-mosaic
81
+
82
+ - **What** — a packed **mosaic** of different-sized colored tiles that tessellate to fill the frame (no overlap), driven by interchangeable beat-synced operations: staggered enter/exit, locked global recolor, snake-fill + overlay.
83
+ - **Reach for it when** — many discrete, individually-placeable onsets (a hit for every tile move) with distinct sub-phases you want articulated differently (accumulate → recolor-on-roll → fill-then-drop). A dense section best held as **one** rich tile program rather than split.
84
+ - **Best span** — **4-7s**, up to **8s** only when the program has clear sub-phases. If the music changes regime, split even if the tile system could continue.
85
+ - **Params** — `bgColor`, `tiles`, `bands`, `gap`, `showText`, `labels`, `program`
86
+
87
+ ### roll-flipbook-word-cycle
88
+
89
+ - **What** — a hi-hat roll drives a centred word that flips every 16th-note through a word list; optionally the flicker resolves and locks into a final phrase.
90
+ - **Reach for it when** — a **fast sustained-fill roll** (hundreds of hits/min, ~16th-note) with no single readable message — fill the roll with a rapidly-cycling word flipbook.
91
+ - **Best span** — **1.2-3.8s**, one roll into one resolve. Two rolls, or a drop between rolls, means two groups.
92
+ - **Params** — `bgColor`, `textColor`, `accentColor`, `flipWords`, `resolveText`, `periodChar`
93
+
94
+ ### split-anchor-word-slot
95
+
96
+ - **What** — a held left anchor column of fixed-word rows beside a torn-paper word-slot box on the right, driven by beat-synced operators: anchor lock-in, slot word-group cycle (in/out + per-line color), full-scene background flip, per-beat jitter, box-zoom exit wipe. Row count + number of flips are data.
97
+ - **Reach for it when** — a short section with a **held idea** (a brand / name to anchor on the left) **and** a stream of onsets popping separate words on the right, plus a dense run to ride a shake on and a strong downbeat to wipe out into.
98
+ - **Best span** — **3-6s**; above ~6.5s the fixed anchor goes stale unless the right slot enters a new group/program.
99
+ - **Params** — `bgColor`, `anchors`, `theme`, `showText`, `program`
100
+
101
+ ### typewriter-phrase-keyword-shuffle
102
+
103
+ - **What** — words type in one-per-onset to spell a phrase, then one keyword cycles typefaces on the beat while everything else holds dead still.
104
+ - **Reach for it when** — a steady grid with a **continuous onset stream** (no desert): a phrase to type out, then a keyword to shuffle. The inverse of `held-message-living-field` (which wants an onset desert).
105
+ - **Best span** — **2.5-5s**; if the phrase cannot type and shuffle inside ~5s, reduce words or split the sentence across groups.
106
+ - **Params** — `bgColor`, `textColor`, `accentColor`, `lead1`, `lead2`, `lead3`, `keyword`, `periodChar`