dsh-hyperframes 0.9.1 → 0.9.3
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.
- package/CHANGELOG.md +11 -1
- package/README.en.md +3 -1
- package/README.md +3 -1
- package/docs/USAGE.en.md +2 -2
- package/docs/USAGE.md +2 -2
- package/lib/client.js +84 -67
- package/lib/index.js +1 -1
- package/lib/media-templates.d.ts +3 -3
- package/lib/media-templates.js +1 -1
- package/package.json +4 -3
- package/plugin.json +5 -0
- package/skills/NOTICE.md +3 -0
- package/skills/UPSTREAM-LICENSE.txt +190 -0
- package/skills/UPSTREAM.json +355 -0
- package/skills/embedded-captions/SKILL.md +4 -277
- package/skills/faceless-explainer/SKILL.md +4 -231
- package/skills/figma/SKILL.md +34 -113
- package/skills/general-video/SKILL.md +4 -161
- package/skills/hyperframes/SKILL.md +52 -115
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/biennale-yellow/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/blockframe/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/blue-professional/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/bold-poster/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/broadside/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/capsule/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/cartesian/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/cobalt-grid/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/FRAME.md +2 -2
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/coral/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/creative-mode/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/daisy-days/caption-skin.html +7 -8
- package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/editorial-forest/caption-skin.html +7 -8
- package/skills/hyperframes/references/captions.md +46 -0
- package/skills/hyperframes/references/film.md +48 -0
- package/skills/hyperframes/references/format.md +158 -0
- package/skills/hyperframes/references/look.md +69 -0
- package/skills/hyperframes/references/motion.md +95 -0
- package/skills/hyperframes/references/overlays.md +39 -0
- package/skills/hyperframes/references/plugin-installation.md +3 -3
- package/skills/hyperframes/references/review.md +51 -0
- package/skills/hyperframes/references/runtimes.md +69 -0
- package/skills/hyperframes/references/skill-lifecycle.md +28 -14
- package/skills/hyperframes/references/sound.md +43 -0
- package/skills/hyperframes/references/spec.md +76 -0
- package/skills/hyperframes/references/story.md +103 -0
- package/skills/hyperframes/references/storyboard-format.md +30 -22
- package/skills/hyperframes/references/storyboard.md +36 -0
- package/skills/hyperframes/references/types/3d.md +25 -0
- package/skills/hyperframes/references/types/character.md +20 -0
- package/skills/hyperframes/references/types/data.md +19 -0
- package/skills/hyperframes/references/types/explainer.md +34 -0
- package/skills/hyperframes/references/types/launch.md +41 -0
- package/skills/hyperframes/references/types/music.md +24 -0
- package/skills/hyperframes/references/types/vertical.md +23 -0
- package/skills/{motion-graphics/categories/maps → hyperframes/scripts}/bake-basemap.mjs +71 -20
- package/skills/hyperframes/scripts/lib/main-module.mjs +13 -0
- package/skills/hyperframes/scripts/lib/main-module.test.mjs +46 -0
- package/skills/{motion-graphics/grounding → hyperframes/scripts}/locate.mjs +1 -1
- package/skills/hyperframes/scripts/plugin-cli.mjs +4 -3
- package/skills/hyperframes/scripts/plugin-cli.test.mjs +5 -1
- package/skills/hyperframes-animation/SKILL.md +4 -82
- package/skills/hyperframes-audio/SKILL.md +4 -472
- package/skills/hyperframes-cli/SKILL.md +76 -158
- package/skills/hyperframes-cli/references/beats.md +3 -7
- package/skills/hyperframes-cli/references/cloud.md +4 -4
- package/skills/hyperframes-cli/references/cloudrun.md +2 -2
- package/skills/hyperframes-cli/references/conventions.md +17 -0
- package/skills/hyperframes-cli/references/doctor-browser.md +24 -1
- package/skills/hyperframes-cli/references/feedback.md +14 -0
- package/skills/hyperframes-cli/references/init-and-scaffold.md +13 -8
- package/skills/hyperframes-cli/references/lambda.md +6 -2
- package/skills/hyperframes-cli/references/lint-validate-inspect.md +34 -11
- package/skills/hyperframes-cli/references/preview-render.md +13 -4
- package/skills/hyperframes-cli/references/upgrade-info-misc.md +8 -0
- package/skills/hyperframes-core/SKILL.md +4 -94
- package/skills/hyperframes-creative/SKILL.md +4 -67
- package/skills/hyperframes-keyframes/SKILL.md +4 -258
- package/skills/hyperframes-registry/SKILL.md +37 -128
- package/skills/hyperframes-registry/references/discovery.md +2 -2
- package/skills/hyperframes-registry/references/search.md +67 -0
- package/skills/hyperframes-studio/SKILL.md +4 -71
- package/skills/media-use/SKILL.md +50 -88
- package/skills/media-use/audio/references/bgm.md +4 -2
- package/skills/media-use/audio/references/captions/authoring.md +1 -2
- package/skills/media-use/audio/references/captions/motion.md +5 -5
- package/skills/media-use/audio/references/requirements.md +7 -7
- package/skills/media-use/audio/references/sfx.md +20 -14
- package/skills/media-use/audio/references/transcribe.md +2 -2
- package/skills/media-use/audio/references/tts.md +26 -12
- package/skills/media-use/audio/scripts/audio.mjs +25 -17
- package/skills/media-use/audio/scripts/audio.test.mjs +121 -4
- package/skills/{hyperframes-audio → media-use/audio}/scripts/carve.mjs +2 -14
- package/skills/media-use/audio/scripts/gemini-pipeline.test.mjs +20 -2
- package/skills/media-use/audio/scripts/heygen-tts.mjs +3 -2
- package/skills/media-use/audio/scripts/heygen-tts.test.mjs +38 -0
- package/skills/media-use/audio/scripts/heygen-voice.mjs +98 -0
- package/skills/media-use/audio/scripts/heygen-voice.test.mjs +233 -0
- package/skills/media-use/audio/scripts/lib/bgm.mjs +8 -4
- package/skills/media-use/audio/scripts/lib/bgm.test.mjs +45 -1
- package/skills/media-use/audio/scripts/lib/heygen.mjs +100 -16
- package/skills/media-use/audio/scripts/lib/heygen.test.mjs +205 -16
- package/skills/media-use/audio/scripts/lib/main-module.mjs +13 -0
- package/skills/media-use/audio/scripts/lib/media-record.mjs +118 -0
- package/skills/media-use/audio/scripts/lib/media-record.test.mjs +224 -0
- package/skills/media-use/audio/scripts/lib/openverse.mjs +134 -0
- package/skills/media-use/audio/scripts/lib/python.mjs +19 -5
- package/skills/media-use/audio/scripts/lib/python.test.mjs +69 -1
- package/skills/media-use/audio/scripts/lib/sfx.mjs +141 -88
- package/skills/media-use/audio/scripts/lib/sfx.test.mjs +270 -8
- package/skills/media-use/audio/scripts/lib/tts.cleanup.test.mjs +175 -0
- package/skills/media-use/audio/scripts/lib/tts.mjs +28 -24
- package/skills/media-use/audio/scripts/lib/tts.test.mjs +74 -1
- package/skills/media-use/audio/scripts/wait-bgm.mjs +4 -0
- package/skills/media-use/audio/scripts/wait-bgm.test.mjs +44 -1
- package/skills/media-use/references/audio.md +2 -2
- package/skills/media-use/references/grading.md +5 -4
- package/skills/media-use/references/local.md +24 -0
- package/skills/media-use/references/media-treatments.md +5 -1
- package/skills/media-use/references/memory.md +10 -5
- package/skills/media-use/references/meta.md +17 -17
- package/skills/media-use/references/mixing.md +72 -0
- package/skills/media-use/references/operations.md +10 -8
- package/skills/media-use/references/resolve.md +1 -1
- package/skills/media-use/references/setup-providers.md +31 -17
- package/skills/media-use/scripts/compatibility.test.mjs +1 -56
- package/skills/media-use/scripts/lib/cutlist.mjs +9 -2
- package/skills/media-use/scripts/lib/duck.mjs +20 -3
- package/skills/media-use/scripts/lib/index-gen.mjs +2 -2
- package/skills/media-use/scripts/lib/manifest.mjs +85 -32
- package/skills/media-use/scripts/lib/prefs-store.mjs +47 -29
- package/skills/media-use/scripts/lib/recipe-store.mjs +7 -3
- package/skills/media-use/scripts/lib/telemetry.mjs +4 -1
- package/skills/media-use/scripts/lib/telemetry.test.mjs +73 -0
- package/skills/media-use/scripts/lib/words.mjs +1 -1
- package/skills/media-use/scripts/prefs.mjs +2 -3
- package/skills/media-use/scripts/recipe.mjs +1 -3
- package/skills/media-use/scripts/transcript-cut.mjs +23 -4
- package/skills/media-use/scripts/transcript-cut.test.mjs +224 -0
- package/skills/motion-graphics/SKILL.md +4 -172
- package/skills/music-to-video/SKILL.md +4 -204
- package/skills/pr-to-video/SKILL.md +4 -267
- package/skills/product-launch-video/SKILL.md +4 -258
- package/skills/remotion-to-hyperframes/SKILL.md +32 -115
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +3 -0
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +3 -0
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +8 -7
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +3 -3
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-1.html +6 -2
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-2.html +3 -4
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-3.html +2 -2
- package/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +3 -0
- package/skills/remotion-to-hyperframes/references/api-map.md +41 -29
- package/skills/remotion-to-hyperframes/references/limitations.md +3 -3
- package/skills/remotion-to-hyperframes/references/lottie.md +21 -8
- package/skills/remotion-to-hyperframes/references/media.md +23 -6
- package/skills/remotion-to-hyperframes/references/timing.md +20 -8
- package/skills/remotion-to-hyperframes/scripts/tests/boxSizing.test.mjs +21 -0
- package/skills/slideshow/SKILL.md +42 -512
- package/skills/slideshow/references/standalone-harness.md +1 -1
- package/skills/talking-head-recut/SKILL.md +4 -1214
- package/skills/embedded-captions/CATALOG.md +0 -91
- package/skills/embedded-captions/assets/fonts/char-widths.json +0 -2211
- package/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +0 -242
- package/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +0 -242
- package/skills/embedded-captions/dna/README.md +0 -148
- package/skills/embedded-captions/dna/chrome.json +0 -68
- package/skills/embedded-captions/dna/cream.json +0 -69
- package/skills/embedded-captions/dna/documentary.json +0 -62
- package/skills/embedded-captions/dna/editorial.json +0 -70
- package/skills/embedded-captions/dna/glitch.json +0 -82
- package/skills/embedded-captions/dna/ink.json +0 -65
- package/skills/embedded-captions/dna/keynote.json +0 -62
- package/skills/embedded-captions/dna/loud.json +0 -75
- package/skills/embedded-captions/dna/neon.json +0 -58
- package/skills/embedded-captions/dna/velocity.json +0 -89
- package/skills/embedded-captions/modes/cinematic/README.md +0 -48
- package/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +0 -98
- package/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +0 -188
- package/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +0 -134
- package/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +0 -179
- package/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +0 -81
- package/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +0 -170
- package/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +0 -16
- package/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +0 -226
- package/skills/embedded-captions/modes/cinematic/engine.html +0 -355
- package/skills/embedded-captions/modes/standard/_anatomy.md +0 -233
- package/skills/embedded-captions/modes/standard/_motion.md +0 -192
- package/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +0 -97
- package/skills/embedded-captions/modes/standard/fonts/files/anton-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/audiowide-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/baloo-2-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/baloo-2-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/bangers-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/bodoni-moda-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/bodoni-moda-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/caveat-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/caveat-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/chakra-petch-latin-500-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/chakra-petch-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/cinzel-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/cinzel-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/cormorant-garamond-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/cormorant-garamond-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/creepster-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/fredoka-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/fredoka-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-500-italic.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-500-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-600-italic.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-600-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-800-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/inter-latin-900-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/monoton-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/orbitron-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/orbitron-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/permanent-marker-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/press-start-2p-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/rajdhani-latin-500-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/rajdhani-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/saira-stencil-one-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/shippori-mincho-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/shippori-mincho-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/sora-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/sora-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/space-grotesk-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/space-grotesk-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/special-elite-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/teko-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/teko-latin-700-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/files/vt323-latin-400-normal.woff2 +0 -0
- package/skills/embedded-captions/modes/standard/fonts/fonts.css +0 -401
- package/skills/embedded-captions/references/aesthetic-principles.md +0 -167
- package/skills/embedded-captions/references/anti-patterns.md +0 -188
- package/skills/embedded-captions/references/bespoke-vs-presets.md +0 -178
- package/skills/embedded-captions/references/caption-grouping.md +0 -130
- package/skills/embedded-captions/references/composition-craft.md +0 -522
- package/skills/embedded-captions/references/direction-catalog.md +0 -138
- package/skills/embedded-captions/references/example-renders/champion.html +0 -371
- package/skills/embedded-captions/references/example-renders/memory-wall.html +0 -334
- package/skills/embedded-captions/references/failure-modes.md +0 -145
- package/skills/embedded-captions/references/layout-heuristics.md +0 -238
- package/skills/embedded-captions/references/motion-vocabulary.md +0 -148
- package/skills/embedded-captions/references/rail.md +0 -68
- package/skills/embedded-captions/references/reference-bar.md +0 -47
- package/skills/embedded-captions/references/scene-types.md +0 -94
- package/skills/embedded-captions/references/typographic-moves.md +0 -266
- package/skills/embedded-captions/references/typography-presets.md +0 -63
- package/skills/embedded-captions/scripts/audio-envelope.cjs +0 -95
- package/skills/embedded-captions/scripts/check-occlusion.cjs +0 -253
- package/skills/embedded-captions/scripts/check-overflow.cjs +0 -195
- package/skills/embedded-captions/scripts/check-rail-climax.cjs +0 -237
- package/skills/embedded-captions/scripts/check-timing.cjs +0 -173
- package/skills/embedded-captions/scripts/fill-timings.cjs +0 -124
- package/skills/embedded-captions/scripts/fit-fonts.cjs +0 -158
- package/skills/embedded-captions/scripts/fixtures/heroless/theme.json +0 -11
- package/skills/embedded-captions/scripts/gen-stroke-path.py +0 -57
- package/skills/embedded-captions/scripts/hf-cli.cjs +0 -33
- package/skills/embedded-captions/scripts/inject-fonts.cjs +0 -169
- package/skills/embedded-captions/scripts/lib-dna.cjs +0 -201
- package/skills/embedded-captions/scripts/make-cinematic.cjs +0 -1206
- package/skills/embedded-captions/scripts/make-composition.cjs +0 -405
- package/skills/embedded-captions/scripts/make-theme.cjs +0 -8623
- package/skills/embedded-captions/scripts/make-theme.test.mjs +0 -131
- package/skills/embedded-captions/scripts/matte.cjs +0 -268
- package/skills/embedded-captions/scripts/measure-layout.cjs +0 -294
- package/skills/embedded-captions/scripts/prepare.sh +0 -39
- package/skills/embedded-captions/scripts/preview-frames.cjs +0 -296
- package/skills/embedded-captions/scripts/preview-frames.test.mjs +0 -24
- package/skills/embedded-captions/scripts/render-and-composite.sh +0 -425
- package/skills/embedded-captions/scripts/render-theme.sh +0 -34
- package/skills/embedded-captions/scripts/safe-zones.cjs +0 -816
- package/skills/embedded-captions/scripts/transcribe.cjs +0 -323
- package/skills/embedded-captions/scripts/transcribe.test.mjs +0 -41
- package/skills/embedded-captions/themes/README.md +0 -243
- package/skills/embedded-captions/themes/anchor.json +0 -27
- package/skills/embedded-captions/themes/arcade.json +0 -51
- package/skills/embedded-captions/themes/aurora.json +0 -41
- package/skills/embedded-captions/themes/biolume.json +0 -35
- package/skills/embedded-captions/themes/brush.json +0 -74
- package/skills/embedded-captions/themes/chalkboard.json +0 -52
- package/skills/embedded-captions/themes/dossier.json +0 -56
- package/skills/embedded-captions/themes/graffiti.json +0 -62
- package/skills/embedded-captions/themes/hologram.json +0 -41
- package/skills/embedded-captions/themes/inkwater.json +0 -43
- package/skills/embedded-captions/themes/laser.json +0 -46
- package/skills/embedded-captions/themes/lastpage.json +0 -33
- package/skills/embedded-captions/themes/neonsign.json +0 -53
- package/skills/embedded-captions/themes/ordnance.json +0 -54
- package/skills/embedded-captions/themes/papercut.json +0 -37
- package/skills/embedded-captions/themes/popup.json +0 -46
- package/skills/embedded-captions/themes/ransom.json +0 -62
- package/skills/embedded-captions/themes/scoreboard.json +0 -54
- package/skills/embedded-captions/themes/spectrum.json +0 -46
- package/skills/embedded-captions/themes/stardust.json +0 -29
- package/skills/embedded-captions/themes/stomp.json +0 -43
- package/skills/embedded-captions/themes/terminal.json +0 -49
- package/skills/embedded-captions/themes/thunder.json +0 -44
- package/skills/embedded-captions/themes/transit.json +0 -44
- package/skills/embedded-captions/themes/vhs.json +0 -47
- package/skills/faceless-explainer/references/cut-catalog.md +0 -215
- package/skills/faceless-explainer/references/motion-language.md +0 -156
- package/skills/faceless-explainer/references/story-design.md +0 -255
- package/skills/faceless-explainer/references/visual-design.md +0 -146
- package/skills/faceless-explainer/scripts/assemble-index.mjs +0 -625
- package/skills/faceless-explainer/scripts/assemble-index.test.mjs +0 -127
- package/skills/faceless-explainer/scripts/audio.mjs +0 -293
- package/skills/faceless-explainer/scripts/audio.test.mjs +0 -176
- package/skills/faceless-explainer/scripts/build-frame.mjs +0 -554
- package/skills/faceless-explainer/scripts/captions.mjs +0 -524
- package/skills/faceless-explainer/scripts/captions.test.mjs +0 -219
- package/skills/faceless-explainer/scripts/frame-packets.mjs +0 -27
- package/skills/faceless-explainer/scripts/frame-packets.test.mjs +0 -66
- package/skills/faceless-explainer/scripts/lib/assets.mjs +0 -56
- package/skills/faceless-explainer/scripts/lib/bgm-volume.mjs +0 -4
- package/skills/faceless-explainer/scripts/lib/captured-fonts.mjs +0 -58
- package/skills/faceless-explainer/scripts/lib/dimensions.mjs +0 -45
- package/skills/faceless-explainer/scripts/lib/frame-packets-core.mjs +0 -194
- package/skills/faceless-explainer/scripts/lib/pad-frame-duration.mjs +0 -36
- package/skills/faceless-explainer/scripts/lib/storyboard.mjs +0 -249
- package/skills/faceless-explainer/scripts/lib/tokens.mjs +0 -211
- package/skills/faceless-explainer/scripts/lib/transition-registry.mjs +0 -38
- package/skills/faceless-explainer/scripts/lib/transitions.json +0 -71
- package/skills/faceless-explainer/scripts/transitions.mjs +0 -384
- package/skills/faceless-explainer/scripts/transitions.test.mjs +0 -70
- package/skills/faceless-explainer/sub-agents/frame-worker.md +0 -12
- package/skills/general-video/scripts/frame-packets.mjs +0 -38
- package/skills/general-video/scripts/frame-packets.test.mjs +0 -80
- package/skills/general-video/scripts/lib/frame-packets-core.mjs +0 -194
- package/skills/general-video/sub-agents/frame-worker.md +0 -34
- package/skills/hyperframes/references/brief-contract.md +0 -108
- package/skills/hyperframes/references/brief-format.md +0 -72
- package/skills/hyperframes/references/capability-menu.md +0 -47
- package/skills/hyperframes/references/frame-worker-core.md +0 -80
- package/skills/hyperframes/references/intent-interview.md +0 -71
- package/skills/hyperframes/references/pitch-round.md +0 -40
- package/skills/hyperframes/references/production-loop.md +0 -26
- package/skills/hyperframes/references/review-loop.md +0 -37
- package/skills/hyperframes/references/route-briefs.md +0 -11
- package/skills/hyperframes/references/routes/embedded-captions.md +0 -11
- package/skills/hyperframes/references/routes/faceless-explainer.md +0 -12
- package/skills/hyperframes/references/routes/general-video.md +0 -12
- package/skills/hyperframes/references/routes/motion-graphics.md +0 -11
- package/skills/hyperframes/references/routes/music-to-video.md +0 -12
- package/skills/hyperframes/references/routes/pr-to-video.md +0 -28
- package/skills/hyperframes/references/routes/product-launch-video.md +0 -13
- package/skills/hyperframes/references/routes/remotion-to-hyperframes.md +0 -9
- package/skills/hyperframes/references/routes/slideshow.md +0 -11
- package/skills/hyperframes/references/routes/talking-head-recut.md +0 -11
- package/skills/hyperframes/references/script-format.md +0 -52
- package/skills/hyperframes/references/subagent-dispatch.md +0 -35
- package/skills/hyperframes/references/workflow-catalog.md +0 -10
- package/skills/hyperframes/scripts/lib/frame-packets-core.mjs +0 -194
- package/skills/hyperframes-animation/adapters/animate-text.md +0 -64
- package/skills/hyperframes-animation/adapters/animejs.md +0 -130
- package/skills/hyperframes-animation/adapters/css-animations.md +0 -143
- package/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +0 -199
- package/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +0 -96
- package/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +0 -129
- package/skills/hyperframes-animation/adapters/gsap.md +0 -105
- package/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +0 -507
- package/skills/hyperframes-animation/adapters/lottie.md +0 -130
- package/skills/hyperframes-animation/adapters/three.md +0 -145
- package/skills/hyperframes-animation/adapters/typegpu.md +0 -182
- package/skills/hyperframes-animation/adapters/waapi.md +0 -101
- package/skills/hyperframes-animation/blueprints/agent-progress-theater.md +0 -76
- package/skills/hyperframes-animation/blueprints/camera-journey.md +0 -61
- package/skills/hyperframes-animation/blueprints/comparison-split.md +0 -27
- package/skills/hyperframes-animation/blueprints/constellation-hub.md +0 -63
- package/skills/hyperframes-animation/blueprints/cta-morph-press.md +0 -63
- package/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +0 -89
- package/skills/hyperframes-animation/blueprints/dataviz-countup.md +0 -59
- package/skills/hyperframes-animation/blueprints/device-surface-showcase.md +0 -68
- package/skills/hyperframes-animation/blueprints/fixed-anchor-cycle.md +0 -46
- package/skills/hyperframes-animation/blueprints/grid-card-assemble.md +0 -81
- package/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +0 -133
- package/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +0 -121
- package/skills/hyperframes-animation/blueprints/overwhelm-surround.md +0 -58
- package/skills/hyperframes-animation/blueprints/panel-edit-live-sync.md +0 -73
- package/skills/hyperframes-animation/blueprints/prompt-type-submit-generate.md +0 -85
- package/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +0 -37
- package/skills/hyperframes-animation/blueprints/ticker-takeover.md +0 -29
- package/skills/hyperframes-animation/blueprints/titlecard-reveal.md +0 -80
- package/skills/hyperframes-animation/blueprints/transcript-scroll-artifact-reveal.md +0 -45
- package/skills/hyperframes-animation/blueprints/typewriter-reveal.md +0 -51
- package/skills/hyperframes-animation/blueprints/video-text-pivot.md +0 -30
- package/skills/hyperframes-animation/blueprints/zoom-out-workspace-reveal.md +0 -68
- package/skills/hyperframes-animation/blueprints-index.md +0 -202
- package/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +0 -382
- package/skills/hyperframes-animation/examples/comparison-split-cards.html +0 -649
- package/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +0 -520
- package/skills/hyperframes-animation/examples/cta-morph-press.html +0 -468
- package/skills/hyperframes-animation/examples/cta-orbit-collapse.html +0 -1298
- package/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +0 -759
- package/skills/hyperframes-animation/examples/hook-counter-burst.html +0 -729
- package/skills/hyperframes-animation/examples/messaging-multi-phrase.html +0 -352
- package/skills/hyperframes-animation/examples/metric-video-text-pivot.html +0 -779
- package/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +0 -1374
- package/skills/hyperframes-animation/examples/proof-logo-chain.html +0 -861
- package/skills/hyperframes-animation/examples/takeover-ticker-displace.html +0 -347
- package/skills/hyperframes-animation/examples/workflow-approve-press.html +0 -606
- package/skills/hyperframes-animation/references/motion-blur.md +0 -133
- package/skills/hyperframes-animation/rules/3d-camera-flight.md +0 -180
- package/skills/hyperframes-animation/rules/3d-page-scroll.md +0 -135
- package/skills/hyperframes-animation/rules/3d-text-depth-layers.md +0 -128
- package/skills/hyperframes-animation/rules/ai-tracking-box.md +0 -139
- package/skills/hyperframes-animation/rules/ambient-glow-bloom.md +0 -133
- package/skills/hyperframes-animation/rules/anchored-layout-expand.md +0 -148
- package/skills/hyperframes-animation/rules/asr-keyword-glow.md +0 -128
- package/skills/hyperframes-animation/rules/avatar-cloud-network.md +0 -145
- package/skills/hyperframes-animation/rules/camera-cursor-tracking.md +0 -133
- package/skills/hyperframes-animation/rules/card-morph-anchor.md +0 -134
- package/skills/hyperframes-animation/rules/center-outward-expansion.md +0 -88
- package/skills/hyperframes-animation/rules/chart-scrub-readout.md +0 -151
- package/skills/hyperframes-animation/rules/chromatic-glitch.md +0 -150
- package/skills/hyperframes-animation/rules/context-sensitive-cursor.md +0 -140
- package/skills/hyperframes-animation/rules/control-target-sync.md +0 -131
- package/skills/hyperframes-animation/rules/coordinate-target-zoom.md +0 -138
- package/skills/hyperframes-animation/rules/counting-dynamic-scale.md +0 -115
- package/skills/hyperframes-animation/rules/css-marker-patterns.md +0 -208
- package/skills/hyperframes-animation/rules/cursor-click-ripple.md +0 -104
- package/skills/hyperframes-animation/rules/cursor-drag.md +0 -141
- package/skills/hyperframes-animation/rules/depth-of-field-blur.md +0 -112
- package/skills/hyperframes-animation/rules/depth-scatter-assemble.md +0 -139
- package/skills/hyperframes-animation/rules/discrete-text-sequence.md +0 -146
- package/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +0 -149
- package/skills/hyperframes-animation/rules/gradient-text-sweep.md +0 -136
- package/skills/hyperframes-animation/rules/gsap-effects.md +0 -196
- package/skills/hyperframes-animation/rules/hacker-flip-3d.md +0 -123
- package/skills/hyperframes-animation/rules/kinetic-beat-slam.md +0 -137
- package/skills/hyperframes-animation/rules/motion-blur-streak.md +0 -130
- package/skills/hyperframes-animation/rules/multi-cursor-choreography.md +0 -133
- package/skills/hyperframes-animation/rules/multi-phase-camera.md +0 -129
- package/skills/hyperframes-animation/rules/nudge-curve.md +0 -47
- package/skills/hyperframes-animation/rules/orbit-3d-entry.md +0 -148
- package/skills/hyperframes-animation/rules/particle-burst.md +0 -149
- package/skills/hyperframes-animation/rules/physics-press-reaction.md +0 -101
- package/skills/hyperframes-animation/rules/press-release-spring.md +0 -108
- package/skills/hyperframes-animation/rules/reactive-displacement.md +0 -92
- package/skills/hyperframes-animation/rules/scale-swap-transition.md +0 -88
- package/skills/hyperframes-animation/rules/sine-wave-loop.md +0 -85
- package/skills/hyperframes-animation/rules/split-tilt-cards.md +0 -123
- package/skills/hyperframes-animation/rules/spring-pop-entrance.md +0 -107
- package/skills/hyperframes-animation/rules/stat-bars-and-fills.md +0 -145
- package/skills/hyperframes-animation/rules/svg-icon-enrichment.md +0 -141
- package/skills/hyperframes-animation/rules/svg-path-draw.md +0 -122
- package/skills/hyperframes-animation/rules/theme-crossfade-morph.md +0 -126
- package/skills/hyperframes-animation/rules/vertical-spring-ticker.md +0 -104
- package/skills/hyperframes-animation/rules/viewport-change.md +0 -148
- package/skills/hyperframes-animation/rules/waterfall-entry.md +0 -81
- package/skills/hyperframes-animation/rules-index.md +0 -113
- package/skills/hyperframes-animation/scripts/animation-map-sampling.mjs +0 -40
- package/skills/hyperframes-animation/scripts/animation-map-sampling.test.mjs +0 -48
- package/skills/hyperframes-animation/scripts/animation-map.mjs +0 -659
- package/skills/hyperframes-animation/scripts/animation-map.test.mjs +0 -444
- package/skills/hyperframes-animation/scripts/package-loader.mjs +0 -415
- package/skills/hyperframes-animation/scripts/package-loader.test.mjs +0 -114
- package/skills/hyperframes-animation/techniques.md +0 -507
- package/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +0 -168
- package/skills/hyperframes-animation/transitions/catalog.md +0 -127
- package/skills/hyperframes-animation/transitions/css-3d.md +0 -12
- package/skills/hyperframes-animation/transitions/css-blur.md +0 -51
- package/skills/hyperframes-animation/transitions/css-cover.md +0 -43
- package/skills/hyperframes-animation/transitions/css-destruction.md +0 -95
- package/skills/hyperframes-animation/transitions/css-dissolve.md +0 -66
- package/skills/hyperframes-animation/transitions/css-distortion.md +0 -45
- package/skills/hyperframes-animation/transitions/css-grid.md +0 -10
- package/skills/hyperframes-animation/transitions/css-light.md +0 -49
- package/skills/hyperframes-animation/transitions/css-mechanical.md +0 -30
- package/skills/hyperframes-animation/transitions/css-other.md +0 -25
- package/skills/hyperframes-animation/transitions/css-push.md +0 -41
- package/skills/hyperframes-animation/transitions/css-radial.md +0 -37
- package/skills/hyperframes-animation/transitions/css-scale.md +0 -24
- package/skills/hyperframes-animation/transitions/overview.md +0 -153
- package/skills/hyperframes-audio/references/attributes.md +0 -138
- package/skills/hyperframes-audio/references/diagnosis.md +0 -276
- package/skills/hyperframes-audio/references/fx-registry.md +0 -84
- package/skills/hyperframes-audio/references/presets.md +0 -216
- package/skills/hyperframes-core/references/composition-patterns.md +0 -224
- package/skills/hyperframes-core/references/creator-editing-recipes.md +0 -491
- package/skills/hyperframes-core/references/data-attributes.md +0 -78
- package/skills/hyperframes-core/references/determinism-rules.md +0 -53
- package/skills/hyperframes-core/references/full-screen-motion.md +0 -67
- package/skills/hyperframes-core/references/minimal-composition.md +0 -69
- package/skills/hyperframes-core/references/sub-compositions.md +0 -176
- package/skills/hyperframes-core/references/tailwind.md +0 -104
- package/skills/hyperframes-core/references/tracks-and-clips.md +0 -87
- package/skills/hyperframes-core/references/variables-and-media.md +0 -107
- package/skills/hyperframes-creative/palettes/bold-energetic.md +0 -14
- package/skills/hyperframes-creative/palettes/clean-corporate.md +0 -14
- package/skills/hyperframes-creative/palettes/dark-premium.md +0 -14
- package/skills/hyperframes-creative/palettes/jewel-rich.md +0 -14
- package/skills/hyperframes-creative/palettes/monochrome.md +0 -14
- package/skills/hyperframes-creative/palettes/nature-earth.md +0 -14
- package/skills/hyperframes-creative/palettes/neon-electric.md +0 -14
- package/skills/hyperframes-creative/palettes/pastel-soft.md +0 -14
- package/skills/hyperframes-creative/palettes/warm-editorial.md +0 -14
- package/skills/hyperframes-creative/references/audio-reactive.md +0 -76
- package/skills/hyperframes-creative/references/beat-direction.md +0 -164
- package/skills/hyperframes-creative/references/composition-patterns.md +0 -199
- package/skills/hyperframes-creative/references/data-in-motion.md +0 -19
- package/skills/hyperframes-creative/references/design-adherence.md +0 -19
- package/skills/hyperframes-creative/references/design-picker.md +0 -123
- package/skills/hyperframes-creative/references/design-spec.md +0 -55
- package/skills/hyperframes-creative/references/house-style.md +0 -73
- package/skills/hyperframes-creative/references/motion-principles.md +0 -151
- package/skills/hyperframes-creative/references/narration.md +0 -92
- package/skills/hyperframes-creative/references/prompt-expansion.md +0 -68
- package/skills/hyperframes-creative/references/story-spine.md +0 -45
- package/skills/hyperframes-creative/references/storyboard-recipe.md +0 -57
- package/skills/hyperframes-creative/references/typography.md +0 -218
- package/skills/hyperframes-creative/references/video-composition.md +0 -63
- package/skills/hyperframes-creative/references/visual-styles.md +0 -457
- package/skills/hyperframes-creative/scripts/contrast-report.mjs +0 -538
- package/skills/hyperframes-creative/scripts/package-loader.mjs +0 -415
- package/skills/hyperframes-creative/scripts/package-loader.test.mjs +0 -114
- package/skills/hyperframes-creative/templates/design-picker.html +0 -1432
- package/skills/hyperframes-keyframes/agents/openai.yaml +0 -4
- package/skills/hyperframes-keyframes/references/keyframe-patterns.md +0 -108
- package/skills/motion-graphics/agents/builder.md +0 -41
- package/skills/motion-graphics/agents/director.md +0 -54
- package/skills/motion-graphics/agents/finalize.md +0 -17
- package/skills/motion-graphics/catalog-map.md +0 -52
- package/skills/motion-graphics/categories/asset-fusion/module.md +0 -37
- package/skills/motion-graphics/categories/charts/module.md +0 -22
- package/skills/motion-graphics/categories/kinetic-type/module.md +0 -19
- package/skills/motion-graphics/categories/logo-reveal/module.md +0 -17
- package/skills/motion-graphics/categories/lower-thirds/module.md +0 -20
- package/skills/motion-graphics/categories/maps/module.md +0 -61
- package/skills/motion-graphics/categories/news/module.md +0 -56
- package/skills/motion-graphics/categories/stat/module.md +0 -21
- package/skills/motion-graphics/categories/tweet/module.md +0 -16
- package/skills/motion-graphics/categories/webpage/module.md +0 -30
- package/skills/motion-graphics/grounding/PROTOCOL.md +0 -64
- package/skills/motion-graphics/phases/source/guide.md +0 -21
- package/skills/motion-graphics/references/builder-contract.md +0 -38
- package/skills/motion-graphics/references/motion-vocabulary.md +0 -47
- package/skills/motion-graphics/references/shot-plan-ir.md +0 -54
- package/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +0 -306
- package/skills/music-to-video/references/frame-skeleton.md +0 -100
- package/skills/music-to-video/references/montage.md +0 -55
- package/skills/music-to-video/references/motion-primitive-catalog.md +0 -75
- package/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/3d-card-flip/scene.html +0 -119
- package/skills/music-to-video/references/motion-primitives/assets/gsap.min.js +0 -11
- package/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/bg-flow-field/scene.html +0 -294
- package/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +0 -54
- package/skills/music-to-video/references/motion-primitives/binary-decrypt/scene.html +0 -85
- package/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/blur-resolve/scene.html +0 -60
- package/skills/music-to-video/references/motion-primitives/braam-punch/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/braam-punch/scene.html +0 -100
- package/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/chromatic-split/scene.html +0 -111
- package/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/chrome-sweep/scene.html +0 -68
- package/skills/music-to-video/references/motion-primitives/counting-punch/index.html +0 -54
- package/skills/music-to-video/references/motion-primitives/counting-punch/scene.html +0 -119
- package/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/crash-zoom-in/scene.html +0 -120
- package/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +0 -55
- package/skills/music-to-video/references/motion-primitives/datamosh-smear/scene.html +0 -131
- package/skills/music-to-video/references/motion-primitives/directional-fill/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/directional-fill/scene.html +0 -103
- package/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/dolly-zoom/scene.html +0 -102
- package/skills/music-to-video/references/motion-primitives/electric-arc/index.html +0 -54
- package/skills/music-to-video/references/motion-primitives/electric-arc/scene.html +0 -105
- package/skills/music-to-video/references/motion-primitives/flash-cut/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/flash-cut/scene.html +0 -97
- package/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +0 -54
- package/skills/music-to-video/references/motion-primitives/gooey-metaball/scene.html +0 -206
- package/skills/music-to-video/references/motion-primitives/hard-cut/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/hard-cut/scene.html +0 -82
- package/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/hypercut-whip/scene.html +0 -44
- package/skills/music-to-video/references/motion-primitives/iris-open/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/iris-open/scene.html +0 -69
- package/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/kinetic-letter-in/scene.html +0 -64
- package/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/liquid-morph/scene.html +0 -96
- package/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/mask-reveal/scene.html +0 -74
- package/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/mosaic-pack/scene.html +0 -89
- package/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/neon-flicker/scene.html +0 -73
- package/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/outline-to-fill/scene.html +0 -82
- package/skills/music-to-video/references/motion-primitives/palette-flip/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/palette-flip/scene.html +0 -97
- package/skills/music-to-video/references/motion-primitives/particle-burst/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/particle-burst/scene.html +0 -106
- package/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/pixel-dissolve/scene.html +0 -86
- package/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/radial-burst-lines/scene.html +0 -130
- package/skills/music-to-video/references/motion-primitives/screen-shake/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/screen-shake/scene.html +0 -78
- package/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/slot-machine-reveal/scene.html +0 -100
- package/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/spotlight-sweep/scene.html +0 -102
- package/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/staggered-exit/scene.html +0 -82
- package/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +0 -42
- package/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/text-spectral-rays/scene.html +0 -280
- package/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +0 -54
- package/skills/music-to-video/references/motion-primitives/text-wave-distort/scene.html +0 -106
- package/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/tile-mosaic/scene.html +0 -109
- package/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/typewriter-reveal/scene.html +0 -91
- package/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +0 -53
- package/skills/music-to-video/references/motion-primitives/word-grid-burst/scene.html +0 -96
- package/skills/music-to-video/references/planning.md +0 -104
- package/skills/music-to-video/references/storyboard-format.md +0 -94
- package/skills/music-to-video/references/template-catalog.md +0 -106
- package/skills/music-to-video/references/templates/card-flyby/index.html +0 -527
- package/skills/music-to-video/references/templates/card-flyby/program.json +0 -13
- package/skills/music-to-video/references/templates/held-message-living-field/index.html +0 -485
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/asphalt-031.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bark-014.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/brick.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-075-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-101.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-102.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/bricks-104.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/carpet.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-034.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-042-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-046.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete-047-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/concrete.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/diamond-plate-009.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/fabric-080.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/fabric-083.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/grass-001.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/grass-004.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/grass-005.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-037.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-054.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-068.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-080.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-103.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/ground-104.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/lava.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/leather-037.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/marble-012.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/marble-016.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-032.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-038.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-041-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-046-b.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-048-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-049-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-055-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal-061-b.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/metal.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/onyx.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/painted-plaster-017.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/paving-stones-138.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/paving-stones-150.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/plaster-001.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-007.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-008-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-009-c.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-012-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-012-b.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/road-013-a.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/rock-058.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/rock-063.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/rock.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/snow-015.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/snow.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/tiles-138.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/travertine-009.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-049.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-051.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-058.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-066.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-092.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-094.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-floor-051.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-floor-064.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood-floor-070.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/assets/texture-mask-text/masks/wood.png +0 -0
- package/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +0 -302
- package/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +0 -610
- package/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +0 -41
- package/skills/music-to-video/references/templates/logo-split-lockup-pulse/assets/fredoka-700.woff2 +0 -0
- package/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +0 -596
- package/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +0 -589
- package/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +0 -25
- package/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +0 -267
- package/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +0 -594
- package/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +0 -39
- package/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +0 -238
- package/skills/music-to-video/scripts/analyze-beatgrid.py +0 -542
- package/skills/music-to-video/scripts/assemble-index.mjs +0 -220
- package/skills/music-to-video/scripts/lib/storyboard.mjs +0 -249
- package/skills/music-to-video/scripts/stage-assets.mjs +0 -58
- package/skills/music-to-video/scripts/validate-plan.mjs +0 -161
- package/skills/music-to-video/sub-agents/frame-worker.md +0 -49
- package/skills/pr-to-video/references/code-vocabulary.md +0 -113
- package/skills/pr-to-video/references/cut-catalog.md +0 -215
- package/skills/pr-to-video/references/motion-language.md +0 -156
- package/skills/pr-to-video/references/story-design.md +0 -230
- package/skills/pr-to-video/references/visual-design.md +0 -164
- package/skills/pr-to-video/scripts/assemble-index.mjs +0 -631
- package/skills/pr-to-video/scripts/assemble-index.test.mjs +0 -130
- package/skills/pr-to-video/scripts/audio.mjs +0 -293
- package/skills/pr-to-video/scripts/build-frame.mjs +0 -589
- package/skills/pr-to-video/scripts/captions.mjs +0 -524
- package/skills/pr-to-video/scripts/captions.test.mjs +0 -260
- package/skills/pr-to-video/scripts/fetch-people-avatars.mjs +0 -157
- package/skills/pr-to-video/scripts/fetch-pr.mjs +0 -234
- package/skills/pr-to-video/scripts/frame-contract.test.mjs +0 -209
- package/skills/pr-to-video/scripts/frame-packets.mjs +0 -62
- package/skills/pr-to-video/scripts/ingest.mjs +0 -561
- package/skills/pr-to-video/scripts/lib/assets.mjs +0 -56
- package/skills/pr-to-video/scripts/lib/bgm-volume.mjs +0 -4
- package/skills/pr-to-video/scripts/lib/captured-fonts.mjs +0 -58
- package/skills/pr-to-video/scripts/lib/dimensions.mjs +0 -45
- package/skills/pr-to-video/scripts/lib/frame-contract.mjs +0 -54
- package/skills/pr-to-video/scripts/lib/frame-packets-core.mjs +0 -194
- package/skills/pr-to-video/scripts/lib/pad-frame-duration.mjs +0 -36
- package/skills/pr-to-video/scripts/lib/storyboard.mjs +0 -249
- package/skills/pr-to-video/scripts/lib/tokens.mjs +0 -211
- package/skills/pr-to-video/scripts/lib/transition-registry.mjs +0 -38
- package/skills/pr-to-video/scripts/lib/transitions.json +0 -71
- package/skills/pr-to-video/scripts/preflight.mjs +0 -51
- package/skills/pr-to-video/scripts/project-dir.mjs +0 -92
- package/skills/pr-to-video/scripts/transitions.mjs +0 -383
- package/skills/pr-to-video/scripts/workflow-guardrails.test.mjs +0 -198
- package/skills/pr-to-video/sub-agents/frame-worker.md +0 -38
- package/skills/product-launch-video/references/cut-catalog.md +0 -220
- package/skills/product-launch-video/references/motion-language.md +0 -156
- package/skills/product-launch-video/references/story-design.md +0 -508
- package/skills/product-launch-video/references/visual-design.md +0 -126
- package/skills/product-launch-video/scripts/assemble-index.mjs +0 -773
- package/skills/product-launch-video/scripts/assemble-index.test.mjs +0 -127
- package/skills/product-launch-video/scripts/audio.mjs +0 -293
- package/skills/product-launch-video/scripts/audio.test.mjs +0 -234
- package/skills/product-launch-video/scripts/build-frame-subsets.test.mjs +0 -152
- package/skills/product-launch-video/scripts/build-frame.mjs +0 -552
- package/skills/product-launch-video/scripts/captions.mjs +0 -524
- package/skills/product-launch-video/scripts/captions.test.mjs +0 -219
- package/skills/product-launch-video/scripts/capture-skill-guardrails.test.mjs +0 -39
- package/skills/product-launch-video/scripts/frame-packets.mjs +0 -27
- package/skills/product-launch-video/scripts/frame-packets.test.mjs +0 -144
- package/skills/product-launch-video/scripts/lib/assets.mjs +0 -56
- package/skills/product-launch-video/scripts/lib/bgm-volume.mjs +0 -4
- package/skills/product-launch-video/scripts/lib/captured-fonts.mjs +0 -58
- package/skills/product-launch-video/scripts/lib/dimensions.mjs +0 -45
- package/skills/product-launch-video/scripts/lib/frame-packets-core.mjs +0 -194
- package/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +0 -36
- package/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +0 -76
- package/skills/product-launch-video/scripts/lib/storyboard.mjs +0 -249
- package/skills/product-launch-video/scripts/lib/tokens.mjs +0 -218
- package/skills/product-launch-video/scripts/lib/tokens.test.mjs +0 -57
- package/skills/product-launch-video/scripts/lib/transition-registry.mjs +0 -38
- package/skills/product-launch-video/scripts/lib/transitions.json +0 -71
- package/skills/product-launch-video/scripts/media-contract.test.mjs +0 -200
- package/skills/product-launch-video/scripts/stage-assets.mjs +0 -39
- package/skills/product-launch-video/scripts/stage-assets.test.mjs +0 -52
- package/skills/product-launch-video/scripts/transitions.mjs +0 -383
- package/skills/product-launch-video/scripts/transitions.test.mjs +0 -68
- package/skills/product-launch-video/sub-agents/frame-worker.md +0 -21
- package/skills/talking-head-recut/NOTICE.md +0 -39
- package/skills/talking-head-recut/assets/fonts/Caveat-400-latin.woff2 +0 -0
- package/skills/talking-head-recut/assets/fonts/Caveat-700-latin.woff2 +0 -0
- package/skills/talking-head-recut/assets/fonts/Inter-400-latin.woff2 +0 -0
- package/skills/talking-head-recut/assets/fonts/Inter-700-latin.woff2 +0 -0
- package/skills/talking-head-recut/assets/fonts/LXGWWenKaiTC-400-latin.woff2 +0 -0
- package/skills/talking-head-recut/assets/fonts/Virgil.woff2 +0 -0
- package/skills/talking-head-recut/assets/vendor/gsap.min.js +0 -10
- package/skills/talking-head-recut/media-contract.test.mjs +0 -35
- package/skills/talking-head-recut/references/DESIGN_INDEX.md +0 -145
- package/skills/talking-head-recut/references/frames/clean.html +0 -92
- package/skills/talking-head-recut/references/frames/hairline.html +0 -171
- package/skills/talking-head-recut/references/frames/polaroid.html +0 -131
- package/skills/talking-head-recut/references/layouts/overlay.html +0 -164
- package/skills/talking-head-recut/references/layouts/pip.html +0 -143
- package/skills/talking-head-recut/references/layouts/split.html +0 -121
- package/skills/talking-head-recut/references/layouts/stack.html +0 -109
- package/skills/talking-head-recut/references/styles/academic.html +0 -172
- package/skills/talking-head-recut/references/styles/audit.html +0 -170
- package/skills/talking-head-recut/references/styles/editorial.html +0 -189
- package/skills/talking-head-recut/references/styles/geom.html +0 -181
- package/skills/talking-head-recut/references/styles/minimal.html +0 -130
- package/skills/talking-head-recut/references/styles/spotlight.html +0 -142
- package/skills/talking-head-recut/references/styles/swiss.html +0 -188
- package/skills/talking-head-recut/references/styles/terminal.html +0 -196
- package/skills/talking-head-recut/references/styles/whiteboard.html +0 -170
- package/skills/talking-head-recut/references/styles/xhs.html +0 -206
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/biennale-yellow/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/biennale-yellow/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/blockframe/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/blockframe/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/blue-professional/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/blue-professional/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/bold-poster/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/bold-poster/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/broadside/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/broadside/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/capsule/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/capsule/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/cartesian/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/cartesian/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/cobalt-grid/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/cobalt-grid/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/EBGaramond-400.woff2 +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/EBGaramond-700.woff2 +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/Inter-400.woff2 +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/Inter-700.woff2 +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/JetBrainsMono-400.woff2 +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/JetBrainsMono-700.woff2 +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/OFL-inter.txt +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/code-editorial/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/coral/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/coral/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/creative-mode/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/creative-mode/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/daisy-days/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/daisy-days/frame-showcase.html +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/editorial-forest/FRAME.md +0 -0
- /package/skills/{hyperframes-creative → hyperframes/assets}/frame-presets/editorial-forest/frame-showcase.html +0 -0
- /package/skills/{hyperframes-audio → media-use/audio}/scripts/carve.test.mjs +0 -0
- /package/skills/{hyperframes-creative → media-use/audio}/scripts/extract-audio-data.py +0 -0
|
@@ -30,7 +30,7 @@ Lints `index.html` and all files in `compositions/`. Reports errors (must fix),
|
|
|
30
30
|
```bash
|
|
31
31
|
npx hyperframes check # current directory: the full browser gate
|
|
32
32
|
npx hyperframes check ./my-project # specific project
|
|
33
|
-
npx hyperframes check --json # agent-readable envelope {ok, lint, runtime, layout, motion, contrast, hdr, snapshots}
|
|
33
|
+
npx hyperframes check --json # agent-readable envelope {ok, browserSkipped, lint, runtime, layout, motion, contrast, craft, hdr, snapshots}
|
|
34
34
|
npx hyperframes check --snapshots # also write overview frames (annotated) + per-finding crops
|
|
35
35
|
npx hyperframes check --samples 15 # denser timeline sweep (default 9)
|
|
36
36
|
npx hyperframes check --at 1.5,4,7.25 # explicit hero-frame timestamps
|
|
@@ -41,16 +41,22 @@ npx hyperframes check --no-contrast # skip the WCAG audit while iterating
|
|
|
41
41
|
npx hyperframes check --strict # exit non-zero on warnings too (default: only errors)
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
One command, one Chrome boot. `check` runs the linter first and skips the browser entirely when lint reports errors.
|
|
44
|
+
One command, one Chrome boot. `check` runs the linter first and skips the browser entirely when lint reports errors. When the browser never ran (lint errors, a linter crash, or a browser launch failure), `browserSkipped` is `true` and the `layout`, `motion` and `contrast` sections are empty, not clean. Otherwise it loads the bundled composition once, wires runtime listeners before navigation, and sweeps one seek grid running every audit per sample:
|
|
45
45
|
|
|
46
46
|
- **Runtime**: JavaScript console errors, unhandled exceptions, failed network requests (media-file `ERR_ABORTED` filtered out), HTTP 4xx/5xx.
|
|
47
|
-
- **Layout**: text extending outside its container or the canvas, text clipped by its own box, held text overlaps and occlusion (with an approximate covered fraction), children escaping clipping containers.
|
|
47
|
+
- **Layout**: text extending outside its container or the canvas, text clipped by its own box, held text overlaps and occlusion (with an approximate covered fraction), children escaping clipping containers. Text under a transparent `<video>` (a `remove-background` cutout) is measured per word against the frame's alpha: partial cover is info with the share hidden, a word 80% hidden or two neighbouring words each half hidden is an error, and a frame that cannot be read falls back to opaque with a `video_alpha_unread` note.
|
|
48
48
|
- **Motion**: `*.motion.json` sidecar assertions against the same seeked timeline (see below).
|
|
49
49
|
- **Contrast**: WCAG AA on visible text, sampled at 5 grid points. Failures are **errors** and each finding carries the sampled fg/bg colors, measured vs required ratio, and a suggested compliant color in the same palette direction, so most contrast fixes need no screenshot at all.
|
|
50
|
+
- **Craft**: warnings only, even under `--strict` (a film may break one on purpose), measured on an 8 fps sweep of the whole film and skipped under `--range`. Each message names the fix and the reference to read.
|
|
51
|
+
- `line_unread`: a reading-size line (≥ 30 px tall at 1080) on screen under its floor: 0.4 s for 1–2 words, otherwise ¾ of 0.5 s + 0.3 s a word (3 words 1.05 s, 6 words 1.73 s); the film's last line needs 2 s. Edges are re-measured to ~0.01 s. Captions-track text and `data-layout-ignore` are exempt.
|
|
52
|
+
- `dead_stretch`: more than 3 s where the `keepsMoving` classifier sees nothing change. The final 3 s and any time a `data-hold` element is on screen are exempt; it stays quiet when `sweep_static` fires or a whole-composition `keepsMoving` assertion sets the limit.
|
|
53
|
+
- `text_below_floor`: text under 2.6% of the frame's short side (28 px on 1080) held 0.5 s or more, one finding per file listing every element.
|
|
54
|
+
- `first_frame_empty`: frame 0 paints nothing but the background (no text, image, video, canvas or svg); it is the thumbnail on social players.
|
|
55
|
+
- `film_silent`: a film over 15 s with no unmuted `<audio>` or audible `<video>`.
|
|
50
56
|
|
|
51
57
|
Every finding carries a selector, the element's `data-*` identity, the composition source file, a bbox, and the sample time: jump straight from the JSON to the HTML you must edit and re-run.
|
|
52
58
|
|
|
53
|
-
**Severity is persistence-aware.** A dynamic issue observed at a single grid sample (an entrance/exit transient) demotes to info and never gates. Issues held across samples gate the exit code, a held `content_overlap` is an error, and a held, partially-visible `canvas_overflow` breaching ≥5% of the canvas promotes to warning. Coordinate-frame findings (`escaped_container`, `panel_out_of_canvas`, `connector_detached`) flag geometry computed in one frame but rendered in another — an element far outside its offset parent, a painted panel stuck across the canvas edge, a connector line detached from every node. Text drawn into a `<canvas>` has no DOM box, so `canvas_overflow` cannot see it; `canvas_content_at_edge` warns when a canvas's pixels show sharp content (drawn text, hard shapes) along the frame edge — mark intentional full-bleed art (particles, photos) with `data-layout-allow-overflow`. If a 3s+ composition shows
|
|
59
|
+
**Severity is persistence-aware.** A dynamic issue observed at a single grid sample (an entrance/exit transient) demotes to info and never gates. Issues held across samples gate the exit code, a held `content_overlap` is an error, and a held, partially-visible `canvas_overflow` breaching ≥5% of the canvas promotes to warning. Coordinate-frame findings (`escaped_container`, `panel_out_of_canvas`, `connector_detached`) flag geometry computed in one frame but rendered in another — an element far outside its offset parent, a painted panel stuck across the canvas edge, a connector line detached from every node. Text drawn into a `<canvas>` has no DOM box, so `canvas_overflow` cannot see it; `canvas_content_at_edge` warns when a canvas's pixels show sharp content (drawn text, hard shapes) along the frame edge — mark intentional full-bleed art (particles, photos) with `data-layout-allow-overflow`. If a 3s+ composition shows no visible change across every sample, `check` fails with `sweep_static`: a frame that never changes while a GSAP timeline or tween, or a CSS or Web animation, holds the same time without ever finishing means the seek is not driving the page, so it refuses to pass. Any other frame that never changes (a still title card, an audio-only advance) is a warning that `--strict` fails; a composition meant to be still can take `data-no-timeline` on its root to skip it. The fingerprint includes per-element opacity, so opacity-only reveals (code typing, staggered fades) count as motion — but only while they're still in flight at the sampled times. The classic trap is a reveal that completes early and then holds a static frame for the rest of the duration: every sample lands on the settled state and check warns that nothing on screen moved (`--strict` fails it). Spread the reveal across the timeline or give the hold a real next action (the cursor heading to the next control, the camera's next move); don't bolt on a slow drift, a blinking caret or a loop just to appease the check.
|
|
54
60
|
|
|
55
61
|
**Escape hatches** (mark intent in the HTML, then re-run):
|
|
56
62
|
|
|
@@ -59,6 +65,7 @@ Every finding carries a selector, the element's `data-*` identity, the compositi
|
|
|
59
65
|
- `data-layout-allow-occlusion` — an element is meant to cover text.
|
|
60
66
|
- `data-layout-allow-caption-zone` — intentional lower-third / caption-band copy under `--caption-zone`. Applies to the marked element and every descendant (`closest`); silences only `caption_zone_collision` (not overflow/overlap/occlusion). Prefer the narrowest wrapper that owns the intentional band copy.
|
|
61
67
|
- `data-layout-ignore` — decorative element that should never be audited.
|
|
68
|
+
- `data-hold` — deliberate stillness: while this element is on screen, `dead_stretch` does not count the time.
|
|
62
69
|
|
|
63
70
|
**Opt-in pipeline gates** (used by orchestrators; off by default):
|
|
64
71
|
|
|
@@ -89,12 +96,12 @@ Drop a `*.motion.json` sidecar next to the composition (matching the html basena
|
|
|
89
96
|
}
|
|
90
97
|
```
|
|
91
98
|
|
|
92
|
-
| Assertion | Fails (code) when
|
|
93
|
-
| ------------------------------ |
|
|
94
|
-
| `appearsBy(selector, bySec)` | not visible (opacity ≥ 0.5) by `bySec` — `motion_appears_late`
|
|
95
|
-
| `before(a, b)` | `a` does not first appear strictly before `b` — `motion_out_of_order`
|
|
96
|
-
| `staysInFrame(selector)` | once visible, its box leaves the canvas — `motion_off_frame`
|
|
97
|
-
| `keepsMoving(withinSelector?)` | a fully-static window exceeds `maxStaticSec` (default 2s) — `motion_frozen` |
|
|
99
|
+
| Assertion | Fails (code) when |
|
|
100
|
+
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
|
|
101
|
+
| `appearsBy(selector, bySec)` | not visible (opacity ≥ 0.5) by `bySec` — `motion_appears_late` |
|
|
102
|
+
| `before(a, b)` | `a` does not first appear strictly before `b` — `motion_out_of_order` |
|
|
103
|
+
| `staysInFrame(selector)` | once visible, its box leaves the canvas — `motion_off_frame` |
|
|
104
|
+
| `keepsMoving(withinSelector?)` | a fully-static window exceeds `maxStaticSec` (default 2s); the film's final 3 s (an end card) never count — `motion_frozen` |
|
|
98
105
|
|
|
99
106
|
`duration`, `withinSelector`, and `maxStaticSec` are optional. Findings are **errors by default** and appear in the same human and `--json` output as layout findings. A selector that matches nothing is reported as `motion_selector_missing` rather than silently passing — a typo'd selector fails loudly. Use this in the feedback loop instead of eyeballing the render: assert what the motion is supposed to do, and let `check` tell you when the seek diverges from intent.
|
|
100
107
|
|
|
@@ -104,9 +111,25 @@ Drop a `*.motion.json` sidecar next to the composition (matching the html basena
|
|
|
104
111
|
npx hyperframes snapshot # 5 key frames as PNG
|
|
105
112
|
npx hyperframes snapshot ./my-project # specific project
|
|
106
113
|
npx hyperframes snapshot --frames 10 # evenly-spaced N frames
|
|
114
|
+
npx hyperframes snapshot --range 3,5 --frames 8 # 8 frames within root-timeline seconds 3–5
|
|
115
|
+
npx hyperframes snapshot --composition intro --frames 8 # 8 frames within this data-composition-id
|
|
116
|
+
npx hyperframes snapshot --review # beat sheet, seam strips, phone sheet
|
|
117
|
+
npx hyperframes snapshot --review --json # same, with paths and times as JSON
|
|
107
118
|
```
|
|
108
119
|
|
|
109
|
-
|
|
120
|
+
Still PNGs. Each run writes `.hyperframes/artifacts/snapshots/<id>/` unless `--output` is set. `snapshot` is the standalone capture; `check --snapshots` is the gate.
|
|
121
|
+
|
|
122
|
+
One of `--at`, `--range START,END` (seconds), or `--composition <data-composition-id>` (not a CSS selector). `--frames` defaults to 5. Range and composition sample just before the end and add no extra end frame; `--at` adds one unless `--no-end`.
|
|
123
|
+
|
|
124
|
+
`--review` picks the frames that show a film over time. Scenes are the composition's top-level timed clips and sub-composition hosts, as `timeline` lists them (captions and audio excluded); `--composition` scopes to one. It writes `review-beats.jpg` (each scene at its start + 0.3 s and at its middle, and each timed `data-beat="name"` element at its start + 0.3 s, labelled with time and id), `review-seam-NN.jpg` (frames at −0.2, −0.1, 0, +0.1, +0.2 s around every cut) and `review-phone.jpg` (the beat frames 360 px wide, to judge legibility at phone size), beside the `beat-*.png` and `seam-*.png` stills. With fewer than two scenes the beats spread evenly. `--json` prints `{ok, outputDir, frames[{path,time,role,label}], contactSheets, review{window, scenes, beats, seams[{time,from,to,times,paths,sheet}], sheets, notes}}`.
|
|
125
|
+
|
|
126
|
+
### Keep verification clean and inspect the actual pixels
|
|
127
|
+
|
|
128
|
+
Inspect full-resolution frames in the opening 30 seconds, each mounted scene, and every reported problem interval. Contact sheets locate moments; use close-ups to judge thin edges, glass, particles, and WebGL geometry. Check the live preview and decoded render at matching times. Canvas shader defects can survive a successful DOM/layout audit. Record the browser/GPU and capture path when results differ across machines; isolate the failing material or pass before changing rendering defaults.
|
|
129
|
+
|
|
130
|
+
Managed snapshot storage keeps the newest 10 run folders, the newest evidence for the current revision and retained rendered revisions, and the latest snapshot. Live captures and folders younger than 24 hours are also preserved. Automatic cleanup removes whole eligible old UUID folders, including contact sheets and descriptions; arbitrary `--output` folders are untouched. Save intentional before/after evidence outside this managed storage.
|
|
131
|
+
|
|
132
|
+
For disposable checks, allocate a temporary output folder and remove that folder after inspecting it. Use `hyperframes clean --dry-run` to inspect broader cleanup. `clean --snapshots` explicitly discards snapshot evidence; use it only when that evidence is no longer needed. Never recommend removing all of `.hyperframes`, which also contains project history and other state.
|
|
110
133
|
|
|
111
134
|
### Zooming into a reported finding
|
|
112
135
|
|
|
@@ -99,7 +99,7 @@ Validation runs before any server boots, so an invalid value exits cleanly witho
|
|
|
99
99
|
|
|
100
100
|
## render
|
|
101
101
|
|
|
102
|
-
> Render
|
|
102
|
+
> Render after the user has reviewed in `preview` and approved, or when they asked for the file or to work without stopping. Passing checks alone is not a reason to render.
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
npx hyperframes render # standard MP4 from cwd
|
|
@@ -120,7 +120,7 @@ npx hyperframes render --docker # byte-identical
|
|
|
120
120
|
| `dir` (positional) | path | cwd | Project directory. Omit to use current working directory. |
|
|
121
121
|
| `--composition`, `-c` | path to composition file | `index.html` | Render a specific composition file (e.g. `compositions/intro.html`) instead of the project's `index.html`. |
|
|
122
122
|
| `--output`, `-o` | path | `renders/<project>_<ts>.<ext>` | Output path. Default is timestamped (`<project-name>_YYYY-MM-DD_HH-MM-SS.<ext>`). |
|
|
123
|
-
| `--fps` |
|
|
123
|
+
| `--fps` | 1–240, or a rational such as `30000/1001` | root `data-fps`, else 30 | 60fps doubles render time. `lambda` and `cloudrun` accept only 24, 25, 30, 60 |
|
|
124
124
|
| `--quality` | draft, looks, delivery, standard, high | looks | `looks` is CRF 16 on the standard preset. `delivery` is `high`. draft for iterating |
|
|
125
125
|
| `--format` | mp4, webm, mov, gif, png-sequence, hls | mp4 | WebM/MOV render with transparency; gif for inline autoplay in GitHub PRs/READMEs/docs (two-pass palette encode, fps capped at 30 — prefer `--fps 15` — no audio, 1-bit transparency only, HDR falls back to SDR); png-sequence writes RGBA frames to a directory (AE/Nuke/Fusion ingest); hls writes an HLS VOD directory (master.m3u8 + video/audio playlists + MPEG-TS segments), SDR only, rejects `--gpu`, unavailable on lambda/cloudrun |
|
|
126
126
|
| `--gif-loop` | 0-65535 | 0 | GIF loop count; `0` loops forever. Only with `--format gif`. |
|
|
@@ -128,6 +128,9 @@ npx hyperframes render --docker # byte-identical
|
|
|
128
128
|
| `--resolution` | landscape, portrait, landscape-4k, portrait-4k, square, square-4k (+ aliases `1080p`, `4k`, `uhd`) | — | Supersample via Chrome `deviceScaleFactor`. Aspect ratio must match composition; scale must be an integer. Not with `--hdr`. |
|
|
129
129
|
| `--crf` | 0-51 | — | Encoder CRF (lower = higher quality). Mutually exclusive with `--video-bitrate`. |
|
|
130
130
|
| `--video-bitrate` | e.g. `10M`, `5000k` | — | Target bitrate. Mutually exclusive with `--crf`. |
|
|
131
|
+
| `--keyframe-interval` | seconds, e.g. `2` | — | MP4 only. A keyframe at least every N seconds. |
|
|
132
|
+
| `--max-bitrate` | e.g. `8M` | — | MP4 only. Peak bitrate cap alongside the CRF/quality target. Not for WebM/MOV. |
|
|
133
|
+
| `--buffer-size` | e.g. `16M` | — | MP4 only. Buffer for `--max-bitrate` (default 2x it). Needs `--max-bitrate`. |
|
|
131
134
|
| `--hdr` | flag | off | Force HDR output even with SDR sources. MP4 only. |
|
|
132
135
|
| `--sdr` | flag | off | Force SDR even with HDR sources. |
|
|
133
136
|
| `--workers` | number or `auto` | auto | Each worker spawns Chrome (~256 MB) |
|
|
@@ -146,7 +149,7 @@ npx hyperframes render --docker # byte-identical
|
|
|
146
149
|
|
|
147
150
|
**Read the summary's second line.** After the output path and size, `render` prints the capture path, GPU mode, and per-stage timings, e.g. `beginframe capture · software gpu · compile 0.7s · setup 1.1s · capture 8.1s · encode 5.8s`. `capture` is the frame loop and `setup` is calibration plus session init; the capture path reads `a|b` when parallel workers diverged, and `encode (during capture)` means the streaming encoder overlapped the loop, so do not add it to the wall time. Local GPU `auto` (the default) requests BeginFrame. If the line still says `screenshot capture` with `software gpu` on Linux, a hint under it says BeginFrame did not run (needs chrome-headless-shell, no `--resolution` upscale). It only appears when the GPU was auto-probed, never under `--docker` or `--no-browser-gpu`, where software GL is the point. Heavy compositions can stall on software GL. Do not reach for `--debug` just to learn which path ran.
|
|
148
151
|
|
|
149
|
-
**Parametrized renders:** the composition declares its variables on the `<html>` root with **`data-composition-variables`** — a JSON **array of declarations** (`{id, type, label, default}` per entry) that defines the schema. Scripts inside read the resolved values via `window.__hyperframes.getVariables()`. The CLI `--variables '{"title":"Q4 Report"}'` is a JSON **object keyed by id** that overrides those declared defaults for one render; missing keys fall through, so the same composition runs unchanged in dev preview and in production. Sub-comp hosts can also override per-instance with `data-variable-values`. See
|
|
152
|
+
**Parametrized renders:** the composition declares its variables on the `<html>` root with **`data-composition-variables`** — a JSON **array of declarations** (`{id, type, label, default}` per entry) that defines the schema. Scripts inside read the resolved values via `window.__hyperframes.getVariables()`. The CLI `--variables '{"title":"Q4 Report"}'` is a JSON **object keyed by id** that overrides those declared defaults for one render; missing keys fall through, so the same composition runs unchanged in dev preview and in production. Sub-comp hosts can also override per-instance with `data-variable-values`. See `../../hyperframes/references/format.md` for the full pattern.
|
|
150
153
|
|
|
151
154
|
### feedback (report after rendering)
|
|
152
155
|
|
|
@@ -157,7 +160,7 @@ npx hyperframes feedback --rating 10 # clean run, n
|
|
|
157
160
|
npx hyperframes feedback --rating 6 --comment "bg <video> renders grey in multi-scene; worked around with --format png-sequence"
|
|
158
161
|
```
|
|
159
162
|
|
|
160
|
-
`--rating` is an integer from 0-10
|
|
163
|
+
`--rating` is an integer from 0-10; `--comment` is free text. A `--comment` with no `--rating` is a ratingless report (`MISSING FEATURE:` and `HOST APP:` in `SKILL.md`) that never counts in the rating metric. Feedback is anonymous and attaches a `doctorSummary` (OS/Node/CPU/mem/ffmpeg) automatically, so don't repeat those fields. A clean run needs only a short result. Before sending any bug, workaround, or confusing behavior, collect this compact reproduction packet:
|
|
161
164
|
|
|
162
165
|
```text
|
|
163
166
|
REPRO COMMAND: <HF_*/PRODUCER_* env> npx hyperframes <exact command> # run from the project directory; do NOT paste absolute paths
|
|
@@ -191,3 +194,9 @@ npx hyperframes publish --yes # skip the confirmation prompt (scripts/CI)
|
|
|
191
194
|
```
|
|
192
195
|
|
|
193
196
|
Uploads the project's source (HTML + assets) and returns a stable hosted URL that renders in the browser. A fresh publish is private by default and requires authentication plus access to view. Use `--public` to allow anyone with the URL to view the claimed project. Updating a project in place keeps its existing visibility: re-publishing without `--public` never turns a public project private. `--yes` only skips the confirmation prompt; it does not change visibility. A signed-out publish returns an authentication-required claim URL rather than a public playback URL. Lint findings are surfaced before upload but do not block.
|
|
197
|
+
|
|
198
|
+
## Where to render, and skill attribution
|
|
199
|
+
|
|
200
|
+
Use cloud rendering when the user wants hosted rendering without local Chrome, FFmpeg, or AWS. Use Lambda only when AWS ownership is a requirement. Use Cloud Run only when GCP ownership is a requirement. Read the matching reference before running any cloud path.
|
|
201
|
+
|
|
202
|
+
Skill attribution is automatic — the examples above need no `--skill`. A project scaffolded with `hyperframes init --skill=<slug>` records its owning skill in `hyperframes.json`, and every later render inherits it on anonymous telemetry: re-renders, `npm run render`, and `--batch` alike. Pass `--skill=<slug>` explicitly only to stamp a project that was not scaffolded with one (its first render then persists it).
|
|
@@ -124,3 +124,11 @@ npx hyperframes remove-background
|
|
|
124
124
|
These produce assets (narration audio, word-level transcripts, transparent video) that get dropped into a composition. Each may download its own model on first run.
|
|
125
125
|
|
|
126
126
|
For voice selection, Whisper model rules, output format choice, and the TTS → transcript → captions chain, invoke the `media-use` skill. This skill stays focused on the dev loop.
|
|
127
|
+
|
|
128
|
+
## Remaining harness usage
|
|
129
|
+
|
|
130
|
+
Run `npx hyperframes usage --json` at the start of a video workflow and again at milestones such as after drafting and before rendering. A fresh read at handoff can serve as the start read. Use `--harness claude-code`, `--harness codex`, or `--harness grok` to select explicitly.
|
|
131
|
+
|
|
132
|
+
Known results contain `status: "known"`, `harness`, `planTier`, `session`, `weekly`, and `spend`. Each available window contains `usedPercent`, `remainingPercent`, and `resetsAt`; an unavailable window is `null`. `planTier` is the readable subscription tier when available, otherwise `null`. Claude Code reports its shared five-hour and weekly windows; a spend-metered plan (such as Enterprise) has neither and reports `spend`, the share of its billing-period spend limit already used, with `resetsAt: null`. Codex reports its shared session and weekly windows when available. Grok reports its included weekly allowance with `session: null`. Only Claude Code reports `spend`; it is `null` elsewhere. When no window is available the result is `status: "unknown"` with `reason: "no_usage_windows"`.
|
|
133
|
+
|
|
134
|
+
Unknown results contain `status: "unknown"` and a token-free `reason`. Missing, expired, unsupported, ambiguous, or unreadable logins and unavailable provider responses return unknown. Report the unknown state without guessing allowance. The command reads existing credentials without refreshing or rewriting them and emits no tokens or telemetry. Usage is a snapshot; it does not reserve allowance or estimate the next video's cost. Keep scope and workflow choices with the user.
|
|
@@ -1,100 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hyperframes-core
|
|
3
|
-
description:
|
|
3
|
+
description: Compatibility entry for the retired hyperframes-core skill; routes to the current official hyperframes skill.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# hyperframes-core: compatibility entry
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
The current official HyperFrames release merged this workflow into the `hyperframes` skill. Load `hyperframes` from the DSH skill registry and follow its current instructions for the user's task. Use its bundled resources; do not reconstruct the retired workflow or download standalone skills.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- Center with flex/`inset`, not CSS `transform: translate(-50%,-50%)` on a node you then GSAP `x`/`y`. Lint: `gsap_css_transform_conflict`. Use `fromTo` or `xPercent`/`yPercent`.
|
|
13
|
-
- Do not add a scene-exit `tl.set(..., {visibility:"hidden"})`. The runtime already hides timed clips. Opacity fades on inner nodes (or `opacity` on `.clip`) are enough. Caption hard-kills are a different rule.
|
|
14
|
-
- `window.__timelines["id"]` must match the root `data-composition-id`.
|
|
15
|
-
- After `render`, read the summary's second line: `beginframe` vs `screenshot`, GPU mode, stage timings. `screenshot` + `software gpu` on Linux is the slow path.
|
|
16
|
-
|
|
17
|
-
HyperFrames renders video from HTML. A composition is an HTML file whose DOM declares timing with `data-*` attributes, whose animation runtime is seekable, and whose media playback is owned by the framework.
|
|
18
|
-
|
|
19
|
-
This skill is the **technical contract** — how to build one hyperframes project. The body below is the build guide; per-topic detail lives in `references/` (index next), read on demand. Process docs (brief, storyboard, review, production, dispatch, frame-worker) live in `/hyperframes` → `references/`. Other concerns live in the sibling domain skills — `hyperframes-animation`, `hyperframes-creative`, `media-use`, `hyperframes-cli`, `hyperframes-registry`. The capability map in `/hyperframes` says what each one covers.
|
|
20
|
-
|
|
21
|
-
## References
|
|
22
|
-
|
|
23
|
-
| File | Read it to… |
|
|
24
|
-
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
25
|
-
| `references/minimal-composition.md` | start from the smallest renderable composition skeleton |
|
|
26
|
-
| `references/composition-patterns.md` | choose monolithic vs modular; structure a modular `index.html`; pick a sub-comp archetype |
|
|
27
|
-
| `references/data-attributes.md` | look up any `data-*` (root / clip / sub-comp host / legacy aliases); use `class="clip"` |
|
|
28
|
-
| `references/tracks-and-clips.md` | understand what `data-track-index` does (and does not) control, z-index, time a clip relative to another; list every track and clip with `npx hyperframes timeline` |
|
|
29
|
-
| `references/creator-editing-recipes.md` | copy truthful cut/trim/reorder/retime/freeze/camera/mask/crossfade/audio editing recipes and their limits |
|
|
30
|
-
| `references/sub-compositions.md` | wire a sub-composition (host attrs, `<template>`, per-instance vars) and animate inside it |
|
|
31
|
-
| `references/variables-and-media.md` | declare variables; place `<video>`/`<audio>`, set volume, trim |
|
|
32
|
-
| `references/determinism-rules.md` | build a seekable timeline; determinism bans; layout / text fit |
|
|
33
|
-
| `references/full-screen-motion.md` | author full-frame motion with shared backgrounds |
|
|
34
|
-
| `references/tailwind.md` | work in a Tailwind v4 project (`init --tailwind`; runtime contract differs from Studio's v3) |
|
|
35
|
-
|
|
36
|
-
For animation runtime specifics (GSAP API, Lottie, Three.js, etc.) go to `hyperframes-animation` → `adapters/<runtime>.md`.
|
|
37
|
-
|
|
38
|
-
## Building a composition
|
|
39
|
-
|
|
40
|
-
### Two root forms (not interchangeable)
|
|
41
|
-
|
|
42
|
-
- **Standalone** (top-level `index.html`): root `<div data-composition-id="…">` sits directly in `<body>`, **no `<template>` wrapper**. Wrapping a standalone root hides all content and `lint` rejects it (`standalone_composition_wrapped_in_template`, error).
|
|
43
|
-
- **Sub-composition** (loaded via `data-composition-src`): wrap the root in `<template>`. This is the shape to write: the loader also accepts a plain full document and falls back to its `<body>`, but the templated form is what the examples and tooling assume.
|
|
44
|
-
|
|
45
|
-
> ⚠ Transport rule: for a **templated** sub-composition the assembler drops the file's own `<head>` `<style>`/`<script>` (`packages/core/src/compiler/compositionAssembly.ts`, the `hasTemplate` gate), so put `<style>`/`<script>` **inside** the template. `<link>` is hoisted either way.
|
|
46
|
-
> ⚠ Host-id convention: give the host slot, the inner template, and the `window.__timelines["<id>"]` key the **same** id. A different local id is supported (the assembler falls back to the first root in the file) but the mismatch is silent, so match them unless you have a reason not to.
|
|
47
|
-
|
|
48
|
-
File shape, host wiring, and the pre-render checklist → `references/sub-compositions.md`.
|
|
49
|
-
|
|
50
|
-
### Root must be sized (silent layout bug)
|
|
51
|
-
|
|
52
|
-
The standalone root authors `width`/`height: 100%`. Canvas size is `data-width`/`data-height`. The runtime stamps those pixels onto the composition root. Do not hardcode `1920px`/`1080px` on `#root`. Skeleton → `references/minimal-composition.md`.
|
|
53
|
-
|
|
54
|
-
### One paused timeline
|
|
55
|
-
|
|
56
|
-
Each composition registers **exactly one** `gsap.timeline({ paused: true })` at `window.__timelines["<id>"]` (key = root `data-composition-id`). Building it inside an async callback (`document.fonts.ready`) is supported; what matters is that you **register only after the build completes**. Render length is the root's `data-duration`, **not** the timeline's length: a timeline that runs past it is cut off, and one that ends early holds its last frame. Omit the root `data-duration` and the length is inferred instead (timeline, media window, or adapter). You do not need `window.__timelines = window.__timelines || {}`: the runtime creates the registry before your inline scripts run, and `lint` no longer asks for it. Don't manually nest sub-timelines into the host; the runtime auto-nests registered child timelines. Full contract (incl. non-GSAP runtimes) → `references/determinism-rules.md` + `hyperframes-animation/adapters/`.
|
|
57
|
-
|
|
58
|
-
### First-pass lint gotchas (a guaranteed first build failure)
|
|
59
|
-
|
|
60
|
-
Rules that `lint` **does** catch, but only after the fact. Write them right the first time:
|
|
61
|
-
|
|
62
|
-
- Never pair a CSS initial `transform` with a GSAP tween on the **same** property — the CSS value and the tween's start fight and `lint` rejects it with `gsap_css_transform_conflict`. Set the initial state inside the tween with `gsap.fromTo(el, { x: -40 }, { x: 0 })` instead of a CSS `transform: translateX(-40px)`.
|
|
63
|
-
- Never put `crossorigin` on `<video>`/`<audio>`. `lint` rejects it unconditionally with `media_crossorigin_breaks_preview` (error), including for canvas/WebGL/WebAudio readback. There is no suppression.
|
|
64
|
-
- Never give a `<video data-start>` an ancestor that also carries `data-start`. `lint` rejects it with `video_nested_in_timed_element` (error). Time the wrapper **or** the video, not both.
|
|
65
|
-
- Every `<audio>` needs an `id`. `lint` rejects it with `media_missing_id`, and an id-less `<audio>` is never picked up by the mixer, so the render is **silent**.
|
|
66
|
-
- Never tween a `.clip` with `autoAlpha` or `visibility` — `lint` rejects it with `gsap_animates_clip_element`. Animate a child instead.
|
|
67
|
-
- A named CSS `font-family` needs an in-file `@font-face` to a shipped local file, or `lint` fires `font_family_without_font_face`.
|
|
68
|
-
- Sub-composition `#root` uses `width`/`height: 100%` (or `inset: 0`), not hardcoded `1920px`/`1080px`. Canvas size is `data-width`/`data-height`.
|
|
69
|
-
|
|
70
|
-
A lint **error** also switches off the layout and contrast audits: `check` then reports `0 sample(s)` and `0/0 text checks`, which reads like a clean file but means nothing ran. Clear lint errors before you trust those numbers.
|
|
71
|
-
|
|
72
|
-
### Non-negotiable rules (silent bugs automated gates may miss)
|
|
73
|
-
|
|
74
|
-
Surfaced here; full rationale in the linked reference. Do not violate:
|
|
75
|
-
|
|
76
|
-
- No render-time clocks / unseeded `Math.random` / network / input-state; no `repeat: -1` (use a finite count). → `determinism-rules.md`
|
|
77
|
-
- Never tween `display`, `visibility`, or `autoAlpha` on a `.clip` element. The framework owns clip visibility, and `lint` rejects it (`gsap_animates_clip_element`). Animate a child instead. → `determinism-rules.md`
|
|
78
|
-
- No `<br>` in body text; transformed elements must be block-level + sized; pulsing absolute decoratives need peak clearance. → `determinism-rules.md`
|
|
79
|
-
- `<video>`/`<audio>` are found by a flat document query, so the framework seeks and decodes them at **any nesting depth** (including inside a sub-comp `<template>` or wrapper). One hard limit: `lint` errors if a `<video data-start>` sits inside another **plain** element that also has `data-start`, and the failure is real (wrong source frames, then the clip vanishes mid-slot), so put the timing on the wrapper or on the video, never both. Sub-composition hosts are exempt: media inside a sub-composition renders correctly. The other caveat is timelines, not placement: a sub-comp timeline can't animate host-root elements. → `variables-and-media.md`
|
|
80
|
-
- Keep every `id` unique across the **assembled** page (prefix sub-comp ids with the composition id, `#<id>-hero`) so your own `#id` CSS and `getElementById` calls resolve. Frame injection no longer depends on it: the compiler stamps a document-unique `data-hf-render-id` on every `video[src]`/`audio[src]`/`img[src]`. Media that uses `<source>` children instead of a `src` attribute is **not** stamped, so unique ids still matter there. → `composition-patterns.md`
|
|
81
|
-
- A full-screen fill on the composition **root** is fine on a normal render. It is dropped only on the layered-composite path (HDR content, or a composition using shader transitions), where the engine forces every composition root transparent so the layer beneath shows through. If your composition uses shader transitions or HDR media, put the fill on a full-bleed **child** (`position:absolute; inset:0`). → `composition-patterns.md`
|
|
82
|
-
|
|
83
|
-
## Editing existing compositions
|
|
84
|
-
|
|
85
|
-
- Read the files first. Preserve unrelated timing, tracks, IDs, variables, media paths.
|
|
86
|
-
- To know what is on a project's timeline (tracks, clips, starts, ends, what plays), run `npx hyperframes timeline [--json]` instead of reading `index.html` and every sub-composition file.
|
|
87
|
-
- Match existing composition IDs and timeline keys.
|
|
88
|
-
- Adding a clip: set its `data-start`/`data-duration` intentionally against the clips around it. `data-track-index` is a Studio display lane, not a timing constraint, so it does not need to be free.
|
|
89
|
-
- A clip that ends past the root `data-duration` is cut off: extend the root `data-duration` to the clip's end in the same edit (`lint` warns `clip_ends_past_root_duration`).
|
|
90
|
-
- `data-hidden` on any composition element hides it in BOTH preview and render, overriding its time window; it is non-destructive/reversible and toggled by Studio's timeline eye icon.
|
|
91
|
-
- Adding a sub-composition: verify its internal `data-composition-id` before wiring the host.
|
|
92
|
-
|
|
93
|
-
## Validation
|
|
94
|
-
|
|
95
|
-
Use `hyperframes-cli` for command details
|
|
96
|
-
|
|
97
|
-
- [ ] `npx hyperframes check` passes (0 findings across lint, runtime, layout, motion, and contrast)
|
|
98
|
-
- [ ] Projects with sub-compositions: `npx hyperframes snapshot --at <midpoints>` and eyeball each frame
|
|
99
|
-
- [ ] `npx hyperframes preview --background` for review (the user can edit anything in Studio's timeline, and the server survives the invoking command)
|
|
100
|
-
- [ ] `npx hyperframes render` only after the user approves
|
|
10
|
+
For an existing project, preserve its files and dependencies. DSH plugin management owns this installed skill bundle. The upstream plugin launcher pins HyperFrames 0.8.207 and suppresses standalone skill installation; run it in the user's project directory. This entry preserves the previous DSH skill name while using the current workflow.
|
|
@@ -1,73 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hyperframes-creative
|
|
3
|
-
description:
|
|
3
|
+
description: Compatibility entry for the retired hyperframes-creative skill; routes to the current official hyperframes skill.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# hyperframes-creative: compatibility entry
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
The current official HyperFrames release merged this workflow into the `hyperframes` skill. Load `hyperframes` from the DSH skill registry and follow its current instructions for the user's task. Use its bundled resources; do not reconstruct the retired workflow or download standalone skills.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
For motion patterns, scene blueprints, transitions, and CSS marker effects, use `hyperframes-animation` — this skill is intentionally non-animation.
|
|
13
|
-
|
|
14
|
-
> **Read these two FIRST for any non-trivial composition — they override web instincts:**
|
|
15
|
-
>
|
|
16
|
-
> - `references/house-style.md` — "interpret the prompt, generate real content," the lazy-default list, and the background/foreground layer recipe. This is what turns a literal restyle into a _concept_.
|
|
17
|
-
> - `references/video-composition.md` — video-medium scale, depth, and foreground detail. It explains how to avoid empty web-page layouts without imposing a universal element count.
|
|
18
|
-
>
|
|
19
|
-
> Skipping these is the single biggest cause of generic, web-page-looking output. They are not optional rows in the routing table below — for anything beyond a one-line edit, open both before you choose colors or write HTML.
|
|
20
|
-
|
|
21
|
-
## Workflow
|
|
22
|
-
|
|
23
|
-
1. If a project has a design spec, **read it first** and treat its frontmatter tokens as brand truth (colors, fonts, spacing, tone, constraints). Which file to read (precedence `frame.md` → `design.md` → `DESIGN.md`) and how to parse it (frontmatter = normative, prose = context) are defined once in [`references/design-spec.md`](references/design-spec.md) — resolve and load per that doc.
|
|
24
|
-
2. If no design spec exists and the user asks for visual direction, choose a route:
|
|
25
|
-
- Ready-made frame-preset (optional) → `frame-presets/` (adopt a `FRAME.md` as `frame.md`; see `references/design-spec.md`)
|
|
26
|
-
- Named style or mood → `references/visual-styles.md`
|
|
27
|
-
- Fast defaults → `references/house-style.md`
|
|
28
|
-
- Interactive selection → `references/design-picker.md`
|
|
29
|
-
3. For multi-scene work, plan beats and rhythm before writing HTML → `references/beat-direction.md`. For scene transitions, jump to `hyperframes-animation/transitions/`.
|
|
30
|
-
4. For motion-heavy work, read `references/motion-principles.md` (high-level guardrails), then go to `hyperframes-animation` for atomic rules.
|
|
31
|
-
|
|
32
|
-
## Routing
|
|
33
|
-
|
|
34
|
-
| Topic | Read |
|
|
35
|
-
| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
|
|
36
|
-
| Adopt a ready-made frame-preset as `frame.md` (optional) | `frame-presets/` · `references/design-spec.md` |
|
|
37
|
-
| Default palettes, motion, typography, lazy defaults to question | `references/house-style.md` |
|
|
38
|
-
| Named style presets, mood-to-style routing | `references/visual-styles.md` |
|
|
39
|
-
| Palette-specific color tokens | `palettes/*.md` |
|
|
40
|
-
| Composition patterns — PiP, text-behind-subject, title card, slide show | `references/composition-patterns.md` |
|
|
41
|
-
| Stats / infographic presentation | `references/data-in-motion.md` |
|
|
42
|
-
| Structured expansion for open-ended prompts | `references/prompt-expansion.md` |
|
|
43
|
-
| Video-medium density, scale, color, frame composition | `references/video-composition.md` |
|
|
44
|
-
| Per-beat direction, rhythm planning, transition timing | `references/beat-direction.md` |
|
|
45
|
-
| Post-authoring spec verification (colors, type, corners, spacing, depth) | `references/design-adherence.md` |
|
|
46
|
-
| High-level motion guardrails and GSAP-quality rules | `references/motion-principles.md` |
|
|
47
|
-
| Font selection, pairings, rendered-video type guardrails | `references/typography.md` |
|
|
48
|
-
| Story doctrine — hook language, value-before-evidence, storyboard-as-proposal, source-traceable visuals | `references/story-spine.md` |
|
|
49
|
-
| Script pacing, tone, openings, number pronunciation | `references/narration.md` |
|
|
50
|
-
| Precomputed audio bands mapped to motion | `references/audio-reactive.md` |
|
|
51
|
-
|
|
52
|
-
## Scripts
|
|
53
|
-
|
|
54
|
-
- `scripts/contrast-report.mjs` — inspect contrast warnings from rendered frames.
|
|
55
|
-
- `scripts/extract-audio-data.py` — pre-extract audio bands for audio-reactive compositions.
|
|
56
|
-
- `scripts/package-loader.mjs` — support script for bundled creative tooling.
|
|
57
|
-
|
|
58
|
-
`contrast-report.mjs` resolves helper packages from the current project first, then can bootstrap the bundled HyperFrames package version. Set `HYPERFRAMES_SKILL_PKG_VERSION=<version>` only when running the skill outside the bundled CLI/skill install and you need to pin that bootstrap version explicitly.
|
|
59
|
-
|
|
60
|
-
Run from the repo root with explicit paths, for example:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
python skills/hyperframes-creative/scripts/extract-audio-data.py <audio-file>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Animation analysis (`animation-map.mjs`) lives in `hyperframes-animation/scripts/`.
|
|
67
|
-
|
|
68
|
-
## Boundaries
|
|
69
|
-
|
|
70
|
-
- Do not override `hyperframes-core` technical rules.
|
|
71
|
-
- Do not require a design system for a minimal technical composition.
|
|
72
|
-
- Do not add extra scenes, narration, music, captions, or transitions unless the request calls for them or you first propose the expansion.
|
|
73
|
-
- Keep recipe references task-specific; do not read every reference for simple edits.
|
|
10
|
+
For an existing project, preserve its files and dependencies. DSH plugin management owns this installed skill bundle. The upstream plugin launcher pins HyperFrames 0.8.207 and suppresses standalone skill installation; run it in the user's project directory. This entry preserves the previous DSH skill name while using the current workflow.
|