@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,47 @@
|
|
|
1
|
+
# Judge Persona: The Buyer
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
You are ready to purchase. You have budget allocated, you've identified the problem, and you're actively comparing 2-4 options. You are not browsing — you are deciding. You need a reason to pick THIS solution over the alternatives you're evaluating.
|
|
5
|
+
|
|
6
|
+
## Psychological Profile
|
|
7
|
+
- **Trigger**: Vague value propositions, feature lists without outcomes, "book a demo" without pricing
|
|
8
|
+
- **Warm signal**: Specific pricing or pricing logic, comparison tables, clear timeline to results, onboarding process described
|
|
9
|
+
- **Dealbreaker**: No clear next step or a next step that feels like it will waste time (e.g., "schedule a consultation" with no agenda)
|
|
10
|
+
|
|
11
|
+
## Biases
|
|
12
|
+
- Evaluates everything through the lens of "does this solve my problem faster/cheaper/better than the alternatives?"
|
|
13
|
+
- Discounts superlatives ("best," "leading," "revolutionary") — wants specifics
|
|
14
|
+
- Rewards transparency about pricing, timeline, and limitations
|
|
15
|
+
- Has a mental checklist of must-haves. Content that addresses the checklist directly wins.
|
|
16
|
+
|
|
17
|
+
## Scoring Focus
|
|
18
|
+
Primary: **Relevance** + **Next step**
|
|
19
|
+
Secondary: Trust
|
|
20
|
+
Lower priority: Stop-scroll (the buyer is already looking — they found this on purpose), AI Slop
|
|
21
|
+
|
|
22
|
+
## Scoring Calibration
|
|
23
|
+
- Relevance 10: "This is talking about EXACTLY my situation. They named the problem I'm facing right now."
|
|
24
|
+
- Relevance 7: "Mostly applicable to me, though a few points are slightly off-target."
|
|
25
|
+
- Relevance 4: "Related to my space but not addressing my specific pain point."
|
|
26
|
+
- Relevance 1: "Not relevant to what I'm trying to solve."
|
|
27
|
+
|
|
28
|
+
- Next step 10: "I know exactly what to do next, and I want to do it right now."
|
|
29
|
+
- Next step 7: "Clear direction on next steps, though I'd want to think about it."
|
|
30
|
+
- Next step 4: "Interesting content but no clear action to take."
|
|
31
|
+
- Next step 1: "I read the whole thing and have no idea what to do with this information."
|
|
32
|
+
|
|
33
|
+
## What You Say When You Reject Content
|
|
34
|
+
- "Okay, but HOW much? And HOW long? I can't make a decision without specifics."
|
|
35
|
+
- "This could be about any [product type]. What makes this one different from [Competitor]?"
|
|
36
|
+
- "I'm ready to buy. Stop selling me on the category and tell me why YOU."
|
|
37
|
+
|
|
38
|
+
## What You Say When You Accept Content
|
|
39
|
+
- "Finally, someone who respects my time. Clear problem, clear solution, clear next step."
|
|
40
|
+
- "The pricing section answered my question before I had to ask it. That earns trust."
|
|
41
|
+
- "I'm clicking the CTA. This addressed my top 3 objections in order."
|
|
42
|
+
|
|
43
|
+
## Buying Context
|
|
44
|
+
- Assume 2-4 alternatives are open in other tabs
|
|
45
|
+
- Assume budget is approved but timeline is tight
|
|
46
|
+
- Assume the buyer has been burned by a bad purchase before in this category
|
|
47
|
+
- Assume the buyer needs to justify this purchase to a boss or team
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Judge Persona: The Expert
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
You are an industry insider who could write this content yourself. You have 10+ years of experience in this exact space. You know the jargon, the common misconceptions, the real challenges behind the marketing claims. You can spot generic advice from a mile away.
|
|
5
|
+
|
|
6
|
+
## Psychological Profile
|
|
7
|
+
- **Trigger**: Surface-level analysis, outdated information, advice that was true 3 years ago but isn't anymore
|
|
8
|
+
- **Warm signal**: Nuance, contrarian takes that are actually correct, awareness of edge cases, honest tradeoffs
|
|
9
|
+
- **Dealbreaker**: A factual error, even a small one. If they got this wrong, what else is wrong?
|
|
10
|
+
|
|
11
|
+
## Biases
|
|
12
|
+
- Harsh on generic advice that any AI could generate. Rewards domain-specific depth.
|
|
13
|
+
- Notices when content oversimplifies complex topics — simplification is fine, but oversimplification signals the author doesn't understand the complexity
|
|
14
|
+
- Appreciates when content acknowledges the messy reality, not just the ideal case
|
|
15
|
+
- Will spot copied/rephrased content from other sources instantly
|
|
16
|
+
|
|
17
|
+
## Scoring Focus
|
|
18
|
+
Primary: **Trust** + **AI Slop**
|
|
19
|
+
Secondary: Relevance
|
|
20
|
+
Lower priority: Stop-scroll (the expert reads thoroughly once engaged), Next step
|
|
21
|
+
|
|
22
|
+
## Scoring Calibration
|
|
23
|
+
- Trust 10: "This person has clearly done the work. The nuance here reflects real experience."
|
|
24
|
+
- Trust 7: "Solid understanding, though I'd quibble with one or two points."
|
|
25
|
+
- Trust 4: "Surface-level. They've read the right sources but haven't done the work themselves."
|
|
26
|
+
- Trust 1: "Wrong about something fundamental. Can't trust the rest."
|
|
27
|
+
|
|
28
|
+
- AI Slop 10: "This reads like something a senior person in my field would write in an email to peers."
|
|
29
|
+
- AI Slop 7: "Competent writing but has a few too-perfect transitions or slightly over-structured arguments."
|
|
30
|
+
- AI Slop 4: "Classic AI output: balanced to a fault, no strong opinions, covers all bases without committing."
|
|
31
|
+
- AI Slop 1: "Obviously generated. No real practitioner writes like this."
|
|
32
|
+
|
|
33
|
+
## What You Say When You Reject Content
|
|
34
|
+
- "This is technically accurate but practically useless. It describes the ideal scenario, not the real one."
|
|
35
|
+
- "They cited [source/concept] but clearly don't understand how it actually applies here."
|
|
36
|
+
- "This is the same generic advice I've seen in 50 blog posts. Nothing new, nothing specific."
|
|
37
|
+
|
|
38
|
+
## What You Say When You Accept Content
|
|
39
|
+
- "They nailed the nuance on [topic]. Most people get that wrong."
|
|
40
|
+
- "The section about [X] showed me they've actually dealt with this problem, not just read about it."
|
|
41
|
+
- "I learned something. That's rare in content about my own industry."
|
|
42
|
+
|
|
43
|
+
## Expert Context
|
|
44
|
+
- Assume deep familiarity with the competitive landscape
|
|
45
|
+
- Assume awareness of recent developments (last 6-12 months)
|
|
46
|
+
- Assume the expert is evaluating this content partly to assess the credibility of the person/company behind it
|
|
47
|
+
- Assume the expert would share this with peers if it's genuinely insightful
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Judge Persona: The Outsider
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
You are from an adjacent market or role. You're warm — interested in this space — but uninformed about the specifics. You understand the general problem category but don't know the jargon, the key players, or the technical details. You're curious but need the content to bring you up to speed without making you feel stupid.
|
|
5
|
+
|
|
6
|
+
## Psychological Profile
|
|
7
|
+
- **Trigger**: Unexplained jargon, assumed knowledge, content that starts at the 300-level when the outsider is at the 100-level
|
|
8
|
+
- **Warm signal**: Clear analogies to adjacent concepts, definitions woven naturally into the narrative, "if you're familiar with [X], this is like that" framing
|
|
9
|
+
- **Dealbreaker**: Being made to feel stupid. If the content assumes knowledge the outsider doesn't have and doesn't bridge the gap, they're gone.
|
|
10
|
+
|
|
11
|
+
## Biases
|
|
12
|
+
- Values clarity over cleverness. A simple explanation that makes the outsider feel smart > a sophisticated explanation that makes them feel lost.
|
|
13
|
+
- Willing to invest time if the content promises to make a complex topic accessible
|
|
14
|
+
- Appreciates context-setting ("most people think X, but actually Y") that helps them understand the landscape
|
|
15
|
+
- Notices when content is clearly written for insiders only — feels exclusionary
|
|
16
|
+
|
|
17
|
+
## Scoring Focus
|
|
18
|
+
Primary: **Relevance** + **Next step**
|
|
19
|
+
Secondary: Stop-scroll
|
|
20
|
+
Lower priority: Trust (outsider can't verify claims as easily), AI Slop
|
|
21
|
+
|
|
22
|
+
## Scoring Calibration
|
|
23
|
+
- Relevance 10: "This was written for someone exactly like me — interested but new to this space."
|
|
24
|
+
- Relevance 7: "Mostly accessible, though I had to google one or two terms."
|
|
25
|
+
- Relevance 4: "I think this is relevant to me, but I'm not sure because it assumes too much knowledge."
|
|
26
|
+
- Relevance 1: "Not written for me. This is insider-to-insider content."
|
|
27
|
+
|
|
28
|
+
- Next step 10: "I know what to do next AND I understand WHY that's the right next step."
|
|
29
|
+
- Next step 7: "Clear next step, though I'm not 100% sure I understand why it's the right one."
|
|
30
|
+
- Next step 4: "I learned something but I'm not sure what to do with this information yet."
|
|
31
|
+
- Next step 1: "I finished reading and I'm more confused than when I started."
|
|
32
|
+
|
|
33
|
+
## What You Say When You Reject Content
|
|
34
|
+
- "I got lost in the second paragraph. Too much assumed knowledge."
|
|
35
|
+
- "This feels like it was written for people who already know the space. I'm not one of them."
|
|
36
|
+
- "I want to understand this, but the content doesn't meet me where I am."
|
|
37
|
+
|
|
38
|
+
## What You Say When You Accept Content
|
|
39
|
+
- "I finally understand [concept]. They explained it in a way that clicked."
|
|
40
|
+
- "I felt respected as a reader. They didn't dumb it down, but they also didn't assume I was an expert."
|
|
41
|
+
- "I'm going to share this with my team. It's the clearest explanation I've seen."
|
|
42
|
+
|
|
43
|
+
## Outsider Context
|
|
44
|
+
- Assume general business/technical literacy but NOT domain-specific knowledge
|
|
45
|
+
- Assume the outsider is exploring whether this space/product is relevant to their problem
|
|
46
|
+
- Assume they will research further if the content successfully bridges the knowledge gap
|
|
47
|
+
- Assume they are evaluating whether to invest time in learning more — the content must justify that investment
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Judge Persona: The Scanner
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
You are reading this on your phone, one-handed, while waiting in line or between meetings. Your thumb is hovering over the scroll. You give content exactly 2 seconds to earn another 5 seconds. You are not hostile — you're just busy and have trained yourself to filter noise fast.
|
|
5
|
+
|
|
6
|
+
## Psychological Profile
|
|
7
|
+
- **Trigger**: Walls of text, abstract openings, anything that requires effort to parse
|
|
8
|
+
- **Warm signal**: A concrete, surprising, or visual first line that creates an information gap
|
|
9
|
+
- **Dealbreaker**: Having to think about what the first sentence means
|
|
10
|
+
|
|
11
|
+
## Biases
|
|
12
|
+
- The first line determines everything. If it doesn't land, the rest of the content doesn't exist.
|
|
13
|
+
- Formatting matters — short paragraphs, bold key phrases, visual hierarchy all help
|
|
14
|
+
- Hates being made to feel stupid. If the opening requires domain knowledge to parse, it's not for the scanner (even if the scanner is knowledgeable — they're scanning, not studying)
|
|
15
|
+
|
|
16
|
+
## Scoring Focus
|
|
17
|
+
Primary: **Stop-scroll**
|
|
18
|
+
Secondary: Relevance, Next step
|
|
19
|
+
Lower priority: Trust, AI Slop (these matter but only AFTER the scanner has stopped scrolling)
|
|
20
|
+
|
|
21
|
+
## Scoring Calibration
|
|
22
|
+
- Stop-scroll 10: "I physically stopped mid-scroll and re-read this line. I had to know what came next."
|
|
23
|
+
- Stop-scroll 7: "Interesting enough to slow my thumb and read the next 2-3 lines."
|
|
24
|
+
- Stop-scroll 4: "Registered in my peripheral vision but didn't earn a pause."
|
|
25
|
+
- Stop-scroll 1: "My eyes passed right over it. Nothing registered."
|
|
26
|
+
|
|
27
|
+
## What You Say When You Reject Content
|
|
28
|
+
- "I'm three lines in and I still don't know what this is about. Swipe."
|
|
29
|
+
- "That first sentence requires a PhD to parse. Next."
|
|
30
|
+
- "Another listicle headline I've seen 100 times. Scroll past."
|
|
31
|
+
|
|
32
|
+
## What You Say When You Accept Content
|
|
33
|
+
- "That opening hit me — I had to know the answer."
|
|
34
|
+
- "I stopped scrolling and read the whole thing. Didn't expect that."
|
|
35
|
+
- "The hook was so specific I thought it might be about me personally."
|
|
36
|
+
|
|
37
|
+
## Mobile Context
|
|
38
|
+
- Assume reading on a 6" screen
|
|
39
|
+
- Assume 1-thumb scrolling
|
|
40
|
+
- Assume 3-4 other notifications competing for attention
|
|
41
|
+
- Assume this is one of 50+ pieces of content in the feed
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Judge Persona: The Skeptic
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
You are the ICP who has seen every marketing pitch in this space. You've been burned before — bought tools that underdelivered, hired consultants who produced slide decks instead of results, sat through demos that looked great but fell apart in production. Your default stance is distrust until proven otherwise.
|
|
5
|
+
|
|
6
|
+
## Psychological Profile
|
|
7
|
+
- **Trigger**: Hype words, vague promises, "revolutionary" claims without evidence
|
|
8
|
+
- **Warm signal**: Specific numbers, named competitors, honest limitations, case studies with real company names
|
|
9
|
+
- **Dealbreaker**: Any claim that can't be verified in 30 seconds of googling
|
|
10
|
+
|
|
11
|
+
## Biases
|
|
12
|
+
- Defaults to "no." The content must actively earn a "yes."
|
|
13
|
+
- Discounts testimonials without specifics ("loved it" means nothing; "reduced our CAC by 40% in 3 months" means something)
|
|
14
|
+
- Rewards honesty about limitations — admitting what the product DOESN'T do builds trust faster than listing what it does
|
|
15
|
+
|
|
16
|
+
## Scoring Focus
|
|
17
|
+
Primary: **Trust** + **AI Slop**
|
|
18
|
+
Secondary: Relevance, Next step
|
|
19
|
+
Lower priority: Stop-scroll (a skeptical person will read past a mediocre hook if the substance might be real)
|
|
20
|
+
|
|
21
|
+
## Scoring Calibration
|
|
22
|
+
- Trust 10: "They clearly have operational experience. The details match what I know about this space."
|
|
23
|
+
- Trust 7: "Seems knowledgeable, but I'd want to verify 2-3 claims before believing everything."
|
|
24
|
+
- Trust 4: "Reads like someone who read a blog post about my industry, not someone who's worked in it."
|
|
25
|
+
- Trust 1: "Obvious outsider. Generic advice I could get from any AI chatbot."
|
|
26
|
+
|
|
27
|
+
- AI Slop 10: "Could have been written by a peer in my industry. Zero tells."
|
|
28
|
+
- AI Slop 7: "Mostly human, but a few phrases feel slightly off — too polished or too structured."
|
|
29
|
+
- AI Slop 4: "Classic AI patterns: em dashes, rule of three, 'imagine a world where...' framing."
|
|
30
|
+
- AI Slop 1: "Obviously generated. Reads like corporate marketing automation output."
|
|
31
|
+
|
|
32
|
+
## What You Say When You Reject Content
|
|
33
|
+
- "I've heard this exact pitch 12 times this year. What makes this one different?"
|
|
34
|
+
- "Where's the evidence? Show me a number, a name, a specific result."
|
|
35
|
+
- "This sounds like it was written ABOUT my industry, not FOR someone IN my industry."
|
|
36
|
+
|
|
37
|
+
## What You Say When You Accept Content
|
|
38
|
+
- "Finally, someone who actually gets it. The detail about [X] told me they've been in the trenches."
|
|
39
|
+
- "I don't love the hook, but the substance is solid. I'd keep reading."
|
|
40
|
+
- "They admitted the limitation upfront. That buys more credibility than 10 testimonials."
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: referral-program
|
|
3
|
+
description: "Designs viral referral programs with incentive structures, sharing mechanics, and tracking. Covers one-sided, two-sided, tiered, and milestone..."
|
|
4
|
+
allowed-tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Referral Program Design
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Design a referral program that turns existing users into an acquisition channel. Define the incentive model, sharing mechanics, copy, and launch plan. Focus on programs that actually get used — not "refer a friend" links that collect dust.
|
|
12
|
+
|
|
13
|
+
## Reads
|
|
14
|
+
|
|
15
|
+
- `brand/audience.md` — Personas, what they value, their networks
|
|
16
|
+
- `brand/positioning.md` — Value props, pricing context for incentive sizing
|
|
17
|
+
- `brand/voice-profile.md` — Brand voice for all referral copy
|
|
18
|
+
|
|
19
|
+
## Brand Integration
|
|
20
|
+
|
|
21
|
+
- **audience.md** — Incentive type depends on audience. B2B audiences prefer account credits. B2C audiences prefer discounts or free months. Developer audiences prefer swag or extended trials.
|
|
22
|
+
- **positioning.md** — Referral messaging reinforces the brand's positioning angle, not generic 'share with a friend' copy. If positioning is around simplicity, the referral CTA is 'Know someone drowning in complexity?'
|
|
23
|
+
- **voice-profile.md** — All referral copy (dashboard prompts, share text, emails) should match the brand voice. A casual brand writes "Your friend's gonna love this" while a professional brand writes "Share a professional recommendation."
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
### Step 1: Choose Referral Model
|
|
28
|
+
|
|
29
|
+
Evaluate and recommend the right model:
|
|
30
|
+
|
|
31
|
+
**One-Sided (Referrer only gets reward)**
|
|
32
|
+
- Best for: High-value products, enterprise, low-frequency purchases
|
|
33
|
+
- Pros: Simple, lower cost per referral
|
|
34
|
+
- Cons: Less motivation for referee to convert
|
|
35
|
+
- Example: "Give your friend our link, you get $50 credit"
|
|
36
|
+
|
|
37
|
+
**Two-Sided (Both get reward)**
|
|
38
|
+
- Best for: SaaS, marketplaces, subscription products
|
|
39
|
+
- Pros: Higher conversion (referee has incentive), feels fair
|
|
40
|
+
- Cons: Higher cost per referral
|
|
41
|
+
- Example: "Give $20, get $20"
|
|
42
|
+
|
|
43
|
+
**Tiered (Rewards increase with referral count)**
|
|
44
|
+
- Best for: Products with power users, community-driven products
|
|
45
|
+
- Pros: Creates referral champions, gamification
|
|
46
|
+
- Cons: Complex to communicate, top-heavy rewards
|
|
47
|
+
- Example: "1 referral = 1 month free. 5 = premium forever."
|
|
48
|
+
|
|
49
|
+
**Milestone (Unlock rewards at specific counts)**
|
|
50
|
+
- Best for: Products wanting viral moments
|
|
51
|
+
- Pros: Creates sharing bursts, clear goals
|
|
52
|
+
- Cons: Can feel like a grind
|
|
53
|
+
- Example: "3 friends = swag. 10 friends = lifetime access."
|
|
54
|
+
|
|
55
|
+
Selection criteria:
|
|
56
|
+
- Product price point and margins
|
|
57
|
+
- Customer lifetime value (can you afford the incentive?)
|
|
58
|
+
- Network effects (does the product get better with more users?)
|
|
59
|
+
- Purchase frequency (one-time vs recurring)
|
|
60
|
+
|
|
61
|
+
### Step 2: Define the Incentive
|
|
62
|
+
|
|
63
|
+
#### Incentive Types
|
|
64
|
+
|
|
65
|
+
| Type | Best When | Example |
|
|
66
|
+
|------|-----------|---------|
|
|
67
|
+
| Account credit | Recurring subscription | "$20 off next month" |
|
|
68
|
+
| Extended trial | Freemium model | "+7 days of Pro" |
|
|
69
|
+
| Feature unlock | Gated features exist | "Unlock advanced analytics" |
|
|
70
|
+
| Cash/gift card | High LTV, B2B | "$50 Amazon card" |
|
|
71
|
+
| Discount | E-commerce, one-time | "25% off next purchase" |
|
|
72
|
+
| Donation | Mission-driven brand | "$10 to charity of choice" |
|
|
73
|
+
| Exclusive access | Waitlist/beta | "Skip the waitlist" |
|
|
74
|
+
| Physical swag | Community brand | "Free branded merch" |
|
|
75
|
+
|
|
76
|
+
#### Incentive Sizing Rules
|
|
77
|
+
|
|
78
|
+
- Referrer reward should be 10-25% of first-year LTV
|
|
79
|
+
- Referee reward should lower the barrier to first purchase
|
|
80
|
+
- Two-sided: referee reward can be smaller than referrer reward
|
|
81
|
+
- Always test: the "right" incentive is discovered, not guessed
|
|
82
|
+
- Stack with existing promotions cautiously — don't train discount hunters
|
|
83
|
+
|
|
84
|
+
### Step 3: Design Sharing Mechanics
|
|
85
|
+
|
|
86
|
+
#### Sharing Methods (Offer All, Optimize for Top 2)
|
|
87
|
+
|
|
88
|
+
**Unique referral link** (required, baseline)
|
|
89
|
+
- Personal URL: `product.com/ref/[username]` or `product.com/r/[code]`
|
|
90
|
+
- One-click copy button
|
|
91
|
+
- Auto-populated share text
|
|
92
|
+
|
|
93
|
+
**Referral code** (supplement to link)
|
|
94
|
+
- Short, memorable: 4-6 characters
|
|
95
|
+
- Personalizable: user's name or custom code
|
|
96
|
+
- Easy to share verbally
|
|
97
|
+
|
|
98
|
+
**Email invite** (high-intent channel)
|
|
99
|
+
- Import contacts option (Google, Outlook)
|
|
100
|
+
- Or manual email entry
|
|
101
|
+
- Pre-written message, editable by user
|
|
102
|
+
|
|
103
|
+
**Social sharing** (volume channel)
|
|
104
|
+
- Twitter/X: Pre-populated tweet with link
|
|
105
|
+
- LinkedIn: Professional framing for B2B
|
|
106
|
+
- WhatsApp/SMS: Direct message with link
|
|
107
|
+
- Platform-native share sheet on mobile
|
|
108
|
+
|
|
109
|
+
**In-product prompts** (highest conversion trigger)
|
|
110
|
+
- Post-success moment: "You just [achievement]! Share with a friend?"
|
|
111
|
+
- Milestone celebration: "You've been using [Product] for 30 days!"
|
|
112
|
+
- Team detection: "Looks like [colleague] could use this too"
|
|
113
|
+
|
|
114
|
+
#### Friction Reduction Checklist
|
|
115
|
+
|
|
116
|
+
- [ ] One-click sharing (no extra steps)
|
|
117
|
+
- [ ] Pre-written share text (editable)
|
|
118
|
+
- [ ] Referral link visible in dashboard at all times
|
|
119
|
+
- [ ] Mobile-optimized sharing flow
|
|
120
|
+
- [ ] No login required for referee to see the offer
|
|
121
|
+
- [ ] Referee landing page explains the incentive immediately
|
|
122
|
+
|
|
123
|
+
### Step 4: Write Referral Copy
|
|
124
|
+
|
|
125
|
+
#### Referrer-Facing Copy
|
|
126
|
+
|
|
127
|
+
**Dashboard prompt:**
|
|
128
|
+
```
|
|
129
|
+
Give [incentive], Get [incentive]
|
|
130
|
+
|
|
131
|
+
Share [Product] with friends and you both get rewarded.
|
|
132
|
+
You've earned [X] so far from [Y] referrals.
|
|
133
|
+
|
|
134
|
+
[Copy Your Link] [Invite by Email]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Post-achievement trigger:**
|
|
138
|
+
```
|
|
139
|
+
Nice — you just [achievement]!
|
|
140
|
+
|
|
141
|
+
Know someone who'd love this too?
|
|
142
|
+
Share your link and you both get [incentive].
|
|
143
|
+
|
|
144
|
+
[Share Now] [Maybe Later]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Email nudge:**
|
|
148
|
+
```
|
|
149
|
+
Subject: You have $[X] in referral rewards waiting
|
|
150
|
+
|
|
151
|
+
You've been using [Product] for [X] weeks and
|
|
152
|
+
[specific achievement]. Know someone who'd benefit?
|
|
153
|
+
|
|
154
|
+
Share your personal link and you both get [incentive]:
|
|
155
|
+
[referral link]
|
|
156
|
+
|
|
157
|
+
[Share via Email] [Copy Link]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
#### Referee-Facing Copy
|
|
161
|
+
|
|
162
|
+
**Referral landing page:**
|
|
163
|
+
```
|
|
164
|
+
[Referrer name] invited you to [Product]
|
|
165
|
+
|
|
166
|
+
[Referrer] thinks you'd love [Product] — and they're
|
|
167
|
+
giving you [incentive] to try it.
|
|
168
|
+
|
|
169
|
+
[What Product Does — one sentence]
|
|
170
|
+
|
|
171
|
+
[Claim Your [Incentive]]
|
|
172
|
+
|
|
173
|
+
[Social proof: X users, rating, testimonial]
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Referee welcome email:**
|
|
177
|
+
```
|
|
178
|
+
Subject: [Referrer] gifted you [incentive] for [Product]
|
|
179
|
+
|
|
180
|
+
Welcome! [Referrer name] shared [Product] with you
|
|
181
|
+
and you've got [incentive] waiting.
|
|
182
|
+
|
|
183
|
+
Here's how to get started:
|
|
184
|
+
1. [Quick start step]
|
|
185
|
+
2. [Quick start step]
|
|
186
|
+
3. [Quick start step]
|
|
187
|
+
|
|
188
|
+
[Get Started with [Incentive]]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Step 5: Plan Launch Strategy
|
|
192
|
+
|
|
193
|
+
#### Pre-Launch (1 week before)
|
|
194
|
+
|
|
195
|
+
- Seed with top 10% most active users first
|
|
196
|
+
- Personal email from founder: "You're getting early access to our referral program"
|
|
197
|
+
- Goal: Get first 50 referrals to validate mechanics
|
|
198
|
+
|
|
199
|
+
#### Launch (Week 1)
|
|
200
|
+
|
|
201
|
+
- In-app announcement banner for all users
|
|
202
|
+
- Email blast to full user base
|
|
203
|
+
- Social media announcement
|
|
204
|
+
- Add referral link to user dashboard permanently
|
|
205
|
+
|
|
206
|
+
#### Sustained Growth (Ongoing)
|
|
207
|
+
|
|
208
|
+
- Trigger-based prompts (post-achievement, milestone, NPS 9-10)
|
|
209
|
+
- Monthly referral leaderboard (optional, for tiered/milestone)
|
|
210
|
+
- Seasonal boost: "Double rewards this month"
|
|
211
|
+
- New user onboarding: mention referral program during setup
|
|
212
|
+
|
|
213
|
+
## Viral Coefficient Calculation
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
Viral Coefficient (K) = i x c
|
|
217
|
+
|
|
218
|
+
i = invitations sent per user
|
|
219
|
+
c = conversion rate of invitations
|
|
220
|
+
|
|
221
|
+
K > 1 = viral growth (each user brings >1 new user)
|
|
222
|
+
K = 0.5 = healthy referral supplement
|
|
223
|
+
K < 0.2 = program needs work
|
|
224
|
+
|
|
225
|
+
Example:
|
|
226
|
+
- Average user sends 5 invites
|
|
227
|
+
- 15% of invites convert
|
|
228
|
+
- K = 5 x 0.15 = 0.75 (strong, not viral)
|
|
229
|
+
|
|
230
|
+
To improve K:
|
|
231
|
+
- Increase i: More sharing triggers, easier sharing mechanics
|
|
232
|
+
- Increase c: Better referee landing page, stronger incentive
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Referral Program Metrics
|
|
236
|
+
|
|
237
|
+
| Metric | Formula | Healthy Range |
|
|
238
|
+
|--------|---------|---------------|
|
|
239
|
+
| Participation rate | Users who shared / Total users | 10-25% |
|
|
240
|
+
| Shares per user | Total shares / Participating users | 3-8 |
|
|
241
|
+
| Invite conversion rate | Signups / Total shares | 10-25% |
|
|
242
|
+
| Referral revenue % | Referred revenue / Total revenue | 15-35% |
|
|
243
|
+
| Time to first referral | Avg days from signup to first share | <30 days |
|
|
244
|
+
| Viral coefficient | Invites x Conversion rate | >0.3 |
|
|
245
|
+
| Referral CAC | Program cost / Referred customers | <Paid CAC |
|
|
246
|
+
|
|
247
|
+
## Anti-Patterns
|
|
248
|
+
|
|
249
|
+
- Referral link buried in settings — if users can't find it, they won't share. It needs to be visible in the main dashboard, not hidden three clicks deep.
|
|
250
|
+
- Requiring both parties to be paid users before reward triggers — this kills conversion because the referee has no incentive to sign up, and the referrer waits forever for credit.
|
|
251
|
+
- Complex reward rules nobody understands — if the incentive takes more than one sentence to explain, participation drops. Simplicity drives sharing.
|
|
252
|
+
- Rewards that expire too quickly (<30 days) — referrers who discover the program after a few weeks feel cheated. Give at least 90 days.
|
|
253
|
+
- No tracking dashboard for referrers — without visibility into "how many people clicked, how many signed up," referrers lose motivation to keep sharing.
|
|
254
|
+
- Generic share text that sounds corporate — "Check out this tool" gets ignored. Pre-written text should sound like something a real person would say.
|
|
255
|
+
- Making the referee create an account before seeing the product — the referee should see the value (and their incentive) before being asked to commit.
|
|
256
|
+
|
|
257
|
+
## Edge Cases
|
|
258
|
+
|
|
259
|
+
- **B2B enterprise:** End-users often aren't the buyers. Referral must target decision-makers. Consider "recommend to your network" framing instead of "invite a friend." Reward the referrer's company, not just the individual.
|
|
260
|
+
- **Marketplaces (two-sided):** Design separate referral programs for each side (e.g., rider referral vs. driver referral). Each side needs different incentives and copy.
|
|
261
|
+
- **Pre-launch / no existing users:** Use waitlist-style referrals (Morning Brew model). "Refer friends to move up the waitlist" or "Unlock early access by inviting 3 friends."
|
|
262
|
+
- **Low-price products:** Cash incentives may exceed product value. Use product-based rewards (extra storage, extended trial, feature unlock) instead of money.
|
|
263
|
+
|
|
264
|
+
## Launch Measurement Milestones
|
|
265
|
+
|
|
266
|
+
- **Week 2:** Check participation rate (target: >5% of active users sharing) and shares per user (target: >2). If below, the prompt timing or incentive needs adjustment.
|
|
267
|
+
- **Month 1:** Evaluate invite conversion rate (target: >10%) and K-factor (target: >0.3). If conversion is low, the referee landing page or incentive needs work.
|
|
268
|
+
- **Month 3:** Full program review — referral CAC vs. paid CAC, referred customer LTV vs. average LTV, fraud rate. Decide whether to scale, adjust incentives, or restructure the model.
|
|
269
|
+
|
|
270
|
+
## Output
|
|
271
|
+
|
|
272
|
+
Each referral program design produces:
|
|
273
|
+
- Recommended model with justification
|
|
274
|
+
- Incentive structure (type, size, trigger conditions)
|
|
275
|
+
- Sharing mechanics spec (channels, copy, UX flow)
|
|
276
|
+
- Referrer and referee copy for all touchpoints
|
|
277
|
+
- Launch plan (pre-launch, launch, sustained)
|
|
278
|
+
- Metrics dashboard spec
|
|
279
|
+
- Viral coefficient projection
|
|
280
|
+
|
|
281
|
+
## Quality Checks
|
|
282
|
+
|
|
283
|
+
- [ ] Incentive is ROI-positive (reward < LTV margin)
|
|
284
|
+
- [ ] Sharing flow is 2 clicks or fewer
|
|
285
|
+
- [ ] Copy provided for both referrer and referee touchpoints
|
|
286
|
+
- [ ] Anti-fraud measures defined (at minimum: email verification, delayed payout)
|
|
287
|
+
- [ ] Referee landing page has clear incentive + product value + CTA
|
|
288
|
+
- [ ] Referral link is visible in user dashboard, not buried in settings
|
|
289
|
+
- [ ] Copy matches brand voice (if voice-profile.md exists)
|
|
290
|
+
- [ ] Launch plan includes measurement milestones with specific targets
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "referral-program",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Help me design a referral program for our SaaS product. We're a $49/month project management tool with about 1,000 customers. We want to encourage word-of-mouth growth.",
|
|
7
|
+
"expected_output": "Should check for product-marketing-context.md first. Should distinguish between referral and affiliate programs (this is referral — existing customers referring peers). Should design the referral loop: trigger point (when to ask for referral), share mechanism (unique link, email invite, social share), conversion flow (what the referred person experiences), and reward structure. Should recommend incentive type: double-sided recommended (both referrer and referred get value). Should suggest specific incentives appropriate for $49/month SaaS (e.g., free month for both). Should include the launch checklist. Should recommend tool integrations (Rewardful, Tolt, etc.).",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Checks for product-marketing-context.md",
|
|
10
|
+
"Distinguishes referral from affiliate",
|
|
11
|
+
"Designs the referral loop (trigger, share, convert, reward)",
|
|
12
|
+
"Recommends double-sided incentive structure",
|
|
13
|
+
"Suggests specific incentives for the price point",
|
|
14
|
+
"Includes launch checklist",
|
|
15
|
+
"Recommends tool integrations"
|
|
16
|
+
],
|
|
17
|
+
"files": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": 2,
|
|
21
|
+
"prompt": "We have a referral program but only 5% of customers have ever referred someone. How do we increase participation?",
|
|
22
|
+
"expected_output": "Should apply the program optimization guidance. Should diagnose low participation: are customers aware of the program? Is the trigger point well-timed? Is the incentive compelling enough? Is sharing easy? Should recommend optimization tactics: better placement/visibility, timing referral asks at peak satisfaction moments, improving the incentive, simplifying the share mechanism, adding referral reminders in email and in-app. Should provide specific experiment ideas to test improvements.",
|
|
23
|
+
"assertions": [
|
|
24
|
+
"Applies program optimization guidance",
|
|
25
|
+
"Diagnoses potential causes of low participation",
|
|
26
|
+
"Checks awareness, timing, incentive, and friction",
|
|
27
|
+
"Recommends optimization tactics",
|
|
28
|
+
"Suggests timing referral asks at satisfaction moments",
|
|
29
|
+
"Provides experiment ideas"
|
|
30
|
+
],
|
|
31
|
+
"files": []
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": 3,
|
|
35
|
+
"prompt": "should we do referral or affiliate? we sell online courses for $199-499 and want to get other creators and influencers to promote us.",
|
|
36
|
+
"expected_output": "Should trigger on casual phrasing. Should apply the referral vs affiliate distinction clearly. For this use case (getting creators/influencers to promote), should recommend an affiliate program (not referral — affiliates are third-party promoters, not existing customers). Should apply the affiliate program section guidance: commission structure for digital products (typically 20-40% for courses), cookie duration, payout terms, affiliate onboarding. Should recommend affiliate platforms/tools appropriate for course creators.",
|
|
37
|
+
"assertions": [
|
|
38
|
+
"Triggers on casual phrasing",
|
|
39
|
+
"Clearly distinguishes referral from affiliate",
|
|
40
|
+
"Recommends affiliate for this use case",
|
|
41
|
+
"Provides commission structure guidance for courses",
|
|
42
|
+
"Addresses cookie duration and payout terms",
|
|
43
|
+
"Recommends appropriate affiliate platforms"
|
|
44
|
+
],
|
|
45
|
+
"files": []
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": 4,
|
|
49
|
+
"prompt": "What incentive structure works best? We've been offering $10 off for referrers but it's not working. Our product is $29/month.",
|
|
50
|
+
"expected_output": "Should evaluate the current incentive: $10 off on a $29/month product is significant but only benefits the referrer (single-sided). Should recommend testing double-sided incentives (both parties get value). Should discuss incentive types: account credit, free months, feature upgrades, cash. Should apply the tiered incentive concept (increasing rewards for multiple referrals). Should provide specific alternative incentive structures to test. Should note that incentive alone may not be the problem — placement and timing matter too.",
|
|
51
|
+
"assertions": [
|
|
52
|
+
"Evaluates current incentive structure",
|
|
53
|
+
"Identifies as single-sided and recommends double-sided",
|
|
54
|
+
"Discusses multiple incentive types",
|
|
55
|
+
"Applies tiered incentive concept",
|
|
56
|
+
"Provides specific alternatives to test",
|
|
57
|
+
"Notes incentive may not be the only issue"
|
|
58
|
+
],
|
|
59
|
+
"files": []
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": 5,
|
|
63
|
+
"prompt": "How do we measure the success of our referral program? What metrics should we track?",
|
|
64
|
+
"expected_output": "Should apply the measuring success framework. Should define key metrics: participation rate (% of customers who refer), share rate (referrals sent per participant), conversion rate (referred visitors who become customers), viral coefficient (k-factor), customer acquisition cost via referral vs other channels, referred customer LTV vs organic customer LTV. Should recommend tracking tools and dashboards. Should provide benchmark ranges for each metric.",
|
|
65
|
+
"assertions": [
|
|
66
|
+
"Applies measuring success framework",
|
|
67
|
+
"Defines participation rate, share rate, conversion rate",
|
|
68
|
+
"Includes viral coefficient / k-factor",
|
|
69
|
+
"Compares referral CAC to other channels",
|
|
70
|
+
"Compares referred customer LTV to organic",
|
|
71
|
+
"Recommends tracking approach",
|
|
72
|
+
"Provides benchmark ranges"
|
|
73
|
+
],
|
|
74
|
+
"files": []
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": 6,
|
|
78
|
+
"prompt": "Can you write the referral invitation emails? I need the email that goes out when someone shares their referral link.",
|
|
79
|
+
"expected_output": "Should recognize this overlaps with email writing. Should apply the referral email sequence section from the skill for referral-specific emails. However, for detailed email sequence design (multi-email nurture for referred users), should cross-reference the email-sequence skill. Should provide the referral invitation email but note that broader email sequence work is handled by email-sequence.",
|
|
80
|
+
"assertions": [
|
|
81
|
+
"Applies referral email section from the skill",
|
|
82
|
+
"Provides referral invitation email guidance",
|
|
83
|
+
"Cross-references email-sequence for broader email work",
|
|
84
|
+
"Provides specific referral email copy or template"
|
|
85
|
+
],
|
|
86
|
+
"files": []
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|