@jairodri/huckleberry-cli 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/agents/cos.json +2 -5
- package/agents/hermes/AGENTS.md +25 -49
- package/agents/hermes/fix-kimaki/SKILL.md +19 -92
- package/agents/hermes/hermes-fixer.md +44 -74
- package/agents/hermes.json +6 -18
- package/kanban/SKILL.md +18 -18
- package/kanban/package.json +1 -1
- package/kanban/src/dispatcher.mjs +1 -1
- package/kanban/templates/blog-social-campaign.yaml +6 -2
- package/kanban/templates/social-campaign.yaml +9 -4
- package/mcp/jev-calibration.mjs +335 -0
- package/mcp/jev-client.mjs +119 -0
- package/mcp/jev-thresholds.json +27 -0
- package/package.json +13 -9
- package/scripts/doctor-watchdog.sh +73 -0
- package/scripts/install-services.sh +34 -27
- package/scripts/self-improve-weekly.sh +34 -0
- package/scripts/sync-skills.mjs +121 -0
- package/skills/ab-test-setup/SKILL.md +266 -0
- package/skills/ab-test-setup/evals/evals.json +105 -0
- package/skills/ab-test-setup/references/sample-size-guide.md +263 -0
- package/skills/ab-test-setup/references/test-templates.md +277 -0
- package/skills/agent-reach/SKILL.md +132 -0
- package/skills/agent-reach/references/career.md +29 -0
- package/skills/agent-reach/references/dev.md +62 -0
- package/skills/agent-reach/references/search.md +33 -0
- package/skills/agent-reach/references/social.md +232 -0
- package/skills/agent-reach/references/video.md +130 -0
- package/skills/agent-reach/references/web.md +50 -0
- package/skills/ai-agent-seo/SKILL.md +450 -0
- package/skills/ai-cold-email-intelligence/SKILL.md +54 -0
- package/skills/ai-cold-email-intelligence/references/prompts.md +21 -0
- package/skills/ai-consensus-builder/SKILL.md +324 -0
- package/skills/ai-seo/SKILL.md +399 -0
- package/skills/ai-seo/evals/evals.json +90 -0
- package/skills/ai-seo/references/content-patterns.md +284 -0
- package/skills/ai-seo/references/platform-ranking-factors.md +152 -0
- package/skills/ai-visibility-audit/SKILL.md +322 -0
- package/skills/analytics-tracking/SKILL.md +309 -0
- package/skills/analytics-tracking/evals/evals.json +90 -0
- package/skills/analytics-tracking/references/event-library.md +260 -0
- package/skills/analytics-tracking/references/ga4-implementation.md +300 -0
- package/skills/analytics-tracking/references/gtm-implementation.md +390 -0
- package/skills/article-generator/SKILL.md +216 -0
- package/skills/auto-indexing/SKILL.md +179 -0
- package/skills/auto-indexing/scripts/auto-indexing.js +257 -0
- package/skills/auto-skill/SKILL.md +151 -0
- package/skills/auto-skill/correction-queue.js +102 -0
- package/skills/auto-skill/dedup.js +97 -0
- package/skills/auto-skill/skill-router.js +224 -0
- package/skills/autoresearch/SKILL.md +334 -0
- package/skills/autoresearch/autoresearch-autoresearch/SKILL.md.baseline +329 -0
- package/skills/autoresearch/autoresearch-autoresearch/changelog.md +34 -0
- package/skills/autoresearch/autoresearch-autoresearch/dashboard.html +116 -0
- package/skills/autoresearch/autoresearch-autoresearch/evals.md +39 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.json +44 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.tsv +3 -0
- package/skills/autoresearch/eval-guide.md +121 -0
- package/skills/b2b-cold-outreach/SKILL.md +322 -0
- package/skills/birdclaw/SKILL.md +82 -0
- package/skills/brainstorm/SKILL.md +168 -0
- package/skills/brand-kit-playground/SKILL.md +312 -0
- package/skills/brand-kit-playground/references/html-architecture.md +316 -0
- package/skills/brand-kit-playground/references/steal-patterns.md +88 -0
- package/skills/brand-voice/SKILL.md +223 -0
- package/skills/brand-voice/references/honesty-as-positioning.md +60 -0
- package/skills/brand-voice/references/voice-modes.md +1158 -0
- package/skills/business-advisory-council/README.md +136 -0
- package/skills/business-advisory-council/SKILL.md +94 -0
- package/skills/business-advisory-council/business-advisory-council.py +492 -0
- package/skills/business-advisory-council/discord-components-decision.json +8 -0
- package/skills/business-advisory-council/examples/steve-conley-partnership.json +6 -0
- package/skills/business-advisory-council/steve-conley-call-brief.json +6 -0
- package/skills/churn-prevention/SKILL.md +305 -0
- package/skills/churn-prevention/evals/evals.json +93 -0
- package/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/claw-compactor/LICENSE +21 -0
- package/skills/claw-compactor/README.md +459 -0
- package/skills/claw-compactor/SKILL.md +329 -0
- package/skills/claw-compactor/benchmark/RESULTS.md +104 -0
- package/skills/claw-compactor/benchmark/__init__.py +1 -0
- package/skills/claw-compactor/benchmark/compressors.py +520 -0
- package/skills/claw-compactor/benchmark/data/sample_01_devops.json +82 -0
- package/skills/claw-compactor/benchmark/data/sample_02_trading.json +54 -0
- package/skills/claw-compactor/benchmark/data/sample_03_ml_short.json +38 -0
- package/skills/claw-compactor/benchmark/data/sample_04_mixed_long.json +318 -0
- package/skills/claw-compactor/benchmark/data/sample_05_sysadmin.json +56 -0
- package/skills/claw-compactor/benchmark/evaluate.py +278 -0
- package/skills/claw-compactor/benchmark/report.py +241 -0
- package/skills/claw-compactor/benchmark/results/benchmark_results.json +405 -0
- package/skills/claw-compactor/benchmark/run_benchmark.py +238 -0
- package/skills/claw-compactor/engram.yaml +49 -0
- package/skills/claw-compactor/proxy/README.md +87 -0
- package/skills/claw-compactor/proxy/dashboard.html +804 -0
- package/skills/claw-compactor/proxy/event-log.mjs +213 -0
- package/skills/claw-compactor/proxy/fair-queue.mjs +288 -0
- package/skills/claw-compactor/proxy/metrics-store.mjs +425 -0
- package/skills/claw-compactor/proxy/package-lock.json +125 -0
- package/skills/claw-compactor/proxy/package.json +15 -0
- package/skills/claw-compactor/proxy/portal.html +360 -0
- package/skills/claw-compactor/proxy/process-registry.mjs +447 -0
- package/skills/claw-compactor/proxy/rate-limiter.mjs +117 -0
- package/skills/claw-compactor/proxy/redis-client.mjs +75 -0
- package/skills/claw-compactor/proxy/retry.mjs +182 -0
- package/skills/claw-compactor/proxy/server.mjs +2100 -0
- package/skills/claw-compactor/proxy/session-affinity.mjs +177 -0
- package/skills/claw-compactor/proxy/start.sh +23 -0
- package/skills/claw-compactor/proxy/test/event-log.test.mjs +237 -0
- package/skills/claw-compactor/proxy/test/helpers.mjs +103 -0
- package/skills/claw-compactor/proxy/test/integration.test.mjs +297 -0
- package/skills/claw-compactor/proxy/test/metrics-store.test.mjs +243 -0
- package/skills/claw-compactor/proxy/test/process-registry.test.mjs +390 -0
- package/skills/claw-compactor/proxy/test/rate-limiter.test.mjs +121 -0
- package/skills/claw-compactor/proxy/test/redis-client.test.mjs +62 -0
- package/skills/claw-compactor/proxy/test/token-tracker.test.mjs +200 -0
- package/skills/claw-compactor/proxy/token-tracker.mjs +482 -0
- package/skills/claw-compactor/pyproject.toml +26 -0
- package/skills/claw-compactor/references/README.md +44 -0
- package/skills/claw-compactor/references/architecture.md +197 -0
- package/skills/claw-compactor/references/benchmarks.md +94 -0
- package/skills/claw-compactor/references/compression-prompts.md +39 -0
- package/skills/claw-compactor/references/compression-techniques.md +219 -0
- package/skills/claw-compactor/references/testing.md +160 -0
- package/skills/claw-compactor/scripts/audit_memory.py +216 -0
- package/skills/claw-compactor/scripts/compress_memory.py +236 -0
- package/skills/claw-compactor/scripts/compressed_context.py +280 -0
- package/skills/claw-compactor/scripts/dedup_memory.py +147 -0
- package/skills/claw-compactor/scripts/dictionary_compress.py +170 -0
- package/skills/claw-compactor/scripts/engram-auto.sh +152 -0
- package/skills/claw-compactor/scripts/engram_auto.py +695 -0
- package/skills/claw-compactor/scripts/engram_cli.py +474 -0
- package/skills/claw-compactor/scripts/estimate_tokens.py +131 -0
- package/skills/claw-compactor/scripts/generate_summary_tiers.py +292 -0
- package/skills/claw-compactor/scripts/lib/__init__.py +34 -0
- package/skills/claw-compactor/scripts/lib/config.py +289 -0
- package/skills/claw-compactor/scripts/lib/dedup.py +119 -0
- package/skills/claw-compactor/scripts/lib/dictionary.py +281 -0
- package/skills/claw-compactor/scripts/lib/engram.py +793 -0
- package/skills/claw-compactor/scripts/lib/engram_prompts.py +175 -0
- package/skills/claw-compactor/scripts/lib/engram_storage.py +254 -0
- package/skills/claw-compactor/scripts/lib/exceptions.py +24 -0
- package/skills/claw-compactor/scripts/lib/markdown.py +312 -0
- package/skills/claw-compactor/scripts/lib/rle.py +165 -0
- package/skills/claw-compactor/scripts/lib/tokenizer_optimizer.py +188 -0
- package/skills/claw-compactor/scripts/lib/tokens.py +68 -0
- package/skills/claw-compactor/scripts/mem_compress.py +788 -0
- package/skills/claw-compactor/scripts/observation_compressor.py +346 -0
- package/skills/claw-compactor/tests/__init__.py +0 -0
- package/skills/claw-compactor/tests/conftest.py +94 -0
- package/skills/claw-compactor/tests/test_audit_comprehensive.py +123 -0
- package/skills/claw-compactor/tests/test_audit_memory.py +67 -0
- package/skills/claw-compactor/tests/test_benchmark.py +122 -0
- package/skills/claw-compactor/tests/test_cli_commands.py +228 -0
- package/skills/claw-compactor/tests/test_compress_memory.py +109 -0
- package/skills/claw-compactor/tests/test_compress_memory_comprehensive.py +191 -0
- package/skills/claw-compactor/tests/test_compressed_context.py +145 -0
- package/skills/claw-compactor/tests/test_config.py +54 -0
- package/skills/claw-compactor/tests/test_dedup_memory.py +124 -0
- package/skills/claw-compactor/tests/test_dictionary.py +327 -0
- package/skills/claw-compactor/tests/test_dictionary_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_engram.py +1091 -0
- package/skills/claw-compactor/tests/test_engram_auto.py +529 -0
- package/skills/claw-compactor/tests/test_error_handling.py +194 -0
- package/skills/claw-compactor/tests/test_estimate_tokens.py +99 -0
- package/skills/claw-compactor/tests/test_generate_summary_tiers.py +105 -0
- package/skills/claw-compactor/tests/test_integration.py +249 -0
- package/skills/claw-compactor/tests/test_lib_dedup.py +135 -0
- package/skills/claw-compactor/tests/test_lib_markdown.py +388 -0
- package/skills/claw-compactor/tests/test_lib_tokens.py +82 -0
- package/skills/claw-compactor/tests/test_main_entry.py +176 -0
- package/skills/claw-compactor/tests/test_markdown_advanced.py +284 -0
- package/skills/claw-compactor/tests/test_new_features.py +77 -0
- package/skills/claw-compactor/tests/test_observation_comprehensive.py +261 -0
- package/skills/claw-compactor/tests/test_observation_compressor.py +128 -0
- package/skills/claw-compactor/tests/test_performance.py +172 -0
- package/skills/claw-compactor/tests/test_pipeline.py +109 -0
- package/skills/claw-compactor/tests/test_real_workspace.py +161 -0
- package/skills/claw-compactor/tests/test_rle.py +114 -0
- package/skills/claw-compactor/tests/test_rle_comprehensive.py +151 -0
- package/skills/claw-compactor/tests/test_roundtrip.py +253 -0
- package/skills/claw-compactor/tests/test_roundtrip_comprehensive.py +192 -0
- package/skills/claw-compactor/tests/test_tiers_comprehensive.py +171 -0
- package/skills/claw-compactor/tests/test_token_economics.py +237 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer.py +175 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_tokens.py +27 -0
- package/skills/cmo/CHANGELOG.md +61 -0
- package/skills/cmo/SKILL.md +500 -0
- package/skills/cmo/references/ai-slop-patterns.md +56 -0
- package/skills/cmo/references/analytics-guide.md +152 -0
- package/skills/cmo/references/ideas-library.md +197 -0
- package/skills/cmo/rules/brand-file-map.md +198 -0
- package/skills/cmo/rules/brand-memory.md +158 -0
- package/skills/cmo/rules/cli-runtime-index.md +95 -0
- package/skills/cmo/rules/command-reference.md +167 -0
- package/skills/cmo/rules/communication.md +15 -0
- package/skills/cmo/rules/context-switch.md +101 -0
- package/skills/cmo/rules/ecosystem.md +125 -0
- package/skills/cmo/rules/error-recovery.md +98 -0
- package/skills/cmo/rules/learning-loop.md +170 -0
- package/skills/cmo/rules/monorepo.md +78 -0
- package/skills/cmo/rules/output-format.md +124 -0
- package/skills/cmo/rules/persona.md +15 -0
- package/skills/cmo/rules/playbooks.md +327 -0
- package/skills/cmo/rules/progressive-enhancement.md +231 -0
- package/skills/cmo/rules/publish-index.md +106 -0
- package/skills/cmo/rules/quality-gate.md +90 -0
- package/skills/cmo/rules/recency-grounding.md +124 -0
- package/skills/cmo/rules/safety.md +80 -0
- package/skills/cmo/rules/studio-api-index.md +138 -0
- package/skills/cmo/rules/studio-integration.md +147 -0
- package/skills/cmo/rules/sub-agents.md +167 -0
- package/skills/cold-email/SKILL.md +240 -0
- package/skills/cold-email/evals/evals.json +94 -0
- package/skills/cold-email/references/benchmarks.md +83 -0
- package/skills/cold-email/references/follow-up-sequences.md +81 -0
- package/skills/cold-email/references/frameworks.md +90 -0
- package/skills/cold-email/references/personalization.md +79 -0
- package/skills/cold-email/references/subject-lines.md +53 -0
- package/skills/competitive-intel/SKILL.md +433 -0
- package/skills/competitive-intel/references/competitive-frameworks.md +145 -0
- package/skills/competitor-alternatives/SKILL.md +362 -0
- package/skills/competitor-alternatives/evals/evals.json +93 -0
- package/skills/competitor-alternatives/references/content-architecture.md +271 -0
- package/skills/competitor-alternatives/references/templates.md +223 -0
- package/skills/concreteness-fixer/SKILL.md +483 -0
- package/skills/concreteness-fixer/scripts/validation/concreteness-validator.js +221 -0
- package/skills/concreteness-fixer/utils/execFileNoThrow.js +16 -0
- package/skills/content-atomizer/SKILL.md +424 -0
- package/skills/content-atomizer/references/hook-strategies.md +56 -0
- package/skills/content-atomizer/references/platform-specs.md +118 -0
- package/skills/content-atomizer/references/platforms/bluesky.md +64 -0
- package/skills/content-atomizer/references/platforms/instagram.md +77 -0
- package/skills/content-atomizer/references/platforms/linkedin.md +120 -0
- package/skills/content-atomizer/references/platforms/reddit.md +73 -0
- package/skills/content-atomizer/references/platforms/threads.md +64 -0
- package/skills/content-atomizer/references/platforms/tiktok.md +55 -0
- package/skills/content-atomizer/references/platforms/twitter.md +123 -0
- package/skills/content-atomizer/references/platforms/youtube.md +56 -0
- package/skills/content-atomizer/references/tweet-patterns.md +40 -0
- package/skills/content-repost-manager/SKILL.md +245 -0
- package/skills/content-repost-manager/scripts/content-repost-scan.py +133 -0
- package/skills/context-recovery/.clawdhub/origin.json +7 -0
- package/skills/context-recovery/SKILL.md +198 -0
- package/skills/context-recovery/_meta.json +6 -0
- package/skills/conversion-flow-cro/SKILL.md +248 -0
- package/skills/conversion-flow-cro/references/flow-benchmarks.md +158 -0
- package/skills/copy-editing/SKILL.md +474 -0
- package/skills/copy-editing/evals/evals.json +89 -0
- package/skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/copywriting/SKILL.md +349 -0
- package/skills/copywriting/evals/evals.json +111 -0
- package/skills/copywriting/references/awareness-level-guide.md +227 -0
- package/skills/copywriting/references/copy-frameworks.md +389 -0
- package/skills/copywriting/references/natural-transitions.md +272 -0
- package/skills/creative/SKILL.md +365 -0
- package/skills/creative/modes/ad-creative.md +1748 -0
- package/skills/creative/modes/product-photo.md +1520 -0
- package/skills/creative/modes/product-video.md +1657 -0
- package/skills/creative/modes/social-graphics.md +1511 -0
- package/skills/creative/modes/talking-head.md +2208 -0
- package/skills/creative/references/VISUAL_INTELLIGENCE.md +1233 -0
- package/skills/deep-serp-article/SKILL.md +677 -0
- package/skills/deep-serp-article/SKILL.md.bak +530 -0
- package/skills/earned-media/SKILL.md +260 -0
- package/skills/email-sequences/SKILL.md +446 -0
- package/skills/email-sequences/references/sequence-templates.md +1217 -0
- package/skills/firecrawl/.skill-meta.json +13 -0
- package/skills/firecrawl/SKILL.md +154 -0
- package/skills/firecrawl/rules/install.md +63 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/form-cro/SKILL.md +429 -0
- package/skills/form-cro/evals/evals.json +90 -0
- package/skills/free-tool-strategy/SKILL.md +325 -0
- package/skills/free-tool-strategy/evals/evals.json +90 -0
- package/skills/free-tool-strategy/references/tool-types.md +253 -0
- package/skills/frontend-slides/SKILL.md +248 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +347 -0
- package/skills/frontend-slides/animation-patterns.md +110 -0
- package/skills/frontend-slides/html-template.md +347 -0
- package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/frontend-slides/viewport-base.css +153 -0
- package/skills/guardrail-framework/SKILL.md +319 -0
- package/skills/hook-generator/SKILL.md +438 -0
- package/skills/hook-generator/database/2026-PLATFORM-RESEARCH.md +211 -0
- package/skills/hook-generator/database/instagram-hooks.json +591 -0
- package/skills/hook-generator/database/linkedin-hooks.json +502 -0
- package/skills/hook-generator/database/medium-hooks.json +181 -0
- package/skills/hook-generator/database/tiktok-hooks.json +337 -0
- package/skills/hook-generator/database/twitter-hooks.json +567 -0
- package/skills/hook-generator/database/youtube-hooks.json +275 -0
- package/skills/hook-generator/package-lock.json +24 -0
- package/skills/hook-generator/package.json +5 -0
- package/skills/hook-generator/references/hook-generation-system.md +257 -0
- package/skills/hook-generator/references/hook-performance-analysis.json +153 -0
- package/skills/hook-generator/references/hooks-library.md +128 -0
- package/skills/hook-generator/references/platform-hook-frameworks.md +275 -0
- package/skills/hook-generator/scripts/generate-hooks-unified.js +722 -0
- package/skills/hook-generator/scripts/generate-hooks.js +225 -0
- package/skills/hook-generator/scripts/generate.sh +36 -0
- package/skills/hook-generator/scripts/ralph-hook-enhancer.js +864 -0
- package/skills/hook-generator/scripts/test-gemini-output.js +51 -0
- package/skills/humanizer/README.md +120 -0
- package/skills/humanizer/SKILL.md +699 -0
- package/skills/image-gen/SKILL.md +277 -0
- package/skills/image-gen/references/prompt-patterns.md +114 -0
- package/skills/image-gen/references/visual-metaphors.md +51 -0
- package/skills/impeccable/SKILL.md +86 -0
- package/skills/impeccable/reference/adapt.md +312 -0
- package/skills/impeccable/reference/adapt.native.md +58 -0
- package/skills/impeccable/reference/android.md +40 -0
- package/skills/impeccable/reference/animate.md +86 -0
- package/skills/impeccable/reference/audit.md +136 -0
- package/skills/impeccable/reference/audit.native.md +139 -0
- package/skills/impeccable/reference/bolder.md +31 -0
- package/skills/impeccable/reference/clarify.md +94 -0
- package/skills/impeccable/reference/colorize.md +86 -0
- package/skills/impeccable/reference/craft-floor.md +42 -0
- package/skills/impeccable/reference/craft.md +5 -0
- package/skills/impeccable/reference/critique.md +788 -0
- package/skills/impeccable/reference/degraded/asset-producer.md +90 -0
- package/skills/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/impeccable/reference/degraded/finish-reviewer.md +37 -0
- package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/impeccable/reference/delight.md +70 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/doctor.md +53 -0
- package/skills/impeccable/reference/document.md +416 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/harden.md +336 -0
- package/skills/impeccable/reference/hooks.md +105 -0
- package/skills/impeccable/reference/init.md +125 -0
- package/skills/impeccable/reference/ios.md +45 -0
- package/skills/impeccable/reference/layout.md +84 -0
- package/skills/impeccable/reference/live-setup.md +102 -0
- package/skills/impeccable/reference/live.md +323 -0
- package/skills/impeccable/reference/new-work.md +110 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/operate.md +61 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +127 -0
- package/skills/impeccable/reference/polish.md +97 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/routing.md +18 -0
- package/skills/impeccable/reference/shape.md +59 -0
- package/skills/impeccable/reference/typeset.md +80 -0
- package/skills/impeccable/reference/visualize.md +49 -0
- package/skills/impeccable/scripts/command-metadata.json +94 -0
- package/skills/impeccable/scripts/concept-seed.mjs +558 -0
- package/skills/impeccable/scripts/context-signals.mjs +334 -0
- package/skills/impeccable/scripts/context.mjs +1467 -0
- package/skills/impeccable/scripts/critique-storage.mjs +213 -0
- package/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/skills/impeccable/scripts/detect.mjs +21 -0
- package/skills/impeccable/scripts/detector/browser/injected/index.mjs +2023 -0
- package/skills/impeccable/scripts/detector/cli/main.mjs +438 -0
- package/skills/impeccable/scripts/detector/design-system.mjs +1046 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +8283 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
- package/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +372 -0
- package/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +1168 -0
- package/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1186 -0
- package/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +264 -0
- package/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/skills/impeccable/scripts/detector/findings.mjs +18 -0
- package/skills/impeccable/scripts/detector/node/file-system.mjs +203 -0
- package/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/skills/impeccable/scripts/detector/registry/antipatterns.mjs +617 -0
- package/skills/impeccable/scripts/detector/rules/checks.mjs +5580 -0
- package/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/skills/impeccable/scripts/detector/shared/constants.mjs +112 -0
- package/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
- package/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/skills/impeccable/scripts/doctor.mjs +336 -0
- package/skills/impeccable/scripts/embed-prompt.mjs +133 -0
- package/skills/impeccable/scripts/generate-image.mjs +240 -0
- package/skills/impeccable/scripts/hook-admin.mjs +801 -0
- package/skills/impeccable/scripts/hook-before-edit.mjs +508 -0
- package/skills/impeccable/scripts/hook-lib.mjs +2153 -0
- package/skills/impeccable/scripts/hook.mjs +78 -0
- package/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
- package/skills/impeccable/scripts/lib/composition-catalog.mjs +200 -0
- package/skills/impeccable/scripts/lib/concept-catalog.mjs +384 -0
- package/skills/impeccable/scripts/lib/design-parser.mjs +925 -0
- package/skills/impeccable/scripts/lib/impeccable-config.mjs +658 -0
- package/skills/impeccable/scripts/lib/impeccable-paths.mjs +137 -0
- package/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
- package/skills/impeccable/scripts/lib/provider.mjs +5 -0
- package/skills/impeccable/scripts/lib/roll-selection.mjs +362 -0
- package/skills/impeccable/scripts/lib/staleness-deep.mjs +478 -0
- package/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
- package/skills/impeccable/scripts/lib/staleness.mjs +457 -0
- package/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
- package/skills/impeccable/scripts/lib/target-args.mjs +42 -0
- package/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
- package/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
- package/skills/impeccable/scripts/live/accept-css.mjs +617 -0
- package/skills/impeccable/scripts/live/accept-verify.mjs +60 -0
- package/skills/impeccable/scripts/live/browser-script-parts.mjs +55 -0
- package/skills/impeccable/scripts/live/completion.mjs +28 -0
- package/skills/impeccable/scripts/live/event-validation.mjs +199 -0
- package/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
- package/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +73 -0
- package/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
- package/skills/impeccable/scripts/live/frameworks/journal.mjs +197 -0
- package/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
- package/skills/impeccable/scripts/live/frameworks/nuxt.mjs +161 -0
- package/skills/impeccable/scripts/live/frameworks/script-src.mjs +17 -0
- package/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
- package/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
- package/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
- package/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
- package/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
- package/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
- package/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
- package/skills/impeccable/scripts/live/instructions.mjs +142 -0
- package/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
- package/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
- package/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
- package/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
- package/skills/impeccable/scripts/live/roots.mjs +508 -0
- package/skills/impeccable/scripts/live/session-store.mjs +563 -0
- package/skills/impeccable/scripts/live/source-lock.mjs +105 -0
- package/skills/impeccable/scripts/live/source-search.mjs +105 -0
- package/skills/impeccable/scripts/live/svelte-ast.mjs +961 -0
- package/skills/impeccable/scripts/live/svelte-component.mjs +1342 -0
- package/skills/impeccable/scripts/live/sveltekit-adapter.mjs +316 -0
- package/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
- package/skills/impeccable/scripts/live/ui-core.mjs +180 -0
- package/skills/impeccable/scripts/live/vocabulary.mjs +171 -0
- package/skills/impeccable/scripts/live-accept.mjs +954 -0
- package/skills/impeccable/scripts/live-browser-dom.js +146 -0
- package/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/skills/impeccable/scripts/live-browser.js +12520 -0
- package/skills/impeccable/scripts/live-commit-manual-edits.mjs +1244 -0
- package/skills/impeccable/scripts/live-complete.mjs +107 -0
- package/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/skills/impeccable/scripts/live-inject.mjs +503 -0
- package/skills/impeccable/scripts/live-insert.mjs +292 -0
- package/skills/impeccable/scripts/live-manual-edit-evidence.mjs +368 -0
- package/skills/impeccable/scripts/live-poll.mjs +429 -0
- package/skills/impeccable/scripts/live-resume.mjs +123 -0
- package/skills/impeccable/scripts/live-server.mjs +1669 -0
- package/skills/impeccable/scripts/live-status.mjs +71 -0
- package/skills/impeccable/scripts/live-target.mjs +30 -0
- package/skills/impeccable/scripts/live-wrap.mjs +927 -0
- package/skills/impeccable/scripts/live.mjs +359 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/impeccable/scripts/palette.mjs +628 -0
- package/skills/impeccable/scripts/pin.mjs +221 -0
- package/skills/impeccable/scripts/serve-question.mjs +932 -0
- package/skills/impeccable/scripts/surface-brief.mjs +74 -0
- package/skills/inkstone-admin/SKILL.md +66 -0
- package/skills/jev-hook-gate/SKILL.md +111 -0
- package/skills/keyword-research/SKILL.md +503 -0
- package/skills/keyword-research/references/dr-cap-and-confidence.md +62 -0
- package/skills/keyword-research/references/keyword-examples.md +769 -0
- package/skills/landing-page-architect/SKILL.md +585 -0
- package/skills/landing-page-architect/references/architecture-reference.md +32 -0
- package/skills/launch-strategy/SKILL.md +384 -0
- package/skills/launch-strategy/evals/evals.json +91 -0
- package/skills/launch-strategy/references/launch-checklist.md +209 -0
- package/skills/launch-strategy/references/launch-timeline.md +159 -0
- package/skills/lead-email-craft/SKILL.md +522 -0
- package/skills/lead-magnets/SKILL.md +310 -0
- package/skills/lead-magnets/references/benchmarks.md +129 -0
- package/skills/lead-magnets/references/format-guide.md +196 -0
- package/skills/link-building-seo/SKILL.md +210 -0
- package/skills/lint-report.txt +1 -0
- package/skills/manifest.json +129 -0
- package/skills/marketing-demo/SKILL.md +249 -0
- package/skills/marketing-demo/references/remotion-examples.md +281 -0
- package/skills/marketing-ideas/SKILL.md +167 -0
- package/skills/marketing-ideas/evals/evals.json +90 -0
- package/skills/marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/marketing-psychology/SKILL.md +374 -0
- package/skills/marketing-psychology/evals/evals.json +88 -0
- package/skills/marketing-psychology/references/case-studies.md +148 -0
- package/skills/narrative-research-article/SKILL.md +469 -0
- package/skills/narrative-research-article/references/lanusse-patterns.md +166 -0
- package/skills/notebooklm/SKILL.md +674 -0
- package/skills/off-page-seo/SKILL.md +219 -0
- package/skills/onboarding-cro/SKILL.md +220 -0
- package/skills/onboarding-cro/evals/evals.json +92 -0
- package/skills/onboarding-cro/references/experiments.md +258 -0
- package/skills/original-research/SKILL.md +388 -0
- package/skills/page-cro/SKILL.md +269 -0
- package/skills/page-cro/references/cro-benchmarks.md +140 -0
- package/skills/paper-marketing/SKILL.md +448 -0
- package/skills/paper-marketing/references/agent-quality-rubric.md +68 -0
- package/skills/paper-marketing/references/brand-system-template.md +120 -0
- package/skills/paper-marketing/references/paper-mcp-rules.md +71 -0
- package/skills/paper-marketing/references/platform-conventions.md +43 -0
- package/skills/paywall-upgrade-cro/SKILL.md +227 -0
- package/skills/paywall-upgrade-cro/evals/evals.json +93 -0
- package/skills/paywall-upgrade-cro/references/experiments.md +164 -0
- package/skills/platform-formatting/SKILL.md +51 -0
- package/skills/popup-cro/SKILL.md +454 -0
- package/skills/popup-cro/evals/evals.json +94 -0
- package/skills/positioning-angles/SKILL.md +524 -0
- package/skills/positioning-angles/references/ad-matrix-and-examples.md +176 -0
- package/skills/positioning-angles/references/angle-frameworks.md +187 -0
- package/skills/positioning-angles/references/dunford-positioning.md +135 -0
- package/skills/positioning-angles/references/hormozi-offer.md +247 -0
- package/skills/positioning-angles/references/schwartz-sophistication.md +166 -0
- package/skills/positioning-angles/references/unique-mechanism.md +162 -0
- package/skills/pricing-strategy/SKILL.md +346 -0
- package/skills/pricing-strategy/evals/evals.json +90 -0
- package/skills/pricing-strategy/references/research-methods.md +152 -0
- package/skills/pricing-strategy/references/tier-structure.md +307 -0
- package/skills/programmatic-seo/SKILL.md +238 -0
- package/skills/programmatic-seo/evals/evals.json +94 -0
- package/skills/programmatic-seo/references/playbooks.md +308 -0
- package/skills/project-rag/SKILL.md +127 -0
- package/skills/quality-gate/SKILL.md +519 -0
- package/skills/quality-gate/judge-personas/buyer.md +47 -0
- package/skills/quality-gate/judge-personas/expert.md +47 -0
- package/skills/quality-gate/judge-personas/outsider.md +47 -0
- package/skills/quality-gate/judge-personas/scanner.md +41 -0
- package/skills/quality-gate/judge-personas/skeptic.md +40 -0
- package/skills/referral-program/SKILL.md +290 -0
- package/skills/referral-program/evals/evals.json +89 -0
- package/skills/referral-program/references/affiliate-programs.md +163 -0
- package/skills/referral-program/references/program-examples.md +143 -0
- package/skills/review-sites/SKILL.md +279 -0
- package/skills/revops/SKILL.md +343 -0
- package/skills/revops/evals/evals.json +91 -0
- package/skills/revops/references/automation-playbooks.md +290 -0
- package/skills/revops/references/lifecycle-definitions.md +278 -0
- package/skills/revops/references/routing-rules.md +203 -0
- package/skills/revops/references/scoring-models.md +247 -0
- package/skills/saas-product-seo/SKILL.md +324 -0
- package/skills/sales-enablement/SKILL.md +349 -0
- package/skills/sales-enablement/evals/evals.json +91 -0
- package/skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/sales-enablement/references/demo-scripts.md +355 -0
- package/skills/sales-enablement/references/objection-library.md +270 -0
- package/skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/schema-markup/SKILL.md +179 -0
- package/skills/schema-markup/evals/evals.json +87 -0
- package/skills/schema-markup/references/schema-examples.md +398 -0
- package/skills/self-improve/SKILL.md +166 -0
- package/skills/self-improving-agent/README.md +243 -0
- package/skills/self-improving-agent/SKILL.md +437 -0
- package/skills/self-improving-agent/scripts/__init__.py +16 -0
- package/skills/self-improving-agent/scripts/__pycache__/auto_detect.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/nlm_curation.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/self_improving_agent.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/auto_detect.py +270 -0
- package/skills/self-improving-agent/scripts/init_expertise_registry.py +89 -0
- package/skills/self-improving-agent/scripts/nlm_curation.py +259 -0
- package/skills/self-improving-agent/scripts/self-improving-agent +113 -0
- package/skills/self-improving-agent/scripts/self_improving_agent.py +603 -0
- package/skills/self-improving-agent/scripts/test_curation_scorer.py +20 -0
- package/skills/self-improving-agent/scripts/test_self_improving.py +184 -0
- package/skills/send-email/SKILL.md +426 -0
- package/skills/send-email/references/batch-email-examples.md +807 -0
- package/skills/send-email/references/best-practices.md +453 -0
- package/skills/send-email/references/installation.md +123 -0
- package/skills/send-email/references/single-email-examples.md +470 -0
- package/skills/send-email/references/webhooks.md +221 -0
- package/skills/seo-audit/SKILL.md +362 -0
- package/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/seo-audit/references/architecture-patterns.md +271 -0
- package/skills/seo-audit/references/schema-templates.md +427 -0
- package/skills/seo-content/SKILL.md +510 -0
- package/skills/seo-content/references/anti-ai-detection.md +184 -0
- package/skills/seo-content/references/content-structures.md +148 -0
- package/skills/seo-content/references/eeat-examples.md +235 -0
- package/skills/seo-content/references/on-page-seo.md +261 -0
- package/skills/seo-content/references/pseo-playbooks.md +226 -0
- package/skills/seo-content/references/schema-templates.md +104 -0
- package/skills/seo-content/references/serp-analysis-format.md +151 -0
- package/skills/seo-machine/SKILL.md +331 -0
- package/skills/seo-machine/assets/brand-template.md +73 -0
- package/skills/seo-machine/assets/link-inventory-template.md +74 -0
- package/skills/seo-machine/assets/roadmap-template.md +184 -0
- package/skills/seo-machine/references/api-stack-recipes.md +230 -0
- package/skills/seo-machine/references/exa-recipes.md +260 -0
- package/skills/seo-machine/references/manual-research.md +73 -0
- package/skills/seo-machine/references/methodology.md +87 -0
- package/skills/seo-machine/references/off-page.md +123 -0
- package/skills/seo-machine/references/patterns/alternatives.md +176 -0
- package/skills/seo-machine/references/patterns/compare.md +105 -0
- package/skills/seo-machine/references/patterns/playbooks.md +106 -0
- package/skills/seo-machine/references/patterns/use-case.md +109 -0
- package/skills/seo-machine/references/quality-bars.md +99 -0
- package/skills/seo-machine/references/stacks/astro.md +156 -0
- package/skills/seo-machine/references/stacks/detection.md +61 -0
- package/skills/seo-machine/references/stacks/markdown-fallback.md +181 -0
- package/skills/seo-machine/references/stacks/nextjs.md +108 -0
- package/skills/seo-machine/references/stacks/rails-inertia.md +99 -0
- package/skills/seo-machine/references/striking-distance.md +116 -0
- package/skills/seo-machine/references/technical-audit.md +153 -0
- package/skills/seo-machine/scripts/link_audit.py +265 -0
- package/skills/seo-machine/scripts/tech_audit.py +221 -0
- package/skills/seo-machine/scripts/word_count.py +154 -0
- package/skills/sharp-thesis-validator/SKILL.md +393 -0
- package/skills/sharp-thesis-validator/examples.md +186 -0
- package/skills/signup-flow-cro/SKILL.md +359 -0
- package/skills/signup-flow-cro/evals/evals.json +88 -0
- package/skills/site-architecture/SKILL.md +357 -0
- package/skills/site-architecture/evals/evals.json +88 -0
- package/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/skills/site-architecture/references/site-type-templates.md +293 -0
- package/skills/skill-self-improvement/SKILL.md +151 -0
- package/skills/slideshow-script/SKILL.md +274 -0
- package/skills/slideshow-script/references/content-spec-schema.md +77 -0
- package/skills/slideshow-script/references/frameworks.md +84 -0
- package/skills/slideshow-script/references/paips-framework.md +37 -0
- package/skills/social-campaign/SKILL.md +419 -0
- package/skills/social-campaign/references/paper-mcp-workflow.md +48 -0
- package/skills/social-content/SKILL.md +359 -0
- package/skills/social-content/evals/evals.json +92 -0
- package/skills/social-content/references/platforms.md +170 -0
- package/skills/social-content/references/post-templates.md +177 -0
- package/skills/social-content/references/reverse-engineering.md +195 -0
- package/skills/social-worker/SKILL.md +204 -0
- package/skills/startup-launcher/SKILL.md +252 -0
- package/skills/startup-launcher/references/file-router.md +64 -0
- package/skills/startup-launcher/references/platform-matrix.md +65 -0
- package/skills/startup-launcher/references/platforms/alternativeto.md +283 -0
- package/skills/startup-launcher/references/platforms/appsumo.md +495 -0
- package/skills/startup-launcher/references/platforms/auraplusplus.md +736 -0
- package/skills/startup-launcher/references/platforms/betalist.md +98 -0
- package/skills/startup-launcher/references/platforms/capterra.md +276 -0
- package/skills/startup-launcher/references/platforms/crunchbase.md +514 -0
- package/skills/startup-launcher/references/platforms/dealify.md +291 -0
- package/skills/startup-launcher/references/platforms/dealmirror.md +313 -0
- package/skills/startup-launcher/references/platforms/desifounder.md +490 -0
- package/skills/startup-launcher/references/platforms/devhunt.md +210 -0
- package/skills/startup-launcher/references/platforms/devpost.md +448 -0
- package/skills/startup-launcher/references/platforms/fazier.md +56 -0
- package/skills/startup-launcher/references/platforms/firsto.md +489 -0
- package/skills/startup-launcher/references/platforms/g2.md +226 -0
- package/skills/startup-launcher/references/platforms/hackernews.md +99 -0
- package/skills/startup-launcher/references/platforms/hackernoon.md +385 -0
- package/skills/startup-launcher/references/platforms/indiedeals.md +367 -0
- package/skills/startup-launcher/references/platforms/indiehackers.md +80 -0
- package/skills/startup-launcher/references/platforms/kenmoo.md +231 -0
- package/skills/startup-launcher/references/platforms/labstartups.md +618 -0
- package/skills/startup-launcher/references/platforms/launchboard.md +307 -0
- package/skills/startup-launcher/references/platforms/launchfast.md +560 -0
- package/skills/startup-launcher/references/platforms/launchigniter.md +56 -0
- package/skills/startup-launcher/references/platforms/launchingnext.md +674 -0
- package/skills/startup-launcher/references/platforms/launchit.md +574 -0
- package/skills/startup-launcher/references/platforms/launchyourapp.md +677 -0
- package/skills/startup-launcher/references/platforms/libhunt.md +220 -0
- package/skills/startup-launcher/references/platforms/ltdhunt.md +221 -0
- package/skills/startup-launcher/references/platforms/microlaunch.md +45 -0
- package/skills/startup-launcher/references/platforms/openalternative.md +195 -0
- package/skills/startup-launcher/references/platforms/peerlist.md +56 -0
- package/skills/startup-launcher/references/platforms/peerpush.md +64 -0
- package/skills/startup-launcher/references/platforms/primeclub.md +282 -0
- package/skills/startup-launcher/references/platforms/productcanyon.md +190 -0
- package/skills/startup-launcher/references/platforms/producthunt.md +98 -0
- package/skills/startup-launcher/references/platforms/rankinpublic.md +315 -0
- package/skills/startup-launcher/references/platforms/rockethub.md +374 -0
- package/skills/startup-launcher/references/platforms/saasgenius.md +175 -0
- package/skills/startup-launcher/references/platforms/saashub.md +205 -0
- package/skills/startup-launcher/references/platforms/saasmantra.md +221 -0
- package/skills/startup-launcher/references/platforms/saaspirate.md +287 -0
- package/skills/startup-launcher/references/platforms/saaswarrior.md +190 -0
- package/skills/startup-launcher/references/platforms/saaszilla.md +194 -0
- package/skills/startup-launcher/references/platforms/selected.md +925 -0
- package/skills/startup-launcher/references/platforms/sideprojectors.md +86 -0
- package/skills/startup-launcher/references/platforms/softonic.md +240 -0
- package/skills/startup-launcher/references/platforms/sourceforge.md +251 -0
- package/skills/startup-launcher/references/platforms/stacksocial.md +244 -0
- package/skills/startup-launcher/references/platforms/startupstash.md +326 -0
- package/skills/startup-launcher/references/platforms/theresanaiforthat.md +253 -0
- package/skills/startup-launcher/references/platforms/tinylaunch.md +70 -0
- package/skills/startup-launcher/references/platforms/tinystartups.md +72 -0
- package/skills/startup-launcher/references/platforms/toolfolio.md +291 -0
- package/skills/startup-launcher/references/platforms/trustmrr.md +194 -0
- package/skills/startup-launcher/references/platforms/trylaunch.md +531 -0
- package/skills/startup-launcher/references/platforms/uneed.md +57 -0
- package/skills/startup-launcher/references/templates/asset-checklist.md +218 -0
- package/skills/startup-launcher/references/templates/launch-tracker.md +195 -0
- package/skills/startup-launcher/references/templates/product-brief.md +98 -0
- package/skills/summarize/.skill-meta.json +13 -0
- package/skills/summarize/SKILL.md +170 -0
- package/skills/summarize/rules/install.md +157 -0
- package/skills/summarize/rules/usage.md +207 -0
- package/skills/topical-authority/SKILL.md +307 -0
- package/skills/topical-authority/references/jake-ward-framework.md +201 -0
- package/skills/topical-authority/references/serp-clustering-algorithm.md +325 -0
- package/skills/topical-authority/scripts/orchestrator.js +367 -0
- package/skills/topical-authority/scripts/seo/analyze-competitor-coverage.js +3 -0
- package/skills/topical-authority/scripts/seo/audit-internal-links.js +3 -0
- package/skills/topical-authority/scripts/seo/build-clusters-from-serp.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-keywords-from-forums.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-paa-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/fetch-serp-urls.js +3 -0
- package/skills/topical-authority/scripts/seo/gemini-serp-clustering.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-content-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-research-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-quora-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-reddit-pain-points.js +3 -0
- package/skills/topical-authority/scripts/seo/weave-internal-links.js +3 -0
- package/skills/visual-style/SKILL.md +199 -0
- package/skills/voice-brand-alignment/SKILL.md +70 -0
- package/skills/voice-brand-alignment/references/ai-slop-patterns.md +405 -0
- package/skills/voice-brand-alignment/scripts/validation/gemini-voice-validator.js +96 -0
- package/skills/voice-extraction/SKILL.md +234 -0
- package/skills/voice-extraction/references/extraction-prompt.md +155 -0
- package/skills/voice-extraction/references/voice-dna-template.md +168 -0
- package/skills/voice-extraction/references/voice-elements.md +259 -0
- package/skills/voice-extraction/scripts/build-corpus.js +120 -0
- package/skills/voice-extraction/scripts/collect-sources.sh +168 -0
- package/skills/warm-outbound/SKILL.md +299 -0
- package/skills/warm-outbound/templates/warm-message.md +39 -0
- package/skills/weekly-newsletter-digest/SKILL.md +78 -0
- package/skills/x-playwriter/SKILL.md +428 -0
- package/skills/x-playwriter/scripts/x-browser.js +185 -0
- package/skills/x-post-generator-openclaw/SKILL.md +138 -0
- package/skills/x-post-generator-openclaw/scripts/generate-x-post.js +537 -0
- package/skills/x-posting-playwriter/SKILL.md +203 -0
- package/skills/x-research/SKILL.md +129 -0
- package/skills/x-research/x-research.sh +85 -0
- package/skills/youtube-summarize/SKILL.md +90 -0
- package/skills/youtube-summarize/scripts/youtube-summarize.sh +143 -0
- package/src/cli.js +349 -172
- package/src/harness/deepseek-adapter.js +102 -0
- package/src/harness/deepseek.js +225 -0
- package/src/harness/opencode-adapter.js +174 -0
- package/src/harness/pi-adapter.js +172 -0
- package/src/harness/registry.js +121 -0
- package/src/harness/telemetry.js +102 -0
- package/src/harness/types.js +165 -0
- package/src/interview.js +36 -4
- package/src/postinstall.js +10 -12
- package/templates/AGENTS.md +17 -17
- package/templates/ORG.md +1 -1
- package/templates/TOOLS.md +7 -2
- package/templates/opencode.json +26 -29
- package/wiki/doctor.md +54 -0
- package/wiki/inkstone.md +4 -4
- package/wiki/opencode.md +3 -3
- package/skills/curated.txt +0 -68
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Cold Email Copywriting Frameworks
|
|
2
|
+
|
|
3
|
+
Frameworks beat templates — they teach thinking patterns, not copy-paste shortcuts.
|
|
4
|
+
|
|
5
|
+
## PAS — Problem, Agitate, Solution (default)
|
|
6
|
+
|
|
7
|
+
**Structure:** Identify pain → Amplify consequences → Present solution + soft CTA.
|
|
8
|
+
**Best for:** Problem-aware but not solution-aware prospects. The workhorse framework.
|
|
9
|
+
|
|
10
|
+
> Most VP Sales at companies your size spend 5+ hours/week on manual CRM reporting. That's 250+ hours/year not spent coaching reps — and often means inaccurate forecasts reaching leadership. We built a tool that auto-generates CRM reports in real time. Teams like Datadog reduced reporting time by 80%. Would it make sense to see how?
|
|
11
|
+
|
|
12
|
+
## BAB — Before, After, Bridge
|
|
13
|
+
|
|
14
|
+
**Structure:** Current painful situation → Ideal future → Your product as the bridge.
|
|
15
|
+
**Best for:** Transformation-driven offers with clear before/after. Emotional decision-makers.
|
|
16
|
+
|
|
17
|
+
> Right now, your team is likely spending hours manually sourcing leads — feast or famine each quarter. Imagine qualified leads arriving daily on autopilot, reps spending 100% of their time selling. That's what our platform does. Companies like HubSpot saw a 40% pipeline increase within 90 days. Can I show you how?
|
|
18
|
+
|
|
19
|
+
## QVC — Question, Value, CTA
|
|
20
|
+
|
|
21
|
+
**Structure:** Targeted pain question → Brief value → Direct next step.
|
|
22
|
+
**Best for:** C-suite prospects who prefer brevity. Qualify interest immediately.
|
|
23
|
+
|
|
24
|
+
> Are your SDRs spending more time researching than selling? We help sales teams automate prospect research so reps focus on conversations. Clients see 3x more meetings per rep per week. Worth a 10-minute demo?
|
|
25
|
+
|
|
26
|
+
## AIDA — Attention, Interest, Desire, Action
|
|
27
|
+
|
|
28
|
+
**Structure:** Hook/stat → Address specific challenge → Social proof/outcome → Clear CTA.
|
|
29
|
+
**Best for:** Data-driven prospects, high-ticket pitches with strong stats.
|
|
30
|
+
|
|
31
|
+
> Companies in pharma lose 30% of leads due to manual outreach. Given {{Company}}'s growth this quarter, pipeline velocity is likely top of mind. Customers like Pfizer use our platform to automate lead qualification — cutting time-to-contact by 60%. Worth a 15-minute call?
|
|
32
|
+
|
|
33
|
+
## PPP — Praise, Picture, Push
|
|
34
|
+
|
|
35
|
+
**Structure:** Genuine compliment → How things could be better → Gentle push to action.
|
|
36
|
+
**Best for:** Senior prospects who respond to relationship-building. Requires genuine trigger.
|
|
37
|
+
|
|
38
|
+
> Your keynote on scaling SDR teams was spot-on — especially on ramp time as the hidden cost. What if you could cut that in half? Our in-inbox coach helps new reps write effective emails from day one with real-time scoring. Open to a quick chat about how this could support your growth?
|
|
39
|
+
|
|
40
|
+
## Star-Story-Solution
|
|
41
|
+
|
|
42
|
+
**Structure:** Introduce character (customer) → Tell challenge narrative → Reveal results.
|
|
43
|
+
**Best for:** Strong customer success stories. Humanizes the pitch.
|
|
44
|
+
|
|
45
|
+
> Last year, Sarah — VP Sales at a Series B startup — had 5 SDRs competing against a rival with 20. Her team was getting crushed on volume. They adopted our AI prospecting tool and sent hyper-personalized emails at 3x pace without losing quality. Within 90 days, they booked more meetings than their competitor's entire team. Happy to share how this could work for {{Company}}.
|
|
46
|
+
|
|
47
|
+
## SCQ — Situation, Complication, Question
|
|
48
|
+
|
|
49
|
+
**Structure:** Current reality → Complicating challenge → Question that speaks to need → Optional answer.
|
|
50
|
+
**Best for:** Consultative selling. Mirrors how professionals present to leadership.
|
|
51
|
+
|
|
52
|
+
> Your team doubled this year. That usually means onboarding is eating into selling time. How are you handling ramp for new hires?
|
|
53
|
+
|
|
54
|
+
## ACCA — Awareness, Comprehension, Conviction, Action
|
|
55
|
+
|
|
56
|
+
**Structure:** Contrarian hook → Explain benefit simply → Provide proof → Strong CTA.
|
|
57
|
+
**Best for:** Analytical buyers who need evidence (engineers, CFOs, ops leaders).
|
|
58
|
+
|
|
59
|
+
> Most sales teams measure rep activity. The top 5% measure rep efficiency instead. When Acme switched, they booked 40% more meetings with fewer emails. Worth seeing how?
|
|
60
|
+
|
|
61
|
+
## 3C's (Alex Berman)
|
|
62
|
+
|
|
63
|
+
**Structure:** Compliment → Case Study → CTA.
|
|
64
|
+
**Best for:** Agency/services cold outreach. Case study does the heavy lifting.
|
|
65
|
+
|
|
66
|
+
> Big fan of [Company]. We just built an app for [Competitor] that does XYZ. I have a few more ideas. Interested?
|
|
67
|
+
|
|
68
|
+
## Mouse Trap (Lavender/Will Allred)
|
|
69
|
+
|
|
70
|
+
**Structure:** Observation + Binary value-prop question. 1–2 sentences total.
|
|
71
|
+
**Best for:** Maximum brevity. Impulsive reply based on curiosity.
|
|
72
|
+
|
|
73
|
+
> Looks like you're hiring reps. Would it be helpful to get a more granular look at how they're ramping on email?
|
|
74
|
+
|
|
75
|
+
## Justin Michael Method
|
|
76
|
+
|
|
77
|
+
**Structure:** Trigger/Pain → Solution hint → Binary CTA. 1–3 sentences, no intro.
|
|
78
|
+
**Best for:** High-velocity SDR teams. Mobile-optimized. Deliberately polarizing.
|
|
79
|
+
|
|
80
|
+
Spend max 1 minute on personalization. Use industry/persona-level signals. For top-tier prospects, quote their own words from interviews — they almost always respond.
|
|
81
|
+
|
|
82
|
+
## Vanilla Ice Cream (Lavender)
|
|
83
|
+
|
|
84
|
+
**Structure:** Observation → Problem/Insight → Credibility → Solution → Call-to-Conversation.
|
|
85
|
+
**Best for:** Universal "base" framework that works everywhere. Five parts.
|
|
86
|
+
|
|
87
|
+
## PASTOR (Ray Edwards)
|
|
88
|
+
|
|
89
|
+
**Structure:** Problem → Amplify → Story → Testimony → Offer → Response.
|
|
90
|
+
**Best for:** Longer-form or multi-email sequences. Consulting, education, complex B2B services. Each element can be developed across separate touches.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Personalization at Scale
|
|
2
|
+
|
|
3
|
+
Personalization drives **50–250% more replies** (Lavender). The key insight: **if your personalization has nothing to do with the problem you solve, it's just an attention hack** (Clay).
|
|
4
|
+
|
|
5
|
+
## Four Levels of Personalization
|
|
6
|
+
|
|
7
|
+
### Level 1 — Basic (merge tags)
|
|
8
|
+
|
|
9
|
+
First name, company name, job title. Table stakes, no longer differentiating. ~5% lift.
|
|
10
|
+
|
|
11
|
+
### Level 2 — Industry/segment
|
|
12
|
+
|
|
13
|
+
Industry-specific pain points, trends, regulatory challenges. Scalable via micro-segmentation.
|
|
14
|
+
|
|
15
|
+
> Most {{industry}} teams struggle with {{lead gen problem}}, which often leads to wasted effort.
|
|
16
|
+
|
|
17
|
+
### Level 3 — Role-level
|
|
18
|
+
|
|
19
|
+
Challenges specific to their role and seniority.
|
|
20
|
+
|
|
21
|
+
> As Head of Sales, keeping pipeline steady is probably your biggest headache. Your RevOps team is small, so you're likely wearing multiple hats during scaling.
|
|
22
|
+
|
|
23
|
+
### Level 4 — Individual (gold standard)
|
|
24
|
+
|
|
25
|
+
Specific, timely observations about that person connected to the problem you solve.
|
|
26
|
+
|
|
27
|
+
> Noticed you're hiring 3 SDRs — sounds like you're scaling outbound fast. Most teams hit follow-up fatigue during onboarding.
|
|
28
|
+
|
|
29
|
+
## Research Signal Stack
|
|
30
|
+
|
|
31
|
+
| Signal | Where to find it | How to use it |
|
|
32
|
+
| ----------------- | ---------------------------------- | ---------------------------------------------------------------------------- |
|
|
33
|
+
| Recent funding | Crunchbase, LinkedIn, press | "Congrats on Series B — scaling teams fast usually creates X challenge" |
|
|
34
|
+
| Job postings | LinkedIn Jobs, careers page | "Noticed you're hiring 3 SDRs — sounds like you're scaling outbound" |
|
|
35
|
+
| Tech stack | BuiltWith, Wappalyzer, HG Insights | "I see you're using HubSpot — most teams at your stage hit a ceiling with X" |
|
|
36
|
+
| LinkedIn activity | Posts, comments, job changes | "Really enjoyed your post about X" |
|
|
37
|
+
| Company news | Google News, press releases | "Congrats on acquiring X — integrating teams usually creates Y challenge" |
|
|
38
|
+
| Podcast/talks | Google, YouTube, podcasts | "Caught your talk at SaaStr on X — really insightful" |
|
|
39
|
+
| Website changes | Manual review | "Your new pricing page caught my eye — curious how it's converting" |
|
|
40
|
+
|
|
41
|
+
## The 3-Minute Personalization System
|
|
42
|
+
|
|
43
|
+
From "30 Minutes to President's Club":
|
|
44
|
+
|
|
45
|
+
**Step 1:** Build a research stack of top 10 buying signals — 5 company triggers, 5 person triggers. Stack-rank by relevance.
|
|
46
|
+
|
|
47
|
+
**Step 2:** Build a 3x3 template: (1) personalization attached to a problem, (2) problem you solve, (3) one-sentence solution + low-friction CTA.
|
|
48
|
+
|
|
49
|
+
**Step 3:** Create 5 "trigger templates" — pre-written personalization paragraphs for each trigger, with a smooth segue into the problem.
|
|
50
|
+
|
|
51
|
+
The personalization must logically connect to the problem. This creates 5 reusable triggers with the rest of the email constant. A top SDR writes a personalized email in **under 3 minutes**.
|
|
52
|
+
|
|
53
|
+
## The Four -Graphic Principles (Becc Holland)
|
|
54
|
+
|
|
55
|
+
- **Demographic** — Age, profession, background
|
|
56
|
+
- **Technographic** — Tech stack, tools used
|
|
57
|
+
- **Firmographic** — Company size, funding, industry, growth stage
|
|
58
|
+
- **Psychographic** — Values, passions, beliefs (highest-impact dimension)
|
|
59
|
+
|
|
60
|
+
Tapping into what prospects are passionate about drives significantly higher response rates.
|
|
61
|
+
|
|
62
|
+
## Observation-Based Openers (highest performing)
|
|
63
|
+
|
|
64
|
+
**Trigger-event:** "Congrats on the recent funding round — scaling the team from here is exciting, and I imagine [challenge] is top of mind."
|
|
65
|
+
|
|
66
|
+
**Observation:** "Your recent post about [topic] resonated — especially the part about [detail]. Got me thinking about how that applies to [challenge]."
|
|
67
|
+
|
|
68
|
+
**Industry insight:** "Most [role titles] I talk to spend [X hours/week] on [problem] — curious if that matches your experience at [Company]."
|
|
69
|
+
|
|
70
|
+
## What Feels Fake (avoid)
|
|
71
|
+
|
|
72
|
+
- AI-generated emails with similar phrasing ("I hope this email finds you well")
|
|
73
|
+
- Generic attention hacks disconnected from problem ("Cool that you went to UCLA!" → pitch)
|
|
74
|
+
- Over-personalizing to creepiness
|
|
75
|
+
- "I saw your LinkedIn profile and wanted to reach out" — signals mass automation
|
|
76
|
+
|
|
77
|
+
## The "So What?" Test
|
|
78
|
+
|
|
79
|
+
After writing any opening line, read from prospect's perspective: "So what? Why would I care?" If the answer is nothing, rewrite.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Subject Line Optimization
|
|
2
|
+
|
|
3
|
+
The subject line determines whether the email gets read. The data is counterintuitive: **short, boring, internal-looking subject lines win decisively.**
|
|
4
|
+
|
|
5
|
+
## Length: 2–4 words
|
|
6
|
+
|
|
7
|
+
- 2-word subject lines get **60% more opens** than 5-word (Lavender).
|
|
8
|
+
- Going from 2 to 4 words reduces replies by **17.5%**.
|
|
9
|
+
- 2–4 words yield **46% open rates** vs 34% for 10 words (Belkins, 5.5M emails).
|
|
10
|
+
- Mobile truncates at 30–35 characters — brevity is practical necessity.
|
|
11
|
+
|
|
12
|
+
## Internal Camouflage Principle
|
|
13
|
+
|
|
14
|
+
Subject lines that look like they came from a colleague, not a vendor, double open rates (Gong). Buyers mentally categorize before opening — if it looks like sales, it's filtered.
|
|
15
|
+
|
|
16
|
+
**High-performing examples:** "reply rates" · "trial delays" · "hiring ops" · "employee turnover" · "Q2 forecast" · "new patients" · "personalization issue" · "second page"
|
|
17
|
+
|
|
18
|
+
## Capitalization: lowercase wins
|
|
19
|
+
|
|
20
|
+
All-lowercase has highest open rates (Gong, 85M+ emails). Lowercase looks more personal/internal. For cold outreach specifically, lowercase beats title case.
|
|
21
|
+
|
|
22
|
+
## Personalization: context over name
|
|
23
|
+
|
|
24
|
+
Personalized subject lines boost opens **26–50%**, but type matters:
|
|
25
|
+
|
|
26
|
+
- **First name in subject line → 12% fewer replies.** Signals automation.
|
|
27
|
+
- **Contextual personalization works:** pain points, competitors, trigger events, industry challenges.
|
|
28
|
+
- Use {{painPoint}}, {{competitor}}, {{commonGround}} — not {{firstName}}.
|
|
29
|
+
|
|
30
|
+
## Questions: only when highly specific
|
|
31
|
+
|
|
32
|
+
Data conflicts: Belkins says questions perform well (46% open rate). Lavender says questions lower opens by **56%**. Resolution: **specific pain questions work** ("Need help with {{challenge}}?"), **generic questions fail** ("Quick question?" / "Have 15 minutes?"). Default to statements.
|
|
33
|
+
|
|
34
|
+
## What to Avoid
|
|
35
|
+
|
|
36
|
+
| Anti-pattern | Impact |
|
|
37
|
+
| ---------------------------------------------- | --------------------------- |
|
|
38
|
+
| Salesy language ("increase," "boost," "ROI") | -17.9% opens |
|
|
39
|
+
| Urgency words ("ASAP," "urgent") | Below 36% opens |
|
|
40
|
+
| Excessive punctuation ("!!!" or "??") | -36% opens |
|
|
41
|
+
| Numbers and percentages | -46% opens |
|
|
42
|
+
| Emojis | Hurt B2B professionalism |
|
|
43
|
+
| Pitching product in subject | -57% replies |
|
|
44
|
+
| Empty/no subject line | +30% opens but -12% replies |
|
|
45
|
+
| Spam triggers ("free," "guarantee," "act now") | Deliverability risk |
|
|
46
|
+
|
|
47
|
+
## C-Suite Subject Lines
|
|
48
|
+
|
|
49
|
+
Executives receive 300–400 emails daily, decide in seconds. They respond **23% more often** than non-C-suite when emails pass their filter (6.4% reply rate).
|
|
50
|
+
|
|
51
|
+
What works: ultra-concise, human, understated. "{{companyInitiative}}" · "thank you" · "an update" · "a question" · reference to a specific project or trigger event.
|
|
52
|
+
|
|
53
|
+
Anything "salesy" is immediately rejected.
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: competitive-intel
|
|
3
|
+
description: >
|
|
4
|
+
Research and analyze competitors to find positioning gaps and strategic
|
|
5
|
+
opportunities. Use this skill whenever the user mentions competitors,
|
|
6
|
+
competitive analysis, competitor teardown, market landscape, 'who else does
|
|
7
|
+
this', 'how are we different', or competitor research. Also trigger when the
|
|
8
|
+
user is entering a new market, when positioning feels weak or generic, when
|
|
9
|
+
preparing for a launch, when any downstream skill needs competitors.md but it
|
|
10
|
+
doesn't exist, or when the user asks about differentiation or market gaps.
|
|
11
|
+
Even if the user just names a competitor casually ('what does X do?'), this
|
|
12
|
+
skill likely applies. Three modes: Quick Scan, Deep Teardown, Gap Finder.
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
> **Note:** Examples below use fictional brands (Acme, Lumi, Helm). Replace with your own brand context.
|
|
16
|
+
|
|
17
|
+
# /competitive-intel -- Know What You're Up Against
|
|
18
|
+
|
|
19
|
+
You can't differentiate if you don't know what you're differentiating FROM.
|
|
20
|
+
Most founders either ignore competitors entirely ("we have no competition") or
|
|
21
|
+
obsess over features without understanding messaging.
|
|
22
|
+
|
|
23
|
+
This skill maps the competitive landscape at the messaging level. Not feature
|
|
24
|
+
comparison tables — positioning, angles, language, channels, and gaps. The
|
|
25
|
+
output feeds directly into positioning-angles and keyword-research to find
|
|
26
|
+
white space.
|
|
27
|
+
|
|
28
|
+
No SaaS tools needed. Systematic web research.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## On Activation
|
|
34
|
+
|
|
35
|
+
1. Check if `brand/` directory exists in the project root.
|
|
36
|
+
2. If it does, read available files: `voice-profile.md`, `positioning.md`, `audience.md`, `competitors.md`, `creative-kit.md`, `stack.md`, `learnings.md`.
|
|
37
|
+
3. Apply any loaded brand context to enhance research quality — use existing audience and positioning data to focus the competitive scan.
|
|
38
|
+
4. If `brand/` does not exist, proceed without it — this skill works standalone.
|
|
39
|
+
5. Read `brand/landscape.md` if it exists — check the Claims Blacklist before making ecosystem or competitive claims. If stale (>14 days) or missing, warn that market claims may be outdated.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Iteration Detection
|
|
44
|
+
|
|
45
|
+
Before starting, check whether `./brand/competitors.md` already exists.
|
|
46
|
+
|
|
47
|
+
### If competitors.md EXISTS --> Update Mode
|
|
48
|
+
|
|
49
|
+
Do not start from scratch. Instead:
|
|
50
|
+
|
|
51
|
+
1. Read the existing competitive intel.
|
|
52
|
+
2. Present a summary of current landscape:
|
|
53
|
+
```
|
|
54
|
+
EXISTING COMPETITIVE INTEL
|
|
55
|
+
Last updated {date} by /competitive-intel
|
|
56
|
+
|
|
57
|
+
Competitors analyzed: {N}
|
|
58
|
+
├── {Competitor 1} Threat: {level}
|
|
59
|
+
├── {Competitor 2} Threat: {level}
|
|
60
|
+
└── {Competitor 3} Threat: {level}
|
|
61
|
+
|
|
62
|
+
Primary gap: {one-line from frontmatter}
|
|
63
|
+
|
|
64
|
+
──────────────────────────────────────────────
|
|
65
|
+
|
|
66
|
+
What would you like to do?
|
|
67
|
+
|
|
68
|
+
1. Refresh with new web research
|
|
69
|
+
2. Add new competitors
|
|
70
|
+
3. Re-run gap analysis only
|
|
71
|
+
4. Full rebuild from scratch
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
3. Process the user's choice:
|
|
75
|
+
- Option 1 --> Re-search existing competitors for updated messaging, pricing, content
|
|
76
|
+
- Option 2 --> Identify new competitors, run teardown, merge into existing file
|
|
77
|
+
- Option 3 --> Use existing teardown data, re-run gap analysis with fresh eyes
|
|
78
|
+
- Option 4 --> Full process from scratch
|
|
79
|
+
|
|
80
|
+
4. Before overwriting, show what changed and ask for confirmation.
|
|
81
|
+
|
|
82
|
+
### If competitors.md DOES NOT EXIST --> Full Research Mode
|
|
83
|
+
|
|
84
|
+
Proceed to the full process below.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## The core job
|
|
89
|
+
|
|
90
|
+
Map who you're competing against, how they position themselves, where they're
|
|
91
|
+
strong, where they're weak, and where the gaps are. The output is a strategic
|
|
92
|
+
asset that positioning-angles and keyword-research build on.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Mode selection
|
|
97
|
+
|
|
98
|
+
### Quick Scan (5 minutes)
|
|
99
|
+
|
|
100
|
+
When you just need to know who the competitors are. Identify 5-8 competitors,
|
|
101
|
+
capture their headline positioning, and note obvious gaps. Good for early
|
|
102
|
+
exploration.
|
|
103
|
+
|
|
104
|
+
### Deep Teardown (15-20 minutes)
|
|
105
|
+
|
|
106
|
+
Full analysis of 3-5 key competitors. Messaging, pricing, channels, content
|
|
107
|
+
strategy, SEO footprint. Use when preparing for positioning or launch.
|
|
108
|
+
|
|
109
|
+
### Gap Finder (10 minutes)
|
|
110
|
+
|
|
111
|
+
Start from the teardown data and focus exclusively on finding underexploited
|
|
112
|
+
territory. Use after a Deep Teardown or when competitors.md already exists.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## The competitive research process
|
|
117
|
+
|
|
118
|
+
### Step 1: Identify competitors
|
|
119
|
+
|
|
120
|
+
Three categories:
|
|
121
|
+
|
|
122
|
+
**Direct competitors** — solve the same problem for the same audience
|
|
123
|
+
- Same product category, same target market
|
|
124
|
+
- The ones your customers would name if asked "what else did you consider?"
|
|
125
|
+
|
|
126
|
+
**Indirect competitors** — solve the same problem differently
|
|
127
|
+
- Different approach, same outcome
|
|
128
|
+
- Includes DIY, hiring a person, using a different category of tool
|
|
129
|
+
|
|
130
|
+
**Aspirational competitors** — where you want to be
|
|
131
|
+
- Larger companies in adjacent spaces
|
|
132
|
+
- Brands whose positioning or execution you admire
|
|
133
|
+
- Not necessarily competitive, but instructive
|
|
134
|
+
|
|
135
|
+
**How to find them:**
|
|
136
|
+
1. Ask the user: "Who do you consider your top 3 competitors?"
|
|
137
|
+
2. **Agent-Reach (skill: `agent-reach`)**: Run `agent-reach doctor --json` and use Exa search:
|
|
138
|
+
```bash
|
|
139
|
+
mcporter call 'exa.web_search_exa(query: "[product category] [target market] alternatives", numResults: 10)'
|
|
140
|
+
mcporter call 'exa.web_search_exa(query: "[product type] vs [competitor]", numResults: 10)'
|
|
141
|
+
```
|
|
142
|
+
3. Search for "[product type] alternatives" and "[product type] vs"
|
|
143
|
+
4. Check Product Hunt, G2, Capterra for the product category
|
|
144
|
+
5. Look at who ranks for the target keywords
|
|
145
|
+
|
|
146
|
+
### Step 2: Competitor teardown framework
|
|
147
|
+
|
|
148
|
+
For each key competitor (3-5), analyze the following (see `references/competitive-frameworks.md` for the full messaging teardown checklist, 2x2 map templates, and gap taxonomy):
|
|
149
|
+
|
|
150
|
+
**Positioning & Messaging:**
|
|
151
|
+
- Homepage headline — what's the primary claim?
|
|
152
|
+
- Tagline — how do they summarize their value?
|
|
153
|
+
- Hero copy — what transformation do they promise?
|
|
154
|
+
- Key differentiator — what makes them "the one that [X]"?
|
|
155
|
+
|
|
156
|
+
**Pricing & Packaging:**
|
|
157
|
+
- Pricing model (free, freemium, subscription, one-time)
|
|
158
|
+
- Price points and tier names
|
|
159
|
+
- What gates the upgrade? (features, usage, support)
|
|
160
|
+
|
|
161
|
+
**Content & Channels:**
|
|
162
|
+
- Blog: topics, frequency, quality, SEO focus
|
|
163
|
+
- Social: which platforms, posting frequency, engagement level
|
|
164
|
+
- Email: do they have a newsletter? lead magnets?
|
|
165
|
+
- Video: YouTube presence, production quality
|
|
166
|
+
|
|
167
|
+
**SEO Footprint:**
|
|
168
|
+
- What keywords do they appear to target?
|
|
169
|
+
- Do they have programmatic SEO pages?
|
|
170
|
+
- How strong is their content operation?
|
|
171
|
+
|
|
172
|
+
**Strengths & Weaknesses:**
|
|
173
|
+
- What do they do exceptionally well?
|
|
174
|
+
- Where are the obvious gaps in their approach?
|
|
175
|
+
- What do their users complain about? (check reviews, Reddit, Twitter)
|
|
176
|
+
|
|
177
|
+
### Step 3: Build the competitive landscape map
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
──────────────────────────────────────────────────
|
|
181
|
+
|
|
182
|
+
COMPETITIVE LANDSCAPE
|
|
183
|
+
|
|
184
|
+
──────────────────────────────────────────────────
|
|
185
|
+
|
|
186
|
+
Direct Competitors
|
|
187
|
+
├── [Competitor 1]
|
|
188
|
+
│ ├── Positioning: "[their headline]"
|
|
189
|
+
│ ├── Strength: [what they do well]
|
|
190
|
+
│ └── Weakness: [where they fall short]
|
|
191
|
+
├── [Competitor 2]
|
|
192
|
+
│ ├── Positioning: "[their headline]"
|
|
193
|
+
│ ├── Strength: [what they do well]
|
|
194
|
+
│ └── Weakness: [where they fall short]
|
|
195
|
+
└── [Competitor 3]
|
|
196
|
+
├── Positioning: "[their headline]"
|
|
197
|
+
├── Strength: [what they do well]
|
|
198
|
+
└── Weakness: [where they fall short]
|
|
199
|
+
|
|
200
|
+
Indirect Competitors
|
|
201
|
+
├── [Alternative 1] — [how they solve it differently]
|
|
202
|
+
└── [Alternative 2] — [how they solve it differently]
|
|
203
|
+
|
|
204
|
+
──────────────────────────────────────────────────
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Step 4: Find the gaps
|
|
208
|
+
|
|
209
|
+
This is the payoff. Cross-reference all competitor messaging to find:
|
|
210
|
+
|
|
211
|
+
**Messaging gaps** — what nobody is saying:
|
|
212
|
+
- Claims that are true for your product but no competitor makes
|
|
213
|
+
- Audiences that nobody specifically targets
|
|
214
|
+
- Pain points that nobody directly addresses
|
|
215
|
+
- Angles that are conspicuously absent
|
|
216
|
+
|
|
217
|
+
**Positioning gaps** — where nobody lives:
|
|
218
|
+
- Map competitors on 2x2 matrices (e.g., simple↔complex × cheap↔expensive)
|
|
219
|
+
- Find the quadrant with no competitor
|
|
220
|
+
- Identify the "anti-positioning" — what would be the opposite of every competitor?
|
|
221
|
+
|
|
222
|
+
**Channel gaps** — where nobody shows up:
|
|
223
|
+
- Platforms where the audience exists but competitors don't post
|
|
224
|
+
- Content formats nobody uses (video, podcast, interactive tools)
|
|
225
|
+
- Communities nobody engages with
|
|
226
|
+
|
|
227
|
+
**Pricing gaps** — where nobody charges:
|
|
228
|
+
- Price points between existing tiers
|
|
229
|
+
- Packaging models nobody offers (lifetime, usage-based, free tier)
|
|
230
|
+
|
|
231
|
+
### Step 5: Synthesize differentiation opportunities
|
|
232
|
+
|
|
233
|
+
Rank the gaps by:
|
|
234
|
+
1. **Relevance** — does this gap matter to our audience?
|
|
235
|
+
2. **Defensibility** — can we own this position long-term?
|
|
236
|
+
3. **Clarity** — can we explain this in one sentence?
|
|
237
|
+
|
|
238
|
+
Present top 3-5 differentiation opportunities with a starred recommendation.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Output format
|
|
243
|
+
|
|
244
|
+
Write `./brand/competitors.md` with this structure:
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
---
|
|
248
|
+
title: Competitive Intelligence
|
|
249
|
+
type: competitive-intel
|
|
250
|
+
skill: competitive-intel
|
|
251
|
+
date: [ISO date]
|
|
252
|
+
competitors_analyzed: [number]
|
|
253
|
+
primary_gap: [one-line summary of biggest opportunity]
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
# Competitive Intelligence — [Product/Project Name]
|
|
257
|
+
|
|
258
|
+
## Competitor Teardowns
|
|
259
|
+
|
|
260
|
+
### [Competitor 1 Name]
|
|
261
|
+
- **URL:** [url]
|
|
262
|
+
- **Positioning:** "[their headline/tagline]"
|
|
263
|
+
- **Pricing:** [model and price points]
|
|
264
|
+
- **Strengths:** [what they do well]
|
|
265
|
+
- **Weaknesses:** [where they fall short]
|
|
266
|
+
- **Content:** [channels and quality]
|
|
267
|
+
- **Threat level:** [low/medium/high]
|
|
268
|
+
|
|
269
|
+
### [Competitor 2 Name]
|
|
270
|
+
[Same structure]
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Competitive Landscape
|
|
275
|
+
|
|
276
|
+
### Saturated Claims (everyone says this)
|
|
277
|
+
- "[Claim]"
|
|
278
|
+
- "[Claim]"
|
|
279
|
+
|
|
280
|
+
### Partially Claimed (1-2 competitors)
|
|
281
|
+
- "[Claim]" — used by [Competitor]
|
|
282
|
+
|
|
283
|
+
### Underexploited Territory
|
|
284
|
+
- [Gap 1]
|
|
285
|
+
- [Gap 2]
|
|
286
|
+
- [Gap 3]
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Differentiation Opportunities
|
|
291
|
+
|
|
292
|
+
1. ★ **[Top opportunity]** — [why this is the best gap to own]
|
|
293
|
+
2. **[Second opportunity]** — [reasoning]
|
|
294
|
+
3. **[Third opportunity]** — [reasoning]
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## 2x2 Positioning Map
|
|
299
|
+
|
|
300
|
+
[Simple/Complex] × [Affordable/Premium]
|
|
301
|
+
|
|
302
|
+
| | Simple | Complex |
|
|
303
|
+
|---|---|---|
|
|
304
|
+
| **Premium** | [Competitor] | [Competitor] |
|
|
305
|
+
| **Affordable** | ★ **Gap** | [Competitor] |
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Progressive enhancement levels
|
|
311
|
+
|
|
312
|
+
| Level | Context Available | Output Quality |
|
|
313
|
+
|-------|------------------|---------------|
|
|
314
|
+
| L0 | Product name only | Basic competitor list, surface-level analysis |
|
|
315
|
+
| L1 | + product description, target market | Focused competitor search, relevant comparisons |
|
|
316
|
+
| L2 | + audience.md, voice-profile.md | Audience-aware analysis, positioning-aware gaps |
|
|
317
|
+
| L3 | + web research via Exa MCP | Live data, real messaging, verified claims |
|
|
318
|
+
| L4 | + existing competitors.md (update) | Evolved intel with trend tracking over time |
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Worked Example
|
|
323
|
+
|
|
324
|
+
**Quick Scan: Verified meal delivery market**
|
|
325
|
+
|
|
326
|
+
| Competitor | Positioning | Pricing | Strength | Weakness |
|
|
327
|
+
|---|---|---|---|---|
|
|
328
|
+
| DoorDash | General delivery, verification filter buried | $3-6 delivery + markup | Massive selection | No source verification |
|
|
329
|
+
| Sourcify.com | Restaurant directory, no delivery | Free listings | Trusted brand, 20yr history | No ordering, just reviews |
|
|
330
|
+
| VerifiedEats | Verified-source-only delivery, 3 cities | $5 delivery + 15% markup | Source-certified restaurants | Tiny coverage area |
|
|
331
|
+
|
|
332
|
+
**Gap found:** No one owns 'verified-source + affordable delivery + nationwide.' DoorDash has reach but no trust. Sourcify has trust but no delivery. Acme can own the intersection.
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## What this skill is NOT
|
|
337
|
+
|
|
338
|
+
- **Not a feature comparison** — Feature matrices are commodity analysis. This skill maps messaging, positioning, and strategic gaps — the layer that actually drives differentiation decisions.
|
|
339
|
+
- **Not market research** — This focuses on competitive messaging and positioning. For audience research, use /audience-research. For market sizing and trend analysis, that's a different skill.
|
|
340
|
+
- **Not a one-time snapshot** — Competitors evolve their messaging. Run this again before major launches, after competitor funding rounds, or when your positioning feels stale.
|
|
341
|
+
- **Not a strategy document** — The output is intelligence, not a plan. Use /positioning-angles to act on the gaps this skill finds.
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Output presentation
|
|
346
|
+
|
|
347
|
+
### Header
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
351
|
+
|
|
352
|
+
COMPETITIVE INTELLIGENCE
|
|
353
|
+
[Product/Project Name]
|
|
354
|
+
Generated [Month Day, Year]
|
|
355
|
+
|
|
356
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Files Saved
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
FILES SAVED
|
|
363
|
+
|
|
364
|
+
./brand/competitors.md ✓
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### What's Next
|
|
368
|
+
|
|
369
|
+
```
|
|
370
|
+
WHAT'S NEXT
|
|
371
|
+
|
|
372
|
+
Your competitive landscape is mapped with {N}
|
|
373
|
+
competitors analyzed and {N} gaps identified.
|
|
374
|
+
Recommended moves:
|
|
375
|
+
|
|
376
|
+
-> /positioning-angles Exploit the gaps with
|
|
377
|
+
differentiated angles
|
|
378
|
+
(~15 min)
|
|
379
|
+
-> /keyword-research Find content territory
|
|
380
|
+
competitors miss (~15 min)
|
|
381
|
+
-> /direct-response-copy Write copy that attacks
|
|
382
|
+
competitor weaknesses
|
|
383
|
+
(~15 min)
|
|
384
|
+
|
|
385
|
+
Or tell me what you're working on and
|
|
386
|
+
I'll route you.
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Web search fallback
|
|
392
|
+
|
|
393
|
+
If web search / Exa MCP is unavailable:
|
|
394
|
+
|
|
395
|
+
1. **Try Agent-Reach** (skill: `agent-reach`): Run `agent-reach doctor --json` — it may have Exa via mcporter configured even when standalone Exa MCP isn't available.
|
|
396
|
+
2. Ask the user for competitor names and URLs directly.
|
|
397
|
+
3. If the user provides URLs, attempt to fetch and analyze them.
|
|
398
|
+
4. If no URLs available, build the analysis from user knowledge, brand/ files, and general market understanding.
|
|
399
|
+
5. Note the limitation clearly: "Competitive analysis is based on provided information and general market knowledge, not live web research. Verify claims before making strategic decisions."
|
|
400
|
+
6. Prefix unverified claims with "Estimated:" to signal uncertainty.
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Feedback Collection
|
|
405
|
+
|
|
406
|
+
After delivering the competitive intel:
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
How did this land?
|
|
410
|
+
|
|
411
|
+
a) Great -- using this analysis as-is
|
|
412
|
+
b) Good -- added some competitors I know
|
|
413
|
+
c) Rewrote significantly
|
|
414
|
+
d) Haven't used yet
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
**Processing feedback:**
|
|
418
|
+
- **(a) Great:** Log to `./brand/learnings.md` with key gaps found.
|
|
419
|
+
- **(b) Good:** Ask which competitors they added. Update competitors.md if they share details.
|
|
420
|
+
- **(c) Rewrote:** Ask for the final version. Analyze differences. Offer to update competitors.md.
|
|
421
|
+
- **(d) Haven't used:** Note it. Remind next time.
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## Safety rules
|
|
426
|
+
|
|
427
|
+
- Never fabricate competitor data — positioning decisions built on false competitive intel lead to differentiation claims that collapse on contact with the market. If you can't verify a claim, say so.
|
|
428
|
+
- Never present assumptions as facts — the user may make pricing, positioning, or launch decisions based on this analysis. Mark unverified information clearly so they know what to double-check.
|
|
429
|
+
- Never copy competitor content verbatim beyond short quotes — this is analysis, not plagiarism. Short quotes for messaging analysis are fair use; copying blocks of content is not.
|
|
430
|
+
- Never write competitive data from one project into another project's brand/ — competitive landscapes are project-specific. Cross-contamination corrupts strategy.
|
|
431
|
+
- Always check `--cwd` context if provided — the working directory determines which brand/ to read and write.
|
|
432
|
+
- If Exa MCP is unavailable, follow the web search fallback section above — the skill still produces useful output from user knowledge and brand files.
|
|
433
|
+
- Focus on messaging and positioning, not feature-by-feature comparisons — feature tables are commodity analysis anyone can build. Messaging-level competitive intel is what drives differentiation and is much harder to find elsewhere.
|