@jairodri/huckleberry-cli 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/agents/cos.json +2 -5
- package/agents/hermes/AGENTS.md +25 -49
- package/agents/hermes/fix-kimaki/SKILL.md +19 -92
- package/agents/hermes/hermes-fixer.md +44 -74
- package/agents/hermes.json +6 -18
- package/kanban/SKILL.md +18 -18
- package/kanban/package.json +1 -1
- package/kanban/src/dispatcher.mjs +1 -1
- package/kanban/templates/blog-social-campaign.yaml +6 -2
- package/kanban/templates/social-campaign.yaml +9 -4
- package/mcp/jev-calibration.mjs +335 -0
- package/mcp/jev-client.mjs +119 -0
- package/mcp/jev-thresholds.json +27 -0
- package/package.json +13 -9
- package/scripts/doctor-watchdog.sh +73 -0
- package/scripts/install-services.sh +34 -27
- package/scripts/self-improve-weekly.sh +34 -0
- package/scripts/sync-skills.mjs +121 -0
- package/skills/ab-test-setup/SKILL.md +266 -0
- package/skills/ab-test-setup/evals/evals.json +105 -0
- package/skills/ab-test-setup/references/sample-size-guide.md +263 -0
- package/skills/ab-test-setup/references/test-templates.md +277 -0
- package/skills/agent-reach/SKILL.md +132 -0
- package/skills/agent-reach/references/career.md +29 -0
- package/skills/agent-reach/references/dev.md +62 -0
- package/skills/agent-reach/references/search.md +33 -0
- package/skills/agent-reach/references/social.md +232 -0
- package/skills/agent-reach/references/video.md +130 -0
- package/skills/agent-reach/references/web.md +50 -0
- package/skills/ai-agent-seo/SKILL.md +450 -0
- package/skills/ai-cold-email-intelligence/SKILL.md +54 -0
- package/skills/ai-cold-email-intelligence/references/prompts.md +21 -0
- package/skills/ai-consensus-builder/SKILL.md +324 -0
- package/skills/ai-seo/SKILL.md +399 -0
- package/skills/ai-seo/evals/evals.json +90 -0
- package/skills/ai-seo/references/content-patterns.md +284 -0
- package/skills/ai-seo/references/platform-ranking-factors.md +152 -0
- package/skills/ai-visibility-audit/SKILL.md +322 -0
- package/skills/analytics-tracking/SKILL.md +309 -0
- package/skills/analytics-tracking/evals/evals.json +90 -0
- package/skills/analytics-tracking/references/event-library.md +260 -0
- package/skills/analytics-tracking/references/ga4-implementation.md +300 -0
- package/skills/analytics-tracking/references/gtm-implementation.md +390 -0
- package/skills/article-generator/SKILL.md +216 -0
- package/skills/auto-indexing/SKILL.md +179 -0
- package/skills/auto-indexing/scripts/auto-indexing.js +257 -0
- package/skills/auto-skill/SKILL.md +151 -0
- package/skills/auto-skill/correction-queue.js +102 -0
- package/skills/auto-skill/dedup.js +97 -0
- package/skills/auto-skill/skill-router.js +224 -0
- package/skills/autoresearch/SKILL.md +334 -0
- package/skills/autoresearch/autoresearch-autoresearch/SKILL.md.baseline +329 -0
- package/skills/autoresearch/autoresearch-autoresearch/changelog.md +34 -0
- package/skills/autoresearch/autoresearch-autoresearch/dashboard.html +116 -0
- package/skills/autoresearch/autoresearch-autoresearch/evals.md +39 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.json +44 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.tsv +3 -0
- package/skills/autoresearch/eval-guide.md +121 -0
- package/skills/b2b-cold-outreach/SKILL.md +322 -0
- package/skills/birdclaw/SKILL.md +82 -0
- package/skills/brainstorm/SKILL.md +168 -0
- package/skills/brand-kit-playground/SKILL.md +312 -0
- package/skills/brand-kit-playground/references/html-architecture.md +316 -0
- package/skills/brand-kit-playground/references/steal-patterns.md +88 -0
- package/skills/brand-voice/SKILL.md +223 -0
- package/skills/brand-voice/references/honesty-as-positioning.md +60 -0
- package/skills/brand-voice/references/voice-modes.md +1158 -0
- package/skills/business-advisory-council/README.md +136 -0
- package/skills/business-advisory-council/SKILL.md +94 -0
- package/skills/business-advisory-council/business-advisory-council.py +492 -0
- package/skills/business-advisory-council/discord-components-decision.json +8 -0
- package/skills/business-advisory-council/examples/steve-conley-partnership.json +6 -0
- package/skills/business-advisory-council/steve-conley-call-brief.json +6 -0
- package/skills/churn-prevention/SKILL.md +305 -0
- package/skills/churn-prevention/evals/evals.json +93 -0
- package/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/claw-compactor/LICENSE +21 -0
- package/skills/claw-compactor/README.md +459 -0
- package/skills/claw-compactor/SKILL.md +329 -0
- package/skills/claw-compactor/benchmark/RESULTS.md +104 -0
- package/skills/claw-compactor/benchmark/__init__.py +1 -0
- package/skills/claw-compactor/benchmark/compressors.py +520 -0
- package/skills/claw-compactor/benchmark/data/sample_01_devops.json +82 -0
- package/skills/claw-compactor/benchmark/data/sample_02_trading.json +54 -0
- package/skills/claw-compactor/benchmark/data/sample_03_ml_short.json +38 -0
- package/skills/claw-compactor/benchmark/data/sample_04_mixed_long.json +318 -0
- package/skills/claw-compactor/benchmark/data/sample_05_sysadmin.json +56 -0
- package/skills/claw-compactor/benchmark/evaluate.py +278 -0
- package/skills/claw-compactor/benchmark/report.py +241 -0
- package/skills/claw-compactor/benchmark/results/benchmark_results.json +405 -0
- package/skills/claw-compactor/benchmark/run_benchmark.py +238 -0
- package/skills/claw-compactor/engram.yaml +49 -0
- package/skills/claw-compactor/proxy/README.md +87 -0
- package/skills/claw-compactor/proxy/dashboard.html +804 -0
- package/skills/claw-compactor/proxy/event-log.mjs +213 -0
- package/skills/claw-compactor/proxy/fair-queue.mjs +288 -0
- package/skills/claw-compactor/proxy/metrics-store.mjs +425 -0
- package/skills/claw-compactor/proxy/package-lock.json +125 -0
- package/skills/claw-compactor/proxy/package.json +15 -0
- package/skills/claw-compactor/proxy/portal.html +360 -0
- package/skills/claw-compactor/proxy/process-registry.mjs +447 -0
- package/skills/claw-compactor/proxy/rate-limiter.mjs +117 -0
- package/skills/claw-compactor/proxy/redis-client.mjs +75 -0
- package/skills/claw-compactor/proxy/retry.mjs +182 -0
- package/skills/claw-compactor/proxy/server.mjs +2100 -0
- package/skills/claw-compactor/proxy/session-affinity.mjs +177 -0
- package/skills/claw-compactor/proxy/start.sh +23 -0
- package/skills/claw-compactor/proxy/test/event-log.test.mjs +237 -0
- package/skills/claw-compactor/proxy/test/helpers.mjs +103 -0
- package/skills/claw-compactor/proxy/test/integration.test.mjs +297 -0
- package/skills/claw-compactor/proxy/test/metrics-store.test.mjs +243 -0
- package/skills/claw-compactor/proxy/test/process-registry.test.mjs +390 -0
- package/skills/claw-compactor/proxy/test/rate-limiter.test.mjs +121 -0
- package/skills/claw-compactor/proxy/test/redis-client.test.mjs +62 -0
- package/skills/claw-compactor/proxy/test/token-tracker.test.mjs +200 -0
- package/skills/claw-compactor/proxy/token-tracker.mjs +482 -0
- package/skills/claw-compactor/pyproject.toml +26 -0
- package/skills/claw-compactor/references/README.md +44 -0
- package/skills/claw-compactor/references/architecture.md +197 -0
- package/skills/claw-compactor/references/benchmarks.md +94 -0
- package/skills/claw-compactor/references/compression-prompts.md +39 -0
- package/skills/claw-compactor/references/compression-techniques.md +219 -0
- package/skills/claw-compactor/references/testing.md +160 -0
- package/skills/claw-compactor/scripts/audit_memory.py +216 -0
- package/skills/claw-compactor/scripts/compress_memory.py +236 -0
- package/skills/claw-compactor/scripts/compressed_context.py +280 -0
- package/skills/claw-compactor/scripts/dedup_memory.py +147 -0
- package/skills/claw-compactor/scripts/dictionary_compress.py +170 -0
- package/skills/claw-compactor/scripts/engram-auto.sh +152 -0
- package/skills/claw-compactor/scripts/engram_auto.py +695 -0
- package/skills/claw-compactor/scripts/engram_cli.py +474 -0
- package/skills/claw-compactor/scripts/estimate_tokens.py +131 -0
- package/skills/claw-compactor/scripts/generate_summary_tiers.py +292 -0
- package/skills/claw-compactor/scripts/lib/__init__.py +34 -0
- package/skills/claw-compactor/scripts/lib/config.py +289 -0
- package/skills/claw-compactor/scripts/lib/dedup.py +119 -0
- package/skills/claw-compactor/scripts/lib/dictionary.py +281 -0
- package/skills/claw-compactor/scripts/lib/engram.py +793 -0
- package/skills/claw-compactor/scripts/lib/engram_prompts.py +175 -0
- package/skills/claw-compactor/scripts/lib/engram_storage.py +254 -0
- package/skills/claw-compactor/scripts/lib/exceptions.py +24 -0
- package/skills/claw-compactor/scripts/lib/markdown.py +312 -0
- package/skills/claw-compactor/scripts/lib/rle.py +165 -0
- package/skills/claw-compactor/scripts/lib/tokenizer_optimizer.py +188 -0
- package/skills/claw-compactor/scripts/lib/tokens.py +68 -0
- package/skills/claw-compactor/scripts/mem_compress.py +788 -0
- package/skills/claw-compactor/scripts/observation_compressor.py +346 -0
- package/skills/claw-compactor/tests/__init__.py +0 -0
- package/skills/claw-compactor/tests/conftest.py +94 -0
- package/skills/claw-compactor/tests/test_audit_comprehensive.py +123 -0
- package/skills/claw-compactor/tests/test_audit_memory.py +67 -0
- package/skills/claw-compactor/tests/test_benchmark.py +122 -0
- package/skills/claw-compactor/tests/test_cli_commands.py +228 -0
- package/skills/claw-compactor/tests/test_compress_memory.py +109 -0
- package/skills/claw-compactor/tests/test_compress_memory_comprehensive.py +191 -0
- package/skills/claw-compactor/tests/test_compressed_context.py +145 -0
- package/skills/claw-compactor/tests/test_config.py +54 -0
- package/skills/claw-compactor/tests/test_dedup_memory.py +124 -0
- package/skills/claw-compactor/tests/test_dictionary.py +327 -0
- package/skills/claw-compactor/tests/test_dictionary_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_engram.py +1091 -0
- package/skills/claw-compactor/tests/test_engram_auto.py +529 -0
- package/skills/claw-compactor/tests/test_error_handling.py +194 -0
- package/skills/claw-compactor/tests/test_estimate_tokens.py +99 -0
- package/skills/claw-compactor/tests/test_generate_summary_tiers.py +105 -0
- package/skills/claw-compactor/tests/test_integration.py +249 -0
- package/skills/claw-compactor/tests/test_lib_dedup.py +135 -0
- package/skills/claw-compactor/tests/test_lib_markdown.py +388 -0
- package/skills/claw-compactor/tests/test_lib_tokens.py +82 -0
- package/skills/claw-compactor/tests/test_main_entry.py +176 -0
- package/skills/claw-compactor/tests/test_markdown_advanced.py +284 -0
- package/skills/claw-compactor/tests/test_new_features.py +77 -0
- package/skills/claw-compactor/tests/test_observation_comprehensive.py +261 -0
- package/skills/claw-compactor/tests/test_observation_compressor.py +128 -0
- package/skills/claw-compactor/tests/test_performance.py +172 -0
- package/skills/claw-compactor/tests/test_pipeline.py +109 -0
- package/skills/claw-compactor/tests/test_real_workspace.py +161 -0
- package/skills/claw-compactor/tests/test_rle.py +114 -0
- package/skills/claw-compactor/tests/test_rle_comprehensive.py +151 -0
- package/skills/claw-compactor/tests/test_roundtrip.py +253 -0
- package/skills/claw-compactor/tests/test_roundtrip_comprehensive.py +192 -0
- package/skills/claw-compactor/tests/test_tiers_comprehensive.py +171 -0
- package/skills/claw-compactor/tests/test_token_economics.py +237 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer.py +175 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_tokens.py +27 -0
- package/skills/cmo/CHANGELOG.md +61 -0
- package/skills/cmo/SKILL.md +500 -0
- package/skills/cmo/references/ai-slop-patterns.md +56 -0
- package/skills/cmo/references/analytics-guide.md +152 -0
- package/skills/cmo/references/ideas-library.md +197 -0
- package/skills/cmo/rules/brand-file-map.md +198 -0
- package/skills/cmo/rules/brand-memory.md +158 -0
- package/skills/cmo/rules/cli-runtime-index.md +95 -0
- package/skills/cmo/rules/command-reference.md +167 -0
- package/skills/cmo/rules/communication.md +15 -0
- package/skills/cmo/rules/context-switch.md +101 -0
- package/skills/cmo/rules/ecosystem.md +125 -0
- package/skills/cmo/rules/error-recovery.md +98 -0
- package/skills/cmo/rules/learning-loop.md +170 -0
- package/skills/cmo/rules/monorepo.md +78 -0
- package/skills/cmo/rules/output-format.md +124 -0
- package/skills/cmo/rules/persona.md +15 -0
- package/skills/cmo/rules/playbooks.md +327 -0
- package/skills/cmo/rules/progressive-enhancement.md +231 -0
- package/skills/cmo/rules/publish-index.md +106 -0
- package/skills/cmo/rules/quality-gate.md +90 -0
- package/skills/cmo/rules/recency-grounding.md +124 -0
- package/skills/cmo/rules/safety.md +80 -0
- package/skills/cmo/rules/studio-api-index.md +138 -0
- package/skills/cmo/rules/studio-integration.md +147 -0
- package/skills/cmo/rules/sub-agents.md +167 -0
- package/skills/cold-email/SKILL.md +240 -0
- package/skills/cold-email/evals/evals.json +94 -0
- package/skills/cold-email/references/benchmarks.md +83 -0
- package/skills/cold-email/references/follow-up-sequences.md +81 -0
- package/skills/cold-email/references/frameworks.md +90 -0
- package/skills/cold-email/references/personalization.md +79 -0
- package/skills/cold-email/references/subject-lines.md +53 -0
- package/skills/competitive-intel/SKILL.md +433 -0
- package/skills/competitive-intel/references/competitive-frameworks.md +145 -0
- package/skills/competitor-alternatives/SKILL.md +362 -0
- package/skills/competitor-alternatives/evals/evals.json +93 -0
- package/skills/competitor-alternatives/references/content-architecture.md +271 -0
- package/skills/competitor-alternatives/references/templates.md +223 -0
- package/skills/concreteness-fixer/SKILL.md +483 -0
- package/skills/concreteness-fixer/scripts/validation/concreteness-validator.js +221 -0
- package/skills/concreteness-fixer/utils/execFileNoThrow.js +16 -0
- package/skills/content-atomizer/SKILL.md +424 -0
- package/skills/content-atomizer/references/hook-strategies.md +56 -0
- package/skills/content-atomizer/references/platform-specs.md +118 -0
- package/skills/content-atomizer/references/platforms/bluesky.md +64 -0
- package/skills/content-atomizer/references/platforms/instagram.md +77 -0
- package/skills/content-atomizer/references/platforms/linkedin.md +120 -0
- package/skills/content-atomizer/references/platforms/reddit.md +73 -0
- package/skills/content-atomizer/references/platforms/threads.md +64 -0
- package/skills/content-atomizer/references/platforms/tiktok.md +55 -0
- package/skills/content-atomizer/references/platforms/twitter.md +123 -0
- package/skills/content-atomizer/references/platforms/youtube.md +56 -0
- package/skills/content-atomizer/references/tweet-patterns.md +40 -0
- package/skills/content-repost-manager/SKILL.md +245 -0
- package/skills/content-repost-manager/scripts/content-repost-scan.py +133 -0
- package/skills/context-recovery/.clawdhub/origin.json +7 -0
- package/skills/context-recovery/SKILL.md +198 -0
- package/skills/context-recovery/_meta.json +6 -0
- package/skills/conversion-flow-cro/SKILL.md +248 -0
- package/skills/conversion-flow-cro/references/flow-benchmarks.md +158 -0
- package/skills/copy-editing/SKILL.md +474 -0
- package/skills/copy-editing/evals/evals.json +89 -0
- package/skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/copywriting/SKILL.md +349 -0
- package/skills/copywriting/evals/evals.json +111 -0
- package/skills/copywriting/references/awareness-level-guide.md +227 -0
- package/skills/copywriting/references/copy-frameworks.md +389 -0
- package/skills/copywriting/references/natural-transitions.md +272 -0
- package/skills/creative/SKILL.md +365 -0
- package/skills/creative/modes/ad-creative.md +1748 -0
- package/skills/creative/modes/product-photo.md +1520 -0
- package/skills/creative/modes/product-video.md +1657 -0
- package/skills/creative/modes/social-graphics.md +1511 -0
- package/skills/creative/modes/talking-head.md +2208 -0
- package/skills/creative/references/VISUAL_INTELLIGENCE.md +1233 -0
- package/skills/deep-serp-article/SKILL.md +677 -0
- package/skills/deep-serp-article/SKILL.md.bak +530 -0
- package/skills/earned-media/SKILL.md +260 -0
- package/skills/email-sequences/SKILL.md +446 -0
- package/skills/email-sequences/references/sequence-templates.md +1217 -0
- package/skills/firecrawl/.skill-meta.json +13 -0
- package/skills/firecrawl/SKILL.md +154 -0
- package/skills/firecrawl/rules/install.md +63 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/form-cro/SKILL.md +429 -0
- package/skills/form-cro/evals/evals.json +90 -0
- package/skills/free-tool-strategy/SKILL.md +325 -0
- package/skills/free-tool-strategy/evals/evals.json +90 -0
- package/skills/free-tool-strategy/references/tool-types.md +253 -0
- package/skills/frontend-slides/SKILL.md +248 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +347 -0
- package/skills/frontend-slides/animation-patterns.md +110 -0
- package/skills/frontend-slides/html-template.md +347 -0
- package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/frontend-slides/viewport-base.css +153 -0
- package/skills/guardrail-framework/SKILL.md +319 -0
- package/skills/hook-generator/SKILL.md +438 -0
- package/skills/hook-generator/database/2026-PLATFORM-RESEARCH.md +211 -0
- package/skills/hook-generator/database/instagram-hooks.json +591 -0
- package/skills/hook-generator/database/linkedin-hooks.json +502 -0
- package/skills/hook-generator/database/medium-hooks.json +181 -0
- package/skills/hook-generator/database/tiktok-hooks.json +337 -0
- package/skills/hook-generator/database/twitter-hooks.json +567 -0
- package/skills/hook-generator/database/youtube-hooks.json +275 -0
- package/skills/hook-generator/package-lock.json +24 -0
- package/skills/hook-generator/package.json +5 -0
- package/skills/hook-generator/references/hook-generation-system.md +257 -0
- package/skills/hook-generator/references/hook-performance-analysis.json +153 -0
- package/skills/hook-generator/references/hooks-library.md +128 -0
- package/skills/hook-generator/references/platform-hook-frameworks.md +275 -0
- package/skills/hook-generator/scripts/generate-hooks-unified.js +722 -0
- package/skills/hook-generator/scripts/generate-hooks.js +225 -0
- package/skills/hook-generator/scripts/generate.sh +36 -0
- package/skills/hook-generator/scripts/ralph-hook-enhancer.js +864 -0
- package/skills/hook-generator/scripts/test-gemini-output.js +51 -0
- package/skills/humanizer/README.md +120 -0
- package/skills/humanizer/SKILL.md +699 -0
- package/skills/image-gen/SKILL.md +277 -0
- package/skills/image-gen/references/prompt-patterns.md +114 -0
- package/skills/image-gen/references/visual-metaphors.md +51 -0
- package/skills/impeccable/SKILL.md +86 -0
- package/skills/impeccable/reference/adapt.md +312 -0
- package/skills/impeccable/reference/adapt.native.md +58 -0
- package/skills/impeccable/reference/android.md +40 -0
- package/skills/impeccable/reference/animate.md +86 -0
- package/skills/impeccable/reference/audit.md +136 -0
- package/skills/impeccable/reference/audit.native.md +139 -0
- package/skills/impeccable/reference/bolder.md +31 -0
- package/skills/impeccable/reference/clarify.md +94 -0
- package/skills/impeccable/reference/colorize.md +86 -0
- package/skills/impeccable/reference/craft-floor.md +42 -0
- package/skills/impeccable/reference/craft.md +5 -0
- package/skills/impeccable/reference/critique.md +788 -0
- package/skills/impeccable/reference/degraded/asset-producer.md +90 -0
- package/skills/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/impeccable/reference/degraded/finish-reviewer.md +37 -0
- package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/impeccable/reference/delight.md +70 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/doctor.md +53 -0
- package/skills/impeccable/reference/document.md +416 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/harden.md +336 -0
- package/skills/impeccable/reference/hooks.md +105 -0
- package/skills/impeccable/reference/init.md +125 -0
- package/skills/impeccable/reference/ios.md +45 -0
- package/skills/impeccable/reference/layout.md +84 -0
- package/skills/impeccable/reference/live-setup.md +102 -0
- package/skills/impeccable/reference/live.md +323 -0
- package/skills/impeccable/reference/new-work.md +110 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/operate.md +61 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +127 -0
- package/skills/impeccable/reference/polish.md +97 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/routing.md +18 -0
- package/skills/impeccable/reference/shape.md +59 -0
- package/skills/impeccable/reference/typeset.md +80 -0
- package/skills/impeccable/reference/visualize.md +49 -0
- package/skills/impeccable/scripts/command-metadata.json +94 -0
- package/skills/impeccable/scripts/concept-seed.mjs +558 -0
- package/skills/impeccable/scripts/context-signals.mjs +334 -0
- package/skills/impeccable/scripts/context.mjs +1467 -0
- package/skills/impeccable/scripts/critique-storage.mjs +213 -0
- package/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/skills/impeccable/scripts/detect.mjs +21 -0
- package/skills/impeccable/scripts/detector/browser/injected/index.mjs +2023 -0
- package/skills/impeccable/scripts/detector/cli/main.mjs +438 -0
- package/skills/impeccable/scripts/detector/design-system.mjs +1046 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +8283 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
- package/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +372 -0
- package/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +1168 -0
- package/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1186 -0
- package/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +264 -0
- package/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/skills/impeccable/scripts/detector/findings.mjs +18 -0
- package/skills/impeccable/scripts/detector/node/file-system.mjs +203 -0
- package/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/skills/impeccable/scripts/detector/registry/antipatterns.mjs +617 -0
- package/skills/impeccable/scripts/detector/rules/checks.mjs +5580 -0
- package/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/skills/impeccable/scripts/detector/shared/constants.mjs +112 -0
- package/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
- package/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/skills/impeccable/scripts/doctor.mjs +336 -0
- package/skills/impeccable/scripts/embed-prompt.mjs +133 -0
- package/skills/impeccable/scripts/generate-image.mjs +240 -0
- package/skills/impeccable/scripts/hook-admin.mjs +801 -0
- package/skills/impeccable/scripts/hook-before-edit.mjs +508 -0
- package/skills/impeccable/scripts/hook-lib.mjs +2153 -0
- package/skills/impeccable/scripts/hook.mjs +78 -0
- package/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
- package/skills/impeccable/scripts/lib/composition-catalog.mjs +200 -0
- package/skills/impeccable/scripts/lib/concept-catalog.mjs +384 -0
- package/skills/impeccable/scripts/lib/design-parser.mjs +925 -0
- package/skills/impeccable/scripts/lib/impeccable-config.mjs +658 -0
- package/skills/impeccable/scripts/lib/impeccable-paths.mjs +137 -0
- package/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
- package/skills/impeccable/scripts/lib/provider.mjs +5 -0
- package/skills/impeccable/scripts/lib/roll-selection.mjs +362 -0
- package/skills/impeccable/scripts/lib/staleness-deep.mjs +478 -0
- package/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
- package/skills/impeccable/scripts/lib/staleness.mjs +457 -0
- package/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
- package/skills/impeccable/scripts/lib/target-args.mjs +42 -0
- package/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
- package/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
- package/skills/impeccable/scripts/live/accept-css.mjs +617 -0
- package/skills/impeccable/scripts/live/accept-verify.mjs +60 -0
- package/skills/impeccable/scripts/live/browser-script-parts.mjs +55 -0
- package/skills/impeccable/scripts/live/completion.mjs +28 -0
- package/skills/impeccable/scripts/live/event-validation.mjs +199 -0
- package/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
- package/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +73 -0
- package/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
- package/skills/impeccable/scripts/live/frameworks/journal.mjs +197 -0
- package/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
- package/skills/impeccable/scripts/live/frameworks/nuxt.mjs +161 -0
- package/skills/impeccable/scripts/live/frameworks/script-src.mjs +17 -0
- package/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
- package/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
- package/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
- package/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
- package/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
- package/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
- package/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
- package/skills/impeccable/scripts/live/instructions.mjs +142 -0
- package/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
- package/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
- package/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
- package/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
- package/skills/impeccable/scripts/live/roots.mjs +508 -0
- package/skills/impeccable/scripts/live/session-store.mjs +563 -0
- package/skills/impeccable/scripts/live/source-lock.mjs +105 -0
- package/skills/impeccable/scripts/live/source-search.mjs +105 -0
- package/skills/impeccable/scripts/live/svelte-ast.mjs +961 -0
- package/skills/impeccable/scripts/live/svelte-component.mjs +1342 -0
- package/skills/impeccable/scripts/live/sveltekit-adapter.mjs +316 -0
- package/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
- package/skills/impeccable/scripts/live/ui-core.mjs +180 -0
- package/skills/impeccable/scripts/live/vocabulary.mjs +171 -0
- package/skills/impeccable/scripts/live-accept.mjs +954 -0
- package/skills/impeccable/scripts/live-browser-dom.js +146 -0
- package/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/skills/impeccable/scripts/live-browser.js +12520 -0
- package/skills/impeccable/scripts/live-commit-manual-edits.mjs +1244 -0
- package/skills/impeccable/scripts/live-complete.mjs +107 -0
- package/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/skills/impeccable/scripts/live-inject.mjs +503 -0
- package/skills/impeccable/scripts/live-insert.mjs +292 -0
- package/skills/impeccable/scripts/live-manual-edit-evidence.mjs +368 -0
- package/skills/impeccable/scripts/live-poll.mjs +429 -0
- package/skills/impeccable/scripts/live-resume.mjs +123 -0
- package/skills/impeccable/scripts/live-server.mjs +1669 -0
- package/skills/impeccable/scripts/live-status.mjs +71 -0
- package/skills/impeccable/scripts/live-target.mjs +30 -0
- package/skills/impeccable/scripts/live-wrap.mjs +927 -0
- package/skills/impeccable/scripts/live.mjs +359 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/impeccable/scripts/palette.mjs +628 -0
- package/skills/impeccable/scripts/pin.mjs +221 -0
- package/skills/impeccable/scripts/serve-question.mjs +932 -0
- package/skills/impeccable/scripts/surface-brief.mjs +74 -0
- package/skills/inkstone-admin/SKILL.md +66 -0
- package/skills/jev-hook-gate/SKILL.md +111 -0
- package/skills/keyword-research/SKILL.md +503 -0
- package/skills/keyword-research/references/dr-cap-and-confidence.md +62 -0
- package/skills/keyword-research/references/keyword-examples.md +769 -0
- package/skills/landing-page-architect/SKILL.md +585 -0
- package/skills/landing-page-architect/references/architecture-reference.md +32 -0
- package/skills/launch-strategy/SKILL.md +384 -0
- package/skills/launch-strategy/evals/evals.json +91 -0
- package/skills/launch-strategy/references/launch-checklist.md +209 -0
- package/skills/launch-strategy/references/launch-timeline.md +159 -0
- package/skills/lead-email-craft/SKILL.md +522 -0
- package/skills/lead-magnets/SKILL.md +310 -0
- package/skills/lead-magnets/references/benchmarks.md +129 -0
- package/skills/lead-magnets/references/format-guide.md +196 -0
- package/skills/link-building-seo/SKILL.md +210 -0
- package/skills/lint-report.txt +1 -0
- package/skills/manifest.json +129 -0
- package/skills/marketing-demo/SKILL.md +249 -0
- package/skills/marketing-demo/references/remotion-examples.md +281 -0
- package/skills/marketing-ideas/SKILL.md +167 -0
- package/skills/marketing-ideas/evals/evals.json +90 -0
- package/skills/marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/marketing-psychology/SKILL.md +374 -0
- package/skills/marketing-psychology/evals/evals.json +88 -0
- package/skills/marketing-psychology/references/case-studies.md +148 -0
- package/skills/narrative-research-article/SKILL.md +469 -0
- package/skills/narrative-research-article/references/lanusse-patterns.md +166 -0
- package/skills/notebooklm/SKILL.md +674 -0
- package/skills/off-page-seo/SKILL.md +219 -0
- package/skills/onboarding-cro/SKILL.md +220 -0
- package/skills/onboarding-cro/evals/evals.json +92 -0
- package/skills/onboarding-cro/references/experiments.md +258 -0
- package/skills/original-research/SKILL.md +388 -0
- package/skills/page-cro/SKILL.md +269 -0
- package/skills/page-cro/references/cro-benchmarks.md +140 -0
- package/skills/paper-marketing/SKILL.md +448 -0
- package/skills/paper-marketing/references/agent-quality-rubric.md +68 -0
- package/skills/paper-marketing/references/brand-system-template.md +120 -0
- package/skills/paper-marketing/references/paper-mcp-rules.md +71 -0
- package/skills/paper-marketing/references/platform-conventions.md +43 -0
- package/skills/paywall-upgrade-cro/SKILL.md +227 -0
- package/skills/paywall-upgrade-cro/evals/evals.json +93 -0
- package/skills/paywall-upgrade-cro/references/experiments.md +164 -0
- package/skills/platform-formatting/SKILL.md +51 -0
- package/skills/popup-cro/SKILL.md +454 -0
- package/skills/popup-cro/evals/evals.json +94 -0
- package/skills/positioning-angles/SKILL.md +524 -0
- package/skills/positioning-angles/references/ad-matrix-and-examples.md +176 -0
- package/skills/positioning-angles/references/angle-frameworks.md +187 -0
- package/skills/positioning-angles/references/dunford-positioning.md +135 -0
- package/skills/positioning-angles/references/hormozi-offer.md +247 -0
- package/skills/positioning-angles/references/schwartz-sophistication.md +166 -0
- package/skills/positioning-angles/references/unique-mechanism.md +162 -0
- package/skills/pricing-strategy/SKILL.md +346 -0
- package/skills/pricing-strategy/evals/evals.json +90 -0
- package/skills/pricing-strategy/references/research-methods.md +152 -0
- package/skills/pricing-strategy/references/tier-structure.md +307 -0
- package/skills/programmatic-seo/SKILL.md +238 -0
- package/skills/programmatic-seo/evals/evals.json +94 -0
- package/skills/programmatic-seo/references/playbooks.md +308 -0
- package/skills/project-rag/SKILL.md +127 -0
- package/skills/quality-gate/SKILL.md +519 -0
- package/skills/quality-gate/judge-personas/buyer.md +47 -0
- package/skills/quality-gate/judge-personas/expert.md +47 -0
- package/skills/quality-gate/judge-personas/outsider.md +47 -0
- package/skills/quality-gate/judge-personas/scanner.md +41 -0
- package/skills/quality-gate/judge-personas/skeptic.md +40 -0
- package/skills/referral-program/SKILL.md +290 -0
- package/skills/referral-program/evals/evals.json +89 -0
- package/skills/referral-program/references/affiliate-programs.md +163 -0
- package/skills/referral-program/references/program-examples.md +143 -0
- package/skills/review-sites/SKILL.md +279 -0
- package/skills/revops/SKILL.md +343 -0
- package/skills/revops/evals/evals.json +91 -0
- package/skills/revops/references/automation-playbooks.md +290 -0
- package/skills/revops/references/lifecycle-definitions.md +278 -0
- package/skills/revops/references/routing-rules.md +203 -0
- package/skills/revops/references/scoring-models.md +247 -0
- package/skills/saas-product-seo/SKILL.md +324 -0
- package/skills/sales-enablement/SKILL.md +349 -0
- package/skills/sales-enablement/evals/evals.json +91 -0
- package/skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/sales-enablement/references/demo-scripts.md +355 -0
- package/skills/sales-enablement/references/objection-library.md +270 -0
- package/skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/schema-markup/SKILL.md +179 -0
- package/skills/schema-markup/evals/evals.json +87 -0
- package/skills/schema-markup/references/schema-examples.md +398 -0
- package/skills/self-improve/SKILL.md +166 -0
- package/skills/self-improving-agent/README.md +243 -0
- package/skills/self-improving-agent/SKILL.md +437 -0
- package/skills/self-improving-agent/scripts/__init__.py +16 -0
- package/skills/self-improving-agent/scripts/__pycache__/auto_detect.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/nlm_curation.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/self_improving_agent.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/auto_detect.py +270 -0
- package/skills/self-improving-agent/scripts/init_expertise_registry.py +89 -0
- package/skills/self-improving-agent/scripts/nlm_curation.py +259 -0
- package/skills/self-improving-agent/scripts/self-improving-agent +113 -0
- package/skills/self-improving-agent/scripts/self_improving_agent.py +603 -0
- package/skills/self-improving-agent/scripts/test_curation_scorer.py +20 -0
- package/skills/self-improving-agent/scripts/test_self_improving.py +184 -0
- package/skills/send-email/SKILL.md +426 -0
- package/skills/send-email/references/batch-email-examples.md +807 -0
- package/skills/send-email/references/best-practices.md +453 -0
- package/skills/send-email/references/installation.md +123 -0
- package/skills/send-email/references/single-email-examples.md +470 -0
- package/skills/send-email/references/webhooks.md +221 -0
- package/skills/seo-audit/SKILL.md +362 -0
- package/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/seo-audit/references/architecture-patterns.md +271 -0
- package/skills/seo-audit/references/schema-templates.md +427 -0
- package/skills/seo-content/SKILL.md +510 -0
- package/skills/seo-content/references/anti-ai-detection.md +184 -0
- package/skills/seo-content/references/content-structures.md +148 -0
- package/skills/seo-content/references/eeat-examples.md +235 -0
- package/skills/seo-content/references/on-page-seo.md +261 -0
- package/skills/seo-content/references/pseo-playbooks.md +226 -0
- package/skills/seo-content/references/schema-templates.md +104 -0
- package/skills/seo-content/references/serp-analysis-format.md +151 -0
- package/skills/seo-machine/SKILL.md +331 -0
- package/skills/seo-machine/assets/brand-template.md +73 -0
- package/skills/seo-machine/assets/link-inventory-template.md +74 -0
- package/skills/seo-machine/assets/roadmap-template.md +184 -0
- package/skills/seo-machine/references/api-stack-recipes.md +230 -0
- package/skills/seo-machine/references/exa-recipes.md +260 -0
- package/skills/seo-machine/references/manual-research.md +73 -0
- package/skills/seo-machine/references/methodology.md +87 -0
- package/skills/seo-machine/references/off-page.md +123 -0
- package/skills/seo-machine/references/patterns/alternatives.md +176 -0
- package/skills/seo-machine/references/patterns/compare.md +105 -0
- package/skills/seo-machine/references/patterns/playbooks.md +106 -0
- package/skills/seo-machine/references/patterns/use-case.md +109 -0
- package/skills/seo-machine/references/quality-bars.md +99 -0
- package/skills/seo-machine/references/stacks/astro.md +156 -0
- package/skills/seo-machine/references/stacks/detection.md +61 -0
- package/skills/seo-machine/references/stacks/markdown-fallback.md +181 -0
- package/skills/seo-machine/references/stacks/nextjs.md +108 -0
- package/skills/seo-machine/references/stacks/rails-inertia.md +99 -0
- package/skills/seo-machine/references/striking-distance.md +116 -0
- package/skills/seo-machine/references/technical-audit.md +153 -0
- package/skills/seo-machine/scripts/link_audit.py +265 -0
- package/skills/seo-machine/scripts/tech_audit.py +221 -0
- package/skills/seo-machine/scripts/word_count.py +154 -0
- package/skills/sharp-thesis-validator/SKILL.md +393 -0
- package/skills/sharp-thesis-validator/examples.md +186 -0
- package/skills/signup-flow-cro/SKILL.md +359 -0
- package/skills/signup-flow-cro/evals/evals.json +88 -0
- package/skills/site-architecture/SKILL.md +357 -0
- package/skills/site-architecture/evals/evals.json +88 -0
- package/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/skills/site-architecture/references/site-type-templates.md +293 -0
- package/skills/skill-self-improvement/SKILL.md +151 -0
- package/skills/slideshow-script/SKILL.md +274 -0
- package/skills/slideshow-script/references/content-spec-schema.md +77 -0
- package/skills/slideshow-script/references/frameworks.md +84 -0
- package/skills/slideshow-script/references/paips-framework.md +37 -0
- package/skills/social-campaign/SKILL.md +419 -0
- package/skills/social-campaign/references/paper-mcp-workflow.md +48 -0
- package/skills/social-content/SKILL.md +359 -0
- package/skills/social-content/evals/evals.json +92 -0
- package/skills/social-content/references/platforms.md +170 -0
- package/skills/social-content/references/post-templates.md +177 -0
- package/skills/social-content/references/reverse-engineering.md +195 -0
- package/skills/social-worker/SKILL.md +204 -0
- package/skills/startup-launcher/SKILL.md +252 -0
- package/skills/startup-launcher/references/file-router.md +64 -0
- package/skills/startup-launcher/references/platform-matrix.md +65 -0
- package/skills/startup-launcher/references/platforms/alternativeto.md +283 -0
- package/skills/startup-launcher/references/platforms/appsumo.md +495 -0
- package/skills/startup-launcher/references/platforms/auraplusplus.md +736 -0
- package/skills/startup-launcher/references/platforms/betalist.md +98 -0
- package/skills/startup-launcher/references/platforms/capterra.md +276 -0
- package/skills/startup-launcher/references/platforms/crunchbase.md +514 -0
- package/skills/startup-launcher/references/platforms/dealify.md +291 -0
- package/skills/startup-launcher/references/platforms/dealmirror.md +313 -0
- package/skills/startup-launcher/references/platforms/desifounder.md +490 -0
- package/skills/startup-launcher/references/platforms/devhunt.md +210 -0
- package/skills/startup-launcher/references/platforms/devpost.md +448 -0
- package/skills/startup-launcher/references/platforms/fazier.md +56 -0
- package/skills/startup-launcher/references/platforms/firsto.md +489 -0
- package/skills/startup-launcher/references/platforms/g2.md +226 -0
- package/skills/startup-launcher/references/platforms/hackernews.md +99 -0
- package/skills/startup-launcher/references/platforms/hackernoon.md +385 -0
- package/skills/startup-launcher/references/platforms/indiedeals.md +367 -0
- package/skills/startup-launcher/references/platforms/indiehackers.md +80 -0
- package/skills/startup-launcher/references/platforms/kenmoo.md +231 -0
- package/skills/startup-launcher/references/platforms/labstartups.md +618 -0
- package/skills/startup-launcher/references/platforms/launchboard.md +307 -0
- package/skills/startup-launcher/references/platforms/launchfast.md +560 -0
- package/skills/startup-launcher/references/platforms/launchigniter.md +56 -0
- package/skills/startup-launcher/references/platforms/launchingnext.md +674 -0
- package/skills/startup-launcher/references/platforms/launchit.md +574 -0
- package/skills/startup-launcher/references/platforms/launchyourapp.md +677 -0
- package/skills/startup-launcher/references/platforms/libhunt.md +220 -0
- package/skills/startup-launcher/references/platforms/ltdhunt.md +221 -0
- package/skills/startup-launcher/references/platforms/microlaunch.md +45 -0
- package/skills/startup-launcher/references/platforms/openalternative.md +195 -0
- package/skills/startup-launcher/references/platforms/peerlist.md +56 -0
- package/skills/startup-launcher/references/platforms/peerpush.md +64 -0
- package/skills/startup-launcher/references/platforms/primeclub.md +282 -0
- package/skills/startup-launcher/references/platforms/productcanyon.md +190 -0
- package/skills/startup-launcher/references/platforms/producthunt.md +98 -0
- package/skills/startup-launcher/references/platforms/rankinpublic.md +315 -0
- package/skills/startup-launcher/references/platforms/rockethub.md +374 -0
- package/skills/startup-launcher/references/platforms/saasgenius.md +175 -0
- package/skills/startup-launcher/references/platforms/saashub.md +205 -0
- package/skills/startup-launcher/references/platforms/saasmantra.md +221 -0
- package/skills/startup-launcher/references/platforms/saaspirate.md +287 -0
- package/skills/startup-launcher/references/platforms/saaswarrior.md +190 -0
- package/skills/startup-launcher/references/platforms/saaszilla.md +194 -0
- package/skills/startup-launcher/references/platforms/selected.md +925 -0
- package/skills/startup-launcher/references/platforms/sideprojectors.md +86 -0
- package/skills/startup-launcher/references/platforms/softonic.md +240 -0
- package/skills/startup-launcher/references/platforms/sourceforge.md +251 -0
- package/skills/startup-launcher/references/platforms/stacksocial.md +244 -0
- package/skills/startup-launcher/references/platforms/startupstash.md +326 -0
- package/skills/startup-launcher/references/platforms/theresanaiforthat.md +253 -0
- package/skills/startup-launcher/references/platforms/tinylaunch.md +70 -0
- package/skills/startup-launcher/references/platforms/tinystartups.md +72 -0
- package/skills/startup-launcher/references/platforms/toolfolio.md +291 -0
- package/skills/startup-launcher/references/platforms/trustmrr.md +194 -0
- package/skills/startup-launcher/references/platforms/trylaunch.md +531 -0
- package/skills/startup-launcher/references/platforms/uneed.md +57 -0
- package/skills/startup-launcher/references/templates/asset-checklist.md +218 -0
- package/skills/startup-launcher/references/templates/launch-tracker.md +195 -0
- package/skills/startup-launcher/references/templates/product-brief.md +98 -0
- package/skills/summarize/.skill-meta.json +13 -0
- package/skills/summarize/SKILL.md +170 -0
- package/skills/summarize/rules/install.md +157 -0
- package/skills/summarize/rules/usage.md +207 -0
- package/skills/topical-authority/SKILL.md +307 -0
- package/skills/topical-authority/references/jake-ward-framework.md +201 -0
- package/skills/topical-authority/references/serp-clustering-algorithm.md +325 -0
- package/skills/topical-authority/scripts/orchestrator.js +367 -0
- package/skills/topical-authority/scripts/seo/analyze-competitor-coverage.js +3 -0
- package/skills/topical-authority/scripts/seo/audit-internal-links.js +3 -0
- package/skills/topical-authority/scripts/seo/build-clusters-from-serp.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-keywords-from-forums.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-paa-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/fetch-serp-urls.js +3 -0
- package/skills/topical-authority/scripts/seo/gemini-serp-clustering.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-content-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-research-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-quora-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-reddit-pain-points.js +3 -0
- package/skills/topical-authority/scripts/seo/weave-internal-links.js +3 -0
- package/skills/visual-style/SKILL.md +199 -0
- package/skills/voice-brand-alignment/SKILL.md +70 -0
- package/skills/voice-brand-alignment/references/ai-slop-patterns.md +405 -0
- package/skills/voice-brand-alignment/scripts/validation/gemini-voice-validator.js +96 -0
- package/skills/voice-extraction/SKILL.md +234 -0
- package/skills/voice-extraction/references/extraction-prompt.md +155 -0
- package/skills/voice-extraction/references/voice-dna-template.md +168 -0
- package/skills/voice-extraction/references/voice-elements.md +259 -0
- package/skills/voice-extraction/scripts/build-corpus.js +120 -0
- package/skills/voice-extraction/scripts/collect-sources.sh +168 -0
- package/skills/warm-outbound/SKILL.md +299 -0
- package/skills/warm-outbound/templates/warm-message.md +39 -0
- package/skills/weekly-newsletter-digest/SKILL.md +78 -0
- package/skills/x-playwriter/SKILL.md +428 -0
- package/skills/x-playwriter/scripts/x-browser.js +185 -0
- package/skills/x-post-generator-openclaw/SKILL.md +138 -0
- package/skills/x-post-generator-openclaw/scripts/generate-x-post.js +537 -0
- package/skills/x-posting-playwriter/SKILL.md +203 -0
- package/skills/x-research/SKILL.md +129 -0
- package/skills/x-research/x-research.sh +85 -0
- package/skills/youtube-summarize/SKILL.md +90 -0
- package/skills/youtube-summarize/scripts/youtube-summarize.sh +143 -0
- package/src/cli.js +349 -172
- package/src/harness/deepseek-adapter.js +102 -0
- package/src/harness/deepseek.js +225 -0
- package/src/harness/opencode-adapter.js +174 -0
- package/src/harness/pi-adapter.js +172 -0
- package/src/harness/registry.js +121 -0
- package/src/harness/telemetry.js +102 -0
- package/src/harness/types.js +165 -0
- package/src/interview.js +36 -4
- package/src/postinstall.js +10 -12
- package/templates/AGENTS.md +17 -17
- package/templates/ORG.md +1 -1
- package/templates/TOOLS.md +7 -2
- package/templates/opencode.json +26 -29
- package/wiki/doctor.md +54 -0
- package/wiki/inkstone.md +4 -4
- package/wiki/opencode.md +3 -3
- package/skills/curated.txt +0 -68
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-recovery
|
|
3
|
+
description: Automatically recover working context after session compaction or context loss. Works across Discord, Slack, Telegram, and other channels.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
slash_command: false
|
|
7
|
+
name: context-recovery
|
|
8
|
+
description: Automatically recover working context after session compaction or when continuation is implied but context is missing. Works across Discord, Slack, Telegram, Signal, and other supported channels.
|
|
9
|
+
homepage: https://github.com/PSPDFKit-labs/agent-skills
|
|
10
|
+
repository: https://github.com/PSPDFKit-labs/agent-skills
|
|
11
|
+
metadata:
|
|
12
|
+
{
|
|
13
|
+
"openclaw":
|
|
14
|
+
"emoji": "",
|
|
15
|
+
},
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
# Context Recovery
|
|
19
|
+
Automatically recover working context after session compaction or when continuation is implied but context is missing. Works across Discord, Slack, Telegram, Signal, and other supported channels.
|
|
20
|
+
|
|
21
|
+
**Use when**: Session starts with truncated context, user references prior work without specifying details, or compaction indicators appear.
|
|
22
|
+
|
|
23
|
+
## Safety Boundaries
|
|
24
|
+
- This skill prioritizes channel/session API history to recover context.
|
|
25
|
+
- It does NOT perform broad filesystem scans or shell glob searches by default.
|
|
26
|
+
- It does NOT send recovered context to external services.
|
|
27
|
+
- It does NOT write to disk unless the user explicitly asks to persist recovered state.
|
|
28
|
+
|
|
29
|
+
## Triggers
|
|
30
|
+
|
|
31
|
+
### Automatic Triggers
|
|
32
|
+
- Session begins with a `<summary>` tag (compaction detected)
|
|
33
|
+
- User message contains compaction indicators: "Summary unavailable", "context limits", "truncated"
|
|
34
|
+
|
|
35
|
+
### Manual Triggers
|
|
36
|
+
- User says "continue", "did this happen?", "where were we?", "what was I working on?"
|
|
37
|
+
- User references "the project", "the PR", "the branch", "the issue" without specifying which
|
|
38
|
+
- User implies prior work exists but context is unclear
|
|
39
|
+
- User asks "do you remember...?" or "we were working on..."
|
|
40
|
+
|
|
41
|
+
## Execution Protocol
|
|
42
|
+
|
|
43
|
+
### Step 1: Detect Active Channel
|
|
44
|
+
Extract from runtime context:
|
|
45
|
+
- `channel` — discord | slack | telegram | signal | etc.
|
|
46
|
+
- `channelId` — the specific channel/conversation ID
|
|
47
|
+
- `threadId` — for threaded conversations (Slack, Discord threads)
|
|
48
|
+
|
|
49
|
+
### Step 2: Fetch Channel History (Adaptive Depth)
|
|
50
|
+
**Initial fetch:**
|
|
51
|
+
```
|
|
52
|
+
message:read
|
|
53
|
+
channel: <detected-channel>
|
|
54
|
+
channelId: <detected-channel-id>
|
|
55
|
+
limit: 50
|
|
56
|
+
|
|
57
|
+
**Adaptive expansion logic:**
|
|
58
|
+
1. Parse timestamps from returned messages
|
|
59
|
+
2. Calculate time span: `newest_timestamp - oldest_timestamp`
|
|
60
|
+
3. If time span < 2 hours AND message count == limit:
|
|
61
|
+
- Fetch additional 50 messages (using `before` parameter if supported)
|
|
62
|
+
- Repeat until time span ≥ 2 hours OR total messages ≥ 100
|
|
63
|
+
4. Hard cap: 100 messages maximum (token budget constraint)
|
|
64
|
+
|
|
65
|
+
**Thread-aware recovery (Slack/Discord):**
|
|
66
|
+
|
|
67
|
+
# If threadId is present, fetch thread messages first
|
|
68
|
+
threadId: <thread-id>
|
|
69
|
+
|
|
70
|
+
# Then fetch parent channel for broader context
|
|
71
|
+
channelId: <parent-channel-id>
|
|
72
|
+
limit: 30
|
|
73
|
+
|
|
74
|
+
**Parse for:**
|
|
75
|
+
- Recent user requests (what was asked)
|
|
76
|
+
- Recent assistant responses (what was done)
|
|
77
|
+
- URLs, file paths, branch names, PR numbers
|
|
78
|
+
- Incomplete actions (promises made but not fulfilled)
|
|
79
|
+
- Project identifiers and working directories
|
|
80
|
+
|
|
81
|
+
### Step 3: Fetch Session Context (safe mode)
|
|
82
|
+
Use platform/session APIs only (no shell filesystem scans):
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
|
|
86
|
+
# List recent sessions (if tool exists)
|
|
87
|
+
sessions_list:
|
|
88
|
+
limit: 5
|
|
89
|
+
|
|
90
|
+
# Pull last messages from likely matching session
|
|
91
|
+
sessions_history:
|
|
92
|
+
sessionKey: <candidate-session-key>
|
|
93
|
+
limit: 80
|
|
94
|
+
includeTools: true
|
|
95
|
+
|
|
96
|
+
If session APIs are unavailable, skip this step and proceed with channel-only evidence.
|
|
97
|
+
|
|
98
|
+
### Step 4: Optional Memory Check (explicitly scoped)
|
|
99
|
+
Only inspect memory if the agent runtime already provides a scoped memory tool/path.
|
|
100
|
+
Do **not** run shell glob scans across home directories.
|
|
101
|
+
|
|
102
|
+
### Step 5: Synthesize Context
|
|
103
|
+
Compile a structured summary:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
|
|
107
|
+
## Recovered Context
|
|
108
|
+
**Channel:** #<channel-name> (<platform>)
|
|
109
|
+
**Time Range:** <oldest-message> to <newest-message>
|
|
110
|
+
**Messages Analyzed:** <count>
|
|
111
|
+
|
|
112
|
+
### Active Project/Task
|
|
113
|
+
- **Repository:** <repo-name>
|
|
114
|
+
- **Branch:** <branch-name>
|
|
115
|
+
- **PR:** #<number> — <title>
|
|
116
|
+
|
|
117
|
+
### Recent Work Timeline
|
|
118
|
+
1. [<timestamp>] <action/request>
|
|
119
|
+
2. [<timestamp>] <action/request>
|
|
120
|
+
3. [<timestamp>] <action/request>
|
|
121
|
+
|
|
122
|
+
### Pending/Incomplete Actions
|
|
123
|
+
- ⏳ "<quoted incomplete action>"
|
|
124
|
+
- ⏳ "<another incomplete item>"
|
|
125
|
+
|
|
126
|
+
### Last User Request
|
|
127
|
+
> "<quoted request that may not have been completed>"
|
|
128
|
+
|
|
129
|
+
### Step 6: Optional Persistence (consent-first)
|
|
130
|
+
Do not write to disk by default. If persistence is useful, ask first:
|
|
131
|
+
|
|
132
|
+
> "I can cache this recovered context to memory for later continuity. Should I save it?"
|
|
133
|
+
|
|
134
|
+
### Step 7: Respond with Context
|
|
135
|
+
Present the recovered context, then prompt:
|
|
136
|
+
|
|
137
|
+
> "Context recovered. Your last request was [X]. This action [completed/did not complete]. Shall I [continue/retry/clarify]?"
|
|
138
|
+
|
|
139
|
+
## Channel-Specific Notes
|
|
140
|
+
|
|
141
|
+
### Discord
|
|
142
|
+
- Use `channelId` from the incoming message metadata
|
|
143
|
+
- Guild channels have full history access
|
|
144
|
+
- Thread recovery: check for `threadId` in message metadata
|
|
145
|
+
- DMs may have limited history
|
|
146
|
+
|
|
147
|
+
### Slack
|
|
148
|
+
- Use `channel` parameter with Slack channel ID
|
|
149
|
+
- Thread context requires `threadId` — always check for thread context first
|
|
150
|
+
- Parent channel fetch provides surrounding conversation context
|
|
151
|
+
- May need workspace-level permissions for full history
|
|
152
|
+
|
|
153
|
+
### Telegram / Signal / Others
|
|
154
|
+
- Same `message:read` interface
|
|
155
|
+
- History depth may vary by platform
|
|
156
|
+
- Group vs. DM context may differ
|
|
157
|
+
|
|
158
|
+
## Constraints
|
|
159
|
+
- Prefer this protocol before declaring "insufficient data" when context appears missing
|
|
160
|
+
- Adaptive depth: start with 50, expand to 100 max
|
|
161
|
+
- Time-based goal: capture at least 2 hours of context when possible
|
|
162
|
+
- If recovery fails, state what was attempted and what data sources were unavailable
|
|
163
|
+
- Avoid broad filesystem scans or writes without explicit user consent
|
|
164
|
+
|
|
165
|
+
## Auto-Trigger Detection
|
|
166
|
+
At session start, scan for compaction indicators:
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
|
|
170
|
+
# Pseudocode for trigger detection
|
|
171
|
+
if message contains "<summary>":
|
|
172
|
+
trigger_context_recovery()
|
|
173
|
+
elif message contains any of ["Summary unavailable", "context limits", "truncated", "compacted"]:
|
|
174
|
+
elif message matches continuation_patterns:
|
|
175
|
+
# "continue", "where were we", "did this happen", etc.
|
|
176
|
+
|
|
177
|
+
**Do not wait for user to ask** — if compaction is detected, proactively recover and present context.
|
|
178
|
+
|
|
179
|
+
## Example
|
|
180
|
+
**Scenario:** Session starts with compaction summary
|
|
181
|
+
|
|
182
|
+
User message: "<summary>Summary unavailable due to context limits...</summary>"
|
|
183
|
+
User message: "did this happen?"
|
|
184
|
+
|
|
185
|
+
**Agent executes:**
|
|
186
|
+
1. Detects compaction via `<summary>` tag
|
|
187
|
+
2. `message:read channel=discord channelId=1460342116516364533 limit=50`
|
|
188
|
+
3. Calculates time span: 2.5 hours — sufficient, no expansion needed
|
|
189
|
+
4. Parses messages, finds last action: "Now let me extract the key orchestration decisions..."
|
|
190
|
+
5. Checks session context APIs — extracts recent user requests
|
|
191
|
+
6. Responds:
|
|
192
|
+
|
|
193
|
+
> "Context recovered. Your last request was to extract orchestration decisions from Nexus archived sessions for PR #137 (Skills & Agents System). This action did not complete before context was truncated.
|
|
194
|
+
>
|
|
195
|
+
> **Recovered state:**
|
|
196
|
+
> - PR #137: 15,053 additions, 91 files, CONFLICTING merge state
|
|
197
|
+
> - Spec location: `content/spec-skills-agents-system.md` (2,067 lines)
|
|
198
|
+
> Shall I proceed with the extraction?"
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conversion-flow-cro
|
|
3
|
+
description: "Optimizes multi-step conversion flows including signup, onboarding, upgrade, and checkout. Maps each step, identifies friction and drop-off risks,..."
|
|
4
|
+
allowed-tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Conversion Flow CRO
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Audit and optimize any multi-step conversion flow — signup, onboarding, trial-to-paid, checkout, upgrade. Map every step, find where people drop off, and fix each screen with specific copy and UX changes.
|
|
12
|
+
|
|
13
|
+
## Reads
|
|
14
|
+
|
|
15
|
+
- `brand/audience.md` — Personas, pain points, motivation levels at each stage
|
|
16
|
+
- `brand/positioning.md` — Value props for reinforcement copy at each step
|
|
17
|
+
- `brand/voice-profile.md` — Brand voice for all copy suggestions
|
|
18
|
+
|
|
19
|
+
## Brand Integration
|
|
20
|
+
|
|
21
|
+
- **audience.md** — Persona determines friction tolerance. A developer persona accepts more setup steps; a non-technical buyer needs fewer. Pain points inform which value reminders to show at each step.
|
|
22
|
+
- **positioning.md** — Value proposition reinforcement copy at each step should echo the positioning angle. If the brand positions on "saves time," every motivation booster references time savings.
|
|
23
|
+
- **voice-profile.md** — All redesigned copy (headlines, CTAs, supporting text) must match brand voice. A casual brand writes "Almost there!" while a professional brand writes "One final step."
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
### Step 1: Map the Current Flow
|
|
28
|
+
|
|
29
|
+
Get the flow information. Try these in order:
|
|
30
|
+
1. **User provides screenshots or screen recordings** — Best source, map directly
|
|
31
|
+
2. **Read the codebase** — If accessible, find route files, page components, and form definitions
|
|
32
|
+
3. **User walks through the flow verbally** — Accept but flag that recommendations will be more accurate with actual screens
|
|
33
|
+
4. **Use browser tool on live URL** — Walk through the flow step by step
|
|
34
|
+
|
|
35
|
+
If the flow is partially provided (only some screens), audit what's available and note which steps need investigation.
|
|
36
|
+
|
|
37
|
+
Document every screen/step in the flow:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Flow: [Signup / Onboarding / Upgrade / Checkout]
|
|
41
|
+
|
|
42
|
+
Step 1: [Page/Screen name]
|
|
43
|
+
- URL/Route: [path]
|
|
44
|
+
- Fields/Actions: [what user must do]
|
|
45
|
+
- Copy: [headline, body, CTA]
|
|
46
|
+
- Friction points: [identified issues]
|
|
47
|
+
|
|
48
|
+
Step 2: [Next screen]
|
|
49
|
+
...
|
|
50
|
+
|
|
51
|
+
Total steps: [N]
|
|
52
|
+
Total required fields: [N]
|
|
53
|
+
Total decisions: [N]
|
|
54
|
+
Estimated completion time: [X minutes]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Step 2: Identify Drop-Off Points
|
|
58
|
+
|
|
59
|
+
For each step, assess drop-off risk:
|
|
60
|
+
|
|
61
|
+
| Risk Factor | Score 1-5 | Notes |
|
|
62
|
+
|------------|-----------|-------|
|
|
63
|
+
| Too many fields | | More than 3 per step = high risk |
|
|
64
|
+
| Unclear value | | User doesn't know why this step matters |
|
|
65
|
+
| Unexpected ask | | Requesting info that feels premature |
|
|
66
|
+
| No progress signal | | User doesn't know how far along they are |
|
|
67
|
+
| Decision fatigue | | Too many choices without guidance |
|
|
68
|
+
| Trust gap | | Asking for sensitive info without context |
|
|
69
|
+
| Technical friction | | Slow load, validation errors, mobile issues |
|
|
70
|
+
|
|
71
|
+
### Step 3: Apply Friction Reduction
|
|
72
|
+
|
|
73
|
+
For each step, apply these principles:
|
|
74
|
+
|
|
75
|
+
#### Progressive Disclosure
|
|
76
|
+
- Ask for minimum info at each step
|
|
77
|
+
- Defer optional fields to later (post-signup settings)
|
|
78
|
+
- Start with the easiest, most natural question
|
|
79
|
+
- Example: Email only -> Name -> Company -> Role (not all at once)
|
|
80
|
+
|
|
81
|
+
#### Single-Field Starts
|
|
82
|
+
- First interaction should be ONE field or ONE click
|
|
83
|
+
- "Enter your email to get started" > 5-field signup form
|
|
84
|
+
- Google/GitHub OAuth as primary option, email form as secondary
|
|
85
|
+
|
|
86
|
+
#### Smart Defaults
|
|
87
|
+
- Pre-select the most common option
|
|
88
|
+
- Use detection (timezone, language, company size from email domain)
|
|
89
|
+
- Show recommended plan with visual emphasis
|
|
90
|
+
|
|
91
|
+
#### Motivation Maintenance
|
|
92
|
+
- Show progress (Step 2 of 4)
|
|
93
|
+
- Remind of value at each step ("You're 1 step away from [outcome]")
|
|
94
|
+
- Use micro-commitments (each step delivers a small win)
|
|
95
|
+
- Show social proof inline ("12,000 teams completed this step today")
|
|
96
|
+
|
|
97
|
+
#### Social Proof Injection Points
|
|
98
|
+
- Before payment: "Join [X] companies already using [Product]"
|
|
99
|
+
- During onboarding: "[Role] at [Company] set this up in 3 minutes"
|
|
100
|
+
- At upgrade prompt: "[X]% of free users upgrade within [Y] days"
|
|
101
|
+
|
|
102
|
+
#### Urgency Without Sleaze
|
|
103
|
+
- Real deadlines: "Trial ends in 7 days" (if true)
|
|
104
|
+
- Opportunity cost: "Teams using [feature] save [X] hours/week"
|
|
105
|
+
- Progress anchoring: "You've already set up [X] — unlock [Y] to get full value"
|
|
106
|
+
- Never: fake countdown timers, "only 2 left", manufactured scarcity
|
|
107
|
+
|
|
108
|
+
### Step 4: Redesign Each Step
|
|
109
|
+
|
|
110
|
+
For every step in the flow, output:
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
### Step [N]: [Name]
|
|
114
|
+
|
|
115
|
+
**Current State:**
|
|
116
|
+
- Headline: "[current]"
|
|
117
|
+
- Fields: [list]
|
|
118
|
+
- CTA: "[current]"
|
|
119
|
+
- Issues: [specific problems]
|
|
120
|
+
|
|
121
|
+
**Redesigned:**
|
|
122
|
+
- Headline: "[new — ties to value]"
|
|
123
|
+
- Fields: [reduced/reordered list]
|
|
124
|
+
- CTA: "[new — action + outcome]"
|
|
125
|
+
- Supporting copy: "[anxiety reducer or motivation booster]"
|
|
126
|
+
- Social proof: "[inline proof element]"
|
|
127
|
+
|
|
128
|
+
**Changes Made:**
|
|
129
|
+
1. [Specific change + reasoning]
|
|
130
|
+
2. [Specific change + reasoning]
|
|
131
|
+
|
|
132
|
+
**Expected Impact:** [Drop-off reduction estimate]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Step 5: A/B Test Suggestions
|
|
136
|
+
|
|
137
|
+
For each high-impact change, define a test:
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
## A/B Test: [Test Name]
|
|
141
|
+
|
|
142
|
+
**Hypothesis:** Changing [element] from [A] to [B] will increase [metric] by [X]% because [reasoning].
|
|
143
|
+
|
|
144
|
+
**Control:** [Current version]
|
|
145
|
+
**Variant:** [New version]
|
|
146
|
+
**Primary metric:** [Conversion rate at this step]
|
|
147
|
+
**Secondary metric:** [Overall flow completion rate]
|
|
148
|
+
**Sample size needed:** [Estimate based on current traffic]
|
|
149
|
+
**Duration:** [Minimum 2 weeks or X conversions]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Flow-Specific Patterns
|
|
153
|
+
|
|
154
|
+
### Signup Flow
|
|
155
|
+
- Goal: Minimize time-to-value
|
|
156
|
+
- Ideal: 1-2 steps max before product access
|
|
157
|
+
- Pattern: Email -> Magic link -> Product (skip password creation)
|
|
158
|
+
- Anti-pattern: Email -> Password -> Verify email -> Profile -> Team -> Product
|
|
159
|
+
|
|
160
|
+
### Onboarding Flow
|
|
161
|
+
- Goal: Reach "aha moment" fast
|
|
162
|
+
- Ideal: 3-5 steps, each delivering visible value
|
|
163
|
+
- Pattern: Welcome -> Import data OR use template -> See first result -> Invite team
|
|
164
|
+
- Anti-pattern: Long feature tour -> Settings configuration -> Empty state
|
|
165
|
+
|
|
166
|
+
### Trial-to-Paid Flow
|
|
167
|
+
- Goal: Demonstrate value before asking for money
|
|
168
|
+
- Ideal: Usage triggers upgrade prompt, not calendar
|
|
169
|
+
- Pattern: Hit feature limit -> See what you'd unlock -> One-click upgrade
|
|
170
|
+
- Anti-pattern: Day 13 email -> Pricing page -> Checkout -> Success
|
|
171
|
+
|
|
172
|
+
### Checkout Flow
|
|
173
|
+
- Goal: Reduce payment anxiety
|
|
174
|
+
- Ideal: 1-2 steps with full transparency
|
|
175
|
+
- Pattern: Plan summary -> Payment (with guarantees visible) -> Confirmation
|
|
176
|
+
- Anti-pattern: Plan -> Billing info -> Review -> Confirm -> Upsell -> Success
|
|
177
|
+
|
|
178
|
+
## Worked Example
|
|
179
|
+
|
|
180
|
+
**Before:** 8-step signup requiring name, email, password, company, role, team size, use case, phone
|
|
181
|
+
**After:** 3-step progressive flow:
|
|
182
|
+
1. Email only → instant access to limited features
|
|
183
|
+
2. After first value moment → ask name + role (contextualized: 'Help us personalize your experience')
|
|
184
|
+
3. After 3 sessions → ask company + team size (gated behind upgrade)
|
|
185
|
+
|
|
186
|
+
**Expected impact:** 40-60% improvement in signup completion rate. Progressive disclosure works because each ask feels justified by the value already delivered.
|
|
187
|
+
|
|
188
|
+
## Copy Templates Per Step
|
|
189
|
+
|
|
190
|
+
### First Touch (Signup)
|
|
191
|
+
- "Get started free — no credit card required"
|
|
192
|
+
- "Create your [product] in 60 seconds"
|
|
193
|
+
- "Join [X] [role]s already using [Product]"
|
|
194
|
+
|
|
195
|
+
### Mid-Flow (Onboarding Step)
|
|
196
|
+
- "Nice — you're [X]% set up"
|
|
197
|
+
- "Most [role]s complete this in under 2 minutes"
|
|
198
|
+
- "This step unlocks [specific feature/outcome]"
|
|
199
|
+
|
|
200
|
+
### Commitment Point (Payment/Upgrade)
|
|
201
|
+
- "You've already [achievement] — unlock [next level]"
|
|
202
|
+
- "Plans start at $[X]/mo. Cancel anytime."
|
|
203
|
+
- "[X]-day money-back guarantee. No questions asked."
|
|
204
|
+
|
|
205
|
+
### Completion
|
|
206
|
+
- "You're all set. Here's what to do first:"
|
|
207
|
+
- "[Product] is ready. Your first [outcome] is [X] away."
|
|
208
|
+
|
|
209
|
+
See `references/flow-benchmarks.md` for completion rate benchmarks by flow type, step-by-step drop-off patterns, mobile-specific data, and A/B test priorities. Use these to ground recommendations in real numbers.
|
|
210
|
+
|
|
211
|
+
## Output
|
|
212
|
+
|
|
213
|
+
Each flow audit produces:
|
|
214
|
+
- Visual flow map (current state with step count, fields, decisions)
|
|
215
|
+
- Drop-off risk assessment per step
|
|
216
|
+
- Redesigned copy and UX for each step
|
|
217
|
+
- Prioritized A/B test suggestions
|
|
218
|
+
- Before/after comparison of total flow friction score
|
|
219
|
+
- Implementation checklist ordered by impact
|
|
220
|
+
|
|
221
|
+
## Anti-Patterns
|
|
222
|
+
|
|
223
|
+
- Don't remove security steps (2FA, email verification) — flag them as necessary friction and suggest making them smoother, not removing them
|
|
224
|
+
- Don't skip legally required fields (KYC, age verification, GDPR consent) — these stay; optimize their placement and copy instead
|
|
225
|
+
- Don't simplify past compliance requirements — if a step exists for legal reasons, note it and move on
|
|
226
|
+
- Don't suggest removing steps without understanding the business logic behind them — ask first
|
|
227
|
+
- Don't use fake urgency (countdown timers, "only 2 left") — the "Urgency Without Sleaze" principles apply
|
|
228
|
+
- Don't optimize for signup completion at the expense of user quality — vanity signups that never activate are worse than fewer, engaged signups
|
|
229
|
+
|
|
230
|
+
## Edge Cases
|
|
231
|
+
|
|
232
|
+
- **Partial flow information:** Audit available steps, clearly flag gaps, and ask the user for the missing screens before finalizing recommendations.
|
|
233
|
+
- **Mobile vs. desktop divergence:** If the flow differs by platform, audit both. Mobile-specific issues: tap targets, keyboard types for input fields, thumb-zone CTA placement.
|
|
234
|
+
- **Legally required steps:** Mark as "required — optimize, don't remove." Focus copy and UX improvements within the constraint.
|
|
235
|
+
- **Enterprise/B2B flows:** Longer flows are acceptable when the buyer expects a consultative process. Don't force a consumer-style 2-step signup on an enterprise product.
|
|
236
|
+
|
|
237
|
+
## Quality Checks
|
|
238
|
+
|
|
239
|
+
- [ ] Total steps reduced or justified
|
|
240
|
+
- [ ] Every field has a clear reason to exist at that step
|
|
241
|
+
- [ ] Progress indicator present throughout
|
|
242
|
+
- [ ] Value reminder at each step
|
|
243
|
+
- [ ] Social proof placed at high-anxiety moments
|
|
244
|
+
- [ ] CTA copy is action + outcome, not generic
|
|
245
|
+
- [ ] Mobile experience considered for every step
|
|
246
|
+
- [ ] Error states are helpful, not punishing
|
|
247
|
+
- [ ] Security and compliance steps preserved (not removed)
|
|
248
|
+
- [ ] Copy rewrites match brand voice (if voice-profile.md exists)
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Flow Conversion Benchmarks & Patterns
|
|
2
|
+
|
|
3
|
+
Completion rates, drop-off patterns, and optimization benchmarks for multi-step conversion flows.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Flow Completion Rates by Type
|
|
8
|
+
|
|
9
|
+
### Signup Flows
|
|
10
|
+
|
|
11
|
+
| Flow Length | Typical Completion Rate | Notes |
|
|
12
|
+
|-------------|----------------------|-------|
|
|
13
|
+
| 1 step (email only) | 40-60% | Highest completion, lowest data capture |
|
|
14
|
+
| 2 steps (email + password) | 30-45% | Standard for most SaaS |
|
|
15
|
+
| 3 steps (email + profile + preferences) | 20-35% | Acceptable if each step shows value |
|
|
16
|
+
| 4+ steps | <20% | High risk — justify every step |
|
|
17
|
+
|
|
18
|
+
**Social login impact:** Adding Google/GitHub OAuth as primary option typically increases signup completion by 20-40% — it removes the password creation step entirely.
|
|
19
|
+
|
|
20
|
+
**Magic link vs. password:** Magic link signup (email only, click to verify) achieves 15-25% higher completion than email + password, because it eliminates the "create a secure password" friction point.
|
|
21
|
+
|
|
22
|
+
### Onboarding Flows
|
|
23
|
+
|
|
24
|
+
| Metric | Poor | Average | Good | Excellent |
|
|
25
|
+
|--------|------|---------|------|-----------|
|
|
26
|
+
| Completion rate | <30% | 30-50% | 50-70% | >70% |
|
|
27
|
+
| Time to complete | >10 min | 5-10 min | 3-5 min | <3 min |
|
|
28
|
+
| Steps to "aha moment" | 7+ | 5-6 | 3-4 | 1-2 |
|
|
29
|
+
|
|
30
|
+
**Onboarding patterns that work:**
|
|
31
|
+
- Template-first: Show a populated template, let user customize (Notion, Airtable)
|
|
32
|
+
- Quick win: Get the user to their first success in <2 minutes (Canva, Figma)
|
|
33
|
+
- Progressive: Ask for info only when the product needs it, not all upfront (Slack)
|
|
34
|
+
|
|
35
|
+
**Onboarding patterns that fail:**
|
|
36
|
+
- Feature tour: Showing every feature before the user can use any of them
|
|
37
|
+
- Empty state: Dropping the user into a blank workspace with no guidance
|
|
38
|
+
- Settings-first: Making the user configure preferences before seeing value
|
|
39
|
+
|
|
40
|
+
### Trial-to-Paid Flows
|
|
41
|
+
|
|
42
|
+
| Metric | Below Average | Average | Good | Best-in-Class |
|
|
43
|
+
|--------|--------------|---------|------|---------------|
|
|
44
|
+
| Trial-to-paid conversion | <5% | 5-15% | 15-25% | >25% |
|
|
45
|
+
| Opt-in trial (no card upfront) | 2-8% | 8-15% | 15-20% | >20% |
|
|
46
|
+
| Opt-out trial (card required upfront) | 25-40% | 40-55% | 55-70% | >70% |
|
|
47
|
+
|
|
48
|
+
**Opt-in vs. opt-out tradeoff:** Requiring a credit card at signup reduces trial signups by 50-70% but increases trial-to-paid conversion 3-5x. The right choice depends on whether your bottleneck is top-of-funnel volume or activation quality.
|
|
49
|
+
|
|
50
|
+
**Usage-triggered upgrades vs. calendar-based:**
|
|
51
|
+
- Usage-triggered ("You've hit your 5-project limit") converts 2-3x higher than calendar-triggered ("Your trial expires tomorrow")
|
|
52
|
+
- The user is more motivated to pay when they've experienced the value limit, not an arbitrary deadline
|
|
53
|
+
|
|
54
|
+
### Checkout Flows
|
|
55
|
+
|
|
56
|
+
| Flow Length | Typical Completion Rate |
|
|
57
|
+
|-------------|----------------------|
|
|
58
|
+
| 1-page checkout | 55-65% |
|
|
59
|
+
| 2-step checkout | 45-55% |
|
|
60
|
+
| 3+ step checkout | 30-45% |
|
|
61
|
+
|
|
62
|
+
**Cart abandonment benchmarks:** ~70% of e-commerce carts are abandoned. For SaaS checkout, ~40-60% abandon at the payment page.
|
|
63
|
+
|
|
64
|
+
**Top checkout abandonment reasons:**
|
|
65
|
+
1. Extra costs (shipping, tax, fees) — 48%
|
|
66
|
+
2. Account creation required — 24%
|
|
67
|
+
3. Too long/complicated — 17%
|
|
68
|
+
4. Couldn't calculate total cost upfront — 16%
|
|
69
|
+
5. Didn't trust site with card info — 13%
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step-by-Step Drop-Off Patterns
|
|
74
|
+
|
|
75
|
+
### Where People Drop Off Most
|
|
76
|
+
|
|
77
|
+
| Drop-Off Point | Why | Fix |
|
|
78
|
+
|----------------|-----|-----|
|
|
79
|
+
| First form field | Commitment anxiety — the first field is the hardest | Start with the easiest, lowest-friction field (email) |
|
|
80
|
+
| Password creation | Users hate creating passwords | Use magic links, social login, or passwordless |
|
|
81
|
+
| Payment info request | Trust gap — why do you need my card? | Show security badges, guarantee, explain clearly |
|
|
82
|
+
| Profile completion | "Why do you need this?" feeling | Explain the benefit of each field inline |
|
|
83
|
+
| Email verification | Leaves the flow (checks email, gets distracted) | Use magic links that auto-verify, or defer verification |
|
|
84
|
+
|
|
85
|
+
### The "Step 2 Cliff"
|
|
86
|
+
|
|
87
|
+
The biggest drop-off in any multi-step flow is between step 1 and step 2. After step 2, completion rates stabilize because the commitment-consistency bias kicks in — users who've invested effort are more likely to continue.
|
|
88
|
+
|
|
89
|
+
**Implication:** Make step 1 as frictionless as possible (single field, single click). The goal of step 1 is just to get the user to step 2. Once they're past step 2, the flow's gravity carries them forward.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Progress Indicator Benchmarks
|
|
94
|
+
|
|
95
|
+
| Type | Impact |
|
|
96
|
+
|------|--------|
|
|
97
|
+
| Step numbers ("Step 2 of 4") | +10-15% completion |
|
|
98
|
+
| Progress bar (visual fill) | +15-20% completion |
|
|
99
|
+
| Percentage ("75% complete") | +10-15% completion |
|
|
100
|
+
| Checklist style | +20-25% completion |
|
|
101
|
+
| No progress indicator | Baseline |
|
|
102
|
+
|
|
103
|
+
**Checklist-style progress** performs best because it creates a visible "to-do list" effect — the Zeigarnik effect makes people want to complete incomplete tasks. Show what's done (checked) and what's left (unchecked).
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Mobile Flow Benchmarks
|
|
108
|
+
|
|
109
|
+
| Metric | Desktop | Mobile | Gap |
|
|
110
|
+
|--------|---------|--------|-----|
|
|
111
|
+
| Flow completion rate | 45-55% | 25-35% | -20pp |
|
|
112
|
+
| Avg. time per step | 15-20s | 25-35s | +50-75% |
|
|
113
|
+
| Form abandonment | 25-35% | 40-55% | +15-20pp |
|
|
114
|
+
| Payment completion | 55-65% | 35-45% | -20pp |
|
|
115
|
+
|
|
116
|
+
**Mobile-specific optimizations:**
|
|
117
|
+
- Use number keyboards for phone/zip fields (inputmode="numeric")
|
|
118
|
+
- Larger tap targets (min 44x44px, ideally 48x48px)
|
|
119
|
+
- Autofill support for address and payment fields
|
|
120
|
+
- Sticky CTA buttons that stay visible during scroll
|
|
121
|
+
- Avoid dropdowns — use segmented controls or radio buttons for <5 options
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Social Proof Placement in Flows
|
|
126
|
+
|
|
127
|
+
| Placement | Impact | Best For |
|
|
128
|
+
|-----------|--------|----------|
|
|
129
|
+
| Before signup form | +10-20% signup rate | Building initial trust |
|
|
130
|
+
| During onboarding | +5-10% completion | Keeping momentum ("X people completed this step today") |
|
|
131
|
+
| Before payment | +15-25% payment rate | Reducing purchase anxiety |
|
|
132
|
+
| After trial expiry warning | +10-15% conversion | Reinforcing value during pressure |
|
|
133
|
+
|
|
134
|
+
**Context-specific proof works better than generic:** "Teams like yours" > "12,000 teams" > "Lots of people." The more specific to the user's situation, the more persuasive.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## A/B Test Priorities for Flows
|
|
139
|
+
|
|
140
|
+
Priority order by typical impact on flow completion:
|
|
141
|
+
1. **Reduce step count** — removing one step typically lifts completion 10-20%
|
|
142
|
+
2. **Add social login / magic link** — 20-40% lift on signup specifically
|
|
143
|
+
3. **Add progress indicator** — 10-25% lift across all flow types
|
|
144
|
+
4. **Rewrite step headlines** — 5-15% lift (value reminder at each step)
|
|
145
|
+
5. **Reduce fields per step** — 5-10% lift per field removed
|
|
146
|
+
6. **Add inline social proof** — 5-10% lift at high-anxiety steps
|
|
147
|
+
7. **Improve error handling** — 5-10% recovery (users who hit errors are 2x more likely to abandon)
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Using These Benchmarks
|
|
152
|
+
|
|
153
|
+
When auditing a flow:
|
|
154
|
+
- Compare current completion rates against the relevant flow type benchmarks
|
|
155
|
+
- Identify where the flow falls below average — those are the optimization targets
|
|
156
|
+
- Use the impact ranges to estimate expected lift from each recommendation
|
|
157
|
+
- Reference the "why" behind each benchmark so the user understands the psychology, not just the number
|
|
158
|
+
- Acknowledge that these are industry medians — specific results vary by product, audience, and traffic quality
|