@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,145 @@
|
|
|
1
|
+
# Competitive Analysis Frameworks
|
|
2
|
+
|
|
3
|
+
> Reference for structuring competitive intelligence. Load when running Deep Teardown or Gap Finder modes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Porter's Five Forces (Adapted for Messaging)
|
|
8
|
+
|
|
9
|
+
The classic strategy framework, adapted for competitive messaging analysis rather than pure business strategy.
|
|
10
|
+
|
|
11
|
+
### 1. Competitive Rivalry
|
|
12
|
+
How intense is the messaging competition?
|
|
13
|
+
|
|
14
|
+
- How many competitors make similar claims?
|
|
15
|
+
- Is the market converging on identical messaging ("all-in-one", "AI-powered")?
|
|
16
|
+
- Are competitors competing on price, features, or positioning?
|
|
17
|
+
|
|
18
|
+
**Messaging implication:** High rivalry = need for mechanism-based differentiation. Simple claims won't cut it.
|
|
19
|
+
|
|
20
|
+
### 2. Threat of New Entrants
|
|
21
|
+
How easy is it for new competitors to enter and claim your positioning?
|
|
22
|
+
|
|
23
|
+
- Is your differentiation defensible or easily copied?
|
|
24
|
+
- Do new entrants need significant proof/credibility to compete?
|
|
25
|
+
- Are there positioning moats (brand recognition, proprietary data, community)?
|
|
26
|
+
|
|
27
|
+
**Messaging implication:** If entry is easy, your positioning needs a mechanism or proof that's hard to replicate.
|
|
28
|
+
|
|
29
|
+
### 3. Threat of Substitutes
|
|
30
|
+
What alternatives could replace your entire category?
|
|
31
|
+
|
|
32
|
+
- DIY solutions (spreadsheets, manual processes)
|
|
33
|
+
- Hiring a person (consultant, agency, freelancer)
|
|
34
|
+
- Different category entirely (different approach to the same problem)
|
|
35
|
+
- Doing nothing (living with the pain)
|
|
36
|
+
|
|
37
|
+
**Messaging implication:** Your strongest competitor might not be in your category at all. Position against the real alternative.
|
|
38
|
+
|
|
39
|
+
### 4. Buyer Power
|
|
40
|
+
How much leverage do buyers have?
|
|
41
|
+
|
|
42
|
+
- Can they easily switch between competitors?
|
|
43
|
+
- Are they price-sensitive or value-driven?
|
|
44
|
+
- Do they have access to comparison information?
|
|
45
|
+
|
|
46
|
+
**Messaging implication:** High buyer power = need for strong differentiation and risk reversal. Low switching costs mean you need to earn loyalty through positioning, not lock-in.
|
|
47
|
+
|
|
48
|
+
### 5. Supplier Power (less relevant for messaging)
|
|
49
|
+
Skip this for most messaging-focused analysis. Only relevant when your supply chain affects positioning (e.g., "We're the only service with [exclusive partnership]").
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Messaging Teardown Checklist
|
|
54
|
+
|
|
55
|
+
When analyzing a competitor's messaging, capture these elements systematically:
|
|
56
|
+
|
|
57
|
+
### Homepage (30 seconds)
|
|
58
|
+
- [ ] Headline — what's the primary claim?
|
|
59
|
+
- [ ] Sub-headline — how do they expand on it?
|
|
60
|
+
- [ ] Hero CTA — what action do they want?
|
|
61
|
+
- [ ] Social proof — what proof appears above the fold?
|
|
62
|
+
- [ ] Visual tone — professional, casual, playful, corporate?
|
|
63
|
+
|
|
64
|
+
### Value Proposition (2 minutes)
|
|
65
|
+
- [ ] Core transformation promised
|
|
66
|
+
- [ ] Primary mechanism (how they deliver results)
|
|
67
|
+
- [ ] Target audience signaling (who is this for?)
|
|
68
|
+
- [ ] Key differentiator from alternatives
|
|
69
|
+
|
|
70
|
+
### Pricing Page (1 minute)
|
|
71
|
+
- [ ] Pricing model (subscription, one-time, freemium, enterprise)
|
|
72
|
+
- [ ] Tier names (what do they call their plans?)
|
|
73
|
+
- [ ] What gates the upgrade (features, usage, support?)
|
|
74
|
+
- [ ] Anchor pricing (do they show a high price to make others look reasonable?)
|
|
75
|
+
|
|
76
|
+
### Proof & Trust (2 minutes)
|
|
77
|
+
- [ ] Testimonial format (quotes, case studies, logos, numbers)
|
|
78
|
+
- [ ] Specificity of proof ("10,000 customers" vs. "Sarah from Ohio saved $5,000")
|
|
79
|
+
- [ ] Authority markers (press logos, certifications, partnerships)
|
|
80
|
+
- [ ] Risk reversal (guarantees, free trials, refund policies)
|
|
81
|
+
|
|
82
|
+
### Content & Distribution (2 minutes)
|
|
83
|
+
- [ ] Blog topics and frequency
|
|
84
|
+
- [ ] Social platform presence and activity
|
|
85
|
+
- [ ] Email capture strategy (lead magnets, newsletter)
|
|
86
|
+
- [ ] SEO focus (what keywords do they target?)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 2x2 Positioning Map Templates
|
|
91
|
+
|
|
92
|
+
Choose the axes that reveal the most meaningful gaps for your market:
|
|
93
|
+
|
|
94
|
+
### Common Axis Pairs
|
|
95
|
+
|
|
96
|
+
**Simple/Complex x Affordable/Premium**
|
|
97
|
+
Good for: Markets with both DIY tools and enterprise solutions
|
|
98
|
+
|
|
99
|
+
**Specialized/General x Self-serve/High-touch**
|
|
100
|
+
Good for: SaaS and service markets
|
|
101
|
+
|
|
102
|
+
**Speed/Thoroughness x Individual/Team**
|
|
103
|
+
Good for: Productivity and workflow tools
|
|
104
|
+
|
|
105
|
+
**Technical/Non-technical x Automation/Manual**
|
|
106
|
+
Good for: Developer tools and no-code markets
|
|
107
|
+
|
|
108
|
+
### How to Use the Map
|
|
109
|
+
|
|
110
|
+
1. Plot all competitors on the 2x2
|
|
111
|
+
2. Identify the empty quadrant — that's your potential white space
|
|
112
|
+
3. Verify the empty quadrant isn't empty for a reason (no demand there)
|
|
113
|
+
4. If the empty quadrant has demand, that's your positioning opportunity
|
|
114
|
+
|
|
115
|
+
**The anti-positioning test:** For each competitor, write the opposite of their positioning. If the opposite is appealing and unclaimed, it's a viable angle.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Gap Taxonomy
|
|
120
|
+
|
|
121
|
+
### Messaging Gaps (what nobody says)
|
|
122
|
+
- Claims true for you but no competitor makes
|
|
123
|
+
- Audiences nobody specifically addresses
|
|
124
|
+
- Pain points nobody directly names
|
|
125
|
+
- Emotional outcomes nobody promises
|
|
126
|
+
|
|
127
|
+
### Positioning Gaps (where nobody lives)
|
|
128
|
+
- Empty quadrants on the 2x2 map
|
|
129
|
+
- Unclaimed market sophistication stages
|
|
130
|
+
- Identity positions nobody owns ("the X for Y people")
|
|
131
|
+
|
|
132
|
+
### Channel Gaps (where nobody shows up)
|
|
133
|
+
- Platforms the audience uses but competitors ignore
|
|
134
|
+
- Content formats nobody produces (video, podcast, tools)
|
|
135
|
+
- Communities nobody engages with
|
|
136
|
+
|
|
137
|
+
### Pricing Gaps (where nobody charges)
|
|
138
|
+
- Price points between existing tiers
|
|
139
|
+
- Models nobody offers (lifetime, pay-per-use, free tier)
|
|
140
|
+
- Packaging innovations (bundles, unbundles)
|
|
141
|
+
|
|
142
|
+
### Proof Gaps (what nobody proves)
|
|
143
|
+
- Results nobody quantifies
|
|
144
|
+
- Use cases nobody documents
|
|
145
|
+
- Audiences nobody showcases in case studies
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: competitor-alternatives
|
|
3
|
+
description: "Creates high-converting 'X vs Y' and 'X alternatives' SEO pages that capture comparison search traffic."
|
|
4
|
+
category: seo
|
|
5
|
+
tier: core
|
|
6
|
+
reads:
|
|
7
|
+
- brand/competitors.md
|
|
8
|
+
- brand/positioning.md
|
|
9
|
+
- brand/voice-profile.md
|
|
10
|
+
- brand/audience.md
|
|
11
|
+
writes:
|
|
12
|
+
- campaigns/comparisons/vs/{competitor}-vs-{product}.md
|
|
13
|
+
- campaigns/comparisons/alternatives/{competitor}-alternatives.md
|
|
14
|
+
triggers:
|
|
15
|
+
- alternatives page
|
|
16
|
+
- vs page
|
|
17
|
+
- comparison page
|
|
18
|
+
- competitor alternatives
|
|
19
|
+
- X vs Y
|
|
20
|
+
- compete with
|
|
21
|
+
- competitor search traffic
|
|
22
|
+
- brand comparison
|
|
23
|
+
- capture traffic
|
|
24
|
+
allowed-tools: []
|
|
25
|
+
depends-on:
|
|
26
|
+
- hook-generator
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Competitor Alternatives Pages
|
|
30
|
+
|
|
31
|
+
## Purpose
|
|
32
|
+
|
|
33
|
+
People searching "[Competitor] alternatives" or "[Product] vs [Competitor]" have high purchase intent. They already know the category — they're choosing. This skill captures that traffic with structured comparison content that ranks and converts.
|
|
34
|
+
|
|
35
|
+
## On Activation
|
|
36
|
+
|
|
37
|
+
1. Read `brand/` directory: load `competitors.md`, `positioning.md`, `voice-profile.md`, `audience.md` if present.
|
|
38
|
+
2. Show what loaded:
|
|
39
|
+
```
|
|
40
|
+
Brand context loaded:
|
|
41
|
+
├── Competitors ✓/✗ ({N} competitors profiled)
|
|
42
|
+
├── Positioning ✓/✗ ("{primary angle}")
|
|
43
|
+
├── Voice Profile ✓/✗
|
|
44
|
+
└── Audience ✓/✗
|
|
45
|
+
```
|
|
46
|
+
3. If `competitors.md` is missing: suggest running `/competitive-intel` first, or ask user to provide competitor names, pricing, and key differentiators.
|
|
47
|
+
4. If `positioning.md` is missing: ask for the product's primary value prop and target audience.
|
|
48
|
+
5. Ask which competitors to create pages for (or "all" from competitors.md).
|
|
49
|
+
6. 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.
|
|
50
|
+
|
|
51
|
+
## Reads
|
|
52
|
+
|
|
53
|
+
- `brand/competitors.md` — Known competitors, their positioning, pricing, weaknesses
|
|
54
|
+
- `brand/positioning.md` — Your product's unique value props, differentiators, target audience
|
|
55
|
+
- `brand/voice-profile.md` — Tone for comparison copy
|
|
56
|
+
- `brand/audience.md` — Who is choosing between you and competitors
|
|
57
|
+
|
|
58
|
+
## Depends On
|
|
59
|
+
|
|
60
|
+
- `competitive-intel` — Should have competitor research completed first (not hard-blocked — can proceed with user-provided data)
|
|
61
|
+
- `hook-generator` — For SEO-optimized page titles and meta descriptions
|
|
62
|
+
|
|
63
|
+
## Workflow
|
|
64
|
+
|
|
65
|
+
### Step 1: Identify Comparison Queries
|
|
66
|
+
|
|
67
|
+
Pull from `competitors.md` and generate the full keyword set:
|
|
68
|
+
|
|
69
|
+
- `[competitor] alternatives` (highest volume)
|
|
70
|
+
- `[competitor] vs [your product]` (branded)
|
|
71
|
+
- `[your product] vs [competitor]` (branded reverse)
|
|
72
|
+
- `best [category] tools` (category)
|
|
73
|
+
- `[competitor] review` (review intent)
|
|
74
|
+
- `[competitor] pricing` (price-sensitive)
|
|
75
|
+
|
|
76
|
+
Prioritize by: search volume estimate > purchase intent > your win rate against that competitor.
|
|
77
|
+
|
|
78
|
+
### If Web Search Is Unavailable
|
|
79
|
+
|
|
80
|
+
Use data from brand/competitors.md if it exists. Ask the user directly for: competitor pricing, key strengths/weaknesses, and notable reviews or complaints they've seen. Note limitation: 'Competitor data is based on provided context, not live research. Verify current pricing and features before publishing.'
|
|
81
|
+
|
|
82
|
+
### Step 2: Research Each Competitor
|
|
83
|
+
|
|
84
|
+
For each competitor page, gather:
|
|
85
|
+
|
|
86
|
+
- **Core product** — What they actually do (one sentence)
|
|
87
|
+
- **Pricing** — Free tier, paid plans, enterprise
|
|
88
|
+
- **Strengths** — 3-5 genuine strengths (be honest, builds credibility)
|
|
89
|
+
- **Weaknesses** — 3-5 real weaknesses (factual, not snarky)
|
|
90
|
+
- **Best for** — Their ideal customer profile
|
|
91
|
+
- **Not ideal for** — Where they fall short (your opportunity)
|
|
92
|
+
- **Key reviews** — G2, Capterra, Reddit sentiment summary
|
|
93
|
+
|
|
94
|
+
### Step 2.5: SEO Title Generation (via hook-generator)
|
|
95
|
+
|
|
96
|
+
Before writing pages, generate click-optimized titles and meta descriptions for each target competitor:
|
|
97
|
+
|
|
98
|
+
**VS Page Titles** — Spawn subagent:
|
|
99
|
+
```markdown
|
|
100
|
+
Load the hook-generator skill and execute the full Phase 1-6 pipeline with this context:
|
|
101
|
+
- WHO: [Target audience from audience.md — buyers comparing solutions]
|
|
102
|
+
- WHAT/WHY: [Comparison: [Your Product] vs [Competitor] — key differentiator is [X]]
|
|
103
|
+
- Knife: [Pain point driving the comparison search — e.g., "pricing surprise," "missing feature," "integration hell"]
|
|
104
|
+
- Platform: SEO (Google search results)
|
|
105
|
+
- Brand: [Voice from voice-profile.md]
|
|
106
|
+
- Target Score: 85
|
|
107
|
+
Return ONLY this JSON array: [{"hook":"...","score":<0-100>,"pattern":"...","formula":"..."}]
|
|
108
|
+
```
|
|
109
|
+
Filter: Discard clickbait; keep titles that preserve keyword clarity ([Competitor] vs [Your Product] must be visible) and promise honest comparison
|
|
110
|
+
Fallback: If subagent fails, use template: "[Competitor] vs [Your Product]: Honest Comparison [Year]"
|
|
111
|
+
|
|
112
|
+
**Alternatives Page Titles** — Spawn subagent:
|
|
113
|
+
```markdown
|
|
114
|
+
Load the hook-generator skill and execute the full Phase 1-6 pipeline with this context:
|
|
115
|
+
- WHO: [Same audience — buyers actively looking to switch]
|
|
116
|
+
- WHAT/WHY: [Alternatives roundup: [Competitor] alternatives — your product positioned as #1]
|
|
117
|
+
- Knife: [Top reasons for switching from competitor — from review mining]
|
|
118
|
+
- Platform: SEO (Google search results)
|
|
119
|
+
- Brand: [Same voice]
|
|
120
|
+
- Target Score: 85
|
|
121
|
+
Return ONLY this JSON array: [{"hook":"...","score":<0-100>,"pattern":"...","formula":"..."}]
|
|
122
|
+
```
|
|
123
|
+
Filter: Discard listicle titles that feel generic; keep titles that signal "best for [specific use case]"
|
|
124
|
+
Fallback: If subagent fails, use template: "Best [Competitor] Alternatives [Year]"
|
|
125
|
+
|
|
126
|
+
### Step 3: Write the Comparison Page
|
|
127
|
+
|
|
128
|
+
Structure for each page:
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
---
|
|
132
|
+
title: "[Competitor] vs [Your Product]: Honest Comparison [Year]"
|
|
133
|
+
description: "Comparing [Competitor] and [Your Product] on features, pricing, and ease of use. See which is right for your needs."
|
|
134
|
+
slug: /compare/[competitor]-vs-[your-product]
|
|
135
|
+
schema: ComparisonPage
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## TL;DR
|
|
139
|
+
|
|
140
|
+
[2-3 sentence verdict. Be specific about WHO should pick which tool.]
|
|
141
|
+
|
|
142
|
+
## Quick Comparison
|
|
143
|
+
|
|
144
|
+
| Feature | [Your Product] | [Competitor] |
|
|
145
|
+
|---------|---------------|--------------|
|
|
146
|
+
| [Feature 1] | [Status/Detail] | [Status/Detail] |
|
|
147
|
+
| [Feature 2] | [Status/Detail] | [Status/Detail] |
|
|
148
|
+
| Pricing starts at | $X/mo | $Y/mo |
|
|
149
|
+
| Free tier | Yes/No | Yes/No |
|
|
150
|
+
| Best for | [Audience] | [Audience] |
|
|
151
|
+
|
|
152
|
+
## [Your Product] Overview
|
|
153
|
+
[2-3 paragraphs. Lead with your strongest differentiator against THIS specific competitor.]
|
|
154
|
+
|
|
155
|
+
## [Competitor] Overview
|
|
156
|
+
[2-3 paragraphs. Fair and accurate. Acknowledge their strengths.]
|
|
157
|
+
|
|
158
|
+
## Feature-by-Feature Breakdown
|
|
159
|
+
|
|
160
|
+
### [Category 1]
|
|
161
|
+
[Detailed comparison with specifics, not vague claims]
|
|
162
|
+
|
|
163
|
+
### [Category 2]
|
|
164
|
+
[Same pattern]
|
|
165
|
+
|
|
166
|
+
## Pricing Comparison
|
|
167
|
+
[Side-by-side pricing breakdown. Include hidden costs, overage fees, feature gates.]
|
|
168
|
+
|
|
169
|
+
## Verdict: Which Should You Choose?
|
|
170
|
+
|
|
171
|
+
**Choose [Your Product] if:**
|
|
172
|
+
- [Specific use case 1]
|
|
173
|
+
- [Specific use case 2]
|
|
174
|
+
- [Specific use case 3]
|
|
175
|
+
|
|
176
|
+
**Choose [Competitor] if:** (**REQUIRED — 3 honest tradeoffs minimum**)
|
|
177
|
+
- [Specific use case where they genuinely win — cite the feature, not a vague claim]
|
|
178
|
+
- [Another honest scenario — name the situation concretely]
|
|
179
|
+
- [A third where they're objectively better — pricing tier, integration, niche capability]
|
|
180
|
+
|
|
181
|
+
> **Honesty section is non-negotiable.** Three concrete, verifiable scenarios where the competitor wins. This is the section that earns the reader's trust — and the section AI Overviews and ChatGPT cite when picking which comparison page to surface. Pages without it underperform measurably on both ranking AND conversion. "We're better at everything" reads as marketing copy; "they're better at X, Y, Z but we're better at A, B, C" reads as a real comparison.
|
|
182
|
+
|
|
183
|
+
## Ready to try [Your Product]?
|
|
184
|
+
[CTA — free trial, demo, or signup. Match to the comparison context.]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Step 4: Write the Alternatives Roundup
|
|
188
|
+
|
|
189
|
+
For the "[Your Product] alternatives" defensive page and "[Competitor] alternatives" offensive pages:
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
---
|
|
193
|
+
title: "Best [Competitor] Alternatives [Year]"
|
|
194
|
+
description: "Looking for [Competitor] alternatives? Compare the top X options including pricing, features, and who each is best for."
|
|
195
|
+
slug: /compare/[competitor]-alternatives
|
|
196
|
+
schema: ItemList
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Why People Switch from [Competitor]
|
|
200
|
+
|
|
201
|
+
[3-5 common reasons based on review mining — pricing, missing features, UX friction]
|
|
202
|
+
|
|
203
|
+
## Best [Competitor] Alternatives
|
|
204
|
+
|
|
205
|
+
### 1. [Your Product] — Best for [specific use case]
|
|
206
|
+
**Pricing:** ...
|
|
207
|
+
**Key difference:** ...
|
|
208
|
+
**Best for:** ...
|
|
209
|
+
|
|
210
|
+
### 2. [Alternative 2] — Best for [different use case]
|
|
211
|
+
[Same structure]
|
|
212
|
+
|
|
213
|
+
### 3-5. [More alternatives]
|
|
214
|
+
[Same structure, be genuinely helpful]
|
|
215
|
+
|
|
216
|
+
## Comparison Table
|
|
217
|
+
[Full matrix of all alternatives]
|
|
218
|
+
|
|
219
|
+
## How to Choose
|
|
220
|
+
[Decision framework based on use case, team size, budget]
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Step 5: Schema Markup
|
|
224
|
+
|
|
225
|
+
Add JSON-LD schema to each page:
|
|
226
|
+
|
|
227
|
+
- **VS pages** — Use `FAQPage` schema with common comparison questions
|
|
228
|
+
- **Alternatives pages** — Use `ItemList` schema for the roundup
|
|
229
|
+
- Both — Include `Article` schema with author, date, modified date
|
|
230
|
+
|
|
231
|
+
## Verdict Frameworks
|
|
232
|
+
|
|
233
|
+
Use these to write honest, credible verdicts:
|
|
234
|
+
|
|
235
|
+
**The Acknowledger:** "While [Competitor] excels at [X], [Your Product] is purpose-built for [Y] — which matters more if you're [target use case]."
|
|
236
|
+
|
|
237
|
+
**The Segmenter:** "[Competitor] is the right choice for [persona A]. But if you're [persona B], [Your Product] will save you [specific outcome]."
|
|
238
|
+
|
|
239
|
+
**The Switcher:** "If you're already using [Competitor] and frustrated by [common complaint], [Your Product] solves that with [specific feature]."
|
|
240
|
+
|
|
241
|
+
## Brand Integration
|
|
242
|
+
|
|
243
|
+
- **positioning.md** → Every comparison verdict ties back to the positioning angle. Don't just compare features — compare through the lens of your unique value proposition.
|
|
244
|
+
- **competitors.md** → Use teardown data for accurate, specific claims. Vague comparisons destroy credibility. Cite specific features, pricing, and limitations.
|
|
245
|
+
|
|
246
|
+
## CTA Templates
|
|
247
|
+
|
|
248
|
+
**For clear wins:** "Start your free trial — most teams switch from [Competitor] in under an hour."
|
|
249
|
+
|
|
250
|
+
**For close comparisons:** "Not sure yet? Try both free tiers and compare with your actual workflow."
|
|
251
|
+
|
|
252
|
+
**For price-sensitive:** "Get [Competitor]-level features at [fraction] of the cost. See pricing."
|
|
253
|
+
|
|
254
|
+
## Output
|
|
255
|
+
|
|
256
|
+
Each comparison generates:
|
|
257
|
+
- One markdown file per competitor (VS page)
|
|
258
|
+
- One alternatives roundup page per competitor
|
|
259
|
+
- One defensive "alternatives to [your product]" page
|
|
260
|
+
- SEO metadata and schema markup included in frontmatter
|
|
261
|
+
- Internal linking suggestions between comparison pages
|
|
262
|
+
|
|
263
|
+
## File Output Format
|
|
264
|
+
|
|
265
|
+
### Directory Structure
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
./campaigns/comparisons/
|
|
269
|
+
├── vs/
|
|
270
|
+
│ ├── {competitor-slug}-vs-{your-product-slug}.md
|
|
271
|
+
│ └── ...
|
|
272
|
+
├── alternatives/
|
|
273
|
+
│ ├── {competitor-slug}-alternatives.md
|
|
274
|
+
│ └── {your-product-slug}-alternatives.md (defensive)
|
|
275
|
+
└── index.md (comparison hub page)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Frontmatter (VS Pages)
|
|
279
|
+
|
|
280
|
+
```yaml
|
|
281
|
+
---
|
|
282
|
+
title: "{Competitor} vs {Your Product}: Honest Comparison {Year}"
|
|
283
|
+
meta_description: "{150-160 chars}"
|
|
284
|
+
slug: /compare/{competitor}-vs-{your-product}
|
|
285
|
+
page_type: comparison
|
|
286
|
+
competitor: "{Competitor Name}"
|
|
287
|
+
date_created: "{YYYY-MM-DD}"
|
|
288
|
+
last_updated: "{YYYY-MM-DD}"
|
|
289
|
+
status: "draft"
|
|
290
|
+
schema_faq: |
|
|
291
|
+
{FAQPage JSON-LD}
|
|
292
|
+
schema_article: |
|
|
293
|
+
{Article JSON-LD}
|
|
294
|
+
---
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Frontmatter (Alternatives Pages)
|
|
298
|
+
|
|
299
|
+
```yaml
|
|
300
|
+
---
|
|
301
|
+
title: "Best {Competitor} Alternatives {Year}"
|
|
302
|
+
meta_description: "{150-160 chars}"
|
|
303
|
+
slug: /compare/{competitor}-alternatives
|
|
304
|
+
page_type: alternatives
|
|
305
|
+
competitor: "{Competitor Name}"
|
|
306
|
+
alternatives_count: {number}
|
|
307
|
+
date_created: "{YYYY-MM-DD}"
|
|
308
|
+
last_updated: "{YYYY-MM-DD}"
|
|
309
|
+
status: "draft"
|
|
310
|
+
schema_itemlist: |
|
|
311
|
+
{ItemList JSON-LD}
|
|
312
|
+
schema_article: |
|
|
313
|
+
{Article JSON-LD}
|
|
314
|
+
---
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Quality Checks
|
|
320
|
+
|
|
321
|
+
- [ ] Every competitor strength acknowledged (credibility)
|
|
322
|
+
- [ ] **Honesty section present with ≥3 concrete tradeoffs where the competitor wins** (non-negotiable — pages without this underperform)
|
|
323
|
+
- [ ] Feature claims are specific, not vague ("AI-powered" means nothing)
|
|
324
|
+
- [ ] Pricing is current and includes all tiers
|
|
325
|
+
- [ ] Verdict is genuinely helpful, not just "pick us"
|
|
326
|
+
- [ ] Schema markup validates
|
|
327
|
+
- [ ] CTAs match the comparison context
|
|
328
|
+
- [ ] No competitor trademark violations in meta titles
|
|
329
|
+
- [ ] Files saved to correct paths with complete frontmatter
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Anti-Patterns
|
|
334
|
+
|
|
335
|
+
- **Snark destroys credibility.** Backhanded compliments ("Competitor is fine if you don't need real features") make you look petty, not confident. Genuine respect for competitors makes your wins land harder — the reader trusts you more when you're fair.
|
|
336
|
+
- **Unverifiable claims undermine everything.** "Our platform is 10x faster" without benchmarks reads as marketing fluff. Readers researching alternatives are already skeptical — every claim needs evidence (benchmark, case study, specific feature comparison).
|
|
337
|
+
- **Acknowledging competitor strengths builds trust.** Readers know competitors aren't terrible — they're actively considering them. Trying to make competitors look bad makes your content look biased. Honest acknowledgment is what makes your differentiators credible.
|
|
338
|
+
- **Stale pricing erodes trust instantly.** If a reader checks and your pricing is wrong, they'll question everything else on the page. When you can't verify current pricing, say "as of {date}" and note it may have changed — this is more trustworthy than confident-but-wrong numbers.
|
|
339
|
+
- **Thin comparison pages are doorway pages.** A feature table with checkmarks and no analysis doesn't help anyone choose. Each page needs genuine insight about *when* to choose each option — that's what earns the ranking and the conversion.
|
|
340
|
+
- **Skipping the honesty section breaks the trust contract.** Pages that claim "we win on every dimension" read as marketing copy. Readers researching alternatives are already skeptical of vendor-published comparisons — three honest tradeoffs where the competitor wins is the credibility move that lets your differentiators land. AI Overviews and ChatGPT cite honest pages over self-serving ones because they're more useful to the searcher. The honesty section isn't a generosity; it's a positioning lever.
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Error States
|
|
345
|
+
|
|
346
|
+
- **No competitors.md:** Ask user for competitor names and key info. Suggest running `/competitive-intel` first for thorough research. Can proceed with user-provided data.
|
|
347
|
+
- **No positioning.md:** Ask user for their product's value prop, target audience, and key differentiators. Comparison quality will be lower without clear positioning.
|
|
348
|
+
- **No web search available:** Use data from brand/competitors.md. Ask user directly for current pricing and recent product changes. Note: "Competitor data based on provided context — verify current pricing and features before publishing."
|
|
349
|
+
- **Incomplete competitor data:** Generate pages for competitors with sufficient data, skip others. Note which competitors need more research.
|
|
350
|
+
- **Can't save files:** Display content for manual copy. Suggest checking write permissions.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Chain Offers
|
|
355
|
+
|
|
356
|
+
After saving, suggest:
|
|
357
|
+
|
|
358
|
+
- `/competitive-intel` — deepen research on specific competitors
|
|
359
|
+
- `/seo-content` — create supporting content (e.g., "[category] buyer's guide")
|
|
360
|
+
- `/page-cro` — optimize comparison pages for conversion
|
|
361
|
+
- `/content-atomizer` — distribute comparison insights across social channels
|
|
362
|
+
- "Update" — refresh pricing and features periodically
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "competitor-alternatives",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Create a 'Best Asana Alternatives' page for our project management tool. We compete mainly on price (we're $8/user vs their $24/user) and simplicity (they've become bloated). Target audience is small teams (5-20 people).",
|
|
7
|
+
"expected_output": "Should check for product-marketing-context.md first. Should identify this as the plural alternatives format ([Competitor] Alternatives). Should include the essential sections: TL;DR comparison, brief paragraphs on each alternative (including the user's product positioned first or prominently), feature comparison table, pricing comparison, who each alternative is best for. Should use the modular content architecture approach. Should address SEO considerations for the target keyword 'Asana alternatives.' Should position the user's product with the stated differentiators (price, simplicity).",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Checks for product-marketing-context.md",
|
|
10
|
+
"Identifies as plural alternatives format",
|
|
11
|
+
"Includes TL;DR comparison section",
|
|
12
|
+
"Includes feature comparison table",
|
|
13
|
+
"Includes pricing comparison",
|
|
14
|
+
"Includes 'who it's best for' per alternative",
|
|
15
|
+
"Positions user's product prominently with differentiators",
|
|
16
|
+
"Addresses SEO for target keyword"
|
|
17
|
+
],
|
|
18
|
+
"files": []
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": 2,
|
|
22
|
+
"prompt": "Write a 'HubSpot vs Salesforce' comparison page. We're HubSpot and want to show why we're the better choice for SMBs.",
|
|
23
|
+
"expected_output": "Should identify this as the 'you vs competitor' format. Should include structured comparison sections: overview of both, feature-by-feature comparison, pricing comparison, pros/cons of each, who each is best for, and migration path. Should be factually accurate about the competitor while strategically positioning the user's product. Should include a TL;DR at the top. Should address the SMB angle throughout. Should use the centralized competitor data architecture pattern.",
|
|
24
|
+
"assertions": [
|
|
25
|
+
"Identifies as 'you vs competitor' format",
|
|
26
|
+
"Includes structured comparison sections",
|
|
27
|
+
"Includes feature-by-feature comparison",
|
|
28
|
+
"Includes pricing comparison",
|
|
29
|
+
"Includes TL;DR at the top",
|
|
30
|
+
"Factually accurate about competitor",
|
|
31
|
+
"Strategically positions user's product for SMBs",
|
|
32
|
+
"Includes migration path or switching section"
|
|
33
|
+
],
|
|
34
|
+
"files": []
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": 3,
|
|
38
|
+
"prompt": "we need a page targeting 'mailchimp alternative' (singular). we're an email marketing platform focused on e-commerce brands.",
|
|
39
|
+
"expected_output": "Should trigger on casual phrasing. Should identify this as the singular alternative format ([Competitor] Alternative — positioning your product as THE alternative). Should focus the entire page on why the user's product is the best Mailchimp alternative for e-commerce. Should include: why people switch from Mailchimp, what the user's product does better (e-commerce specific features), feature comparison, pricing comparison, migration guide, customer testimonials. Should optimize for the singular keyword 'Mailchimp alternative.'",
|
|
40
|
+
"assertions": [
|
|
41
|
+
"Triggers on casual phrasing",
|
|
42
|
+
"Identifies as singular alternative format",
|
|
43
|
+
"Focuses on user's product as THE alternative",
|
|
44
|
+
"Includes why people switch from Mailchimp",
|
|
45
|
+
"Highlights e-commerce-specific advantages",
|
|
46
|
+
"Includes feature and pricing comparison",
|
|
47
|
+
"Includes migration guide",
|
|
48
|
+
"Optimizes for singular keyword"
|
|
49
|
+
],
|
|
50
|
+
"files": []
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": 4,
|
|
54
|
+
"prompt": "Can you create a comparison page for 'Notion vs Coda'? We're a third-party review site, not affiliated with either product.",
|
|
55
|
+
"expected_output": "Should identify this as the 'competitor vs competitor' format (third-party perspective). Should maintain objectivity since the user isn't either product. Should include balanced comparison: overview of both, feature comparison, pricing, pros/cons, use case recommendations. Should use the essential page sections from the skill. Should suggest how to monetize the page (affiliate links, CTA to the user's own product if relevant). Should address SEO for the 'Notion vs Coda' keyword.",
|
|
56
|
+
"assertions": [
|
|
57
|
+
"Identifies as 'competitor vs competitor' format",
|
|
58
|
+
"Maintains objectivity (third-party perspective)",
|
|
59
|
+
"Includes balanced feature comparison",
|
|
60
|
+
"Includes pricing comparison",
|
|
61
|
+
"Includes use case recommendations",
|
|
62
|
+
"Addresses SEO considerations",
|
|
63
|
+
"Suggests monetization approach"
|
|
64
|
+
],
|
|
65
|
+
"files": []
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": 5,
|
|
69
|
+
"prompt": "We want to build a whole competitor comparison hub. We have 5 main competitors and want to create alternative pages for each, plus head-to-head comparisons. How should we structure this?",
|
|
70
|
+
"expected_output": "Should apply the centralized competitor data architecture. Should recommend a hub structure with: individual alternative pages for each competitor (5 singular pages), a 'best alternatives' roundup page, head-to-head comparison pages for key matchups. Should address internal linking strategy between these pages. Should recommend the research process for gathering competitive data. Should address URL structure and site architecture for the hub.",
|
|
71
|
+
"assertions": [
|
|
72
|
+
"Applies centralized competitor data architecture",
|
|
73
|
+
"Recommends hub structure with multiple page types",
|
|
74
|
+
"Suggests individual and roundup alternative pages",
|
|
75
|
+
"Addresses internal linking between comparison pages",
|
|
76
|
+
"Recommends research process for competitive data",
|
|
77
|
+
"Addresses URL structure"
|
|
78
|
+
],
|
|
79
|
+
"files": []
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": 6,
|
|
83
|
+
"prompt": "I need to create a battle card for our sales team comparing us to Zendesk. It should help reps handle competitive objections during sales calls.",
|
|
84
|
+
"expected_output": "Should recognize this as internal sales enablement material, not a public comparison page. Should defer to or cross-reference the sales-enablement skill, which handles battle cards, objection handling docs, and internal competitive collateral. May provide some competitive positioning advice but should make clear that sales-enablement is the right skill for internal sales materials.",
|
|
85
|
+
"assertions": [
|
|
86
|
+
"Recognizes this as internal sales enablement material",
|
|
87
|
+
"References or defers to sales-enablement skill",
|
|
88
|
+
"Does not attempt to create internal battle card using public comparison page patterns"
|
|
89
|
+
],
|
|
90
|
+
"files": []
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|