@autoaiai/aicut 0.1.7 → 0.1.11
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/MANUAL.md +10 -0
- package/package.json +1 -1
- package/product.json +2 -1
- package/skills/30x-web-to-video/SKILL.md +421 -0
- package/skills/30x-web-to-video/examples/INDEX.md +26 -0
- package/skills/30x-web-to-video/references/animations.md +539 -0
- package/skills/30x-web-to-video/references/audio.md +256 -0
- package/skills/30x-web-to-video/references/components.md +340 -0
- package/skills/30x-web-to-video/references/lottie.md +174 -0
- package/skills/30x-web-to-video/references/visual-effects.md +157 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +169 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +120 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +154 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +38 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +152 -0
- package/skills/3d-asset-generation/SKILL.md +142 -0
- package/skills/action-fight-prompt/SKILL.md +136 -0
- package/skills/action-fight-prompt/references/camera-and-impact.md +64 -0
- package/skills/action-fight-prompt/references/example-15s-duel.md +59 -0
- package/skills/action-fight-prompt/references/scene-patterns.md +80 -0
- package/skills/ad-creative-video/SKILL.md +205 -0
- package/skills/ad-creative-video/references/batch-ad-pipeline.md +289 -0
- package/skills/ad-creative-video/references/platform-specs.md +72 -0
- package/skills/after-effects/SKILL.md +123 -0
- package/skills/after-effects/references/export-recipes.md +168 -0
- package/skills/after-effects/references/expression-library.md +184 -0
- package/skills/after-effects/references/expressions.md +134 -0
- package/skills/after-effects/references/performance-triage.md +138 -0
- package/skills/after-effects/references/project-hygiene.md +188 -0
- package/skills/ai-media-quality-review/SKILL.md +72 -0
- package/skills/ai-product-video/SKILL.md +296 -0
- package/skills/ai-product-video/references/aesthetic-rules.md +177 -0
- package/skills/ai-product-video/references/final-review.md +110 -0
- package/skills/ai-product-video/references/guided-free-creation.md +194 -0
- package/skills/ai-product-video/references/music-beat-sync.md +219 -0
- package/skills/ai-product-video/references/pipeline.md +392 -0
- package/skills/ai-product-video/references/sequences/promo-energy-arc.md +50 -0
- package/skills/ai-product-video/references/shots/ATTRIBUTION.md +65 -0
- package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +39 -0
- package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +38 -0
- package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +40 -0
- package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +57 -0
- package/skills/aicut/SKILL.md +4 -4
- package/skills/aicut/references/commands.md +15 -15
- package/skills/aicut/references/film-format.md +1 -1
- package/skills/aicut/references/recipes.md +4 -4
- package/skills/aicut/references/troubleshooting.md +2 -2
- package/skills/aicut-motion/SKILL.md +6 -6
- package/skills/aicut-motion/references/design-systems/README.md +1 -1
- package/skills/aicut-motion/references/pages.md +1 -1
- package/skills/anidoodle/SKILL.md +185 -0
- package/skills/anidoodle/references/anatomy.md +91 -0
- package/skills/anidoodle/references/backends-and-adapters.md +82 -0
- package/skills/anidoodle/references/camera.md +148 -0
- package/skills/anidoodle/references/craft-bar.md +72 -0
- package/skills/anidoodle/references/determinism-and-contract.md +46 -0
- package/skills/anidoodle/references/formats.md +121 -0
- package/skills/anidoodle/references/motion-grammar.md +234 -0
- package/skills/anidoodle/references/music/compose.md +388 -0
- package/skills/anidoodle/references/music/sound-design.md +245 -0
- package/skills/anidoodle/references/music/sounds-licenses.md +69 -0
- package/skills/anidoodle/references/music/styles/lofi-electronic.md +112 -0
- package/skills/anidoodle/references/music/styles/music-box.md +57 -0
- package/skills/animated-component-libraries/SKILL.md +820 -0
- package/skills/animated-component-libraries/references/customization_guide.md +699 -0
- package/skills/animated-component-libraries/references/magic_ui_components.md +422 -0
- package/skills/animated-component-libraries/references/react_bits_components.md +587 -0
- package/skills/animated-infographic/SKILL.md +211 -0
- package/skills/animated-infographic/references/sequenced-infographic.md +286 -0
- package/skills/appshot-core/SKILL.md +872 -0
- package/skills/article-highlights/SKILL.md +151 -0
- package/skills/avatar-mix/SKILL.md +301 -0
- package/skills/bang-motion/SKILL.md +583 -0
- package/skills/bang-motion/references/ae-bridge-higgsfield.md +160 -0
- package/skills/bang-motion/references/anti-ppt.md +110 -0
- package/skills/bang-motion/references/architecture.md +188 -0
- package/skills/bang-motion/references/explainer.md +579 -0
- package/skills/bang-motion/references/kartun-panggung.md +221 -0
- package/skills/bang-motion/references/opener-konsep.md +817 -0
- package/skills/bang-motion/references/roadmap.md +85 -0
- package/skills/bang-motion/references/techniques.md +690 -0
- package/skills/beat-sync-edit/SKILL.md +148 -0
- package/skills/book-video-factory/SKILL.md +139 -0
- package/skills/book-video-factory/references/first-run.md +50 -0
- package/skills/book-video-factory/references/paper-collage-explainer.md +127 -0
- package/skills/book-video-factory/references/quality-gates.md +87 -0
- package/skills/book-video-production/SKILL.md +211 -0
- package/skills/brag/SKILL.md +195 -0
- package/skills/brag/references/audio.md +312 -0
- package/skills/brag/references/step-1-inspect.md +125 -0
- package/skills/brag/references/step-2-plan.md +234 -0
- package/skills/brag/references/step-3-compose.md +199 -0
- package/skills/brag/references/step-4-deliver.md +141 -0
- package/skills/brag/references/tones.md +231 -0
- package/skills/brand-setup/SKILL.md +228 -0
- package/skills/brewreel/SKILL.md +491 -0
- package/skills/brewreel/docs/broll.en.md +252 -0
- package/skills/brewreel/docs/broll.md +252 -0
- package/skills/brewreel/docs/custom-shot.en.md +66 -0
- package/skills/brewreel/docs/custom-shot.md +103 -0
- package/skills/brewreel/docs/faq.en.md +90 -0
- package/skills/brewreel/docs/faq.md +90 -0
- package/skills/brewreel/docs/features.en.md +157 -0
- package/skills/brewreel/docs/features.md +157 -0
- package/skills/brewreel/docs/gallery.en.md +44 -0
- package/skills/brewreel/docs/gallery.md +44 -0
- package/skills/brewreel/docs/how-it-works.en.md +64 -0
- package/skills/brewreel/docs/how-it-works.md +64 -0
- package/skills/caption-animation/SKILL.md +216 -0
- package/skills/caption-animation/references/word-timed-captions.md +254 -0
- package/skills/cartcut-editing/SKILL.md +615 -0
- package/skills/cartcut-editing/references/html-typography.md +277 -0
- package/skills/cassette-video-edit/SKILL.md +129 -0
- package/skills/ccvideo/SKILL.md +264 -0
- package/skills/chekhov-dramaturgy/SKILL.md +367 -0
- package/skills/chekhov-dramaturgy/reference.md +375 -0
- package/skills/chengfeng-check-updates/SKILL.md +283 -0
- package/skills/cinematic-product-promo-skill/SKILL.md +295 -0
- package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +187 -0
- package/skills/cinematic-product-promo-skill/references/final-review.md +116 -0
- package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +199 -0
- package/skills/cinematic-product-promo-skill/references/jianying-export.md +183 -0
- package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +257 -0
- package/skills/cinematic-product-promo-skill/references/pipeline.md +393 -0
- package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +50 -0
- package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +65 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +39 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +38 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +40 -0
- package/skills/claude-gif/SKILL.md +211 -0
- package/skills/claude-gif/references/gif-optimization.md +209 -0
- package/skills/claude-gif/references/perfect-loops.md +295 -0
- package/skills/claude-gif/references/platform-specs.md +138 -0
- package/skills/claude-gif/references/prompt-engineering.md +211 -0
- package/skills/claude-gif/references/remotion-gif.md +560 -0
- package/skills/codex-video-pipeline/SKILL.md +213 -0
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +10 -0
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +22 -0
- package/skills/codex-video-pipeline/references/captions.md +39 -0
- package/skills/codex-video-pipeline/references/cover-system.md +72 -0
- package/skills/codex-video-pipeline/references/cross-platform.md +77 -0
- package/skills/codex-video-pipeline/references/example-run.md +54 -0
- package/skills/codex-video-pipeline/references/first-run.md +130 -0
- package/skills/codex-video-pipeline/references/project-contract.md +54 -0
- package/skills/codex-video-pipeline/references/quality-gates.md +44 -0
- package/skills/codex-video-pipeline/references/research-and-script.md +50 -0
- package/skills/collage-broll-explainers/SKILL.md +429 -0
- package/skills/create-onboarding-video/SKILL.md +233 -0
- package/skills/cs-shotcraft-skill/SKILL.md +218 -0
- package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +207 -0
- package/skills/cs-shotcraft-skill/references/camera-table.md +88 -0
- package/skills/cs-shotcraft-skill/references/engineering.md +132 -0
- package/skills/cs-shotcraft-skill/references/final-review.md +118 -0
- package/skills/cs-shotcraft-skill/references/guided-free-creation.md +199 -0
- package/skills/cs-shotcraft-skill/references/jianying-export.md +183 -0
- package/skills/cs-shotcraft-skill/references/music-beat-sync.md +257 -0
- package/skills/cs-shotcraft-skill/references/pipeline.md +408 -0
- package/skills/cs-shotcraft-skill/references/product-machine.md +56 -0
- package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +50 -0
- package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +65 -0
- package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/cut-video/SKILL.md +387 -0
- package/skills/cyxj-hyperframes-overlay/SKILL.md +75 -0
- package/skills/cyxj-remotion-evolve/SKILL.md +123 -0
- package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +123 -0
- package/skills/demo-video-creation-skill/SKILL.md +152 -0
- package/skills/demo-video-creation-skill/references/capture-workflow.md +74 -0
- package/skills/demo-video-creation-skill/references/qc-checklist.md +61 -0
- package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +94 -0
- package/skills/demo-video-creation-skill/references/storytelling.md +86 -0
- package/skills/demo-video-creation-skill/references/visual-system.md +83 -0
- package/skills/demoday/SKILL.md +148 -0
- package/skills/develop-premiere-pro-mcp/SKILL.md +131 -0
- package/skills/diagram-animation/SKILL.md +200 -0
- package/skills/diagram-animation/references/diagram-and-chart-recipes.md +218 -0
- package/skills/diagram-tour/SKILL.md +287 -0
- package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +78 -0
- package/skills/docvideoer/SKILL.md +139 -0
- package/skills/draftcut/SKILL.md +104 -0
- package/skills/draftcut/docs/agent-bootstrap.md +64 -0
- package/skills/draftcut/docs/approvals.md +45 -0
- package/skills/draftcut/docs/audio-first-migration.md +35 -0
- package/skills/draftcut/docs/configuration.md +54 -0
- package/skills/draftcut/docs/getting-started.md +63 -0
- package/skills/draftcut/docs/harness-case-study.en.md +23 -0
- package/skills/draftcut/docs/harness-case-study.md +47 -0
- package/skills/draftcut/references/01-plan.md +30 -0
- package/skills/draftcut/references/03-deliver.md +26 -0
- package/skills/draftcut/references/04-reference-theme-prompt.md +7 -0
- package/skills/draftcut/references/05-social-loudness.md +58 -0
- package/skills/draftcut/references/06-modern-components.md +72 -0
- package/skills/easyedit/SKILL.md +66 -0
- package/skills/erduo-broll-loop-engineering/SKILL.md +136 -0
- package/skills/erduo-broll-loop-engineering/references/animation-craft.md +208 -0
- package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +107 -0
- package/skills/erduo-broll-loop-engineering/references/handoff-template.md +70 -0
- package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +122 -0
- package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +171 -0
- package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +322 -0
- package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +334 -0
- package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +76 -0
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +174 -0
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +135 -0
- package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +7 -0
- package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +65 -0
- package/skills/explainer-assets/SKILL.md +98 -0
- package/skills/explainer-video/SKILL.md +146 -0
- package/skills/framewright/SKILL.md +324 -0
- package/skills/framewright/references/audio.md +230 -0
- package/skills/framewright/references/guide.md +276 -0
- package/skills/framewright/references/painting.md +425 -0
- package/skills/framewright/references/photo.md +75 -0
- package/skills/framewright/references/questionnaire.md +115 -0
- package/skills/framewright/references/styles.md +388 -0
- package/skills/framewright/references/troubleshooting.md +119 -0
- package/skills/framewright/references/world.md +215 -0
- package/skills/gbro-collage-broll/SKILL.md +435 -0
- package/skills/gbro-collage-info/SKILL.md +135 -0
- package/skills/gbro-collage-info/references/motion-grammar.md +66 -0
- package/skills/gbro-collage-info/references/production.md +67 -0
- package/skills/gbro-collage-info/references/style-system.md +38 -0
- package/skills/gemini-tts/SKILL.md +208 -0
- package/skills/gemini-tts/references/prompting-guide.md +169 -0
- package/skills/gen/SKILL.md +282 -0
- package/skills/ghost-editor/SKILL.md +437 -0
- package/skills/ghost-editor/docs/HOW-IT-WORKS.md +82 -0
- package/skills/ghost-editor/docs/PLAYBOOK.md +139 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +17 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +13 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +20 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +17 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +22 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +22 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +20 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/models.md +11 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +13 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +15 -0
- package/skills/git-story-film/SKILL.md +220 -0
- package/skills/git-story-film/examples/raven-story/FONTS.md +8 -0
- package/skills/git-story-film/examples/raven-story/OUTLINE.md +93 -0
- package/skills/git-story-film/references/craft.md +148 -0
- package/skills/git-story-film/references/directing.md +185 -0
- package/skills/git-story-film/references/forms.md +150 -0
- package/skills/git-story-film/references/production.md +150 -0
- package/skills/git-story-film/references/story.md +137 -0
- package/skills/git-story-film/references/text-and-fonts.md +90 -0
- package/skills/guizang-product-video-skill/SKILL.md +96 -0
- package/skills/guizang-product-video-skill/references/audio-and-qa.md +113 -0
- package/skills/guizang-product-video-skill/references/audio-sourcing.md +80 -0
- package/skills/guizang-product-video-skill/references/case-study.md +63 -0
- package/skills/guizang-product-video-skill/references/component-pipeline.md +86 -0
- package/skills/guizang-product-video-skill/references/cover.md +43 -0
- package/skills/guizang-product-video-skill/references/direction.md +91 -0
- package/skills/guizang-product-video-skill/references/onboarding.md +98 -0
- package/skills/guizang-product-video-skill/references/repo-and-style.md +44 -0
- package/skills/guizang-product-video-skill/references/review.md +38 -0
- package/skills/guizang-product-video-skill/references/starter.md +168 -0
- package/skills/guizang-product-video-skill/references/story-and-copy.md +88 -0
- package/skills/guizang-product-video-skill/references/visual-vocabulary.md +78 -0
- package/skills/guofeng-paper-video/SKILL.md +159 -0
- package/skills/guofeng-paper-video/style/design.md +43 -0
- package/skills/guofeng-paper-video/style/palette.md +21 -0
- package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +19 -0
- package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +37 -0
- package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +27 -0
- package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +67 -0
- package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +29 -0
- package/skills/hand-drawn-explainer-video-nikola/SKILL.md +113 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +18 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +22 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +28 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +35 -0
- package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +24 -0
- package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +67 -0
- package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +79 -0
- package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +49 -0
- package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +82 -0
- package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +39 -0
- package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +30 -0
- package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +37 -0
- package/skills/hbg-life-simulation/SKILL.md +285 -0
- package/skills/hbg-life-simulation/references/image-generation.md +53 -0
- package/skills/hbg-life-simulation/references/local-account-api.md +112 -0
- package/skills/hbg-life-simulation/references/opening-system.md +45 -0
- package/skills/hbg-life-simulation/references/project-spec.md +62 -0
- package/skills/hbg-life-simulation/references/render-and-qa.md +107 -0
- package/skills/hbg-life-simulation/references/storyboarding.md +69 -0
- package/skills/hbg-life-simulation/references/style-system.md +80 -0
- package/skills/hbg-life-simulation/references/visual-system.md +44 -0
- package/skills/heygen-avatar/SKILL.md +489 -0
- package/skills/heygen-avatar/references/asset-routing.md +86 -0
- package/skills/heygen-avatar/references/avatar-creation.md +181 -0
- package/skills/heygen-avatar/references/troubleshooting.md +137 -0
- package/skills/heytea-doodle-poster/SKILL.md +132 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +103 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +122 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +106 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +264 -0
- package/skills/heytea-doodle-poster/references/evaluation.md +246 -0
- package/skills/heytea-doodle-poster/references/lettering-guide.md +213 -0
- package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +101 -0
- package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +56 -0
- package/skills/heytea-doodle-poster/references/style-guide.md +412 -0
- package/skills/heytea-doodle-poster-hosted/SKILL.md +132 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +103 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +122 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +106 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +264 -0
- package/skills/heytea-doodle-poster-hosted/references/evaluation.md +246 -0
- package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +213 -0
- package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +101 -0
- package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +56 -0
- package/skills/heytea-doodle-poster-hosted/references/style-guide.md +412 -0
- package/skills/html2video/SKILL.md +290 -0
- package/skills/html2video/references/cjk-type.md +173 -0
- package/skills/html2video/references/editorial.md +145 -0
- package/skills/html2video/references/narration.md +111 -0
- package/skills/html2video/references/pitfalls.md +238 -0
- package/skills/html2video/references/shots.md +198 -0
- package/skills/html2video/references/storyboard.md +323 -0
- package/skills/hyperdirector/SKILL.md +202 -0
- package/skills/hyperdirector/docs/audio-workflow.md +160 -0
- package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +244 -0
- package/skills/hyperdirector/docs/brand-kit-setup.md +322 -0
- package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +277 -0
- package/skills/hyperdirector/docs/cursor-development-notes.md +474 -0
- package/skills/hyperdirector/docs/faq.md +285 -0
- package/skills/hyperdirector/docs/faq.zh-CN.md +198 -0
- package/skills/hyperdirector/docs/first-video.md +320 -0
- package/skills/hyperdirector/docs/first-video.zh-CN.md +265 -0
- package/skills/hyperdirector/docs/installation.md +254 -0
- package/skills/hyperdirector/docs/installation.zh-CN.md +222 -0
- package/skills/hyperdirector/docs/quickstart.md +203 -0
- package/skills/hyperframes/SKILL.md +117 -0
- 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/review.md +51 -0
- package/skills/hyperframes/references/runtimes.md +69 -0
- package/skills/hyperframes/references/skill-lifecycle.md +49 -0
- 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-motion-director/SKILL.md +920 -0
- package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +185 -0
- package/skills/hyperframes-motion-director/references/audio-sync.md +83 -0
- package/skills/hyperframes-motion-director/references/design-engineering.md +156 -0
- package/skills/hyperframes-motion-director/references/gsap-choreography.md +202 -0
- package/skills/hyperframes-motion-director/references/hyperframes-stability.md +99 -0
- package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +227 -0
- package/skills/hyperframes-motion-director/references/motion-background-system.md +165 -0
- package/skills/hyperframes-motion-director/references/motion-craft.md +182 -0
- package/skills/hyperframes-motion-director/references/premium-product-promo.md +287 -0
- package/skills/hyperframes-motion-director/references/text-over-background-layout.md +221 -0
- package/skills/hyperframes-motion-director/references/visual-standard.md +174 -0
- package/skills/hyperframes-motion-director/references/workflow.md +320 -0
- package/skills/hypit/SKILL.md +367 -0
- package/skills/hypit/references/creation/brief.md +93 -0
- package/skills/hypit/references/creation/script-and-time.md +259 -0
- package/skills/hypit/references/creation/transformations.md +143 -0
- package/skills/hypit/references/playbooks/craft/b-roll.md +94 -0
- package/skills/hypit/references/playbooks/craft/caption-tracking.md +126 -0
- package/skills/hypit/references/playbooks/craft/captions.md +253 -0
- package/skills/hypit/references/playbooks/craft/generated-dependencies.md +38 -0
- package/skills/hypit/references/playbooks/craft/graphic-compositions.md +85 -0
- package/skills/hypit/references/playbooks/craft/motion-graphics.md +68 -0
- package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +51 -0
- package/skills/hypit/references/playbooks/craft/sound-mix.md +70 -0
- package/skills/hypit/references/playbooks/formats/narration-led-demo.md +87 -0
- package/skills/image/SKILL.md +153 -0
- package/skills/image/references/characters.md +86 -0
- package/skills/image/references/creative-direction.md +137 -0
- package/skills/image/references/de-slop.md +95 -0
- package/skills/image/references/dimensional.md +88 -0
- package/skills/image/references/editing.md +112 -0
- package/skills/image/references/golden-rules.md +198 -0
- package/skills/image/references/gpt-image.md +228 -0
- package/skills/image/references/models.md +78 -0
- package/skills/image/references/multi-panel.md +354 -0
- package/skills/image/references/nano-banana.md +150 -0
- package/skills/image/references/patterns/character-design.md +150 -0
- package/skills/image/references/patterns/ecommerce.md +124 -0
- package/skills/image-smixs/SKILL.md +153 -0
- package/skills/image-smixs/references/characters.md +86 -0
- package/skills/image-smixs/references/creative-direction.md +137 -0
- package/skills/image-smixs/references/de-slop.md +95 -0
- package/skills/image-smixs/references/dimensional.md +88 -0
- package/skills/image-smixs/references/editing.md +112 -0
- package/skills/image-smixs/references/golden-rules.md +198 -0
- package/skills/image-smixs/references/gpt-image.md +228 -0
- package/skills/image-smixs/references/models.md +78 -0
- package/skills/image-smixs/references/multi-panel.md +354 -0
- package/skills/image-smixs/references/nano-banana.md +150 -0
- package/skills/image-smixs/references/patterns/character-design.md +150 -0
- package/skills/image-smixs/references/patterns/ecommerce.md +124 -0
- package/skills/image-story-video-wizard/SKILL.md +148 -0
- package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +29 -0
- package/skills/image-story-video-wizard/references/host-routing.md +44 -0
- package/skills/image-story-video-wizard/references/state-schema.md +79 -0
- package/skills/image-story-video-wizard/references/workflow.md +203 -0
- package/skills/image-story-video-wizard/references/writing-and-review.md +60 -0
- package/skills/ip-as-logo/SKILL.md +151 -0
- package/skills/ip-as-logo-s1dashu/SKILL.md +151 -0
- package/skills/jtxvideo-skill/SKILL.md +337 -0
- package/skills/kinetic-reel/SKILL.md +140 -0
- package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +51 -0
- package/skills/kinetic-reel/references/sound.md +40 -0
- package/skills/kinetic-reel/references/style-guide.md +79 -0
- package/skills/knowledge-explainer-skill/SKILL.md +149 -0
- package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +61 -0
- package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +20 -0
- package/skills/knowledge-explainer-skill/examples/before_after_demo.md +38 -0
- package/skills/knowledge-explainer-skill/examples/cta_outro.md +11 -0
- package/skills/knowledge-explainer-skill/examples/double_pendulum.md +20 -0
- package/skills/knowledge-explainer-skill/examples/paper_fold.md +20 -0
- package/skills/knowledge-explainer-skill/examples/script.md +40 -0
- package/skills/lanshu-create-ai-presenter-video/SKILL.md +253 -0
- package/skills/lanshu-create-ai-presenter-video/references/editing.md +67 -0
- package/skills/lanshu-create-ai-presenter-video/references/generation.md +94 -0
- package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +83 -0
- package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +189 -0
- package/skills/laoxu-video-script/SKILL.md +117 -0
- package/skills/laoxu-video-script/references/cases.md +305 -0
- package/skills/laoxu-video-script/references/de-ai.md +32 -0
- package/skills/laoxu-video-script/references/diagnostics.md +67 -0
- package/skills/laoxu-video-script/references/format.md +62 -0
- package/skills/laoxu-video-script/references/formulas.md +43 -0
- package/skills/laoxu-video-script/references/method.md +115 -0
- package/skills/laoxu-video-script/references/motifs-and-lines.md +829 -0
- package/skills/laoxu-video-script/references/persona.md +38 -0
- package/skills/laoxu-video-script/references/qihao-path.md +35 -0
- package/skills/laoxu-video-script/references/qihao-xinfa.md +39 -0
- package/skills/laoxu-video-script/references/redlines.md +26 -0
- package/skills/lemo-opuscar/SKILL.md +67 -0
- package/skills/lipnardo/SKILL.md +308 -0
- package/skills/lipnardo/examples/batch-personalized.md +44 -0
- package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +56 -0
- package/skills/lipnardo/examples/single-video.md +44 -0
- package/skills/lipnardo/references/avatar-types.md +42 -0
- package/skills/lipnardo/references/credit-costs.md +39 -0
- package/skills/lipnardo/references/error-codes.md +66 -0
- package/skills/lipnardo/references/heygen-api-reference.md +416 -0
- package/skills/ll-video-decomposer/SKILL.md +105 -0
- package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +44 -0
- package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +41 -0
- package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +48 -0
- package/skills/ll-video-decomposer/references/single-video-report-template.md +47 -0
- package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +30 -0
- package/skills/ll-video-decomposer/references/transcription-routing.md +65 -0
- package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +30 -0
- package/skills/ltx2-video/SKILL.md +193 -0
- package/skills/ltx2-video/references/mode_ux.md +293 -0
- package/skills/make-ai-short/SKILL.md +130 -0
- package/skills/make-blender-education-video/SKILL.md +247 -0
- package/skills/make-blender-education-video/references/evidence-and-explanation.md +62 -0
- package/skills/make-blender-education-video/references/github-workflow-discovery.md +55 -0
- package/skills/make-blender-education-video/references/production-workflow.md +62 -0
- package/skills/make-blender-education-video/references/story-patterns.md +65 -0
- package/skills/make-blender-education-video/references/visual-quality.md +82 -0
- package/skills/manage-storyboard-projects/SKILL.md +128 -0
- package/skills/manim-composer/SKILL.md +176 -0
- package/skills/manim-composer/references/narrative-patterns.md +125 -0
- package/skills/manim-composer/references/scene-examples.md +216 -0
- package/skills/manim-composer/references/visual-techniques.md +223 -0
- package/skills/manim-composer/templates/scenes-template.md +147 -0
- package/skills/monet-ai-editor-monet/SKILL.md +367 -0
- package/skills/motion-graphics/SKILL.md +206 -0
- package/skills/motion-graphics/references/craft.md +136 -0
- package/skills/motion-graphics/references/engine.md +130 -0
- package/skills/motion-graphics/references/export.md +67 -0
- package/skills/motion-graphics/references/physics.md +100 -0
- package/skills/motion-graphics/references/verify.md +124 -0
- package/skills/motion-video/SKILL.md +133 -0
- package/skills/motion-video/references/audio-and-beat-sync.md +109 -0
- package/skills/motion-video/references/composition-contract.md +107 -0
- package/skills/motion-video/references/production-pipeline.md +147 -0
- package/skills/motion-video/references/style-comic-spiderverse.md +87 -0
- package/skills/motion-video/references/style-glass-keynote.md +69 -0
- package/skills/motion-video-maker/SKILL.md +1452 -0
- package/skills/motion-video-maker/reference/components.md +451 -0
- package/skills/motion-video-maker/reference/workflow.md +190 -0
- package/skills/motioncraft/SKILL.md +221 -0
- package/skills/motioncraft/references/animation-system.md +57 -0
- package/skills/motioncraft/references/assets-and-licensing.md +21 -0
- package/skills/motioncraft/references/customization.md +52 -0
- package/skills/motioncraft/references/gpu-cloud-render.md +15 -0
- package/skills/motioncraft/references/music.md +43 -0
- package/skills/motioncraft/references/phase1-planning-and-preview.md +74 -0
- package/skills/motioncraft/references/phase2-timeline-audio.md +33 -0
- package/skills/motioncraft/references/phase3-pixel-review.md +13 -0
- package/skills/motioncraft/references/phase4-templates.md +30 -0
- package/skills/motioncraft/references/preflight.md +27 -0
- package/skills/motioncraft/references/qa.md +53 -0
- package/skills/motioncraft/references/reference-analysis.md +37 -0
- package/skills/narrator-ai-cli/SKILL.md +256 -0
- package/skills/narrator-ai-cli/references/magic-video.md +205 -0
- package/skills/narrator-ai-cli/references/operations.md +230 -0
- package/skills/narrator-ai-cli/references/resources.md +126 -0
- package/skills/narrator-ai-cli/references/workflows.md +332 -0
- package/skills/newcut-video-clipping/SKILL.md +194 -0
- package/skills/newcut-video-clipping/references/examples.md +59 -0
- package/skills/newcut-video-clipping/references/provider-config.md +110 -0
- package/skills/newcut-video-clipping/references/quality-check.md +35 -0
- package/skills/newcut-video-clipping/references/semantic-plan.md +65 -0
- package/skills/notes-to-video/SKILL.md +476 -0
- package/skills/openchatcut/SKILL.md +100 -0
- package/skills/openchatcut/references/editing-workflow.md +54 -0
- package/skills/openchatcut/references/getting-started.md +106 -0
- package/skills/openchatcut/references/known-errors.md +62 -0
- package/skills/openstoryline-install/SKILL.md +228 -0
- package/skills/orca-motion/SKILL.md +100 -0
- package/skills/orca-motion/references/api.md +100 -0
- package/skills/orca-motion/references/integration.md +59 -0
- package/skills/orca-motion/references/kinetic-type.md +59 -0
- package/skills/orca-motion/references/principles.md +76 -0
- package/skills/package-talking-head-video/SKILL.md +90 -0
- package/skills/package-talking-head-video/docs/EXAMPLES.md +18 -0
- package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +29 -0
- package/skills/package-talking-head-video/docs/USAGE.md +83 -0
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +144 -0
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +1099 -0
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +154 -0
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +365 -0
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +56 -0
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +8 -0
- package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +34 -0
- package/skills/package-talking-head-video/references/director-rules.md +29 -0
- package/skills/package-talking-head-video/references/motion-and-illustration.md +25 -0
- package/skills/paper-cut/SKILL.md +164 -0
- package/skills/paper-cut/references/asset-spec.md +47 -0
- package/skills/paper-cut/references/audio-and-chatcut.md +26 -0
- package/skills/paper-cut/references/hyperframes-assembly.md +47 -0
- package/skills/paper-cut/references/image-led-production.md +65 -0
- package/skills/paper-cut/references/storyboard-schema.md +48 -0
- package/skills/paper-cut/references/workflow.md +39 -0
- package/skills/personal-ip-brand-intro/SKILL.md +216 -0
- package/skills/personal-ip-brand-intro/references/intake-schema.md +79 -0
- package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +40 -0
- package/skills/personal-ip-brand-intro/references/originality-rules.md +42 -0
- package/skills/personal-ip-brand-intro/references/qa-checklist.md +60 -0
- package/skills/personal-ip-brand-intro/references/rhythm-routing.md +41 -0
- package/skills/personal-ip-brand-intro/references/storyboard-contract.md +42 -0
- package/skills/pixel2motion/SKILL.md +279 -0
- package/skills/pixel2motion/references/html-delivery-template.md +42 -0
- package/skills/pixel2motion/references/motion-personality.md +109 -0
- package/skills/pixel2motion/references/reveal-patterns.md +163 -0
- package/skills/pixel2motion/references/ribbon-fitting.md +90 -0
- package/skills/pixel2motion/references/twelve-principles-for-logos.md +116 -0
- package/skills/premiere-batch-delivery/SKILL.md +71 -0
- package/skills/premiere-pro-mcp/SKILL.md +161 -0
- package/skills/promo-creator-skills/SKILL.md +209 -0
- package/skills/promo-creator-skills/references/mureka_prompt_guide.md +251 -0
- package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +100 -0
- package/skills/promo-video/SKILL.md +408 -0
- package/skills/qisi-video-remix/SKILL.md +134 -0
- package/skills/qisi-video-remix/examples/creative-plan.md +133 -0
- package/skills/qisi-video-remix/references/delivery-guide.md +63 -0
- package/skills/reel-video/SKILL.md +237 -0
- package/skills/remotion-ad-video/SKILL.md +252 -0
- package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +60 -0
- package/skills/remotion-ad-video/references/ad-brief-contract.md +235 -0
- package/skills/remotion-ad-video/references/ad-exemplars.md +186 -0
- package/skills/remotion-ad-video/references/ad-intake.md +54 -0
- package/skills/remotion-ad-video/references/asset-harvest.md +56 -0
- package/skills/remotion-ad-video/references/audio-caption-system.md +202 -0
- package/skills/remotion-ad-video/references/concept-contract.md +128 -0
- package/skills/remotion-ad-video/references/creative-direction.md +146 -0
- package/skills/remotion-ad-video/references/fast-test-workflow.md +86 -0
- package/skills/remotion-ad-video/references/game-ad-patterns.md +75 -0
- package/skills/remotion-ad-video/references/hyperframes-output.md +90 -0
- package/skills/remotion-ad-video/references/industry-angle-library.md +71 -0
- package/skills/remotion-ads/SKILL.md +278 -0
- package/skills/remotion-ads/references/ad-copywriting.md +229 -0
- package/skills/remotion-ads/references/animations.md +693 -0
- package/skills/remotion-ads/references/brand-config-template.md +355 -0
- package/skills/remotion-ads/references/captions.md +529 -0
- package/skills/remotion-ads/references/carousels.md +580 -0
- package/skills/remotion-ads/references/components.md +897 -0
- package/skills/remotion-ads/references/copy-frameworks.md +144 -0
- package/skills/remotion-ads/references/formats.md +436 -0
- package/skills/remotion-ads/references/gemini-tts.md +473 -0
- package/skills/remotion-ads/references/html-in-canvas.md +555 -0
- package/skills/remotion-ads/references/local-assets.md +543 -0
- package/skills/remotion-ads/references/music.md +656 -0
- package/skills/remotion-code-motion-explainer/SKILL.md +178 -0
- package/skills/remotion-code-motion-explainer/references/code-motion-design.md +86 -0
- package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +93 -0
- package/skills/remotion-code-motion-explainer/references/production-and-qc.md +99 -0
- package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +48 -0
- package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +62 -0
- package/skills/remotion-motion-graphics/SKILL.md +169 -0
- package/skills/remotion-motion-graphics/references/patterns.md +355 -0
- package/skills/remotion-motion-graphics/references/polish.md +102 -0
- package/skills/remotion-motion-graphics/references/scaffold.md +144 -0
- package/skills/remotion-motion-graphics/references/traps.md +152 -0
- package/skills/remotion-resemble-ai/SKILL.md +879 -0
- package/skills/remotion-resemble-ai/rules/resemble-captions.md +350 -0
- package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +305 -0
- package/skills/remotion-resemble-ai/rules/resemble-setup.md +284 -0
- package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +225 -0
- package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +239 -0
- package/skills/remotion-resemble-ai/rules/resemble-voices.md +213 -0
- package/skills/remotion-resemble-ai/rules/visual-animations.md +567 -0
- package/skills/riffkit/SKILL.md +196 -0
- package/skills/riffkit/examples/any-look-styles.md +11 -0
- package/skills/riffkit/examples/faceless-and-auto.md +16 -0
- package/skills/riffkit/examples/localize-spanish.md +18 -0
- package/skills/riffkit/examples/tiktok-shop-product.md +22 -0
- package/skills/riffkit/references/anchor.md +62 -0
- package/skills/riffkit/references/api.md +806 -0
- package/skills/riffkit/references/details.md +153 -0
- package/skills/riffkit/references/errors.md +69 -0
- package/skills/riffkit/references/intents.md +29 -0
- package/skills/saas-motion-video/SKILL.md +71 -0
- package/skills/script-to-video/SKILL.md +2627 -0
- package/skills/shorts/SKILL.md +372 -0
- package/skills/shorts/references/caption-styles.md +105 -0
- package/skills/shorts/references/platform-specs.md +149 -0
- package/skills/shorts/references/remotion-patterns.md +180 -0
- package/skills/shorts/references/scoring-rubric.md +106 -0
- package/skills/smart-video-editor/SKILL.md +327 -0
- package/skills/smart-video-editor/docs/FONTS.md +57 -0
- package/skills/story-telling/SKILL.md +222 -0
- package/skills/story-telling/rules/composition.md +130 -0
- package/skills/story-telling/rules/images.md +119 -0
- package/skills/story-telling/rules/models.md +98 -0
- package/skills/story-telling/rules/narration.md +87 -0
- package/skills/story-telling/rules/pitfalls.md +140 -0
- package/skills/story-telling/rules/story-formats.md +108 -0
- package/skills/story-telling/rules/story-json.md +143 -0
- package/skills/story-telling/rules/voices.md +114 -0
- package/skills/story-telling/rules/workflow.md +105 -0
- package/skills/story-to-handdrawn-video/SKILL.md +216 -0
- package/skills/story-to-handdrawn-video/references/asset-workflow.md +24 -0
- package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +27 -0
- package/skills/su-card-to-video/SKILL.md +103 -0
- package/skills/talking-head-video-pipeline/SKILL.md +224 -0
- package/skills/talking-head-video-pipeline/examples/prompts.md +217 -0
- package/skills/talking-head-video-pipeline/references/asr-adapters.md +51 -0
- package/skills/talking-head-video-pipeline/references/caption-workflow.md +53 -0
- package/skills/talking-head-video-pipeline/references/export-recipes.md +78 -0
- package/skills/talking-head-video-pipeline/references/layout-safety.md +49 -0
- package/skills/talking-head-video-pipeline/references/video-use-integration.md +71 -0
- package/skills/talking-head-video-pipeline/references/workflows/captions.md +52 -0
- package/skills/talking-head-video-pipeline/references/workflows/design.md +77 -0
- package/skills/talking-head-video-pipeline/references/workflows/doctor.md +51 -0
- package/skills/talking-head-video-pipeline/references/workflows/export.md +50 -0
- package/skills/talking-head-video-pipeline/references/workflows/init.md +51 -0
- package/skills/talking-head-video-pipeline/references/workflows/learn.md +36 -0
- package/skills/text-to-lottie/SKILL.md +202 -0
- package/skills/text-to-lottie/references/chapterization-transition-grammar.md +132 -0
- package/skills/text-to-lottie/references/design-taste.md +292 -0
- package/skills/text-to-lottie/references/lottie-spec-map.md +82 -0
- package/skills/text-to-lottie/references/motion-taste.md +260 -0
- package/skills/text-to-lottie/references/player-contract.md +325 -0
- package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +65 -0
- package/skills/text-to-lottie/references/recipe-data-stats.md +104 -0
- package/skills/text-to-lottie/references/recipe-diagram-technical.md +106 -0
- package/skills/text-to-lottie/references/recipe-loaders-icons.md +70 -0
- package/skills/text-to-lottie/references/recipe-logo.md +72 -0
- package/skills/text-to-lottie/references/recipe-lower-thirds.md +62 -0
- package/skills/text-to-lottie/references/recipe-product-promo.md +99 -0
- package/skills/ultrademo/SKILL.md +212 -0
- package/skills/video-assemble/SKILL.md +101 -0
- package/skills/video-assemble-zenstory-ai/SKILL.md +153 -0
- package/skills/video-assemble-zenstory-ai/references/audio-modes.md +63 -0
- package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +77 -0
- package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +14 -0
- package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +103 -0
- package/skills/video-assemble-zenstory-ai/references/packaging.md +44 -0
- package/skills/video-assemble-zenstory-ai/references/source-score.md +146 -0
- package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +202 -0
- package/skills/video-editing/SKILL.md +688 -0
- package/skills/video-explainer/SKILL.md +163 -0
- package/skills/video-explainer/references/brief-to-script.md +56 -0
- package/skills/video-explainer/references/errors-and-privacy.md +18 -0
- package/skills/video-explainer/references/motion-storyboard.md +82 -0
- package/skills/video-explainer/references/render-and-verify.md +62 -0
- package/skills/video-explainer/references/review-gate.md +82 -0
- package/skills/video-explainer/references/setup-and-doctor.md +33 -0
- package/skills/video-script-builder/SKILL.md +329 -0
- package/skills/video-script-builder/examples/quick-start-transcript.md +19 -0
- package/skills/video-script-builder/references/audio-workflow.md +84 -0
- package/skills/video-script-builder/references/caption-components.md +70 -0
- package/skills/video-script-builder/references/common-pitfalls.md +80 -0
- package/skills/video-script-builder/references/component-catalog.md +197 -0
- package/skills/video-script-builder/references/component-recipes.md +165 -0
- package/skills/video-script-builder/references/gsap-patterns.md +112 -0
- package/skills/video-script-builder/references/pacing-rules.md +78 -0
- package/skills/video-script-builder/references/quality-checklist.md +98 -0
- package/skills/video-script-builder/references/remotion-patterns.md +211 -0
- package/skills/video-script-builder/references/shader-transitions.md +115 -0
- package/skills/video-script-builder/references/taste-principles.md +160 -0
- package/skills/video-scrub/SKILL.md +216 -0
- package/skills/video-scrub/references/profiles.md +89 -0
- package/skills/video-scrub/references/residue-map.md +204 -0
- package/skills/video-short-maker/SKILL.md +182 -0
- package/skills/video-shot-analysis-feishu/SKILL.md +173 -0
- package/skills/video-shotcraft/SKILL.md +267 -0
- package/skills/video-shotcraft/docs/deepseek-harness.md +69 -0
- package/skills/video-shotcraft/references/aesthetic-rules.md +177 -0
- package/skills/video-shotcraft/references/final-review.md +112 -0
- package/skills/video-shotcraft/references/guided-free-creation.md +199 -0
- package/skills/video-shotcraft/references/jianying-export.md +182 -0
- package/skills/video-shotcraft/references/music-beat-sync.md +219 -0
- package/skills/video-shotcraft/references/pipeline.md +390 -0
- package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +50 -0
- package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +65 -0
- package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +39 -0
- package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +38 -0
- package/skills/video-shotcraft-vincentwei10/SKILL.md +316 -0
- package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +187 -0
- package/skills/video-shotcraft-vincentwei10/references/final-review.md +116 -0
- package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +199 -0
- package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +183 -0
- package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +257 -0
- package/skills/video-shotcraft-vincentwei10/references/pipeline.md +401 -0
- package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +111 -0
- package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +50 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +62 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +41 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +52 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +39 -0
- package/skills/video-structure-analyzer/SKILL.md +148 -0
- package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +50 -0
- package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +19 -0
- package/skills/video-toolkit/SKILL.md +686 -0
- package/skills/videocut/SKILL.md +159 -0
- package/skills/videodb/SKILL.md +497 -0
- package/skills/videodb/reference/api-reference.md +741 -0
- package/skills/videodb/reference/capture-reference.md +399 -0
- package/skills/videodb/reference/capture.md +110 -0
- package/skills/videodb/reference/editor-reference.md +506 -0
- package/skills/videodb/reference/editor.md +389 -0
- package/skills/videodb/reference/generative.md +344 -0
- package/skills/videodb/reference/indexing-reference.md +481 -0
- package/skills/videodb/reference/indexing.md +537 -0
- package/skills/videodb/reference/legacy/index-reference.md +223 -0
- package/skills/videodb/reference/legacy/index.md +241 -0
- package/skills/videodb/reference/legacy/search.md +249 -0
- package/skills/videodb/reference/migration.md +113 -0
- package/skills/vlog-auto-edit/SKILL.md +982 -0
- package/skills/vlog-auto-edit/examples/project_structure.md +84 -0
- package/skills/vox-animated-ad-mcp/SKILL.md +419 -0
- package/skills/vox-director/SKILL.md +351 -0
- package/skills/vox-director/references/beat-layer.md +143 -0
- package/skills/vox-director/references/host-mode.md +120 -0
- package/skills/vox-director/references/local-engine.md +73 -0
- package/skills/vox-director/references/models-and-gotchas.md +91 -0
- package/skills/vox-director/references/prompt-guide.md +275 -0
- package/skills/vox-director/references/voices.md +59 -0
- package/skills/xingchen-vox-collage/SKILL.md +251 -0
- package/skills/xingchen-vox-collage/references/asset-layer-contract.md +98 -0
- package/skills/xingchen-vox-collage/references/creative-exploration.md +19 -0
- package/skills/xingchen-vox-collage/references/learned-branches.md +34 -0
- package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +77 -0
- package/skills/xingchen-vox-collage/references/visual-language.md +74 -0
- package/skills/xingchen-vox-collage/references/visual-qa.md +59 -0
- package/skills/youtube/SKILL.md +147 -0
- package/skills/youtube/references/algorithm-guide.md +59 -0
- package/skills/youtube/references/analytics-benchmarks.md +67 -0
- package/skills/youtube/references/dataforseo-integration.md +51 -0
- package/skills/youtube/references/monetization-guide.md +62 -0
- package/skills/youtube/references/repurposing-guide.md +54 -0
- package/skills/youtube/references/retention-scripting-guide.md +75 -0
- package/skills/youtube/references/seo-playbook.md +77 -0
- package/skills/youtube/references/shorts-playbook.md +64 -0
- package/skills/youtube/references/thumbnail-ctr-guide.md +73 -0
- package/skills/youtube-shorts-factory/SKILL.md +358 -0
- package/skills/youtube-shorts-factory/resources/adaptation-guide.md +133 -0
- package/skills/youtube-shorts-factory/resources/storyboard-template.md +271 -0
- package/skills/youtube-shorts-factory/resources/workflow-steps.md +139 -0
- package/studio/client.mjs +3 -3
- package/studio/server/server.mjs +31 -3
- package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +1 -0
- package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +2 -0
- package/studio/ui/dist/assets/apple-touch-icon-ClxQ7j-O.png +0 -0
- package/studio/ui/dist/assets/{es-BRUzvuoM.js → es-AqUfIkAy.js} +1 -1
- package/studio/ui/dist/assets/favicon-Blwx8Trs.png +0 -0
- package/studio/ui/dist/assets/index-C7moXjTY.css +1 -0
- package/studio/ui/dist/assets/index-DdU5QNpY.js +1623 -0
- package/studio/ui/dist/assets/{ja-Cth-uDcW.js → ja-YwiCB4QQ.js} +1 -1
- package/studio/ui/dist/assets/{ko-upvw591D.js → ko-CKtBPDze.js} +1 -1
- package/studio/ui/dist/assets/{zh-CN-BCfJFazB.js → zh-CN-DtNEwKWJ.js} +1 -1
- package/studio/ui/dist/index.html +4 -3
- package/studio/ui/dist/assets/ExportCenter-F-2vF-lQ.js +0 -1
- package/studio/ui/dist/assets/SettingsModal-BgVYguNu.js +0 -2
- package/studio/ui/dist/assets/index-Bhg-9dA3.css +0 -1
- package/studio/ui/dist/assets/index-CWur1Iw9.js +0 -1625
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Backends and adapters
|
|
2
|
+
|
|
3
|
+
One art core, four backends, and the core cannot see any of them. An adapter is the only thing
|
|
4
|
+
that knows how a film becomes pixels.
|
|
5
|
+
|
|
6
|
+
## The interface
|
|
7
|
+
|
|
8
|
+
Every adapter exports the same four things, so `tools/gate.mjs` can hold any of them to the same
|
|
9
|
+
bar without knowing which it has:
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
export const name = "html-player";
|
|
13
|
+
export const describe = () => "one sentence: what this adapter DELIVERS";
|
|
14
|
+
export const probe = () => ({ ok, why }); // can it run here, and if not, why not
|
|
15
|
+
export const open = async (film, { scale, workers }) => session;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
A session is:
|
|
19
|
+
|
|
20
|
+
```js
|
|
21
|
+
{ workers, // how many independent draw contexts it actually opened
|
|
22
|
+
info(), // -> film.meta
|
|
23
|
+
frame(n, w), // -> { png: Buffer, shot, drawMs }
|
|
24
|
+
hash(n, w), // -> stable digest of the drawn pixels
|
|
25
|
+
audio(sampleRate), // -> { sampleRate, frames, pcm16 } | null
|
|
26
|
+
artifact(), // -> the adapter's own deliverable, or null
|
|
27
|
+
close() }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`workers` is the number of independent contexts, and the gate uses it to redraw the same frames a
|
|
31
|
+
different way. That is a stronger test than it sounds: each instance has its own texture tiles,
|
|
32
|
+
its own layer pool and its own cache, so two instances agreeing means the caches are genuinely
|
|
33
|
+
keyed on what the pixels depend on and not on the order somebody happened to ask for frames in.
|
|
34
|
+
|
|
35
|
+
## The four
|
|
36
|
+
|
|
37
|
+
| Adapter | Delivers | Needs |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `playwright` | frames, as a means to an MP4 | playwright + a chromium build |
|
|
40
|
+
| `html-player` | **the page**: one self-contained offline HTML file | playwright + a chromium build |
|
|
41
|
+
| `remotion` | frames through a Remotion `<Composition>` | `remotion`, `@remotion/bundler`, `@remotion/renderer` |
|
|
42
|
+
| `hyperframes` | frames seeked in headless Chrome by the Hyperframes engine | `@hyperframes/engine`, Node >= 22, ffmpeg |
|
|
43
|
+
|
|
44
|
+
## Warm and cold catch different bugs
|
|
45
|
+
|
|
46
|
+
This is the one thing to carry away.
|
|
47
|
+
|
|
48
|
+
- **`html-player` shares one warm cache across frames.** It can catch a cache key that fails to
|
|
49
|
+
name everything its pixels depend on, because it draws frame 512 and then frame 128 into the
|
|
50
|
+
same session and compares.
|
|
51
|
+
- **`remotion` renders every frame COLD** — each still is its own page, its own module state, its
|
|
52
|
+
own cache. It proves frame N owes nothing to the frames before it, and it **cannot** catch a
|
|
53
|
+
stale cache, because there never is one.
|
|
54
|
+
|
|
55
|
+
On this film a real order-dependence sat in the plate composer: five cached surfaces baked the
|
|
56
|
+
line's "boil" into their pixels while leaving it out of their key. The warm adapter found it and
|
|
57
|
+
named the poisoning frame. The cold adapter passed happily. **Run both. Neither is the whole bar.**
|
|
58
|
+
|
|
59
|
+
## Writing a new one
|
|
60
|
+
|
|
61
|
+
Ninety percent of an adapter is plumbing; the film is already a pure function of the frame number,
|
|
62
|
+
which is what every one of these backends actually wants. Two traps, both paid for:
|
|
63
|
+
|
|
64
|
+
- **Remotion screenshots when React commits**, and a committed `<canvas>` is a blank one until the
|
|
65
|
+
effect runs. Hold the frame with `delayRender` / `continueRender` around the draw or you will
|
|
66
|
+
ship empty plates that pass every hash check, because they are consistently empty.
|
|
67
|
+
- **Do not pass the film through props.** A `Film` carries functions (every shot's `draw`, the
|
|
68
|
+
score) and most frameworks serialize props. Close over it instead.
|
|
69
|
+
|
|
70
|
+
For a backend that drives a **seekable page** rather than a component, the page-side contract is
|
|
71
|
+
small and this engine already satisfies it: a finite frame count, forward, backward and random
|
|
72
|
+
seeks, and the same state whenever the same frame is asked for again. `window.FILM.seek(n)` is the
|
|
73
|
+
whole implementation. `tools/verify-frame-adapter.mjs` holds such an adapter to that contract
|
|
74
|
+
using playwright, which means you can prove the page-side half **before** the backend is installed.
|
|
75
|
+
|
|
76
|
+
## If a backend is not installed
|
|
77
|
+
|
|
78
|
+
Say so. Keep every reference behind a dynamic import inside `open()` so the file imports clean,
|
|
79
|
+
make `probe()` name what is missing and how to get it, and let the gate report `CANNOT RUN`
|
|
80
|
+
(exit 2) rather than failing. Then check that the module really exports what you are about to
|
|
81
|
+
call, and if it does not, say what it exported instead. A backend that is not installed should
|
|
82
|
+
report that it is not installed — it should never quietly produce a wrong answer.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# The camera: one dolly and one lens, keyed on the frame grid
|
|
2
|
+
|
|
3
|
+
`engine/src/canvas-core/camera.ts` is the camera. A film either draws in world coordinates
|
|
4
|
+
inside `begin()`/`end()` (the transform path: dirty boxes stay right because the camera rides
|
|
5
|
+
the `Gfx` transform stack), or asks `toScreen()` where a world point lands and draws there (the
|
|
6
|
+
projector path). Both come from the same state, so a caption pinned to the frame and the world
|
|
7
|
+
it floats over can never disagree. Everything is a pure function of the frame: the same camera
|
|
8
|
+
question gets the same answer on any machine, in any order.
|
|
9
|
+
|
|
10
|
+
## The move
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { Camera } from "./camera";
|
|
14
|
+
|
|
15
|
+
const cam = new Camera([W / 2, H / 2], [
|
|
16
|
+
{ f: 0, look: [400, 300], zoom: 1, ease: "inout" }, // ease governs the segment this key LEAVES
|
|
17
|
+
{ f: 90, look: [900, 300], zoom: 2 },
|
|
18
|
+
{ f: 150, look: [900, 300], zoom: 2 }, // a hold: say it, don't imply it
|
|
19
|
+
{ f: 240, look: [400, 300], zoom: 1 },
|
|
20
|
+
]);
|
|
21
|
+
cam.shake({ from: 96, to: 126, amp: 14, seed: 7, rot: 0.004 }); // an impact, ringing down
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- **The `zoom` key is the dolly**: how close the camera stands (see Lens and dolly below). It is
|
|
25
|
+
interpolated in log2, because it is a ratio: halving the apparent size twice should take twice
|
|
26
|
+
as long as halving it once. Ease the value itself and a long push-in sprints at the near end
|
|
27
|
+
and crawls at the far one; easing log2(zoom) spends time evenly per stop. A `lens` key eases
|
|
28
|
+
the same way.
|
|
29
|
+
- **Easing per segment, `inout` (easeInOutCubic) by default.** A camera move with no live
|
|
30
|
+
operator should accelerate gently and arrive gently. `linear` reads as mechanical, `out`
|
|
31
|
+
alone reads as interrupted, `in` alone as a fall.
|
|
32
|
+
- **A dolly path with several keys** breathes at every key under per-segment easing. Pass
|
|
33
|
+
`monoZoom: true` to run one monotone cubic through all the `zoom` keys in log2 instead: smooth,
|
|
34
|
+
never overshooting into a scale it was not given, never reversing.
|
|
35
|
+
- **Authored paths**: for a camera that follows a creature or a curve, pass
|
|
36
|
+
`path: (f) => ({ look, zoom, lens? })` instead of keys. Same camera, same shake, same projections.
|
|
37
|
+
|
|
38
|
+
## Depth planes (parallax)
|
|
39
|
+
|
|
40
|
+
The camera sits at distance D = 1/zoom from the hero plane (z = 0). A plane at depth z scales
|
|
41
|
+
by `lens/(D + z)` and moves with it: near planes swing wide, far ones barely stir, and every
|
|
42
|
+
element at a depth agrees with every other, because there is only one camera. Positive z
|
|
43
|
+
recedes; a negative z crosses the lens (grass across the glass). Pass the plane's z to
|
|
44
|
+
`begin(g, f, z)` or `toScreen(p, f, z)`. One dolly, one number, and the parallax is true for
|
|
45
|
+
every element at once: do not hand each plane its own drift.
|
|
46
|
+
|
|
47
|
+
## Lens and dolly
|
|
48
|
+
|
|
49
|
+
Two different moves make the subject bigger, and directors name them apart:
|
|
50
|
+
|
|
51
|
+
- **A dolly** moves the camera: the `zoom` key, distance D = 1/zoom. Near planes grow faster than
|
|
52
|
+
far ones, so the depth changes as it goes. This is a push-in, a pull-back, a dolly in or out.
|
|
53
|
+
- **A lens zoom** changes the focal length with the camera standing still: the `lens` key (1
|
|
54
|
+
when no key sets it; once one does, frames before the first lens key hold that key's value, so
|
|
55
|
+
key `lens: 1` where the zoom starts, as below). It multiplies every plane by the same factor about the frame's centre, so nothing
|
|
56
|
+
shifts against anything else; the picture is magnified, flat. A crash zoom or punch-in is this.
|
|
57
|
+
It reads as an operator's or a documentary's move, more noticed than a dolly. Use it when that
|
|
58
|
+
is the voice; for travelling into a world, dolly.
|
|
59
|
+
- **A dolly zoom** does both against each other: the camera dollies while the lens is solved on
|
|
60
|
+
every frame so the hero plane keeps its size, and the planes behind stretch away (dolly in) or
|
|
61
|
+
loom (dolly out). The subject holds still in a world that has just changed shape: the moment of
|
|
62
|
+
realisation (deck card `cam-vertigo-realisation`). It needs at least two planes behind the
|
|
63
|
+
subject; with nothing behind it, nothing visibly happens.
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
import { Camera, dollyZoom, heroScale } from "./camera";
|
|
67
|
+
|
|
68
|
+
const lensIn = new Camera(c, [{ f: 0, look, zoom: 1 }, { f: 40, lens: 1, ease: "out" }, { f: 52, lens: 2.2 }]); // a crash zoom
|
|
69
|
+
const dolly = new Camera(c, [{ f: 0, look, zoom: 1 }, { f: 60, zoom: 2.4 }]);
|
|
70
|
+
const vertigo = new Camera(c, [], { path: dollyZoom((f) => dolly.at(f)) }); // holds frame 0's hero scale
|
|
71
|
+
// dollyZoom(path, { hold: 1.5 }) holds a given scale; { at: 30 } holds the scale the path has at frame 30
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
`heroScale(cam)` is the hero plane's screen scale (dolly times lens), and the line-weight
|
|
75
|
+
compensation `weight(cam)` follows it, for a lens zoom as for a dolly.
|
|
76
|
+
|
|
77
|
+
## Time: speed ramps, slow motion, freeze frames
|
|
78
|
+
|
|
79
|
+
`engine/src/canvas-core/timeRemap.ts` maps the film's frame to the scene's frame: draw the world at
|
|
80
|
+
`t.at(f)` instead of `f`. Speed is what you key and scene time is its exact integral, so time is
|
|
81
|
+
continuous, never runs backwards, and stays a pure function of the frame.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { timeRemap } from "./timeRemap";
|
|
85
|
+
|
|
86
|
+
const t = timeRemap([
|
|
87
|
+
{ f: 84, speed: 0.3, ramp: 8 }, // ease into slow motion before the peak
|
|
88
|
+
{ f: 120, speed: 0, keepsMoving: "her name writes itself" }, // freeze: the world stops, the writing does not
|
|
89
|
+
{ f: 150, speed: 1, ramp: 14 }, // ease back to real time
|
|
90
|
+
]);
|
|
91
|
+
world(g, t.at(f)); // the remapped scene
|
|
92
|
+
name(g, f); // the writing, on the film's own frame
|
|
93
|
+
cues.push({ frame: t.filmFrameOf(LANDING), kind: "paper" }); // a sound on a remapped event
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
- **A ramp eases the speed**, on a smoothstep (or `curve: "linear"`), so it starts and ends with
|
|
97
|
+
no kick. `ramp` defaults to 0, a deliberate hard change of speed; give it frames to glide. A slowed scene is asked for frames between its frames, so it must
|
|
98
|
+
draw at fractional time (motion is a function of time, never of a frame counter).
|
|
99
|
+
- **Score and sound stay on real time.** The score never slows; effects are cued by film frame.
|
|
100
|
+
`filmFrameOf(sceneFrame)` gives the first film frame that shows a scene event, which is where
|
|
101
|
+
its sound goes.
|
|
102
|
+
- **A freeze must keep something moving.** A `speed: 0` key without `keepsMoving` (in words)
|
|
103
|
+
throws, and so does a speed under 0.01 (`MIN_SPEED`), which looks frozen without saying so: a frozen frame with nothing moving is dead air, and the gate fails it. Drive the thing
|
|
104
|
+
that moves (the name being written, the camera still creeping in) from the film's frame `f`.
|
|
105
|
+
`t.freezes` lists each stop with what keeps moving.
|
|
106
|
+
- **Once a film for each.** One slow motion at the peak, one freeze on the telling pose (deck
|
|
107
|
+
cards `emph-time-ramp`, `type-freeze-and-name`). The second halves the first.
|
|
108
|
+
|
|
109
|
+
## Shake
|
|
110
|
+
|
|
111
|
+
`shake({ from, to, amp, seed, freq, rot, attack })` registers an impact or a handheld stretch:
|
|
112
|
+
|
|
113
|
+
- **amp in SCREEN pixels**, so the shake reads the same at any dolly or lens; **rot** in radians at full
|
|
114
|
+
strength, about the frame's centre. A small rotation is what actually sells handheld.
|
|
115
|
+
- The envelope is an **attack ramp** (default 2 frames) into a **squared decay**: full strength
|
|
116
|
+
at the hit, gone a beat later. An impact rings down; it does not stop mid-air.
|
|
117
|
+
- The motion is **low-frequency gradient noise**, seeded, never white noise per frame. Static
|
|
118
|
+
per frame reads as a faulty projector; smooth noise reads as mass. `freq` is cycles per frame
|
|
119
|
+
(default 0.35, about 10 Hz at 30 fps; drop it for a heavier camera).
|
|
120
|
+
- Shake is folded into `shaken(f)`, which `begin` and `toScreen` read, so the drawn world and
|
|
121
|
+
any projected overlay shake together. `at(f)` stays clean for driving things that must not
|
|
122
|
+
shake (the score, a cue grid).
|
|
123
|
+
|
|
124
|
+
## Line weight at close range
|
|
125
|
+
|
|
126
|
+
Ink is authored at some view; at a screen scale S (dolly times lens) the same nib reads S times
|
|
127
|
+
heavier. Divide stroke widths by `weight(cam)` = S^0.35. Not S: a little weight gain is what
|
|
128
|
+
makes a close-up feel close rather than enlarged.
|
|
129
|
+
|
|
130
|
+
## The two drawing paths
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
// transform path: the world moves, you draw in world units
|
|
134
|
+
cam.begin(g, f); // hero plane
|
|
135
|
+
meadow(g, f);
|
|
136
|
+
cam.end(g);
|
|
137
|
+
cam.begin(g, f, 2.2); // a farther plane
|
|
138
|
+
hills(g, f);
|
|
139
|
+
cam.end(g);
|
|
140
|
+
|
|
141
|
+
// projector path: ask where things are, draw them there (cached surfaces, screen-space type)
|
|
142
|
+
const at = cam.toScreen(flower.centre, f, flower.z);
|
|
143
|
+
const k = cam.scaleAt(cam.at(f), flower.z);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`toWorld(s, f, z)` inverts `toScreen`, for hit-testing or for pinning world content to a screen
|
|
147
|
+
point. The camera never touches the context itself, the clock, or `Math.random`: it is
|
|
148
|
+
arithmetic over `(frame, keys, seed)`, which is what keeps the determinism contract intact.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# The craft bar
|
|
2
|
+
|
|
3
|
+
The test: would a proud human illustrator ship this, or is it mechanical shape-assembly?
|
|
4
|
+
|
|
5
|
+
| The tell | What passes |
|
|
6
|
+
|---|---|
|
|
7
|
+
| A subject built from ellipses and capsules | Hand-placed control points over real anatomy |
|
|
8
|
+
| One style recoloured to look like another | The mark, the edge and the order of marks all change |
|
|
9
|
+
| Boxes and arrows standing for an idea | A real machine that does what the idea describes while you watch, built from many small parts that each have a job (`machines.md`) |
|
|
10
|
+
| A line that stops in the air; a texture cut dead mid-surface | Lines meet another line or an edge; a row of ribs or pins thins out where the surface turns away |
|
|
11
|
+
| Parts floating off or sunk into each other | Parts touch the way real ones do (bolted, resting, butted against), each held by something; zoom to 3x on the joints |
|
|
12
|
+
| Flat colour fields | Wash, then pattern wet-on-damp, then line; one named light; cast shadows |
|
|
13
|
+
| Every stroke the same weight and speed | Long strokes fast, fiddly ones slow, thick-thin, tapered |
|
|
14
|
+
| Even scatter, one flower stamped 200 times | Hand-placed drifts with bare rests; 4-5 authored views per species |
|
|
15
|
+
| Gradient sky, disc sun, oval bokeh | Granulating wash, sun as paper left light, lost edges |
|
|
16
|
+
| Decoration | Every element has a one-line reason or it is not drawn |
|
|
17
|
+
| A row of style vignettes (film) | One arc. The medium changes only when the STORY changes state |
|
|
18
|
+
| Things fade or scale in | Marks are MADE, in the order a hand makes them |
|
|
19
|
+
| Both sides do the same thing at once | One side leads, by a few frames, never half a cycle |
|
|
20
|
+
| A hold | The camera may creep. The subject never stops |
|
|
21
|
+
| People with rubber joints, mitten hands, floating feet | A canon (heads tall for the age), joints within their limits, five fingers where seen, weight over the feet (`anatomy.md`) |
|
|
22
|
+
| The same character drawn differently shot to shot | One character module; shots pose it, never redraw it (`workflows/character-consistency.md`) |
|
|
23
|
+
| A silhouette filled with texture, no mouth line, no toes | Interior contours: mouth, eyelids, nostrils, toes, joins between forms (the detail pass below) |
|
|
24
|
+
| A drawing film where the finished picture fades in | Marks made in the medium's order; the last frames are the still (`workflows/drawing-process.md`) |
|
|
25
|
+
| Words laid over busy art, a face or the UI | Type gets its own frame by default; over the picture only as a composed label or kinetic line on a calm area (`workflows/launch-video.md`, Type) |
|
|
26
|
+
| A loop playing in place and called "alive" | Real travel through a world that changes as the subject moves |
|
|
27
|
+
| An unmatched hard cut or a sharp swoosh between scenes | A gentle move (a bloom, a flip, a push, the card grows into the frame), or a cut matched on shape, position or beat |
|
|
28
|
+
| Site art that brings its own background, so a pale box shows on a page of a different colour | `paper` is set to the page's exact colour and every neutral shifts to suit it; a light and a dark theme come out of the same code (`workflows/site-art.md`) |
|
|
29
|
+
| A part, a cast shadow or a highlight straying into the headline's space | Nothing is drawn in the headline zone, and `tools/placement.mjs` proves it |
|
|
30
|
+
| A spinner drawn as still blades turning slowly | Fainter copies of the blades, each a little further back, over a faint swept shape (`spin`), so it reads as speed |
|
|
31
|
+
|
|
32
|
+
**No dead air** in anything that moves: something visibly changes in every second, from frame 0.
|
|
33
|
+
Check it with the tool AND by eye: a creeping camera changes every pixel and satisfies the tool
|
|
34
|
+
while the eye sees a still.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
**Words get time to be read, and a quiet ground.** A text stays on screen at least
|
|
38
|
+
`max(0.7 s, 0.3 s per word)`: "ART OUT." needs 0.7 s, a six-word line 1.8 s. Count from the frame
|
|
39
|
+
the last word is whole, and give a slower audience (children, a second language) more. Text is
|
|
40
|
+
never set over a busy picture without a plate under it: a solid or softly tinted panel, a scrim, or
|
|
41
|
+
a clear patch of the drawing, so every letter has a ground it can be read against. Squint at the
|
|
42
|
+
frame; if a letter disappears, the plate is missing. `framecheck.mjs` holds the first rule on every
|
|
43
|
+
declared text cue (`meta.captions`) and reports N/A for a film that declares none; the second is a
|
|
44
|
+
review finding (`workflows/review.md`), because only an eye can judge busy.
|
|
45
|
+
|
|
46
|
+
**Judge the design, not only the collisions.** A review still can have nothing overlapping and
|
|
47
|
+
still fail: no hierarchy, cramped spacing, a frame that would not pass as a poster. Look at each
|
|
48
|
+
review frame as a designer first, a checker second.
|
|
49
|
+
|
|
50
|
+
**Preview options before full renders.** When a choice is open (a transition, a lettering
|
|
51
|
+
medium, a palette), show a cheap still sheet of the options side by side and let the person
|
|
52
|
+
pick. A full render per option spends the most expensive resource on the cheapest question.
|
|
53
|
+
|
|
54
|
+
## The detail pass (run it on every piece before showing it)
|
|
55
|
+
|
|
56
|
+
A silhouette filled with texture is not a drawing. Before any still, recreation or character is
|
|
57
|
+
shown, crop into it at full size and check the interior, because that is where a viewer looks:
|
|
58
|
+
|
|
59
|
+
- **Faces**: the mouth line and the split of the upper lip, the chin, the nose's outline and
|
|
60
|
+
nostrils, both eyelids and the inner corner of the eye, brow markings, the ear's inner rim.
|
|
61
|
+
- **Hands, paws and feet**: every finger or toe separated, knuckles and pads where they show, nails
|
|
62
|
+
or claws, the way the foot meets the ground (contact shadow, weight).
|
|
63
|
+
- **Joins between forms**: where a leg meets the body, where an arm crosses the chest, where cloth
|
|
64
|
+
folds at a joint. These are contour lines inside the silhouette, thinner than the outline and
|
|
65
|
+
broken where light hits.
|
|
66
|
+
- **Markings and pattern**: stripes, spots, seams and patches follow the form's surface, not the
|
|
67
|
+
picture plane.
|
|
68
|
+
- **Recreations from a photo**: trace each of the above from the photo and overlay-check it; tone
|
|
69
|
+
alone never supplies interior lines.
|
|
70
|
+
|
|
71
|
+
Each medium says it in its own way (a carved keyblock line, a scratched cut, a pencil accent, a darker
|
|
72
|
+
brick), but none of them may leave it out.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Determinism, or it is not a film, it is a performance
|
|
2
|
+
|
|
3
|
+
> Doctrine earned making MECHANICAL LEPIDOPTERA, the worked example in `example/`. Every rule
|
|
4
|
+
> below was paid for on that film; where a mistake was the director's own it says so, because
|
|
5
|
+
> a rule with its scar attached is one people keep.
|
|
6
|
+
|
|
7
|
+
**Why.** "Backend-agnostic" is a promise that a frame is a fact. Frame 731 is the same pixels on a laptop, in CI, inside Remotion at concurrency 8, rendered first or last or alone. Every convenience you allow yourself breaks that promise somewhere you will not be looking: parallel renderers draw frames out of order, Safari has no `ctx.filter`, a fetched font arrives late once in fifty runs.
|
|
8
|
+
|
|
9
|
+
**The contract.**
|
|
10
|
+
1. `renderFrame(frame, env)` is PURE. No state carried between frames, no module-level mutable state that touches pixels. Audio is the same: samples are a pure function of the sample rate.
|
|
11
|
+
2. Randomness only from `rng(seed)`. Never `Math.random`. Never `Date`, never `performance.now` in the core; timing belongs to hosts.
|
|
12
|
+
3. A restricted canvas: paths, fill, stroke, clip, transforms, alpha, composite operations, patterns, gradients, `drawImage`, image data, `fillText` with a preloaded font. **No `ctx.filter` in any form.** No DOM, no `window`, no `new OffscreenCanvas` or `new Image`; surfaces come from `env.canvas()`.
|
|
13
|
+
4. **No assets.** No images, no fonts, no audio files in the repository. Lettering is pen strokes; texture is seeded noise; music is arithmetic. This is what makes the repo the whole film, with no licensing questions. The optional sound pack is the one thing fetched from outside, it is installed by hash, and a film renders without it.
|
|
14
|
+
5. Caches are legal only when the value is a pure function of its key, and **the key names everything the pixels depend on**. We found two violations by machine, never by eye: an annotation layer whose key omitted the crank angle two of its leaders pointed at, and one that omitted the pose. A cached frame and a cold frame of the same number must be the same pixels.
|
|
15
|
+
6. Never scale a bitmap up. Close shots are re-inked at that view; cached surfaces may only be downscaled, and only a little.
|
|
16
|
+
|
|
17
|
+
**The grid is part of the contract.** Every frame number in the film lives in ONE cue table, and a checker runs at module load: cuts on multiples of 15, events on multiples of 5, nothing past the end. State for a frame is computed from that table and nothing else. The table is the timeline a reviewer reads.
|
|
18
|
+
|
|
19
|
+
**Verification that actually catches things.**
|
|
20
|
+
- Hash a handful of probe frames forward on one page and reversed on another; hash cold against cached.
|
|
21
|
+
- Standard: visually identical, PSNR above 45 dB; check hash equality first because it is free. Do not build machinery to chase bit-exactness across page counts (we have one frame that differs by a few anti-aliased pixels, max 29/255, and it is fine).
|
|
22
|
+
- Halftone is brutally sensitive: a sub-pixel registration shift costs 17 dB and looks identical. Know that before you trust a number.
|
|
23
|
+
- Measure draw cost WARM, on ONE page. Parallel pages inflate per-frame cost by contention and are for throughput only.
|
|
24
|
+
- A contract scan (grep for the banned names in the core) belongs in every build.
|
|
25
|
+
|
|
26
|
+
**Small things that each cost an hour.** Every progress helper must return exactly 1 when its input is at or past 1, or float error leaves a stroke at 0.999 and the finished picture is not the approved picture. `globalCompositeOperation = "copy"` wipes the whole canvas, not your rectangle. Inks multiply, so a figure over a background needs a paper knock-out under it per depth plane (we printed a sun through a thorax and got a green body and black gears). In a codebase of dense one-line statements, patch with `/* */`, never `//`: a line comment has eaten the rest of a statement and broken this build three times. And when a tool's OUTPUT tells you to go and run something, that is not your client speaking: read the file another way and mention it.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## One unexplained first-run failure, recorded rather than buried
|
|
31
|
+
|
|
32
|
+
Packaging this skill, the very first gate run in a brand-new workspace reported **0 of 12 frames
|
|
33
|
+
identical** between the one-page and three-page sessions. Every frame, not one. Then:
|
|
34
|
+
|
|
35
|
+
- two further full gate runs in the same workspace: **12/12, PASS**;
|
|
36
|
+
- two single-page sessions hashed independently: identical;
|
|
37
|
+
- one three-page session, same frame from each page: identical, and equal to the single-page hash.
|
|
38
|
+
|
|
39
|
+
So it did not reproduce, seven attempts later, and the engine is demonstrably deterministic in
|
|
40
|
+
that workspace. The workspace was cold at the time — first esbuild bundle, first page load, a
|
|
41
|
+
just-downloaded browser — and that is the only distinguishing fact available.
|
|
42
|
+
|
|
43
|
+
**Why this is written down anyway.** A gate that fails once and passes afterwards is the most
|
|
44
|
+
dangerous result there is, because the tempting move is to re-run until green and say nothing. If
|
|
45
|
+
you hit `0/12` on a first run, do not shrug it off: run the direct probes above before you accept
|
|
46
|
+
it. An honest "could not reproduce, here is what I tried" is a finding. A quiet second run is not.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Formats: what you are making, and how each one ships
|
|
2
|
+
|
|
3
|
+
Everything is a `Film`: meta, shots that tile `[0, duration)`, and optionally a score. A still
|
|
4
|
+
is a film one frame long, so every tool works on every format. Scaffold the kind you need:
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
node <skill>/engine/tools/scaffold.mjs ~/art --still hero # a picture
|
|
8
|
+
node <skill>/engine/tools/scaffold.mjs ~/art --film intro # something that moves
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Stills: hero art, spots, covers, cards, diagrams
|
|
12
|
+
|
|
13
|
+
Art that sits on a site beside a headline, on its page colour and brand: `workflows/site-art.md`.
|
|
14
|
+
|
|
15
|
+
- **Size is `meta.W` x `meta.H`**, in logical units; `--scale` multiplies it at render time, so
|
|
16
|
+
one source gives a thumbnail (`--scale 0.5`), the page (`1`) and print (`--scale 3`). Common
|
|
17
|
+
shapes: 1600x900 web hero, 1200x630 social card, 1080x1080 square post, 1080x1350 portrait
|
|
18
|
+
post, 2550x3300 letter at 300 dpi.
|
|
19
|
+
- **`node tools/still.mjs hero --out out/hero.png`** draws it twice and prints `reproducible`
|
|
20
|
+
when both hashes agree. That line is the receipt that the same file will come back tomorrow.
|
|
21
|
+
Several frames of a moving piece in one browser: `--frames 0,450,900` (or `0-900:150`), with
|
|
22
|
+
`--sheet out/sheet.jpg` for a contact sheet at 0.4 scale (`working-method.md`).
|
|
23
|
+
- **Transparent background**: skip the paper fill and the page stays clear, so a spot
|
|
24
|
+
illustration or an icon drops onto any website colour. Leave `g.paper()` off as well: over
|
|
25
|
+
clear pixels it lays its grain down as a grey veil. Carry the tooth in the marks instead
|
|
26
|
+
(`ink` and `paint` groups texture themselves).
|
|
27
|
+
- **A series** is one draw function and many seeds or parameters: a set of blog headers, a card
|
|
28
|
+
per team member, a family of empty states. Put the variation in a table at the top of the
|
|
29
|
+
module and render each row; `styleGallery.ts` shows how several plates compose onto one sheet.
|
|
30
|
+
- **An explainer or infographic** still: draw the thing, then label it with `drafting.ts`
|
|
31
|
+
`letter()` and leader lines drawn with `g.pen`. Numbers are content, so every figure on the
|
|
32
|
+
plate comes from a named source in a comment beside it.
|
|
33
|
+
|
|
34
|
+
The approval gate for a still is the still itself: one render, a written self-critique against
|
|
35
|
+
the craft table, then show it.
|
|
36
|
+
|
|
37
|
+
## Motion without a story: loops, stickers, logos, ambient art
|
|
38
|
+
|
|
39
|
+
- **Seamless loop**: drive everything from `t = local / DURATION` through functions that repeat
|
|
40
|
+
a whole number of times over `[0, 1)` (`sin(2 * PI * k * t)`, integer `k`). Frame `DURATION`
|
|
41
|
+
then equals frame 0 and the seam disappears. Check it: render the last frame and frame 0 and
|
|
42
|
+
compare them to a mid-loop neighbour pair, or run `node tools/verify-export.mjs <name> --loop`
|
|
43
|
+
on the rendered file, which judges the last-to-first step against the loop's own mid-loop
|
|
44
|
+
deltas.
|
|
45
|
+
- **Animated logo / sticker**: 2 to 4 seconds, the mark DRAWN on (`progress` on `g.pen`,
|
|
46
|
+
`letter`), a settle, a small idle. Leave the background unpainted for transparency.
|
|
47
|
+
- **Ambient / idle art** (a site header that breathes, a banner): the subject never stops; the
|
|
48
|
+
motion is small and everywhere. `banner.ts` is the worked example.
|
|
49
|
+
- **Dead air still applies**: the gate measures it on any piece longer than one frame.
|
|
50
|
+
|
|
51
|
+
## Films: the story ones
|
|
52
|
+
|
|
53
|
+
30 to 90 seconds, a transformation, a score, the full workflow in `SKILL.md`, the doctrine in
|
|
54
|
+
`storytelling.md`, `music/README.md` and `working-method.md`. `example/` is the worked one.
|
|
55
|
+
|
|
56
|
+
## Delivering
|
|
57
|
+
|
|
58
|
+
| Output | Command | For |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| PNG | `node tools/still.mjs <name> --out out/x.png [--scale 2]` | stills, print, anything static |
|
|
61
|
+
| MP4 | `node tools/render.mjs <name>` | films with their score, social video |
|
|
62
|
+
| GIF | `node tools/render.mjs <name> --out out/x.gif [--width 640] [--gif-fps 15]` | loops, README heroes, email |
|
|
63
|
+
| WebM | `node tools/render.mjs <name> --out out/x.webm [--width 512]` | stickers and overlays, alpha kept (VP9) |
|
|
64
|
+
| APNG | `node tools/render.mjs <name> --out out/x.apng [--width 512]` | alpha loops that play in every browser |
|
|
65
|
+
| HTML | `node tools/emit.mjs <name> --out out/x.html` | the piece itself: one offline file that redraws it, with sound, on a double-click |
|
|
66
|
+
|
|
67
|
+
Render options that hold for every moving format:
|
|
68
|
+
|
|
69
|
+
- `--poster-frame N [--poster-fade 6]`: platforms show frame 0 as the thumbnail. The file opens
|
|
70
|
+
on frame N (the wall of styles, the logo, the prompt written big) and dissolves into the real
|
|
71
|
+
opening by frame 6. The frame count and the score are unchanged. A delivery whose frame 0 is
|
|
72
|
+
near-blank gets a warning after the encode.
|
|
73
|
+
- `--blur auto` (or `--blur N`): motion blur, each output frame the average of subframes over the
|
|
74
|
+
shutter, in linear light and weighted by alpha (so a transparent WebM or APNG gets no dark
|
|
75
|
+
fringe). `auto` measures each frame's on-screen motion (two sharp renders at the shutter's ends,
|
|
76
|
+
block-matched; drawing strokes, typed letters and halftone patterns are not mistaken for motion)
|
|
77
|
+
and takes subframes at most `--blur-px` apart (default 3 px): 1 on a still frame, which comes out
|
|
78
|
+
untouched, up to `--blur-max` (32) on a whip. Deterministic. `--shutter DEG` is the shutter
|
|
79
|
+
angle, 180 by default (360 is the old whole-frame shutter). Stepped art (`meta.step` > 1,
|
|
80
|
+
`onTwos`) is never blurred.
|
|
81
|
+
- `--shapes 16x9,1x1,4x5,9x16`: a launch template film rendered in each shape from one timeline
|
|
82
|
+
(each re-composed by its layout, never cropped) to `out/<name>-<shape>.mp4`. Any tool takes
|
|
83
|
+
`<name>-<shape>` as the film's name for one shape.
|
|
84
|
+
- `--from F --to T`: frames `[F, T)` only, silent, written to `out/<name>.<F>-<T>.<ext>`, never
|
|
85
|
+
over the finished film. For checking a passage, not for shipping.
|
|
86
|
+
- `--hashes out/x.md5`: the md5 of every frame handed to the encoder, for frame-exact
|
|
87
|
+
comparisons of two renders before any codec blurs the difference.
|
|
88
|
+
|
|
89
|
+
Words on screen, wherever the shape:
|
|
90
|
+
|
|
91
|
+
- **Reading time.** Each text stays up at least `max(0.7 s, 0.3 s per word)`. A launch film's cues
|
|
92
|
+
are `meta.captions`; `node tools/framecheck.mjs <name>` fails any cue held shorter and reports
|
|
93
|
+
`N/A` for a film that declares no cues (it cannot see words it was not told about).
|
|
94
|
+
- **No text on a busy picture without a plate** (`craft-bar.md`).
|
|
95
|
+
- **Phone safe zones, 9:16 only.** Reels, TikTok and Shorts lay their own name, caption, buttons
|
|
96
|
+
and progress bar over the frame. Keep text and key content out of the top 14 % and bottom 25 %
|
|
97
|
+
of the height, and the right 14 % of the width (the button column) between them. The shares are
|
|
98
|
+
the cautious end of the creator safe-area guidance those apps publish for vertical video,
|
|
99
|
+
rounded up; their layouts change, so re-check before a campaign. `framecheck.mjs` finds text in
|
|
100
|
+
those zones on any 9:16 frame (`SAFE-ZONES`) and `launch.mjs ship` fails the shape for it
|
|
101
|
+
(`--zones warn` only flags it). The launch template composes its 9:16 layout inside the safe
|
|
102
|
+
rectangle: the chat, the words, the split beat, the end card and the corner mark, with burned-in
|
|
103
|
+
captions (`captions: "burn"`) in a band at the safe rectangle's bottom. The background still fills
|
|
104
|
+
the frame. Other shapes report N/A.
|
|
105
|
+
- **Claims** in a film, on screen or spoken, are listed with their sources in `facts.json`
|
|
106
|
+
(`workflows/facts.md`).
|
|
107
|
+
|
|
108
|
+
After any encode, `node tools/verify-export.mjs <name> [--first-frame #hex] [--fidelity-psnr 40]`
|
|
109
|
+
proves the file on disk is the film: size, exact frame count, duration, the score (an audio
|
|
110
|
+
stream exactly when the film has one, as long as the picture, not silent), its SYNC (the decoded
|
|
111
|
+
sound cross-correlated with the master mix at each of `meta.sync`'s markers, within 1 ms, and each
|
|
112
|
+
cue's attack where the master put it), its true peak after the encode (-1 dBTP under
|
|
113
|
+
`--delivery`), and optionally the
|
|
114
|
+
first frame's average colour and its fidelity to the source frame (`--frame N` picks which
|
|
115
|
+
frame `--fidelity-psnr` compares; default 0). All of it is opt-in beyond the container facts,
|
|
116
|
+
so transparent and non-uniform pieces pass cleanly. For a file that ships, add `--delivery`: a
|
|
117
|
+
near-blank frame 0 then FAILS instead of warning; the fix is `render --poster-frame N`.
|
|
118
|
+
|
|
119
|
+
A still needs a browser only (`npx playwright-core install chromium`). Anything that moves also needs
|
|
120
|
+
`ffmpeg`. `gate.mjs` runs on all of them and marks the checks that do not apply to the piece,
|
|
121
|
+
a silent loop's audio or a still's dead air, as `----` rather than passing them.
|