@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,1748 @@
1
+ # Ad Creative Mode
2
+
3
+ depends-on: [hook-generator]
4
+
5
+ Generate performance-optimized paid advertising creative across Meta, Google, LinkedIn, and TikTok. Not generic images resized for ad placements — creative engineered for each platform's ad system, policy requirements, and conversion psychology.
6
+
7
+ **Loaded by:** `creative/SKILL.md` when user selects Ad Creative mode (option 5).
8
+ **Model selection:** Handled by `brand/stack.md` — never hardcode model IDs in prompts or workflows.
9
+ **Brand consistency:** Reads from `./brand/creative-kit.md` before every generation.
10
+ **File output:** Saves to `./campaigns/{campaign}/ads/{platform}/` for organized delivery.
11
+
12
+ ---
13
+
14
+ ## Why This Mode Exists
15
+
16
+ **The problem:** Paid ad creative is where most marketing budgets burn:
17
+ 1. Each platform has different ad specs, safe zones, and policy rules
18
+ 2. Creative fatigue kills performance — you need constant variants
19
+ 3. A/B testing requires structured variation, not random guessing
20
+ 4. Policy violations waste time and delay launches
21
+ 5. Most teams produce 2-3 ad variants when they need 12+
22
+ 6. Image generation prompts that work for organic fail for paid (different rules)
23
+ 7. No systematic approach to hook testing across formats
24
+
25
+ **The solution:** A complete ad creative production system that:
26
+ - Knows every ad placement spec across four major platforms
27
+ - Generates structured testing matrices (4 hooks x 3 formats = 12 ads minimum)
28
+ - Produces A/B variants per concept for systematic testing
29
+ - Includes platform-specific policy compliance checklists
30
+ - Outputs image generation prompts optimized for ad requirements
31
+ - Organizes deliverables by platform, placement, and test variant
32
+ - Integrates with the brand kit for visual consistency across all ads
33
+
34
+ **The ROI multiplier:** One well-structured ad testing matrix produces more actionable performance data than 50 randomly created ads. This mode builds the matrix.
35
+
36
+ ---
37
+
38
+ ## Model Selection
39
+
40
+ **Do NOT hardcode model IDs.** Always refer to `brand/stack.md` for the current default image model and its verified API payload.
41
+
42
+ As of this writing, the models used in this mode are:
43
+
44
+ ### Image Ads
45
+
46
+ | Role | Model | Registry Section | Estimated Cost |
47
+ |------|-------|-----------------|---------------|
48
+ | **All static ad creative** | the configured image model | Image Generation > Default Model | ~$0.02-0.04 per image |
49
+
50
+ ### Video Ads
51
+
52
+ | Role | Model | Registry Section | Estimated Cost |
53
+ |------|-------|-----------------|---------------|
54
+ | **Default video ads** | Kling 2.5 Turbo Pro | Video Generation > Default Model | ~$0.40 per 5s clip |
55
+ | **Hero video ads** | Veo 3.1 / Sora 2 | Video Generation > Comparison Models | ~$0.80-1.50 per clip |
56
+
57
+ ### How to Call
58
+
59
+ 1. Open `brand/stack.md`
60
+ 2. Find the **Image Generation** section (for static ads) or **Video Generation** section (for video ads)
61
+ 3. Copy the verified payload structure
62
+ 4. Insert your constructed prompt and desired aspect ratio
63
+ 5. Execute the API call via your configured generation provider
64
+
65
+ ### Why the configured image model for Ad Creative
66
+
67
+ the configured image model handles all static ad generation because:
68
+ - **Typography rendering:** CTA buttons, headlines, offer text directly in the image
69
+ - **Product placement:** Clean product integration into lifestyle and studio contexts
70
+ - **Aspect ratio control:** Native support for every ad placement ratio
71
+ - **Speed:** 15-40 seconds per image enables rapid iteration across a full testing matrix
72
+ - **Consistency:** Same model across all variants ensures controlled testing (only the creative variable changes, not the model)
73
+
74
+ ---
75
+
76
+ ## Platform Specifications
77
+
78
+ ### Meta / Instagram Ads
79
+
80
+ Meta's ad system serves across Facebook, Instagram, Messenger, and the Audience Network. Each placement has distinct specs.
81
+
82
+ #### Feed Ads (Facebook + Instagram)
83
+
84
+ | Spec | Value |
85
+ |------|-------|
86
+ | **Recommended ratio** | 1:1 (square) or 4:5 (portrait) |
87
+ | **Minimum resolution** | 1080x1080 (1:1) or 1080x1350 (4:5) |
88
+ | **Max file size** | 30MB |
89
+ | **Formats** | JPG, PNG |
90
+ | **Text-to-image ratio** | Keep below 20% text coverage for best delivery |
91
+ | **Safe zone** | Full frame usable; bottom 10% may be covered by CTA button overlay |
92
+
93
+ **Feed Ad Prompt Formula:**
94
+ ```
95
+ [Product/service] in [context], commercial advertising photography,
96
+ [brand color palette] color scheme, clean professional composition,
97
+ prominent product placement, space for headline overlay in [position],
98
+ CTA-ready layout with clear visual hierarchy,
99
+ [1:1 or 4:5] composition, high-end advertising quality,
100
+ scroll-stopping visual impact, bright well-lit professional
101
+ ```
102
+
103
+ #### Stories / Reels Ads (Facebook + Instagram)
104
+
105
+ | Spec | Value |
106
+ |------|-------|
107
+ | **Ratio** | 9:16 (vertical full-screen) |
108
+ | **Resolution** | 1080x1920 |
109
+ | **Safe zone — top** | Avoid top 14% (250px) — profile icon, brand name, "Sponsored" label |
110
+ | **Safe zone — bottom** | Avoid bottom 10% (200px) — CTA button, swipe-up area |
111
+ | **Safe zone — usable** | Middle 76% of the frame (250px to 1720px from top) |
112
+ | **Max file size** | 30MB (image), 4GB (video) |
113
+ | **Video duration** | 1-120 seconds (recommend 5-15s for ads) |
114
+
115
+ **Stories/Reels Ad Prompt Formula:**
116
+ ```
117
+ [Product/service] vertical full-screen composition for Stories ad,
118
+ subject centered in middle 76% of frame (avoiding top and bottom),
119
+ 9:16 vertical format, immersive full-bleed visual,
120
+ [brand colors], bold attention-grabbing,
121
+ native story aesthetic blended with professional quality,
122
+ space for CTA button at bottom, space for brand label at top,
123
+ scroll-stopping first impression, commercial quality
124
+ ```
125
+
126
+ #### Carousel Ads
127
+
128
+ | Spec | Value |
129
+ |------|-------|
130
+ | **Ratio** | 1:1 (square) — all cards must match |
131
+ | **Resolution** | 1080x1080 per card |
132
+ | **Cards** | 2-10 cards per carousel |
133
+ | **Strategy** | Each card should work standalone AND as part of the sequence |
134
+
135
+ **Carousel Strategy:**
136
+ ```
137
+ Card 1: Hook — the scroll-stopper (curiosity, bold claim, or visual intrigue)
138
+ Card 2: Problem — what the audience struggles with
139
+ Card 3: Solution — how your product/service solves it
140
+ Card 4: Proof — social proof, results, testimonials
141
+ Card 5: CTA — clear next step with urgency
142
+ ```
143
+
144
+ #### Advantage+ Creative Requirements
145
+
146
+ Meta's Advantage+ system automatically optimizes ad creative. To work well with it:
147
+ - Provide multiple text variants (headline, primary text, description)
148
+ - Supply images at multiple ratios (1:1, 4:5, 9:16) — Advantage+ will select per placement
149
+ - Avoid text baked into images (Advantage+ cannot modify it)
150
+ - Keep visuals clean so auto-enhancements (brightness, contrast, cropping) improve rather than degrade
151
+ - Generate at highest quality — Advantage+ may compress further
152
+
153
+ ---
154
+
155
+ ### Google Ads
156
+
157
+ Google's ad ecosystem spans Search, Display, YouTube, Shopping, and Discovery.
158
+
159
+ #### Display Ad Sizes
160
+
161
+ | Size (px) | Name | Where It Appears | Aspect Ratio | Model Ratio |
162
+ |-----------|------|-----------------|--------------|-------------|
163
+ | 300x250 | Medium Rectangle | Most common display placement | ~6:5 | `5:4` |
164
+ | 728x90 | Leaderboard | Top of page, wide banner | ~8:1 | `21:9` then crop |
165
+ | 160x600 | Wide Skyscraper | Sidebar, tall vertical | ~3:11 | `2:3` then crop |
166
+ | 336x280 | Large Rectangle | In-content, article pages | ~6:5 | `5:4` |
167
+ | 320x50 | Mobile Leaderboard | Mobile banner, bottom of screen | ~6:1 | `21:9` then crop |
168
+ | 970x250 | Billboard | Premium top-of-page | ~4:1 | `21:9` then crop |
169
+ | 250x250 | Square | Various placements | 1:1 | `1:1` |
170
+ | 200x200 | Small Square | Various placements | 1:1 | `1:1` |
171
+
172
+ **Display Ad Strategy:**
173
+ ```
174
+ Priority generation order (by impression volume):
175
+ 1. 300x250 — generates the most impressions
176
+ 2. 728x90 — second most common
177
+ 3. 160x600 — sidebar standard
178
+ 4. 320x50 — mobile standard
179
+ 5. Remaining sizes as needed
180
+ ```
181
+
182
+ **Display Ad Prompt Formula (Square/Rectangle):**
183
+ ```
184
+ [Product/service] digital display advertisement, clean commercial layout,
185
+ [brand colors] color scheme, bold headline space,
186
+ product prominently featured, professional advertising design,
187
+ clear visual hierarchy: product > headline > CTA,
188
+ sharp crisp rendering suitable for small display sizes,
189
+ high contrast for banner visibility, [aspect ratio] composition,
190
+ advertising quality, clean edges, no bleed
191
+ ```
192
+
193
+ **Display Ad Prompt Formula (Banner/Leaderboard):**
194
+ ```
195
+ [Product/service] horizontal banner advertisement, ultra-wide composition,
196
+ product on [left/right] with text space on opposite side,
197
+ [brand colors], high contrast for banner visibility,
198
+ must read clearly at small physical size,
199
+ clean professional commercial design, sharp rendering,
200
+ 21:9 ultrawide composition, advertising quality
201
+ ```
202
+
203
+ #### Responsive Display Ads
204
+
205
+ Google's responsive display ads auto-assemble from provided assets. Supply:
206
+
207
+ | Asset | Spec | Count |
208
+ |-------|------|-------|
209
+ | **Landscape image** | 1200x628 (1.91:1) | 1-5 images |
210
+ | **Square image** | 1200x1200 (1:1) | 1-5 images |
211
+ | **Logo (landscape)** | 1200x300 (4:1) | 1 |
212
+ | **Logo (square)** | 1200x1200 (1:1) | 1 |
213
+ | **Short headline** | 30 characters max | 1-5 |
214
+ | **Long headline** | 90 characters max | 1 |
215
+ | **Description** | 90 characters max | 1-5 |
216
+ | **Business name** | 25 characters max | 1 |
217
+
218
+ **Responsive Display Prompt Formula:**
219
+ ```
220
+ [Product/service] in [context], clean professional advertising photography,
221
+ no text overlays (Google adds text automatically),
222
+ product as clear focal point, clean uncluttered background,
223
+ [brand colors] accents, professional studio-quality lighting,
224
+ commercial product photography, [1:1 or 16:9] composition,
225
+ sharp focus, high contrast, advertising-grade quality
226
+ ```
227
+
228
+ **Critical rule for responsive display:** Do NOT include text in the image. Google overlays headlines, descriptions, and CTAs dynamically. Text in the image creates visual collision.
229
+
230
+ #### YouTube Ads
231
+
232
+ | Placement | Spec | Notes |
233
+ |-----------|------|-------|
234
+ | **Thumbnail (custom)** | 1280x720 (16:9) | Must be compelling — users decide to watch or skip |
235
+ | **End screen** | 1280x720 (16:9) | Last 5-20 seconds; avoid bottom-right 30% (subscribe button area) |
236
+ | **Companion banner** | 300x60 | Displays beside video on desktop |
237
+ | **Video ad** | 1920x1080 or 1080x1920 | Pre-roll, mid-roll, or bumper (6s) |
238
+
239
+ **YouTube Thumbnail Prompt (for video ads):**
240
+ ```
241
+ YouTube ad thumbnail, [subject/product] with compelling visual hook,
242
+ dramatic lighting, bold vibrant colors, high contrast,
243
+ face with [emotion] expression if person present,
244
+ clean space on [left/right] for text overlay,
245
+ click-worthy composition, extreme visual clarity,
246
+ 16:9 landscape, must read at small sidebar size
247
+ ```
248
+
249
+ ---
250
+
251
+ ### LinkedIn Ads
252
+
253
+ LinkedIn's professional audience demands different creative standards than consumer platforms.
254
+
255
+ #### Sponsored Content (Single Image)
256
+
257
+ | Spec | Value |
258
+ |------|-------|
259
+ | **Recommended ratio** | 1.91:1 (landscape) or 1:1 (square) |
260
+ | **Resolution** | 1200x627 (landscape) or 1080x1080 (square) |
261
+ | **Max file size** | 5MB |
262
+ | **Format** | JPG, PNG |
263
+ | **Visual language** | Professional, clean, authoritative — not salesy |
264
+
265
+ **LinkedIn Sponsored Content Prompt Formula:**
266
+ ```
267
+ [Product/service/concept] professional advertising visual,
268
+ sophisticated clean aesthetic, corporate-grade quality,
269
+ [brand colors] with professional restraint,
270
+ thought-leadership positioning, business context,
271
+ not salesy — authoritative and credible,
272
+ clean composition with space for headline,
273
+ [1:1 or 16:9] composition, LinkedIn-appropriate professional tone,
274
+ high-end commercial photography or clean illustration
275
+ ```
276
+
277
+ #### InMail Banner Ads
278
+
279
+ | Spec | Value |
280
+ |------|-------|
281
+ | **Size** | 300x250 |
282
+ | **Max file size** | 2MB |
283
+ | **Format** | JPG, PNG |
284
+ | **Context** | Appears within sponsored InMail messages |
285
+
286
+ **InMail Banner Prompt:**
287
+ ```
288
+ Professional display banner for B2B advertising,
289
+ [product/offer] clean commercial layout,
290
+ [brand colors], high contrast for small display,
291
+ clear single message, professional business aesthetic,
292
+ sharp rendering at 300x250 display size,
293
+ 5:4 composition, advertising quality
294
+ ```
295
+
296
+ #### Carousel Ads
297
+
298
+ | Spec | Value |
299
+ |------|-------|
300
+ | **Card ratio** | 1:1 (square) |
301
+ | **Card resolution** | 1080x1080 |
302
+ | **Cards** | 2-10 per carousel |
303
+ | **Card headline** | 45 characters max |
304
+ | **Strategy** | Progressive narrative — each card builds on the last |
305
+
306
+ **LinkedIn Carousel Strategy:**
307
+ ```
308
+ Card 1: Industry insight or provocative stat (hook)
309
+ Card 2: The hidden problem (pain amplification)
310
+ Card 3: Your approach / methodology (differentiation)
311
+ Card 4: Results / proof points (credibility)
312
+ Card 5: CTA with clear value proposition
313
+ ```
314
+
315
+ #### Document Ads
316
+
317
+ | Spec | Value |
318
+ |------|-------|
319
+ | **Format** | PDF |
320
+ | **Strategy** | Lead magnet preview — show enough value to generate leads |
321
+ | **Cover image** | First page acts as the ad creative — must be compelling |
322
+
323
+ ---
324
+
325
+ ### TikTok Ads
326
+
327
+ TikTok ads must feel native. Over-produced creative underperforms because it breaks the feed experience.
328
+
329
+ #### In-Feed Ads
330
+
331
+ | Spec | Value |
332
+ |------|-------|
333
+ | **Ratio** | 9:16 (vertical), 1:1 (square), 16:9 (landscape) |
334
+ | **Recommended** | 9:16 for best performance |
335
+ | **Resolution** | 1080x1920 (9:16) |
336
+ | **Video duration** | 5-60 seconds (recommend 9-15s for conversion) |
337
+ | **Safe zone — top** | Avoid top 130px (brand name, music label) |
338
+ | **Safe zone — bottom** | Avoid bottom 170px (CTA, captions, engagement buttons) |
339
+ | **Safe zone — right** | Avoid right 80px (like/comment/share icons) |
340
+ | **Usable area** | Left-center portion of middle 70% |
341
+
342
+ **TikTok In-Feed Image Prompt:**
343
+ ```
344
+ [Product/service] in authentic native social media style,
345
+ NOT over-produced or corporate, real and relatable aesthetic,
346
+ vertical 9:16 full-screen composition,
347
+ subject in center-left of frame (avoiding right-side UI zone),
348
+ content in middle 70% (avoiding top and bottom UI),
349
+ bold engaging, trend-aware styling, phone-captured feeling,
350
+ high contrast, immediate visual impact,
351
+ native TikTok aesthetic, scroll-stopping
352
+ ```
353
+
354
+ #### Spark Ads
355
+
356
+ Spark ads use existing organic posts as ad creative. Requirements:
357
+ - Must be a published TikTok video (organic post)
358
+ - Creator must authorize via Spark ad authorization code
359
+ - Ad inherits the organic post's engagement metrics
360
+ - Best practice: test organic first, then boost winners as Spark ads
361
+
362
+ **Spark Ad Strategy:**
363
+ ```
364
+ 1. Generate organic-style TikTok content
365
+ 2. Publish as organic post
366
+ 3. Monitor for 24-48 hours
367
+ 4. Boost top performers as Spark ads
368
+ 5. Creative that earns organic engagement converts better as paid
369
+ ```
370
+
371
+ #### TopView Ads
372
+
373
+ | Spec | Value |
374
+ |------|-------|
375
+ | **Ratio** | 9:16 |
376
+ | **Duration** | 5-60 seconds |
377
+ | **Position** | First thing users see when opening TikTok |
378
+ | **Premium** | Highest-impact TikTok placement |
379
+ | **Creative standard** | Must be highest quality — this is a premium placement |
380
+
381
+ **TopView Prompt Addition:**
382
+ ```
383
+ Add to base TikTok prompt:
384
+ "premium production value while maintaining native TikTok aesthetic,
385
+ cinematic quality blended with authentic feel,
386
+ highest-impact first impression, brand-defining visual moment"
387
+ ```
388
+
389
+ ---
390
+
391
+ ## The 12-Ad Testing Matrix
392
+
393
+ This is the core methodology for systematic ad creative testing. Instead of guessing what works, structure your creative around a matrix that isolates variables.
394
+
395
+ ### The Concept: 4 Hooks x 3 Formats = 12 Ads
396
+
397
+ Every ad needs a **hook** (what stops the scroll and compels attention) and a **format** (how the message is visually delivered). By crossing 4 hook angles with 3 visual formats, you produce 12 unique ad combinations that let you test systematically.
398
+
399
+ ### Step 1: Generate 4 Hooks via hook-generator
400
+
401
+ Spawn 4 parallel subagents — one per core hook type — via the `task` tool with `subagent_type: general`. Each subagent loads hook-generator and executes the full Phase 1-6 pipeline.
402
+
403
+ **Subagent prompt template (one per hook type):**
404
+
405
+ ```
406
+ Load the hook-generator skill and execute the full Phase 1-6 pipeline with this context.
407
+
408
+ Context:
409
+ - WHO: <target audience>
410
+ - WHAT/WHY: <value proposition / core offer>
411
+ - Knife: <pain point>
412
+ - Platform: <Meta | Google | LinkedIn | TikTok>
413
+ - Brand: <brand name>
414
+ - Target Score: 85
415
+ - Hook Type: <Pain Point | Transformation | Social Proof | Curiosity Gap>
416
+
417
+ Return ONLY this JSON array with 1-2 hooks:
418
+ [{"hook":"...","score":<0-100>,"pattern":"...","formula":"..."}]
419
+ ```
420
+
421
+ The 4 hook types and their psychology:
422
+
423
+ | Hook Type | Psychology | Hook-generator Formula Bias |
424
+ |-----------|-----------|----------------------------|
425
+ | **Pain Point** | Loss aversion — people act to avoid pain | Negative / Contrarian |
426
+ | **Transformation** | Before/after — show the change | Outcome |
427
+ | **Social Proof** | Conformity — others validate the choice | Time Frame / Mechanism |
428
+ | **Curiosity Gap** | Information gap — must know the answer | Contrarian |
429
+
430
+ **Advanced Hook Types (for subsequent rounds of testing):**
431
+
432
+ | Hook Type | Psychology | Hook-generator Formula Bias |
433
+ |-----------|-----------|----------------------------|
434
+ | **Urgency/Scarcity** | Fear of missing out | Time Frame |
435
+ | **Contrarian** | Pattern interrupt — challenges beliefs | Contrarian |
436
+ | **Specificity** | Precision signals credibility | Outcome |
437
+ | **Identity** | Self-concept — who you are/want to be | Outcome / Negative |
438
+
439
+ ### Step 2: Define Your 3 Formats
440
+
441
+ Formats are visual structures for delivering the hook. Each must look different in the feed.
442
+
443
+ | Format | Description | Best For |
444
+ |--------|-------------|----------|
445
+ | **Product Hero** | Product prominently featured, clean background, lifestyle or studio context | Showcasing the product itself, e-commerce, physical goods |
446
+ | **UGC/Testimonial Style** | Person-centric, authentic feel, "real person" aesthetic | Building trust, service businesses, app demos |
447
+ | **Bold Typography** | Text-dominant with supporting visual, high contrast, statement-style | Offers, announcements, stat-based claims |
448
+
449
+ ### Step 3: Generate the Matrix
450
+
451
+ For each cell in the matrix, define:
452
+
453
+ ```
454
+ ┌─────────────────┬──────────────────┬──────────────────┬──────────────────┐
455
+ │ │ Product Hero │ UGC/Testimonial │ Bold Typography │
456
+ ├─────────────────┼──────────────────┼──────────────────┼──────────────────┤
457
+ │ Pain Point │ Ad 1 │ Ad 2 │ Ad 3 │
458
+ │ Transformation │ Ad 4 │ Ad 5 │ Ad 6 │
459
+ │ Social Proof │ Ad 7 │ Ad 8 │ Ad 9 │
460
+ │ Curiosity Gap │ Ad 10 │ Ad 11 │ Ad 12 │
461
+ └─────────────────┴──────────────────┴──────────────────┴──────────────────┘
462
+ ```
463
+
464
+ ### Step 4: Per-Ad Specification
465
+
466
+ For each of the 12 ads, define:
467
+
468
+ ```markdown
469
+ ### Ad [N]: [Hook Type] x [Format]
470
+
471
+ **Hook angle:** [specific hook text/concept]
472
+ **Visual spec:** [detailed visual description for this combination]
473
+ **On-image text:** [exact text rendered in the image, 6 words or fewer]
474
+ **Headline:** [ad platform headline field, character limit per platform]
475
+ **Primary text:** [ad platform body copy field]
476
+ **CTA:** [call-to-action button text]
477
+ **Tracking name:** [systematic name for analytics: {campaign}-{hook}-{format}-v1]
478
+
479
+ **Image generation prompt:**
480
+ [Complete prompt optimized for this specific ad, referencing MODEL_REGISTRY.md payload format]
481
+
482
+ **Platform ratios to generate:**
483
+ - Meta Feed: 1:1 and 4:5
484
+ - Meta Stories: 9:16
485
+ - Google Display: 1:1 and 16:9
486
+ - LinkedIn: 1:1
487
+ - TikTok: 9:16
488
+ ```
489
+
490
+ ### Matrix Output Template
491
+
492
+ Generate the full matrix as a deliverable document:
493
+
494
+ ```markdown
495
+ ## Ad Testing Matrix: {campaign}
496
+
497
+ **Brand:** {brand name}
498
+ **Product/Service:** {what is being advertised}
499
+ **Target Audience:** {who we are reaching}
500
+ **Campaign Objective:** {awareness / consideration / conversion}
501
+ **Date Generated:** {date}
502
+
503
+ ### Hook Definitions
504
+
505
+ 1. **Pain Point:** "{specific pain hook for this product}"
506
+ 2. **Transformation:** "{specific transformation hook}"
507
+ 3. **Social Proof:** "{specific proof hook}"
508
+ 4. **Curiosity Gap:** "{specific curiosity hook}"
509
+
510
+ ### Format Definitions
511
+
512
+ A. **Product Hero:** {specific visual approach for this product}
513
+ B. **UGC/Testimonial:** {specific person/style for this brand}
514
+ C. **Bold Typography:** {specific typography approach matching brand kit}
515
+
516
+ ---
517
+
518
+ ### Ad 1: Pain Point x Product Hero
519
+ [full spec per template above]
520
+
521
+ ### Ad 2: Pain Point x UGC/Testimonial
522
+ [full spec per template above]
523
+
524
+ [... continue for all 12 ...]
525
+
526
+ ---
527
+
528
+ ### Testing Plan
529
+
530
+ **Phase 1 (Week 1-2):** Run all 12 ads with equal budget split
531
+ **Phase 2 (Week 3-4):** Kill bottom 6, redistribute budget to top 6
532
+ **Phase 3 (Week 5+):** Generate A/B variants of top 3 performers
533
+ **Tracking:** UTM parameter = tracking_name field from each ad
534
+ ```
535
+
536
+ ---
537
+
538
+ ## A/B Variant Generation
539
+
540
+ Once you have a winning ad concept (from the matrix or from existing performance data), generate structured variants to optimize further.
541
+
542
+ ### What to Vary
543
+
544
+ Each variant should change ONE variable at a time. If you change multiple things, you cannot attribute the performance difference.
545
+
546
+ | Variable | How to Vary | Example |
547
+ |----------|-------------|---------|
548
+ | **Background color** | Same composition, different background | White bg vs. brand color bg vs. lifestyle bg |
549
+ | **Product angle** | Same scene, different product view | Front-facing vs. 45-degree vs. in-use |
550
+ | **Emotion/expression** | Same person, different mood | Smiling vs. serious vs. surprised (for UGC-style) |
551
+ | **Text treatment** | Same message, different typography | Large bold vs. subtle vs. no text |
552
+ | **Color temperature** | Same scene, different grading | Warm/golden vs. cool/blue vs. neutral |
553
+ | **Composition** | Same elements, different arrangement | Centered vs. rule-of-thirds vs. close-up |
554
+ | **CTA text** | Same visual, different call to action | "Shop Now" vs. "Learn More" vs. "Get Started" |
555
+ | **Headline** | Same visual, different headline copy | Benefit-focused vs. feature-focused vs. question |
556
+
557
+ ### Variant Generation Workflow
558
+
559
+ ```
560
+ Step 1: Identify the winning ad from the matrix (or provide the base concept)
561
+ Step 2: Select the variable to test
562
+ Step 3: Generate 3-5 variants of that variable
563
+ Step 4: Keep all other elements identical
564
+ Step 5: Name variants systematically: {base-name}-var-{variable}-{option}
565
+ ```
566
+
567
+ ### Variant Prompt Construction
568
+
569
+ When generating variants, use the SAME base prompt and modify only the variable:
570
+
571
+ **Base prompt (the winner):**
572
+ ```
573
+ Product bottle on clean white marble surface, soft natural window lighting,
574
+ premium skincare advertising photography, brand blue accent colors,
575
+ text "Transform Your Skin" in bold modern sans-serif,
576
+ centered composition, 4:5 portrait, commercial quality
577
+ ```
578
+
579
+ **Variant A — warm background:**
580
+ ```
581
+ Product bottle on warm terracotta surface, soft golden hour lighting,
582
+ premium skincare advertising photography, brand blue accent colors,
583
+ text "Transform Your Skin" in bold modern sans-serif,
584
+ centered composition, 4:5 portrait, commercial quality
585
+ ```
586
+
587
+ **Variant B — dark background:**
588
+ ```
589
+ Product bottle on dark slate surface, dramatic studio lighting,
590
+ premium skincare advertising photography, brand blue accent colors,
591
+ text "Transform Your Skin" in bold modern sans-serif,
592
+ centered composition, 4:5 portrait, commercial quality
593
+ ```
594
+
595
+ **Variant C — lifestyle background:**
596
+ ```
597
+ Product bottle on bathroom vanity with morning light, real environment,
598
+ premium skincare advertising photography, brand blue accent colors,
599
+ text "Transform Your Skin" in bold modern sans-serif,
600
+ centered composition, 4:5 portrait, commercial quality
601
+ ```
602
+
603
+ ### Variant Output Template
604
+
605
+ ```markdown
606
+ ## A/B Variant Set: {base ad name}
607
+
608
+ **Base Ad:** {reference to the winning ad}
609
+ **Variable Being Tested:** {what is different}
610
+ **Variants Generated:** {count}
611
+
612
+ ### Control (Original)
613
+ - **Image URL:** [URL]
614
+ - **Saved To:** ./campaigns/{campaign}/ads/{platform}/control.png
615
+ - **Tracking:** {campaign}-{hook}-{format}-control
616
+
617
+ ### Variant A: {description of change}
618
+ - **Image URL:** [URL]
619
+ - **Saved To:** ./campaigns/{campaign}/ads/{platform}/var-a-{change}.png
620
+ - **Tracking:** {campaign}-{hook}-{format}-var-a
621
+ - **What changed:** {specific change from control}
622
+
623
+ ### Variant B: {description of change}
624
+ [... same structure ...]
625
+
626
+ ### Variant C: {description of change}
627
+ [... same structure ...]
628
+
629
+ ---
630
+
631
+ **Test recommendation:**
632
+ - Run control + all variants with equal budget split
633
+ - Statistical significance threshold: 95% confidence
634
+ - Minimum sample: 1000 impressions per variant before judging
635
+ - Primary metric: [CTR / conversion rate / ROAS]
636
+ ```
637
+
638
+ ---
639
+
640
+ ## Policy Compliance
641
+
642
+ Every ad platform has content policies. Violations waste time, delay campaigns, and can get accounts restricted. Run through the applicable checklist BEFORE generating creative.
643
+
644
+ ### Meta Ad Policy Checklist
645
+
646
+ Before submitting any ad to Meta (Facebook/Instagram):
647
+
648
+ ```
649
+ CONTENT RESTRICTIONS
650
+ - [ ] No "before and after" images that depict unlikely results
651
+ - [ ] No personal attributes assertion ("You are overweight" — instead: "Looking to get fit?")
652
+ - [ ] No misleading claims about product capabilities
653
+ - [ ] No implied endorsement by Meta/Facebook/Instagram
654
+ - [ ] No discriminatory content (race, ethnicity, gender, age, disability, etc.)
655
+ - [ ] No sensational or shocking content designed to provoke
656
+
657
+ HEALTH & WELLNESS
658
+ - [ ] No unrealistic health claims ("Lose 30lbs in 7 days")
659
+ - [ ] No before/after body images for weight loss
660
+ - [ ] No claims about curing diseases
661
+ - [ ] Supplement ads include proper disclaimers
662
+
663
+ FINANCIAL
664
+ - [ ] No guaranteed financial returns ("Make $10,000/month guaranteed")
665
+ - [ ] No misleading income claims
666
+ - [ ] Crypto/financial ads follow regional regulations
667
+
668
+ IMAGE QUALITY
669
+ - [ ] Text overlay below 20% of image area (not policy but affects delivery)
670
+ - [ ] No excessive skin exposure beyond platform norms
671
+ - [ ] No violent, graphic, or disturbing imagery
672
+ - [ ] Image is not misleading about the product/service
673
+
674
+ VIDEO
675
+ - [ ] No disruptive audio (sudden volume, jarring sounds) for auto-play
676
+ - [ ] Closed captions recommended (many users watch with sound off)
677
+
678
+ LANDING PAGE
679
+ - [ ] Ad creative matches landing page content (no bait-and-switch)
680
+ - [ ] Landing page is functional and matches ad claims
681
+ ```
682
+
683
+ ### Google Ads Policy Checklist
684
+
685
+ ```
686
+ CONTENT RESTRICTIONS
687
+ - [ ] No misleading content or false claims
688
+ - [ ] No counterfeit goods promotion
689
+ - [ ] No dangerous products or services (without proper certification)
690
+ - [ ] No inappropriate content (shocking, hateful, exploitative)
691
+ - [ ] No unrealistic promises
692
+
693
+ EDITORIAL STANDARDS
694
+ - [ ] Correct spelling and grammar in all text
695
+ - [ ] No excessive capitalization ("FREE AMAZING DEAL TODAY")
696
+ - [ ] No gimmicky use of symbols or punctuation ("$$$ Save Big $$$")
697
+ - [ ] No vague CTAs ("Click here" — instead: specific value proposition)
698
+ - [ ] Display URL matches landing page domain
699
+
700
+ IMAGE QUALITY (Display Ads)
701
+ - [ ] Images are clear and sharp at display size
702
+ - [ ] No blurry, distorted, or pixelated images
703
+ - [ ] No strobing, flashing, or distracting animation
704
+ - [ ] Image fills the ad space (no excessive white space with tiny centered image)
705
+ - [ ] Text in image is legible at actual display size
706
+
707
+ RESPONSIVE DISPLAY
708
+ - [ ] Images do not contain text (Google overlays text dynamically)
709
+ - [ ] Product is the clear focal point
710
+ - [ ] Background is clean enough for dynamic text overlay
711
+ - [ ] Works at multiple sizes without critical content being cropped
712
+ ```
713
+
714
+ ### LinkedIn Ads Policy Checklist
715
+
716
+ ```
717
+ PROFESSIONAL STANDARDS
718
+ - [ ] Content appropriate for professional context
719
+ - [ ] No sensational or clickbait-style creative
720
+ - [ ] Tone is authoritative, not aggressive or pushy
721
+ - [ ] Avoids hyperbole ("The BEST product EVER created")
722
+
723
+ ACCURACY
724
+ - [ ] Claims are verifiable and accurate
725
+ - [ ] Statistics include source attribution
726
+ - [ ] Testimonials are from real, identifiable people (or clearly marked as illustrative)
727
+ - [ ] Job ads comply with employment advertising laws
728
+
729
+ IMAGE STANDARDS
730
+ - [ ] Professional quality imagery
731
+ - [ ] No stock photos with watermarks
732
+ - [ ] No overly edited or unrealistic imagery
733
+ - [ ] No provocative or inappropriate imagery for professional context
734
+
735
+ B2B SPECIFIC
736
+ - [ ] Company claims are verifiable
737
+ - [ ] No implied LinkedIn endorsement
738
+ - [ ] ROI/performance claims include methodology or footnote
739
+ ```
740
+
741
+ ### TikTok Ads Policy Checklist
742
+
743
+ ```
744
+ AUTHENTICITY
745
+ - [ ] Creative feels native to TikTok (not repurposed TV/Facebook ads)
746
+ - [ ] No misleading content or fake interactivity (fake "close" buttons, fake UI elements)
747
+ - [ ] No unauthorized use of TikTok branding or interface elements
748
+
749
+ CONTENT RESTRICTIONS
750
+ - [ ] No unrealistic beauty/body standards being promoted
751
+ - [ ] No dangerous stunts or challenges
752
+ - [ ] No misleading pricing (hidden fees, unclear terms)
753
+ - [ ] No weight loss claims with unrealistic promises
754
+ - [ ] Meets age-gating requirements for restricted categories
755
+
756
+ DISCLOSURE
757
+ - [ ] AI-generated content clearly labeled where required by law
758
+ - [ ] Sponsored/partnership content properly disclosed
759
+ - [ ] Influencer/creator relationships transparently identified
760
+ - [ ] Testimonials clearly marked as paid if applicable
761
+
762
+ CREATIVE QUALITY
763
+ - [ ] Audio quality acceptable (no distortion, no copyrighted music without license)
764
+ - [ ] No watermarks from other platforms (Instagram logo, YouTube logo)
765
+ - [ ] No low-resolution or heavily compressed visuals
766
+ ```
767
+
768
+ ### Universal AI-Generated Content Disclosure
769
+
770
+ When using AI-generated imagery in ads, follow these disclosure guidelines:
771
+
772
+ ```
773
+ REQUIRED BY PLATFORM (evolving — check current rules):
774
+ - Meta: AI-generated content may require "Made with AI" label
775
+ - TikTok: Synthetic media policies require disclosure
776
+ - Google: Follow Google Ads AI content policies
777
+ - LinkedIn: Transparency expected for AI-generated visuals
778
+
779
+ BEST PRACTICE (regardless of platform requirements):
780
+ - Include "Image generated with AI" in ad description when using AI-generated visuals
781
+ - For AI-generated people/testimonials: clearly indicate they are AI-generated
782
+ - Never use AI-generated imagery to fabricate endorsements from real people
783
+ - Keep records of all AI-generated assets and the prompts used to create them
784
+ ```
785
+
786
+ ---
787
+
788
+ ## Platform-Specific Prompt Templates
789
+
790
+ ### Meta Feed Ad — Product Hero
791
+
792
+ ```
793
+ [Product] commercial advertising photography for Instagram/Facebook feed ad,
794
+ product prominently displayed in [lifestyle/studio] setting,
795
+ [brand colors] color scheme, clean professional composition,
796
+ soft professional lighting, commercial product photography,
797
+ space in [top/bottom] for headline overlay text,
798
+ scroll-stopping visual impact, high-end advertising quality,
799
+ 4:5 portrait composition, sharp focus on product,
800
+ background [clean/lifestyle context], premium brand positioning
801
+ ```
802
+
803
+ ### Meta Feed Ad — UGC/Testimonial Style
804
+
805
+ ```
806
+ Authentic-feeling social media content for Facebook/Instagram feed ad,
807
+ person [demographic] genuinely using/holding [product],
808
+ natural casual lighting, real-life setting,
809
+ relatable and trustworthy aesthetic, not over-produced,
810
+ candid moment captured naturally, warm authentic feel,
811
+ 4:5 portrait composition, user-generated content style,
812
+ person looking at camera or product, genuine expression,
813
+ lifestyle context that matches target audience
814
+ ```
815
+
816
+ ### Meta Feed Ad — Bold Typography
817
+
818
+ ```
819
+ Bold text-driven advertising graphic for Facebook/Instagram feed,
820
+ text "[HOOK TEXT — 6 words max]" in [bold/condensed/impact] font,
821
+ [brand colors] background, high contrast typography,
822
+ supporting visual element [product silhouette/abstract/pattern],
823
+ text dominates the frame, clean readable design,
824
+ commercial advertising quality, strong visual hierarchy,
825
+ 1:1 square composition, professional graphic design aesthetic
826
+ ```
827
+
828
+ ### Meta Stories Ad
829
+
830
+ ```
831
+ [Product/subject] for Instagram/Facebook Stories ad placement,
832
+ vertical 9:16 full-screen immersive composition,
833
+ content centered in middle 76% of frame,
834
+ avoiding top 14% (UI overlay) and bottom 10% (CTA button),
835
+ [brand colors], bold engaging visual, native stories aesthetic,
836
+ swipe-up ready with clear visual flow downward,
837
+ commercial quality blended with platform-native feel,
838
+ immediate impact in first moment of viewing
839
+ ```
840
+
841
+ ### Google Responsive Display Ad
842
+
843
+ ```
844
+ [Product/service] clean commercial photography for Google display network,
845
+ NO text overlays (Google adds text dynamically),
846
+ product as clear focal point with clean background,
847
+ [brand colors] in product and setting only,
848
+ professional studio-quality lighting, advertising grade,
849
+ works when cropped to various aspect ratios,
850
+ sharp focus, high contrast, clean edges,
851
+ [1:1 or 16:9] composition, white or neutral background
852
+ ```
853
+
854
+ ### Google Display Banner (Leaderboard)
855
+
856
+ ```
857
+ [Product/service] horizontal banner advertisement layout,
858
+ ultra-wide panoramic composition, product on [left/right],
859
+ open space on opposite side for text overlay,
860
+ [brand colors], high contrast for small display rendering,
861
+ must read clearly at 728x90 pixel display size,
862
+ clean sharp professional commercial design,
863
+ 21:9 ultrawide composition, advertising banner quality
864
+ ```
865
+
866
+ ### LinkedIn Sponsored Content
867
+
868
+ ```
869
+ [Product/service/concept] professional B2B advertising visual,
870
+ sophisticated clean aesthetic appropriate for LinkedIn,
871
+ [brand colors] with professional restraint,
872
+ thought-leadership positioning, business credibility,
873
+ not pushy or salesy — authoritative and valuable,
874
+ clean composition with space for headline copy,
875
+ 1:1 square composition, corporate-appropriate professional tone,
876
+ high-end commercial photography or clean modern illustration
877
+ ```
878
+
879
+ ### TikTok In-Feed Ad
880
+
881
+ ```
882
+ [Product/service] in authentic TikTok-native style,
883
+ NOT corporate or over-produced, real and relatable,
884
+ vertical 9:16 full-screen composition,
885
+ subject center-left of frame (right side has UI icons),
886
+ content in middle 70% (top and bottom have UI overlays),
887
+ bold engaging, trend-aware contemporary styling,
888
+ phone-camera aesthetic with good lighting,
889
+ high contrast, immediate scroll-stopping impact,
890
+ feels like organic content, not a traditional advertisement
891
+ ```
892
+
893
+ ---
894
+
895
+ ## Video Ad Specifications
896
+
897
+ ### Meta Video Ads
898
+
899
+ | Placement | Ratio | Duration | Notes |
900
+ |-----------|-------|----------|-------|
901
+ | Feed | 1:1, 4:5, 16:9 | 1-240s (recommend 15-30s) | Auto-plays muted; lead with visual hook |
902
+ | Stories/Reels | 9:16 | 1-120s (recommend 5-15s) | Full-screen vertical; capture attention in first 3s |
903
+ | In-stream | 16:9 | 5-15s (non-skippable) or 15-600s (skippable) | Hook in first 5 seconds is critical |
904
+
905
+ ### Google/YouTube Video Ads
906
+
907
+ | Format | Duration | Skippable | Notes |
908
+ |--------|----------|-----------|-------|
909
+ | Bumper | 6 seconds | No | One message, one visual — tight and focused |
910
+ | Pre-roll | 15-30s | After 5s | Must hook before skip button appears |
911
+ | Mid-roll | 15-60s | After 5s | Users more engaged (already watching content) |
912
+ | Discovery | N/A | N/A | Thumbnail + headline drives click-through |
913
+
914
+ ### TikTok Video Ads
915
+
916
+ | Format | Duration | Notes |
917
+ |--------|----------|-------|
918
+ | In-Feed | 5-60s | Recommend 9-15s; hook in first 2 seconds |
919
+ | TopView | 5-60s | Premium placement; higher production value |
920
+ | Branded Effect | Variable | Interactive AR filters/effects |
921
+
922
+ ### Video Ad Prompt Construction (Image-to-Video)
923
+
924
+ When generating video ads from still images, reference MODEL_REGISTRY.md for the correct I2V payload:
925
+
926
+ ```
927
+ Step 1: Generate the key frame using image prompt templates above
928
+ Step 2: Write a MOTION prompt (describe what moves, not the static scene):
929
+
930
+ Good motion prompt:
931
+ "Product slowly rotates to reveal label, camera gently pulls back,
932
+ soft particles float in background, lighting subtly shifts warmer"
933
+
934
+ Bad motion prompt:
935
+ "A bottle of skincare product on a marble surface with nice lighting"
936
+ (This describes the scene, not the motion — the model can already see the image)
937
+
938
+ Step 3: Choose video model from MODEL_REGISTRY.md based on content type:
939
+ - Standard ads: Kling 2.5 (default, fastest, most cost-effective)
940
+ - Hero/flagship: Run Kling 2.5 + Veo 3.1 + Sora 2 in parallel
941
+
942
+ Step 4: Set duration:
943
+ - Bumper ads: 5s (Kling) or 6s (Veo)
944
+ - Standard ads: 5-10s (Kling) or 8s (Veo/Sora)
945
+
946
+ Step 5: Set aspect ratio:
947
+ - Feed: "16:9" or "1:1" (Kling/Veo) / "landscape" (Sora)
948
+ - Stories/Reels/TikTok: "9:16" (Kling/Veo) / "portrait" (Sora)
949
+ ```
950
+
951
+ ---
952
+
953
+ ## Ad Creative for Advantage+ and Performance Max
954
+
955
+ Meta's Advantage+ and Google's Performance Max use machine learning to assemble and optimize creative from supplied assets. Generating assets for these systems requires a different approach than standard ad creative.
956
+
957
+ ### Asset Supply Strategy
958
+
959
+ Instead of generating one "perfect" ad, generate a library of components:
960
+
961
+ ```
962
+ IMAGE ASSETS (generate all of these):
963
+ ├── Product shots (3-5 variants)
964
+ │ ├── Clean white background — 1:1
965
+ │ ├── Lifestyle context — 4:5
966
+ │ ├── Close-up detail — 1:1
967
+ │ ├── In-use / action — 4:5
968
+ │ └── Flat lay / group — 1:1
969
+ │
970
+ ├── Lifestyle / contextual (3-5 variants)
971
+ │ ├── Target audience using product — 4:5
972
+ │ ├── Environmental / setting shot — 16:9
973
+ │ └── Aspirational outcome — 4:5
974
+ │
975
+ ├── Bold graphic variants (2-3 variants)
976
+ │ ├── Stat/number highlighted — 1:1
977
+ │ ├── Testimonial quote — 1:1
978
+ │ └── Offer/promotion — 1:1
979
+ │
980
+ └── All images at MULTIPLE ratios:
981
+ ├── 1:1 (Meta feed, Google display, LinkedIn)
982
+ ├── 4:5 (Meta feed optimal, maximum real estate)
983
+ ├── 9:16 (Stories, Reels, TikTok)
984
+ └── 16:9 (Google display, YouTube)
985
+
986
+ TEXT ASSETS (write all of these):
987
+ ├── Short headlines (5): 30 chars max each, varied hooks
988
+ ├── Long headlines (5): 90 chars max each, expanded value props
989
+ ├── Descriptions (5): 90 chars max each, different benefits
990
+ ├── Primary text (5): 125 chars max each, varied angles
991
+ └── CTA options: ["Shop Now", "Learn More", "Get Started", "Sign Up", "Book Now"]
992
+ ```
993
+
994
+ ### Key Rules for Algorithm-Optimized Creative
995
+
996
+ 1. **No text in images** for responsive/automated placements — the algorithm adds text
997
+ 2. **Multiple ratios** per concept — let the algorithm choose the best placement
998
+ 3. **Visual diversity** — give the algorithm options to test, not 5 near-identical images
999
+ 4. **Clean backgrounds** — automated text overlay needs space and contrast to be legible
1000
+ 5. **Product as focal point** — cropping at various ratios should not lose the product
1001
+
1002
+ ---
1003
+
1004
+ ## Style Exploration for Ad Creative
1005
+
1006
+ Before generating a full 12-ad matrix, explore visual directions. Ad creative has different style requirements than organic content.
1007
+
1008
+ ### Ad-Specific Style Exploration
1009
+
1010
+ ```
1011
+ Direction 1: Clean Commercial — Studio lighting, white/neutral backgrounds,
1012
+ product-focused, premium but approachable, classic advertising look
1013
+
1014
+ Direction 2: Lifestyle Native — Real-world context, natural lighting,
1015
+ in-use scenarios, feels like editorial content rather than ad
1016
+
1017
+ Direction 3: Bold Graphic — Strong typography, graphic design-forward,
1018
+ high contrast color blocks, statement-making, text-dominant
1019
+
1020
+ Direction 4: Social Proof Led — Person-centric, testimonial-style,
1021
+ authentic UGC aesthetic, trustworthy, relatable
1022
+
1023
+ Direction 5: Category Disruptor — Breaks conventions of your category's
1024
+ typical ad style, unexpected visual language, pattern interrupt
1025
+ ```
1026
+
1027
+ ### Style Decision for Ads
1028
+
1029
+ | If your goal is... | Start with... | Why |
1030
+ |---------------------|---------------|-----|
1031
+ | E-commerce conversions | Clean Commercial | Product clarity drives purchase |
1032
+ | Brand awareness | Category Disruptor | Standing out drives memory |
1033
+ | Lead generation | Social Proof Led | Trust drives form fills |
1034
+ | App installs | Lifestyle Native | Context shows value |
1035
+ | Retargeting | Bold Graphic | Direct offer, no subtlety needed |
1036
+
1037
+ ---
1038
+
1039
+ ## Execution Workflow
1040
+
1041
+ ### Full Campaign Workflow
1042
+
1043
+ ```
1044
+ Step 1: BRAND CONTEXT
1045
+ ├── Read ./brand/creative-kit.md
1046
+ ├── Load brand colors, typography, style direction
1047
+ ├── Identify product/service being advertised
1048
+ └── Confirm campaign objective (awareness/consideration/conversion)
1049
+
1050
+ Step 2: DEFINE TARGET PLATFORMS
1051
+ ├── Which platforms? (Meta, Google, LinkedIn, TikTok)
1052
+ ├── Which placements per platform?
1053
+ ├── Budget allocation across platforms
1054
+ └── Confirm aspect ratios needed per placement
1055
+
1056
+ Step 3: STYLE EXPLORATION (if new campaign)
1057
+ ├── Generate 5 visual directions
1058
+ ├── User selects direction or combines elements
1059
+ ├── Lock style principles for the campaign
1060
+ └── Document in campaign brief
1061
+
1062
+ Step 4: GENERATE HOOKS VIA SUBAGENT
1063
+ ├── Spawn 4 parallel hook-generator subagents (one per hook type)
1064
+ ├── Subagent prompt: pass product context + hook type
1065
+ ├── Each returns 1-2 scored hooks
1066
+ ├── Assign highest-scoring hook per type
1067
+ ├── Pain Point: [from subagent result]
1068
+ ├── Transformation: [from subagent result]
1069
+ ├── Social Proof: [from subagent result]
1070
+ └── Curiosity Gap: [from subagent result]
1071
+
1072
+ Step 5: GENERATE 12-AD MATRIX
1073
+ ├── 4 hooks x 3 formats = 12 unique ads
1074
+ ├── Each ad: prompt, on-image text, headline, primary text, CTA, tracking name
1075
+ ├── Generate at primary ratio first (usually 4:5 for Meta)
1076
+ ├── Generate platform-specific ratio variants for each winning ad
1077
+ └── Batch generate using parallel task agents
1078
+
1079
+ Step 6: POLICY COMPLIANCE CHECK
1080
+ ├── Run applicable platform policy checklist
1081
+ ├── Flag any potential violations
1082
+ ├── Adjust creative before submission
1083
+ └── Document compliance review
1084
+
1085
+ Step 7: ORGANIZE DELIVERABLES
1086
+ ├── Save to ./campaigns/{campaign}/ads/{platform}/
1087
+ ├── Generate ad matrix document
1088
+ ├── Include tracking names for analytics setup
1089
+ └── Package for upload to each platform
1090
+
1091
+ Step 8: A/B VARIANT GENERATION (after initial results)
1092
+ ├── Identify top 3 performers from matrix
1093
+ ├── Select variable to test for each
1094
+ ├── Generate 3-5 variants per winner
1095
+ └── Name systematically for tracking
1096
+ ```
1097
+
1098
+ ### Quick Workflow: Single Platform Ad
1099
+
1100
+ ```
1101
+ 1. Load brand kit
1102
+ 2. Identify platform + placement
1103
+ 3. Select hook and format
1104
+ 4. Generate using platform-specific prompt template
1105
+ 5. Run policy checklist
1106
+ 6. Save to campaign directory
1107
+ 7. Provide ad copy (headline, primary text, CTA)
1108
+ ```
1109
+
1110
+ ### Quick Workflow: Multi-Platform Adaptation
1111
+
1112
+ ```
1113
+ 1. Generate primary ad for primary platform (usually Meta Feed)
1114
+ 2. Approve the creative concept
1115
+ 3. Adapt for each additional platform:
1116
+ - Adjust aspect ratio
1117
+ - Modify safe zones in prompt
1118
+ - Adjust visual language for platform culture
1119
+ - Adjust policy compliance per platform
1120
+ 4. Save all variants to platform-specific directories
1121
+ ```
1122
+
1123
+ ---
1124
+
1125
+ ## File Output Structure
1126
+
1127
+ ### Directory Convention
1128
+
1129
+ ```
1130
+ ./campaigns/{campaign-name}/ads/
1131
+ ├── matrix/
1132
+ │ └── ad-testing-matrix.md # The 12-ad matrix document
1133
+ │
1134
+ ├── meta/
1135
+ │ ├── feed/
1136
+ │ │ ├── {hook}-{format}-1x1-v1.png
1137
+ │ │ ├── {hook}-{format}-4x5-v1.png
1138
+ │ │ └── ...
1139
+ │ ├── stories/
1140
+ │ │ ├── {hook}-{format}-9x16-v1.png
1141
+ │ │ └── ...
1142
+ │ ├── carousel/
1143
+ │ │ ├── card-1-hook-1x1.png
1144
+ │ │ ├── card-2-problem-1x1.png
1145
+ │ │ └── ...
1146
+ │ └── video/
1147
+ │ ├── {hook}-{format}-4x5-v1.mp4
1148
+ │ └── ...
1149
+ │
1150
+ ├── google/
1151
+ │ ├── display/
1152
+ │ │ ├── {concept}-300x250.png
1153
+ │ │ ├── {concept}-728x90.png
1154
+ │ │ ├── {concept}-160x600.png
1155
+ │ │ └── ...
1156
+ │ ├── responsive/
1157
+ │ │ ├── {concept}-landscape-16x9.png
1158
+ │ │ ├── {concept}-square-1x1.png
1159
+ │ │ └── ...
1160
+ │ └── youtube/
1161
+ │ ├── thumbnail-{concept}-16x9.png
1162
+ │ └── ...
1163
+ │
1164
+ ├── linkedin/
1165
+ │ ├── sponsored/
1166
+ │ │ ├── {concept}-landscape-16x9.png
1167
+ │ │ ├── {concept}-square-1x1.png
1168
+ │ │ └── ...
1169
+ │ ├── inmail/
1170
+ │ │ └── banner-{concept}-300x250.png
1171
+ │ └── carousel/
1172
+ │ ├── card-1-{concept}-1x1.png
1173
+ │ └── ...
1174
+ │
1175
+ ├── tiktok/
1176
+ │ ├── in-feed/
1177
+ │ │ ├── {hook}-{format}-9x16-v1.png
1178
+ │ │ └── ...
1179
+ │ └── video/
1180
+ │ ├── {hook}-{format}-9x16-v1.mp4
1181
+ │ └── ...
1182
+ │
1183
+ ├── variants/
1184
+ │ ├── {base-ad}-var-a-{change}.png
1185
+ │ ├── {base-ad}-var-b-{change}.png
1186
+ │ └── ...
1187
+ │
1188
+ └── exports/
1189
+ └── {platform}-upload-ready/ # Final packaged per platform
1190
+ ```
1191
+
1192
+ ### File Naming Convention
1193
+
1194
+ ```
1195
+ {hook-type}-{format-type}-{ratio}-v{version}.{ext}
1196
+
1197
+ Examples:
1198
+ pain-product-hero-4x5-v1.png
1199
+ transform-ugc-style-9x16-v1.png
1200
+ social-proof-bold-type-1x1-v1.png
1201
+ curiosity-product-hero-16x9-v1.png
1202
+ pain-product-hero-4x5-var-a-warm-bg.png
1203
+ transform-ugc-style-9x16-var-b-diff-person.png
1204
+ ```
1205
+
1206
+ ### Tracking Name Convention
1207
+
1208
+ Every ad gets a systematic tracking name for analytics:
1209
+
1210
+ ```
1211
+ {campaign}-{hook}-{format}-{platform}-v{version}
1212
+
1213
+ Examples:
1214
+ skincare-q1-pain-hero-meta-v1
1215
+ skincare-q1-transform-ugc-meta-v1
1216
+ skincare-q1-proof-bold-google-v1
1217
+ skincare-q1-curiosity-hero-tiktok-v1
1218
+ skincare-q1-pain-hero-meta-var-a
1219
+ ```
1220
+
1221
+ Use these as UTM campaign parameters, ad names in platform dashboards, and file identifiers.
1222
+
1223
+ ---
1224
+
1225
+ ## Cross-Platform Adaptation Rules
1226
+
1227
+ When the same ad concept needs to work across platforms, adapt rather than simply resize.
1228
+
1229
+ ### Meta to Google
1230
+
1231
+ | Change | Why |
1232
+ |--------|-----|
1233
+ | Remove baked-in text for responsive display ads | Google overlays text dynamically |
1234
+ | Increase contrast and sharpness | Display ads render at small sizes |
1235
+ | Simplify composition | Must read at 300x250 or smaller |
1236
+ | Generate at multiple fixed sizes | Google display needs specific pixel dimensions |
1237
+
1238
+ ### Meta to LinkedIn
1239
+
1240
+ | Change | Why |
1241
+ |--------|-----|
1242
+ | Tone down aggressive urgency | Professional audience rejects pushy |
1243
+ | Replace emotional hooks with data/insight hooks | LinkedIn values substance |
1244
+ | Shift from lifestyle to business context | Professional environment |
1245
+ | Increase sophistication of visual treatment | LinkedIn expects polished |
1246
+
1247
+ ### Meta to TikTok
1248
+
1249
+ | Change | Why |
1250
+ |--------|-----|
1251
+ | Reduce production polish | Over-produced = ad blindness on TikTok |
1252
+ | Shift to phone-camera aesthetic | Native content outperforms |
1253
+ | Move subject center-left | Right side has UI icons |
1254
+ | Adjust safe zones | Different UI overlay zones than Meta Stories |
1255
+ | Lead with movement/personality | Static polished images underperform |
1256
+
1257
+ ### Google to Meta
1258
+
1259
+ | Change | Why |
1260
+ |--------|-----|
1261
+ | Add text overlays (keep under 20%) | Meta allows and benefits from headline text |
1262
+ | Increase emotional appeal | Social feed rewards emotional response |
1263
+ | Shift from product-only to lifestyle | Social context drives engagement |
1264
+ | Expand from standard sizes to social ratios | 4:5, 9:16 instead of 300x250 |
1265
+
1266
+ ### LinkedIn to TikTok (extreme adaptation)
1267
+
1268
+ | Change | Why |
1269
+ |--------|-----|
1270
+ | Complete visual language shift | Opposite ends of the formality spectrum |
1271
+ | Replace authority positioning with authenticity | TikTok values realness over credibility |
1272
+ | Shift from business value to personal benefit | Different motivation framework |
1273
+ | Move from polished to raw aesthetic | TikTok native style |
1274
+
1275
+ ---
1276
+
1277
+ ## Ad Copy Integration
1278
+
1279
+ Each ad creative needs accompanying copy. Generate these text assets alongside the visual.
1280
+
1281
+ ### Meta Ad Copy Fields
1282
+
1283
+ ```markdown
1284
+ **Primary Text (125 chars for first line before "See More"):**
1285
+ [Hook that stops the scroll — same angle as the visual hook]
1286
+
1287
+ **Headline (40 chars recommended):**
1288
+ [Benefit-driven, specific, no clickbait]
1289
+
1290
+ **Description (30 chars):**
1291
+ [Supporting detail or urgency element]
1292
+
1293
+ **CTA Button:**
1294
+ [Shop Now / Learn More / Sign Up / Book Now / Download / Get Offer]
1295
+ ```
1296
+
1297
+ ### Google Ad Copy Fields
1298
+
1299
+ ```markdown
1300
+ **Short Headlines (30 chars max each, provide 5):**
1301
+ 1. [Benefit-focused]
1302
+ 2. [Feature-focused]
1303
+ 3. [Social proof]
1304
+ 4. [Question/curiosity]
1305
+ 5. [Direct CTA]
1306
+
1307
+ **Long Headlines (90 chars max each, provide 2):**
1308
+ 1. [Expanded value proposition]
1309
+ 2. [Problem-solution format]
1310
+
1311
+ **Descriptions (90 chars max each, provide 5):**
1312
+ 1. [Primary benefit]
1313
+ 2. [Feature detail]
1314
+ 3. [Social proof / authority]
1315
+ 4. [Urgency / offer]
1316
+ 5. [Different audience angle]
1317
+ ```
1318
+
1319
+ ### LinkedIn Ad Copy Fields
1320
+
1321
+ ```markdown
1322
+ **Introductory Text (600 chars max, recommend 150):**
1323
+ [Insight-led opening, professional tone, value proposition]
1324
+
1325
+ **Headline (70 chars recommended):**
1326
+ [Outcome-focused, professional, no hype]
1327
+
1328
+ **Description (100 chars):**
1329
+ [Supporting proof or detail]
1330
+
1331
+ **CTA Button:**
1332
+ [Learn More / Download / Sign Up / Register / Apply Now]
1333
+ ```
1334
+
1335
+ ### TikTok Ad Copy Fields
1336
+
1337
+ ```markdown
1338
+ **Ad Text (100 chars for best engagement):**
1339
+ [Short, punchy, native voice, emoji OK, trend-aware]
1340
+
1341
+ **Display Name:**
1342
+ [Brand name or campaign-specific handle]
1343
+
1344
+ **CTA Button:**
1345
+ [Shop Now / Learn More / Sign Up / Download / Book Now]
1346
+ ```
1347
+
1348
+ ---
1349
+
1350
+ ## Batch Generation Pattern
1351
+
1352
+ For producing a full 12-ad matrix efficiently, use parallel generation.
1353
+
1354
+ ### Parallel Generation Strategy
1355
+
1356
+ ```
1357
+ Wave 1 (Ads 1-4): Pain Point hook x all 3 formats + 1 extra
1358
+ ├── Task 1: Pain Point x Product Hero — generate at 4:5
1359
+ ├── Task 2: Pain Point x UGC/Testimonial — generate at 4:5
1360
+ ├── Task 3: Pain Point x Bold Typography — generate at 1:1
1361
+ ├── Task 4: Transformation x Product Hero — generate at 4:5
1362
+ [Wait for wave 1 to complete — review quality]
1363
+
1364
+ Wave 2 (Ads 5-8): Remaining Transformation + Social Proof
1365
+ ├── Task 5: Transformation x UGC/Testimonial — generate at 4:5
1366
+ ├── Task 6: Transformation x Bold Typography — generate at 1:1
1367
+ ├── Task 7: Social Proof x Product Hero — generate at 4:5
1368
+ ├── Task 8: Social Proof x UGC/Testimonial — generate at 4:5
1369
+ [Wait for wave 2 to complete — review quality]
1370
+
1371
+ Wave 3 (Ads 9-12): Remaining Social Proof + Curiosity Gap
1372
+ ├── Task 9: Social Proof x Bold Typography — generate at 1:1
1373
+ ├── Task 10: Curiosity Gap x Product Hero — generate at 4:5
1374
+ ├── Task 11: Curiosity Gap x UGC/Testimonial — generate at 4:5
1375
+ ├── Task 12: Curiosity Gap x Bold Typography — generate at 1:1
1376
+ [Wait for wave 3 to complete — review quality]
1377
+
1378
+ Wave 4 (Ratio Variants): Top performers at additional ratios
1379
+ ├── Generate top 6 ads at 1:1 (if primary was 4:5)
1380
+ ├── Generate top 6 ads at 9:16 (Stories/TikTok)
1381
+ ├── Generate top 6 ads at 16:9 (YouTube/Google)
1382
+ └── Generate Google Display sizes for top 3
1383
+ ```
1384
+
1385
+ ### Batch Cost Estimate
1386
+
1387
+ | Scope | Asset Count | Estimated Cost | Estimated Time |
1388
+ |-------|-------------|---------------|----------------|
1389
+ | 12-ad matrix (primary ratio only) | 12 images | ~$0.36-0.48 | ~3-5 min |
1390
+ | 12-ad matrix + 3 additional ratios | 48 images | ~$1.44-1.92 | ~10-15 min |
1391
+ | Matrix + ratio variants + A/B variants (3 per top 3) | ~60 images | ~$1.80-2.40 | ~12-18 min |
1392
+ | Full production (matrix + variants + video ads) | ~70 images + 6 videos | ~$5-10 | ~20-30 min |
1393
+
1394
+ ---
1395
+
1396
+ ## Integration with Creative Engine
1397
+
1398
+ ```
1399
+ AD CREATIVE PIPELINE
1400
+
1401
+ ┌─────────────────────────────────────────┐
1402
+ │ Request: "ad creative" / "paid ads" │
1403
+ │ -> Route from creative/SKILL.md │
1404
+ └─────────────────────────────────────────┘
1405
+ │
1406
+ v
1407
+ ┌─────────────────────────────────────────┐
1408
+ │ LOAD BRAND CONTEXT │
1409
+ │ -> Read ./brand/creative-kit.md │
1410
+ │ -> Extract brand colors, style, tone │
1411
+ │ -> Identify product/service │
1412
+ │ -> Confirm campaign objective │
1413
+ └─────────────────────────────────────────┘
1414
+ │
1415
+ v
1416
+ ┌─────────────────────────────────────────┐
1417
+ │ ad-creative mode (THIS FILE) │
1418
+ │ -> Define target platforms │
1419
+ │ -> Run style exploration (if new) │
1420
+ │ -> Build 4 hooks for this product │
1421
+ │ -> Generate 12-ad testing matrix │
1422
+ │ -> Generate platform ratio variants │
1423
+ │ -> Run policy compliance checks │
1424
+ │ -> Save all to campaign directory │
1425
+ └─────────────────────────────────────────┘
1426
+ │
1427
+ ┌───────────┼───────────┐
1428
+ v v v
1429
+ ┌──────────────┐ ┌──────────┐ ┌──────────────┐
1430
+ │ Static Ads │ │ Video Ads│ │ Copy Package │
1431
+ │ -> Nano │ │ -> Kling │ │ -> Headlines │
1432
+ │ Banana │ │ 2.5 │ │ -> Primary │
1433
+ │ Pro for │ │ for │ │ text │
1434
+ │ all │ │ default │ │ -> CTAs │
1435
+ │ stills │ │ -> Hero: │ │ -> Per │
1436
+ │ │ │ parallel│ │ platform │
1437
+ │ │ │ 3-model │ │ │
1438
+ └──────────────┘ └──────────┘ └──────────────┘
1439
+ │ │ │
1440
+ v v v
1441
+ ┌─────────────────────────────────────────┐
1442
+ │ DELIVERABLES │
1443
+ │ -> ./campaigns/{campaign}/ads/ │
1444
+ │ -> Ad testing matrix document │
1445
+ │ -> Platform-organized assets │
1446
+ │ -> Tracking names for analytics │
1447
+ │ -> A/B variant sets (post-results) │
1448
+ └─────────────────────────────────────────┘
1449
+ ```
1450
+
1451
+ ---
1452
+
1453
+ ## Handoff Protocols
1454
+
1455
+ ### Receiving from creative/SKILL.md
1456
+
1457
+ ```yaml
1458
+ Receive:
1459
+ campaign_name: "{campaign identifier}"
1460
+ product_or_service: "{what is being advertised}"
1461
+ target_audience: "{who the ads are reaching}"
1462
+ campaign_objective: "awareness / consideration / conversion"
1463
+ platforms: ["Meta", "Google", "LinkedIn", "TikTok"]
1464
+ budget_level: "low / medium / high"
1465
+ existing_creative: "{path to any existing creative to reference}"
1466
+ brand_kit: "./brand/creative-kit.md"
1467
+ specific_offer: "{if promoting a specific offer/discount}"
1468
+ competitor_ads: "{any competitor ad references}"
1469
+ ```
1470
+
1471
+ ### Returning
1472
+
1473
+ ```yaml
1474
+ Return:
1475
+ status: "complete"
1476
+ matrix_document: "./campaigns/{campaign}/ads/matrix/ad-testing-matrix.md"
1477
+ deliverables:
1478
+ meta:
1479
+ feed: ["./campaigns/{campaign}/ads/meta/feed/{files}"]
1480
+ stories: ["./campaigns/{campaign}/ads/meta/stories/{files}"]
1481
+ google:
1482
+ display: ["./campaigns/{campaign}/ads/google/display/{files}"]
1483
+ responsive: ["./campaigns/{campaign}/ads/google/responsive/{files}"]
1484
+ linkedin:
1485
+ sponsored: ["./campaigns/{campaign}/ads/linkedin/sponsored/{files}"]
1486
+ tiktok:
1487
+ in_feed: ["./campaigns/{campaign}/ads/tiktok/in-feed/{files}"]
1488
+ ad_copy_package:
1489
+ meta: "{headlines, primary text, descriptions, CTAs}"
1490
+ google: "{short headlines, long headlines, descriptions}"
1491
+ linkedin: "{intro text, headline, description}"
1492
+ tiktok: "{ad text, CTA}"
1493
+ tracking_names: ["{list of all tracking names for analytics setup}"]
1494
+ variant_sets_available: true
1495
+ policy_review: "passed / flagged items: [list]"
1496
+ total_assets_generated: "{count}"
1497
+ estimated_cost: "{total generation cost}"
1498
+ ```
1499
+
1500
+ ### Receiving from Other Skills
1501
+
1502
+ The ad creative mode can receive briefs from:
1503
+
1504
+ ```yaml
1505
+ # From brand-voice skill
1506
+ voice_direction:
1507
+ tone: "{brand tone for ad copy}"
1508
+ vocabulary: "{preferred/avoided words}"
1509
+ messaging_pillars: ["{key messages}"]
1510
+
1511
+ # From direct-response-copy skill
1512
+ copy_brief:
1513
+ hooks: ["{pre-written hooks to use}"]
1514
+ value_propositions: ["{key selling points}"]
1515
+ social_proof_points: ["{testimonials, stats, awards}"]
1516
+ offers: ["{specific offers with terms}"]
1517
+
1518
+ # From positioning-angles skill
1519
+ positioning:
1520
+ primary_angle: "{main positioning}"
1521
+ differentiators: ["{what makes this unique}"]
1522
+ competitor_weaknesses: ["{gaps to exploit}"]
1523
+ audience_pain_points: ["{validated pain points}"]
1524
+ ```
1525
+
1526
+ ---
1527
+
1528
+ ## Output Format
1529
+
1530
+ ### Single Ad Output
1531
+
1532
+ ```markdown
1533
+ ## Ad Generated
1534
+
1535
+ **Platform:** [platform]
1536
+ **Placement:** [feed/stories/display/etc.]
1537
+ **Aspect Ratio:** [ratio]
1538
+ **Hook:** [hook type]
1539
+ **Format:** [format type]
1540
+
1541
+ **Image URL:** [URL]
1542
+ **Saved To:** ./campaigns/{campaign}/ads/{platform}/{placement}/{filename}.png
1543
+
1544
+ **On-Image Text:** [text rendered in the image]
1545
+ **Headline:** [platform headline field]
1546
+ **Primary Text:** [body copy]
1547
+ **CTA:** [button text]
1548
+ **Tracking Name:** [systematic tracking name]
1549
+
1550
+ **Policy Check:**
1551
+ - [x] Content compliant
1552
+ - [x] No misleading claims
1553
+ - [x] Proper disclosure
1554
+ - [x] Image quality meets platform standards
1555
+
1556
+ **Feedback?**
1557
+ - Does the hook stop your scroll?
1558
+ - Does the visual match the hook angle?
1559
+ - Generate variants of this concept?
1560
+ - Adapt to additional platforms?
1561
+ ```
1562
+
1563
+ ### Full Matrix Output
1564
+
1565
+ ```markdown
1566
+ ## Ad Testing Matrix Generated
1567
+
1568
+ **Campaign:** {campaign-name}
1569
+ **Product:** {product/service}
1570
+ **Platforms:** {list}
1571
+ **Total Ads:** 12 (4 hooks x 3 formats)
1572
+ **Total Assets:** {count including ratio variants}
1573
+ **Estimated Generation Cost:** {cost}
1574
+
1575
+ ### Matrix Overview
1576
+
1577
+ | # | Hook | Format | Primary Ratio | Tracking Name |
1578
+ |---|------|--------|--------------|---------------|
1579
+ | 1 | Pain Point | Product Hero | 4:5 | {tracking} |
1580
+ | 2 | Pain Point | UGC/Testimonial | 4:5 | {tracking} |
1581
+ | 3 | Pain Point | Bold Typography | 1:1 | {tracking} |
1582
+ | 4 | Transformation | Product Hero | 4:5 | {tracking} |
1583
+ | 5 | Transformation | UGC/Testimonial | 4:5 | {tracking} |
1584
+ | 6 | Transformation | Bold Typography | 1:1 | {tracking} |
1585
+ | 7 | Social Proof | Product Hero | 4:5 | {tracking} |
1586
+ | 8 | Social Proof | UGC/Testimonial | 4:5 | {tracking} |
1587
+ | 9 | Social Proof | Bold Typography | 1:1 | {tracking} |
1588
+ | 10 | Curiosity Gap | Product Hero | 4:5 | {tracking} |
1589
+ | 11 | Curiosity Gap | UGC/Testimonial | 4:5 | {tracking} |
1590
+ | 12 | Curiosity Gap | Bold Typography | 1:1 | {tracking} |
1591
+
1592
+ ### All Assets
1593
+
1594
+ **Matrix Document:** ./campaigns/{campaign}/ads/matrix/ad-testing-matrix.md
1595
+ **Meta Assets:** ./campaigns/{campaign}/ads/meta/
1596
+ **Google Assets:** ./campaigns/{campaign}/ads/google/
1597
+ **LinkedIn Assets:** ./campaigns/{campaign}/ads/linkedin/
1598
+ **TikTok Assets:** ./campaigns/{campaign}/ads/tiktok/
1599
+
1600
+ ### Testing Recommendation
1601
+
1602
+ Phase 1: Run all 12 with equal budget (1-2 weeks)
1603
+ Phase 2: Kill bottom 6, redistribute to top 6 (1-2 weeks)
1604
+ Phase 3: A/B variants of top 3 performers (ongoing)
1605
+
1606
+ ### Next Steps
1607
+ - [ ] Upload assets to platform ad managers
1608
+ - [ ] Set up tracking with provided tracking names
1609
+ - [ ] Configure A/B tests
1610
+ - [ ] Request A/B variants after Phase 1 results
1611
+ ```
1612
+
1613
+ ---
1614
+
1615
+ ## Common Issues and Solutions
1616
+
1617
+ | Issue | Cause | Solution |
1618
+ |-------|-------|----------|
1619
+ | Text too large / covers too much image | Prompt does not constrain text size | Add "small subtle text" or "text in lower third only" |
1620
+ | Ad looks like organic content, not an ad | Missing commercial quality markers | Add "commercial advertising photography, professional" |
1621
+ | Ad looks too much like a traditional ad | Over-produced for platform | Add "native, authentic, blended with organic content" |
1622
+ | Policy rejection for text-to-image ratio | Too much text baked into image | Reduce on-image text to 6 words max, use ad platform text fields instead |
1623
+ | Google responsive ad has text collision | Text baked into image + Google overlay | Generate clean images WITHOUT text for responsive placements |
1624
+ | Safe zone violation | Content in UI overlay area | Specify safe zone avoidance explicitly in the prompt |
1625
+ | All 12 matrix ads look similar | Not enough variation between formats | Make Product Hero, UGC, and Bold Typography genuinely different visual approaches |
1626
+ | A/B variants change too many things | Multiple variables changed at once | Strictly change ONE element per variant |
1627
+ | TikTok ad feels like a Facebook ad | Same visual language across platforms | Rewrite prompt with TikTok-native aesthetic descriptors |
1628
+ | LinkedIn ad too aggressive | Consumer marketing tone in B2B context | Shift to insight-led, authoritative, non-pushy language |
1629
+ | Display ads unreadable at small sizes | Composition too complex | Simplify to ONE focal point and high contrast |
1630
+ | Tracking names inconsistent | No naming convention followed | Use: {campaign}-{hook}-{format}-{platform}-v{version} |
1631
+
1632
+ ---
1633
+
1634
+ ## Tips from Experience
1635
+
1636
+ ### What Works
1637
+ 1. **Matrix over random** — structured testing reveals patterns that random creation cannot
1638
+ 2. **Hook variation matters most** — the psychological angle of the hook drives more performance difference than visual format
1639
+ 3. **Native over polished on social** — especially TikTok and Instagram Stories
1640
+ 4. **Text outside the image** — use platform text fields rather than baking text into images, especially for Advantage+ and Performance Max
1641
+ 5. **Multiple ratios from the start** — generating at one ratio then cropping produces worse results than generating natively at each ratio
1642
+ 6. **Policy check before generation** — cheaper to adjust a prompt than regenerate a rejected ad
1643
+ 7. **Tracking names from day one** — you cannot optimize what you cannot measure
1644
+ 8. **Parallel generation** — batch producing the full matrix is faster and cheaper than one-at-a-time
1645
+
1646
+ ### What Does Not Work
1647
+ 1. **One ad, one platform** — the minimum viable test is 4 ads (4 hooks x 1 format)
1648
+ 2. **Resizing instead of adapting** — a great Meta ad is a bad TikTok ad if you just resize it
1649
+ 3. **Ignoring safe zones** — your headline covered by the CTA button is a wasted impression
1650
+ 4. **Testing everything at once** — change one variable per A/B test or learn nothing
1651
+ 5. **Skipping the brand kit** — inconsistent visual identity across ads looks unprofessional
1652
+ 6. **Generic hooks** — "Check this out!" is not a hook. Be specific to the audience pain/desire
1653
+ 7. **Copy/paste across platforms** — what is professional on LinkedIn is boring on TikTok
1654
+ 8. **Perfect is the enemy of tested** — a shipped 12-ad matrix beats a single "perfect" ad that took three weeks
1655
+
1656
+ ### The 80/20
1657
+
1658
+ 80% of ad creative performance comes from:
1659
+ 1. **The right hook** for the right audience
1660
+ 2. **Platform-native visual language** (not resized generic creative)
1661
+ 3. **Clean product/value clarity** (viewers know what they are looking at instantly)
1662
+ 4. **Systematic testing** (structured matrix, not random guessing)
1663
+
1664
+ Get these four right and your paid creative will outperform most competitors regardless of budget.
1665
+
1666
+ ---
1667
+
1668
+ ## Quick Reference: Common Workflows
1669
+
1670
+ ### "Generate ads for my product across all platforms"
1671
+
1672
+ ```
1673
+ 1. Load brand kit
1674
+ 2. Define 4 hooks specific to the product
1675
+ 3. Generate 12-ad matrix (4 hooks x 3 formats)
1676
+ 4. Primary generation at Meta Feed ratio (4:5)
1677
+ 5. Generate ratio variants for each platform
1678
+ 6. Run policy checklists per platform
1679
+ 7. Write ad copy per platform
1680
+ 8. Save to ./campaigns/{campaign}/ads/{platform}/
1681
+ 9. Deliver matrix document with tracking names
1682
+ ```
1683
+
1684
+ ### "I need Meta ads specifically"
1685
+
1686
+ ```
1687
+ 1. Load brand kit
1688
+ 2. Define 4 hooks
1689
+ 3. Generate 12-ad matrix at 4:5 (feed) and 9:16 (stories)
1690
+ 4. Run Meta policy checklist
1691
+ 5. Write primary text, headlines, descriptions, CTAs
1692
+ 6. Save to ./campaigns/{campaign}/ads/meta/
1693
+ 7. Include Advantage+ asset variants if requested
1694
+ ```
1695
+
1696
+ ### "Generate Google Display ads"
1697
+
1698
+ ```
1699
+ 1. Load brand kit
1700
+ 2. Generate at priority sizes: 300x250, 728x90, 160x600
1701
+ 3. Use clean product images WITHOUT text for responsive
1702
+ 4. Generate at 1:1 and 16:9 for responsive display
1703
+ 5. Run Google policy checklist
1704
+ 6. Write short/long headlines and descriptions
1705
+ 7. Save to ./campaigns/{campaign}/ads/google/display/
1706
+ ```
1707
+
1708
+ ### "Create TikTok ad creative"
1709
+
1710
+ ```
1711
+ 1. Load brand kit
1712
+ 2. Define hooks (emphasize authenticity/relatability over authority)
1713
+ 3. Generate at 9:16 with TikTok-native aesthetic
1714
+ 4. Ensure safe zones are respected (top, bottom, right)
1715
+ 5. Run TikTok policy checklist
1716
+ 6. Write punchy, native-voice ad text
1717
+ 7. Save to ./campaigns/{campaign}/ads/tiktok/in-feed/
1718
+ 8. Consider video ads for best TikTok performance
1719
+ ```
1720
+
1721
+ ### "Generate A/B variants of my winning ad"
1722
+
1723
+ ```
1724
+ 1. Identify the winning ad and its exact prompt
1725
+ 2. Decide which variable to test (background, angle, text, color, etc.)
1726
+ 3. Generate 3-5 variants changing ONLY that variable
1727
+ 4. Keep all other prompt elements identical
1728
+ 5. Name with variant convention: {base}-var-{letter}-{change}
1729
+ 6. Save to ./campaigns/{campaign}/ads/variants/
1730
+ 7. Set up tracking for each variant
1731
+ ```
1732
+
1733
+ ### "I need an ad for a specific platform and placement"
1734
+
1735
+ ```
1736
+ 1. Load brand kit
1737
+ 2. Look up platform specs in this file (ratios, safe zones, policies)
1738
+ 3. Select hook and format
1739
+ 4. Use the platform-specific prompt template
1740
+ 5. Generate at the correct ratio
1741
+ 6. Run platform policy checklist
1742
+ 7. Write platform-appropriate ad copy
1743
+ 8. Save to ./campaigns/{campaign}/ads/{platform}/{placement}/
1744
+ ```
1745
+
1746
+ ---
1747
+
1748
+ *This mode is the paid advertising creative system for Vibe Marketing Skills v2. Every ad image, every video ad, every testing matrix, and every A/B variant flows through this engine. Feed it a product and an audience — it produces a structured, policy-compliant, platform-optimized ad testing program.*