@jairodri/huckleberry-cli 1.0.1 → 1.1.0
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/README.md +85 -0
- package/agents/cos.json +2 -5
- package/agents/hermes/AGENTS.md +25 -49
- package/agents/hermes/fix-kimaki/SKILL.md +19 -92
- package/agents/hermes/hermes-fixer.md +44 -74
- package/agents/hermes.json +6 -18
- package/kanban/SKILL.md +18 -18
- package/kanban/package.json +1 -1
- package/kanban/src/dispatcher.mjs +1 -1
- package/kanban/templates/blog-social-campaign.yaml +6 -2
- package/kanban/templates/social-campaign.yaml +9 -4
- package/mcp/jev-calibration.mjs +335 -0
- package/mcp/jev-client.mjs +119 -0
- package/mcp/jev-thresholds.json +27 -0
- package/package.json +13 -9
- package/scripts/doctor-watchdog.sh +73 -0
- package/scripts/install-services.sh +34 -27
- package/scripts/self-improve-weekly.sh +34 -0
- package/scripts/sync-skills.mjs +121 -0
- package/skills/ab-test-setup/SKILL.md +266 -0
- package/skills/ab-test-setup/evals/evals.json +105 -0
- package/skills/ab-test-setup/references/sample-size-guide.md +263 -0
- package/skills/ab-test-setup/references/test-templates.md +277 -0
- package/skills/agent-reach/SKILL.md +132 -0
- package/skills/agent-reach/references/career.md +29 -0
- package/skills/agent-reach/references/dev.md +62 -0
- package/skills/agent-reach/references/search.md +33 -0
- package/skills/agent-reach/references/social.md +232 -0
- package/skills/agent-reach/references/video.md +130 -0
- package/skills/agent-reach/references/web.md +50 -0
- package/skills/ai-agent-seo/SKILL.md +450 -0
- package/skills/ai-cold-email-intelligence/SKILL.md +54 -0
- package/skills/ai-cold-email-intelligence/references/prompts.md +21 -0
- package/skills/ai-consensus-builder/SKILL.md +324 -0
- package/skills/ai-seo/SKILL.md +399 -0
- package/skills/ai-seo/evals/evals.json +90 -0
- package/skills/ai-seo/references/content-patterns.md +284 -0
- package/skills/ai-seo/references/platform-ranking-factors.md +152 -0
- package/skills/ai-visibility-audit/SKILL.md +322 -0
- package/skills/analytics-tracking/SKILL.md +309 -0
- package/skills/analytics-tracking/evals/evals.json +90 -0
- package/skills/analytics-tracking/references/event-library.md +260 -0
- package/skills/analytics-tracking/references/ga4-implementation.md +300 -0
- package/skills/analytics-tracking/references/gtm-implementation.md +390 -0
- package/skills/article-generator/SKILL.md +216 -0
- package/skills/auto-indexing/SKILL.md +179 -0
- package/skills/auto-indexing/scripts/auto-indexing.js +257 -0
- package/skills/auto-skill/SKILL.md +151 -0
- package/skills/auto-skill/correction-queue.js +102 -0
- package/skills/auto-skill/dedup.js +97 -0
- package/skills/auto-skill/skill-router.js +224 -0
- package/skills/autoresearch/SKILL.md +334 -0
- package/skills/autoresearch/autoresearch-autoresearch/SKILL.md.baseline +329 -0
- package/skills/autoresearch/autoresearch-autoresearch/changelog.md +34 -0
- package/skills/autoresearch/autoresearch-autoresearch/dashboard.html +116 -0
- package/skills/autoresearch/autoresearch-autoresearch/evals.md +39 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.json +44 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.tsv +3 -0
- package/skills/autoresearch/eval-guide.md +121 -0
- package/skills/b2b-cold-outreach/SKILL.md +322 -0
- package/skills/birdclaw/SKILL.md +82 -0
- package/skills/brainstorm/SKILL.md +168 -0
- package/skills/brand-kit-playground/SKILL.md +312 -0
- package/skills/brand-kit-playground/references/html-architecture.md +316 -0
- package/skills/brand-kit-playground/references/steal-patterns.md +88 -0
- package/skills/brand-voice/SKILL.md +223 -0
- package/skills/brand-voice/references/honesty-as-positioning.md +60 -0
- package/skills/brand-voice/references/voice-modes.md +1158 -0
- package/skills/business-advisory-council/README.md +136 -0
- package/skills/business-advisory-council/SKILL.md +94 -0
- package/skills/business-advisory-council/business-advisory-council.py +492 -0
- package/skills/business-advisory-council/discord-components-decision.json +8 -0
- package/skills/business-advisory-council/examples/steve-conley-partnership.json +6 -0
- package/skills/business-advisory-council/steve-conley-call-brief.json +6 -0
- package/skills/churn-prevention/SKILL.md +305 -0
- package/skills/churn-prevention/evals/evals.json +93 -0
- package/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/claw-compactor/LICENSE +21 -0
- package/skills/claw-compactor/README.md +459 -0
- package/skills/claw-compactor/SKILL.md +329 -0
- package/skills/claw-compactor/benchmark/RESULTS.md +104 -0
- package/skills/claw-compactor/benchmark/__init__.py +1 -0
- package/skills/claw-compactor/benchmark/compressors.py +520 -0
- package/skills/claw-compactor/benchmark/data/sample_01_devops.json +82 -0
- package/skills/claw-compactor/benchmark/data/sample_02_trading.json +54 -0
- package/skills/claw-compactor/benchmark/data/sample_03_ml_short.json +38 -0
- package/skills/claw-compactor/benchmark/data/sample_04_mixed_long.json +318 -0
- package/skills/claw-compactor/benchmark/data/sample_05_sysadmin.json +56 -0
- package/skills/claw-compactor/benchmark/evaluate.py +278 -0
- package/skills/claw-compactor/benchmark/report.py +241 -0
- package/skills/claw-compactor/benchmark/results/benchmark_results.json +405 -0
- package/skills/claw-compactor/benchmark/run_benchmark.py +238 -0
- package/skills/claw-compactor/engram.yaml +49 -0
- package/skills/claw-compactor/proxy/README.md +87 -0
- package/skills/claw-compactor/proxy/dashboard.html +804 -0
- package/skills/claw-compactor/proxy/event-log.mjs +213 -0
- package/skills/claw-compactor/proxy/fair-queue.mjs +288 -0
- package/skills/claw-compactor/proxy/metrics-store.mjs +425 -0
- package/skills/claw-compactor/proxy/package-lock.json +125 -0
- package/skills/claw-compactor/proxy/package.json +15 -0
- package/skills/claw-compactor/proxy/portal.html +360 -0
- package/skills/claw-compactor/proxy/process-registry.mjs +447 -0
- package/skills/claw-compactor/proxy/rate-limiter.mjs +117 -0
- package/skills/claw-compactor/proxy/redis-client.mjs +75 -0
- package/skills/claw-compactor/proxy/retry.mjs +182 -0
- package/skills/claw-compactor/proxy/server.mjs +2100 -0
- package/skills/claw-compactor/proxy/session-affinity.mjs +177 -0
- package/skills/claw-compactor/proxy/start.sh +23 -0
- package/skills/claw-compactor/proxy/test/event-log.test.mjs +237 -0
- package/skills/claw-compactor/proxy/test/helpers.mjs +103 -0
- package/skills/claw-compactor/proxy/test/integration.test.mjs +297 -0
- package/skills/claw-compactor/proxy/test/metrics-store.test.mjs +243 -0
- package/skills/claw-compactor/proxy/test/process-registry.test.mjs +390 -0
- package/skills/claw-compactor/proxy/test/rate-limiter.test.mjs +121 -0
- package/skills/claw-compactor/proxy/test/redis-client.test.mjs +62 -0
- package/skills/claw-compactor/proxy/test/token-tracker.test.mjs +200 -0
- package/skills/claw-compactor/proxy/token-tracker.mjs +482 -0
- package/skills/claw-compactor/pyproject.toml +26 -0
- package/skills/claw-compactor/references/README.md +44 -0
- package/skills/claw-compactor/references/architecture.md +197 -0
- package/skills/claw-compactor/references/benchmarks.md +94 -0
- package/skills/claw-compactor/references/compression-prompts.md +39 -0
- package/skills/claw-compactor/references/compression-techniques.md +219 -0
- package/skills/claw-compactor/references/testing.md +160 -0
- package/skills/claw-compactor/scripts/audit_memory.py +216 -0
- package/skills/claw-compactor/scripts/compress_memory.py +236 -0
- package/skills/claw-compactor/scripts/compressed_context.py +280 -0
- package/skills/claw-compactor/scripts/dedup_memory.py +147 -0
- package/skills/claw-compactor/scripts/dictionary_compress.py +170 -0
- package/skills/claw-compactor/scripts/engram-auto.sh +152 -0
- package/skills/claw-compactor/scripts/engram_auto.py +695 -0
- package/skills/claw-compactor/scripts/engram_cli.py +474 -0
- package/skills/claw-compactor/scripts/estimate_tokens.py +131 -0
- package/skills/claw-compactor/scripts/generate_summary_tiers.py +292 -0
- package/skills/claw-compactor/scripts/lib/__init__.py +34 -0
- package/skills/claw-compactor/scripts/lib/config.py +289 -0
- package/skills/claw-compactor/scripts/lib/dedup.py +119 -0
- package/skills/claw-compactor/scripts/lib/dictionary.py +281 -0
- package/skills/claw-compactor/scripts/lib/engram.py +793 -0
- package/skills/claw-compactor/scripts/lib/engram_prompts.py +175 -0
- package/skills/claw-compactor/scripts/lib/engram_storage.py +254 -0
- package/skills/claw-compactor/scripts/lib/exceptions.py +24 -0
- package/skills/claw-compactor/scripts/lib/markdown.py +312 -0
- package/skills/claw-compactor/scripts/lib/rle.py +165 -0
- package/skills/claw-compactor/scripts/lib/tokenizer_optimizer.py +188 -0
- package/skills/claw-compactor/scripts/lib/tokens.py +68 -0
- package/skills/claw-compactor/scripts/mem_compress.py +788 -0
- package/skills/claw-compactor/scripts/observation_compressor.py +346 -0
- package/skills/claw-compactor/tests/__init__.py +0 -0
- package/skills/claw-compactor/tests/conftest.py +94 -0
- package/skills/claw-compactor/tests/test_audit_comprehensive.py +123 -0
- package/skills/claw-compactor/tests/test_audit_memory.py +67 -0
- package/skills/claw-compactor/tests/test_benchmark.py +122 -0
- package/skills/claw-compactor/tests/test_cli_commands.py +228 -0
- package/skills/claw-compactor/tests/test_compress_memory.py +109 -0
- package/skills/claw-compactor/tests/test_compress_memory_comprehensive.py +191 -0
- package/skills/claw-compactor/tests/test_compressed_context.py +145 -0
- package/skills/claw-compactor/tests/test_config.py +54 -0
- package/skills/claw-compactor/tests/test_dedup_memory.py +124 -0
- package/skills/claw-compactor/tests/test_dictionary.py +327 -0
- package/skills/claw-compactor/tests/test_dictionary_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_engram.py +1091 -0
- package/skills/claw-compactor/tests/test_engram_auto.py +529 -0
- package/skills/claw-compactor/tests/test_error_handling.py +194 -0
- package/skills/claw-compactor/tests/test_estimate_tokens.py +99 -0
- package/skills/claw-compactor/tests/test_generate_summary_tiers.py +105 -0
- package/skills/claw-compactor/tests/test_integration.py +249 -0
- package/skills/claw-compactor/tests/test_lib_dedup.py +135 -0
- package/skills/claw-compactor/tests/test_lib_markdown.py +388 -0
- package/skills/claw-compactor/tests/test_lib_tokens.py +82 -0
- package/skills/claw-compactor/tests/test_main_entry.py +176 -0
- package/skills/claw-compactor/tests/test_markdown_advanced.py +284 -0
- package/skills/claw-compactor/tests/test_new_features.py +77 -0
- package/skills/claw-compactor/tests/test_observation_comprehensive.py +261 -0
- package/skills/claw-compactor/tests/test_observation_compressor.py +128 -0
- package/skills/claw-compactor/tests/test_performance.py +172 -0
- package/skills/claw-compactor/tests/test_pipeline.py +109 -0
- package/skills/claw-compactor/tests/test_real_workspace.py +161 -0
- package/skills/claw-compactor/tests/test_rle.py +114 -0
- package/skills/claw-compactor/tests/test_rle_comprehensive.py +151 -0
- package/skills/claw-compactor/tests/test_roundtrip.py +253 -0
- package/skills/claw-compactor/tests/test_roundtrip_comprehensive.py +192 -0
- package/skills/claw-compactor/tests/test_tiers_comprehensive.py +171 -0
- package/skills/claw-compactor/tests/test_token_economics.py +237 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer.py +175 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_tokens.py +27 -0
- package/skills/cmo/CHANGELOG.md +61 -0
- package/skills/cmo/SKILL.md +500 -0
- package/skills/cmo/references/ai-slop-patterns.md +56 -0
- package/skills/cmo/references/analytics-guide.md +152 -0
- package/skills/cmo/references/ideas-library.md +197 -0
- package/skills/cmo/rules/brand-file-map.md +198 -0
- package/skills/cmo/rules/brand-memory.md +158 -0
- package/skills/cmo/rules/cli-runtime-index.md +95 -0
- package/skills/cmo/rules/command-reference.md +167 -0
- package/skills/cmo/rules/communication.md +15 -0
- package/skills/cmo/rules/context-switch.md +101 -0
- package/skills/cmo/rules/ecosystem.md +125 -0
- package/skills/cmo/rules/error-recovery.md +98 -0
- package/skills/cmo/rules/learning-loop.md +170 -0
- package/skills/cmo/rules/monorepo.md +78 -0
- package/skills/cmo/rules/output-format.md +124 -0
- package/skills/cmo/rules/persona.md +15 -0
- package/skills/cmo/rules/playbooks.md +327 -0
- package/skills/cmo/rules/progressive-enhancement.md +231 -0
- package/skills/cmo/rules/publish-index.md +106 -0
- package/skills/cmo/rules/quality-gate.md +90 -0
- package/skills/cmo/rules/recency-grounding.md +124 -0
- package/skills/cmo/rules/safety.md +80 -0
- package/skills/cmo/rules/studio-api-index.md +138 -0
- package/skills/cmo/rules/studio-integration.md +147 -0
- package/skills/cmo/rules/sub-agents.md +167 -0
- package/skills/cold-email/SKILL.md +240 -0
- package/skills/cold-email/evals/evals.json +94 -0
- package/skills/cold-email/references/benchmarks.md +83 -0
- package/skills/cold-email/references/follow-up-sequences.md +81 -0
- package/skills/cold-email/references/frameworks.md +90 -0
- package/skills/cold-email/references/personalization.md +79 -0
- package/skills/cold-email/references/subject-lines.md +53 -0
- package/skills/competitive-intel/SKILL.md +433 -0
- package/skills/competitive-intel/references/competitive-frameworks.md +145 -0
- package/skills/competitor-alternatives/SKILL.md +362 -0
- package/skills/competitor-alternatives/evals/evals.json +93 -0
- package/skills/competitor-alternatives/references/content-architecture.md +271 -0
- package/skills/competitor-alternatives/references/templates.md +223 -0
- package/skills/concreteness-fixer/SKILL.md +483 -0
- package/skills/concreteness-fixer/scripts/validation/concreteness-validator.js +221 -0
- package/skills/concreteness-fixer/utils/execFileNoThrow.js +16 -0
- package/skills/content-atomizer/SKILL.md +424 -0
- package/skills/content-atomizer/references/hook-strategies.md +56 -0
- package/skills/content-atomizer/references/platform-specs.md +118 -0
- package/skills/content-atomizer/references/platforms/bluesky.md +64 -0
- package/skills/content-atomizer/references/platforms/instagram.md +77 -0
- package/skills/content-atomizer/references/platforms/linkedin.md +120 -0
- package/skills/content-atomizer/references/platforms/reddit.md +73 -0
- package/skills/content-atomizer/references/platforms/threads.md +64 -0
- package/skills/content-atomizer/references/platforms/tiktok.md +55 -0
- package/skills/content-atomizer/references/platforms/twitter.md +123 -0
- package/skills/content-atomizer/references/platforms/youtube.md +56 -0
- package/skills/content-atomizer/references/tweet-patterns.md +40 -0
- package/skills/content-repost-manager/SKILL.md +245 -0
- package/skills/content-repost-manager/scripts/content-repost-scan.py +133 -0
- package/skills/context-recovery/.clawdhub/origin.json +7 -0
- package/skills/context-recovery/SKILL.md +198 -0
- package/skills/context-recovery/_meta.json +6 -0
- package/skills/conversion-flow-cro/SKILL.md +248 -0
- package/skills/conversion-flow-cro/references/flow-benchmarks.md +158 -0
- package/skills/copy-editing/SKILL.md +474 -0
- package/skills/copy-editing/evals/evals.json +89 -0
- package/skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/copywriting/SKILL.md +349 -0
- package/skills/copywriting/evals/evals.json +111 -0
- package/skills/copywriting/references/awareness-level-guide.md +227 -0
- package/skills/copywriting/references/copy-frameworks.md +389 -0
- package/skills/copywriting/references/natural-transitions.md +272 -0
- package/skills/creative/SKILL.md +365 -0
- package/skills/creative/modes/ad-creative.md +1748 -0
- package/skills/creative/modes/product-photo.md +1520 -0
- package/skills/creative/modes/product-video.md +1657 -0
- package/skills/creative/modes/social-graphics.md +1511 -0
- package/skills/creative/modes/talking-head.md +2208 -0
- package/skills/creative/references/VISUAL_INTELLIGENCE.md +1233 -0
- package/skills/deep-serp-article/SKILL.md +677 -0
- package/skills/deep-serp-article/SKILL.md.bak +530 -0
- package/skills/earned-media/SKILL.md +260 -0
- package/skills/email-sequences/SKILL.md +446 -0
- package/skills/email-sequences/references/sequence-templates.md +1217 -0
- package/skills/firecrawl/.skill-meta.json +13 -0
- package/skills/firecrawl/SKILL.md +154 -0
- package/skills/firecrawl/rules/install.md +63 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/form-cro/SKILL.md +429 -0
- package/skills/form-cro/evals/evals.json +90 -0
- package/skills/free-tool-strategy/SKILL.md +325 -0
- package/skills/free-tool-strategy/evals/evals.json +90 -0
- package/skills/free-tool-strategy/references/tool-types.md +253 -0
- package/skills/frontend-slides/SKILL.md +248 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +347 -0
- package/skills/frontend-slides/animation-patterns.md +110 -0
- package/skills/frontend-slides/html-template.md +347 -0
- package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/frontend-slides/viewport-base.css +153 -0
- package/skills/guardrail-framework/SKILL.md +319 -0
- package/skills/hook-generator/SKILL.md +438 -0
- package/skills/hook-generator/database/2026-PLATFORM-RESEARCH.md +211 -0
- package/skills/hook-generator/database/instagram-hooks.json +591 -0
- package/skills/hook-generator/database/linkedin-hooks.json +502 -0
- package/skills/hook-generator/database/medium-hooks.json +181 -0
- package/skills/hook-generator/database/tiktok-hooks.json +337 -0
- package/skills/hook-generator/database/twitter-hooks.json +567 -0
- package/skills/hook-generator/database/youtube-hooks.json +275 -0
- package/skills/hook-generator/package-lock.json +24 -0
- package/skills/hook-generator/package.json +5 -0
- package/skills/hook-generator/references/hook-generation-system.md +257 -0
- package/skills/hook-generator/references/hook-performance-analysis.json +153 -0
- package/skills/hook-generator/references/hooks-library.md +128 -0
- package/skills/hook-generator/references/platform-hook-frameworks.md +275 -0
- package/skills/hook-generator/scripts/generate-hooks-unified.js +722 -0
- package/skills/hook-generator/scripts/generate-hooks.js +225 -0
- package/skills/hook-generator/scripts/generate.sh +36 -0
- package/skills/hook-generator/scripts/ralph-hook-enhancer.js +864 -0
- package/skills/hook-generator/scripts/test-gemini-output.js +51 -0
- package/skills/humanizer/README.md +120 -0
- package/skills/humanizer/SKILL.md +699 -0
- package/skills/image-gen/SKILL.md +277 -0
- package/skills/image-gen/references/prompt-patterns.md +114 -0
- package/skills/image-gen/references/visual-metaphors.md +51 -0
- package/skills/impeccable/SKILL.md +86 -0
- package/skills/impeccable/reference/adapt.md +312 -0
- package/skills/impeccable/reference/adapt.native.md +58 -0
- package/skills/impeccable/reference/android.md +40 -0
- package/skills/impeccable/reference/animate.md +86 -0
- package/skills/impeccable/reference/audit.md +136 -0
- package/skills/impeccable/reference/audit.native.md +139 -0
- package/skills/impeccable/reference/bolder.md +31 -0
- package/skills/impeccable/reference/clarify.md +94 -0
- package/skills/impeccable/reference/colorize.md +86 -0
- package/skills/impeccable/reference/craft-floor.md +42 -0
- package/skills/impeccable/reference/craft.md +5 -0
- package/skills/impeccable/reference/critique.md +788 -0
- package/skills/impeccable/reference/degraded/asset-producer.md +90 -0
- package/skills/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/impeccable/reference/degraded/finish-reviewer.md +37 -0
- package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/impeccable/reference/delight.md +70 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/doctor.md +53 -0
- package/skills/impeccable/reference/document.md +416 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/harden.md +336 -0
- package/skills/impeccable/reference/hooks.md +105 -0
- package/skills/impeccable/reference/init.md +125 -0
- package/skills/impeccable/reference/ios.md +45 -0
- package/skills/impeccable/reference/layout.md +84 -0
- package/skills/impeccable/reference/live-setup.md +102 -0
- package/skills/impeccable/reference/live.md +323 -0
- package/skills/impeccable/reference/new-work.md +110 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/operate.md +61 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +127 -0
- package/skills/impeccable/reference/polish.md +97 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/routing.md +18 -0
- package/skills/impeccable/reference/shape.md +59 -0
- package/skills/impeccable/reference/typeset.md +80 -0
- package/skills/impeccable/reference/visualize.md +49 -0
- package/skills/impeccable/scripts/command-metadata.json +94 -0
- package/skills/impeccable/scripts/concept-seed.mjs +558 -0
- package/skills/impeccable/scripts/context-signals.mjs +334 -0
- package/skills/impeccable/scripts/context.mjs +1467 -0
- package/skills/impeccable/scripts/critique-storage.mjs +213 -0
- package/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/skills/impeccable/scripts/detect.mjs +21 -0
- package/skills/impeccable/scripts/detector/browser/injected/index.mjs +2023 -0
- package/skills/impeccable/scripts/detector/cli/main.mjs +438 -0
- package/skills/impeccable/scripts/detector/design-system.mjs +1046 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +8283 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
- package/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +372 -0
- package/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +1168 -0
- package/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1186 -0
- package/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +264 -0
- package/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/skills/impeccable/scripts/detector/findings.mjs +18 -0
- package/skills/impeccable/scripts/detector/node/file-system.mjs +203 -0
- package/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/skills/impeccable/scripts/detector/registry/antipatterns.mjs +617 -0
- package/skills/impeccable/scripts/detector/rules/checks.mjs +5580 -0
- package/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/skills/impeccable/scripts/detector/shared/constants.mjs +112 -0
- package/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
- package/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/skills/impeccable/scripts/doctor.mjs +336 -0
- package/skills/impeccable/scripts/embed-prompt.mjs +133 -0
- package/skills/impeccable/scripts/generate-image.mjs +240 -0
- package/skills/impeccable/scripts/hook-admin.mjs +801 -0
- package/skills/impeccable/scripts/hook-before-edit.mjs +508 -0
- package/skills/impeccable/scripts/hook-lib.mjs +2153 -0
- package/skills/impeccable/scripts/hook.mjs +78 -0
- package/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
- package/skills/impeccable/scripts/lib/composition-catalog.mjs +200 -0
- package/skills/impeccable/scripts/lib/concept-catalog.mjs +384 -0
- package/skills/impeccable/scripts/lib/design-parser.mjs +925 -0
- package/skills/impeccable/scripts/lib/impeccable-config.mjs +658 -0
- package/skills/impeccable/scripts/lib/impeccable-paths.mjs +137 -0
- package/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
- package/skills/impeccable/scripts/lib/provider.mjs +5 -0
- package/skills/impeccable/scripts/lib/roll-selection.mjs +362 -0
- package/skills/impeccable/scripts/lib/staleness-deep.mjs +478 -0
- package/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
- package/skills/impeccable/scripts/lib/staleness.mjs +457 -0
- package/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
- package/skills/impeccable/scripts/lib/target-args.mjs +42 -0
- package/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
- package/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
- package/skills/impeccable/scripts/live/accept-css.mjs +617 -0
- package/skills/impeccable/scripts/live/accept-verify.mjs +60 -0
- package/skills/impeccable/scripts/live/browser-script-parts.mjs +55 -0
- package/skills/impeccable/scripts/live/completion.mjs +28 -0
- package/skills/impeccable/scripts/live/event-validation.mjs +199 -0
- package/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
- package/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +73 -0
- package/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
- package/skills/impeccable/scripts/live/frameworks/journal.mjs +197 -0
- package/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
- package/skills/impeccable/scripts/live/frameworks/nuxt.mjs +161 -0
- package/skills/impeccable/scripts/live/frameworks/script-src.mjs +17 -0
- package/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
- package/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
- package/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
- package/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
- package/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
- package/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
- package/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
- package/skills/impeccable/scripts/live/instructions.mjs +142 -0
- package/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
- package/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
- package/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
- package/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
- package/skills/impeccable/scripts/live/roots.mjs +508 -0
- package/skills/impeccable/scripts/live/session-store.mjs +563 -0
- package/skills/impeccable/scripts/live/source-lock.mjs +105 -0
- package/skills/impeccable/scripts/live/source-search.mjs +105 -0
- package/skills/impeccable/scripts/live/svelte-ast.mjs +961 -0
- package/skills/impeccable/scripts/live/svelte-component.mjs +1342 -0
- package/skills/impeccable/scripts/live/sveltekit-adapter.mjs +316 -0
- package/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
- package/skills/impeccable/scripts/live/ui-core.mjs +180 -0
- package/skills/impeccable/scripts/live/vocabulary.mjs +171 -0
- package/skills/impeccable/scripts/live-accept.mjs +954 -0
- package/skills/impeccable/scripts/live-browser-dom.js +146 -0
- package/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/skills/impeccable/scripts/live-browser.js +12520 -0
- package/skills/impeccable/scripts/live-commit-manual-edits.mjs +1244 -0
- package/skills/impeccable/scripts/live-complete.mjs +107 -0
- package/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/skills/impeccable/scripts/live-inject.mjs +503 -0
- package/skills/impeccable/scripts/live-insert.mjs +292 -0
- package/skills/impeccable/scripts/live-manual-edit-evidence.mjs +368 -0
- package/skills/impeccable/scripts/live-poll.mjs +429 -0
- package/skills/impeccable/scripts/live-resume.mjs +123 -0
- package/skills/impeccable/scripts/live-server.mjs +1669 -0
- package/skills/impeccable/scripts/live-status.mjs +71 -0
- package/skills/impeccable/scripts/live-target.mjs +30 -0
- package/skills/impeccable/scripts/live-wrap.mjs +927 -0
- package/skills/impeccable/scripts/live.mjs +359 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/impeccable/scripts/palette.mjs +628 -0
- package/skills/impeccable/scripts/pin.mjs +221 -0
- package/skills/impeccable/scripts/serve-question.mjs +932 -0
- package/skills/impeccable/scripts/surface-brief.mjs +74 -0
- package/skills/inkstone-admin/SKILL.md +66 -0
- package/skills/jev-hook-gate/SKILL.md +111 -0
- package/skills/keyword-research/SKILL.md +503 -0
- package/skills/keyword-research/references/dr-cap-and-confidence.md +62 -0
- package/skills/keyword-research/references/keyword-examples.md +769 -0
- package/skills/landing-page-architect/SKILL.md +585 -0
- package/skills/landing-page-architect/references/architecture-reference.md +32 -0
- package/skills/launch-strategy/SKILL.md +384 -0
- package/skills/launch-strategy/evals/evals.json +91 -0
- package/skills/launch-strategy/references/launch-checklist.md +209 -0
- package/skills/launch-strategy/references/launch-timeline.md +159 -0
- package/skills/lead-email-craft/SKILL.md +522 -0
- package/skills/lead-magnets/SKILL.md +310 -0
- package/skills/lead-magnets/references/benchmarks.md +129 -0
- package/skills/lead-magnets/references/format-guide.md +196 -0
- package/skills/link-building-seo/SKILL.md +210 -0
- package/skills/lint-report.txt +1 -0
- package/skills/manifest.json +129 -0
- package/skills/marketing-demo/SKILL.md +249 -0
- package/skills/marketing-demo/references/remotion-examples.md +281 -0
- package/skills/marketing-ideas/SKILL.md +167 -0
- package/skills/marketing-ideas/evals/evals.json +90 -0
- package/skills/marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/marketing-psychology/SKILL.md +374 -0
- package/skills/marketing-psychology/evals/evals.json +88 -0
- package/skills/marketing-psychology/references/case-studies.md +148 -0
- package/skills/narrative-research-article/SKILL.md +469 -0
- package/skills/narrative-research-article/references/lanusse-patterns.md +166 -0
- package/skills/notebooklm/SKILL.md +674 -0
- package/skills/off-page-seo/SKILL.md +219 -0
- package/skills/onboarding-cro/SKILL.md +220 -0
- package/skills/onboarding-cro/evals/evals.json +92 -0
- package/skills/onboarding-cro/references/experiments.md +258 -0
- package/skills/original-research/SKILL.md +388 -0
- package/skills/page-cro/SKILL.md +269 -0
- package/skills/page-cro/references/cro-benchmarks.md +140 -0
- package/skills/paper-marketing/SKILL.md +448 -0
- package/skills/paper-marketing/references/agent-quality-rubric.md +68 -0
- package/skills/paper-marketing/references/brand-system-template.md +120 -0
- package/skills/paper-marketing/references/paper-mcp-rules.md +71 -0
- package/skills/paper-marketing/references/platform-conventions.md +43 -0
- package/skills/paywall-upgrade-cro/SKILL.md +227 -0
- package/skills/paywall-upgrade-cro/evals/evals.json +93 -0
- package/skills/paywall-upgrade-cro/references/experiments.md +164 -0
- package/skills/platform-formatting/SKILL.md +51 -0
- package/skills/popup-cro/SKILL.md +454 -0
- package/skills/popup-cro/evals/evals.json +94 -0
- package/skills/positioning-angles/SKILL.md +524 -0
- package/skills/positioning-angles/references/ad-matrix-and-examples.md +176 -0
- package/skills/positioning-angles/references/angle-frameworks.md +187 -0
- package/skills/positioning-angles/references/dunford-positioning.md +135 -0
- package/skills/positioning-angles/references/hormozi-offer.md +247 -0
- package/skills/positioning-angles/references/schwartz-sophistication.md +166 -0
- package/skills/positioning-angles/references/unique-mechanism.md +162 -0
- package/skills/pricing-strategy/SKILL.md +346 -0
- package/skills/pricing-strategy/evals/evals.json +90 -0
- package/skills/pricing-strategy/references/research-methods.md +152 -0
- package/skills/pricing-strategy/references/tier-structure.md +307 -0
- package/skills/programmatic-seo/SKILL.md +238 -0
- package/skills/programmatic-seo/evals/evals.json +94 -0
- package/skills/programmatic-seo/references/playbooks.md +308 -0
- package/skills/project-rag/SKILL.md +127 -0
- package/skills/quality-gate/SKILL.md +519 -0
- package/skills/quality-gate/judge-personas/buyer.md +47 -0
- package/skills/quality-gate/judge-personas/expert.md +47 -0
- package/skills/quality-gate/judge-personas/outsider.md +47 -0
- package/skills/quality-gate/judge-personas/scanner.md +41 -0
- package/skills/quality-gate/judge-personas/skeptic.md +40 -0
- package/skills/referral-program/SKILL.md +290 -0
- package/skills/referral-program/evals/evals.json +89 -0
- package/skills/referral-program/references/affiliate-programs.md +163 -0
- package/skills/referral-program/references/program-examples.md +143 -0
- package/skills/review-sites/SKILL.md +279 -0
- package/skills/revops/SKILL.md +343 -0
- package/skills/revops/evals/evals.json +91 -0
- package/skills/revops/references/automation-playbooks.md +290 -0
- package/skills/revops/references/lifecycle-definitions.md +278 -0
- package/skills/revops/references/routing-rules.md +203 -0
- package/skills/revops/references/scoring-models.md +247 -0
- package/skills/saas-product-seo/SKILL.md +324 -0
- package/skills/sales-enablement/SKILL.md +349 -0
- package/skills/sales-enablement/evals/evals.json +91 -0
- package/skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/sales-enablement/references/demo-scripts.md +355 -0
- package/skills/sales-enablement/references/objection-library.md +270 -0
- package/skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/schema-markup/SKILL.md +179 -0
- package/skills/schema-markup/evals/evals.json +87 -0
- package/skills/schema-markup/references/schema-examples.md +398 -0
- package/skills/self-improve/SKILL.md +166 -0
- package/skills/self-improving-agent/README.md +243 -0
- package/skills/self-improving-agent/SKILL.md +437 -0
- package/skills/self-improving-agent/scripts/__init__.py +16 -0
- package/skills/self-improving-agent/scripts/__pycache__/auto_detect.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/nlm_curation.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/self_improving_agent.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/auto_detect.py +270 -0
- package/skills/self-improving-agent/scripts/init_expertise_registry.py +89 -0
- package/skills/self-improving-agent/scripts/nlm_curation.py +259 -0
- package/skills/self-improving-agent/scripts/self-improving-agent +113 -0
- package/skills/self-improving-agent/scripts/self_improving_agent.py +603 -0
- package/skills/self-improving-agent/scripts/test_curation_scorer.py +20 -0
- package/skills/self-improving-agent/scripts/test_self_improving.py +184 -0
- package/skills/send-email/SKILL.md +426 -0
- package/skills/send-email/references/batch-email-examples.md +807 -0
- package/skills/send-email/references/best-practices.md +453 -0
- package/skills/send-email/references/installation.md +123 -0
- package/skills/send-email/references/single-email-examples.md +470 -0
- package/skills/send-email/references/webhooks.md +221 -0
- package/skills/seo-audit/SKILL.md +362 -0
- package/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/seo-audit/references/architecture-patterns.md +271 -0
- package/skills/seo-audit/references/schema-templates.md +427 -0
- package/skills/seo-content/SKILL.md +510 -0
- package/skills/seo-content/references/anti-ai-detection.md +184 -0
- package/skills/seo-content/references/content-structures.md +148 -0
- package/skills/seo-content/references/eeat-examples.md +235 -0
- package/skills/seo-content/references/on-page-seo.md +261 -0
- package/skills/seo-content/references/pseo-playbooks.md +226 -0
- package/skills/seo-content/references/schema-templates.md +104 -0
- package/skills/seo-content/references/serp-analysis-format.md +151 -0
- package/skills/seo-machine/SKILL.md +331 -0
- package/skills/seo-machine/assets/brand-template.md +73 -0
- package/skills/seo-machine/assets/link-inventory-template.md +74 -0
- package/skills/seo-machine/assets/roadmap-template.md +184 -0
- package/skills/seo-machine/references/api-stack-recipes.md +230 -0
- package/skills/seo-machine/references/exa-recipes.md +260 -0
- package/skills/seo-machine/references/manual-research.md +73 -0
- package/skills/seo-machine/references/methodology.md +87 -0
- package/skills/seo-machine/references/off-page.md +123 -0
- package/skills/seo-machine/references/patterns/alternatives.md +176 -0
- package/skills/seo-machine/references/patterns/compare.md +105 -0
- package/skills/seo-machine/references/patterns/playbooks.md +106 -0
- package/skills/seo-machine/references/patterns/use-case.md +109 -0
- package/skills/seo-machine/references/quality-bars.md +99 -0
- package/skills/seo-machine/references/stacks/astro.md +156 -0
- package/skills/seo-machine/references/stacks/detection.md +61 -0
- package/skills/seo-machine/references/stacks/markdown-fallback.md +181 -0
- package/skills/seo-machine/references/stacks/nextjs.md +108 -0
- package/skills/seo-machine/references/stacks/rails-inertia.md +99 -0
- package/skills/seo-machine/references/striking-distance.md +116 -0
- package/skills/seo-machine/references/technical-audit.md +153 -0
- package/skills/seo-machine/scripts/link_audit.py +265 -0
- package/skills/seo-machine/scripts/tech_audit.py +221 -0
- package/skills/seo-machine/scripts/word_count.py +154 -0
- package/skills/sharp-thesis-validator/SKILL.md +393 -0
- package/skills/sharp-thesis-validator/examples.md +186 -0
- package/skills/signup-flow-cro/SKILL.md +359 -0
- package/skills/signup-flow-cro/evals/evals.json +88 -0
- package/skills/site-architecture/SKILL.md +357 -0
- package/skills/site-architecture/evals/evals.json +88 -0
- package/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/skills/site-architecture/references/site-type-templates.md +293 -0
- package/skills/skill-self-improvement/SKILL.md +151 -0
- package/skills/slideshow-script/SKILL.md +274 -0
- package/skills/slideshow-script/references/content-spec-schema.md +77 -0
- package/skills/slideshow-script/references/frameworks.md +84 -0
- package/skills/slideshow-script/references/paips-framework.md +37 -0
- package/skills/social-campaign/SKILL.md +419 -0
- package/skills/social-campaign/references/paper-mcp-workflow.md +48 -0
- package/skills/social-content/SKILL.md +359 -0
- package/skills/social-content/evals/evals.json +92 -0
- package/skills/social-content/references/platforms.md +170 -0
- package/skills/social-content/references/post-templates.md +177 -0
- package/skills/social-content/references/reverse-engineering.md +195 -0
- package/skills/social-worker/SKILL.md +204 -0
- package/skills/startup-launcher/SKILL.md +252 -0
- package/skills/startup-launcher/references/file-router.md +64 -0
- package/skills/startup-launcher/references/platform-matrix.md +65 -0
- package/skills/startup-launcher/references/platforms/alternativeto.md +283 -0
- package/skills/startup-launcher/references/platforms/appsumo.md +495 -0
- package/skills/startup-launcher/references/platforms/auraplusplus.md +736 -0
- package/skills/startup-launcher/references/platforms/betalist.md +98 -0
- package/skills/startup-launcher/references/platforms/capterra.md +276 -0
- package/skills/startup-launcher/references/platforms/crunchbase.md +514 -0
- package/skills/startup-launcher/references/platforms/dealify.md +291 -0
- package/skills/startup-launcher/references/platforms/dealmirror.md +313 -0
- package/skills/startup-launcher/references/platforms/desifounder.md +490 -0
- package/skills/startup-launcher/references/platforms/devhunt.md +210 -0
- package/skills/startup-launcher/references/platforms/devpost.md +448 -0
- package/skills/startup-launcher/references/platforms/fazier.md +56 -0
- package/skills/startup-launcher/references/platforms/firsto.md +489 -0
- package/skills/startup-launcher/references/platforms/g2.md +226 -0
- package/skills/startup-launcher/references/platforms/hackernews.md +99 -0
- package/skills/startup-launcher/references/platforms/hackernoon.md +385 -0
- package/skills/startup-launcher/references/platforms/indiedeals.md +367 -0
- package/skills/startup-launcher/references/platforms/indiehackers.md +80 -0
- package/skills/startup-launcher/references/platforms/kenmoo.md +231 -0
- package/skills/startup-launcher/references/platforms/labstartups.md +618 -0
- package/skills/startup-launcher/references/platforms/launchboard.md +307 -0
- package/skills/startup-launcher/references/platforms/launchfast.md +560 -0
- package/skills/startup-launcher/references/platforms/launchigniter.md +56 -0
- package/skills/startup-launcher/references/platforms/launchingnext.md +674 -0
- package/skills/startup-launcher/references/platforms/launchit.md +574 -0
- package/skills/startup-launcher/references/platforms/launchyourapp.md +677 -0
- package/skills/startup-launcher/references/platforms/libhunt.md +220 -0
- package/skills/startup-launcher/references/platforms/ltdhunt.md +221 -0
- package/skills/startup-launcher/references/platforms/microlaunch.md +45 -0
- package/skills/startup-launcher/references/platforms/openalternative.md +195 -0
- package/skills/startup-launcher/references/platforms/peerlist.md +56 -0
- package/skills/startup-launcher/references/platforms/peerpush.md +64 -0
- package/skills/startup-launcher/references/platforms/primeclub.md +282 -0
- package/skills/startup-launcher/references/platforms/productcanyon.md +190 -0
- package/skills/startup-launcher/references/platforms/producthunt.md +98 -0
- package/skills/startup-launcher/references/platforms/rankinpublic.md +315 -0
- package/skills/startup-launcher/references/platforms/rockethub.md +374 -0
- package/skills/startup-launcher/references/platforms/saasgenius.md +175 -0
- package/skills/startup-launcher/references/platforms/saashub.md +205 -0
- package/skills/startup-launcher/references/platforms/saasmantra.md +221 -0
- package/skills/startup-launcher/references/platforms/saaspirate.md +287 -0
- package/skills/startup-launcher/references/platforms/saaswarrior.md +190 -0
- package/skills/startup-launcher/references/platforms/saaszilla.md +194 -0
- package/skills/startup-launcher/references/platforms/selected.md +925 -0
- package/skills/startup-launcher/references/platforms/sideprojectors.md +86 -0
- package/skills/startup-launcher/references/platforms/softonic.md +240 -0
- package/skills/startup-launcher/references/platforms/sourceforge.md +251 -0
- package/skills/startup-launcher/references/platforms/stacksocial.md +244 -0
- package/skills/startup-launcher/references/platforms/startupstash.md +326 -0
- package/skills/startup-launcher/references/platforms/theresanaiforthat.md +253 -0
- package/skills/startup-launcher/references/platforms/tinylaunch.md +70 -0
- package/skills/startup-launcher/references/platforms/tinystartups.md +72 -0
- package/skills/startup-launcher/references/platforms/toolfolio.md +291 -0
- package/skills/startup-launcher/references/platforms/trustmrr.md +194 -0
- package/skills/startup-launcher/references/platforms/trylaunch.md +531 -0
- package/skills/startup-launcher/references/platforms/uneed.md +57 -0
- package/skills/startup-launcher/references/templates/asset-checklist.md +218 -0
- package/skills/startup-launcher/references/templates/launch-tracker.md +195 -0
- package/skills/startup-launcher/references/templates/product-brief.md +98 -0
- package/skills/summarize/.skill-meta.json +13 -0
- package/skills/summarize/SKILL.md +170 -0
- package/skills/summarize/rules/install.md +157 -0
- package/skills/summarize/rules/usage.md +207 -0
- package/skills/topical-authority/SKILL.md +307 -0
- package/skills/topical-authority/references/jake-ward-framework.md +201 -0
- package/skills/topical-authority/references/serp-clustering-algorithm.md +325 -0
- package/skills/topical-authority/scripts/orchestrator.js +367 -0
- package/skills/topical-authority/scripts/seo/analyze-competitor-coverage.js +3 -0
- package/skills/topical-authority/scripts/seo/audit-internal-links.js +3 -0
- package/skills/topical-authority/scripts/seo/build-clusters-from-serp.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-keywords-from-forums.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-paa-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/fetch-serp-urls.js +3 -0
- package/skills/topical-authority/scripts/seo/gemini-serp-clustering.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-content-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-research-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-quora-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-reddit-pain-points.js +3 -0
- package/skills/topical-authority/scripts/seo/weave-internal-links.js +3 -0
- package/skills/visual-style/SKILL.md +199 -0
- package/skills/voice-brand-alignment/SKILL.md +70 -0
- package/skills/voice-brand-alignment/references/ai-slop-patterns.md +405 -0
- package/skills/voice-brand-alignment/scripts/validation/gemini-voice-validator.js +96 -0
- package/skills/voice-extraction/SKILL.md +234 -0
- package/skills/voice-extraction/references/extraction-prompt.md +155 -0
- package/skills/voice-extraction/references/voice-dna-template.md +168 -0
- package/skills/voice-extraction/references/voice-elements.md +259 -0
- package/skills/voice-extraction/scripts/build-corpus.js +120 -0
- package/skills/voice-extraction/scripts/collect-sources.sh +168 -0
- package/skills/warm-outbound/SKILL.md +299 -0
- package/skills/warm-outbound/templates/warm-message.md +39 -0
- package/skills/weekly-newsletter-digest/SKILL.md +78 -0
- package/skills/x-playwriter/SKILL.md +428 -0
- package/skills/x-playwriter/scripts/x-browser.js +185 -0
- package/skills/x-post-generator-openclaw/SKILL.md +138 -0
- package/skills/x-post-generator-openclaw/scripts/generate-x-post.js +537 -0
- package/skills/x-posting-playwriter/SKILL.md +203 -0
- package/skills/x-research/SKILL.md +129 -0
- package/skills/x-research/x-research.sh +85 -0
- package/skills/youtube-summarize/SKILL.md +90 -0
- package/skills/youtube-summarize/scripts/youtube-summarize.sh +143 -0
- package/src/cli.js +349 -172
- package/src/harness/deepseek-adapter.js +102 -0
- package/src/harness/deepseek.js +225 -0
- package/src/harness/opencode-adapter.js +174 -0
- package/src/harness/pi-adapter.js +172 -0
- package/src/harness/registry.js +121 -0
- package/src/harness/telemetry.js +102 -0
- package/src/harness/types.js +165 -0
- package/src/interview.js +36 -4
- package/src/postinstall.js +10 -12
- package/templates/AGENTS.md +17 -17
- package/templates/ORG.md +1 -1
- package/templates/TOOLS.md +7 -2
- package/templates/opencode.json +26 -29
- package/wiki/doctor.md +54 -0
- package/wiki/inkstone.md +4 -4
- package/wiki/opencode.md +3 -3
- package/skills/curated.txt +0 -68
|
@@ -0,0 +1,1657 @@
|
|
|
1
|
+
# Product Video Mode
|
|
2
|
+
**depends-on: [hook-generator]**
|
|
3
|
+
|
|
4
|
+
Transform static product images into cinematic video content. This mode handles product reveals, animated hero shots, 360 showcases, and e-commerce video — all the video types that make products feel premium and desirable.
|
|
5
|
+
|
|
6
|
+
**Loaded by:** `creative/SKILL.md` when user selects mode 2 (Product Video).
|
|
7
|
+
**Model selection:** Handled by `brand/stack.md` — never hardcode model IDs in prompts or workflows.
|
|
8
|
+
**Brand consistency:** Reads from `./brand/creative-kit.md` before every generation.
|
|
9
|
+
**File output:** All deliverables saved to `./campaigns/{product}/video/`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Why This Mode Exists
|
|
14
|
+
|
|
15
|
+
**The problem:** Video content converts dramatically better than static images, but:
|
|
16
|
+
1. Traditional product video requires expensive shoots
|
|
17
|
+
2. Most AI video prompts produce generic, floaty results
|
|
18
|
+
3. Different platforms need different video styles
|
|
19
|
+
4. Wrong motion can cheapen even premium products
|
|
20
|
+
5. Each video model has a different API interface, making multi-model comparison error-prone
|
|
21
|
+
6. No single model wins every prompt — quality depends on the specific content
|
|
22
|
+
|
|
23
|
+
**The solution:** A systematic approach that:
|
|
24
|
+
- Uses proven commercial motion styles
|
|
25
|
+
- Matches motion to product category and positioning
|
|
26
|
+
- Leverages multi-model generation for quality selection
|
|
27
|
+
- Anchors animation to approved static images (I2V workflow)
|
|
28
|
+
- References MODEL_REGISTRY.md for all API payloads (never hardcodes model names)
|
|
29
|
+
- Runs parallel multi-model generation and lets the user pick the winner
|
|
30
|
+
- Plans multi-clip sequences that edit together into longer pieces
|
|
31
|
+
- Tracks estimated generation cost per model before execution
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Model Selection
|
|
36
|
+
|
|
37
|
+
**Do NOT hardcode model IDs.** Always refer to `brand/stack.md` for the current default video model and its verified API payload.
|
|
38
|
+
|
|
39
|
+
As of this writing, the three video models available are:
|
|
40
|
+
|
|
41
|
+
| Role | Model | Registry Section | Estimated Cost (5s clip) |
|
|
42
|
+
|------|-------|-----------------|--------------------------|
|
|
43
|
+
| **Default** | Kling 2.5 Turbo Pro | Video Generation > Default Model | ~$0.40 |
|
|
44
|
+
| **Comparison** | Google Veo 3.1 | Video Generation > Comparison Model: Google Veo 3.1 | ~$0.80-1.50 |
|
|
45
|
+
| **Comparison** | OpenAI Sora 2 | Video Generation > Comparison Model: OpenAI Sora 2 | ~$0.60-1.20 |
|
|
46
|
+
|
|
47
|
+
### How to Call
|
|
48
|
+
|
|
49
|
+
1. Open `brand/stack.md`
|
|
50
|
+
2. Find the **Video Generation** section
|
|
51
|
+
3. Copy the verified payload structure for the desired model
|
|
52
|
+
4. Insert your constructed motion prompt, source image, and aspect ratio
|
|
53
|
+
5. Execute the API call via your configured generation provider
|
|
54
|
+
6. For hero content: run all three models in parallel (see Parallel Multi-Model Generation below)
|
|
55
|
+
|
|
56
|
+
### Cross-Model Parameter Cheat Sheet
|
|
57
|
+
|
|
58
|
+
Every video model uses different parameter names for the same concept. Always consult MODEL_REGISTRY.md before writing any API call.
|
|
59
|
+
|
|
60
|
+
| Concept | Kling 2.5 | Veo 3.1 | Sora 2 |
|
|
61
|
+
|---------|-----------|---------|--------|
|
|
62
|
+
| **Starting image** | `start_image` | `image` | `input_reference` |
|
|
63
|
+
| **Duration** | `duration` (5, 10) | `duration` (4, 6, 8) | `seconds` (4-12) |
|
|
64
|
+
| **Aspect ratio** | `aspect_ratio` ("16:9") | `aspect_ratio` ("16:9") | `aspect_ratio` ("landscape") |
|
|
65
|
+
| **Prompt adherence** | *(removed)* | — | — |
|
|
66
|
+
| **Negative prompt** | `negative_prompt` | `negative_prompt` | — |
|
|
67
|
+
| **Audio generation** | Not native | `generate_audio` | Native (always on) |
|
|
68
|
+
| **Ending frame** | `end_image` | `last_frame` | — |
|
|
69
|
+
| **Resolution control** | Fixed 1080p | `resolution` ("720p", "1080p") | Fixed |
|
|
70
|
+
| **Reproducibility** | — | `seed` | — |
|
|
71
|
+
|
|
72
|
+
### Model Strengths and Weaknesses
|
|
73
|
+
|
|
74
|
+
Refer to MODEL_REGISTRY.md for authoritative details. Summary for prompt-routing decisions:
|
|
75
|
+
|
|
76
|
+
**Kling 2.5 Turbo Pro (Default):**
|
|
77
|
+
- Best motion control, cinematic depth, consistent quality
|
|
78
|
+
- Strong prompt adherence
|
|
79
|
+
- Best for human subjects and natural motion
|
|
80
|
+
- Longer video coherence (5s and 10s)
|
|
81
|
+
- Sometimes adds unwanted elements
|
|
82
|
+
- Fast camera movements can cause warping at edges
|
|
83
|
+
|
|
84
|
+
**Google Veo 3.1:**
|
|
85
|
+
- Highest fidelity video output
|
|
86
|
+
- Can generate matching audio (set `generate_audio: true`)
|
|
87
|
+
- Cinematic quality
|
|
88
|
+
- Slower generation, higher cost
|
|
89
|
+
- Sometimes "interprets" prompts loosely
|
|
90
|
+
- No square aspect ratio support
|
|
91
|
+
|
|
92
|
+
**OpenAI Sora 2:**
|
|
93
|
+
- Strong prompt comprehension
|
|
94
|
+
- Good motion coherence
|
|
95
|
+
- Native audio generation (always on)
|
|
96
|
+
- Most variable generation times
|
|
97
|
+
- Sometimes over-stylizes
|
|
98
|
+
- No square aspect ratio support
|
|
99
|
+
|
|
100
|
+
### When to Use Which
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
GENERAL PRODUCT → Kling 2.5 (reliable, fast, cheapest)
|
|
104
|
+
NEEDS AUDIO → Veo 3.1 (native audio, highest fidelity)
|
|
105
|
+
HAS PEOPLE → Kling 2.5 (best human motion)
|
|
106
|
+
HERO/FLAGSHIP → Run all 3 in parallel, pick winner
|
|
107
|
+
UNCERTAIN → Run all 3 in parallel, pick winner
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Parallel Multi-Model Generation
|
|
113
|
+
|
|
114
|
+
For hero content and any case where quality matters more than cost, run the same motion prompt through all three video models simultaneously.
|
|
115
|
+
|
|
116
|
+
### Why Parallel Beats Sequential
|
|
117
|
+
|
|
118
|
+
- No single model wins every prompt — the best output varies by content
|
|
119
|
+
- Running in parallel takes the same wall-clock time as the slowest model (~6 min)
|
|
120
|
+
- Running sequentially would take ~15 minutes for all three
|
|
121
|
+
- Total cost for a parallel comparison run: ~$2.20 (see Cost Awareness below)
|
|
122
|
+
- Eliminates guessing — present all three, let the user pick
|
|
123
|
+
|
|
124
|
+
### Parallel Execution Pattern
|
|
125
|
+
|
|
126
|
+
Use task agents to fire all three API calls simultaneously:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
PARALLEL GENERATION PLAN
|
|
130
|
+
─────────────────────────────────────────────
|
|
131
|
+
Task 1: Kling 2.5 → cost ~$0.40, time ~3min
|
|
132
|
+
Task 2: Veo 3.1 → cost ~$1.00, time ~5min
|
|
133
|
+
Task 3: Sora 2 → cost ~$0.80, time ~6min
|
|
134
|
+
─────────────────────────────────────────────
|
|
135
|
+
Total: ~$2.20, ~6min (parallel)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Steps:**
|
|
139
|
+
1. Construct the motion prompt (shared across all models)
|
|
140
|
+
2. Translate the prompt into each model's API format (check MODEL_REGISTRY.md for parameter names)
|
|
141
|
+
3. Launch all three API calls in parallel
|
|
142
|
+
4. Poll for completion (all should finish within ~6 minutes)
|
|
143
|
+
5. Present all three outputs side-by-side for user selection
|
|
144
|
+
|
|
145
|
+
### Translating One Prompt to Three APIs
|
|
146
|
+
|
|
147
|
+
Given a motion prompt and source image, the payload differs per model. Example for a 16:9 I2V call:
|
|
148
|
+
|
|
149
|
+
**Kling 2.5 payload (from MODEL_REGISTRY.md):**
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"model": "{{video_model_from_stack}}",
|
|
153
|
+
"input": {
|
|
154
|
+
"prompt": "{{motion_prompt}}",
|
|
155
|
+
"start_image": "{{source_image_url}}",
|
|
156
|
+
"duration": 5,
|
|
157
|
+
"aspect_ratio": "16:9"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Veo 3.1 payload (from MODEL_REGISTRY.md):**
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"model": "{{premium_video_model_from_stack}}",
|
|
166
|
+
"input": {
|
|
167
|
+
"prompt": "{{motion_prompt}}",
|
|
168
|
+
"image": "{{source_image_url}}",
|
|
169
|
+
"duration": 8,
|
|
170
|
+
"aspect_ratio": "16:9",
|
|
171
|
+
"resolution": "1080p",
|
|
172
|
+
"generate_audio": true
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Sora 2 payload (from MODEL_REGISTRY.md):**
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"model": "{{comparison_video_model_from_stack}}",
|
|
181
|
+
"input": {
|
|
182
|
+
"prompt": "{{motion_prompt}}",
|
|
183
|
+
"input_reference": "{{source_image_url}}",
|
|
184
|
+
"seconds": 8,
|
|
185
|
+
"aspect_ratio": "landscape"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Critical:** Always verify these payloads against MODEL_REGISTRY.md before execution. Parameter names change when models update.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Cost Awareness
|
|
195
|
+
|
|
196
|
+
Before generating, always estimate and communicate the cost to the user.
|
|
197
|
+
|
|
198
|
+
### Per-Generation Estimates
|
|
199
|
+
|
|
200
|
+
| Model | Duration | Estimated Cost | Typical Time |
|
|
201
|
+
|-------|----------|---------------|--------------|
|
|
202
|
+
| Kling 2.5 | 5s clip | $0.30-0.50 | 2-5min |
|
|
203
|
+
| Kling 2.5 | 10s clip | $0.60-1.00 | 4-8min |
|
|
204
|
+
| Veo 3.1 | 8s clip (720p) | $0.60-0.80 | 3-6min |
|
|
205
|
+
| Veo 3.1 | 8s clip (1080p) | $1.00-1.50 | 5-8min |
|
|
206
|
+
| Sora 2 | 8s clip | $0.60-1.20 | 3-10min |
|
|
207
|
+
|
|
208
|
+
### Common Workflow Cost Estimates
|
|
209
|
+
|
|
210
|
+
| Workflow | What You Get | Estimated Cost |
|
|
211
|
+
|----------|-------------|---------------|
|
|
212
|
+
| Single model, single clip | 1 video | ~$0.40-1.20 |
|
|
213
|
+
| Parallel comparison (3 models) | 3 videos to compare | ~$2.00-2.50 |
|
|
214
|
+
| Multi-style exploration (3 styles x 1 model) | 3 motion approaches | ~$1.20-3.60 |
|
|
215
|
+
| Multi-style x multi-model (3 styles x 3 models) | 9 videos to compare | ~$6.00-7.50 |
|
|
216
|
+
| Multi-clip stitch (4 clips x 1 model) | 1 edited sequence | ~$1.60-4.80 |
|
|
217
|
+
| Full hero production (stitch + comparison) | Complete hero video | ~$5.00-10.00 |
|
|
218
|
+
|
|
219
|
+
### Cost Communication Template
|
|
220
|
+
|
|
221
|
+
Before executing, inform the user:
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
ESTIMATED GENERATION COST
|
|
225
|
+
─────────────────────────
|
|
226
|
+
Models: [list models]
|
|
227
|
+
Clips: [number of clips]
|
|
228
|
+
Duration per clip: [seconds]
|
|
229
|
+
Estimated total: ~$X.XX
|
|
230
|
+
Estimated time: ~Xmin (parallel) / ~Xmin (sequential)
|
|
231
|
+
|
|
232
|
+
Proceed? [Y/n]
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## I2V vs T2V: Why Image-First Wins
|
|
238
|
+
|
|
239
|
+
### Image-to-Video (I2V) — RECOMMENDED
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
product-photo mode → [approve image] → product-video mode (I2V)
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Why I2V is superior for products:**
|
|
246
|
+
- Frame 1 is exactly what you approved
|
|
247
|
+
- Product appearance locked in
|
|
248
|
+
- Motion anchored to known composition
|
|
249
|
+
- Easy iteration without changing product
|
|
250
|
+
- If video fails, you still have the approved image
|
|
251
|
+
|
|
252
|
+
### Text-to-Video (T2V)
|
|
253
|
+
|
|
254
|
+
Only use when:
|
|
255
|
+
- No source image available
|
|
256
|
+
- Need completely new composition
|
|
257
|
+
- Exploring motion concepts before committing to image
|
|
258
|
+
|
|
259
|
+
T2V requires extremely detailed prompts and often needs multiple attempts.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Motion Style Exploration
|
|
264
|
+
|
|
265
|
+
**Don't lock into one motion style.** Generate multiple approaches, pick the winner.
|
|
266
|
+
|
|
267
|
+
### Why Motion Style Matters
|
|
268
|
+
|
|
269
|
+
The same product animated differently can feel:
|
|
270
|
+
- Premium vs cheap
|
|
271
|
+
- Innovative vs traditional
|
|
272
|
+
- Exciting vs calming
|
|
273
|
+
- Professional vs amateur
|
|
274
|
+
|
|
275
|
+
**One style = hope. Multiple styles = informed choice.**
|
|
276
|
+
|
|
277
|
+
### 5 Motion Style Directions
|
|
278
|
+
|
|
279
|
+
For any product, consider these distinct approaches:
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
Style 1 - Slow Reveal (Premium):
|
|
283
|
+
Slow cinematic push-in, dramatic lighting shifts,
|
|
284
|
+
atmospheric particles, elegant pacing, luxury feel
|
|
285
|
+
|
|
286
|
+
Style 2 - Orbit Showcase (360):
|
|
287
|
+
Camera smoothly orbits product, reveals all angles,
|
|
288
|
+
professional product demo, informational
|
|
289
|
+
|
|
290
|
+
Style 3 - Floating Premium (Tech):
|
|
291
|
+
Product floats weightlessly, gentle hover motion,
|
|
292
|
+
dreamlike quality, premium tech aesthetic
|
|
293
|
+
|
|
294
|
+
Style 4 - Dynamic Energy (Bold):
|
|
295
|
+
Fast camera moves, dramatic angles, high energy,
|
|
296
|
+
sports/action commercial aesthetic
|
|
297
|
+
|
|
298
|
+
Style 5 - Contextual/Lifestyle:
|
|
299
|
+
Product in use or setting, natural motion,
|
|
300
|
+
lifestyle commercial, relatable context
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Style Decision Framework
|
|
304
|
+
|
|
305
|
+
| Product Positioning | Best Motion Style |
|
|
306
|
+
|---------------------|-------------------|
|
|
307
|
+
| Luxury/Premium | Slow Reveal or Floating Premium |
|
|
308
|
+
| Tech/Innovation | Floating Premium or Dynamic Energy |
|
|
309
|
+
| Practical/Everyday | Orbit Showcase or Contextual |
|
|
310
|
+
| Fashion/Lifestyle | Contextual or Slow Reveal |
|
|
311
|
+
| Sports/Action | Dynamic Energy |
|
|
312
|
+
| Food/Beverage | Slow Reveal or Contextual |
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Motion Style Deep Dives
|
|
317
|
+
|
|
318
|
+
### Slow Reveal (Premium)
|
|
319
|
+
|
|
320
|
+
The go-to for luxury and premium products. Builds anticipation, creates desire.
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
Slow cinematic push-in toward [product], smooth elegant motion,
|
|
324
|
+
dramatic spotlight illumination with subtle light shifts,
|
|
325
|
+
atmospheric dust particles drifting through light beam,
|
|
326
|
+
premium commercial reveal, luxurious pacing, 5 seconds
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Key elements:**
|
|
330
|
+
- **Speed:** Slow, deliberate (builds anticipation)
|
|
331
|
+
- **Camera:** Push-in (draws viewer to product)
|
|
332
|
+
- **Lighting:** Dramatic shifts (creates dimension)
|
|
333
|
+
- **Atmosphere:** Particles/bokeh (premium feel)
|
|
334
|
+
|
|
335
|
+
**Variations:**
|
|
336
|
+
```
|
|
337
|
+
+ gradual brightness increase (dawn reveal)
|
|
338
|
+
+ side lighting sweep (sculptural reveal)
|
|
339
|
+
+ spot to fill (dramatic to detailed)
|
|
340
|
+
+ emerging from darkness (mystery reveal)
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
### Orbit Showcase (360)
|
|
346
|
+
|
|
347
|
+
Shows product from multiple angles. Informational but can be premium.
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
Camera smoothly orbits around [product], elegant 180-degree arc,
|
|
351
|
+
lighting shifts to reveal different surfaces and angles,
|
|
352
|
+
product remains perfectly centered, professional product showcase,
|
|
353
|
+
commercial demo quality, smooth continuous motion, 5 seconds
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Key elements:**
|
|
357
|
+
- **Speed:** Moderate, steady (professional)
|
|
358
|
+
- **Camera:** Orbiting (reveals all angles)
|
|
359
|
+
- **Lighting:** Shifts with camera (reveals features)
|
|
360
|
+
- **Product:** Centered, stable (not rotating itself)
|
|
361
|
+
|
|
362
|
+
**Variations:**
|
|
363
|
+
```
|
|
364
|
+
+ low angle orbit (powerful, imposing)
|
|
365
|
+
+ high angle orbit (overview, accessible)
|
|
366
|
+
+ half orbit with return (A-B-A motion)
|
|
367
|
+
+ orbit with zoom (combining movements)
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
### Floating Premium (Tech)
|
|
373
|
+
|
|
374
|
+
Weightless, dreamlike quality. Perfect for tech products.
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
[Product] floating weightlessly in space, gentle hovering motion
|
|
378
|
+
with subtle micro-movements, soft rotating drift,
|
|
379
|
+
premium tech aesthetic, clean minimal environment,
|
|
380
|
+
dreamlike quality, smooth ethereal motion, 5 seconds
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
**Key elements:**
|
|
384
|
+
- **Speed:** Very slow (dreamlike)
|
|
385
|
+
- **Motion:** Floating, hovering (defies gravity)
|
|
386
|
+
- **Environment:** Clean, minimal (focus on product)
|
|
387
|
+
- **Quality:** Ethereal, otherworldly (premium tech)
|
|
388
|
+
|
|
389
|
+
**Variations:**
|
|
390
|
+
```
|
|
391
|
+
+ subtle particle field (space tech)
|
|
392
|
+
+ gentle light ripples (premium feel)
|
|
393
|
+
+ minimal rotation (revealing sides)
|
|
394
|
+
+ breathing motion (organic tech)
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
### Dynamic Energy (Bold)
|
|
400
|
+
|
|
401
|
+
High energy for products that need excitement. Sports, gaming, lifestyle.
|
|
402
|
+
|
|
403
|
+
```
|
|
404
|
+
Dynamic reveal of [product], fast camera sweep with dramatic angles,
|
|
405
|
+
high energy motion with impact moment, bold lighting changes,
|
|
406
|
+
sports commercial aesthetic, exciting and engaging,
|
|
407
|
+
powerful reveal with kinetic energy, 5 seconds
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
**Key elements:**
|
|
411
|
+
- **Speed:** Fast, punchy (exciting)
|
|
412
|
+
- **Camera:** Dramatic angles, sweeps (energy)
|
|
413
|
+
- **Lighting:** Bold changes (dramatic)
|
|
414
|
+
- **Feel:** Impact, power (commanding)
|
|
415
|
+
|
|
416
|
+
**Variations:**
|
|
417
|
+
```
|
|
418
|
+
+ whip pan reveal (extreme speed)
|
|
419
|
+
+ crash zoom (sudden attention)
|
|
420
|
+
+ rotating explosion (dynamic start)
|
|
421
|
+
+ stop-motion style beats (rhythmic energy)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
### Contextual/Lifestyle
|
|
427
|
+
|
|
428
|
+
Product in realistic use or setting. Relatable, aspirational.
|
|
429
|
+
|
|
430
|
+
```
|
|
431
|
+
[Product] in [setting], natural environmental motion,
|
|
432
|
+
[person interacting/environmental movement/ambient motion],
|
|
433
|
+
lifestyle commercial quality, authentic feel,
|
|
434
|
+
relatable context, aspirational but believable, 5 seconds
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Key elements:**
|
|
438
|
+
- **Speed:** Natural pace (realistic)
|
|
439
|
+
- **Motion:** Environmental (wind, hands, ambient)
|
|
440
|
+
- **Setting:** Realistic context (relatable)
|
|
441
|
+
- **Feel:** Authentic (not over-produced)
|
|
442
|
+
|
|
443
|
+
**Variations:**
|
|
444
|
+
```
|
|
445
|
+
+ morning light shift (time passing)
|
|
446
|
+
+ hand reach/grab (product use)
|
|
447
|
+
+ environmental wind (outdoor context)
|
|
448
|
+
+ steam/condensation (food/beverage)
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## Camera Motion Vocabulary
|
|
454
|
+
|
|
455
|
+
Master these terms for precise motion control.
|
|
456
|
+
|
|
457
|
+
### Camera Movements
|
|
458
|
+
|
|
459
|
+
| Movement | Description | Best For |
|
|
460
|
+
|----------|-------------|----------|
|
|
461
|
+
| **Push-in** | Camera moves toward subject | Reveals, focus, intimacy |
|
|
462
|
+
| **Pull-out** | Camera moves away from subject | Context reveal, endings |
|
|
463
|
+
| **Orbit** | Camera circles subject | 360 showcase, features |
|
|
464
|
+
| **Dolly** | Smooth lateral movement | Panning reveals, scanning |
|
|
465
|
+
| **Crane** | Vertical movement | Grand reveals, overhead |
|
|
466
|
+
| **Tracking** | Following movement | Motion, lifestyle |
|
|
467
|
+
|
|
468
|
+
### Motion Speeds
|
|
469
|
+
|
|
470
|
+
| Speed | Description | Creates |
|
|
471
|
+
|-------|-------------|---------|
|
|
472
|
+
| **Slow** | Deliberate, elegant | Premium, luxury, contemplation |
|
|
473
|
+
| **Moderate** | Natural pace | Professional, informational |
|
|
474
|
+
| **Fast** | Quick, dynamic | Energy, excitement, urgency |
|
|
475
|
+
| **Variable** | Speed changes | Drama, emphasis, rhythm |
|
|
476
|
+
|
|
477
|
+
### Subject Movements
|
|
478
|
+
|
|
479
|
+
| Movement | Description | Best For |
|
|
480
|
+
|----------|-------------|----------|
|
|
481
|
+
| **Float** | Gentle hovering | Tech, premium, dreamlike |
|
|
482
|
+
| **Rotate** | Spinning on axis | Feature reveal, 360 |
|
|
483
|
+
| **Shimmer** | Light play across surface | Luxury, jewelry, metallic |
|
|
484
|
+
| **Settle** | Coming to rest | Endings, product placement |
|
|
485
|
+
| **Rise** | Ascending motion | Reveals, emergence |
|
|
486
|
+
|
|
487
|
+
### Atmospheric Elements
|
|
488
|
+
|
|
489
|
+
| Element | Description | Creates |
|
|
490
|
+
|---------|-------------|---------|
|
|
491
|
+
| **Particles** | Floating dust/light | Premium, cinematic |
|
|
492
|
+
| **Bokeh** | Background blur animation | Focus, depth |
|
|
493
|
+
| **Light shift** | Changing illumination | Drama, dimension |
|
|
494
|
+
| **Reflections** | Moving light on surfaces | Luxury, quality |
|
|
495
|
+
| **Shadows** | Shadow movement | Time, drama |
|
|
496
|
+
|
|
497
|
+
---
|
|
498
|
+
|
|
499
|
+
## Product Category Deep Dives
|
|
500
|
+
|
|
501
|
+
### Electronics and Tech
|
|
502
|
+
|
|
503
|
+
**Motion characteristics:**
|
|
504
|
+
- Controlled reflections moving across surfaces
|
|
505
|
+
- Subtle LED/screen glow animation
|
|
506
|
+
- Premium tech aesthetic
|
|
507
|
+
- Clean, precise motion
|
|
508
|
+
|
|
509
|
+
```
|
|
510
|
+
[Tech product] with controlled reflections moving across
|
|
511
|
+
metallic surfaces, subtle indicator lights glowing,
|
|
512
|
+
premium technology commercial motion, clean precise aesthetic,
|
|
513
|
+
professional tech showcase, sophisticated reveal
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
**Best styles:** Floating Premium, Slow Reveal
|
|
517
|
+
**Avoid:** Chaotic motion, uncontrolled reflections
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
### Fashion and Apparel
|
|
522
|
+
|
|
523
|
+
**Motion characteristics:**
|
|
524
|
+
- Natural fabric movement
|
|
525
|
+
- Subtle wind/flow effects
|
|
526
|
+
- Fashion editorial quality
|
|
527
|
+
- Elegant, aspirational
|
|
528
|
+
|
|
529
|
+
```
|
|
530
|
+
[Apparel item] with natural fabric movement, subtle wind effect
|
|
531
|
+
creating gentle flow, fashion commercial motion quality,
|
|
532
|
+
elegant and aspirational, editorial photography in motion
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
**Best styles:** Slow Reveal, Contextual
|
|
536
|
+
**Avoid:** Stiff fabric, unnatural movement
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
### Food and Beverage
|
|
541
|
+
|
|
542
|
+
**Motion characteristics:**
|
|
543
|
+
- Rising steam (hot items)
|
|
544
|
+
- Condensation (cold items)
|
|
545
|
+
- Fresh ingredient motion
|
|
546
|
+
- Appetizing reveal
|
|
547
|
+
|
|
548
|
+
```
|
|
549
|
+
[Food/beverage product] with [steam rising/condensation forming],
|
|
550
|
+
fresh appetizing motion, food commercial aesthetic,
|
|
551
|
+
delicious reveal, mouth-watering presentation,
|
|
552
|
+
warm inviting tones in motion
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
**Best styles:** Slow Reveal, Contextual
|
|
556
|
+
**Key elements:** Steam, pour, drip, fresh
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
### Beauty and Cosmetics
|
|
561
|
+
|
|
562
|
+
**Motion characteristics:**
|
|
563
|
+
- Smooth texture reveals
|
|
564
|
+
- Shimmer and sparkle
|
|
565
|
+
- Luxury beauty aesthetic
|
|
566
|
+
- Elegant product motion
|
|
567
|
+
|
|
568
|
+
```
|
|
569
|
+
[Beauty product] with smooth cream/liquid texture in motion,
|
|
570
|
+
subtle shimmer and light play, luxury beauty commercial aesthetic,
|
|
571
|
+
elegant product reveal, premium cosmetic presentation,
|
|
572
|
+
sophisticated and aspirational
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
**Best styles:** Slow Reveal, Floating Premium
|
|
576
|
+
**Avoid:** Fast motion, harsh lighting
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
### Jewelry and Watches
|
|
581
|
+
|
|
582
|
+
**Motion characteristics:**
|
|
583
|
+
- Sparkling reflections
|
|
584
|
+
- Light dancing across facets
|
|
585
|
+
- Luxury slow motion
|
|
586
|
+
- Elegant rotation
|
|
587
|
+
|
|
588
|
+
```
|
|
589
|
+
[Jewelry/watch] with sparkling reflections, light dancing
|
|
590
|
+
across precious surfaces and facets, luxury jewelry commercial,
|
|
591
|
+
elegant slow rotation revealing brilliance,
|
|
592
|
+
premium positioning, sophisticated motion
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
**Best styles:** Slow Reveal, Orbit Showcase
|
|
596
|
+
**Key:** Controlled sparkle, not chaotic reflections
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
### Furniture and Home
|
|
601
|
+
|
|
602
|
+
**Motion characteristics:**
|
|
603
|
+
- Environmental context motion
|
|
604
|
+
- Natural light shifts
|
|
605
|
+
- Lifestyle integration
|
|
606
|
+
- Scale demonstration
|
|
607
|
+
|
|
608
|
+
```
|
|
609
|
+
[Furniture/home product] in styled room setting,
|
|
610
|
+
natural light shifting through window, environmental motion,
|
|
611
|
+
lifestyle interior commercial, aspirational home aesthetic,
|
|
612
|
+
showing product in context, inviting atmosphere
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**Best styles:** Contextual, Slow Reveal
|
|
616
|
+
**Key:** Show scale, show in use
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
620
|
+
## Audio Layer Guidance
|
|
621
|
+
|
|
622
|
+
Video content often needs audio. There are three distinct approaches, and the right one depends on content type and destination platform.
|
|
623
|
+
|
|
624
|
+
### Approach 1: Model-Native Audio
|
|
625
|
+
|
|
626
|
+
Some video models generate synchronized audio as part of the video output. This is the fastest path to audio-inclusive video.
|
|
627
|
+
|
|
628
|
+
**Veo 3.1 (native audio via `generate_audio: true`):**
|
|
629
|
+
- Generates contextually aware audio matched to visual content
|
|
630
|
+
- Best for ambient sounds, environmental audio, product sounds
|
|
631
|
+
- Adds processing time (~30-60s extra)
|
|
632
|
+
- Quality is good for ambient/environmental, weaker for speech
|
|
633
|
+
- Set `generate_audio: true` in the API payload (see MODEL_REGISTRY.md)
|
|
634
|
+
|
|
635
|
+
**Sora 2 (audio always on):**
|
|
636
|
+
- Always generates audio alongside video
|
|
637
|
+
- Cannot be disabled
|
|
638
|
+
- Audio quality varies — sometimes excellent, sometimes distracting
|
|
639
|
+
- Review audio carefully; you may want to strip it in post
|
|
640
|
+
|
|
641
|
+
**Kling 2.5 (no native audio):**
|
|
642
|
+
- Does not generate audio
|
|
643
|
+
- Output is silent video
|
|
644
|
+
- Add audio in post-production if needed
|
|
645
|
+
|
|
646
|
+
### Approach 2: Voiceover via TTS
|
|
647
|
+
|
|
648
|
+
For narrated product videos, generate the video silently and add voiceover separately.
|
|
649
|
+
|
|
650
|
+
**Workflow:**
|
|
651
|
+
```
|
|
652
|
+
1. Generate product video (any model, audio off or stripped)
|
|
653
|
+
2. Write voiceover script
|
|
654
|
+
3. Generate voiceover audio via TTS service (ElevenLabs, etc.)
|
|
655
|
+
4. Combine video + voiceover in post
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
**When to use TTS voiceover:**
|
|
659
|
+
- Product explanation or feature walkthrough
|
|
660
|
+
- Brand voice consistency required
|
|
661
|
+
- Multiple language versions needed
|
|
662
|
+
- Testimonial-style narration
|
|
663
|
+
|
|
664
|
+
**Voiceover script tips for product video:**
|
|
665
|
+
- Keep it short: 5-second video = 10-15 words maximum
|
|
666
|
+
- Lead with benefit, not feature
|
|
667
|
+
- Match energy to motion style (slow reveal = calm voice, dynamic = energetic)
|
|
668
|
+
- Leave breathing room — silence between phrases is powerful
|
|
669
|
+
|
|
670
|
+
### Approach 3: Intentional Silence
|
|
671
|
+
|
|
672
|
+
Sometimes the best audio is no audio. Many platforms auto-mute video in feeds.
|
|
673
|
+
|
|
674
|
+
**When silence is the right choice:**
|
|
675
|
+
- Social feed content (Instagram, Facebook, LinkedIn auto-mute)
|
|
676
|
+
- Video will have music added in post-production
|
|
677
|
+
- Clean asset for editor to work with
|
|
678
|
+
- Product speaks for itself visually
|
|
679
|
+
- Platform relies on captions, not audio
|
|
680
|
+
|
|
681
|
+
### Audio Decision Matrix
|
|
682
|
+
|
|
683
|
+
| Content Type | Platform | Recommended Audio Approach |
|
|
684
|
+
|--------------|----------|---------------------------|
|
|
685
|
+
| Premium reveal | Website hero | Model-native ambient (Veo 3.1) |
|
|
686
|
+
| Tech product | Product page | Silence or subtle ambient |
|
|
687
|
+
| Lifestyle context | Instagram feed | Silence (auto-muted) |
|
|
688
|
+
| Feature walkthrough | YouTube | TTS voiceover |
|
|
689
|
+
| Food/beverage | TikTok | Model-native (sizzle, pour sounds) |
|
|
690
|
+
| Fashion | Instagram Reels | Silence (music added in post) |
|
|
691
|
+
| Testimonial | Landing page | TTS voiceover or recorded audio |
|
|
692
|
+
| E-commerce listing | Amazon/Shopify | Silence |
|
|
693
|
+
|
|
694
|
+
### Audio Prompt Additions (Veo 3.1)
|
|
695
|
+
|
|
696
|
+
When using Veo 3.1 with `generate_audio: true`, append audio direction to your motion prompt:
|
|
697
|
+
|
|
698
|
+
```
|
|
699
|
+
With accompanying audio:
|
|
700
|
+
+ subtle cinematic bass swell on reveal
|
|
701
|
+
+ ambient room tone with product sounds
|
|
702
|
+
+ gentle electronic undertone
|
|
703
|
+
+ natural environmental audio
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
### When to Skip Audio
|
|
707
|
+
|
|
708
|
+
- Will add music in post
|
|
709
|
+
- Platform auto-mutes
|
|
710
|
+
- Need flexibility for voiceover
|
|
711
|
+
- Clean audio for other edit
|
|
712
|
+
- Budget-conscious (audio adds generation time and cost)
|
|
713
|
+
|
|
714
|
+
---
|
|
715
|
+
|
|
716
|
+
## Clip Stitching: Multi-Clip Sequences
|
|
717
|
+
|
|
718
|
+
Single 5-second clips are the atomic unit of AI video. For longer content, plan multiple clips that edit together into a cohesive sequence.
|
|
719
|
+
|
|
720
|
+
### Why Clip Stitching
|
|
721
|
+
|
|
722
|
+
AI video models produce their best output in short durations (5-8 seconds). Longer generations (10s+) often have quality dips in the middle. Instead of fighting this limitation, embrace it:
|
|
723
|
+
|
|
724
|
+
- Plan a sequence of 4-6 short clips
|
|
725
|
+
- Each clip has a distinct camera angle, motion style, or perspective
|
|
726
|
+
- Together they tell a visual story
|
|
727
|
+
- This matches how real commercials are shot and edited
|
|
728
|
+
|
|
729
|
+
### Sequence Planning Template
|
|
730
|
+
|
|
731
|
+
Before generating any clips, plan the full sequence:
|
|
732
|
+
|
|
733
|
+
```
|
|
734
|
+
CLIP SEQUENCE PLAN
|
|
735
|
+
─────────────────────────────────────────────
|
|
736
|
+
Product: [product name]
|
|
737
|
+
Total duration: [target seconds]
|
|
738
|
+
Clips: [number]
|
|
739
|
+
Edit style: [cut/dissolve/matched]
|
|
740
|
+
|
|
741
|
+
Clip 1 (0:00-0:05): [description]
|
|
742
|
+
Motion: [style]
|
|
743
|
+
Camera: [movement]
|
|
744
|
+
Purpose: [establish/reveal/detail/context/close]
|
|
745
|
+
|
|
746
|
+
Clip 2 (0:05-0:10): [description]
|
|
747
|
+
Motion: [style]
|
|
748
|
+
Camera: [movement]
|
|
749
|
+
Purpose: [establish/reveal/detail/context/close]
|
|
750
|
+
|
|
751
|
+
Clip 3 (0:10-0:15): [description]
|
|
752
|
+
Motion: [style]
|
|
753
|
+
Camera: [movement]
|
|
754
|
+
Purpose: [establish/reveal/detail/context/close]
|
|
755
|
+
|
|
756
|
+
Clip 4 (0:15-0:20): [description]
|
|
757
|
+
Motion: [style]
|
|
758
|
+
Camera: [movement]
|
|
759
|
+
Purpose: [establish/reveal/detail/context/close]
|
|
760
|
+
─────────────────────────────────────────────
|
|
761
|
+
Estimated cost: [clips x per-clip cost]
|
|
762
|
+
Estimated time: [max clip time if parallel]
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
### Common Sequence Structures
|
|
766
|
+
|
|
767
|
+
**The Classic Product Reveal (4 clips, 20 seconds):**
|
|
768
|
+
```
|
|
769
|
+
Clip 1: Wide establishing shot, product in darkness, slow reveal
|
|
770
|
+
Clip 2: Medium orbit, product rotating to show key features
|
|
771
|
+
Clip 3: Close-up detail, texture/material quality visible
|
|
772
|
+
Clip 4: Hero shot, full product, tagline moment
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
**The Lifestyle Story (4 clips, 20 seconds):**
|
|
776
|
+
```
|
|
777
|
+
Clip 1: Context setting, environment without product
|
|
778
|
+
Clip 2: Product introduction, enters the scene
|
|
779
|
+
Clip 3: Product in use, interaction moment
|
|
780
|
+
Clip 4: Product hero shot, aspirational framing
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
**The Feature Walkthrough (5 clips, 25 seconds):**
|
|
784
|
+
```
|
|
785
|
+
Clip 1: Full product hero shot, establishing
|
|
786
|
+
Clip 2: Feature 1 detail, camera focuses on specific area
|
|
787
|
+
Clip 3: Feature 2 detail, different angle
|
|
788
|
+
Clip 4: Feature 3 detail, close-up
|
|
789
|
+
Clip 5: Pull back to full product, closing hero shot
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
**The Quick Social Cut (3 clips, 15 seconds):**
|
|
793
|
+
```
|
|
794
|
+
Clip 1: Attention-grabbing dynamic reveal
|
|
795
|
+
Clip 2: Product detail or use moment
|
|
796
|
+
Clip 3: Clean product shot with space for text overlay
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
### Stitching Tips
|
|
800
|
+
|
|
801
|
+
1. **Maintain consistent lighting** across clips by using similar prompt language for lighting in each clip
|
|
802
|
+
2. **Use the same source image** as the starting point for all clips (I2V) to maintain product consistency
|
|
803
|
+
3. **Vary camera angle and distance** between clips — this is what makes edits feel professional
|
|
804
|
+
4. **Plan transition moments** — end each clip in a state that cuts naturally to the next
|
|
805
|
+
5. **Generate all clips for a sequence in parallel** to save time
|
|
806
|
+
6. **Use end_image/last_frame** parameters (Kling and Veo) to control clip endpoints for smoother transitions
|
|
807
|
+
7. **Cost multiplies linearly** — a 4-clip sequence costs 4x a single clip
|
|
808
|
+
|
|
809
|
+
### Stitching Cost Estimate
|
|
810
|
+
|
|
811
|
+
| Sequence Length | Clips | Model | Estimated Cost | Estimated Time |
|
|
812
|
+
|----------------|-------|-------|---------------|----------------|
|
|
813
|
+
| 15 seconds | 3 clips | Kling 2.5 | ~$1.20 | ~5min parallel |
|
|
814
|
+
| 20 seconds | 4 clips | Kling 2.5 | ~$1.60 | ~5min parallel |
|
|
815
|
+
| 20 seconds | 4 clips | All 3 models | ~$8.80 | ~6min parallel |
|
|
816
|
+
| 25 seconds | 5 clips | Kling 2.5 | ~$2.00 | ~5min parallel |
|
|
817
|
+
| 30 seconds | 6 clips | Kling 2.5 | ~$2.40 | ~5min parallel |
|
|
818
|
+
|
|
819
|
+
---
|
|
820
|
+
|
|
821
|
+
## Sound Design Considerations
|
|
822
|
+
|
|
823
|
+
### When to Use Audio
|
|
824
|
+
|
|
825
|
+
Consider these recommendations based on content type:
|
|
826
|
+
|
|
827
|
+
| Content Type | Audio Recommendation |
|
|
828
|
+
|--------------|---------------------|
|
|
829
|
+
| Premium reveal | Subtle ambient + bass swell |
|
|
830
|
+
| Tech product | Electronic tones, clean |
|
|
831
|
+
| Lifestyle | Environmental sounds |
|
|
832
|
+
| Food | Sizzle, pour, crunch |
|
|
833
|
+
| Fashion | Music-driven |
|
|
834
|
+
|
|
835
|
+
### Audio in Multi-Clip Sequences
|
|
836
|
+
|
|
837
|
+
When stitching clips into a sequence, audio strategy needs to be consistent across all clips:
|
|
838
|
+
|
|
839
|
+
**Option A: Generate audio per-clip (Veo 3.1)**
|
|
840
|
+
- Each clip gets its own audio
|
|
841
|
+
- May need post-production to smooth audio transitions between clips
|
|
842
|
+
- Best for environmental/ambient audio that can overlap
|
|
843
|
+
|
|
844
|
+
**Option B: Silent clips + post-production audio**
|
|
845
|
+
- Generate all clips silently
|
|
846
|
+
- Add music track, voiceover, or sound design in post
|
|
847
|
+
- Most professional approach for polished content
|
|
848
|
+
- Recommended for sequences longer than 10 seconds
|
|
849
|
+
|
|
850
|
+
**Option C: Audio on hero clip only**
|
|
851
|
+
- Generate the key clip with audio (Veo 3.1)
|
|
852
|
+
- Generate supporting clips silently
|
|
853
|
+
- Use the audio clip as the anchor, extend audio in post
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
## Platform Specifications
|
|
858
|
+
|
|
859
|
+
### Hero Banners (Website)
|
|
860
|
+
|
|
861
|
+
```
|
|
862
|
+
Ratio: 16:9
|
|
863
|
+
Duration: 5-8 seconds
|
|
864
|
+
Loop: Clean loop or freeze-end
|
|
865
|
+
Motion: Premium reveal or floating
|
|
866
|
+
Quality: High bitrate, clean compression
|
|
867
|
+
```
|
|
868
|
+
|
|
869
|
+
### Instagram Feed
|
|
870
|
+
|
|
871
|
+
```
|
|
872
|
+
Ratio: 1:1 (square) or 4:5 (portrait)
|
|
873
|
+
Duration: 5-15 seconds
|
|
874
|
+
Loop: Seamless loops perform best
|
|
875
|
+
Motion: Scroll-stopping first frame
|
|
876
|
+
Quality: Mobile-optimized
|
|
877
|
+
```
|
|
878
|
+
|
|
879
|
+
**Note on square (1:1):** Kling 2.5 supports 1:1 natively. Veo 3.1 and Sora 2 do not — generate at 16:9 and crop to square in post. See MODEL_REGISTRY.md for supported aspect ratios per model.
|
|
880
|
+
|
|
881
|
+
### Instagram Stories/Reels
|
|
882
|
+
|
|
883
|
+
```
|
|
884
|
+
Ratio: 9:16 (vertical)
|
|
885
|
+
Duration: 5-15 seconds
|
|
886
|
+
Loop: Optional
|
|
887
|
+
Motion: Vertical-optimized composition
|
|
888
|
+
Quality: Mobile-first
|
|
889
|
+
Safe Zone: Avoid top/bottom UI areas
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
### TikTok
|
|
893
|
+
|
|
894
|
+
```
|
|
895
|
+
Ratio: 9:16 (vertical)
|
|
896
|
+
Duration: 5-15 seconds
|
|
897
|
+
Style: More dynamic, native aesthetic
|
|
898
|
+
Motion: Not over-produced
|
|
899
|
+
Quality: Mobile-optimized
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
### Product Pages
|
|
903
|
+
|
|
904
|
+
```
|
|
905
|
+
Ratio: 16:9 or 1:1
|
|
906
|
+
Duration: 5-15 seconds
|
|
907
|
+
Loop: Clean loops
|
|
908
|
+
Motion: Informational (orbit, features)
|
|
909
|
+
Quality: Fast loading
|
|
910
|
+
```
|
|
911
|
+
|
|
912
|
+
### YouTube (Pre-roll / Shorts)
|
|
913
|
+
|
|
914
|
+
```
|
|
915
|
+
Ratio: 16:9 (standard) or 9:16 (Shorts)
|
|
916
|
+
Duration: 6-15 seconds (pre-roll), 15-60 seconds (Shorts)
|
|
917
|
+
Motion: Hook in first 2 seconds
|
|
918
|
+
Quality: 1080p minimum
|
|
919
|
+
Audio: Required for YouTube (use Veo 3.1 or add in post)
|
|
920
|
+
```
|
|
921
|
+
|
|
922
|
+
---
|
|
923
|
+
|
|
924
|
+
## Execution Workflow
|
|
925
|
+
|
|
926
|
+
### Step 1: Source Image
|
|
927
|
+
|
|
928
|
+
**Option A:** Use approved image from product-photo mode
|
|
929
|
+
```
|
|
930
|
+
Source: [approved product image URL]
|
|
931
|
+
Ratio: [must match desired video ratio]
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
**Option B:** Generate image first
|
|
935
|
+
Route to product-photo mode, approve the image, then return here.
|
|
936
|
+
|
|
937
|
+
### Step 2: Motion Style Selection
|
|
938
|
+
|
|
939
|
+
Choose approach or generate multiple for comparison:
|
|
940
|
+
|
|
941
|
+
```
|
|
942
|
+
[ ] Slow Reveal (Premium)
|
|
943
|
+
[ ] Orbit Showcase (360)
|
|
944
|
+
[ ] Floating Premium (Tech)
|
|
945
|
+
[ ] Dynamic Energy (Bold)
|
|
946
|
+
[ ] Contextual/Lifestyle
|
|
947
|
+
[ ] Explore multiple (generate 2-3 approaches)
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
### Step 3: Construct Motion Prompt
|
|
951
|
+
|
|
952
|
+
Formula:
|
|
953
|
+
```
|
|
954
|
+
[Motion style template] + [Product-specific additions] +
|
|
955
|
+
[Category modifications] + [Duration] + [Quality terms]
|
|
956
|
+
```
|
|
957
|
+
|
|
958
|
+
**For I2V prompts:** Describe the MOTION, not the static scene. The model can see the starting image. Saying "camera slowly orbits right, product rotates to reveal label" is correct. Saying "a bottle of wine on a table" is wrong.
|
|
959
|
+
|
|
960
|
+
### Step 4: Estimate Cost and Confirm
|
|
961
|
+
|
|
962
|
+
Before generating, present the cost estimate:
|
|
963
|
+
|
|
964
|
+
```
|
|
965
|
+
GENERATION PLAN
|
|
966
|
+
─────────────────────────
|
|
967
|
+
Model(s): [list]
|
|
968
|
+
Clips: [number]
|
|
969
|
+
Duration: [seconds per clip]
|
|
970
|
+
Estimated cost: ~$X.XX
|
|
971
|
+
Estimated time: ~Xmin
|
|
972
|
+
|
|
973
|
+
Proceed? [Y/n]
|
|
974
|
+
```
|
|
975
|
+
|
|
976
|
+
### Step 5: Multi-Model Generation
|
|
977
|
+
|
|
978
|
+
For hero content, run the same prompt through all three models in parallel. For standard content, use the default model (Kling 2.5).
|
|
979
|
+
|
|
980
|
+
**Kling 2.5 (from MODEL_REGISTRY.md):**
|
|
981
|
+
```json
|
|
982
|
+
{
|
|
983
|
+
"model": "{{video_model_from_stack}}",
|
|
984
|
+
"input": {
|
|
985
|
+
"prompt": "[motion prompt]",
|
|
986
|
+
"start_image": "[source image URL]",
|
|
987
|
+
"duration": 5,
|
|
988
|
+
"aspect_ratio": "16:9"
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
```
|
|
992
|
+
|
|
993
|
+
**Veo 3.1 (from MODEL_REGISTRY.md):**
|
|
994
|
+
```json
|
|
995
|
+
{
|
|
996
|
+
"model": "{{premium_video_model_from_stack}}",
|
|
997
|
+
"input": {
|
|
998
|
+
"prompt": "[motion prompt]",
|
|
999
|
+
"image": "[source image URL]",
|
|
1000
|
+
"duration": 8,
|
|
1001
|
+
"aspect_ratio": "16:9",
|
|
1002
|
+
"resolution": "1080p",
|
|
1003
|
+
"generate_audio": true
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
```
|
|
1007
|
+
|
|
1008
|
+
**Sora 2 (from MODEL_REGISTRY.md):**
|
|
1009
|
+
```json
|
|
1010
|
+
{
|
|
1011
|
+
"model": "{{comparison_video_model_from_stack}}",
|
|
1012
|
+
"input": {
|
|
1013
|
+
"prompt": "[motion prompt]",
|
|
1014
|
+
"input_reference": "[source image URL]",
|
|
1015
|
+
"seconds": 8,
|
|
1016
|
+
"aspect_ratio": "landscape"
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
```
|
|
1020
|
+
|
|
1021
|
+
**Run in parallel.** Poll for completion (~2-6 minutes depending on model).
|
|
1022
|
+
|
|
1023
|
+
**Critical reminder:** Always verify payload structure against MODEL_REGISTRY.md before execution. Parameter names differ across models and may change when models update.
|
|
1024
|
+
|
|
1025
|
+
### Step 6: Present Options
|
|
1026
|
+
|
|
1027
|
+
```markdown
|
|
1028
|
+
## Product Video Options Generated
|
|
1029
|
+
|
|
1030
|
+
**Source Image:** [URL]
|
|
1031
|
+
**Motion Style:** [style description]
|
|
1032
|
+
**Aspect Ratio:** [ratio]
|
|
1033
|
+
|
|
1034
|
+
### Option 1: Kling 2.5
|
|
1035
|
+
**Video URL:** [URL]
|
|
1036
|
+
**Generation Time:** [actual time]
|
|
1037
|
+
**Estimated Cost:** ~$0.40
|
|
1038
|
+
**Audio:** None (silent)
|
|
1039
|
+
**Notes:** [any observations]
|
|
1040
|
+
|
|
1041
|
+
### Option 2: Veo 3.1 (with audio)
|
|
1042
|
+
**Video URL:** [URL]
|
|
1043
|
+
**Generation Time:** [actual time]
|
|
1044
|
+
**Estimated Cost:** ~$1.00
|
|
1045
|
+
**Audio:** Native audio generated
|
|
1046
|
+
**Notes:** [any observations]
|
|
1047
|
+
|
|
1048
|
+
### Option 3: Sora 2
|
|
1049
|
+
**Video URL:** [URL]
|
|
1050
|
+
**Generation Time:** [actual time]
|
|
1051
|
+
**Estimated Cost:** ~$0.80
|
|
1052
|
+
**Audio:** Native audio generated
|
|
1053
|
+
**Notes:** [any observations]
|
|
1054
|
+
|
|
1055
|
+
**Which output do you prefer?**
|
|
1056
|
+
- Motion quality?
|
|
1057
|
+
- Matches product positioning?
|
|
1058
|
+
- Audio appropriate?
|
|
1059
|
+
- Ready to approve or try different style?
|
|
1060
|
+
```
|
|
1061
|
+
|
|
1062
|
+
### Step 7: Approve or Iterate
|
|
1063
|
+
|
|
1064
|
+
- **Approved:** Save selected video to `./campaigns/{product}/video/` and deliver
|
|
1065
|
+
- **Close but not right:** Adjust prompt, regenerate
|
|
1066
|
+
- **Wrong style:** Try different motion approach
|
|
1067
|
+
- **Technical issue:** Debug, regenerate
|
|
1068
|
+
- **Want longer video:** Plan a clip stitch sequence (see Clip Stitching above)
|
|
1069
|
+
|
|
1070
|
+
---
|
|
1071
|
+
|
|
1072
|
+
## File Output
|
|
1073
|
+
|
|
1074
|
+
All generated video assets are saved to the campaign directory for the product.
|
|
1075
|
+
|
|
1076
|
+
### Output Directory Structure
|
|
1077
|
+
|
|
1078
|
+
```
|
|
1079
|
+
./campaigns/{product}/video/
|
|
1080
|
+
├── hero-reveal-kling-v1.mp4
|
|
1081
|
+
├── hero-reveal-veo-v1.mp4
|
|
1082
|
+
├── hero-reveal-sora-v1.mp4
|
|
1083
|
+
├── hero-reveal-kling-v2.mp4 (iteration)
|
|
1084
|
+
├── orbit-showcase-kling-v1.mp4
|
|
1085
|
+
├── sequence/
|
|
1086
|
+
│ ├── clip-01-establish.mp4
|
|
1087
|
+
│ ├── clip-02-detail.mp4
|
|
1088
|
+
│ ├── clip-03-feature.mp4
|
|
1089
|
+
│ └── clip-04-hero.mp4
|
|
1090
|
+
└── approved/
|
|
1091
|
+
├── hero-reveal-final.mp4 (selected winner)
|
|
1092
|
+
└── orbit-showcase-final.mp4
|
|
1093
|
+
```
|
|
1094
|
+
|
|
1095
|
+
### File Naming Convention
|
|
1096
|
+
|
|
1097
|
+
```
|
|
1098
|
+
{style}-{model}-v{version}.mp4
|
|
1099
|
+
|
|
1100
|
+
Examples:
|
|
1101
|
+
slow-reveal-kling-v1.mp4
|
|
1102
|
+
orbit-showcase-veo-v1.mp4
|
|
1103
|
+
dynamic-energy-sora-v2.mp4
|
|
1104
|
+
lifestyle-context-kling-v1.mp4
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
### Saving Deliverables
|
|
1108
|
+
|
|
1109
|
+
After the user approves a video:
|
|
1110
|
+
1. Download the video from the generation URL
|
|
1111
|
+
2. Save to `./campaigns/{product}/video/` with the naming convention
|
|
1112
|
+
3. Copy the approved version to `./campaigns/{product}/video/approved/`
|
|
1113
|
+
4. Log the generation metadata (model, prompt, cost, timestamp)
|
|
1114
|
+
|
|
1115
|
+
---
|
|
1116
|
+
|
|
1117
|
+
## Quality Checklist
|
|
1118
|
+
|
|
1119
|
+
### Technical Quality
|
|
1120
|
+
- [ ] Resolution matches platform requirements
|
|
1121
|
+
- [ ] No obvious AI artifacts (warping, morphing)
|
|
1122
|
+
- [ ] Smooth motion (no jitter, stuttering)
|
|
1123
|
+
- [ ] Consistent throughout duration
|
|
1124
|
+
- [ ] Clean compression (no blocking)
|
|
1125
|
+
|
|
1126
|
+
### Motion Quality
|
|
1127
|
+
- [ ] Motion style matches product positioning
|
|
1128
|
+
- [ ] Speed appropriate for intended feel
|
|
1129
|
+
- [ ] Camera movement intentional
|
|
1130
|
+
- [ ] No unwanted elements added
|
|
1131
|
+
- [ ] Product remains recognizable throughout
|
|
1132
|
+
|
|
1133
|
+
### Commercial Quality
|
|
1134
|
+
- [ ] Looks professionally produced
|
|
1135
|
+
- [ ] Would work in commercial context
|
|
1136
|
+
- [ ] Elevates product perception
|
|
1137
|
+
- [ ] Appropriate for platform
|
|
1138
|
+
- [ ] Matches brand aesthetic
|
|
1139
|
+
|
|
1140
|
+
### Platform Fit
|
|
1141
|
+
- [ ] Correct aspect ratio
|
|
1142
|
+
- [ ] Appropriate duration
|
|
1143
|
+
- [ ] Works with platform compression
|
|
1144
|
+
- [ ] Loop-friendly (if needed)
|
|
1145
|
+
- [ ] Safe zones respected (mobile)
|
|
1146
|
+
|
|
1147
|
+
### Audio Quality (when applicable)
|
|
1148
|
+
- [ ] Audio matches visual content
|
|
1149
|
+
- [ ] No jarring or distracting sounds
|
|
1150
|
+
- [ ] Appropriate volume level
|
|
1151
|
+
- [ ] Audio enhances (not distracts from) product
|
|
1152
|
+
- [ ] Silence where silence is the right choice
|
|
1153
|
+
|
|
1154
|
+
---
|
|
1155
|
+
|
|
1156
|
+
## Common Issues and Solutions
|
|
1157
|
+
|
|
1158
|
+
| Issue | Cause | Solution |
|
|
1159
|
+
|-------|-------|----------|
|
|
1160
|
+
| Product morphs/changes | Model interpretation | Simpler motion prompt, use I2V |
|
|
1161
|
+
| Motion too fast | Prompt too energetic | Add "slow," "elegant," "smooth" |
|
|
1162
|
+
| Motion too slow | Over-specified slowness | Adjust speed terms |
|
|
1163
|
+
| Wrong elements appear | Model hallucination | Simpler prompt, different model |
|
|
1164
|
+
| Reflections wrong | Uncontrolled light | Add "controlled reflections" |
|
|
1165
|
+
| Looks cheap | Wrong motion style | Match style to positioning |
|
|
1166
|
+
| Doesn't loop | Not specified | Add "seamless loop" to prompt |
|
|
1167
|
+
| Wrong aspect | Default used | Specify ratio in API call (check MODEL_REGISTRY.md for parameter name) |
|
|
1168
|
+
| No audio (Veo) | Not enabled | Set `generate_audio: true` |
|
|
1169
|
+
| Background changes | Unstable composition | Use cleaner source image |
|
|
1170
|
+
| API parameter error | Wrong param name for model | Check cross-model cheat sheet in MODEL_REGISTRY.md |
|
|
1171
|
+
| Aspect ratio rejected | Model doesn't support it | Check MODEL_REGISTRY.md — Veo/Sora have no square support |
|
|
1172
|
+
| Generation timeout | Model overloaded | Retry; allow extra buffer for Sora 2 |
|
|
1173
|
+
| Quality dip mid-video | 10s generation issue | Use 5s clips and stitch instead |
|
|
1174
|
+
|
|
1175
|
+
---
|
|
1176
|
+
|
|
1177
|
+
## Iteration Strategies
|
|
1178
|
+
|
|
1179
|
+
### When Motion Is Close But Not Right
|
|
1180
|
+
|
|
1181
|
+
**Problem:** Almost there but something's off
|
|
1182
|
+
**Strategy:** Targeted prompt adjustments
|
|
1183
|
+
|
|
1184
|
+
```
|
|
1185
|
+
Too fast → add "slow," "elegant," "deliberate"
|
|
1186
|
+
Too static → add "dynamic," "moving," "shifting"
|
|
1187
|
+
Too chaotic → add "smooth," "controlled," "stable"
|
|
1188
|
+
Wrong mood → adjust atmosphere terms
|
|
1189
|
+
```
|
|
1190
|
+
|
|
1191
|
+
### When Motion Is Completely Wrong
|
|
1192
|
+
|
|
1193
|
+
**Problem:** Output doesn't match intent
|
|
1194
|
+
**Strategy:** Different approach entirely
|
|
1195
|
+
|
|
1196
|
+
Don't iterate on broken foundation:
|
|
1197
|
+
1. Try different motion style
|
|
1198
|
+
2. Try different model
|
|
1199
|
+
3. Simplify prompt dramatically
|
|
1200
|
+
4. Check source image quality
|
|
1201
|
+
|
|
1202
|
+
### When Technical Issues Occur
|
|
1203
|
+
|
|
1204
|
+
**Problem:** Artifacts, morphing, glitches
|
|
1205
|
+
**Strategy:** Technical fixes
|
|
1206
|
+
|
|
1207
|
+
```
|
|
1208
|
+
- Use cleaner source image
|
|
1209
|
+
- Simpler motion request
|
|
1210
|
+
- Different model
|
|
1211
|
+
- Lower complexity prompt
|
|
1212
|
+
- For Kling: reduce camera speed to avoid edge warping
|
|
1213
|
+
- For Veo: check portrait aspect ratio for unexpected cropping
|
|
1214
|
+
- For Sora: ensure reference image matches aspect ratio
|
|
1215
|
+
```
|
|
1216
|
+
|
|
1217
|
+
### When Budget Is a Concern
|
|
1218
|
+
|
|
1219
|
+
**Problem:** Need to minimize generation costs
|
|
1220
|
+
**Strategy:** Targeted model selection
|
|
1221
|
+
|
|
1222
|
+
```
|
|
1223
|
+
- Use Kling 2.5 only (cheapest at ~$0.40/clip)
|
|
1224
|
+
- Skip parallel comparison
|
|
1225
|
+
- Get motion style right with one model before comparing
|
|
1226
|
+
- Use 5s clips, not 10s
|
|
1227
|
+
- Plan sequences carefully before generating (avoid wasted clips)
|
|
1228
|
+
```
|
|
1229
|
+
|
|
1230
|
+
---
|
|
1231
|
+
|
|
1232
|
+
## Output Format
|
|
1233
|
+
|
|
1234
|
+
### Single Output
|
|
1235
|
+
```markdown
|
|
1236
|
+
## Product Video Generated
|
|
1237
|
+
|
|
1238
|
+
**Product:** [name]
|
|
1239
|
+
**Motion Style:** [style]
|
|
1240
|
+
**Model:** [selected model — see MODEL_REGISTRY.md]
|
|
1241
|
+
**Aspect Ratio:** [ratio]
|
|
1242
|
+
**Duration:** [seconds]
|
|
1243
|
+
**Estimated Cost:** ~$[amount]
|
|
1244
|
+
|
|
1245
|
+
**Video URL:** [URL]
|
|
1246
|
+
**Saved to:** ./campaigns/[product]/video/[filename].mp4
|
|
1247
|
+
|
|
1248
|
+
**Motion Prompt Used:**
|
|
1249
|
+
> [full prompt for reference]
|
|
1250
|
+
|
|
1251
|
+
**Quality Check:**
|
|
1252
|
+
- [ ] Motion quality
|
|
1253
|
+
- [ ] Product consistency
|
|
1254
|
+
- [ ] Platform appropriate
|
|
1255
|
+
- [ ] Commercial quality
|
|
1256
|
+
- [ ] Audio appropriate (if applicable)
|
|
1257
|
+
|
|
1258
|
+
**Feedback?**
|
|
1259
|
+
- Motion style right?
|
|
1260
|
+
- Speed appropriate?
|
|
1261
|
+
- Ready to approve or iterate?
|
|
1262
|
+
```
|
|
1263
|
+
|
|
1264
|
+
### Multi-Option Output
|
|
1265
|
+
```markdown
|
|
1266
|
+
## Product Video Options
|
|
1267
|
+
|
|
1268
|
+
**Source Image:** [URL]
|
|
1269
|
+
**Motion Style:** [style]
|
|
1270
|
+
|
|
1271
|
+
### Option 1: [Model] (~$[cost])
|
|
1272
|
+
- URL: [video URL]
|
|
1273
|
+
- Audio: [yes/no]
|
|
1274
|
+
- Observations: [notes]
|
|
1275
|
+
|
|
1276
|
+
### Option 2: [Model] (~$[cost])
|
|
1277
|
+
- URL: [video URL]
|
|
1278
|
+
- Audio: [yes/no]
|
|
1279
|
+
- Observations: [notes]
|
|
1280
|
+
|
|
1281
|
+
### Option 3: [Model] (~$[cost])
|
|
1282
|
+
- URL: [video URL]
|
|
1283
|
+
- Audio: [yes/no]
|
|
1284
|
+
- Observations: [notes]
|
|
1285
|
+
|
|
1286
|
+
**Total generation cost:** ~$[total]
|
|
1287
|
+
|
|
1288
|
+
**Select preferred output:**
|
|
1289
|
+
- [ ] Option 1
|
|
1290
|
+
- [ ] Option 2
|
|
1291
|
+
- [ ] Option 3
|
|
1292
|
+
- [ ] Try different motion style
|
|
1293
|
+
```
|
|
1294
|
+
|
|
1295
|
+
### Clip Sequence Output
|
|
1296
|
+
```markdown
|
|
1297
|
+
## Clip Sequence Generated
|
|
1298
|
+
|
|
1299
|
+
**Product:** [name]
|
|
1300
|
+
**Sequence:** [description]
|
|
1301
|
+
**Total Duration:** [seconds]
|
|
1302
|
+
**Model:** [model]
|
|
1303
|
+
**Total Cost:** ~$[amount]
|
|
1304
|
+
|
|
1305
|
+
### Clip 1: [purpose]
|
|
1306
|
+
- URL: [video URL]
|
|
1307
|
+
- Duration: [seconds]
|
|
1308
|
+
- Motion: [style]
|
|
1309
|
+
|
|
1310
|
+
### Clip 2: [purpose]
|
|
1311
|
+
- URL: [video URL]
|
|
1312
|
+
- Duration: [seconds]
|
|
1313
|
+
- Motion: [style]
|
|
1314
|
+
|
|
1315
|
+
### Clip 3: [purpose]
|
|
1316
|
+
- URL: [video URL]
|
|
1317
|
+
- Duration: [seconds]
|
|
1318
|
+
- Motion: [style]
|
|
1319
|
+
|
|
1320
|
+
### Clip 4: [purpose]
|
|
1321
|
+
- URL: [video URL]
|
|
1322
|
+
- Duration: [seconds]
|
|
1323
|
+
- Motion: [style]
|
|
1324
|
+
|
|
1325
|
+
**All clips saved to:** ./campaigns/[product]/video/sequence/
|
|
1326
|
+
|
|
1327
|
+
**Next steps:**
|
|
1328
|
+
- Review clip quality individually
|
|
1329
|
+
- Approve sequence for stitching
|
|
1330
|
+
- Re-generate any weak clips
|
|
1331
|
+
- Add audio in post-production
|
|
1332
|
+
```
|
|
1333
|
+
|
|
1334
|
+
---
|
|
1335
|
+
|
|
1336
|
+
## Integration with Pipeline
|
|
1337
|
+
|
|
1338
|
+
```
|
|
1339
|
+
PRODUCT VIDEO PIPELINE
|
|
1340
|
+
|
|
1341
|
+
┌─────────────────────────────────────────┐
|
|
1342
|
+
│ Request arrives │
|
|
1343
|
+
│ → Direct or from creative workflow │
|
|
1344
|
+
│ → Source image required? │
|
|
1345
|
+
└─────────────────────────────────────────┘
|
|
1346
|
+
│
|
|
1347
|
+
┌───────────┴───────────┐
|
|
1348
|
+
▼ ▼
|
|
1349
|
+
┌──────────────────┐ ┌──────────────────┐
|
|
1350
|
+
│ Has source │ │ Needs source │
|
|
1351
|
+
│ image │ │ image │
|
|
1352
|
+
└───────┬──────────┘ └────────┬─────────┘
|
|
1353
|
+
│ │
|
|
1354
|
+
│ ▼
|
|
1355
|
+
│ ┌──────────────────┐
|
|
1356
|
+
│ │ product-photo │
|
|
1357
|
+
│ │ mode │
|
|
1358
|
+
│ │ → Generate │
|
|
1359
|
+
│ │ → Approve │
|
|
1360
|
+
│ └────────┬─────────┘
|
|
1361
|
+
│ │
|
|
1362
|
+
└───────────┬───────────┘
|
|
1363
|
+
▼
|
|
1364
|
+
┌─────────────────────────────────────────┐
|
|
1365
|
+
│ Motion Style Selection │
|
|
1366
|
+
│ → Single style or multiple exploration │
|
|
1367
|
+
└─────────────────────────────────────────┘
|
|
1368
|
+
│
|
|
1369
|
+
▼
|
|
1370
|
+
┌─────────────────────────────────────────┐
|
|
1371
|
+
│ Cost Estimation │
|
|
1372
|
+
│ → Calculate based on models + clips │
|
|
1373
|
+
│ → Present to user for confirmation │
|
|
1374
|
+
└─────────────────────────────────────────┘
|
|
1375
|
+
│
|
|
1376
|
+
▼
|
|
1377
|
+
┌─────────────────────────────────────────┐
|
|
1378
|
+
│ product-video mode (THIS MODE) │
|
|
1379
|
+
│ → Construct motion prompt │
|
|
1380
|
+
│ → Multi-model parallel generation │
|
|
1381
|
+
│ → Present options │
|
|
1382
|
+
│ → User selects winner │
|
|
1383
|
+
│ → Save to campaigns/{product}/video/ │
|
|
1384
|
+
└─────────────────────────────────────────┘
|
|
1385
|
+
│
|
|
1386
|
+
┌───────────┼───────────┐
|
|
1387
|
+
▼ ▼ ▼
|
|
1388
|
+
┌──────────┐ ┌──────────┐ ┌──────────────┐
|
|
1389
|
+
│ Delivery │ │ Clip │ │ Route to │
|
|
1390
|
+
│ → Final │ │ Stitch │ │ talking-head │
|
|
1391
|
+
│ video │ │ → Plan │ │ mode │
|
|
1392
|
+
│ │ │ more │ │ → Voiceover │
|
|
1393
|
+
│ │ │ clips │ │ → Lip-sync │
|
|
1394
|
+
└──────────┘ └──────────┘ └──────────────┘
|
|
1395
|
+
```
|
|
1396
|
+
|
|
1397
|
+
---
|
|
1398
|
+
|
|
1399
|
+
## Handoff Protocols
|
|
1400
|
+
|
|
1401
|
+
### Receiving from product-photo mode
|
|
1402
|
+
```yaml
|
|
1403
|
+
Receive:
|
|
1404
|
+
source_image: "[approved image URL]"
|
|
1405
|
+
product: "[product name]"
|
|
1406
|
+
aspect_ratio: "[ratio]"
|
|
1407
|
+
style_direction: "[if established from image session]"
|
|
1408
|
+
platform: "[destination platform]"
|
|
1409
|
+
```
|
|
1410
|
+
|
|
1411
|
+
### Receiving from creative workflow
|
|
1412
|
+
```yaml
|
|
1413
|
+
Receive:
|
|
1414
|
+
product: "[product name]"
|
|
1415
|
+
video_purpose: "[hero/social/product page/etc.]"
|
|
1416
|
+
motion_style: "[if specified]"
|
|
1417
|
+
platform: "[destination platform]"
|
|
1418
|
+
source_image: "[if available]"
|
|
1419
|
+
budget_limit: "[if specified]"
|
|
1420
|
+
clip_count: "[if multi-clip sequence requested]"
|
|
1421
|
+
```
|
|
1422
|
+
|
|
1423
|
+
### Returning to Workflow
|
|
1424
|
+
```yaml
|
|
1425
|
+
Return:
|
|
1426
|
+
status: "complete" | "needs_iteration" | "needs_different_approach"
|
|
1427
|
+
deliverables:
|
|
1428
|
+
- url: "[video URL]"
|
|
1429
|
+
local_path: "./campaigns/{product}/video/[filename].mp4"
|
|
1430
|
+
model: "[which model — from MODEL_REGISTRY.md]"
|
|
1431
|
+
duration: "[seconds]"
|
|
1432
|
+
aspect_ratio: "[ratio]"
|
|
1433
|
+
has_audio: true/false
|
|
1434
|
+
prompt_used: "[motion prompt]"
|
|
1435
|
+
estimated_cost: "[cost]"
|
|
1436
|
+
additional_options_generated: true/false
|
|
1437
|
+
total_cost: "[sum of all generations]"
|
|
1438
|
+
```
|
|
1439
|
+
|
|
1440
|
+
### Routing to Talking Head Mode
|
|
1441
|
+
```yaml
|
|
1442
|
+
Route to talking-head mode:
|
|
1443
|
+
video_url: "[approved product video]"
|
|
1444
|
+
local_path: "./campaigns/{product}/video/approved/[filename].mp4"
|
|
1445
|
+
voiceover_needed: true
|
|
1446
|
+
voiceover_content: "[script or description]"
|
|
1447
|
+
integration_style: "[overlay/transition/split]"
|
|
1448
|
+
```
|
|
1449
|
+
|
|
1450
|
+
---
|
|
1451
|
+
|
|
1452
|
+
## Pro Tips
|
|
1453
|
+
|
|
1454
|
+
### What Makes Product Video Work
|
|
1455
|
+
|
|
1456
|
+
1. **Motion matches positioning** — Premium products need premium motion
|
|
1457
|
+
2. **Less is often more** — Subtle motion > chaotic movement
|
|
1458
|
+
3. **First frame matters** — Thumbnail is first impression
|
|
1459
|
+
4. **Consistency throughout** — Product should be recognizable entire duration
|
|
1460
|
+
5. **Purpose-driven motion** — Every movement should have reason
|
|
1461
|
+
|
|
1462
|
+
### Common Mistakes to Avoid
|
|
1463
|
+
|
|
1464
|
+
1. **Over-animated** — Too much motion cheapens products
|
|
1465
|
+
2. **Wrong speed** — Fast motion for luxury = mistake
|
|
1466
|
+
3. **Generic prompts** — "Product reveal" is too vague
|
|
1467
|
+
4. **Ignoring source** — Bad source image = bad video
|
|
1468
|
+
5. **Single model reliance** — Different models excel differently
|
|
1469
|
+
6. **Hardcoding model IDs** — Always use MODEL_REGISTRY.md
|
|
1470
|
+
7. **Wrong parameter names** — Each model uses different names for the same concept
|
|
1471
|
+
8. **Skipping cost estimate** — Always tell the user what it will cost before generating
|
|
1472
|
+
9. **Generating 10s when 5s will do** — Longer is not better; shorter clips stitch better
|
|
1473
|
+
|
|
1474
|
+
### The 80/20 of Product Video
|
|
1475
|
+
|
|
1476
|
+
80% of results come from:
|
|
1477
|
+
1. Quality source image (I2V workflow)
|
|
1478
|
+
2. Appropriate motion style for product
|
|
1479
|
+
3. Speed matching product positioning
|
|
1480
|
+
4. Clean, simple motion prompts
|
|
1481
|
+
|
|
1482
|
+
Get these four right and you'll outperform most AI product videos.
|
|
1483
|
+
|
|
1484
|
+
### Multi-Model Strategy
|
|
1485
|
+
|
|
1486
|
+
When to invest in parallel comparison:
|
|
1487
|
+
- **Hero content** (website banners, launch videos) — Always run all three
|
|
1488
|
+
- **Social content** (feed posts, stories) — Default model is fine
|
|
1489
|
+
- **Product pages** (e-commerce listings) — Default model, maybe two for key products
|
|
1490
|
+
- **Ad creative** (paid campaigns) — Run all three, A/B test the winners
|
|
1491
|
+
|
|
1492
|
+
### Budget Management
|
|
1493
|
+
|
|
1494
|
+
```
|
|
1495
|
+
BUDGET TIERS
|
|
1496
|
+
─────────────────────────────────
|
|
1497
|
+
Lean: 1 model, 1 style ~$0.40
|
|
1498
|
+
Standard: 1 model, 3 styles ~$1.20
|
|
1499
|
+
Premium: 3 models, 1 style ~$2.20
|
|
1500
|
+
Hero: 3 models, 3 styles ~$6.60
|
|
1501
|
+
Campaign: 3 models, 3 styles, stitch ~$10+
|
|
1502
|
+
```
|
|
1503
|
+
|
|
1504
|
+
---
|
|
1505
|
+
|
|
1506
|
+
## Example Prompts (Complete)
|
|
1507
|
+
|
|
1508
|
+
### Tech Hero Reveal
|
|
1509
|
+
```
|
|
1510
|
+
Slow cinematic push-in toward premium wireless headphones,
|
|
1511
|
+
floating weightlessly against dark gradient background,
|
|
1512
|
+
dramatic spotlight shifts revealing metallic surfaces,
|
|
1513
|
+
controlled reflections moving across ear cups,
|
|
1514
|
+
atmospheric particles drifting through light beam,
|
|
1515
|
+
premium technology commercial, smooth elegant motion,
|
|
1516
|
+
5 seconds, 16:9
|
|
1517
|
+
```
|
|
1518
|
+
|
|
1519
|
+
### Skincare Orbit
|
|
1520
|
+
```
|
|
1521
|
+
Camera smoothly orbits luxury skincare serum bottle,
|
|
1522
|
+
elegant 180-degree arc revealing glass bottle from all angles,
|
|
1523
|
+
light shifts to reveal golden serum liquid inside,
|
|
1524
|
+
clean white environment, professional product showcase,
|
|
1525
|
+
beauty commercial quality, sophisticated motion,
|
|
1526
|
+
5 seconds, 1:1 square
|
|
1527
|
+
```
|
|
1528
|
+
|
|
1529
|
+
### Food Reveal
|
|
1530
|
+
```
|
|
1531
|
+
Slow reveal of artisan coffee package on rustic wooden surface,
|
|
1532
|
+
steam rising from freshly poured cup nearby,
|
|
1533
|
+
morning light shifting through window, warm golden tones,
|
|
1534
|
+
fresh coffee beans gently settling, appetizing motion,
|
|
1535
|
+
food commercial aesthetic, inviting atmosphere,
|
|
1536
|
+
5 seconds, 9:16 vertical
|
|
1537
|
+
```
|
|
1538
|
+
|
|
1539
|
+
### Watch Showcase
|
|
1540
|
+
```
|
|
1541
|
+
Premium watch floating with gentle hover motion,
|
|
1542
|
+
light dancing across crystal and polished steel,
|
|
1543
|
+
subtle rotation revealing dial details,
|
|
1544
|
+
luxury jewelry commercial motion, elegant and sophisticated,
|
|
1545
|
+
controlled sparkle on metal surfaces,
|
|
1546
|
+
premium positioning, 5 seconds, 16:9
|
|
1547
|
+
```
|
|
1548
|
+
|
|
1549
|
+
### Fashion Wind
|
|
1550
|
+
```
|
|
1551
|
+
Silk scarf with natural wind movement creating elegant flow,
|
|
1552
|
+
subtle fabric ripples and gentle billowing motion,
|
|
1553
|
+
fashion editorial quality, aspirational and sophisticated,
|
|
1554
|
+
light catching silk sheen as fabric moves,
|
|
1555
|
+
lifestyle commercial aesthetic, 5 seconds, 4:5
|
|
1556
|
+
```
|
|
1557
|
+
|
|
1558
|
+
### Clip Stitch: Premium Headphone Launch (4 clips)
|
|
1559
|
+
|
|
1560
|
+
```
|
|
1561
|
+
CLIP SEQUENCE: Premium Headphone Launch
|
|
1562
|
+
─────────────────────────────────────────
|
|
1563
|
+
|
|
1564
|
+
Clip 1 — Emergence (5s, 16:9):
|
|
1565
|
+
Premium wireless headphones emerging from darkness,
|
|
1566
|
+
single spotlight gradually illuminating from above,
|
|
1567
|
+
atmospheric particles catching light, slow cinematic reveal,
|
|
1568
|
+
premium technology commercial, luxurious pacing
|
|
1569
|
+
|
|
1570
|
+
Clip 2 — Orbit Detail (5s, 16:9):
|
|
1571
|
+
Camera smoothly orbits wireless headphones at close range,
|
|
1572
|
+
revealing ear cup texture and metallic finish details,
|
|
1573
|
+
controlled reflections moving across brushed aluminum,
|
|
1574
|
+
professional product showcase, moderate steady motion
|
|
1575
|
+
|
|
1576
|
+
Clip 3 — Floating Tech (5s, 16:9):
|
|
1577
|
+
Headphones floating weightlessly with gentle hover motion,
|
|
1578
|
+
subtle micro-movements, soft rotating drift revealing both sides,
|
|
1579
|
+
clean minimal dark environment, premium tech aesthetic,
|
|
1580
|
+
dreamlike quality, smooth ethereal motion
|
|
1581
|
+
|
|
1582
|
+
Clip 4 — Hero Landing (5s, 16:9):
|
|
1583
|
+
Headphones settling onto reflective surface with elegant motion,
|
|
1584
|
+
final hero positioning, dramatic front-facing angle,
|
|
1585
|
+
controlled reflections on surface below, premium closing shot,
|
|
1586
|
+
commercial end-frame quality, sophisticated motion
|
|
1587
|
+
─────────────────────────────────────────
|
|
1588
|
+
Estimated: 4 clips x Kling 2.5 = ~$1.60, ~5min parallel
|
|
1589
|
+
```
|
|
1590
|
+
|
|
1591
|
+
---
|
|
1592
|
+
|
|
1593
|
+
## Appendix: Model API Quick Reference
|
|
1594
|
+
|
|
1595
|
+
**Always verify against MODEL_REGISTRY.md before executing.** This appendix is a convenience reference only.
|
|
1596
|
+
|
|
1597
|
+
### Image-to-Video Call Patterns
|
|
1598
|
+
|
|
1599
|
+
**Kling 2.5 I2V:**
|
|
1600
|
+
```
|
|
1601
|
+
Model: {{default_video_model from brand/stack.md}}
|
|
1602
|
+
Image param: start_image
|
|
1603
|
+
Duration param: duration (5 or 10)
|
|
1604
|
+
Ratio param: aspect_ratio ("16:9", "9:16", "1:1")
|
|
1605
|
+
Extras: negative_prompt (guidance_scale has been REMOVED from API)
|
|
1606
|
+
```
|
|
1607
|
+
|
|
1608
|
+
**Veo 3.1 I2V:**
|
|
1609
|
+
```
|
|
1610
|
+
Model: google/veo-3.1
|
|
1611
|
+
Image param: image
|
|
1612
|
+
Duration param: duration (4, 6, or 8)
|
|
1613
|
+
Ratio param: aspect_ratio ("16:9", "9:16")
|
|
1614
|
+
Extras: generate_audio (bool), resolution ("720p", "1080p"), negative_prompt, seed
|
|
1615
|
+
```
|
|
1616
|
+
|
|
1617
|
+
**Sora 2 I2V:**
|
|
1618
|
+
```
|
|
1619
|
+
Model: {{comparison_video_model from brand/stack.md}}
|
|
1620
|
+
Image param: input_reference
|
|
1621
|
+
Duration param: seconds (4-12)
|
|
1622
|
+
Ratio param: aspect_ratio ("landscape", "portrait")
|
|
1623
|
+
Extras: openai_api_key (optional)
|
|
1624
|
+
```
|
|
1625
|
+
|
|
1626
|
+
### Text-to-Video Call Patterns
|
|
1627
|
+
|
|
1628
|
+
**Kling 2.5 T2V:**
|
|
1629
|
+
```
|
|
1630
|
+
Model: {{default_video_model from brand/stack.md}}
|
|
1631
|
+
No image param needed
|
|
1632
|
+
Duration param: duration (5 or 10)
|
|
1633
|
+
Ratio param: aspect_ratio ("16:9", "9:16", "1:1")
|
|
1634
|
+
Extras: negative_prompt (guidance_scale has been REMOVED from API)
|
|
1635
|
+
```
|
|
1636
|
+
|
|
1637
|
+
**Veo 3.1 T2V:**
|
|
1638
|
+
```
|
|
1639
|
+
Model: google/veo-3.1
|
|
1640
|
+
No image param needed
|
|
1641
|
+
Duration param: duration (4, 6, or 8)
|
|
1642
|
+
Ratio param: aspect_ratio ("16:9", "9:16")
|
|
1643
|
+
Extras: generate_audio (bool), resolution ("720p", "1080p"), negative_prompt, seed
|
|
1644
|
+
```
|
|
1645
|
+
|
|
1646
|
+
**Sora 2 T2V:**
|
|
1647
|
+
```
|
|
1648
|
+
Model: {{comparison_video_model from brand/stack.md}}
|
|
1649
|
+
No image param needed
|
|
1650
|
+
Duration param: seconds (4-12)
|
|
1651
|
+
Ratio param: aspect_ratio ("landscape", "portrait")
|
|
1652
|
+
Extras: openai_api_key (optional)
|
|
1653
|
+
```
|
|
1654
|
+
|
|
1655
|
+
---
|
|
1656
|
+
|
|
1657
|
+
*This mode is part of the Vibe Marketing Skills v2 creative engine. Model configurations are maintained in `brand/stack.md`. When model schemas change upstream, MODEL_REGISTRY.md is updated first, then this mode file is updated to match.*
|