@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.
Files changed (745) hide show
  1. package/README.md +85 -0
  2. package/agents/cos.json +2 -5
  3. package/agents/hermes/AGENTS.md +25 -49
  4. package/agents/hermes/fix-kimaki/SKILL.md +19 -92
  5. package/agents/hermes/hermes-fixer.md +44 -74
  6. package/agents/hermes.json +6 -18
  7. package/kanban/SKILL.md +18 -18
  8. package/kanban/package.json +1 -1
  9. package/kanban/src/dispatcher.mjs +1 -1
  10. package/kanban/templates/blog-social-campaign.yaml +6 -2
  11. package/kanban/templates/social-campaign.yaml +9 -4
  12. package/mcp/jev-calibration.mjs +335 -0
  13. package/mcp/jev-client.mjs +119 -0
  14. package/mcp/jev-thresholds.json +27 -0
  15. package/package.json +13 -9
  16. package/scripts/doctor-watchdog.sh +73 -0
  17. package/scripts/install-services.sh +34 -27
  18. package/scripts/self-improve-weekly.sh +34 -0
  19. package/scripts/sync-skills.mjs +121 -0
  20. package/skills/ab-test-setup/SKILL.md +266 -0
  21. package/skills/ab-test-setup/evals/evals.json +105 -0
  22. package/skills/ab-test-setup/references/sample-size-guide.md +263 -0
  23. package/skills/ab-test-setup/references/test-templates.md +277 -0
  24. package/skills/agent-reach/SKILL.md +132 -0
  25. package/skills/agent-reach/references/career.md +29 -0
  26. package/skills/agent-reach/references/dev.md +62 -0
  27. package/skills/agent-reach/references/search.md +33 -0
  28. package/skills/agent-reach/references/social.md +232 -0
  29. package/skills/agent-reach/references/video.md +130 -0
  30. package/skills/agent-reach/references/web.md +50 -0
  31. package/skills/ai-agent-seo/SKILL.md +450 -0
  32. package/skills/ai-cold-email-intelligence/SKILL.md +54 -0
  33. package/skills/ai-cold-email-intelligence/references/prompts.md +21 -0
  34. package/skills/ai-consensus-builder/SKILL.md +324 -0
  35. package/skills/ai-seo/SKILL.md +399 -0
  36. package/skills/ai-seo/evals/evals.json +90 -0
  37. package/skills/ai-seo/references/content-patterns.md +284 -0
  38. package/skills/ai-seo/references/platform-ranking-factors.md +152 -0
  39. package/skills/ai-visibility-audit/SKILL.md +322 -0
  40. package/skills/analytics-tracking/SKILL.md +309 -0
  41. package/skills/analytics-tracking/evals/evals.json +90 -0
  42. package/skills/analytics-tracking/references/event-library.md +260 -0
  43. package/skills/analytics-tracking/references/ga4-implementation.md +300 -0
  44. package/skills/analytics-tracking/references/gtm-implementation.md +390 -0
  45. package/skills/article-generator/SKILL.md +216 -0
  46. package/skills/auto-indexing/SKILL.md +179 -0
  47. package/skills/auto-indexing/scripts/auto-indexing.js +257 -0
  48. package/skills/auto-skill/SKILL.md +151 -0
  49. package/skills/auto-skill/correction-queue.js +102 -0
  50. package/skills/auto-skill/dedup.js +97 -0
  51. package/skills/auto-skill/skill-router.js +224 -0
  52. package/skills/autoresearch/SKILL.md +334 -0
  53. package/skills/autoresearch/autoresearch-autoresearch/SKILL.md.baseline +329 -0
  54. package/skills/autoresearch/autoresearch-autoresearch/changelog.md +34 -0
  55. package/skills/autoresearch/autoresearch-autoresearch/dashboard.html +116 -0
  56. package/skills/autoresearch/autoresearch-autoresearch/evals.md +39 -0
  57. package/skills/autoresearch/autoresearch-autoresearch/results.json +44 -0
  58. package/skills/autoresearch/autoresearch-autoresearch/results.tsv +3 -0
  59. package/skills/autoresearch/eval-guide.md +121 -0
  60. package/skills/b2b-cold-outreach/SKILL.md +322 -0
  61. package/skills/birdclaw/SKILL.md +82 -0
  62. package/skills/brainstorm/SKILL.md +168 -0
  63. package/skills/brand-kit-playground/SKILL.md +312 -0
  64. package/skills/brand-kit-playground/references/html-architecture.md +316 -0
  65. package/skills/brand-kit-playground/references/steal-patterns.md +88 -0
  66. package/skills/brand-voice/SKILL.md +223 -0
  67. package/skills/brand-voice/references/honesty-as-positioning.md +60 -0
  68. package/skills/brand-voice/references/voice-modes.md +1158 -0
  69. package/skills/business-advisory-council/README.md +136 -0
  70. package/skills/business-advisory-council/SKILL.md +94 -0
  71. package/skills/business-advisory-council/business-advisory-council.py +492 -0
  72. package/skills/business-advisory-council/discord-components-decision.json +8 -0
  73. package/skills/business-advisory-council/examples/steve-conley-partnership.json +6 -0
  74. package/skills/business-advisory-council/steve-conley-call-brief.json +6 -0
  75. package/skills/churn-prevention/SKILL.md +305 -0
  76. package/skills/churn-prevention/evals/evals.json +93 -0
  77. package/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
  78. package/skills/churn-prevention/references/dunning-playbook.md +408 -0
  79. package/skills/claw-compactor/LICENSE +21 -0
  80. package/skills/claw-compactor/README.md +459 -0
  81. package/skills/claw-compactor/SKILL.md +329 -0
  82. package/skills/claw-compactor/benchmark/RESULTS.md +104 -0
  83. package/skills/claw-compactor/benchmark/__init__.py +1 -0
  84. package/skills/claw-compactor/benchmark/compressors.py +520 -0
  85. package/skills/claw-compactor/benchmark/data/sample_01_devops.json +82 -0
  86. package/skills/claw-compactor/benchmark/data/sample_02_trading.json +54 -0
  87. package/skills/claw-compactor/benchmark/data/sample_03_ml_short.json +38 -0
  88. package/skills/claw-compactor/benchmark/data/sample_04_mixed_long.json +318 -0
  89. package/skills/claw-compactor/benchmark/data/sample_05_sysadmin.json +56 -0
  90. package/skills/claw-compactor/benchmark/evaluate.py +278 -0
  91. package/skills/claw-compactor/benchmark/report.py +241 -0
  92. package/skills/claw-compactor/benchmark/results/benchmark_results.json +405 -0
  93. package/skills/claw-compactor/benchmark/run_benchmark.py +238 -0
  94. package/skills/claw-compactor/engram.yaml +49 -0
  95. package/skills/claw-compactor/proxy/README.md +87 -0
  96. package/skills/claw-compactor/proxy/dashboard.html +804 -0
  97. package/skills/claw-compactor/proxy/event-log.mjs +213 -0
  98. package/skills/claw-compactor/proxy/fair-queue.mjs +288 -0
  99. package/skills/claw-compactor/proxy/metrics-store.mjs +425 -0
  100. package/skills/claw-compactor/proxy/package-lock.json +125 -0
  101. package/skills/claw-compactor/proxy/package.json +15 -0
  102. package/skills/claw-compactor/proxy/portal.html +360 -0
  103. package/skills/claw-compactor/proxy/process-registry.mjs +447 -0
  104. package/skills/claw-compactor/proxy/rate-limiter.mjs +117 -0
  105. package/skills/claw-compactor/proxy/redis-client.mjs +75 -0
  106. package/skills/claw-compactor/proxy/retry.mjs +182 -0
  107. package/skills/claw-compactor/proxy/server.mjs +2100 -0
  108. package/skills/claw-compactor/proxy/session-affinity.mjs +177 -0
  109. package/skills/claw-compactor/proxy/start.sh +23 -0
  110. package/skills/claw-compactor/proxy/test/event-log.test.mjs +237 -0
  111. package/skills/claw-compactor/proxy/test/helpers.mjs +103 -0
  112. package/skills/claw-compactor/proxy/test/integration.test.mjs +297 -0
  113. package/skills/claw-compactor/proxy/test/metrics-store.test.mjs +243 -0
  114. package/skills/claw-compactor/proxy/test/process-registry.test.mjs +390 -0
  115. package/skills/claw-compactor/proxy/test/rate-limiter.test.mjs +121 -0
  116. package/skills/claw-compactor/proxy/test/redis-client.test.mjs +62 -0
  117. package/skills/claw-compactor/proxy/test/token-tracker.test.mjs +200 -0
  118. package/skills/claw-compactor/proxy/token-tracker.mjs +482 -0
  119. package/skills/claw-compactor/pyproject.toml +26 -0
  120. package/skills/claw-compactor/references/README.md +44 -0
  121. package/skills/claw-compactor/references/architecture.md +197 -0
  122. package/skills/claw-compactor/references/benchmarks.md +94 -0
  123. package/skills/claw-compactor/references/compression-prompts.md +39 -0
  124. package/skills/claw-compactor/references/compression-techniques.md +219 -0
  125. package/skills/claw-compactor/references/testing.md +160 -0
  126. package/skills/claw-compactor/scripts/audit_memory.py +216 -0
  127. package/skills/claw-compactor/scripts/compress_memory.py +236 -0
  128. package/skills/claw-compactor/scripts/compressed_context.py +280 -0
  129. package/skills/claw-compactor/scripts/dedup_memory.py +147 -0
  130. package/skills/claw-compactor/scripts/dictionary_compress.py +170 -0
  131. package/skills/claw-compactor/scripts/engram-auto.sh +152 -0
  132. package/skills/claw-compactor/scripts/engram_auto.py +695 -0
  133. package/skills/claw-compactor/scripts/engram_cli.py +474 -0
  134. package/skills/claw-compactor/scripts/estimate_tokens.py +131 -0
  135. package/skills/claw-compactor/scripts/generate_summary_tiers.py +292 -0
  136. package/skills/claw-compactor/scripts/lib/__init__.py +34 -0
  137. package/skills/claw-compactor/scripts/lib/config.py +289 -0
  138. package/skills/claw-compactor/scripts/lib/dedup.py +119 -0
  139. package/skills/claw-compactor/scripts/lib/dictionary.py +281 -0
  140. package/skills/claw-compactor/scripts/lib/engram.py +793 -0
  141. package/skills/claw-compactor/scripts/lib/engram_prompts.py +175 -0
  142. package/skills/claw-compactor/scripts/lib/engram_storage.py +254 -0
  143. package/skills/claw-compactor/scripts/lib/exceptions.py +24 -0
  144. package/skills/claw-compactor/scripts/lib/markdown.py +312 -0
  145. package/skills/claw-compactor/scripts/lib/rle.py +165 -0
  146. package/skills/claw-compactor/scripts/lib/tokenizer_optimizer.py +188 -0
  147. package/skills/claw-compactor/scripts/lib/tokens.py +68 -0
  148. package/skills/claw-compactor/scripts/mem_compress.py +788 -0
  149. package/skills/claw-compactor/scripts/observation_compressor.py +346 -0
  150. package/skills/claw-compactor/tests/__init__.py +0 -0
  151. package/skills/claw-compactor/tests/conftest.py +94 -0
  152. package/skills/claw-compactor/tests/test_audit_comprehensive.py +123 -0
  153. package/skills/claw-compactor/tests/test_audit_memory.py +67 -0
  154. package/skills/claw-compactor/tests/test_benchmark.py +122 -0
  155. package/skills/claw-compactor/tests/test_cli_commands.py +228 -0
  156. package/skills/claw-compactor/tests/test_compress_memory.py +109 -0
  157. package/skills/claw-compactor/tests/test_compress_memory_comprehensive.py +191 -0
  158. package/skills/claw-compactor/tests/test_compressed_context.py +145 -0
  159. package/skills/claw-compactor/tests/test_config.py +54 -0
  160. package/skills/claw-compactor/tests/test_dedup_memory.py +124 -0
  161. package/skills/claw-compactor/tests/test_dictionary.py +327 -0
  162. package/skills/claw-compactor/tests/test_dictionary_comprehensive.py +241 -0
  163. package/skills/claw-compactor/tests/test_engram.py +1091 -0
  164. package/skills/claw-compactor/tests/test_engram_auto.py +529 -0
  165. package/skills/claw-compactor/tests/test_error_handling.py +194 -0
  166. package/skills/claw-compactor/tests/test_estimate_tokens.py +99 -0
  167. package/skills/claw-compactor/tests/test_generate_summary_tiers.py +105 -0
  168. package/skills/claw-compactor/tests/test_integration.py +249 -0
  169. package/skills/claw-compactor/tests/test_lib_dedup.py +135 -0
  170. package/skills/claw-compactor/tests/test_lib_markdown.py +388 -0
  171. package/skills/claw-compactor/tests/test_lib_tokens.py +82 -0
  172. package/skills/claw-compactor/tests/test_main_entry.py +176 -0
  173. package/skills/claw-compactor/tests/test_markdown_advanced.py +284 -0
  174. package/skills/claw-compactor/tests/test_new_features.py +77 -0
  175. package/skills/claw-compactor/tests/test_observation_comprehensive.py +261 -0
  176. package/skills/claw-compactor/tests/test_observation_compressor.py +128 -0
  177. package/skills/claw-compactor/tests/test_performance.py +172 -0
  178. package/skills/claw-compactor/tests/test_pipeline.py +109 -0
  179. package/skills/claw-compactor/tests/test_real_workspace.py +161 -0
  180. package/skills/claw-compactor/tests/test_rle.py +114 -0
  181. package/skills/claw-compactor/tests/test_rle_comprehensive.py +151 -0
  182. package/skills/claw-compactor/tests/test_roundtrip.py +253 -0
  183. package/skills/claw-compactor/tests/test_roundtrip_comprehensive.py +192 -0
  184. package/skills/claw-compactor/tests/test_tiers_comprehensive.py +171 -0
  185. package/skills/claw-compactor/tests/test_token_economics.py +237 -0
  186. package/skills/claw-compactor/tests/test_tokenizer_optimizer.py +175 -0
  187. package/skills/claw-compactor/tests/test_tokenizer_optimizer_comprehensive.py +241 -0
  188. package/skills/claw-compactor/tests/test_tokens.py +27 -0
  189. package/skills/cmo/CHANGELOG.md +61 -0
  190. package/skills/cmo/SKILL.md +500 -0
  191. package/skills/cmo/references/ai-slop-patterns.md +56 -0
  192. package/skills/cmo/references/analytics-guide.md +152 -0
  193. package/skills/cmo/references/ideas-library.md +197 -0
  194. package/skills/cmo/rules/brand-file-map.md +198 -0
  195. package/skills/cmo/rules/brand-memory.md +158 -0
  196. package/skills/cmo/rules/cli-runtime-index.md +95 -0
  197. package/skills/cmo/rules/command-reference.md +167 -0
  198. package/skills/cmo/rules/communication.md +15 -0
  199. package/skills/cmo/rules/context-switch.md +101 -0
  200. package/skills/cmo/rules/ecosystem.md +125 -0
  201. package/skills/cmo/rules/error-recovery.md +98 -0
  202. package/skills/cmo/rules/learning-loop.md +170 -0
  203. package/skills/cmo/rules/monorepo.md +78 -0
  204. package/skills/cmo/rules/output-format.md +124 -0
  205. package/skills/cmo/rules/persona.md +15 -0
  206. package/skills/cmo/rules/playbooks.md +327 -0
  207. package/skills/cmo/rules/progressive-enhancement.md +231 -0
  208. package/skills/cmo/rules/publish-index.md +106 -0
  209. package/skills/cmo/rules/quality-gate.md +90 -0
  210. package/skills/cmo/rules/recency-grounding.md +124 -0
  211. package/skills/cmo/rules/safety.md +80 -0
  212. package/skills/cmo/rules/studio-api-index.md +138 -0
  213. package/skills/cmo/rules/studio-integration.md +147 -0
  214. package/skills/cmo/rules/sub-agents.md +167 -0
  215. package/skills/cold-email/SKILL.md +240 -0
  216. package/skills/cold-email/evals/evals.json +94 -0
  217. package/skills/cold-email/references/benchmarks.md +83 -0
  218. package/skills/cold-email/references/follow-up-sequences.md +81 -0
  219. package/skills/cold-email/references/frameworks.md +90 -0
  220. package/skills/cold-email/references/personalization.md +79 -0
  221. package/skills/cold-email/references/subject-lines.md +53 -0
  222. package/skills/competitive-intel/SKILL.md +433 -0
  223. package/skills/competitive-intel/references/competitive-frameworks.md +145 -0
  224. package/skills/competitor-alternatives/SKILL.md +362 -0
  225. package/skills/competitor-alternatives/evals/evals.json +93 -0
  226. package/skills/competitor-alternatives/references/content-architecture.md +271 -0
  227. package/skills/competitor-alternatives/references/templates.md +223 -0
  228. package/skills/concreteness-fixer/SKILL.md +483 -0
  229. package/skills/concreteness-fixer/scripts/validation/concreteness-validator.js +221 -0
  230. package/skills/concreteness-fixer/utils/execFileNoThrow.js +16 -0
  231. package/skills/content-atomizer/SKILL.md +424 -0
  232. package/skills/content-atomizer/references/hook-strategies.md +56 -0
  233. package/skills/content-atomizer/references/platform-specs.md +118 -0
  234. package/skills/content-atomizer/references/platforms/bluesky.md +64 -0
  235. package/skills/content-atomizer/references/platforms/instagram.md +77 -0
  236. package/skills/content-atomizer/references/platforms/linkedin.md +120 -0
  237. package/skills/content-atomizer/references/platforms/reddit.md +73 -0
  238. package/skills/content-atomizer/references/platforms/threads.md +64 -0
  239. package/skills/content-atomizer/references/platforms/tiktok.md +55 -0
  240. package/skills/content-atomizer/references/platforms/twitter.md +123 -0
  241. package/skills/content-atomizer/references/platforms/youtube.md +56 -0
  242. package/skills/content-atomizer/references/tweet-patterns.md +40 -0
  243. package/skills/content-repost-manager/SKILL.md +245 -0
  244. package/skills/content-repost-manager/scripts/content-repost-scan.py +133 -0
  245. package/skills/context-recovery/.clawdhub/origin.json +7 -0
  246. package/skills/context-recovery/SKILL.md +198 -0
  247. package/skills/context-recovery/_meta.json +6 -0
  248. package/skills/conversion-flow-cro/SKILL.md +248 -0
  249. package/skills/conversion-flow-cro/references/flow-benchmarks.md +158 -0
  250. package/skills/copy-editing/SKILL.md +474 -0
  251. package/skills/copy-editing/evals/evals.json +89 -0
  252. package/skills/copy-editing/references/plain-english-alternatives.md +394 -0
  253. package/skills/copywriting/SKILL.md +349 -0
  254. package/skills/copywriting/evals/evals.json +111 -0
  255. package/skills/copywriting/references/awareness-level-guide.md +227 -0
  256. package/skills/copywriting/references/copy-frameworks.md +389 -0
  257. package/skills/copywriting/references/natural-transitions.md +272 -0
  258. package/skills/creative/SKILL.md +365 -0
  259. package/skills/creative/modes/ad-creative.md +1748 -0
  260. package/skills/creative/modes/product-photo.md +1520 -0
  261. package/skills/creative/modes/product-video.md +1657 -0
  262. package/skills/creative/modes/social-graphics.md +1511 -0
  263. package/skills/creative/modes/talking-head.md +2208 -0
  264. package/skills/creative/references/VISUAL_INTELLIGENCE.md +1233 -0
  265. package/skills/deep-serp-article/SKILL.md +677 -0
  266. package/skills/deep-serp-article/SKILL.md.bak +530 -0
  267. package/skills/earned-media/SKILL.md +260 -0
  268. package/skills/email-sequences/SKILL.md +446 -0
  269. package/skills/email-sequences/references/sequence-templates.md +1217 -0
  270. package/skills/firecrawl/.skill-meta.json +13 -0
  271. package/skills/firecrawl/SKILL.md +154 -0
  272. package/skills/firecrawl/rules/install.md +63 -0
  273. package/skills/firecrawl/rules/security.md +26 -0
  274. package/skills/form-cro/SKILL.md +429 -0
  275. package/skills/form-cro/evals/evals.json +90 -0
  276. package/skills/free-tool-strategy/SKILL.md +325 -0
  277. package/skills/free-tool-strategy/evals/evals.json +90 -0
  278. package/skills/free-tool-strategy/references/tool-types.md +253 -0
  279. package/skills/frontend-slides/SKILL.md +248 -0
  280. package/skills/frontend-slides/STYLE_PRESETS.md +347 -0
  281. package/skills/frontend-slides/animation-patterns.md +110 -0
  282. package/skills/frontend-slides/html-template.md +347 -0
  283. package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  284. package/skills/frontend-slides/viewport-base.css +153 -0
  285. package/skills/guardrail-framework/SKILL.md +319 -0
  286. package/skills/hook-generator/SKILL.md +438 -0
  287. package/skills/hook-generator/database/2026-PLATFORM-RESEARCH.md +211 -0
  288. package/skills/hook-generator/database/instagram-hooks.json +591 -0
  289. package/skills/hook-generator/database/linkedin-hooks.json +502 -0
  290. package/skills/hook-generator/database/medium-hooks.json +181 -0
  291. package/skills/hook-generator/database/tiktok-hooks.json +337 -0
  292. package/skills/hook-generator/database/twitter-hooks.json +567 -0
  293. package/skills/hook-generator/database/youtube-hooks.json +275 -0
  294. package/skills/hook-generator/package-lock.json +24 -0
  295. package/skills/hook-generator/package.json +5 -0
  296. package/skills/hook-generator/references/hook-generation-system.md +257 -0
  297. package/skills/hook-generator/references/hook-performance-analysis.json +153 -0
  298. package/skills/hook-generator/references/hooks-library.md +128 -0
  299. package/skills/hook-generator/references/platform-hook-frameworks.md +275 -0
  300. package/skills/hook-generator/scripts/generate-hooks-unified.js +722 -0
  301. package/skills/hook-generator/scripts/generate-hooks.js +225 -0
  302. package/skills/hook-generator/scripts/generate.sh +36 -0
  303. package/skills/hook-generator/scripts/ralph-hook-enhancer.js +864 -0
  304. package/skills/hook-generator/scripts/test-gemini-output.js +51 -0
  305. package/skills/humanizer/README.md +120 -0
  306. package/skills/humanizer/SKILL.md +699 -0
  307. package/skills/image-gen/SKILL.md +277 -0
  308. package/skills/image-gen/references/prompt-patterns.md +114 -0
  309. package/skills/image-gen/references/visual-metaphors.md +51 -0
  310. package/skills/impeccable/SKILL.md +86 -0
  311. package/skills/impeccable/reference/adapt.md +312 -0
  312. package/skills/impeccable/reference/adapt.native.md +58 -0
  313. package/skills/impeccable/reference/android.md +40 -0
  314. package/skills/impeccable/reference/animate.md +86 -0
  315. package/skills/impeccable/reference/audit.md +136 -0
  316. package/skills/impeccable/reference/audit.native.md +139 -0
  317. package/skills/impeccable/reference/bolder.md +31 -0
  318. package/skills/impeccable/reference/clarify.md +94 -0
  319. package/skills/impeccable/reference/colorize.md +86 -0
  320. package/skills/impeccable/reference/craft-floor.md +42 -0
  321. package/skills/impeccable/reference/craft.md +5 -0
  322. package/skills/impeccable/reference/critique.md +788 -0
  323. package/skills/impeccable/reference/degraded/asset-producer.md +90 -0
  324. package/skills/impeccable/reference/degraded/documenter.md +24 -0
  325. package/skills/impeccable/reference/degraded/finish-reviewer.md +37 -0
  326. package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  327. package/skills/impeccable/reference/delight.md +70 -0
  328. package/skills/impeccable/reference/distill.md +111 -0
  329. package/skills/impeccable/reference/doctor.md +53 -0
  330. package/skills/impeccable/reference/document.md +416 -0
  331. package/skills/impeccable/reference/extract.md +69 -0
  332. package/skills/impeccable/reference/harden.md +336 -0
  333. package/skills/impeccable/reference/hooks.md +105 -0
  334. package/skills/impeccable/reference/init.md +125 -0
  335. package/skills/impeccable/reference/ios.md +45 -0
  336. package/skills/impeccable/reference/layout.md +84 -0
  337. package/skills/impeccable/reference/live-setup.md +102 -0
  338. package/skills/impeccable/reference/live.md +323 -0
  339. package/skills/impeccable/reference/new-work.md +110 -0
  340. package/skills/impeccable/reference/onboard.md +234 -0
  341. package/skills/impeccable/reference/operate.md +61 -0
  342. package/skills/impeccable/reference/optimize.md +258 -0
  343. package/skills/impeccable/reference/overdrive.md +127 -0
  344. package/skills/impeccable/reference/polish.md +97 -0
  345. package/skills/impeccable/reference/quieter.md +99 -0
  346. package/skills/impeccable/reference/routing.md +18 -0
  347. package/skills/impeccable/reference/shape.md +59 -0
  348. package/skills/impeccable/reference/typeset.md +80 -0
  349. package/skills/impeccable/reference/visualize.md +49 -0
  350. package/skills/impeccable/scripts/command-metadata.json +94 -0
  351. package/skills/impeccable/scripts/concept-seed.mjs +558 -0
  352. package/skills/impeccable/scripts/context-signals.mjs +334 -0
  353. package/skills/impeccable/scripts/context.mjs +1467 -0
  354. package/skills/impeccable/scripts/critique-storage.mjs +213 -0
  355. package/skills/impeccable/scripts/detect-csp.mjs +198 -0
  356. package/skills/impeccable/scripts/detect.mjs +21 -0
  357. package/skills/impeccable/scripts/detector/browser/injected/index.mjs +2023 -0
  358. package/skills/impeccable/scripts/detector/cli/main.mjs +438 -0
  359. package/skills/impeccable/scripts/detector/design-system.mjs +1046 -0
  360. package/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +8283 -0
  361. package/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
  362. package/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +372 -0
  363. package/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +1168 -0
  364. package/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1186 -0
  365. package/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +264 -0
  366. package/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  367. package/skills/impeccable/scripts/detector/findings.mjs +18 -0
  368. package/skills/impeccable/scripts/detector/node/file-system.mjs +203 -0
  369. package/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  370. package/skills/impeccable/scripts/detector/registry/antipatterns.mjs +617 -0
  371. package/skills/impeccable/scripts/detector/rules/checks.mjs +5580 -0
  372. package/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
  373. package/skills/impeccable/scripts/detector/shared/constants.mjs +112 -0
  374. package/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
  375. package/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
  376. package/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
  377. package/skills/impeccable/scripts/doctor.mjs +336 -0
  378. package/skills/impeccable/scripts/embed-prompt.mjs +133 -0
  379. package/skills/impeccable/scripts/generate-image.mjs +240 -0
  380. package/skills/impeccable/scripts/hook-admin.mjs +801 -0
  381. package/skills/impeccable/scripts/hook-before-edit.mjs +508 -0
  382. package/skills/impeccable/scripts/hook-lib.mjs +2153 -0
  383. package/skills/impeccable/scripts/hook.mjs +78 -0
  384. package/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
  385. package/skills/impeccable/scripts/lib/composition-catalog.mjs +200 -0
  386. package/skills/impeccable/scripts/lib/concept-catalog.mjs +384 -0
  387. package/skills/impeccable/scripts/lib/design-parser.mjs +925 -0
  388. package/skills/impeccable/scripts/lib/impeccable-config.mjs +658 -0
  389. package/skills/impeccable/scripts/lib/impeccable-paths.mjs +137 -0
  390. package/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
  391. package/skills/impeccable/scripts/lib/provider.mjs +5 -0
  392. package/skills/impeccable/scripts/lib/roll-selection.mjs +362 -0
  393. package/skills/impeccable/scripts/lib/staleness-deep.mjs +478 -0
  394. package/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
  395. package/skills/impeccable/scripts/lib/staleness.mjs +457 -0
  396. package/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
  397. package/skills/impeccable/scripts/lib/target-args.mjs +42 -0
  398. package/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
  399. package/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
  400. package/skills/impeccable/scripts/live/accept-css.mjs +617 -0
  401. package/skills/impeccable/scripts/live/accept-verify.mjs +60 -0
  402. package/skills/impeccable/scripts/live/browser-script-parts.mjs +55 -0
  403. package/skills/impeccable/scripts/live/completion.mjs +28 -0
  404. package/skills/impeccable/scripts/live/event-validation.mjs +199 -0
  405. package/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
  406. package/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +73 -0
  407. package/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
  408. package/skills/impeccable/scripts/live/frameworks/journal.mjs +197 -0
  409. package/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
  410. package/skills/impeccable/scripts/live/frameworks/nuxt.mjs +161 -0
  411. package/skills/impeccable/scripts/live/frameworks/script-src.mjs +17 -0
  412. package/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
  413. package/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
  414. package/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
  415. package/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
  416. package/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
  417. package/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
  418. package/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
  419. package/skills/impeccable/scripts/live/instructions.mjs +142 -0
  420. package/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
  421. package/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
  422. package/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
  423. package/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
  424. package/skills/impeccable/scripts/live/roots.mjs +508 -0
  425. package/skills/impeccable/scripts/live/session-store.mjs +563 -0
  426. package/skills/impeccable/scripts/live/source-lock.mjs +105 -0
  427. package/skills/impeccable/scripts/live/source-search.mjs +105 -0
  428. package/skills/impeccable/scripts/live/svelte-ast.mjs +961 -0
  429. package/skills/impeccable/scripts/live/svelte-component.mjs +1342 -0
  430. package/skills/impeccable/scripts/live/sveltekit-adapter.mjs +316 -0
  431. package/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
  432. package/skills/impeccable/scripts/live/ui-core.mjs +180 -0
  433. package/skills/impeccable/scripts/live/vocabulary.mjs +171 -0
  434. package/skills/impeccable/scripts/live-accept.mjs +954 -0
  435. package/skills/impeccable/scripts/live-browser-dom.js +146 -0
  436. package/skills/impeccable/scripts/live-browser-session.js +123 -0
  437. package/skills/impeccable/scripts/live-browser.js +12520 -0
  438. package/skills/impeccable/scripts/live-commit-manual-edits.mjs +1244 -0
  439. package/skills/impeccable/scripts/live-complete.mjs +107 -0
  440. package/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
  441. package/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
  442. package/skills/impeccable/scripts/live-inject.mjs +503 -0
  443. package/skills/impeccable/scripts/live-insert.mjs +292 -0
  444. package/skills/impeccable/scripts/live-manual-edit-evidence.mjs +368 -0
  445. package/skills/impeccable/scripts/live-poll.mjs +429 -0
  446. package/skills/impeccable/scripts/live-resume.mjs +123 -0
  447. package/skills/impeccable/scripts/live-server.mjs +1669 -0
  448. package/skills/impeccable/scripts/live-status.mjs +71 -0
  449. package/skills/impeccable/scripts/live-target.mjs +30 -0
  450. package/skills/impeccable/scripts/live-wrap.mjs +927 -0
  451. package/skills/impeccable/scripts/live.mjs +359 -0
  452. package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  453. package/skills/impeccable/scripts/palette.mjs +628 -0
  454. package/skills/impeccable/scripts/pin.mjs +221 -0
  455. package/skills/impeccable/scripts/serve-question.mjs +932 -0
  456. package/skills/impeccable/scripts/surface-brief.mjs +74 -0
  457. package/skills/inkstone-admin/SKILL.md +66 -0
  458. package/skills/jev-hook-gate/SKILL.md +111 -0
  459. package/skills/keyword-research/SKILL.md +503 -0
  460. package/skills/keyword-research/references/dr-cap-and-confidence.md +62 -0
  461. package/skills/keyword-research/references/keyword-examples.md +769 -0
  462. package/skills/landing-page-architect/SKILL.md +585 -0
  463. package/skills/landing-page-architect/references/architecture-reference.md +32 -0
  464. package/skills/launch-strategy/SKILL.md +384 -0
  465. package/skills/launch-strategy/evals/evals.json +91 -0
  466. package/skills/launch-strategy/references/launch-checklist.md +209 -0
  467. package/skills/launch-strategy/references/launch-timeline.md +159 -0
  468. package/skills/lead-email-craft/SKILL.md +522 -0
  469. package/skills/lead-magnets/SKILL.md +310 -0
  470. package/skills/lead-magnets/references/benchmarks.md +129 -0
  471. package/skills/lead-magnets/references/format-guide.md +196 -0
  472. package/skills/link-building-seo/SKILL.md +210 -0
  473. package/skills/lint-report.txt +1 -0
  474. package/skills/manifest.json +129 -0
  475. package/skills/marketing-demo/SKILL.md +249 -0
  476. package/skills/marketing-demo/references/remotion-examples.md +281 -0
  477. package/skills/marketing-ideas/SKILL.md +167 -0
  478. package/skills/marketing-ideas/evals/evals.json +90 -0
  479. package/skills/marketing-ideas/references/ideas-by-category.md +366 -0
  480. package/skills/marketing-psychology/SKILL.md +374 -0
  481. package/skills/marketing-psychology/evals/evals.json +88 -0
  482. package/skills/marketing-psychology/references/case-studies.md +148 -0
  483. package/skills/narrative-research-article/SKILL.md +469 -0
  484. package/skills/narrative-research-article/references/lanusse-patterns.md +166 -0
  485. package/skills/notebooklm/SKILL.md +674 -0
  486. package/skills/off-page-seo/SKILL.md +219 -0
  487. package/skills/onboarding-cro/SKILL.md +220 -0
  488. package/skills/onboarding-cro/evals/evals.json +92 -0
  489. package/skills/onboarding-cro/references/experiments.md +258 -0
  490. package/skills/original-research/SKILL.md +388 -0
  491. package/skills/page-cro/SKILL.md +269 -0
  492. package/skills/page-cro/references/cro-benchmarks.md +140 -0
  493. package/skills/paper-marketing/SKILL.md +448 -0
  494. package/skills/paper-marketing/references/agent-quality-rubric.md +68 -0
  495. package/skills/paper-marketing/references/brand-system-template.md +120 -0
  496. package/skills/paper-marketing/references/paper-mcp-rules.md +71 -0
  497. package/skills/paper-marketing/references/platform-conventions.md +43 -0
  498. package/skills/paywall-upgrade-cro/SKILL.md +227 -0
  499. package/skills/paywall-upgrade-cro/evals/evals.json +93 -0
  500. package/skills/paywall-upgrade-cro/references/experiments.md +164 -0
  501. package/skills/platform-formatting/SKILL.md +51 -0
  502. package/skills/popup-cro/SKILL.md +454 -0
  503. package/skills/popup-cro/evals/evals.json +94 -0
  504. package/skills/positioning-angles/SKILL.md +524 -0
  505. package/skills/positioning-angles/references/ad-matrix-and-examples.md +176 -0
  506. package/skills/positioning-angles/references/angle-frameworks.md +187 -0
  507. package/skills/positioning-angles/references/dunford-positioning.md +135 -0
  508. package/skills/positioning-angles/references/hormozi-offer.md +247 -0
  509. package/skills/positioning-angles/references/schwartz-sophistication.md +166 -0
  510. package/skills/positioning-angles/references/unique-mechanism.md +162 -0
  511. package/skills/pricing-strategy/SKILL.md +346 -0
  512. package/skills/pricing-strategy/evals/evals.json +90 -0
  513. package/skills/pricing-strategy/references/research-methods.md +152 -0
  514. package/skills/pricing-strategy/references/tier-structure.md +307 -0
  515. package/skills/programmatic-seo/SKILL.md +238 -0
  516. package/skills/programmatic-seo/evals/evals.json +94 -0
  517. package/skills/programmatic-seo/references/playbooks.md +308 -0
  518. package/skills/project-rag/SKILL.md +127 -0
  519. package/skills/quality-gate/SKILL.md +519 -0
  520. package/skills/quality-gate/judge-personas/buyer.md +47 -0
  521. package/skills/quality-gate/judge-personas/expert.md +47 -0
  522. package/skills/quality-gate/judge-personas/outsider.md +47 -0
  523. package/skills/quality-gate/judge-personas/scanner.md +41 -0
  524. package/skills/quality-gate/judge-personas/skeptic.md +40 -0
  525. package/skills/referral-program/SKILL.md +290 -0
  526. package/skills/referral-program/evals/evals.json +89 -0
  527. package/skills/referral-program/references/affiliate-programs.md +163 -0
  528. package/skills/referral-program/references/program-examples.md +143 -0
  529. package/skills/review-sites/SKILL.md +279 -0
  530. package/skills/revops/SKILL.md +343 -0
  531. package/skills/revops/evals/evals.json +91 -0
  532. package/skills/revops/references/automation-playbooks.md +290 -0
  533. package/skills/revops/references/lifecycle-definitions.md +278 -0
  534. package/skills/revops/references/routing-rules.md +203 -0
  535. package/skills/revops/references/scoring-models.md +247 -0
  536. package/skills/saas-product-seo/SKILL.md +324 -0
  537. package/skills/sales-enablement/SKILL.md +349 -0
  538. package/skills/sales-enablement/evals/evals.json +91 -0
  539. package/skills/sales-enablement/references/deck-frameworks.md +263 -0
  540. package/skills/sales-enablement/references/demo-scripts.md +355 -0
  541. package/skills/sales-enablement/references/objection-library.md +270 -0
  542. package/skills/sales-enablement/references/one-pager-templates.md +208 -0
  543. package/skills/schema-markup/SKILL.md +179 -0
  544. package/skills/schema-markup/evals/evals.json +87 -0
  545. package/skills/schema-markup/references/schema-examples.md +398 -0
  546. package/skills/self-improve/SKILL.md +166 -0
  547. package/skills/self-improving-agent/README.md +243 -0
  548. package/skills/self-improving-agent/SKILL.md +437 -0
  549. package/skills/self-improving-agent/scripts/__init__.py +16 -0
  550. package/skills/self-improving-agent/scripts/__pycache__/auto_detect.cpython-314.pyc +0 -0
  551. package/skills/self-improving-agent/scripts/__pycache__/nlm_curation.cpython-314.pyc +0 -0
  552. package/skills/self-improving-agent/scripts/__pycache__/self_improving_agent.cpython-314.pyc +0 -0
  553. package/skills/self-improving-agent/scripts/auto_detect.py +270 -0
  554. package/skills/self-improving-agent/scripts/init_expertise_registry.py +89 -0
  555. package/skills/self-improving-agent/scripts/nlm_curation.py +259 -0
  556. package/skills/self-improving-agent/scripts/self-improving-agent +113 -0
  557. package/skills/self-improving-agent/scripts/self_improving_agent.py +603 -0
  558. package/skills/self-improving-agent/scripts/test_curation_scorer.py +20 -0
  559. package/skills/self-improving-agent/scripts/test_self_improving.py +184 -0
  560. package/skills/send-email/SKILL.md +426 -0
  561. package/skills/send-email/references/batch-email-examples.md +807 -0
  562. package/skills/send-email/references/best-practices.md +453 -0
  563. package/skills/send-email/references/installation.md +123 -0
  564. package/skills/send-email/references/single-email-examples.md +470 -0
  565. package/skills/send-email/references/webhooks.md +221 -0
  566. package/skills/seo-audit/SKILL.md +362 -0
  567. package/skills/seo-audit/references/ai-writing-detection.md +200 -0
  568. package/skills/seo-audit/references/architecture-patterns.md +271 -0
  569. package/skills/seo-audit/references/schema-templates.md +427 -0
  570. package/skills/seo-content/SKILL.md +510 -0
  571. package/skills/seo-content/references/anti-ai-detection.md +184 -0
  572. package/skills/seo-content/references/content-structures.md +148 -0
  573. package/skills/seo-content/references/eeat-examples.md +235 -0
  574. package/skills/seo-content/references/on-page-seo.md +261 -0
  575. package/skills/seo-content/references/pseo-playbooks.md +226 -0
  576. package/skills/seo-content/references/schema-templates.md +104 -0
  577. package/skills/seo-content/references/serp-analysis-format.md +151 -0
  578. package/skills/seo-machine/SKILL.md +331 -0
  579. package/skills/seo-machine/assets/brand-template.md +73 -0
  580. package/skills/seo-machine/assets/link-inventory-template.md +74 -0
  581. package/skills/seo-machine/assets/roadmap-template.md +184 -0
  582. package/skills/seo-machine/references/api-stack-recipes.md +230 -0
  583. package/skills/seo-machine/references/exa-recipes.md +260 -0
  584. package/skills/seo-machine/references/manual-research.md +73 -0
  585. package/skills/seo-machine/references/methodology.md +87 -0
  586. package/skills/seo-machine/references/off-page.md +123 -0
  587. package/skills/seo-machine/references/patterns/alternatives.md +176 -0
  588. package/skills/seo-machine/references/patterns/compare.md +105 -0
  589. package/skills/seo-machine/references/patterns/playbooks.md +106 -0
  590. package/skills/seo-machine/references/patterns/use-case.md +109 -0
  591. package/skills/seo-machine/references/quality-bars.md +99 -0
  592. package/skills/seo-machine/references/stacks/astro.md +156 -0
  593. package/skills/seo-machine/references/stacks/detection.md +61 -0
  594. package/skills/seo-machine/references/stacks/markdown-fallback.md +181 -0
  595. package/skills/seo-machine/references/stacks/nextjs.md +108 -0
  596. package/skills/seo-machine/references/stacks/rails-inertia.md +99 -0
  597. package/skills/seo-machine/references/striking-distance.md +116 -0
  598. package/skills/seo-machine/references/technical-audit.md +153 -0
  599. package/skills/seo-machine/scripts/link_audit.py +265 -0
  600. package/skills/seo-machine/scripts/tech_audit.py +221 -0
  601. package/skills/seo-machine/scripts/word_count.py +154 -0
  602. package/skills/sharp-thesis-validator/SKILL.md +393 -0
  603. package/skills/sharp-thesis-validator/examples.md +186 -0
  604. package/skills/signup-flow-cro/SKILL.md +359 -0
  605. package/skills/signup-flow-cro/evals/evals.json +88 -0
  606. package/skills/site-architecture/SKILL.md +357 -0
  607. package/skills/site-architecture/evals/evals.json +88 -0
  608. package/skills/site-architecture/references/mermaid-templates.md +216 -0
  609. package/skills/site-architecture/references/navigation-patterns.md +305 -0
  610. package/skills/site-architecture/references/site-type-templates.md +293 -0
  611. package/skills/skill-self-improvement/SKILL.md +151 -0
  612. package/skills/slideshow-script/SKILL.md +274 -0
  613. package/skills/slideshow-script/references/content-spec-schema.md +77 -0
  614. package/skills/slideshow-script/references/frameworks.md +84 -0
  615. package/skills/slideshow-script/references/paips-framework.md +37 -0
  616. package/skills/social-campaign/SKILL.md +419 -0
  617. package/skills/social-campaign/references/paper-mcp-workflow.md +48 -0
  618. package/skills/social-content/SKILL.md +359 -0
  619. package/skills/social-content/evals/evals.json +92 -0
  620. package/skills/social-content/references/platforms.md +170 -0
  621. package/skills/social-content/references/post-templates.md +177 -0
  622. package/skills/social-content/references/reverse-engineering.md +195 -0
  623. package/skills/social-worker/SKILL.md +204 -0
  624. package/skills/startup-launcher/SKILL.md +252 -0
  625. package/skills/startup-launcher/references/file-router.md +64 -0
  626. package/skills/startup-launcher/references/platform-matrix.md +65 -0
  627. package/skills/startup-launcher/references/platforms/alternativeto.md +283 -0
  628. package/skills/startup-launcher/references/platforms/appsumo.md +495 -0
  629. package/skills/startup-launcher/references/platforms/auraplusplus.md +736 -0
  630. package/skills/startup-launcher/references/platforms/betalist.md +98 -0
  631. package/skills/startup-launcher/references/platforms/capterra.md +276 -0
  632. package/skills/startup-launcher/references/platforms/crunchbase.md +514 -0
  633. package/skills/startup-launcher/references/platforms/dealify.md +291 -0
  634. package/skills/startup-launcher/references/platforms/dealmirror.md +313 -0
  635. package/skills/startup-launcher/references/platforms/desifounder.md +490 -0
  636. package/skills/startup-launcher/references/platforms/devhunt.md +210 -0
  637. package/skills/startup-launcher/references/platforms/devpost.md +448 -0
  638. package/skills/startup-launcher/references/platforms/fazier.md +56 -0
  639. package/skills/startup-launcher/references/platforms/firsto.md +489 -0
  640. package/skills/startup-launcher/references/platforms/g2.md +226 -0
  641. package/skills/startup-launcher/references/platforms/hackernews.md +99 -0
  642. package/skills/startup-launcher/references/platforms/hackernoon.md +385 -0
  643. package/skills/startup-launcher/references/platforms/indiedeals.md +367 -0
  644. package/skills/startup-launcher/references/platforms/indiehackers.md +80 -0
  645. package/skills/startup-launcher/references/platforms/kenmoo.md +231 -0
  646. package/skills/startup-launcher/references/platforms/labstartups.md +618 -0
  647. package/skills/startup-launcher/references/platforms/launchboard.md +307 -0
  648. package/skills/startup-launcher/references/platforms/launchfast.md +560 -0
  649. package/skills/startup-launcher/references/platforms/launchigniter.md +56 -0
  650. package/skills/startup-launcher/references/platforms/launchingnext.md +674 -0
  651. package/skills/startup-launcher/references/platforms/launchit.md +574 -0
  652. package/skills/startup-launcher/references/platforms/launchyourapp.md +677 -0
  653. package/skills/startup-launcher/references/platforms/libhunt.md +220 -0
  654. package/skills/startup-launcher/references/platforms/ltdhunt.md +221 -0
  655. package/skills/startup-launcher/references/platforms/microlaunch.md +45 -0
  656. package/skills/startup-launcher/references/platforms/openalternative.md +195 -0
  657. package/skills/startup-launcher/references/platforms/peerlist.md +56 -0
  658. package/skills/startup-launcher/references/platforms/peerpush.md +64 -0
  659. package/skills/startup-launcher/references/platforms/primeclub.md +282 -0
  660. package/skills/startup-launcher/references/platforms/productcanyon.md +190 -0
  661. package/skills/startup-launcher/references/platforms/producthunt.md +98 -0
  662. package/skills/startup-launcher/references/platforms/rankinpublic.md +315 -0
  663. package/skills/startup-launcher/references/platforms/rockethub.md +374 -0
  664. package/skills/startup-launcher/references/platforms/saasgenius.md +175 -0
  665. package/skills/startup-launcher/references/platforms/saashub.md +205 -0
  666. package/skills/startup-launcher/references/platforms/saasmantra.md +221 -0
  667. package/skills/startup-launcher/references/platforms/saaspirate.md +287 -0
  668. package/skills/startup-launcher/references/platforms/saaswarrior.md +190 -0
  669. package/skills/startup-launcher/references/platforms/saaszilla.md +194 -0
  670. package/skills/startup-launcher/references/platforms/selected.md +925 -0
  671. package/skills/startup-launcher/references/platforms/sideprojectors.md +86 -0
  672. package/skills/startup-launcher/references/platforms/softonic.md +240 -0
  673. package/skills/startup-launcher/references/platforms/sourceforge.md +251 -0
  674. package/skills/startup-launcher/references/platforms/stacksocial.md +244 -0
  675. package/skills/startup-launcher/references/platforms/startupstash.md +326 -0
  676. package/skills/startup-launcher/references/platforms/theresanaiforthat.md +253 -0
  677. package/skills/startup-launcher/references/platforms/tinylaunch.md +70 -0
  678. package/skills/startup-launcher/references/platforms/tinystartups.md +72 -0
  679. package/skills/startup-launcher/references/platforms/toolfolio.md +291 -0
  680. package/skills/startup-launcher/references/platforms/trustmrr.md +194 -0
  681. package/skills/startup-launcher/references/platforms/trylaunch.md +531 -0
  682. package/skills/startup-launcher/references/platforms/uneed.md +57 -0
  683. package/skills/startup-launcher/references/templates/asset-checklist.md +218 -0
  684. package/skills/startup-launcher/references/templates/launch-tracker.md +195 -0
  685. package/skills/startup-launcher/references/templates/product-brief.md +98 -0
  686. package/skills/summarize/.skill-meta.json +13 -0
  687. package/skills/summarize/SKILL.md +170 -0
  688. package/skills/summarize/rules/install.md +157 -0
  689. package/skills/summarize/rules/usage.md +207 -0
  690. package/skills/topical-authority/SKILL.md +307 -0
  691. package/skills/topical-authority/references/jake-ward-framework.md +201 -0
  692. package/skills/topical-authority/references/serp-clustering-algorithm.md +325 -0
  693. package/skills/topical-authority/scripts/orchestrator.js +367 -0
  694. package/skills/topical-authority/scripts/seo/analyze-competitor-coverage.js +3 -0
  695. package/skills/topical-authority/scripts/seo/audit-internal-links.js +3 -0
  696. package/skills/topical-authority/scripts/seo/build-clusters-from-serp.js +3 -0
  697. package/skills/topical-authority/scripts/seo/extract-keywords-from-forums.js +3 -0
  698. package/skills/topical-authority/scripts/seo/extract-paa-questions.js +3 -0
  699. package/skills/topical-authority/scripts/seo/fetch-serp-urls.js +3 -0
  700. package/skills/topical-authority/scripts/seo/gemini-serp-clustering.js +3 -0
  701. package/skills/topical-authority/scripts/seo/identify-content-gaps.js +3 -0
  702. package/skills/topical-authority/scripts/seo/identify-research-gaps.js +3 -0
  703. package/skills/topical-authority/scripts/seo/scrape-quora-questions.js +3 -0
  704. package/skills/topical-authority/scripts/seo/scrape-reddit-pain-points.js +3 -0
  705. package/skills/topical-authority/scripts/seo/weave-internal-links.js +3 -0
  706. package/skills/visual-style/SKILL.md +199 -0
  707. package/skills/voice-brand-alignment/SKILL.md +70 -0
  708. package/skills/voice-brand-alignment/references/ai-slop-patterns.md +405 -0
  709. package/skills/voice-brand-alignment/scripts/validation/gemini-voice-validator.js +96 -0
  710. package/skills/voice-extraction/SKILL.md +234 -0
  711. package/skills/voice-extraction/references/extraction-prompt.md +155 -0
  712. package/skills/voice-extraction/references/voice-dna-template.md +168 -0
  713. package/skills/voice-extraction/references/voice-elements.md +259 -0
  714. package/skills/voice-extraction/scripts/build-corpus.js +120 -0
  715. package/skills/voice-extraction/scripts/collect-sources.sh +168 -0
  716. package/skills/warm-outbound/SKILL.md +299 -0
  717. package/skills/warm-outbound/templates/warm-message.md +39 -0
  718. package/skills/weekly-newsletter-digest/SKILL.md +78 -0
  719. package/skills/x-playwriter/SKILL.md +428 -0
  720. package/skills/x-playwriter/scripts/x-browser.js +185 -0
  721. package/skills/x-post-generator-openclaw/SKILL.md +138 -0
  722. package/skills/x-post-generator-openclaw/scripts/generate-x-post.js +537 -0
  723. package/skills/x-posting-playwriter/SKILL.md +203 -0
  724. package/skills/x-research/SKILL.md +129 -0
  725. package/skills/x-research/x-research.sh +85 -0
  726. package/skills/youtube-summarize/SKILL.md +90 -0
  727. package/skills/youtube-summarize/scripts/youtube-summarize.sh +143 -0
  728. package/src/cli.js +349 -172
  729. package/src/harness/deepseek-adapter.js +102 -0
  730. package/src/harness/deepseek.js +225 -0
  731. package/src/harness/opencode-adapter.js +174 -0
  732. package/src/harness/pi-adapter.js +172 -0
  733. package/src/harness/registry.js +121 -0
  734. package/src/harness/telemetry.js +102 -0
  735. package/src/harness/types.js +165 -0
  736. package/src/interview.js +36 -4
  737. package/src/postinstall.js +10 -12
  738. package/templates/AGENTS.md +17 -17
  739. package/templates/ORG.md +1 -1
  740. package/templates/TOOLS.md +7 -2
  741. package/templates/opencode.json +26 -29
  742. package/wiki/doctor.md +54 -0
  743. package/wiki/inkstone.md +4 -4
  744. package/wiki/opencode.md +3 -3
  745. 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.*