@jairodri/huckleberry-cli 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/agents/cos.json +2 -5
- package/agents/hermes/AGENTS.md +25 -49
- package/agents/hermes/fix-kimaki/SKILL.md +19 -92
- package/agents/hermes/hermes-fixer.md +44 -74
- package/agents/hermes.json +6 -18
- package/kanban/SKILL.md +18 -18
- package/kanban/package.json +1 -1
- package/kanban/src/dispatcher.mjs +1 -1
- package/kanban/templates/blog-social-campaign.yaml +6 -2
- package/kanban/templates/social-campaign.yaml +9 -4
- package/mcp/jev-calibration.mjs +335 -0
- package/mcp/jev-client.mjs +119 -0
- package/mcp/jev-thresholds.json +27 -0
- package/package.json +13 -9
- package/scripts/doctor-watchdog.sh +73 -0
- package/scripts/install-services.sh +34 -27
- package/scripts/self-improve-weekly.sh +34 -0
- package/scripts/sync-skills.mjs +121 -0
- package/skills/ab-test-setup/SKILL.md +266 -0
- package/skills/ab-test-setup/evals/evals.json +105 -0
- package/skills/ab-test-setup/references/sample-size-guide.md +263 -0
- package/skills/ab-test-setup/references/test-templates.md +277 -0
- package/skills/agent-reach/SKILL.md +132 -0
- package/skills/agent-reach/references/career.md +29 -0
- package/skills/agent-reach/references/dev.md +62 -0
- package/skills/agent-reach/references/search.md +33 -0
- package/skills/agent-reach/references/social.md +232 -0
- package/skills/agent-reach/references/video.md +130 -0
- package/skills/agent-reach/references/web.md +50 -0
- package/skills/ai-agent-seo/SKILL.md +450 -0
- package/skills/ai-cold-email-intelligence/SKILL.md +54 -0
- package/skills/ai-cold-email-intelligence/references/prompts.md +21 -0
- package/skills/ai-consensus-builder/SKILL.md +324 -0
- package/skills/ai-seo/SKILL.md +399 -0
- package/skills/ai-seo/evals/evals.json +90 -0
- package/skills/ai-seo/references/content-patterns.md +284 -0
- package/skills/ai-seo/references/platform-ranking-factors.md +152 -0
- package/skills/ai-visibility-audit/SKILL.md +322 -0
- package/skills/analytics-tracking/SKILL.md +309 -0
- package/skills/analytics-tracking/evals/evals.json +90 -0
- package/skills/analytics-tracking/references/event-library.md +260 -0
- package/skills/analytics-tracking/references/ga4-implementation.md +300 -0
- package/skills/analytics-tracking/references/gtm-implementation.md +390 -0
- package/skills/article-generator/SKILL.md +216 -0
- package/skills/auto-indexing/SKILL.md +179 -0
- package/skills/auto-indexing/scripts/auto-indexing.js +257 -0
- package/skills/auto-skill/SKILL.md +151 -0
- package/skills/auto-skill/correction-queue.js +102 -0
- package/skills/auto-skill/dedup.js +97 -0
- package/skills/auto-skill/skill-router.js +224 -0
- package/skills/autoresearch/SKILL.md +334 -0
- package/skills/autoresearch/autoresearch-autoresearch/SKILL.md.baseline +329 -0
- package/skills/autoresearch/autoresearch-autoresearch/changelog.md +34 -0
- package/skills/autoresearch/autoresearch-autoresearch/dashboard.html +116 -0
- package/skills/autoresearch/autoresearch-autoresearch/evals.md +39 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.json +44 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.tsv +3 -0
- package/skills/autoresearch/eval-guide.md +121 -0
- package/skills/b2b-cold-outreach/SKILL.md +322 -0
- package/skills/birdclaw/SKILL.md +82 -0
- package/skills/brainstorm/SKILL.md +168 -0
- package/skills/brand-kit-playground/SKILL.md +312 -0
- package/skills/brand-kit-playground/references/html-architecture.md +316 -0
- package/skills/brand-kit-playground/references/steal-patterns.md +88 -0
- package/skills/brand-voice/SKILL.md +223 -0
- package/skills/brand-voice/references/honesty-as-positioning.md +60 -0
- package/skills/brand-voice/references/voice-modes.md +1158 -0
- package/skills/business-advisory-council/README.md +136 -0
- package/skills/business-advisory-council/SKILL.md +94 -0
- package/skills/business-advisory-council/business-advisory-council.py +492 -0
- package/skills/business-advisory-council/discord-components-decision.json +8 -0
- package/skills/business-advisory-council/examples/steve-conley-partnership.json +6 -0
- package/skills/business-advisory-council/steve-conley-call-brief.json +6 -0
- package/skills/churn-prevention/SKILL.md +305 -0
- package/skills/churn-prevention/evals/evals.json +93 -0
- package/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/claw-compactor/LICENSE +21 -0
- package/skills/claw-compactor/README.md +459 -0
- package/skills/claw-compactor/SKILL.md +329 -0
- package/skills/claw-compactor/benchmark/RESULTS.md +104 -0
- package/skills/claw-compactor/benchmark/__init__.py +1 -0
- package/skills/claw-compactor/benchmark/compressors.py +520 -0
- package/skills/claw-compactor/benchmark/data/sample_01_devops.json +82 -0
- package/skills/claw-compactor/benchmark/data/sample_02_trading.json +54 -0
- package/skills/claw-compactor/benchmark/data/sample_03_ml_short.json +38 -0
- package/skills/claw-compactor/benchmark/data/sample_04_mixed_long.json +318 -0
- package/skills/claw-compactor/benchmark/data/sample_05_sysadmin.json +56 -0
- package/skills/claw-compactor/benchmark/evaluate.py +278 -0
- package/skills/claw-compactor/benchmark/report.py +241 -0
- package/skills/claw-compactor/benchmark/results/benchmark_results.json +405 -0
- package/skills/claw-compactor/benchmark/run_benchmark.py +238 -0
- package/skills/claw-compactor/engram.yaml +49 -0
- package/skills/claw-compactor/proxy/README.md +87 -0
- package/skills/claw-compactor/proxy/dashboard.html +804 -0
- package/skills/claw-compactor/proxy/event-log.mjs +213 -0
- package/skills/claw-compactor/proxy/fair-queue.mjs +288 -0
- package/skills/claw-compactor/proxy/metrics-store.mjs +425 -0
- package/skills/claw-compactor/proxy/package-lock.json +125 -0
- package/skills/claw-compactor/proxy/package.json +15 -0
- package/skills/claw-compactor/proxy/portal.html +360 -0
- package/skills/claw-compactor/proxy/process-registry.mjs +447 -0
- package/skills/claw-compactor/proxy/rate-limiter.mjs +117 -0
- package/skills/claw-compactor/proxy/redis-client.mjs +75 -0
- package/skills/claw-compactor/proxy/retry.mjs +182 -0
- package/skills/claw-compactor/proxy/server.mjs +2100 -0
- package/skills/claw-compactor/proxy/session-affinity.mjs +177 -0
- package/skills/claw-compactor/proxy/start.sh +23 -0
- package/skills/claw-compactor/proxy/test/event-log.test.mjs +237 -0
- package/skills/claw-compactor/proxy/test/helpers.mjs +103 -0
- package/skills/claw-compactor/proxy/test/integration.test.mjs +297 -0
- package/skills/claw-compactor/proxy/test/metrics-store.test.mjs +243 -0
- package/skills/claw-compactor/proxy/test/process-registry.test.mjs +390 -0
- package/skills/claw-compactor/proxy/test/rate-limiter.test.mjs +121 -0
- package/skills/claw-compactor/proxy/test/redis-client.test.mjs +62 -0
- package/skills/claw-compactor/proxy/test/token-tracker.test.mjs +200 -0
- package/skills/claw-compactor/proxy/token-tracker.mjs +482 -0
- package/skills/claw-compactor/pyproject.toml +26 -0
- package/skills/claw-compactor/references/README.md +44 -0
- package/skills/claw-compactor/references/architecture.md +197 -0
- package/skills/claw-compactor/references/benchmarks.md +94 -0
- package/skills/claw-compactor/references/compression-prompts.md +39 -0
- package/skills/claw-compactor/references/compression-techniques.md +219 -0
- package/skills/claw-compactor/references/testing.md +160 -0
- package/skills/claw-compactor/scripts/audit_memory.py +216 -0
- package/skills/claw-compactor/scripts/compress_memory.py +236 -0
- package/skills/claw-compactor/scripts/compressed_context.py +280 -0
- package/skills/claw-compactor/scripts/dedup_memory.py +147 -0
- package/skills/claw-compactor/scripts/dictionary_compress.py +170 -0
- package/skills/claw-compactor/scripts/engram-auto.sh +152 -0
- package/skills/claw-compactor/scripts/engram_auto.py +695 -0
- package/skills/claw-compactor/scripts/engram_cli.py +474 -0
- package/skills/claw-compactor/scripts/estimate_tokens.py +131 -0
- package/skills/claw-compactor/scripts/generate_summary_tiers.py +292 -0
- package/skills/claw-compactor/scripts/lib/__init__.py +34 -0
- package/skills/claw-compactor/scripts/lib/config.py +289 -0
- package/skills/claw-compactor/scripts/lib/dedup.py +119 -0
- package/skills/claw-compactor/scripts/lib/dictionary.py +281 -0
- package/skills/claw-compactor/scripts/lib/engram.py +793 -0
- package/skills/claw-compactor/scripts/lib/engram_prompts.py +175 -0
- package/skills/claw-compactor/scripts/lib/engram_storage.py +254 -0
- package/skills/claw-compactor/scripts/lib/exceptions.py +24 -0
- package/skills/claw-compactor/scripts/lib/markdown.py +312 -0
- package/skills/claw-compactor/scripts/lib/rle.py +165 -0
- package/skills/claw-compactor/scripts/lib/tokenizer_optimizer.py +188 -0
- package/skills/claw-compactor/scripts/lib/tokens.py +68 -0
- package/skills/claw-compactor/scripts/mem_compress.py +788 -0
- package/skills/claw-compactor/scripts/observation_compressor.py +346 -0
- package/skills/claw-compactor/tests/__init__.py +0 -0
- package/skills/claw-compactor/tests/conftest.py +94 -0
- package/skills/claw-compactor/tests/test_audit_comprehensive.py +123 -0
- package/skills/claw-compactor/tests/test_audit_memory.py +67 -0
- package/skills/claw-compactor/tests/test_benchmark.py +122 -0
- package/skills/claw-compactor/tests/test_cli_commands.py +228 -0
- package/skills/claw-compactor/tests/test_compress_memory.py +109 -0
- package/skills/claw-compactor/tests/test_compress_memory_comprehensive.py +191 -0
- package/skills/claw-compactor/tests/test_compressed_context.py +145 -0
- package/skills/claw-compactor/tests/test_config.py +54 -0
- package/skills/claw-compactor/tests/test_dedup_memory.py +124 -0
- package/skills/claw-compactor/tests/test_dictionary.py +327 -0
- package/skills/claw-compactor/tests/test_dictionary_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_engram.py +1091 -0
- package/skills/claw-compactor/tests/test_engram_auto.py +529 -0
- package/skills/claw-compactor/tests/test_error_handling.py +194 -0
- package/skills/claw-compactor/tests/test_estimate_tokens.py +99 -0
- package/skills/claw-compactor/tests/test_generate_summary_tiers.py +105 -0
- package/skills/claw-compactor/tests/test_integration.py +249 -0
- package/skills/claw-compactor/tests/test_lib_dedup.py +135 -0
- package/skills/claw-compactor/tests/test_lib_markdown.py +388 -0
- package/skills/claw-compactor/tests/test_lib_tokens.py +82 -0
- package/skills/claw-compactor/tests/test_main_entry.py +176 -0
- package/skills/claw-compactor/tests/test_markdown_advanced.py +284 -0
- package/skills/claw-compactor/tests/test_new_features.py +77 -0
- package/skills/claw-compactor/tests/test_observation_comprehensive.py +261 -0
- package/skills/claw-compactor/tests/test_observation_compressor.py +128 -0
- package/skills/claw-compactor/tests/test_performance.py +172 -0
- package/skills/claw-compactor/tests/test_pipeline.py +109 -0
- package/skills/claw-compactor/tests/test_real_workspace.py +161 -0
- package/skills/claw-compactor/tests/test_rle.py +114 -0
- package/skills/claw-compactor/tests/test_rle_comprehensive.py +151 -0
- package/skills/claw-compactor/tests/test_roundtrip.py +253 -0
- package/skills/claw-compactor/tests/test_roundtrip_comprehensive.py +192 -0
- package/skills/claw-compactor/tests/test_tiers_comprehensive.py +171 -0
- package/skills/claw-compactor/tests/test_token_economics.py +237 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer.py +175 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_tokens.py +27 -0
- package/skills/cmo/CHANGELOG.md +61 -0
- package/skills/cmo/SKILL.md +500 -0
- package/skills/cmo/references/ai-slop-patterns.md +56 -0
- package/skills/cmo/references/analytics-guide.md +152 -0
- package/skills/cmo/references/ideas-library.md +197 -0
- package/skills/cmo/rules/brand-file-map.md +198 -0
- package/skills/cmo/rules/brand-memory.md +158 -0
- package/skills/cmo/rules/cli-runtime-index.md +95 -0
- package/skills/cmo/rules/command-reference.md +167 -0
- package/skills/cmo/rules/communication.md +15 -0
- package/skills/cmo/rules/context-switch.md +101 -0
- package/skills/cmo/rules/ecosystem.md +125 -0
- package/skills/cmo/rules/error-recovery.md +98 -0
- package/skills/cmo/rules/learning-loop.md +170 -0
- package/skills/cmo/rules/monorepo.md +78 -0
- package/skills/cmo/rules/output-format.md +124 -0
- package/skills/cmo/rules/persona.md +15 -0
- package/skills/cmo/rules/playbooks.md +327 -0
- package/skills/cmo/rules/progressive-enhancement.md +231 -0
- package/skills/cmo/rules/publish-index.md +106 -0
- package/skills/cmo/rules/quality-gate.md +90 -0
- package/skills/cmo/rules/recency-grounding.md +124 -0
- package/skills/cmo/rules/safety.md +80 -0
- package/skills/cmo/rules/studio-api-index.md +138 -0
- package/skills/cmo/rules/studio-integration.md +147 -0
- package/skills/cmo/rules/sub-agents.md +167 -0
- package/skills/cold-email/SKILL.md +240 -0
- package/skills/cold-email/evals/evals.json +94 -0
- package/skills/cold-email/references/benchmarks.md +83 -0
- package/skills/cold-email/references/follow-up-sequences.md +81 -0
- package/skills/cold-email/references/frameworks.md +90 -0
- package/skills/cold-email/references/personalization.md +79 -0
- package/skills/cold-email/references/subject-lines.md +53 -0
- package/skills/competitive-intel/SKILL.md +433 -0
- package/skills/competitive-intel/references/competitive-frameworks.md +145 -0
- package/skills/competitor-alternatives/SKILL.md +362 -0
- package/skills/competitor-alternatives/evals/evals.json +93 -0
- package/skills/competitor-alternatives/references/content-architecture.md +271 -0
- package/skills/competitor-alternatives/references/templates.md +223 -0
- package/skills/concreteness-fixer/SKILL.md +483 -0
- package/skills/concreteness-fixer/scripts/validation/concreteness-validator.js +221 -0
- package/skills/concreteness-fixer/utils/execFileNoThrow.js +16 -0
- package/skills/content-atomizer/SKILL.md +424 -0
- package/skills/content-atomizer/references/hook-strategies.md +56 -0
- package/skills/content-atomizer/references/platform-specs.md +118 -0
- package/skills/content-atomizer/references/platforms/bluesky.md +64 -0
- package/skills/content-atomizer/references/platforms/instagram.md +77 -0
- package/skills/content-atomizer/references/platforms/linkedin.md +120 -0
- package/skills/content-atomizer/references/platforms/reddit.md +73 -0
- package/skills/content-atomizer/references/platforms/threads.md +64 -0
- package/skills/content-atomizer/references/platforms/tiktok.md +55 -0
- package/skills/content-atomizer/references/platforms/twitter.md +123 -0
- package/skills/content-atomizer/references/platforms/youtube.md +56 -0
- package/skills/content-atomizer/references/tweet-patterns.md +40 -0
- package/skills/content-repost-manager/SKILL.md +245 -0
- package/skills/content-repost-manager/scripts/content-repost-scan.py +133 -0
- package/skills/context-recovery/.clawdhub/origin.json +7 -0
- package/skills/context-recovery/SKILL.md +198 -0
- package/skills/context-recovery/_meta.json +6 -0
- package/skills/conversion-flow-cro/SKILL.md +248 -0
- package/skills/conversion-flow-cro/references/flow-benchmarks.md +158 -0
- package/skills/copy-editing/SKILL.md +474 -0
- package/skills/copy-editing/evals/evals.json +89 -0
- package/skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/copywriting/SKILL.md +349 -0
- package/skills/copywriting/evals/evals.json +111 -0
- package/skills/copywriting/references/awareness-level-guide.md +227 -0
- package/skills/copywriting/references/copy-frameworks.md +389 -0
- package/skills/copywriting/references/natural-transitions.md +272 -0
- package/skills/creative/SKILL.md +365 -0
- package/skills/creative/modes/ad-creative.md +1748 -0
- package/skills/creative/modes/product-photo.md +1520 -0
- package/skills/creative/modes/product-video.md +1657 -0
- package/skills/creative/modes/social-graphics.md +1511 -0
- package/skills/creative/modes/talking-head.md +2208 -0
- package/skills/creative/references/VISUAL_INTELLIGENCE.md +1233 -0
- package/skills/deep-serp-article/SKILL.md +677 -0
- package/skills/deep-serp-article/SKILL.md.bak +530 -0
- package/skills/earned-media/SKILL.md +260 -0
- package/skills/email-sequences/SKILL.md +446 -0
- package/skills/email-sequences/references/sequence-templates.md +1217 -0
- package/skills/firecrawl/.skill-meta.json +13 -0
- package/skills/firecrawl/SKILL.md +154 -0
- package/skills/firecrawl/rules/install.md +63 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/form-cro/SKILL.md +429 -0
- package/skills/form-cro/evals/evals.json +90 -0
- package/skills/free-tool-strategy/SKILL.md +325 -0
- package/skills/free-tool-strategy/evals/evals.json +90 -0
- package/skills/free-tool-strategy/references/tool-types.md +253 -0
- package/skills/frontend-slides/SKILL.md +248 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +347 -0
- package/skills/frontend-slides/animation-patterns.md +110 -0
- package/skills/frontend-slides/html-template.md +347 -0
- package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/frontend-slides/viewport-base.css +153 -0
- package/skills/guardrail-framework/SKILL.md +319 -0
- package/skills/hook-generator/SKILL.md +438 -0
- package/skills/hook-generator/database/2026-PLATFORM-RESEARCH.md +211 -0
- package/skills/hook-generator/database/instagram-hooks.json +591 -0
- package/skills/hook-generator/database/linkedin-hooks.json +502 -0
- package/skills/hook-generator/database/medium-hooks.json +181 -0
- package/skills/hook-generator/database/tiktok-hooks.json +337 -0
- package/skills/hook-generator/database/twitter-hooks.json +567 -0
- package/skills/hook-generator/database/youtube-hooks.json +275 -0
- package/skills/hook-generator/package-lock.json +24 -0
- package/skills/hook-generator/package.json +5 -0
- package/skills/hook-generator/references/hook-generation-system.md +257 -0
- package/skills/hook-generator/references/hook-performance-analysis.json +153 -0
- package/skills/hook-generator/references/hooks-library.md +128 -0
- package/skills/hook-generator/references/platform-hook-frameworks.md +275 -0
- package/skills/hook-generator/scripts/generate-hooks-unified.js +722 -0
- package/skills/hook-generator/scripts/generate-hooks.js +225 -0
- package/skills/hook-generator/scripts/generate.sh +36 -0
- package/skills/hook-generator/scripts/ralph-hook-enhancer.js +864 -0
- package/skills/hook-generator/scripts/test-gemini-output.js +51 -0
- package/skills/humanizer/README.md +120 -0
- package/skills/humanizer/SKILL.md +699 -0
- package/skills/image-gen/SKILL.md +277 -0
- package/skills/image-gen/references/prompt-patterns.md +114 -0
- package/skills/image-gen/references/visual-metaphors.md +51 -0
- package/skills/impeccable/SKILL.md +86 -0
- package/skills/impeccable/reference/adapt.md +312 -0
- package/skills/impeccable/reference/adapt.native.md +58 -0
- package/skills/impeccable/reference/android.md +40 -0
- package/skills/impeccable/reference/animate.md +86 -0
- package/skills/impeccable/reference/audit.md +136 -0
- package/skills/impeccable/reference/audit.native.md +139 -0
- package/skills/impeccable/reference/bolder.md +31 -0
- package/skills/impeccable/reference/clarify.md +94 -0
- package/skills/impeccable/reference/colorize.md +86 -0
- package/skills/impeccable/reference/craft-floor.md +42 -0
- package/skills/impeccable/reference/craft.md +5 -0
- package/skills/impeccable/reference/critique.md +788 -0
- package/skills/impeccable/reference/degraded/asset-producer.md +90 -0
- package/skills/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/impeccable/reference/degraded/finish-reviewer.md +37 -0
- package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/impeccable/reference/delight.md +70 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/doctor.md +53 -0
- package/skills/impeccable/reference/document.md +416 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/harden.md +336 -0
- package/skills/impeccable/reference/hooks.md +105 -0
- package/skills/impeccable/reference/init.md +125 -0
- package/skills/impeccable/reference/ios.md +45 -0
- package/skills/impeccable/reference/layout.md +84 -0
- package/skills/impeccable/reference/live-setup.md +102 -0
- package/skills/impeccable/reference/live.md +323 -0
- package/skills/impeccable/reference/new-work.md +110 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/operate.md +61 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +127 -0
- package/skills/impeccable/reference/polish.md +97 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/routing.md +18 -0
- package/skills/impeccable/reference/shape.md +59 -0
- package/skills/impeccable/reference/typeset.md +80 -0
- package/skills/impeccable/reference/visualize.md +49 -0
- package/skills/impeccable/scripts/command-metadata.json +94 -0
- package/skills/impeccable/scripts/concept-seed.mjs +558 -0
- package/skills/impeccable/scripts/context-signals.mjs +334 -0
- package/skills/impeccable/scripts/context.mjs +1467 -0
- package/skills/impeccable/scripts/critique-storage.mjs +213 -0
- package/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/skills/impeccable/scripts/detect.mjs +21 -0
- package/skills/impeccable/scripts/detector/browser/injected/index.mjs +2023 -0
- package/skills/impeccable/scripts/detector/cli/main.mjs +438 -0
- package/skills/impeccable/scripts/detector/design-system.mjs +1046 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +8283 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
- package/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +372 -0
- package/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +1168 -0
- package/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1186 -0
- package/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +264 -0
- package/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/skills/impeccable/scripts/detector/findings.mjs +18 -0
- package/skills/impeccable/scripts/detector/node/file-system.mjs +203 -0
- package/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/skills/impeccable/scripts/detector/registry/antipatterns.mjs +617 -0
- package/skills/impeccable/scripts/detector/rules/checks.mjs +5580 -0
- package/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/skills/impeccable/scripts/detector/shared/constants.mjs +112 -0
- package/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
- package/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/skills/impeccable/scripts/doctor.mjs +336 -0
- package/skills/impeccable/scripts/embed-prompt.mjs +133 -0
- package/skills/impeccable/scripts/generate-image.mjs +240 -0
- package/skills/impeccable/scripts/hook-admin.mjs +801 -0
- package/skills/impeccable/scripts/hook-before-edit.mjs +508 -0
- package/skills/impeccable/scripts/hook-lib.mjs +2153 -0
- package/skills/impeccable/scripts/hook.mjs +78 -0
- package/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
- package/skills/impeccable/scripts/lib/composition-catalog.mjs +200 -0
- package/skills/impeccable/scripts/lib/concept-catalog.mjs +384 -0
- package/skills/impeccable/scripts/lib/design-parser.mjs +925 -0
- package/skills/impeccable/scripts/lib/impeccable-config.mjs +658 -0
- package/skills/impeccable/scripts/lib/impeccable-paths.mjs +137 -0
- package/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
- package/skills/impeccable/scripts/lib/provider.mjs +5 -0
- package/skills/impeccable/scripts/lib/roll-selection.mjs +362 -0
- package/skills/impeccable/scripts/lib/staleness-deep.mjs +478 -0
- package/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
- package/skills/impeccable/scripts/lib/staleness.mjs +457 -0
- package/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
- package/skills/impeccable/scripts/lib/target-args.mjs +42 -0
- package/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
- package/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
- package/skills/impeccable/scripts/live/accept-css.mjs +617 -0
- package/skills/impeccable/scripts/live/accept-verify.mjs +60 -0
- package/skills/impeccable/scripts/live/browser-script-parts.mjs +55 -0
- package/skills/impeccable/scripts/live/completion.mjs +28 -0
- package/skills/impeccable/scripts/live/event-validation.mjs +199 -0
- package/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
- package/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +73 -0
- package/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
- package/skills/impeccable/scripts/live/frameworks/journal.mjs +197 -0
- package/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
- package/skills/impeccable/scripts/live/frameworks/nuxt.mjs +161 -0
- package/skills/impeccable/scripts/live/frameworks/script-src.mjs +17 -0
- package/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
- package/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
- package/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
- package/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
- package/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
- package/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
- package/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
- package/skills/impeccable/scripts/live/instructions.mjs +142 -0
- package/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
- package/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
- package/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
- package/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
- package/skills/impeccable/scripts/live/roots.mjs +508 -0
- package/skills/impeccable/scripts/live/session-store.mjs +563 -0
- package/skills/impeccable/scripts/live/source-lock.mjs +105 -0
- package/skills/impeccable/scripts/live/source-search.mjs +105 -0
- package/skills/impeccable/scripts/live/svelte-ast.mjs +961 -0
- package/skills/impeccable/scripts/live/svelte-component.mjs +1342 -0
- package/skills/impeccable/scripts/live/sveltekit-adapter.mjs +316 -0
- package/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
- package/skills/impeccable/scripts/live/ui-core.mjs +180 -0
- package/skills/impeccable/scripts/live/vocabulary.mjs +171 -0
- package/skills/impeccable/scripts/live-accept.mjs +954 -0
- package/skills/impeccable/scripts/live-browser-dom.js +146 -0
- package/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/skills/impeccable/scripts/live-browser.js +12520 -0
- package/skills/impeccable/scripts/live-commit-manual-edits.mjs +1244 -0
- package/skills/impeccable/scripts/live-complete.mjs +107 -0
- package/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/skills/impeccable/scripts/live-inject.mjs +503 -0
- package/skills/impeccable/scripts/live-insert.mjs +292 -0
- package/skills/impeccable/scripts/live-manual-edit-evidence.mjs +368 -0
- package/skills/impeccable/scripts/live-poll.mjs +429 -0
- package/skills/impeccable/scripts/live-resume.mjs +123 -0
- package/skills/impeccable/scripts/live-server.mjs +1669 -0
- package/skills/impeccable/scripts/live-status.mjs +71 -0
- package/skills/impeccable/scripts/live-target.mjs +30 -0
- package/skills/impeccable/scripts/live-wrap.mjs +927 -0
- package/skills/impeccable/scripts/live.mjs +359 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/impeccable/scripts/palette.mjs +628 -0
- package/skills/impeccable/scripts/pin.mjs +221 -0
- package/skills/impeccable/scripts/serve-question.mjs +932 -0
- package/skills/impeccable/scripts/surface-brief.mjs +74 -0
- package/skills/inkstone-admin/SKILL.md +66 -0
- package/skills/jev-hook-gate/SKILL.md +111 -0
- package/skills/keyword-research/SKILL.md +503 -0
- package/skills/keyword-research/references/dr-cap-and-confidence.md +62 -0
- package/skills/keyword-research/references/keyword-examples.md +769 -0
- package/skills/landing-page-architect/SKILL.md +585 -0
- package/skills/landing-page-architect/references/architecture-reference.md +32 -0
- package/skills/launch-strategy/SKILL.md +384 -0
- package/skills/launch-strategy/evals/evals.json +91 -0
- package/skills/launch-strategy/references/launch-checklist.md +209 -0
- package/skills/launch-strategy/references/launch-timeline.md +159 -0
- package/skills/lead-email-craft/SKILL.md +522 -0
- package/skills/lead-magnets/SKILL.md +310 -0
- package/skills/lead-magnets/references/benchmarks.md +129 -0
- package/skills/lead-magnets/references/format-guide.md +196 -0
- package/skills/link-building-seo/SKILL.md +210 -0
- package/skills/lint-report.txt +1 -0
- package/skills/manifest.json +129 -0
- package/skills/marketing-demo/SKILL.md +249 -0
- package/skills/marketing-demo/references/remotion-examples.md +281 -0
- package/skills/marketing-ideas/SKILL.md +167 -0
- package/skills/marketing-ideas/evals/evals.json +90 -0
- package/skills/marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/marketing-psychology/SKILL.md +374 -0
- package/skills/marketing-psychology/evals/evals.json +88 -0
- package/skills/marketing-psychology/references/case-studies.md +148 -0
- package/skills/narrative-research-article/SKILL.md +469 -0
- package/skills/narrative-research-article/references/lanusse-patterns.md +166 -0
- package/skills/notebooklm/SKILL.md +674 -0
- package/skills/off-page-seo/SKILL.md +219 -0
- package/skills/onboarding-cro/SKILL.md +220 -0
- package/skills/onboarding-cro/evals/evals.json +92 -0
- package/skills/onboarding-cro/references/experiments.md +258 -0
- package/skills/original-research/SKILL.md +388 -0
- package/skills/page-cro/SKILL.md +269 -0
- package/skills/page-cro/references/cro-benchmarks.md +140 -0
- package/skills/paper-marketing/SKILL.md +448 -0
- package/skills/paper-marketing/references/agent-quality-rubric.md +68 -0
- package/skills/paper-marketing/references/brand-system-template.md +120 -0
- package/skills/paper-marketing/references/paper-mcp-rules.md +71 -0
- package/skills/paper-marketing/references/platform-conventions.md +43 -0
- package/skills/paywall-upgrade-cro/SKILL.md +227 -0
- package/skills/paywall-upgrade-cro/evals/evals.json +93 -0
- package/skills/paywall-upgrade-cro/references/experiments.md +164 -0
- package/skills/platform-formatting/SKILL.md +51 -0
- package/skills/popup-cro/SKILL.md +454 -0
- package/skills/popup-cro/evals/evals.json +94 -0
- package/skills/positioning-angles/SKILL.md +524 -0
- package/skills/positioning-angles/references/ad-matrix-and-examples.md +176 -0
- package/skills/positioning-angles/references/angle-frameworks.md +187 -0
- package/skills/positioning-angles/references/dunford-positioning.md +135 -0
- package/skills/positioning-angles/references/hormozi-offer.md +247 -0
- package/skills/positioning-angles/references/schwartz-sophistication.md +166 -0
- package/skills/positioning-angles/references/unique-mechanism.md +162 -0
- package/skills/pricing-strategy/SKILL.md +346 -0
- package/skills/pricing-strategy/evals/evals.json +90 -0
- package/skills/pricing-strategy/references/research-methods.md +152 -0
- package/skills/pricing-strategy/references/tier-structure.md +307 -0
- package/skills/programmatic-seo/SKILL.md +238 -0
- package/skills/programmatic-seo/evals/evals.json +94 -0
- package/skills/programmatic-seo/references/playbooks.md +308 -0
- package/skills/project-rag/SKILL.md +127 -0
- package/skills/quality-gate/SKILL.md +519 -0
- package/skills/quality-gate/judge-personas/buyer.md +47 -0
- package/skills/quality-gate/judge-personas/expert.md +47 -0
- package/skills/quality-gate/judge-personas/outsider.md +47 -0
- package/skills/quality-gate/judge-personas/scanner.md +41 -0
- package/skills/quality-gate/judge-personas/skeptic.md +40 -0
- package/skills/referral-program/SKILL.md +290 -0
- package/skills/referral-program/evals/evals.json +89 -0
- package/skills/referral-program/references/affiliate-programs.md +163 -0
- package/skills/referral-program/references/program-examples.md +143 -0
- package/skills/review-sites/SKILL.md +279 -0
- package/skills/revops/SKILL.md +343 -0
- package/skills/revops/evals/evals.json +91 -0
- package/skills/revops/references/automation-playbooks.md +290 -0
- package/skills/revops/references/lifecycle-definitions.md +278 -0
- package/skills/revops/references/routing-rules.md +203 -0
- package/skills/revops/references/scoring-models.md +247 -0
- package/skills/saas-product-seo/SKILL.md +324 -0
- package/skills/sales-enablement/SKILL.md +349 -0
- package/skills/sales-enablement/evals/evals.json +91 -0
- package/skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/sales-enablement/references/demo-scripts.md +355 -0
- package/skills/sales-enablement/references/objection-library.md +270 -0
- package/skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/schema-markup/SKILL.md +179 -0
- package/skills/schema-markup/evals/evals.json +87 -0
- package/skills/schema-markup/references/schema-examples.md +398 -0
- package/skills/self-improve/SKILL.md +166 -0
- package/skills/self-improving-agent/README.md +243 -0
- package/skills/self-improving-agent/SKILL.md +437 -0
- package/skills/self-improving-agent/scripts/__init__.py +16 -0
- package/skills/self-improving-agent/scripts/__pycache__/auto_detect.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/nlm_curation.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/self_improving_agent.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/auto_detect.py +270 -0
- package/skills/self-improving-agent/scripts/init_expertise_registry.py +89 -0
- package/skills/self-improving-agent/scripts/nlm_curation.py +259 -0
- package/skills/self-improving-agent/scripts/self-improving-agent +113 -0
- package/skills/self-improving-agent/scripts/self_improving_agent.py +603 -0
- package/skills/self-improving-agent/scripts/test_curation_scorer.py +20 -0
- package/skills/self-improving-agent/scripts/test_self_improving.py +184 -0
- package/skills/send-email/SKILL.md +426 -0
- package/skills/send-email/references/batch-email-examples.md +807 -0
- package/skills/send-email/references/best-practices.md +453 -0
- package/skills/send-email/references/installation.md +123 -0
- package/skills/send-email/references/single-email-examples.md +470 -0
- package/skills/send-email/references/webhooks.md +221 -0
- package/skills/seo-audit/SKILL.md +362 -0
- package/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/seo-audit/references/architecture-patterns.md +271 -0
- package/skills/seo-audit/references/schema-templates.md +427 -0
- package/skills/seo-content/SKILL.md +510 -0
- package/skills/seo-content/references/anti-ai-detection.md +184 -0
- package/skills/seo-content/references/content-structures.md +148 -0
- package/skills/seo-content/references/eeat-examples.md +235 -0
- package/skills/seo-content/references/on-page-seo.md +261 -0
- package/skills/seo-content/references/pseo-playbooks.md +226 -0
- package/skills/seo-content/references/schema-templates.md +104 -0
- package/skills/seo-content/references/serp-analysis-format.md +151 -0
- package/skills/seo-machine/SKILL.md +331 -0
- package/skills/seo-machine/assets/brand-template.md +73 -0
- package/skills/seo-machine/assets/link-inventory-template.md +74 -0
- package/skills/seo-machine/assets/roadmap-template.md +184 -0
- package/skills/seo-machine/references/api-stack-recipes.md +230 -0
- package/skills/seo-machine/references/exa-recipes.md +260 -0
- package/skills/seo-machine/references/manual-research.md +73 -0
- package/skills/seo-machine/references/methodology.md +87 -0
- package/skills/seo-machine/references/off-page.md +123 -0
- package/skills/seo-machine/references/patterns/alternatives.md +176 -0
- package/skills/seo-machine/references/patterns/compare.md +105 -0
- package/skills/seo-machine/references/patterns/playbooks.md +106 -0
- package/skills/seo-machine/references/patterns/use-case.md +109 -0
- package/skills/seo-machine/references/quality-bars.md +99 -0
- package/skills/seo-machine/references/stacks/astro.md +156 -0
- package/skills/seo-machine/references/stacks/detection.md +61 -0
- package/skills/seo-machine/references/stacks/markdown-fallback.md +181 -0
- package/skills/seo-machine/references/stacks/nextjs.md +108 -0
- package/skills/seo-machine/references/stacks/rails-inertia.md +99 -0
- package/skills/seo-machine/references/striking-distance.md +116 -0
- package/skills/seo-machine/references/technical-audit.md +153 -0
- package/skills/seo-machine/scripts/link_audit.py +265 -0
- package/skills/seo-machine/scripts/tech_audit.py +221 -0
- package/skills/seo-machine/scripts/word_count.py +154 -0
- package/skills/sharp-thesis-validator/SKILL.md +393 -0
- package/skills/sharp-thesis-validator/examples.md +186 -0
- package/skills/signup-flow-cro/SKILL.md +359 -0
- package/skills/signup-flow-cro/evals/evals.json +88 -0
- package/skills/site-architecture/SKILL.md +357 -0
- package/skills/site-architecture/evals/evals.json +88 -0
- package/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/skills/site-architecture/references/site-type-templates.md +293 -0
- package/skills/skill-self-improvement/SKILL.md +151 -0
- package/skills/slideshow-script/SKILL.md +274 -0
- package/skills/slideshow-script/references/content-spec-schema.md +77 -0
- package/skills/slideshow-script/references/frameworks.md +84 -0
- package/skills/slideshow-script/references/paips-framework.md +37 -0
- package/skills/social-campaign/SKILL.md +419 -0
- package/skills/social-campaign/references/paper-mcp-workflow.md +48 -0
- package/skills/social-content/SKILL.md +359 -0
- package/skills/social-content/evals/evals.json +92 -0
- package/skills/social-content/references/platforms.md +170 -0
- package/skills/social-content/references/post-templates.md +177 -0
- package/skills/social-content/references/reverse-engineering.md +195 -0
- package/skills/social-worker/SKILL.md +204 -0
- package/skills/startup-launcher/SKILL.md +252 -0
- package/skills/startup-launcher/references/file-router.md +64 -0
- package/skills/startup-launcher/references/platform-matrix.md +65 -0
- package/skills/startup-launcher/references/platforms/alternativeto.md +283 -0
- package/skills/startup-launcher/references/platforms/appsumo.md +495 -0
- package/skills/startup-launcher/references/platforms/auraplusplus.md +736 -0
- package/skills/startup-launcher/references/platforms/betalist.md +98 -0
- package/skills/startup-launcher/references/platforms/capterra.md +276 -0
- package/skills/startup-launcher/references/platforms/crunchbase.md +514 -0
- package/skills/startup-launcher/references/platforms/dealify.md +291 -0
- package/skills/startup-launcher/references/platforms/dealmirror.md +313 -0
- package/skills/startup-launcher/references/platforms/desifounder.md +490 -0
- package/skills/startup-launcher/references/platforms/devhunt.md +210 -0
- package/skills/startup-launcher/references/platforms/devpost.md +448 -0
- package/skills/startup-launcher/references/platforms/fazier.md +56 -0
- package/skills/startup-launcher/references/platforms/firsto.md +489 -0
- package/skills/startup-launcher/references/platforms/g2.md +226 -0
- package/skills/startup-launcher/references/platforms/hackernews.md +99 -0
- package/skills/startup-launcher/references/platforms/hackernoon.md +385 -0
- package/skills/startup-launcher/references/platforms/indiedeals.md +367 -0
- package/skills/startup-launcher/references/platforms/indiehackers.md +80 -0
- package/skills/startup-launcher/references/platforms/kenmoo.md +231 -0
- package/skills/startup-launcher/references/platforms/labstartups.md +618 -0
- package/skills/startup-launcher/references/platforms/launchboard.md +307 -0
- package/skills/startup-launcher/references/platforms/launchfast.md +560 -0
- package/skills/startup-launcher/references/platforms/launchigniter.md +56 -0
- package/skills/startup-launcher/references/platforms/launchingnext.md +674 -0
- package/skills/startup-launcher/references/platforms/launchit.md +574 -0
- package/skills/startup-launcher/references/platforms/launchyourapp.md +677 -0
- package/skills/startup-launcher/references/platforms/libhunt.md +220 -0
- package/skills/startup-launcher/references/platforms/ltdhunt.md +221 -0
- package/skills/startup-launcher/references/platforms/microlaunch.md +45 -0
- package/skills/startup-launcher/references/platforms/openalternative.md +195 -0
- package/skills/startup-launcher/references/platforms/peerlist.md +56 -0
- package/skills/startup-launcher/references/platforms/peerpush.md +64 -0
- package/skills/startup-launcher/references/platforms/primeclub.md +282 -0
- package/skills/startup-launcher/references/platforms/productcanyon.md +190 -0
- package/skills/startup-launcher/references/platforms/producthunt.md +98 -0
- package/skills/startup-launcher/references/platforms/rankinpublic.md +315 -0
- package/skills/startup-launcher/references/platforms/rockethub.md +374 -0
- package/skills/startup-launcher/references/platforms/saasgenius.md +175 -0
- package/skills/startup-launcher/references/platforms/saashub.md +205 -0
- package/skills/startup-launcher/references/platforms/saasmantra.md +221 -0
- package/skills/startup-launcher/references/platforms/saaspirate.md +287 -0
- package/skills/startup-launcher/references/platforms/saaswarrior.md +190 -0
- package/skills/startup-launcher/references/platforms/saaszilla.md +194 -0
- package/skills/startup-launcher/references/platforms/selected.md +925 -0
- package/skills/startup-launcher/references/platforms/sideprojectors.md +86 -0
- package/skills/startup-launcher/references/platforms/softonic.md +240 -0
- package/skills/startup-launcher/references/platforms/sourceforge.md +251 -0
- package/skills/startup-launcher/references/platforms/stacksocial.md +244 -0
- package/skills/startup-launcher/references/platforms/startupstash.md +326 -0
- package/skills/startup-launcher/references/platforms/theresanaiforthat.md +253 -0
- package/skills/startup-launcher/references/platforms/tinylaunch.md +70 -0
- package/skills/startup-launcher/references/platforms/tinystartups.md +72 -0
- package/skills/startup-launcher/references/platforms/toolfolio.md +291 -0
- package/skills/startup-launcher/references/platforms/trustmrr.md +194 -0
- package/skills/startup-launcher/references/platforms/trylaunch.md +531 -0
- package/skills/startup-launcher/references/platforms/uneed.md +57 -0
- package/skills/startup-launcher/references/templates/asset-checklist.md +218 -0
- package/skills/startup-launcher/references/templates/launch-tracker.md +195 -0
- package/skills/startup-launcher/references/templates/product-brief.md +98 -0
- package/skills/summarize/.skill-meta.json +13 -0
- package/skills/summarize/SKILL.md +170 -0
- package/skills/summarize/rules/install.md +157 -0
- package/skills/summarize/rules/usage.md +207 -0
- package/skills/topical-authority/SKILL.md +307 -0
- package/skills/topical-authority/references/jake-ward-framework.md +201 -0
- package/skills/topical-authority/references/serp-clustering-algorithm.md +325 -0
- package/skills/topical-authority/scripts/orchestrator.js +367 -0
- package/skills/topical-authority/scripts/seo/analyze-competitor-coverage.js +3 -0
- package/skills/topical-authority/scripts/seo/audit-internal-links.js +3 -0
- package/skills/topical-authority/scripts/seo/build-clusters-from-serp.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-keywords-from-forums.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-paa-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/fetch-serp-urls.js +3 -0
- package/skills/topical-authority/scripts/seo/gemini-serp-clustering.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-content-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-research-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-quora-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-reddit-pain-points.js +3 -0
- package/skills/topical-authority/scripts/seo/weave-internal-links.js +3 -0
- package/skills/visual-style/SKILL.md +199 -0
- package/skills/voice-brand-alignment/SKILL.md +70 -0
- package/skills/voice-brand-alignment/references/ai-slop-patterns.md +405 -0
- package/skills/voice-brand-alignment/scripts/validation/gemini-voice-validator.js +96 -0
- package/skills/voice-extraction/SKILL.md +234 -0
- package/skills/voice-extraction/references/extraction-prompt.md +155 -0
- package/skills/voice-extraction/references/voice-dna-template.md +168 -0
- package/skills/voice-extraction/references/voice-elements.md +259 -0
- package/skills/voice-extraction/scripts/build-corpus.js +120 -0
- package/skills/voice-extraction/scripts/collect-sources.sh +168 -0
- package/skills/warm-outbound/SKILL.md +299 -0
- package/skills/warm-outbound/templates/warm-message.md +39 -0
- package/skills/weekly-newsletter-digest/SKILL.md +78 -0
- package/skills/x-playwriter/SKILL.md +428 -0
- package/skills/x-playwriter/scripts/x-browser.js +185 -0
- package/skills/x-post-generator-openclaw/SKILL.md +138 -0
- package/skills/x-post-generator-openclaw/scripts/generate-x-post.js +537 -0
- package/skills/x-posting-playwriter/SKILL.md +203 -0
- package/skills/x-research/SKILL.md +129 -0
- package/skills/x-research/x-research.sh +85 -0
- package/skills/youtube-summarize/SKILL.md +90 -0
- package/skills/youtube-summarize/scripts/youtube-summarize.sh +143 -0
- package/src/cli.js +347 -172
- package/src/harness/deepseek-adapter.js +102 -0
- package/src/harness/deepseek.js +225 -0
- package/src/harness/opencode-adapter.js +174 -0
- package/src/harness/pi-adapter.js +172 -0
- package/src/harness/registry.js +121 -0
- package/src/harness/telemetry.js +102 -0
- package/src/harness/types.js +165 -0
- package/src/interview.js +36 -4
- package/src/postinstall.js +10 -12
- package/templates/AGENTS.md +17 -17
- package/templates/ORG.md +1 -1
- package/templates/TOOLS.md +7 -2
- package/templates/opencode.json +26 -29
- package/wiki/doctor.md +54 -0
- package/wiki/inkstone.md +4 -4
- package/wiki/opencode.md +3 -3
- package/skills/curated.txt +0 -68
|
@@ -0,0 +1,1511 @@
|
|
|
1
|
+
# Social Graphics Mode
|
|
2
|
+
**depends-on: [hook-generator]**
|
|
3
|
+
|
|
4
|
+
Create platform-optimized graphics for social media. Not generic images that happen to be the right size — graphics engineered for each platform's specific algorithm, user behavior, and visual language.
|
|
5
|
+
|
|
6
|
+
**Loaded by:** `creative/SKILL.md` when user selects Social Graphics mode.
|
|
7
|
+
**Model selection:** Handled by `brand/stack.md` — never hardcode model IDs in prompts or workflows.
|
|
8
|
+
**Brand consistency:** Reads from `./brand/creative-kit.md` before every generation.
|
|
9
|
+
**File output:** Saves to `./campaigns/{campaign}/social/{platform}/` for organized delivery.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Why This Mode Exists
|
|
14
|
+
|
|
15
|
+
**The problem:** Every platform has different:
|
|
16
|
+
- Aspect ratios and safe zones
|
|
17
|
+
- Visual languages that perform
|
|
18
|
+
- Algorithm preferences
|
|
19
|
+
- User attention patterns
|
|
20
|
+
- Text overlay requirements
|
|
21
|
+
|
|
22
|
+
Generic "social media graphics" underperform because they ignore these differences.
|
|
23
|
+
|
|
24
|
+
**The solution:** Platform-specific knowledge built into prompt construction, so every graphic is optimized for where it will live. Plus a template system that stores brand layouts for repeatable, on-brand content production at scale.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Model Selection
|
|
29
|
+
|
|
30
|
+
**Do NOT hardcode model IDs.** Always refer to `brand/stack.md` for the current default image model and its verified API payload.
|
|
31
|
+
|
|
32
|
+
Check `brand/stack.md` for the currently configured default image model. The specific model varies per project.
|
|
33
|
+
|
|
34
|
+
### How to Call
|
|
35
|
+
|
|
36
|
+
1. Open `brand/stack.md`
|
|
37
|
+
2. Find the **Image Generation** section
|
|
38
|
+
3. Copy the verified payload structure
|
|
39
|
+
4. Insert your constructed prompt and desired aspect ratio
|
|
40
|
+
5. Execute the API call via your configured generation provider
|
|
41
|
+
|
|
42
|
+
### Why the configured image model for Social Graphics
|
|
43
|
+
|
|
44
|
+
the configured image model is the single model for all social graphic generation — including text-heavy designs. It handles:
|
|
45
|
+
|
|
46
|
+
- **Typography rendering:** Legible headlines, quote text, CTAs directly in the image
|
|
47
|
+
- **Platform-native aesthetics:** Photorealism, illustration, minimal, bold — all in one model
|
|
48
|
+
- **Aspect ratio control:** Native support for every social platform ratio (1:1, 4:5, 9:16, 16:9, 2:3, etc.)
|
|
49
|
+
- **Speed:** 15-40 seconds per image means rapid iteration and batch generation
|
|
50
|
+
|
|
51
|
+
There is no need to route to a separate typography model. the configured image model handles text rendering natively. See the [Text Rendering Instructions](#text-rendering-instructions) section for how to get clean typography.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Text Rendering Instructions
|
|
56
|
+
|
|
57
|
+
the configured image model has strong native typography capabilities. Use these instructions to get clean, legible text in social graphics.
|
|
58
|
+
|
|
59
|
+
### Core Text Rendering Principles
|
|
60
|
+
|
|
61
|
+
1. **Specify text exactly in quotes.** The model renders text most accurately when it appears in quotation marks within the prompt.
|
|
62
|
+
2. **Keep text short.** 1-6 words render cleanly. Longer passages increase the chance of artifacts.
|
|
63
|
+
3. **Describe the typography style.** "Bold sans-serif," "elegant serif," "handwritten script" — be explicit.
|
|
64
|
+
4. **Specify placement.** "Text centered at top," "headline across bottom third," "text overlay left side."
|
|
65
|
+
5. **Describe contrast.** "White text on dark background," "black text with light backdrop" — the model needs contrast guidance.
|
|
66
|
+
|
|
67
|
+
### Text Rendering Prompt Formula
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
[Visual scene/background description],
|
|
71
|
+
text "[EXACT TEXT HERE]" in [typography style] font,
|
|
72
|
+
[text placement] of the frame,
|
|
73
|
+
[text color] on [background contrast],
|
|
74
|
+
[text size relative to frame],
|
|
75
|
+
[platform] graphic, [aspect ratio] composition
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Examples by Use Case
|
|
79
|
+
|
|
80
|
+
**Quote Card:**
|
|
81
|
+
```
|
|
82
|
+
Elegant minimalist background with soft gradient from navy to midnight blue,
|
|
83
|
+
text "The best time to start is now" in bold modern sans-serif font,
|
|
84
|
+
centered in the frame with generous padding,
|
|
85
|
+
white text on dark background, large prominent lettering,
|
|
86
|
+
Instagram feed graphic, 1:1 square composition
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Announcement Graphic:**
|
|
90
|
+
```
|
|
91
|
+
Vibrant celebration background with confetti and bold colors,
|
|
92
|
+
text "NOW LIVE" in heavy condensed sans-serif font,
|
|
93
|
+
centered top third of the frame,
|
|
94
|
+
white text with subtle shadow for contrast,
|
|
95
|
+
large impactful lettering, excitement energy,
|
|
96
|
+
Instagram Stories graphic, 9:16 vertical composition
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**YouTube Thumbnail Text:**
|
|
100
|
+
```
|
|
101
|
+
[Scene description with subject],
|
|
102
|
+
text "GAME CHANGER" in bold impact-style font,
|
|
103
|
+
positioned on the left third of the frame,
|
|
104
|
+
yellow text with black outline for maximum readability,
|
|
105
|
+
large enough to read at small thumbnail size,
|
|
106
|
+
YouTube thumbnail, 16:9 landscape composition
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**CTA Banner:**
|
|
110
|
+
```
|
|
111
|
+
Clean professional background with brand-appropriate colors,
|
|
112
|
+
text "Get Started Free" in clean modern sans-serif font,
|
|
113
|
+
centered in the lower third of the frame,
|
|
114
|
+
high contrast text on solid color block,
|
|
115
|
+
button-like presentation, clear and inviting,
|
|
116
|
+
LinkedIn graphic, 1.91:1 landscape composition
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Typography Style Reference
|
|
120
|
+
|
|
121
|
+
| Style | Prompt Language | Best For |
|
|
122
|
+
|-------|----------------|----------|
|
|
123
|
+
| Bold Sans-Serif | "bold modern sans-serif font, clean geometric letterforms" | Headlines, announcements, CTAs |
|
|
124
|
+
| Elegant Serif | "elegant serif font, sophisticated classic letterforms" | Quotes, luxury brands, editorial |
|
|
125
|
+
| Handwritten Script | "flowing handwritten script font, personal authentic feel" | Personal brands, lifestyle, invitations |
|
|
126
|
+
| Condensed Impact | "heavy condensed impact-style font, compressed bold letters" | YouTube thumbnails, urgency, sales |
|
|
127
|
+
| Minimal Clean | "thin light sans-serif font, minimal clean typography" | Luxury, tech, sophistication |
|
|
128
|
+
| Playful Rounded | "playful rounded font, friendly approachable letterforms" | Kids, casual brands, fun content |
|
|
129
|
+
|
|
130
|
+
### Text Rendering Quality Checklist
|
|
131
|
+
|
|
132
|
+
- [ ] Text specified in quotation marks in the prompt
|
|
133
|
+
- [ ] 6 words or fewer per text element
|
|
134
|
+
- [ ] Typography style explicitly described
|
|
135
|
+
- [ ] Placement specified (top/center/bottom, left/center/right)
|
|
136
|
+
- [ ] Contrast described (light on dark or dark on light)
|
|
137
|
+
- [ ] Size context given (large, prominent, readable at small size)
|
|
138
|
+
|
|
139
|
+
### When Text Quality Is Critical
|
|
140
|
+
|
|
141
|
+
For critical text rendering (legal text, exact brand slogans, phone numbers), generate the image as a background and composite text in post-production. AI text rendering is strong but not pixel-perfect for every character.
|
|
142
|
+
|
|
143
|
+
**Fallback workflow:**
|
|
144
|
+
```
|
|
145
|
+
1. Generate the graphic without text (describe "clean space for text overlay")
|
|
146
|
+
2. Use a design tool to add exact text in post
|
|
147
|
+
3. This guarantees 100% text accuracy at the cost of an extra step
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
For most social media use cases, the configured image model's native text rendering is more than sufficient. The fallback is only needed when every character must be letter-perfect.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Platform Specifications
|
|
155
|
+
|
|
156
|
+
### Instagram
|
|
157
|
+
|
|
158
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
159
|
+
|-----------|-------|--------|-----------|
|
|
160
|
+
| Feed (Square) | 1:1 | 1080x1080 | Full frame |
|
|
161
|
+
| Feed (Portrait) | 4:5 | 1080x1350 | Best engagement |
|
|
162
|
+
| Stories | 9:16 | 1080x1920 | Avoid top 250px, bottom 200px |
|
|
163
|
+
| Reels Cover | 9:16 | 1080x1920 | Center content |
|
|
164
|
+
| Carousel | 1:1 or 4:5 | 1080x1080/1350 | Consistent across slides |
|
|
165
|
+
|
|
166
|
+
**Instagram Visual Language:**
|
|
167
|
+
- Bold, vibrant colors
|
|
168
|
+
- High contrast
|
|
169
|
+
- Clean compositions
|
|
170
|
+
- Scroll-stopping first frame
|
|
171
|
+
- Text minimal (algorithm prefers)
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### YouTube
|
|
176
|
+
|
|
177
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
178
|
+
|-----------|-------|--------|-----------|
|
|
179
|
+
| Thumbnail | 16:9 | 1280x720 | Right 1/3 for timestamp overlay |
|
|
180
|
+
| Channel Banner | 16:9 | 2560x1440 | Safe area: 1546x423 center |
|
|
181
|
+
| Community Post | 1:1 | 1080x1080 | Full frame |
|
|
182
|
+
|
|
183
|
+
**YouTube Thumbnail Formula:**
|
|
184
|
+
```
|
|
185
|
+
FACE + EMOTION + BRIGHT COLOR + CONTRAST + TEXT SPACE
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Thumbnails compete against dozens of others. Survival requires:
|
|
189
|
+
- Human face with exaggerated expression (if relevant)
|
|
190
|
+
- 3 or fewer colors, extremely bold
|
|
191
|
+
- Text readable at phone size
|
|
192
|
+
- Contrast that pops in sidebar
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### LinkedIn
|
|
197
|
+
|
|
198
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
199
|
+
|-----------|-------|--------|-----------|
|
|
200
|
+
| Feed Post | 1.91:1 | 1200x627 | Full frame |
|
|
201
|
+
| Article Header | 1.91:1 | 1200x627 | Full frame |
|
|
202
|
+
| Profile Banner | 4:1 | 1584x396 | Center focal point |
|
|
203
|
+
| Square Post | 1:1 | 1080x1080 | Works well too |
|
|
204
|
+
|
|
205
|
+
**LinkedIn Visual Language:**
|
|
206
|
+
- Professional but not boring
|
|
207
|
+
- Clean, sophisticated aesthetics
|
|
208
|
+
- Thought leadership positioning
|
|
209
|
+
- Data visualization performs well
|
|
210
|
+
- Avoid overly casual/meme-y
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### Twitter/X
|
|
215
|
+
|
|
216
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
217
|
+
|-----------|-------|--------|-----------|
|
|
218
|
+
| Feed Image | 16:9 | 1200x675 | Optimal |
|
|
219
|
+
| Feed Image | 1.91:1 | 1200x628 | Also works |
|
|
220
|
+
| Feed Image | 1:1 | 1080x1080 | Square option |
|
|
221
|
+
| Header | 3:1 | 1500x500 | Safe area centered |
|
|
222
|
+
|
|
223
|
+
**Twitter Visual Language:**
|
|
224
|
+
- High contrast (dark mode dominant)
|
|
225
|
+
- Bold, shareable visuals
|
|
226
|
+
- Meme-adjacent aesthetics OK
|
|
227
|
+
- Hot takes benefit from visual punch
|
|
228
|
+
- Screenshots of text perform well
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### TikTok
|
|
233
|
+
|
|
234
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
235
|
+
|-----------|-------|--------|-----------|
|
|
236
|
+
| Video Cover | 9:16 | 1080x1920 | Avoid bottom 150px (UI) |
|
|
237
|
+
| Profile | 1:1 | 200x200 | Keep simple |
|
|
238
|
+
|
|
239
|
+
**TikTok Visual Language:**
|
|
240
|
+
- Native, not polished
|
|
241
|
+
- "Shot on phone" aesthetic often wins
|
|
242
|
+
- Bold text overlays
|
|
243
|
+
- Faces perform
|
|
244
|
+
- Trend-aware styling
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
### Pinterest
|
|
249
|
+
|
|
250
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
251
|
+
|-----------|-------|--------|-----------|
|
|
252
|
+
| Standard Pin | 2:3 | 1000x1500 | Optimal |
|
|
253
|
+
| Long Pin | 1:2.1 | 1000x2100 | More real estate |
|
|
254
|
+
| Square Pin | 1:1 | 1000x1000 | Works but less optimal |
|
|
255
|
+
|
|
256
|
+
**Pinterest Visual Language:**
|
|
257
|
+
- Aspirational aesthetic
|
|
258
|
+
- Warm, inviting tones
|
|
259
|
+
- Clear text overlay (Pinterest users read)
|
|
260
|
+
- Step-by-step works well
|
|
261
|
+
- Lifestyle context
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### Facebook
|
|
266
|
+
|
|
267
|
+
| Placement | Ratio | Pixels | Safe Zone |
|
|
268
|
+
|-----------|-------|--------|-----------|
|
|
269
|
+
| Feed Post | 1.91:1 | 1200x630 | Standard |
|
|
270
|
+
| Square Post | 1:1 | 1080x1080 | Also works |
|
|
271
|
+
| Story | 9:16 | 1080x1920 | Same as Instagram |
|
|
272
|
+
| Cover Photo | 16:9 | 820x312 (desktop display) | Safe area center |
|
|
273
|
+
|
|
274
|
+
**Facebook Visual Language:**
|
|
275
|
+
- Broader demographic appeal
|
|
276
|
+
- Less edgy than Twitter
|
|
277
|
+
- Community/family vibes
|
|
278
|
+
- Video thumbnails important
|
|
279
|
+
- Event graphics common
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Platform-Specific Prompt Templates
|
|
284
|
+
|
|
285
|
+
### Instagram Feed (4:5 Portrait)
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
[Subject] for Instagram feed, bold vibrant colors,
|
|
289
|
+
clean minimal composition, scroll-stopping visual impact,
|
|
290
|
+
high contrast, lifestyle aesthetic, modern photography style,
|
|
291
|
+
portrait 4:5 composition, subject centered with breathing room,
|
|
292
|
+
professional quality, engaging immediate appeal
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**What makes it work:**
|
|
296
|
+
- "Bold vibrant colors" — Algorithm favors engagement
|
|
297
|
+
- "Scroll-stopping" — Primes for thumb-pausing moment
|
|
298
|
+
- "4:5 composition" — Optimal feed real estate
|
|
299
|
+
- "Breathing room" — Space for engagement UI elements
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
### Instagram Stories (9:16)
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
[Subject] for Instagram Stories, vertical 9:16 composition,
|
|
307
|
+
subject centered in middle third (avoiding top and bottom),
|
|
308
|
+
bold engaging visual, bright colors, clean composition,
|
|
309
|
+
space for text overlay or sticker placement,
|
|
310
|
+
story-native aesthetic, immediate visual impact
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**What makes it work:**
|
|
314
|
+
- "Middle third" — Avoids UI overlay zones
|
|
315
|
+
- "Space for text/sticker" — Interactive element room
|
|
316
|
+
- "Story-native" — Matches platform expectation
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
### YouTube Thumbnail
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
YouTube thumbnail style, [subject/person] with [emotion] expression,
|
|
324
|
+
high contrast dramatic lighting, bold vibrant colors,
|
|
325
|
+
clean background for text overlay on [left/right] side,
|
|
326
|
+
click-worthy composition, face prominent in frame,
|
|
327
|
+
professional thumbnail aesthetic, extreme visual clarity
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Emotion Modifiers:**
|
|
331
|
+
| Emotion | Prompt Addition |
|
|
332
|
+
|---------|-----------------|
|
|
333
|
+
| Surprise | "shocked expression, wide eyes, raised eyebrows, open mouth" |
|
|
334
|
+
| Excitement | "excited expression, big genuine smile, enthusiastic energy" |
|
|
335
|
+
| Curiosity | "intrigued expression, raised eyebrow, knowing look" |
|
|
336
|
+
| Confidence | "confident expression, slight smirk, assured posture" |
|
|
337
|
+
| Concern | "concerned expression, worried face, serious" |
|
|
338
|
+
|
|
339
|
+
**Color Psychology for Thumbnails:**
|
|
340
|
+
| Color | Best For | Why |
|
|
341
|
+
|-------|----------|-----|
|
|
342
|
+
| Yellow | Most click-worthy | Highest attention in sidebar |
|
|
343
|
+
| Red | Urgency, drama | Hot takes, breaking news |
|
|
344
|
+
| Blue | Tech, education | Trust, authority |
|
|
345
|
+
| Green | Money, success | Finance, growth |
|
|
346
|
+
| Orange | Entertainment | Warm, inviting |
|
|
347
|
+
| Purple | Creative, unique | Stands out from typical |
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
### LinkedIn Professional
|
|
352
|
+
|
|
353
|
+
```
|
|
354
|
+
Professional LinkedIn graphic, [subject/concept],
|
|
355
|
+
clean sophisticated aesthetic, corporate-appropriate colors,
|
|
356
|
+
thought leadership positioning, business context,
|
|
357
|
+
modern professional photography style, confident tone,
|
|
358
|
+
1.91:1 landscape composition, space for headline overlay,
|
|
359
|
+
high-end professional quality
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**LinkedIn Variations:**
|
|
363
|
+
- **Data/Insight:** Add "data visualization style, clean infographic aesthetic"
|
|
364
|
+
- **Personal Brand:** Add "executive portrait style, approachable authority"
|
|
365
|
+
- **Company:** Add "brand-aligned color palette, corporate identity"
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
### Twitter/X Post
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
Twitter-optimized graphic, [subject], high contrast for dark mode,
|
|
373
|
+
bold simple composition, shareable visual impact,
|
|
374
|
+
16:9 landscape, punchy immediate appeal,
|
|
375
|
+
conversation-starter aesthetic, timeline scroll-stopping,
|
|
376
|
+
clean professional quality with edge
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
**Twitter Variations:**
|
|
380
|
+
- **Hot Take:** Add "provocative visual tension, bold statement energy"
|
|
381
|
+
- **Thread Intro:** Add "curiosity-inducing, incomplete story visual"
|
|
382
|
+
- **Data/Stat:** Add "stark data visualization, number prominent"
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
### Pinterest Pin
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
Pinterest pin style, [subject] in aspirational setting,
|
|
390
|
+
vertical 2:3 composition, rich warm aesthetic,
|
|
391
|
+
inspirational lifestyle photography, save-worthy visual,
|
|
392
|
+
clear space at top for text overlay, beautiful staging,
|
|
393
|
+
high-quality editorial feel, dreamy aspirational mood
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Pinterest Performs Best With:**
|
|
397
|
+
- Step-by-step previews
|
|
398
|
+
- Before/after concepts
|
|
399
|
+
- Lifestyle aspiration
|
|
400
|
+
- How-to previews
|
|
401
|
+
- Collection/roundup style
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
### TikTok Cover
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
TikTok cover image, [subject/scene], vertical 9:16,
|
|
409
|
+
native authentic aesthetic (not over-produced),
|
|
410
|
+
bold engaging composition, face-forward if person,
|
|
411
|
+
content centered above bottom navigation area,
|
|
412
|
+
trend-aware styling, scroll-stopping thumbnail,
|
|
413
|
+
high contrast, clear at small size
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## Content Type Templates
|
|
419
|
+
|
|
420
|
+
### Quote Graphics
|
|
421
|
+
|
|
422
|
+
the configured image model handles text rendering directly. Use the text rendering instructions from the [Text Rendering Instructions](#text-rendering-instructions) section.
|
|
423
|
+
|
|
424
|
+
```
|
|
425
|
+
Minimalist quote graphic for [platform],
|
|
426
|
+
text "[QUOTE TEXT]" in [typography style] font,
|
|
427
|
+
clean background, [color palette],
|
|
428
|
+
text centered in frame with generous padding,
|
|
429
|
+
sophisticated aesthetic, modern design,
|
|
430
|
+
[aspect ratio for platform]
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
**For quotes longer than 6 words:** Split into multiple lines in the prompt, or generate the background and composite text in post-production.
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
### Product Announcement
|
|
438
|
+
|
|
439
|
+
```
|
|
440
|
+
Product announcement graphic for [platform],
|
|
441
|
+
[product] hero shot, celebration/launch energy,
|
|
442
|
+
bold attention-grabbing composition, premium aesthetic,
|
|
443
|
+
space for headline and details, excitement visual,
|
|
444
|
+
[platform-specific aspect ratio], commercial quality
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
### Event Promotion
|
|
450
|
+
|
|
451
|
+
```
|
|
452
|
+
Event promotion graphic for [platform], [event type] theme,
|
|
453
|
+
engaging inviting composition, date/time visual priority,
|
|
454
|
+
exciting anticipation mood, bold readable design,
|
|
455
|
+
[platform aspect ratio], event marketing aesthetic
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
### Behind-the-Scenes
|
|
461
|
+
|
|
462
|
+
```
|
|
463
|
+
Behind-the-scenes content for [platform],
|
|
464
|
+
authentic candid aesthetic, real moment capture,
|
|
465
|
+
[subject/scene], genuine unpolished feel,
|
|
466
|
+
personality-forward composition, relatable vibe,
|
|
467
|
+
[platform aspect ratio], native platform aesthetic
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
### Testimonial/Social Proof
|
|
473
|
+
|
|
474
|
+
```
|
|
475
|
+
Testimonial graphic for [platform], clean professional design,
|
|
476
|
+
space for quote text, trustworthy aesthetic,
|
|
477
|
+
person placeholder or abstract human element,
|
|
478
|
+
credibility-building composition, [brand colors],
|
|
479
|
+
[platform aspect ratio]
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## Style Exploration (Before Execution)
|
|
485
|
+
|
|
486
|
+
**Critical insight:** Don't lock into one style early. Generate multiple genuinely DIFFERENT visual directions first.
|
|
487
|
+
|
|
488
|
+
### Why This Matters for Social Graphics
|
|
489
|
+
|
|
490
|
+
Social graphics live in noisy feeds. The "right" style isn't obvious — it depends on:
|
|
491
|
+
- Platform visual language
|
|
492
|
+
- Audience expectations
|
|
493
|
+
- Competitive landscape
|
|
494
|
+
- Brand positioning
|
|
495
|
+
|
|
496
|
+
**One style = hope. Multiple styles = informed choice.**
|
|
497
|
+
|
|
498
|
+
### The Style Exploration Process
|
|
499
|
+
|
|
500
|
+
```
|
|
501
|
+
1. GENERATE 4-5 DIFFERENT STYLES
|
|
502
|
+
-> Not variations of one style
|
|
503
|
+
-> Genuinely different visual languages
|
|
504
|
+
-> Same subject, different aesthetic approaches
|
|
505
|
+
|
|
506
|
+
2. IDENTIFY WINNER
|
|
507
|
+
-> Which stops the scroll?
|
|
508
|
+
-> Which matches platform vibe?
|
|
509
|
+
-> Which feels most "brand"?
|
|
510
|
+
|
|
511
|
+
3. EXTRACT PRINCIPLES
|
|
512
|
+
-> What makes this style work?
|
|
513
|
+
-> Color palette?
|
|
514
|
+
-> Composition approach?
|
|
515
|
+
-> Lighting mood?
|
|
516
|
+
|
|
517
|
+
4. APPLY TO FORMATS
|
|
518
|
+
-> Same principles, different platforms
|
|
519
|
+
-> Build content SYSTEM
|
|
520
|
+
-> Repeatable, not one-off
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
### Style Exploration Prompt Template
|
|
524
|
+
|
|
525
|
+
For any new social graphics project, generate these 5 directions:
|
|
526
|
+
|
|
527
|
+
```
|
|
528
|
+
Style 1 - Clean Minimal:
|
|
529
|
+
[Subject] for [platform], clean minimal aesthetic, white space,
|
|
530
|
+
single focal point, modern typography space, sophisticated restraint
|
|
531
|
+
|
|
532
|
+
Style 2 - Bold Vibrant:
|
|
533
|
+
[Subject] for [platform], bold vibrant colors, high contrast,
|
|
534
|
+
dynamic composition, energetic attention-grabbing
|
|
535
|
+
|
|
536
|
+
Style 3 - Warm Lifestyle:
|
|
537
|
+
[Subject] for [platform], warm lifestyle aesthetic, natural tones,
|
|
538
|
+
authentic feeling, relatable human-centered
|
|
539
|
+
|
|
540
|
+
Style 4 - Dark & Premium:
|
|
541
|
+
[Subject] for [platform], dark moody aesthetic, premium feel,
|
|
542
|
+
sophisticated lighting, luxury positioning
|
|
543
|
+
|
|
544
|
+
Style 5 - Playful Creative:
|
|
545
|
+
[Subject] for [platform], playful creative aesthetic, unexpected angles,
|
|
546
|
+
personality-forward, memorable differentiation
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
### Style Decision Framework
|
|
550
|
+
|
|
551
|
+
After generating options:
|
|
552
|
+
|
|
553
|
+
| Question | Guides Toward |
|
|
554
|
+
|----------|---------------|
|
|
555
|
+
| Does brand feel established/premium? | Dark & Premium or Clean Minimal |
|
|
556
|
+
| Is brand approachable/friendly? | Warm Lifestyle or Playful Creative |
|
|
557
|
+
| Competing against boring competitors? | Bold Vibrant or Playful Creative |
|
|
558
|
+
| Professional B2B context? | Clean Minimal or Dark & Premium |
|
|
559
|
+
| Consumer/lifestyle product? | Warm Lifestyle or Bold Vibrant |
|
|
560
|
+
|
|
561
|
+
### Extract Principles Template
|
|
562
|
+
|
|
563
|
+
Once winner is identified, document:
|
|
564
|
+
|
|
565
|
+
```markdown
|
|
566
|
+
## Winning Style: [Name]
|
|
567
|
+
|
|
568
|
+
**What makes it work:**
|
|
569
|
+
- Color palette: [specific colors]
|
|
570
|
+
- Composition: [approach]
|
|
571
|
+
- Lighting: [mood/direction]
|
|
572
|
+
- Typography space: [how handled]
|
|
573
|
+
- Mood: [feeling it creates]
|
|
574
|
+
|
|
575
|
+
**Apply to other platforms:**
|
|
576
|
+
- Instagram Feed: [how to adapt]
|
|
577
|
+
- LinkedIn: [how to adapt]
|
|
578
|
+
- Twitter: [how to adapt]
|
|
579
|
+
- etc.
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
This creates a repeatable SYSTEM, not just one graphic.
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
## Template System
|
|
587
|
+
|
|
588
|
+
The template system stores brand layouts in `./brand/creative-kit.md` so every graphic stays on-brand without re-specifying visual identity each time.
|
|
589
|
+
|
|
590
|
+
### How Templates Work
|
|
591
|
+
|
|
592
|
+
1. **First generation:** Explore styles, pick a winner, extract principles
|
|
593
|
+
2. **Save template:** Store the winning style as a named template in `creative-kit.md`
|
|
594
|
+
3. **Reuse:** All future graphics reference the template for instant brand consistency
|
|
595
|
+
4. **Evolve:** Update the template when brand evolves — all future content follows
|
|
596
|
+
|
|
597
|
+
### Template Schema
|
|
598
|
+
|
|
599
|
+
Store templates in the `## Social Graphics Templates` section of `./brand/creative-kit.md`:
|
|
600
|
+
|
|
601
|
+
```markdown
|
|
602
|
+
## Social Graphics Templates
|
|
603
|
+
|
|
604
|
+
### Template: [template-name]
|
|
605
|
+
|
|
606
|
+
**Created:** [date]
|
|
607
|
+
**Style Family:** [Clean Minimal / Bold Vibrant / Warm Lifestyle / Dark Premium / Playful Creative]
|
|
608
|
+
|
|
609
|
+
**Visual Identity:**
|
|
610
|
+
- Primary colors: [hex codes or descriptions]
|
|
611
|
+
- Secondary colors: [hex codes or descriptions]
|
|
612
|
+
- Background style: [gradient/solid/textured/photographic]
|
|
613
|
+
- Mood: [one-line description]
|
|
614
|
+
|
|
615
|
+
**Typography:**
|
|
616
|
+
- Headline font style: [bold sans-serif / elegant serif / etc.]
|
|
617
|
+
- Body font style: [clean sans-serif / etc.]
|
|
618
|
+
- Text color: [color on what background]
|
|
619
|
+
- Text placement: [top/center/bottom preference]
|
|
620
|
+
|
|
621
|
+
**Composition Rules:**
|
|
622
|
+
- Subject placement: [centered / rule of thirds / left-weighted / etc.]
|
|
623
|
+
- Negative space: [generous / tight / balanced]
|
|
624
|
+
- Visual hierarchy: [what draws eye first, second, third]
|
|
625
|
+
|
|
626
|
+
**Platform Adaptations:**
|
|
627
|
+
- Instagram Feed: [specific notes]
|
|
628
|
+
- Instagram Stories: [specific notes]
|
|
629
|
+
- LinkedIn: [specific notes]
|
|
630
|
+
- Twitter: [specific notes]
|
|
631
|
+
- YouTube Thumbnail: [specific notes]
|
|
632
|
+
|
|
633
|
+
**Prompt Prefix:**
|
|
634
|
+
[The standard prompt fragment to prepend to all generations using this template]
|
|
635
|
+
|
|
636
|
+
**Prompt Suffix:**
|
|
637
|
+
[The standard prompt fragment to append to all generations using this template]
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
### Using a Template
|
|
641
|
+
|
|
642
|
+
When generating with a saved template:
|
|
643
|
+
|
|
644
|
+
```
|
|
645
|
+
1. Read ./brand/creative-kit.md
|
|
646
|
+
2. Find the matching template by name
|
|
647
|
+
3. Construct the prompt:
|
|
648
|
+
[template prompt prefix] + [specific content for this graphic] + [template prompt suffix]
|
|
649
|
+
4. Apply the platform-specific aspect ratio
|
|
650
|
+
5. Generate via MODEL_REGISTRY.md payload
|
|
651
|
+
6. Review against template's composition rules
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
### Template Examples
|
|
655
|
+
|
|
656
|
+
**Example: SaaS Brand "TechForward"**
|
|
657
|
+
```markdown
|
|
658
|
+
### Template: techforward-social
|
|
659
|
+
|
|
660
|
+
**Created:** 2026-02-16
|
|
661
|
+
**Style Family:** Clean Minimal
|
|
662
|
+
|
|
663
|
+
**Visual Identity:**
|
|
664
|
+
- Primary colors: electric blue (#0066FF), white (#FFFFFF)
|
|
665
|
+
- Secondary colors: slate gray (#64748B), light gray (#F1F5F9)
|
|
666
|
+
- Background style: clean gradient from white to light gray
|
|
667
|
+
- Mood: confident, modern, trustworthy
|
|
668
|
+
|
|
669
|
+
**Typography:**
|
|
670
|
+
- Headline font style: bold clean sans-serif, geometric letterforms
|
|
671
|
+
- Body font style: light sans-serif
|
|
672
|
+
- Text color: electric blue or white depending on background
|
|
673
|
+
- Text placement: centered or left-aligned
|
|
674
|
+
|
|
675
|
+
**Composition Rules:**
|
|
676
|
+
- Subject placement: centered with generous padding
|
|
677
|
+
- Negative space: generous — let the content breathe
|
|
678
|
+
- Visual hierarchy: headline > visual element > supporting detail
|
|
679
|
+
|
|
680
|
+
**Prompt Prefix:**
|
|
681
|
+
"Clean modern tech aesthetic, electric blue and white color scheme, sophisticated minimal design, professional SaaS brand feel,"
|
|
682
|
+
|
|
683
|
+
**Prompt Suffix:**
|
|
684
|
+
"high-end professional quality, modern technology brand, clean white space, confident authoritative tone"
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
**Example: Lifestyle Brand "Glow Naturals"**
|
|
688
|
+
```markdown
|
|
689
|
+
### Template: glow-naturals-social
|
|
690
|
+
|
|
691
|
+
**Created:** 2026-02-16
|
|
692
|
+
**Style Family:** Warm Lifestyle
|
|
693
|
+
|
|
694
|
+
**Visual Identity:**
|
|
695
|
+
- Primary colors: warm terracotta (#C67A4B), cream (#FFF8F0)
|
|
696
|
+
- Secondary colors: sage green (#8FAE7E), soft gold (#D4A574)
|
|
697
|
+
- Background style: warm natural textures, soft light
|
|
698
|
+
- Mood: warm, authentic, nurturing, natural
|
|
699
|
+
|
|
700
|
+
**Typography:**
|
|
701
|
+
- Headline font style: elegant serif with organic feel
|
|
702
|
+
- Body font style: clean rounded sans-serif
|
|
703
|
+
- Text color: terracotta or cream depending on background
|
|
704
|
+
- Text placement: centered or overlaid on negative space in photos
|
|
705
|
+
|
|
706
|
+
**Composition Rules:**
|
|
707
|
+
- Subject placement: slightly off-center, lifestyle context
|
|
708
|
+
- Negative space: balanced — not cluttered but not empty
|
|
709
|
+
- Visual hierarchy: hero image > headline > product detail
|
|
710
|
+
|
|
711
|
+
**Prompt Prefix:**
|
|
712
|
+
"Warm natural lifestyle aesthetic, terracotta and cream tones, organic authentic feel, soft golden hour lighting,"
|
|
713
|
+
|
|
714
|
+
**Prompt Suffix:**
|
|
715
|
+
"beautiful natural styling, warm inviting mood, lifestyle editorial quality, aspirational but approachable"
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
## Content Calendar Mode
|
|
721
|
+
|
|
722
|
+
Generate a full week (or more) of on-brand social graphics in a single session. Each graphic gets a unique concept while maintaining brand consistency through the template system.
|
|
723
|
+
|
|
724
|
+
### How Content Calendar Mode Works
|
|
725
|
+
|
|
726
|
+
```
|
|
727
|
+
1. USER PROVIDES:
|
|
728
|
+
- Brand/template name (must exist in creative-kit.md)
|
|
729
|
+
- Platform(s) to target
|
|
730
|
+
- Number of posts (e.g., "7 days of Instagram content")
|
|
731
|
+
- Content themes or pillars (optional but recommended)
|
|
732
|
+
- Campaign name for file organization
|
|
733
|
+
|
|
734
|
+
2. ENGINE GENERATES:
|
|
735
|
+
- One graphic per day/slot with unique concept
|
|
736
|
+
- Matching captions with hashtags
|
|
737
|
+
- Consistent visual identity across all posts
|
|
738
|
+
- Platform-optimized for each target
|
|
739
|
+
- Organized file output
|
|
740
|
+
|
|
741
|
+
3. OUTPUT:
|
|
742
|
+
- Images saved to ./campaigns/{campaign}/social/{platform}/
|
|
743
|
+
- Calendar summary with dates, concepts, captions
|
|
744
|
+
- All graphics reference the same template for brand consistency
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
### Content Pillar System
|
|
748
|
+
|
|
749
|
+
Organize posts around content pillars to ensure variety:
|
|
750
|
+
|
|
751
|
+
| Pillar | Purpose | Example |
|
|
752
|
+
|--------|---------|---------|
|
|
753
|
+
| **Educate** | Teach something useful | Tips, how-tos, explainers |
|
|
754
|
+
| **Inspire** | Motivate or uplift | Quotes, success stories, vision |
|
|
755
|
+
| **Engage** | Start conversations | Questions, polls, hot takes |
|
|
756
|
+
| **Promote** | Drive action | Product features, offers, CTAs |
|
|
757
|
+
| **Entertain** | Build affinity | Behind-scenes, humor, trends |
|
|
758
|
+
| **Connect** | Build community | User stories, team spotlights, values |
|
|
759
|
+
|
|
760
|
+
### Weekly Calendar Template (7 posts)
|
|
761
|
+
|
|
762
|
+
```
|
|
763
|
+
Monday - Educate | "Tip of the week" or how-to
|
|
764
|
+
Tuesday - Inspire | Quote or success story
|
|
765
|
+
Wednesday - Engage | Question or conversation starter
|
|
766
|
+
Thursday - Promote | Product feature or offer
|
|
767
|
+
Friday - Entertain | Behind-the-scenes or fun content
|
|
768
|
+
Saturday - Connect | Community spotlight or values
|
|
769
|
+
Sunday - Inspire | Motivational or reflective
|
|
770
|
+
```
|
|
771
|
+
|
|
772
|
+
### Content Calendar Execution
|
|
773
|
+
|
|
774
|
+
For each post in the calendar:
|
|
775
|
+
|
|
776
|
+
```
|
|
777
|
+
Step 1: Load template from creative-kit.md
|
|
778
|
+
Step 2: Select content pillar for this slot
|
|
779
|
+
Step 3: Generate concept (subject + message)
|
|
780
|
+
Step 4: Construct prompt:
|
|
781
|
+
[template prefix] + [platform template] + [specific concept] + [template suffix]
|
|
782
|
+
Step 5: Set aspect ratio for target platform
|
|
783
|
+
Step 6: Generate image via MODEL_REGISTRY.md
|
|
784
|
+
Step 7: Write caption with hashtags
|
|
785
|
+
Step 8: Save to ./campaigns/{campaign}/social/{platform}/day-{N}-{pillar}.png
|
|
786
|
+
Step 9: Log to calendar summary
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
### Calendar Output Format
|
|
790
|
+
|
|
791
|
+
After generating all posts, produce a calendar summary:
|
|
792
|
+
|
|
793
|
+
```markdown
|
|
794
|
+
## Content Calendar: {campaign}
|
|
795
|
+
|
|
796
|
+
**Brand:** {brand/template name}
|
|
797
|
+
**Platform:** {platform}
|
|
798
|
+
**Period:** {start date} - {end date}
|
|
799
|
+
**Template Used:** {template name from creative-kit.md}
|
|
800
|
+
|
|
801
|
+
### Day 1 — Monday — Educate
|
|
802
|
+
**Concept:** [description]
|
|
803
|
+
**Image:** ./campaigns/{campaign}/social/{platform}/day-1-educate.png
|
|
804
|
+
**Caption:**
|
|
805
|
+
> [Caption text with hashtags]
|
|
806
|
+
|
|
807
|
+
**Image URL:** [generation URL]
|
|
808
|
+
|
|
809
|
+
---
|
|
810
|
+
|
|
811
|
+
### Day 2 — Tuesday — Inspire
|
|
812
|
+
**Concept:** [description]
|
|
813
|
+
**Image:** ./campaigns/{campaign}/social/{platform}/day-2-inspire.png
|
|
814
|
+
**Caption:**
|
|
815
|
+
> [Caption text with hashtags]
|
|
816
|
+
|
|
817
|
+
**Image URL:** [generation URL]
|
|
818
|
+
|
|
819
|
+
---
|
|
820
|
+
|
|
821
|
+
[... repeat for each day ...]
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
### Multi-Platform Calendar
|
|
825
|
+
|
|
826
|
+
When generating for multiple platforms simultaneously:
|
|
827
|
+
|
|
828
|
+
```
|
|
829
|
+
./campaigns/{campaign}/social/
|
|
830
|
+
├── instagram/
|
|
831
|
+
│ ├── day-1-educate.png (4:5)
|
|
832
|
+
│ ├── day-2-inspire.png (4:5)
|
|
833
|
+
│ ├── ...
|
|
834
|
+
│ └── day-7-inspire.png (4:5)
|
|
835
|
+
├── linkedin/
|
|
836
|
+
│ ├── day-1-educate.png (1.91:1)
|
|
837
|
+
│ ├── day-2-inspire.png (1.91:1)
|
|
838
|
+
│ ├── ...
|
|
839
|
+
│ └── day-7-inspire.png (1.91:1)
|
|
840
|
+
├── twitter/
|
|
841
|
+
│ ├── day-1-educate.png (16:9)
|
|
842
|
+
│ ├── ...
|
|
843
|
+
│ └── day-7-inspire.png (16:9)
|
|
844
|
+
└── calendar-summary.md
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
Each platform variant uses the same concept but adapts composition and aspect ratio. The template's platform adaptation notes guide the differences.
|
|
848
|
+
|
|
849
|
+
---
|
|
850
|
+
|
|
851
|
+
## Per-Platform Auto-Adaptation
|
|
852
|
+
|
|
853
|
+
When a graphic needs to exist across multiple platforms, automatically adapt it rather than requiring manual re-prompting for each.
|
|
854
|
+
|
|
855
|
+
### Auto-Adaptation Workflow
|
|
856
|
+
|
|
857
|
+
```
|
|
858
|
+
1. Generate PRIMARY graphic (user's specified platform or highest-priority)
|
|
859
|
+
2. Extract the core concept and visual approach from the prompt
|
|
860
|
+
3. For each additional platform:
|
|
861
|
+
a. Look up platform specs (ratio, safe zones, visual language)
|
|
862
|
+
b. Modify the prompt for platform-specific requirements
|
|
863
|
+
c. Apply platform-specific aspect ratio
|
|
864
|
+
d. Generate the adapted variant
|
|
865
|
+
e. Save to platform-specific directory
|
|
866
|
+
4. Present all variants for review
|
|
867
|
+
```
|
|
868
|
+
|
|
869
|
+
### Platform Adaptation Rules
|
|
870
|
+
|
|
871
|
+
| From | To | Adaptation |
|
|
872
|
+
|------|----|------------|
|
|
873
|
+
| Instagram Feed (4:5) | Stories (9:16) | Recenter subject in middle third, add vertical breathing room |
|
|
874
|
+
| Instagram Feed (4:5) | LinkedIn (1.91:1) | Widen composition, add professional tone language, shift to landscape |
|
|
875
|
+
| Instagram Feed (4:5) | Twitter (16:9) | Widen to landscape, increase contrast for dark mode, add edge/punch |
|
|
876
|
+
| Instagram Feed (4:5) | Pinterest (2:3) | Extend vertical, add text overlay space at top, warm aspirational tone |
|
|
877
|
+
| Instagram Feed (4:5) | Facebook (1.91:1) | Similar to LinkedIn but broader demographic appeal language |
|
|
878
|
+
| YouTube Thumbnail (16:9) | Twitter (16:9) | Can often use as-is (both 16:9), reduce click-bait energy if needed |
|
|
879
|
+
| LinkedIn (1.91:1) | Facebook (1.91:1) | Minimal change (similar ratios), soften corporate tone slightly |
|
|
880
|
+
| Pinterest (2:3) | Instagram Feed (4:5) | Crop or reimagine for square-ish format, maintain warm tones |
|
|
881
|
+
| Any format | Stories/TikTok (9:16) | Full vertical recomposition needed — cannot simply crop |
|
|
882
|
+
|
|
883
|
+
### Prompt Adaptation Modifiers
|
|
884
|
+
|
|
885
|
+
When adapting a prompt from one platform to another, apply these modifiers:
|
|
886
|
+
|
|
887
|
+
**To Instagram:**
|
|
888
|
+
```
|
|
889
|
+
Add: "bold vibrant colors, clean composition, scroll-stopping, lifestyle aesthetic"
|
|
890
|
+
Ratio: 4:5 (feed) or 9:16 (stories)
|
|
891
|
+
```
|
|
892
|
+
|
|
893
|
+
**To LinkedIn:**
|
|
894
|
+
```
|
|
895
|
+
Add: "professional sophisticated aesthetic, corporate-appropriate, thought leadership"
|
|
896
|
+
Remove: any casual/meme/trendy language
|
|
897
|
+
Ratio: 1.91:1
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
**To Twitter/X:**
|
|
901
|
+
```
|
|
902
|
+
Add: "high contrast for dark mode, bold shareable, punchy immediate appeal"
|
|
903
|
+
Ratio: 16:9
|
|
904
|
+
```
|
|
905
|
+
|
|
906
|
+
**To Pinterest:**
|
|
907
|
+
```
|
|
908
|
+
Add: "aspirational lifestyle, warm inviting, save-worthy, editorial quality"
|
|
909
|
+
Ratio: 2:3
|
|
910
|
+
```
|
|
911
|
+
|
|
912
|
+
**To TikTok:**
|
|
913
|
+
```
|
|
914
|
+
Add: "native authentic aesthetic, not over-produced, trend-aware"
|
|
915
|
+
Remove: any overly polished/corporate language
|
|
916
|
+
Ratio: 9:16
|
|
917
|
+
```
|
|
918
|
+
|
|
919
|
+
**To Facebook:**
|
|
920
|
+
```
|
|
921
|
+
Add: "broad demographic appeal, community-friendly, engaging"
|
|
922
|
+
Ratio: 1.91:1
|
|
923
|
+
```
|
|
924
|
+
|
|
925
|
+
### Auto-Adaptation API Pattern
|
|
926
|
+
|
|
927
|
+
For each adapted platform, construct and execute a separate API call:
|
|
928
|
+
|
|
929
|
+
```json
|
|
930
|
+
{
|
|
931
|
+
"model": "[see MODEL_REGISTRY.md]",
|
|
932
|
+
"input": {
|
|
933
|
+
"prompt": "{{adapted_prompt_with_platform_modifiers}}",
|
|
934
|
+
"aspect_ratio": "{{platform_ratio}}",
|
|
935
|
+
"output_format": "png",
|
|
936
|
+
"output_quality": 90,
|
|
937
|
+
"number_of_images": 1
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
```
|
|
941
|
+
|
|
942
|
+
Generate all platform variants in parallel when possible to minimize total wait time.
|
|
943
|
+
|
|
944
|
+
---
|
|
945
|
+
|
|
946
|
+
## Execution Workflow
|
|
947
|
+
|
|
948
|
+
### Step 1: Read Brand Context
|
|
949
|
+
|
|
950
|
+
```
|
|
951
|
+
□ Check ./brand/creative-kit.md for existing templates
|
|
952
|
+
□ If template exists, load it
|
|
953
|
+
□ If no template, proceed with style exploration first
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
### Step 2: Platform Requirements
|
|
957
|
+
|
|
958
|
+
```
|
|
959
|
+
□ Which platform(s)?
|
|
960
|
+
□ Which placement? (feed/stories/cover/etc.)
|
|
961
|
+
□ Aspect ratio confirmed?
|
|
962
|
+
□ Safe zones understood?
|
|
963
|
+
□ Multi-platform needed?
|
|
964
|
+
```
|
|
965
|
+
|
|
966
|
+
### Step 3: Content Type
|
|
967
|
+
|
|
968
|
+
```
|
|
969
|
+
□ What type of content? (announcement/quote/product/etc.)
|
|
970
|
+
□ Text overlay needed? (use Text Rendering Instructions)
|
|
971
|
+
□ Brand colors required?
|
|
972
|
+
□ Specific elements must include?
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
### Step 4: Construct Platform-Optimized Prompt
|
|
976
|
+
|
|
977
|
+
Use templates above, customize for specific need. If using a saved template, prepend prefix and append suffix.
|
|
978
|
+
|
|
979
|
+
### Step 5: Generate
|
|
980
|
+
|
|
981
|
+
Refer to `brand/stack.md` for the verified API payload. Insert your prompt and aspect ratio.
|
|
982
|
+
|
|
983
|
+
```
|
|
984
|
+
1. Open brand/stack.md
|
|
985
|
+
2. Copy the Image Generation verified payload
|
|
986
|
+
3. Insert prompt and aspect_ratio
|
|
987
|
+
4. Execute via generation API
|
|
988
|
+
5. Access output[0] for the image URL
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
### Step 6: Platform-Specific Review
|
|
992
|
+
|
|
993
|
+
Check against platform requirements:
|
|
994
|
+
- Correct ratio?
|
|
995
|
+
- Safe zones respected?
|
|
996
|
+
- Visual language matches platform?
|
|
997
|
+
- Scroll-stopping quality?
|
|
998
|
+
- Text space if needed?
|
|
999
|
+
- Text rendering clean? (if applicable)
|
|
1000
|
+
|
|
1001
|
+
### Step 7: Save Output
|
|
1002
|
+
|
|
1003
|
+
```
|
|
1004
|
+
Save to: ./campaigns/{campaign}/social/{platform}/{descriptive-name}.png
|
|
1005
|
+
```
|
|
1006
|
+
|
|
1007
|
+
### Step 8: Iterate or Approve
|
|
1008
|
+
|
|
1009
|
+
If multi-platform, generate adapted variants for remaining platforms.
|
|
1010
|
+
|
|
1011
|
+
---
|
|
1012
|
+
|
|
1013
|
+
## Multi-Platform Scaling
|
|
1014
|
+
|
|
1015
|
+
When one concept needs multiple platforms:
|
|
1016
|
+
|
|
1017
|
+
### Strategy: Generate Primary, Then Adapt
|
|
1018
|
+
|
|
1019
|
+
```
|
|
1020
|
+
1. Generate for PRIMARY platform (where it matters most)
|
|
1021
|
+
2. Approve composition and style
|
|
1022
|
+
3. Generate variants for other platforms
|
|
1023
|
+
- Adjust aspect ratio
|
|
1024
|
+
- Adjust composition for different safe zones
|
|
1025
|
+
- Apply platform-specific prompt modifiers
|
|
1026
|
+
- Maintain visual consistency
|
|
1027
|
+
4. Save each variant to its platform directory
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
### Platform Adaptation Matrix
|
|
1031
|
+
|
|
1032
|
+
| From -> To | Composition Change |
|
|
1033
|
+
|-----------|-------------------|
|
|
1034
|
+
| Instagram Feed -> Stories | Recenter subject in middle third |
|
|
1035
|
+
| YouTube Thumb -> Twitter | Can often use as-is (both 16:9) |
|
|
1036
|
+
| LinkedIn -> Facebook | Minimal change (similar ratios) |
|
|
1037
|
+
| Pinterest -> Instagram | Square crop or reimagine |
|
|
1038
|
+
| Any -> Stories/TikTok | Full vertical recomposition needed |
|
|
1039
|
+
|
|
1040
|
+
### Batch Generation
|
|
1041
|
+
|
|
1042
|
+
```
|
|
1043
|
+
For campaign "Product Launch":
|
|
1044
|
+
├── instagram/
|
|
1045
|
+
│ ├── feed-4x5.png (4:5) - primary
|
|
1046
|
+
│ └── stories-9x16.png (9:16) - adapted
|
|
1047
|
+
├── linkedin/
|
|
1048
|
+
│ └── feed-1.91x1.png (1.91:1) - professional version
|
|
1049
|
+
├── twitter/
|
|
1050
|
+
│ └── feed-16x9.png (16:9) - punchy version
|
|
1051
|
+
└── facebook/
|
|
1052
|
+
└── feed-1.91x1.png (1.91:1) - broader appeal version
|
|
1053
|
+
```
|
|
1054
|
+
|
|
1055
|
+
---
|
|
1056
|
+
|
|
1057
|
+
## File Output Structure
|
|
1058
|
+
|
|
1059
|
+
All social graphics are saved to an organized directory structure for easy handoff and management.
|
|
1060
|
+
|
|
1061
|
+
### Directory Convention
|
|
1062
|
+
|
|
1063
|
+
```
|
|
1064
|
+
./campaigns/{campaign-name}/social/
|
|
1065
|
+
├── instagram/
|
|
1066
|
+
│ ├── feed/
|
|
1067
|
+
│ │ ├── {concept}-4x5.png
|
|
1068
|
+
│ │ └── ...
|
|
1069
|
+
│ ├── stories/
|
|
1070
|
+
│ │ ├── {concept}-9x16.png
|
|
1071
|
+
│ │ └── ...
|
|
1072
|
+
│ └── reels/
|
|
1073
|
+
│ └── {concept}-cover-9x16.png
|
|
1074
|
+
├── youtube/
|
|
1075
|
+
│ ├── thumbnails/
|
|
1076
|
+
│ │ ├── {concept}-16x9.png
|
|
1077
|
+
│ │ └── ...
|
|
1078
|
+
│ └── community/
|
|
1079
|
+
│ └── {concept}-1x1.png
|
|
1080
|
+
├── linkedin/
|
|
1081
|
+
│ ├── {concept}-1.91x1.png
|
|
1082
|
+
│ └── ...
|
|
1083
|
+
├── twitter/
|
|
1084
|
+
│ ├── {concept}-16x9.png
|
|
1085
|
+
│ └── ...
|
|
1086
|
+
├── pinterest/
|
|
1087
|
+
│ ├── {concept}-2x3.png
|
|
1088
|
+
│ └── ...
|
|
1089
|
+
├── facebook/
|
|
1090
|
+
│ ├── {concept}-1.91x1.png
|
|
1091
|
+
│ └── ...
|
|
1092
|
+
├── tiktok/
|
|
1093
|
+
│ ├── {concept}-cover-9x16.png
|
|
1094
|
+
│ └── ...
|
|
1095
|
+
└── calendar-summary.md (if using content calendar mode)
|
|
1096
|
+
```
|
|
1097
|
+
|
|
1098
|
+
### File Naming Convention
|
|
1099
|
+
|
|
1100
|
+
```
|
|
1101
|
+
{descriptive-concept}-{aspect-shorthand}.{format}
|
|
1102
|
+
|
|
1103
|
+
Examples:
|
|
1104
|
+
product-launch-announcement-4x5.png
|
|
1105
|
+
weekly-tip-typography-basics-16x9.png
|
|
1106
|
+
customer-quote-sarah-1x1.png
|
|
1107
|
+
day-3-engage-conversation-starter-4x5.png
|
|
1108
|
+
```
|
|
1109
|
+
|
|
1110
|
+
### Saving Workflow
|
|
1111
|
+
|
|
1112
|
+
After each successful generation:
|
|
1113
|
+
|
|
1114
|
+
```
|
|
1115
|
+
1. Create campaign directory if it doesn't exist:
|
|
1116
|
+
mkdir -p ./campaigns/{campaign}/social/{platform}/
|
|
1117
|
+
|
|
1118
|
+
2. Download the generated image from the output URL
|
|
1119
|
+
|
|
1120
|
+
3. Save with descriptive filename:
|
|
1121
|
+
./campaigns/{campaign}/social/{platform}/{name}-{ratio}.png
|
|
1122
|
+
|
|
1123
|
+
4. Log the generation in the output summary
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
---
|
|
1127
|
+
|
|
1128
|
+
## Quality Checklist
|
|
1129
|
+
|
|
1130
|
+
### Technical
|
|
1131
|
+
- [ ] Correct aspect ratio for platform
|
|
1132
|
+
- [ ] Resolution sufficient (minimum specs met)
|
|
1133
|
+
- [ ] Safe zones respected (no critical content in overlay areas)
|
|
1134
|
+
- [ ] File saved to correct campaign directory
|
|
1135
|
+
|
|
1136
|
+
### Platform Fit
|
|
1137
|
+
- [ ] Visual language matches platform
|
|
1138
|
+
- [ ] Would scroll-stop on this platform specifically
|
|
1139
|
+
- [ ] Appropriate for platform's audience
|
|
1140
|
+
- [ ] Text (if any) readable at typical view size
|
|
1141
|
+
|
|
1142
|
+
### Typography (if text included)
|
|
1143
|
+
- [ ] Text specified in quotes in the prompt
|
|
1144
|
+
- [ ] Typography style explicitly described
|
|
1145
|
+
- [ ] Text placement matches composition
|
|
1146
|
+
- [ ] Contrast sufficient for readability
|
|
1147
|
+
- [ ] All characters rendered correctly
|
|
1148
|
+
- [ ] Readable at mobile screen size
|
|
1149
|
+
|
|
1150
|
+
### Composition
|
|
1151
|
+
- [ ] Subject clear and prominent
|
|
1152
|
+
- [ ] Space for text overlay if needed
|
|
1153
|
+
- [ ] Doesn't compete with platform UI elements
|
|
1154
|
+
- [ ] Colors work on platform (dark mode consideration)
|
|
1155
|
+
|
|
1156
|
+
### Brand
|
|
1157
|
+
- [ ] Consistent with brand aesthetic
|
|
1158
|
+
- [ ] Colors appropriate
|
|
1159
|
+
- [ ] Tone matches brand voice
|
|
1160
|
+
- [ ] Matches saved template (if using template system)
|
|
1161
|
+
|
|
1162
|
+
### Content Calendar (if applicable)
|
|
1163
|
+
- [ ] All posts generated with unique concepts
|
|
1164
|
+
- [ ] Content pillars distributed correctly
|
|
1165
|
+
- [ ] Captions written with hashtags
|
|
1166
|
+
- [ ] Calendar summary document complete
|
|
1167
|
+
- [ ] Files organized by day and pillar
|
|
1168
|
+
|
|
1169
|
+
---
|
|
1170
|
+
|
|
1171
|
+
## Common Issues & Solutions
|
|
1172
|
+
|
|
1173
|
+
| Issue | Cause | Solution |
|
|
1174
|
+
|-------|-------|----------|
|
|
1175
|
+
| Looks generic | Platform not specified | Use platform-specific template |
|
|
1176
|
+
| Wrong vibe for platform | Cross-platform prompt | Rewrite for specific platform language |
|
|
1177
|
+
| Content in unsafe zone | Template not followed | Specify safe zone in prompt |
|
|
1178
|
+
| Too polished for TikTok | Wrong aesthetic | Add "native, authentic, not over-produced" |
|
|
1179
|
+
| Too casual for LinkedIn | Wrong aesthetic | Add "professional, sophisticated, corporate-appropriate" |
|
|
1180
|
+
| Won't scroll-stop | Lacks contrast/impact | Add "bold, high contrast, scroll-stopping" |
|
|
1181
|
+
| Text unreadable | Bad text space | Specify "clear space for text overlay" |
|
|
1182
|
+
| Wrong ratio | Default used | Explicitly state ratio in prompt |
|
|
1183
|
+
| Text garbled | Too many words | Keep text to 6 words or fewer per element |
|
|
1184
|
+
| Text wrong font | Style not specified | Explicitly describe typography style in prompt |
|
|
1185
|
+
| Brand inconsistent | No template used | Save and reference a template in creative-kit.md |
|
|
1186
|
+
| Calendar posts look same | No pillar variety | Use content pillar system for thematic diversity |
|
|
1187
|
+
| Files disorganized | No directory structure | Follow file output convention strictly |
|
|
1188
|
+
|
|
1189
|
+
---
|
|
1190
|
+
|
|
1191
|
+
## Platform-Specific Tips
|
|
1192
|
+
|
|
1193
|
+
### Instagram
|
|
1194
|
+
- 4:5 gets more real estate than 1:1 — default to portrait
|
|
1195
|
+
- Algorithm favors engagement — bold colors help
|
|
1196
|
+
- First frame of carousel is everything
|
|
1197
|
+
- Avoid heavy text (algorithm deprioritizes)
|
|
1198
|
+
|
|
1199
|
+
### YouTube
|
|
1200
|
+
- Thumbnail is 50% of click decision
|
|
1201
|
+
- Face + emotion dramatically increases CTR
|
|
1202
|
+
- Test against actual competitors' thumbnails
|
|
1203
|
+
- Yellow genuinely outperforms other colors
|
|
1204
|
+
|
|
1205
|
+
### LinkedIn
|
|
1206
|
+
- Thought leadership aesthetic wins
|
|
1207
|
+
- Data/insight graphics get shared
|
|
1208
|
+
- Avoid anything that looks like an ad
|
|
1209
|
+
- Professional does not equal boring
|
|
1210
|
+
|
|
1211
|
+
### Twitter/X
|
|
1212
|
+
- Dark mode dominant — high contrast essential
|
|
1213
|
+
- Memes and screenshots perform
|
|
1214
|
+
- Hot take energy works
|
|
1215
|
+
- Ratio-able graphics (quotes) spread
|
|
1216
|
+
|
|
1217
|
+
### Pinterest
|
|
1218
|
+
- Vertical wins — 2:3 or longer
|
|
1219
|
+
- Text on pin = good (users read)
|
|
1220
|
+
- Aspirational + actionable
|
|
1221
|
+
- Save-worthy > like-worthy
|
|
1222
|
+
|
|
1223
|
+
### TikTok
|
|
1224
|
+
- Native aesthetic beats polished
|
|
1225
|
+
- Face-forward works
|
|
1226
|
+
- Match trending visual styles
|
|
1227
|
+
- Avoid looking like an ad
|
|
1228
|
+
|
|
1229
|
+
---
|
|
1230
|
+
|
|
1231
|
+
## Output Format
|
|
1232
|
+
|
|
1233
|
+
### Single Graphic Output
|
|
1234
|
+
|
|
1235
|
+
```markdown
|
|
1236
|
+
## Social Graphic Generated
|
|
1237
|
+
|
|
1238
|
+
**Platform:** [platform]
|
|
1239
|
+
**Placement:** [feed/stories/thumbnail/etc.]
|
|
1240
|
+
**Aspect Ratio:** [ratio]
|
|
1241
|
+
**Template Used:** [template name or "none"]
|
|
1242
|
+
|
|
1243
|
+
**Image URL:** [URL]
|
|
1244
|
+
**Saved To:** ./campaigns/{campaign}/social/{platform}/{filename}.png
|
|
1245
|
+
|
|
1246
|
+
**Platform Optimization:**
|
|
1247
|
+
- [x] Correct ratio
|
|
1248
|
+
- [x] Safe zones respected
|
|
1249
|
+
- [x] Platform visual language
|
|
1250
|
+
- [x] Scroll-stopping quality
|
|
1251
|
+
|
|
1252
|
+
**Typography Check:** (if text included)
|
|
1253
|
+
- [x] Text renders cleanly
|
|
1254
|
+
- [x] Font style matches intent
|
|
1255
|
+
- [x] Readable at mobile size
|
|
1256
|
+
|
|
1257
|
+
**Feedback?**
|
|
1258
|
+
- Does it match platform vibe?
|
|
1259
|
+
- Scroll-stopping enough?
|
|
1260
|
+
- Text space adequate?
|
|
1261
|
+
- Ready to approve or iterate?
|
|
1262
|
+
|
|
1263
|
+
**Multi-Platform?**
|
|
1264
|
+
- [ ] Generate additional platform variants
|
|
1265
|
+
- [ ] Specify platforms needed
|
|
1266
|
+
```
|
|
1267
|
+
|
|
1268
|
+
### Multi-Platform Output
|
|
1269
|
+
|
|
1270
|
+
```markdown
|
|
1271
|
+
## Multi-Platform Graphics Generated
|
|
1272
|
+
|
|
1273
|
+
**Campaign:** {campaign-name}
|
|
1274
|
+
**Concept:** [description]
|
|
1275
|
+
**Template Used:** [template name]
|
|
1276
|
+
|
|
1277
|
+
### Instagram Feed (4:5)
|
|
1278
|
+
- **URL:** [URL]
|
|
1279
|
+
- **Saved:** ./campaigns/{campaign}/social/instagram/{name}-4x5.png
|
|
1280
|
+
- **Status:** [x] Platform-optimized
|
|
1281
|
+
|
|
1282
|
+
### LinkedIn (1.91:1)
|
|
1283
|
+
- **URL:** [URL]
|
|
1284
|
+
- **Saved:** ./campaigns/{campaign}/social/linkedin/{name}-1.91x1.png
|
|
1285
|
+
- **Status:** [x] Platform-optimized
|
|
1286
|
+
|
|
1287
|
+
### Twitter (16:9)
|
|
1288
|
+
- **URL:** [URL]
|
|
1289
|
+
- **Saved:** ./campaigns/{campaign}/social/twitter/{name}-16x9.png
|
|
1290
|
+
- **Status:** [x] Platform-optimized
|
|
1291
|
+
|
|
1292
|
+
[... additional platforms ...]
|
|
1293
|
+
|
|
1294
|
+
**All Variants Approved?**
|
|
1295
|
+
- [ ] Yes, proceed to scheduling
|
|
1296
|
+
- [ ] Need iteration on [platform]
|
|
1297
|
+
```
|
|
1298
|
+
|
|
1299
|
+
### Content Calendar Output
|
|
1300
|
+
|
|
1301
|
+
```markdown
|
|
1302
|
+
## Content Calendar Generated
|
|
1303
|
+
|
|
1304
|
+
**Campaign:** {campaign-name}
|
|
1305
|
+
**Platform:** {platform}
|
|
1306
|
+
**Period:** {date range}
|
|
1307
|
+
**Posts Generated:** {count}
|
|
1308
|
+
**Template Used:** {template name}
|
|
1309
|
+
|
|
1310
|
+
**Output Directory:** ./campaigns/{campaign}/social/{platform}/
|
|
1311
|
+
|
|
1312
|
+
### Calendar Overview
|
|
1313
|
+
|
|
1314
|
+
| Day | Pillar | Concept | File | Caption Preview |
|
|
1315
|
+
|-----|--------|---------|------|-----------------|
|
|
1316
|
+
| Mon | Educate | [concept] | day-1-educate.png | [first 50 chars...] |
|
|
1317
|
+
| Tue | Inspire | [concept] | day-2-inspire.png | [first 50 chars...] |
|
|
1318
|
+
| Wed | Engage | [concept] | day-3-engage.png | [first 50 chars...] |
|
|
1319
|
+
| Thu | Promote | [concept] | day-4-promote.png | [first 50 chars...] |
|
|
1320
|
+
| Fri | Entertain | [concept] | day-5-entertain.png | [first 50 chars...] |
|
|
1321
|
+
| Sat | Connect | [concept] | day-6-connect.png | [first 50 chars...] |
|
|
1322
|
+
| Sun | Inspire | [concept] | day-7-inspire.png | [first 50 chars...] |
|
|
1323
|
+
|
|
1324
|
+
**Full details:** See ./campaigns/{campaign}/social/calendar-summary.md
|
|
1325
|
+
```
|
|
1326
|
+
|
|
1327
|
+
---
|
|
1328
|
+
|
|
1329
|
+
## Integration with Creative Engine
|
|
1330
|
+
|
|
1331
|
+
```
|
|
1332
|
+
SOCIAL GRAPHICS PIPELINE
|
|
1333
|
+
|
|
1334
|
+
┌─────────────────────────────────────────┐
|
|
1335
|
+
│ Request with platform specified │
|
|
1336
|
+
│ -> Or route from creative/SKILL.md │
|
|
1337
|
+
└─────────────────────────────────────────┘
|
|
1338
|
+
│
|
|
1339
|
+
v
|
|
1340
|
+
┌─────────────────────────────────────────┐
|
|
1341
|
+
│ LOAD BRAND CONTEXT │
|
|
1342
|
+
│ -> Read ./brand/creative-kit.md │
|
|
1343
|
+
│ -> Load template if exists │
|
|
1344
|
+
│ -> Extract brand colors, style, tone │
|
|
1345
|
+
└─────────────────────────────────────────┘
|
|
1346
|
+
│
|
|
1347
|
+
v
|
|
1348
|
+
┌─────────────────────────────────────────┐
|
|
1349
|
+
│ social-graphics mode (THIS FILE) │
|
|
1350
|
+
│ -> Identify platform requirements │
|
|
1351
|
+
│ -> Apply platform-specific template │
|
|
1352
|
+
│ -> Apply brand template if available │
|
|
1353
|
+
│ -> Generate with MODEL_REGISTRY.md │
|
|
1354
|
+
│ -> Review against platform checklist │
|
|
1355
|
+
└─────────────────────────────────────────┘
|
|
1356
|
+
│
|
|
1357
|
+
┌───────────┴───────────┐
|
|
1358
|
+
v v
|
|
1359
|
+
┌──────────────────┐ ┌──────────────────┐
|
|
1360
|
+
│ Single Platform │ │ Multi-Platform │
|
|
1361
|
+
│ -> Generate │ │ -> Generate │
|
|
1362
|
+
│ -> Save to │ │ primary │
|
|
1363
|
+
│ campaigns/ │ │ -> Auto-adapt │
|
|
1364
|
+
│ │ │ variants │
|
|
1365
|
+
│ │ │ -> Save all to │
|
|
1366
|
+
│ │ │ campaigns/ │
|
|
1367
|
+
└──────────────────┘ └──────────────────┘
|
|
1368
|
+
│ │
|
|
1369
|
+
v v
|
|
1370
|
+
┌──────────────────┐ ┌──────────────────┐
|
|
1371
|
+
│ Content Calendar│ │ Template Save │
|
|
1372
|
+
│ -> Batch gen │ │ -> If new style │
|
|
1373
|
+
│ -> All pillars │ │ approved, │
|
|
1374
|
+
│ -> Calendar │ │ save to │
|
|
1375
|
+
│ summary │ │ creative-kit │
|
|
1376
|
+
└──────────────────┘ └──────────────────┘
|
|
1377
|
+
```
|
|
1378
|
+
|
|
1379
|
+
---
|
|
1380
|
+
|
|
1381
|
+
## Handoff Protocols
|
|
1382
|
+
|
|
1383
|
+
### Receiving from creative/SKILL.md
|
|
1384
|
+
|
|
1385
|
+
```yaml
|
|
1386
|
+
Receive:
|
|
1387
|
+
platform: "Instagram"
|
|
1388
|
+
placement: "Feed"
|
|
1389
|
+
content_type: "Product announcement"
|
|
1390
|
+
subject: "[what to show]"
|
|
1391
|
+
brand_colors: "[if specified]"
|
|
1392
|
+
text_needed: true/false
|
|
1393
|
+
text_content: "[exact text if needed]"
|
|
1394
|
+
template_name: "[if brand template exists]"
|
|
1395
|
+
campaign_name: "[for file organization]"
|
|
1396
|
+
multi_platform: true/false
|
|
1397
|
+
additional_platforms: ["LinkedIn", "Twitter"]
|
|
1398
|
+
calendar_mode: false
|
|
1399
|
+
calendar_days: 0
|
|
1400
|
+
```
|
|
1401
|
+
|
|
1402
|
+
### Returning
|
|
1403
|
+
|
|
1404
|
+
```yaml
|
|
1405
|
+
Return:
|
|
1406
|
+
status: "complete"
|
|
1407
|
+
deliverables:
|
|
1408
|
+
- platform: "Instagram"
|
|
1409
|
+
placement: "Feed"
|
|
1410
|
+
aspect_ratio: "4:5"
|
|
1411
|
+
url: "[URL]"
|
|
1412
|
+
saved_to: "./campaigns/{campaign}/social/instagram/{name}.png"
|
|
1413
|
+
template_saved: true/false
|
|
1414
|
+
template_name: "[if saved]"
|
|
1415
|
+
multi_platform_available: true
|
|
1416
|
+
additional_platforms_needed: "[list if requested]"
|
|
1417
|
+
calendar_generated: false
|
|
1418
|
+
calendar_summary: "[path if generated]"
|
|
1419
|
+
```
|
|
1420
|
+
|
|
1421
|
+
---
|
|
1422
|
+
|
|
1423
|
+
## Tips from Experience
|
|
1424
|
+
|
|
1425
|
+
### What Works
|
|
1426
|
+
1. **Platform-first thinking** — Start with where it lives, not what it shows
|
|
1427
|
+
2. **Ratio is non-negotiable** — Wrong ratio = wrong everything
|
|
1428
|
+
3. **Safe zones matter** — Platform UI will cover content
|
|
1429
|
+
4. **Visual language matching** — LinkedIn does not equal TikTok aesthetically
|
|
1430
|
+
5. **Bold beats subtle** — Social is noisy, you need to pop
|
|
1431
|
+
6. **Templates create consistency** — Save your winning style and reuse it
|
|
1432
|
+
7. **Calendar mode saves hours** — Batch generation beats one-at-a-time
|
|
1433
|
+
8. **Text rendering works** — the configured image model handles headlines natively, no separate tool needed
|
|
1434
|
+
|
|
1435
|
+
### What Doesn't Work
|
|
1436
|
+
1. **One size fits all** — Generic "social media" prompts
|
|
1437
|
+
2. **Ignoring platform culture** — Too polished for TikTok, too casual for LinkedIn
|
|
1438
|
+
3. **Forgetting mobile** — Most viewing is phone-sized
|
|
1439
|
+
4. **Text-heavy images** — Most platforms deprioritize
|
|
1440
|
+
5. **Subtle visuals** — Get lost in the scroll
|
|
1441
|
+
6. **No saved templates** — Rebuilding brand identity from scratch each time
|
|
1442
|
+
7. **Paragraph-length text** — AI text rendering works best at 6 words or fewer
|
|
1443
|
+
8. **Skipping style exploration** — Locking into the first idea without comparing alternatives
|
|
1444
|
+
|
|
1445
|
+
### The 80/20
|
|
1446
|
+
80% of social graphic success comes from:
|
|
1447
|
+
1. Correct aspect ratio
|
|
1448
|
+
2. Platform-appropriate visual language
|
|
1449
|
+
3. Scroll-stopping contrast/colors
|
|
1450
|
+
4. Clear focal point
|
|
1451
|
+
|
|
1452
|
+
Get these four right and you'll outperform most content.
|
|
1453
|
+
|
|
1454
|
+
---
|
|
1455
|
+
|
|
1456
|
+
## Quick Reference: Common Workflows
|
|
1457
|
+
|
|
1458
|
+
### "Make me an Instagram post"
|
|
1459
|
+
|
|
1460
|
+
```
|
|
1461
|
+
1. Load brand template from creative-kit.md (if exists)
|
|
1462
|
+
2. Use Instagram Feed (4:5) prompt template
|
|
1463
|
+
3. Add brand-specific modifiers
|
|
1464
|
+
4. Generate via MODEL_REGISTRY.md
|
|
1465
|
+
5. Save to ./campaigns/{campaign}/social/instagram/
|
|
1466
|
+
```
|
|
1467
|
+
|
|
1468
|
+
### "I need this on all platforms"
|
|
1469
|
+
|
|
1470
|
+
```
|
|
1471
|
+
1. Generate primary platform version
|
|
1472
|
+
2. Get approval
|
|
1473
|
+
3. Run auto-adaptation for each additional platform
|
|
1474
|
+
4. Save all variants to platform-specific directories
|
|
1475
|
+
5. Present multi-platform output summary
|
|
1476
|
+
```
|
|
1477
|
+
|
|
1478
|
+
### "Generate a week of content"
|
|
1479
|
+
|
|
1480
|
+
```
|
|
1481
|
+
1. Confirm brand template and platform
|
|
1482
|
+
2. Map 7 days to content pillars
|
|
1483
|
+
3. Generate unique concept for each day
|
|
1484
|
+
4. Batch generate all 7 graphics
|
|
1485
|
+
5. Write captions with hashtags
|
|
1486
|
+
6. Save to calendar directory structure
|
|
1487
|
+
7. Produce calendar summary document
|
|
1488
|
+
```
|
|
1489
|
+
|
|
1490
|
+
### "Make a YouTube thumbnail"
|
|
1491
|
+
|
|
1492
|
+
```
|
|
1493
|
+
1. Use YouTube Thumbnail prompt template
|
|
1494
|
+
2. Apply emotion modifier (surprise/excitement/curiosity/etc.)
|
|
1495
|
+
3. Apply color psychology (yellow for clicks, blue for trust, etc.)
|
|
1496
|
+
4. Generate at 16:9
|
|
1497
|
+
5. Verify text space and face prominence
|
|
1498
|
+
6. Save to ./campaigns/{campaign}/social/youtube/thumbnails/
|
|
1499
|
+
```
|
|
1500
|
+
|
|
1501
|
+
### "Create a quote graphic"
|
|
1502
|
+
|
|
1503
|
+
```
|
|
1504
|
+
1. Use Text Rendering Instructions
|
|
1505
|
+
2. Keep quote to 6 words or fewer if possible
|
|
1506
|
+
3. Specify typography style explicitly
|
|
1507
|
+
4. Describe text placement and contrast
|
|
1508
|
+
5. Generate for target platform ratio
|
|
1509
|
+
6. Verify text renders cleanly
|
|
1510
|
+
7. If text is garbled, regenerate or use fallback (background + post-production text)
|
|
1511
|
+
```
|