@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,307 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: topical-authority
|
|
3
|
+
description: Market-first topical authority system with systematic keyword-to-content-cluster workflow.
|
|
4
|
+
---
|
|
5
|
+
name: topical-authority
|
|
6
|
+
description: Market-first topical authority system using systematic framework. Complete workflow from keyword research through content cluster generation.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Topical Authority Skill
|
|
10
|
+
|
|
11
|
+
**Market-first topical authority system using Jake Ward's 7-step framework**
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
This skill implements a complete topical authority workflow that starts with market research (forums, Reddit, Quora) and builds SEO-optimized content clusters using SERP analysis and hub-and-spoke architecture.
|
|
16
|
+
|
|
17
|
+
**Key Innovation**: All script execution is delegated to Gemini CLI for 95%+ token savings.
|
|
18
|
+
|
|
19
|
+
## When to Use This Skill
|
|
20
|
+
|
|
21
|
+
Use this skill when:
|
|
22
|
+
- Starting SEO strategy for a new brand or niche
|
|
23
|
+
- Building topical authority in a specific domain
|
|
24
|
+
- Need to identify high-value content opportunities (GOLDEN/GOOD)
|
|
25
|
+
- Want to prevent keyword cannibalization via SERP clustering
|
|
26
|
+
- Building hub-and-spoke content architecture
|
|
27
|
+
- Auditing and improving internal linking structure
|
|
28
|
+
|
|
29
|
+
**Trigger phrases**:
|
|
30
|
+
- "build topical authority for [brand]"
|
|
31
|
+
- "run SEO discovery for [brand]"
|
|
32
|
+
- "identify content gaps for [brand]"
|
|
33
|
+
- "audit internal links for [brand]"
|
|
34
|
+
|
|
35
|
+
## Workflow Phases
|
|
36
|
+
|
|
37
|
+
### Phase 1: Forum Discovery (Scripts 1-4)
|
|
38
|
+
Scrape pain points and questions from multiple sources:
|
|
39
|
+
- **Reddit**: Pain point detection across ICP-relevant subreddits
|
|
40
|
+
- **Quora**: High-engagement questions by topic
|
|
41
|
+
- **People Also Ask**: Recursive PAA expansion from seed keywords
|
|
42
|
+
- **Competitor Analysis**: Content gap identification
|
|
43
|
+
|
|
44
|
+
**Output**: `businesses/{business}/evergreen.mdforum-data/*.json`
|
|
45
|
+
|
|
46
|
+
### Phase 2: Keyword Extraction (Script 5)
|
|
47
|
+
Use Gemini CLI to extract keyword variations from forum data:
|
|
48
|
+
- 5-10 keyword variations per forum item
|
|
49
|
+
- Volume estimates (high/medium/low)
|
|
50
|
+
- Search intent classification
|
|
51
|
+
- Deduplication and normalization
|
|
52
|
+
|
|
53
|
+
**Output**: `businesses/{business}/evergreen.mdkeyword-universe.json`
|
|
54
|
+
|
|
55
|
+
### Phase 3: SERP Clustering (Scripts 6-8)
|
|
56
|
+
Prevent keyword cannibalization using URL overlap analysis:
|
|
57
|
+
- **Fetch SERP URLs**: Top 10 results per keyword
|
|
58
|
+
- **Cluster by Intent**: Jaccard similarity + Gemini analysis
|
|
59
|
+
- **Build Architecture**: Identify pillars and clusters
|
|
60
|
+
|
|
61
|
+
**Algorithm**:
|
|
62
|
+
- ≥70% URL overlap → Same cluster (same page)
|
|
63
|
+
- <30% URL overlap → Different clusters (separate pages)
|
|
64
|
+
- 30-69% overlap → Gemini analyzes search intent
|
|
65
|
+
|
|
66
|
+
**Output**: `businesses/{business}/evergreen.mdhub-architecture.json`
|
|
67
|
+
|
|
68
|
+
### Phase 4: Gap Analysis (Scripts 9-10)
|
|
69
|
+
Identify high-value opportunities and research needs:
|
|
70
|
+
- **Content Gaps**: Priority Score = `Volume × (100 - Difficulty)`
|
|
71
|
+
- **Research Gaps**: Check if podcast research exists
|
|
72
|
+
|
|
73
|
+
**Opportunity Levels**:
|
|
74
|
+
- GOLDEN (top 10%): High volume + Very low difficulty (<20)
|
|
75
|
+
- GOOD (next 20%): Good volume + Low difficulty (20-40)
|
|
76
|
+
- MEDIUM (next 30%): Medium volume or medium difficulty
|
|
77
|
+
- SKIP (bottom 40%): Low volume or high difficulty (>60)
|
|
78
|
+
|
|
79
|
+
**Output**: `businesses/{business}/evergreen.mdcontent-gaps.json`, `research-gaps.json`
|
|
80
|
+
|
|
81
|
+
### Phase 5: Internal Linking (Scripts 11-12)
|
|
82
|
+
Audit and improve internal link structure:
|
|
83
|
+
- **Audit**: Build link graph, identify orphaned pages
|
|
84
|
+
- **Weave**: Auto-suggest strategic link insertions
|
|
85
|
+
|
|
86
|
+
**Health Metrics**:
|
|
87
|
+
- Orphan rate (% pages with no inbound links)
|
|
88
|
+
- Avg internal links per page
|
|
89
|
+
- Hub-spoke adherence score
|
|
90
|
+
- Linking density
|
|
91
|
+
|
|
92
|
+
**Output**: `businesses/{business}/evergreen.mdinternal-links-health.md`, `link-suggestions.md`
|
|
93
|
+
|
|
94
|
+
## Cost Structure
|
|
95
|
+
|
|
96
|
+
**Total estimated cost for 500-1,000 keywords**: ~$2-10
|
|
97
|
+
|
|
98
|
+
| Component | Cost | Notes |
|
|
99
|
+
|-----------|------|-------|
|
|
100
|
+
| SERP Fetching | Free | HTTP requests (production: use SERP API) |
|
|
101
|
+
| Keyword Extraction | ~$1-2 | Gemini CLI batch processing |
|
|
102
|
+
| SERP Clustering | ~$1-5 | Gemini only for ambiguous cases (30-69% overlap) |
|
|
103
|
+
| Total | ~$2-10 | vs $50/mo subscriptions |
|
|
104
|
+
|
|
105
|
+
## Usage
|
|
106
|
+
|
|
107
|
+
### Option 1: Run Complete Workflow
|
|
108
|
+
```bash
|
|
109
|
+
# Invoke skill and specify phase
|
|
110
|
+
Skill: topical-authority
|
|
111
|
+
|
|
112
|
+
# Then in skill context:
|
|
113
|
+
# Run all phases for brand ai.withjai
|
|
114
|
+
# Use defaults: min-volume=100, min-cluster-size=3
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Option 2: Run Individual Phases
|
|
118
|
+
```bash
|
|
119
|
+
# Phase 1: Forum discovery
|
|
120
|
+
/topical-authority-discover --brand ai.withjai
|
|
121
|
+
|
|
122
|
+
# Phase 2-3: SERP clustering
|
|
123
|
+
/topical-authority-cluster --brand ai.withjai
|
|
124
|
+
|
|
125
|
+
# Phase 4-5: Gap analysis + linking
|
|
126
|
+
/topical-authority-analyze --brand ai.withjai
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Option 3: Run Individual Scripts
|
|
130
|
+
```bash
|
|
131
|
+
# Forum scrapers
|
|
132
|
+
node scripts/seo/scrape-reddit-pain-points.js --brand ai.withjai
|
|
133
|
+
node scripts/seo/scrape-quora-questions.js --brand ai.withjai --topics "ai automation,content marketing"
|
|
134
|
+
|
|
135
|
+
# SERP clustering
|
|
136
|
+
node scripts/seo/fetch-serp-urls.js --brand ai.withjai --limit 100
|
|
137
|
+
node scripts/seo/gemini-serp-clustering.js --brand ai.withjai --threshold 0.7
|
|
138
|
+
|
|
139
|
+
# Gap analysis
|
|
140
|
+
node scripts/seo/identify-content-gaps.js --brand ai.withjai --min-volume 100
|
|
141
|
+
node scripts/seo/identify-research-gaps.js --brand ai.withjai --min-priority 2
|
|
142
|
+
|
|
143
|
+
# Internal linking
|
|
144
|
+
node scripts/seo/audit-internal-links.js --brand ai.withjai --min-links 3
|
|
145
|
+
node scripts/seo/weave-internal-links.js --brand ai.withjai --auto-insert
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Parameters
|
|
149
|
+
|
|
150
|
+
| Parameter | Default | Description |
|
|
151
|
+
|-----------|---------|-------------|
|
|
152
|
+
| `--brand` | Required | Brand identifier (ai.withjai, enchantents, etc) |
|
|
153
|
+
| `--subreddits` | Auto-detected | Comma-separated list of subreddits |
|
|
154
|
+
| `--topics` | Auto-detected | Comma-separated topics for Quora |
|
|
155
|
+
| `--seed-keywords` | Auto-detected | Seed keywords for PAA expansion |
|
|
156
|
+
| `--limit` | 100 | Max items to process per source |
|
|
157
|
+
| `--threshold` | 0.7 | SERP clustering threshold (70% overlap) |
|
|
158
|
+
| `--min-cluster-size` | 3 | Min keywords to be a pillar page |
|
|
159
|
+
| `--min-volume` | 100 | Min monthly search volume |
|
|
160
|
+
| `--min-priority` | 2 | Min priority level (1=GOLDEN, 2=GOOD) |
|
|
161
|
+
| `--min-links` | 3 | Min internal links per page |
|
|
162
|
+
| `--auto-insert` | false | Auto-insert suggested links (creates backups) |
|
|
163
|
+
|
|
164
|
+
## Integration with Existing Workflows
|
|
165
|
+
|
|
166
|
+
### After Topical Authority Setup → Content Creation
|
|
167
|
+
```bash
|
|
168
|
+
# 1. Run topical authority to identify opportunities
|
|
169
|
+
Skill: topical-authority
|
|
170
|
+
|
|
171
|
+
# 2. Check research gaps
|
|
172
|
+
# Output shows: "Need podcast research for: [topics]"
|
|
173
|
+
|
|
174
|
+
# 3. Use podcast-smart-ingestion to fill gaps
|
|
175
|
+
Skill: podcast-smart-ingestion
|
|
176
|
+
|
|
177
|
+
# 4. Create content using lean blog workflow
|
|
178
|
+
/podcast-blog-lean --podcast "{path}" --brand {brand}
|
|
179
|
+
|
|
180
|
+
# 5. Validate internal linking
|
|
181
|
+
node scripts/seo/audit-internal-links.js --brand {brand}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Quarterly Refresh
|
|
185
|
+
```bash
|
|
186
|
+
# Every 3 months, refresh topical authority analysis
|
|
187
|
+
# 1. Re-scrape forums for new pain points
|
|
188
|
+
# 2. Re-fetch SERP data (search results change)
|
|
189
|
+
# 3. Re-analyze content gaps
|
|
190
|
+
# 4. Re-audit internal links
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Orchestrator Architecture
|
|
194
|
+
|
|
195
|
+
**Token Optimization**: All script execution delegated to Gemini CLI
|
|
196
|
+
|
|
197
|
+
```javascript
|
|
198
|
+
// Orchestrator pattern
|
|
199
|
+
1. User invokes skill with brand + phase
|
|
200
|
+
2. Orchestrator builds Gemini CLI prompt:
|
|
201
|
+
- List of scripts to run
|
|
202
|
+
- Parameters for each script
|
|
203
|
+
- Expected outputs
|
|
204
|
+
- Validation criteria
|
|
205
|
+
3. Gemini CLI executes scripts sequentially
|
|
206
|
+
4. Orchestrator validates outputs
|
|
207
|
+
5. Return summary to user
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Token Savings**: 95%+ reduction vs running scripts directly in Claude context
|
|
211
|
+
|
|
212
|
+
## Output Artifacts
|
|
213
|
+
|
|
214
|
+
All outputs saved to `businesses/{business}/evergreen.md`:
|
|
215
|
+
|
|
216
|
+
| File | Description |
|
|
217
|
+
|------|-------------|
|
|
218
|
+
| `forum-data/reddit-pain-points.json` | Reddit pain points by category |
|
|
219
|
+
| `forum-data/quora-questions.json` | High-engagement Quora questions |
|
|
220
|
+
| `forum-data/paa-questions.json` | People Also Ask recursive expansion |
|
|
221
|
+
| `forum-data/competitor-coverage.json` | Competitor content gap analysis |
|
|
222
|
+
| `keyword-universe.json` | Deduplicated keyword list with intent |
|
|
223
|
+
| `serp-data/serp-urls.json` | Top 10 URLs per keyword |
|
|
224
|
+
| `serp-data/keyword-clusters.json` | SERP-based keyword clusters |
|
|
225
|
+
| `hub-architecture.json` | Pillar pages + cluster structure + linking plan |
|
|
226
|
+
| `content-gaps.json` | Prioritized content opportunities |
|
|
227
|
+
| `research-gaps.json` | Missing research + podcast queries |
|
|
228
|
+
| `internal-links-graph.json` | Link graph + health metrics |
|
|
229
|
+
| `internal-links-health.md` | Human-readable link audit report |
|
|
230
|
+
| `link-suggestions.md` | Strategic link insertion suggestions |
|
|
231
|
+
|
|
232
|
+
## Success Criteria
|
|
233
|
+
|
|
234
|
+
**Forum Discovery**:
|
|
235
|
+
- ✅ 50+ pain points from Reddit
|
|
236
|
+
- ✅ 30+ high-engagement Quora questions
|
|
237
|
+
- ✅ 50+ PAA questions (depth 2)
|
|
238
|
+
- ✅ 10+ competitor content gaps
|
|
239
|
+
|
|
240
|
+
**SERP Clustering**:
|
|
241
|
+
- ✅ 100+ keywords validated
|
|
242
|
+
- ✅ 5-10 pillar pages identified
|
|
243
|
+
- ✅ 20-50 supporting clusters
|
|
244
|
+
- ✅ <$5 Gemini CLI cost
|
|
245
|
+
|
|
246
|
+
**Gap Analysis**:
|
|
247
|
+
- ✅ 10+ GOLDEN opportunities identified
|
|
248
|
+
- ✅ 20+ GOOD opportunities
|
|
249
|
+
- ✅ Research coverage >60%
|
|
250
|
+
- ✅ Podcast queries for gaps
|
|
251
|
+
|
|
252
|
+
**Internal Linking**:
|
|
253
|
+
- ✅ Health score >80/100
|
|
254
|
+
- ✅ Orphan rate <10%
|
|
255
|
+
- ✅ Avg 5+ links per page
|
|
256
|
+
- ✅ Hub-spoke adherence >80%
|
|
257
|
+
|
|
258
|
+
## Technical Implementation
|
|
259
|
+
|
|
260
|
+
**All 12 Scripts**:
|
|
261
|
+
1. `scripts/seo/scrape-reddit-pain-points.js`
|
|
262
|
+
2. `scripts/seo/scrape-quora-questions.js`
|
|
263
|
+
3. `scripts/seo/extract-paa-questions.js`
|
|
264
|
+
4. `scripts/seo/analyze-competitor-coverage.js`
|
|
265
|
+
5. `scripts/seo/extract-keywords-from-forums.js`
|
|
266
|
+
6. `scripts/seo/fetch-serp-urls.js`
|
|
267
|
+
7. `scripts/seo/gemini-serp-clustering.js`
|
|
268
|
+
8. `scripts/seo/build-clusters-from-serp.js`
|
|
269
|
+
9. `scripts/seo/identify-content-gaps.js`
|
|
270
|
+
10. `scripts/seo/identify-research-gaps.js`
|
|
271
|
+
11. `scripts/seo/audit-internal-links.js`
|
|
272
|
+
12. `scripts/seo/weave-internal-links.js`
|
|
273
|
+
|
|
274
|
+
**Orchestrator**: `.claude/skills/topical-authority/scripts/orchestrator.js`
|
|
275
|
+
|
|
276
|
+
**Slash Commands**:
|
|
277
|
+
- `/topical-authority-discover` - Phase 1: Forum discovery
|
|
278
|
+
- `/topical-authority-cluster` - Phase 2-3: SERP clustering
|
|
279
|
+
- `/topical-authority-analyze` - Phase 4-5: Gap analysis + linking
|
|
280
|
+
|
|
281
|
+
## References
|
|
282
|
+
|
|
283
|
+
- Jake Ward's Topical Authority Framework (YouTube)
|
|
284
|
+
- Implementation Plan: `docs/TOPICAL-AUTHORITY-IMPLEMENTATION-PLAN.md`
|
|
285
|
+
- SERP Clustering Algorithm: Jaccard similarity + Gemini intent analysis
|
|
286
|
+
- Priority Formula: `Volume × (100 - Difficulty)`
|
|
287
|
+
|
|
288
|
+
## Troubleshooting
|
|
289
|
+
|
|
290
|
+
**Issue**: SERP fetching blocked by Google
|
|
291
|
+
- **Solution**: Use SERP API (DataForSEO, SerpAPI, ValueSERP) or rotating proxies
|
|
292
|
+
|
|
293
|
+
**Issue**: Gemini CLI timeout on large datasets
|
|
294
|
+
- **Solution**: Reduce batch size or increase timeout
|
|
295
|
+
|
|
296
|
+
**Issue**: Low research coverage (<40%)
|
|
297
|
+
- **Solution**: Run podcast-smart-ingestion with research gap queries
|
|
298
|
+
|
|
299
|
+
**Issue**: Link health score <60/100
|
|
300
|
+
- **Solution**: Run weave-internal-links with --auto-insert
|
|
301
|
+
|
|
302
|
+
**Issue**: No GOLDEN opportunities found
|
|
303
|
+
- **Solution**: Lower min-volume threshold or expand keyword universe
|
|
304
|
+
|
|
305
|
+
## Version History
|
|
306
|
+
|
|
307
|
+
- **v1.0.0** (2025-11-17): Initial implementation with 12 scripts + Gemini CLI orchestration
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Jake Ward's Topical Authority Framework
|
|
2
|
+
|
|
3
|
+
**Source**: Jake Ward's YouTube channel (SEO expert and topical authority specialist)
|
|
4
|
+
|
|
5
|
+
## Core Philosophy
|
|
6
|
+
|
|
7
|
+
**Market-First, Not Content-First**: Start with what the market is searching for, not what content you already have. Most SEO strategies fail because they work backward from existing content instead of forward from market demand.
|
|
8
|
+
|
|
9
|
+
## The 7-Step Framework
|
|
10
|
+
|
|
11
|
+
### 1. Forum Research (Market Discovery)
|
|
12
|
+
**Goal**: Find real pain points and questions from your target audience
|
|
13
|
+
|
|
14
|
+
**Sources**:
|
|
15
|
+
- Reddit (subreddits relevant to your niche)
|
|
16
|
+
- Quora (high-engagement questions)
|
|
17
|
+
- People Also Ask (Google's PAA boxes)
|
|
18
|
+
- Competitor content gaps
|
|
19
|
+
|
|
20
|
+
**Why it works**: Forums reveal what people actually search for, not what you think they search for.
|
|
21
|
+
|
|
22
|
+
### 2. Keyword Extraction
|
|
23
|
+
**Goal**: Convert forum discussions into searchable keyword variations
|
|
24
|
+
|
|
25
|
+
**Process**:
|
|
26
|
+
- Extract 5-10 keyword variations per forum item
|
|
27
|
+
- Include longtail variations (2-5 words)
|
|
28
|
+
- Classify by search intent (informational, commercial, transactional)
|
|
29
|
+
- Deduplicate and normalize
|
|
30
|
+
|
|
31
|
+
**Target**: 500-1,000 keywords for comprehensive topical coverage
|
|
32
|
+
|
|
33
|
+
### 3. SERP Clustering (Anti-Cannibalization)
|
|
34
|
+
**Goal**: Prevent keyword cannibalization by clustering keywords with same search intent
|
|
35
|
+
|
|
36
|
+
**Algorithm**:
|
|
37
|
+
1. Fetch top 10 URLs for each keyword
|
|
38
|
+
2. Calculate URL overlap (Jaccard similarity)
|
|
39
|
+
3. Cluster by overlap threshold:
|
|
40
|
+
- ≥70% overlap → Same cluster (Google sees them as same intent)
|
|
41
|
+
- <30% overlap → Different clusters (different intent)
|
|
42
|
+
- 30-69% overlap → Ambiguous, use AI to analyze intent
|
|
43
|
+
|
|
44
|
+
**Why it works**: Google doesn't rank multiple pages from same site for keywords with identical search intent. Clustering prevents internal competition.
|
|
45
|
+
|
|
46
|
+
**Cost optimization**: Only use expensive SERP APIs or AI analysis for ambiguous cases (30-69% overlap).
|
|
47
|
+
|
|
48
|
+
### 4. Hub-and-Spoke Architecture
|
|
49
|
+
**Goal**: Build topical authority through strategic content structure
|
|
50
|
+
|
|
51
|
+
**Structure**:
|
|
52
|
+
- **Pillar Pages** (Hubs): Comprehensive guides on broad topics (2500+ words)
|
|
53
|
+
- **Cluster Pages** (Spokes): Specific subtopics linking back to pillars (1500+ words)
|
|
54
|
+
- **Bidirectional Linking**: Pillars link to clusters, clusters link back to pillars
|
|
55
|
+
|
|
56
|
+
**Topical Authority Score**: `(Pillars × 10) + (Clusters × 2) + Total Keywords`
|
|
57
|
+
|
|
58
|
+
**Why it works**: Google rewards sites that demonstrate comprehensive coverage of a topic through interconnected content.
|
|
59
|
+
|
|
60
|
+
### 5. Priority Scoring (Attack Weak Points)
|
|
61
|
+
**Goal**: Identify "GOLDEN" opportunities (high volume + low difficulty)
|
|
62
|
+
|
|
63
|
+
**Formula**: `Priority Score = Volume × (100 - Difficulty)`
|
|
64
|
+
|
|
65
|
+
**Opportunity Levels**:
|
|
66
|
+
- **GOLDEN** (top 10%): High volume + Very low difficulty (<20) → Attack first!
|
|
67
|
+
- **GOOD** (next 20%): Good volume + Low difficulty (20-40) → Attack second
|
|
68
|
+
- **MEDIUM** (next 30%): Medium volume or medium difficulty → Consider later
|
|
69
|
+
- **SKIP** (bottom 40%): Low volume or high difficulty (>60) → Ignore
|
|
70
|
+
|
|
71
|
+
**Strategy**: Work smarter, not harder. Start with GOLDEN and GOOD opportunities for fastest ROI.
|
|
72
|
+
|
|
73
|
+
### 6. Research Validation
|
|
74
|
+
**Goal**: Ensure you have research/expertise to create quality content
|
|
75
|
+
|
|
76
|
+
**Process**:
|
|
77
|
+
1. Check if research exists for high-priority opportunities
|
|
78
|
+
2. Identify research gaps
|
|
79
|
+
3. Generate search queries for missing research
|
|
80
|
+
4. Acquire research (podcasts, articles, expert interviews)
|
|
81
|
+
|
|
82
|
+
**Why it works**: Quality content requires quality research. Don't create content you can't back with expertise.
|
|
83
|
+
|
|
84
|
+
### 7. Internal Linking Optimization
|
|
85
|
+
**Goal**: Strengthen topical authority through strategic internal linking
|
|
86
|
+
|
|
87
|
+
**Metrics**:
|
|
88
|
+
- **Orphan Rate**: % of pages with no inbound links (target: <10%)
|
|
89
|
+
- **Hub-Spoke Adherence**: % of proper pillar ↔ cluster links (target: >80%)
|
|
90
|
+
- **Linking Density**: Total links / Total pages (target: >0.05)
|
|
91
|
+
- **Health Score**: Overall linking quality (target: >80/100)
|
|
92
|
+
|
|
93
|
+
**Strategy**:
|
|
94
|
+
1. Fix orphaned pages first (critical)
|
|
95
|
+
2. Complete hub-spoke connections (strategic)
|
|
96
|
+
3. Add contextual links between related content (natural)
|
|
97
|
+
|
|
98
|
+
## Key Insights
|
|
99
|
+
|
|
100
|
+
### 1. Start with Market, Not Content
|
|
101
|
+
"Don't ask 'What content should I create?'. Ask 'What is my market searching for?'"
|
|
102
|
+
|
|
103
|
+
Traditional approach: Content audit → Keyword optimization → Hope for traffic
|
|
104
|
+
Jake Ward approach: Market research → SERP clustering → Strategic content creation
|
|
105
|
+
|
|
106
|
+
### 2. Prevent Keyword Cannibalization
|
|
107
|
+
"If two keywords have 70%+ SERP overlap, Google sees them as the same intent. Creating two pages will cannibalize your rankings."
|
|
108
|
+
|
|
109
|
+
Example:
|
|
110
|
+
- "email marketing tools" and "best email marketing software" → 85% overlap → Same page
|
|
111
|
+
- "email marketing" and "email marketing automation" → 25% overlap → Different pages
|
|
112
|
+
|
|
113
|
+
### 3. Attack Weak Points First
|
|
114
|
+
"Don't compete with giants on difficult keywords. Find the 'weak points' - high volume + low difficulty."
|
|
115
|
+
|
|
116
|
+
Priority Score = Volume × (100 - Difficulty)
|
|
117
|
+
|
|
118
|
+
Example:
|
|
119
|
+
- Keyword A: 5,000 volume, 80 difficulty → Priority: 100,000
|
|
120
|
+
- Keyword B: 1,000 volume, 15 difficulty → Priority: 85,000
|
|
121
|
+
|
|
122
|
+
Keyword B is the better opportunity (lower difficulty, still good traffic potential).
|
|
123
|
+
|
|
124
|
+
### 4. Topical Authority Beats Single-Article SEO
|
|
125
|
+
"Google doesn't rank pages anymore, it ranks sites. Demonstrate you're an authority on the entire topic."
|
|
126
|
+
|
|
127
|
+
Single article strategy: 1 pillar page → Limited rankings
|
|
128
|
+
Topical authority strategy: 1 pillar + 10 clusters → Rankings multiply
|
|
129
|
+
|
|
130
|
+
### 5. Internal Linking is Not Optional
|
|
131
|
+
"Your internal linking structure tells Google what your site is about. Hub-and-spoke is the strongest signal."
|
|
132
|
+
|
|
133
|
+
Weak signal: Random internal links
|
|
134
|
+
Strong signal: Systematic hub-and-spoke architecture
|
|
135
|
+
|
|
136
|
+
## Implementation Timeline
|
|
137
|
+
|
|
138
|
+
**Week 1**: Forum research + Keyword extraction + SERP clustering
|
|
139
|
+
**Week 2**: Hub architecture + Priority scoring + Research validation
|
|
140
|
+
**Week 3**: Content creation for GOLDEN opportunities + Internal linking
|
|
141
|
+
|
|
142
|
+
**Result**: 5-10 pillar pages + 20-50 cluster pages = Comprehensive topical coverage
|
|
143
|
+
|
|
144
|
+
## Success Metrics
|
|
145
|
+
|
|
146
|
+
**Short-term (3 months)**:
|
|
147
|
+
- 50+ keywords ranking in top 100
|
|
148
|
+
- 10+ keywords ranking in top 20
|
|
149
|
+
- Topical authority score >70
|
|
150
|
+
|
|
151
|
+
**Medium-term (6 months)**:
|
|
152
|
+
- 100+ keywords ranking in top 100
|
|
153
|
+
- 30+ keywords ranking in top 20
|
|
154
|
+
- 5+ keywords ranking in top 10
|
|
155
|
+
- Topical authority score >85
|
|
156
|
+
|
|
157
|
+
**Long-term (12 months)**:
|
|
158
|
+
- 200+ keywords ranking in top 100
|
|
159
|
+
- 50+ keywords ranking in top 20
|
|
160
|
+
- 20+ keywords ranking in top 10
|
|
161
|
+
- Topical authority score >95
|
|
162
|
+
- Recognized as authority in niche
|
|
163
|
+
|
|
164
|
+
## Common Mistakes to Avoid
|
|
165
|
+
|
|
166
|
+
1. **Starting with content audit**: Wrong order. Start with market research.
|
|
167
|
+
2. **Ignoring SERP overlap**: Creates keyword cannibalization.
|
|
168
|
+
3. **Targeting only high-volume keywords**: Misses GOLDEN opportunities (high volume + low difficulty).
|
|
169
|
+
4. **Creating content without research**: Results in thin, low-quality content.
|
|
170
|
+
5. **Random internal linking**: Weakens topical authority signal.
|
|
171
|
+
|
|
172
|
+
## Tools & Resources
|
|
173
|
+
|
|
174
|
+
**Required**:
|
|
175
|
+
- Forum scraping (Reddit API, Quora, PAA extraction)
|
|
176
|
+
- Keyword research (Google Ads API, SEMrush, Ahrefs)
|
|
177
|
+
- SERP analysis (DataForSEO, SerpAPI, or free scraping)
|
|
178
|
+
- AI for intent analysis (GPT-4, Claude, Gemini)
|
|
179
|
+
|
|
180
|
+
**Optional**:
|
|
181
|
+
- Rank tracking (Google Search Console, Ahrefs, SEMrush)
|
|
182
|
+
- Content optimization (Surfer SEO, Clearscope, Frase)
|
|
183
|
+
|
|
184
|
+
## Our Implementation
|
|
185
|
+
|
|
186
|
+
We've built 12 scripts that automate this entire framework:
|
|
187
|
+
|
|
188
|
+
**Scripts 1-5**: Forum research + Keyword extraction
|
|
189
|
+
**Scripts 6-8**: SERP clustering + Hub architecture
|
|
190
|
+
**Scripts 9-10**: Priority scoring + Research validation
|
|
191
|
+
**Scripts 11-12**: Internal linking audit + Optimization
|
|
192
|
+
|
|
193
|
+
**Cost**: ~$2-10 for 500-1,000 keywords (vs $50/mo subscriptions)
|
|
194
|
+
**Time**: 3-4 hours for complete analysis (vs weeks of manual work)
|
|
195
|
+
**Token savings**: 95%+ via Gemini CLI delegation
|
|
196
|
+
|
|
197
|
+
## Additional Resources
|
|
198
|
+
|
|
199
|
+
- Jake Ward YouTube Channel: In-depth SEO strategy videos
|
|
200
|
+
- Implementation Plan: `docs/TOPICAL-AUTHORITY-IMPLEMENTATION-PLAN.md`
|
|
201
|
+
- All scripts: `scripts/seo/*.js`
|