@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
package/README.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Huckleberry
|
|
2
|
+
|
|
3
|
+
**Your own AI operations department — one command to install.**
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install -g @jairodri/huckleberry-cli
|
|
7
|
+
huckleberry install
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Huckleberry gives you a chief-of-staff AI team running on your own machine, wired to your own Discord, with persistent memory, 120+ professional skills, and a built-in repair agent that keeps the system alive.
|
|
11
|
+
|
|
12
|
+
## What You Get
|
|
13
|
+
|
|
14
|
+
| Component | What it does |
|
|
15
|
+
|---|---|
|
|
16
|
+
| **Chief of Staff (cos)** | Orchestrator agent — your main interface in Discord |
|
|
17
|
+
| **build / plan / researcher** | Worker agents: execution, strategy, web research |
|
|
18
|
+
| **Hermes (the doctor)** | System administrator — repairs the stack when it breaks, 24/7 watchdog included |
|
|
19
|
+
| **Inkstone** | Persistent memory: decisions, contacts, procedures, past failures — survives restarts |
|
|
20
|
+
| **Jev** | Judgment layer: fast, cheap structured decisions (classification, ranking, verification) |
|
|
21
|
+
| **Skill packs** | 120+ production skills: content, SEO, CRO, outreach, research, web design |
|
|
22
|
+
| **Self-improvement** | Weekly sweep proposes concrete improvements from the week's failures |
|
|
23
|
+
|
|
24
|
+
## Quick Start
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# 1. Install the system
|
|
28
|
+
npm install -g @jairodri/huckleberry-cli
|
|
29
|
+
huckleberry install
|
|
30
|
+
|
|
31
|
+
# 2. Install the runtime
|
|
32
|
+
npm install -g opencode kimaki
|
|
33
|
+
|
|
34
|
+
# 3. Personalize (name, business, tone, optional keys)
|
|
35
|
+
huckleberry interview
|
|
36
|
+
|
|
37
|
+
# 4. Add keys to ~/.huckleberry/.env (Discord bot token, Jev API key)
|
|
38
|
+
# Discord bot setup walkthrough: ~/.huckleberry/wiki/discord.md
|
|
39
|
+
|
|
40
|
+
# 5. Verify
|
|
41
|
+
huckleberry doctor
|
|
42
|
+
|
|
43
|
+
# 6. Start
|
|
44
|
+
opencode
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Commands
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
huckleberry install Full first-time install
|
|
51
|
+
huckleberry interview Personalize your agents
|
|
52
|
+
huckleberry doctor Health check — run when anything feels off
|
|
53
|
+
huckleberry packs List available skill packs
|
|
54
|
+
huckleberry install-pack <p> Deploy a pack (core, doctor, content, cro,
|
|
55
|
+
web-design, research, outreach-sales, social,
|
|
56
|
+
self-improvement, or all)
|
|
57
|
+
huckleberry cro <url> CRO audit of a landing page
|
|
58
|
+
huckleberry review Weekly self-improvement review (proposals only)
|
|
59
|
+
huckleberry update Update to the latest version
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Skill Packs
|
|
63
|
+
|
|
64
|
+
| Pack | Focus |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `core` | Memory, context management, formatting (installed by default) |
|
|
67
|
+
| `doctor` | Jev judgment skills + system repair (installed by default) |
|
|
68
|
+
| `content` | Copywriting, articles, hooks, brand voice, quality gates |
|
|
69
|
+
| `cro` | Landing page / form / popup / onboarding CRO, A/B tests, analytics |
|
|
70
|
+
| `web-design` | Design quality (impeccable), landing pages, SEO/AEO, programmatic SEO |
|
|
71
|
+
| `research` | Web research, SERP analysis, Reddit/X/YouTube intelligence |
|
|
72
|
+
| `outreach-sales` | Cold email, lead crafting, sequences, sales enablement |
|
|
73
|
+
| `social` | X posts, campaigns, image gen, marketing strategy |
|
|
74
|
+
| `self-improvement` | Skill optimization loops, auto-research, expertise building |
|
|
75
|
+
|
|
76
|
+
## Documentation
|
|
77
|
+
|
|
78
|
+
- https://huckleberry.ai
|
|
79
|
+
- Installed wiki: `~/.huckleberry/wiki/` — kimaki, Discord bot setup, opencode, Inkstone, Hermes the doctor
|
|
80
|
+
|
|
81
|
+
## Philosophy
|
|
82
|
+
|
|
83
|
+
Your AI department runs on **your** machine, with **your** keys, answering in **your** channels. Nothing is rented. When it breaks, the system repairs itself — and shows its work.
|
|
84
|
+
|
|
85
|
+
MIT licensed.
|
package/agents/cos.json
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cos",
|
|
3
3
|
"description": "Chief of Staff — orchestrator, not worker. Bound to main Discord channel.",
|
|
4
|
-
"model": "omniroute/combo/freellmapi smart models",
|
|
5
4
|
"mode": "primary",
|
|
6
5
|
"instructions": [
|
|
7
6
|
"~/.huckleberry/AGENTS.md",
|
|
8
7
|
"~/.huckleberry/SOUL.md",
|
|
9
8
|
"~/.huckleberry/COS_PROTOCOLS.md",
|
|
10
|
-
"~/.huckleberry/HEARTBEAT.md"
|
|
11
|
-
"~/.huckleberry/EXECUTIVE-MODE.md"
|
|
9
|
+
"~/.huckleberry/HEARTBEAT.md"
|
|
12
10
|
],
|
|
13
11
|
"tools": [
|
|
14
12
|
"load-business-context",
|
|
15
13
|
"list-business-files",
|
|
16
14
|
"inkstone_memory_search",
|
|
17
|
-
"inkstone_memory_write"
|
|
18
|
-
"inkstone_memory_failures"
|
|
15
|
+
"inkstone_memory_write"
|
|
19
16
|
]
|
|
20
17
|
}
|
package/agents/hermes/AGENTS.md
CHANGED
|
@@ -1,62 +1,38 @@
|
|
|
1
|
-
# AGENTS.md — Hermes Fixer Rules
|
|
1
|
+
# AGENTS.md — Hermes Fixer Rules (Huckleberry System Administrator)
|
|
2
|
+
|
|
3
|
+
## Bootstrap Context Files (MANDATORY)
|
|
4
|
+
At session start, read these before doing any work (they exist in every Huckleberry install):
|
|
5
|
+
1. `~/.huckleberry/agents/hermes/SOUL.md` — who you are, boundaries, communication style
|
|
6
|
+
2. `~/.huckleberry/agents/hermes/hermes-fixer.md` — fixer protocol and step-by-step procedures
|
|
7
|
+
3. `~/.huckleberry/wiki/kimaki.md` — kimaki architecture, commands, common issues
|
|
8
|
+
4. `~/.huckleberry/wiki/discord.md` — Discord bot setup, permissions, troubleshooting
|
|
9
|
+
5. `~/.huckleberry/wiki/opencode.md` — opencode config, plugins, MCP servers
|
|
10
|
+
6. `~/.huckleberry/wiki/inkstone.md` — Inkstone memory system
|
|
11
|
+
|
|
12
|
+
Never claim context you don't have, and never skip the bootstrap reads.
|
|
2
13
|
|
|
3
14
|
## Before You Fix
|
|
4
|
-
Read the relevant wiki docs first
|
|
5
|
-
1. `~/.huckleberry/wiki/kimaki.md` — kimaki architecture, commands, common issues
|
|
6
|
-
2. `~/.huckleberry/wiki/discord.md` — Discord bot setup, permissions, troubleshooting
|
|
7
|
-
3. `~/.huckleberry/wiki/opencode.md` — opencode config, plugins, MCP servers
|
|
8
|
-
4. `~/.huckleberry/wiki/inkstone.md` — Inkstone memory system, dream cycle
|
|
9
|
-
5. `~/.huckleberry/hermes-fixer.md` — fixer protocol and step-by-step procedures
|
|
15
|
+
Read the relevant wiki docs first (paths above). Then run the diagnostic.
|
|
10
16
|
|
|
11
17
|
## Diagnostic First
|
|
12
|
-
Always run a full diagnostic before fixing:
|
|
18
|
+
Always run a full diagnostic before fixing (also available non-interactively via `huckleberry doctor`):
|
|
13
19
|
```bash
|
|
14
20
|
echo "=== Node ===" && node --version 2>&1 || echo "MISSING"
|
|
15
21
|
echo "=== npm ===" && npm --version 2>&1 || echo "MISSING"
|
|
16
22
|
echo "=== opencode ===" && opencode --version 2>&1 || echo "MISSING"
|
|
17
|
-
echo "=== kimaki ===" && kimaki --version 2>&1 || echo "MISSING"
|
|
18
|
-
echo "=== Inkstone ===" && ls ~/.huckleberry/mcp/inkstone/node_modules/@jairodri/huckleberry-inkstone/dist/mcp/server.js 2>&1
|
|
19
|
-
echo "===
|
|
23
|
+
echo "=== kimaki ===" && (kimaki --version 2>&1 || echo "MISSING")
|
|
24
|
+
echo "=== Inkstone server ===" && ls ~/.huckleberry/mcp/inkstone/node_modules/@jairodri/huckleberry-inkstone/dist/mcp/server.js 2>&1 || echo "MISSING"
|
|
25
|
+
echo "=== Jev MCP ===" && ls ~/.huckleberry/mcp/jev-mcp/node_modules/@jkudish/jev-mcp/dist/index.js 2>&1 || echo "MISSING"
|
|
26
|
+
echo "=== opencode config ===" && node -e "try{JSON.parse(require('fs').readFileSync(require('os').homedir()+'/.opencode/opencode.json','utf8'));console.log('VALID')}catch(e){console.log('INVALID:',e.message)}"
|
|
20
27
|
echo "=== Processes ===" && ps aux | grep -E "opencode|kimaki|inkstone" | grep -v grep
|
|
21
28
|
echo "=== Disk ===" && df -h ~ | tail -1
|
|
22
|
-
echo "=== Env ===" && grep -
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Fix One Thing at a Time
|
|
26
|
-
1. Run diagnostic → identify all issues
|
|
27
|
-
2. Fix the most fundamental issue first (e.g., Node.js before kimaki)
|
|
28
|
-
3. Verify after each fix
|
|
29
|
-
4. Run full diagnostic again after all fixes
|
|
30
|
-
|
|
31
|
-
## For Each Fix
|
|
32
|
-
1. Read the relevant wiki page for the component
|
|
33
|
-
2. Follow the fix procedure in the wiki
|
|
34
|
-
3. Verify the fix works
|
|
35
|
-
4. Move to the next issue
|
|
36
|
-
|
|
37
|
-
## Use Context7
|
|
38
|
-
When you need to look up documentation:
|
|
39
|
-
```bash
|
|
40
|
-
context7_search("$TOOL_NAME", "how to $ACTION")
|
|
29
|
+
echo "=== Env (keys only) ===" && grep -E "^[A-Z_]+=" ~/.huckleberry/.env 2>/dev/null | cut -d= -f1
|
|
41
30
|
```
|
|
42
|
-
|
|
31
|
+
Never print secret values — show key NAMES only.
|
|
43
32
|
|
|
44
|
-
##
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
- Suggest specific action the user can take (e.g., "regenerate the Discord token in the Developer Portal")
|
|
33
|
+
## Model Routing Notes
|
|
34
|
+
- Agents inherit the user's configured default model unless a specific model is set in `~/.opencode/opencode.json`.
|
|
35
|
+
- If a model route returns 401/404/410 repeatedly, tell the user which provider/key to check — do not silently rewrite their provider config.
|
|
48
36
|
|
|
49
|
-
##
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
✅ Fix complete:
|
|
53
|
-
• Found: [root cause]
|
|
54
|
-
• Fixed: [what was done]
|
|
55
|
-
• Verified: [how tested]
|
|
56
|
-
|
|
57
|
-
Current system status:
|
|
58
|
-
- opencode: [version] ✓
|
|
59
|
-
- kimaki: [version] ✓/✗
|
|
60
|
-
- Inkstone DB: [size] ✓
|
|
61
|
-
- Discord bot: [online/offline] ✓/✗
|
|
62
|
-
```
|
|
37
|
+
## Escalation
|
|
38
|
+
If you're stuck after 3 real attempts: report what you tried, the exact error of each attempt, and your recommended next step. Never guess credentials, IDs, or URLs.
|
|
@@ -1,100 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fix-kimaki
|
|
3
|
-
description:
|
|
4
|
-
Diagnose and repair kimaki (Discord bridge) issues. Use when kimaki is not
|
|
5
|
-
responding, sessions won't spawn, bot is offline, or Discord integration fails.
|
|
6
|
-
Also use when the user says "fix kimaki", "kimaki is down", "bot not working", etc.
|
|
7
|
-
version: 1.0.0
|
|
3
|
+
description: Use when the kimaki Discord bot is down, not responding, sessions won't spawn, or Discord integration fails. Also use when the user says "fix kimaki", "kimaki is down", "bot not working", etc.
|
|
8
4
|
---
|
|
9
5
|
|
|
10
|
-
# Fix Kimaki —
|
|
6
|
+
# Fix Kimaki — Huckleberry System Repair
|
|
11
7
|
|
|
12
|
-
|
|
13
|
-
Load these references before fixing:
|
|
14
|
-
- `~/.huckleberry/wiki/kimaki.md` — kimaki architecture, commands, common issues
|
|
15
|
-
- `~/.huckleberry/wiki/discord.md` — Discord bot setup, permissions, fixes
|
|
16
|
-
- `~/.huckleberry/agents/hermes/hermes-fixer.md` — comprehensive fixer protocol
|
|
8
|
+
Diagnose first, fix second, verify third. Full procedures live in `~/.huckleberry/agents/hermes/hermes-fixer.md` — read it before acting.
|
|
17
9
|
|
|
18
|
-
##
|
|
19
|
-
Run the
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
echo "=== kimaki version ===" && kimaki --version 2>&1 || echo "NOT FOUND"
|
|
25
|
-
echo "=== kimaki logs (last 20) ===" && tail -20 ~/.kimaki/kimaki.log 2>&1 || echo "No logs"
|
|
26
|
-
echo "=== token ===" && grep DISCORD_BOT_TOKEN ~/.huckleberry/.env 2>/dev/null | head -1
|
|
27
|
-
echo "=== node_modules ===" && ls ~/.kimaki/node_modules/.package-lock.json 2>&1 || echo "Maybe global install"
|
|
28
|
-
```
|
|
10
|
+
## Quick Path
|
|
11
|
+
1. Run `huckleberry doctor` (non-interactive diagnostic) — or the manual diagnostic block in hermes-fixer.md
|
|
12
|
+
2. Read `~/.huckleberry/wiki/kimaki.md` + `~/.huckleberry/wiki/discord.md` for the failing area
|
|
13
|
+
3. Apply the matching fix procedure (bot down / sessions / token 401 / intents)
|
|
14
|
+
4. Verify live: process up, `kimaki send` ping lands in Discord, log tail clean
|
|
15
|
+
5. Report: what broke, root cause, what you changed, proof it works
|
|
29
16
|
|
|
30
|
-
##
|
|
17
|
+
## Key Facts
|
|
18
|
+
- kimaki config/logs: `~/.kimaki/` (log: `~/.kimaki/kimaki.log`)
|
|
19
|
+
- Discord token: `DISCORD_BOT_TOKEN` in `~/.huckleberry/.env` (never print values)
|
|
20
|
+
- opencode config: `~/.opencode/opencode.json` (must parse as valid JSON)
|
|
21
|
+
- Inkstone MCP: `~/.huckleberry/mcp/inkstone/` · Jev MCP: `~/.huckleberry/mcp/jev-mcp/`
|
|
22
|
+
- macOS services: `launchctl list | grep huckleberry`
|
|
31
23
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### "Bot not responding" — process dead
|
|
38
|
-
```bash
|
|
39
|
-
# Start kimaki
|
|
40
|
-
cd ~/.kimaki && bash start-kimaki.sh
|
|
41
|
-
sleep 5
|
|
42
|
-
# Check it's running
|
|
43
|
-
ps aux | grep kimaki | grep -v grep
|
|
44
|
-
# Check logs
|
|
45
|
-
tail -20 ~/.kimaki/kimaki.log
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### "Bot not responding" — process running but not connecting
|
|
49
|
-
```bash
|
|
50
|
-
# Check logs for errors
|
|
51
|
-
tail -50 ~/.kimaki/kimaki.log
|
|
52
|
-
# Check for 401/Unauthorized → token issue
|
|
53
|
-
# Check for rate limits → wait 5 min
|
|
54
|
-
# Check for connection refused → Discord API down?
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### "401 Unauthorized" in logs
|
|
58
|
-
Token is invalid or expired:
|
|
59
|
-
1. User needs to go to https://discord.com/developers/applications
|
|
60
|
-
2. Select the bot application
|
|
61
|
-
3. Bot → Reset Token → copy new token
|
|
62
|
-
4. Update `~/.huckleberry/.env`: `DISCORD_BOT_TOKEN=newtoken`
|
|
63
|
-
5. Restart: `killall node && sleep 2 && cd ~/.kimaki && bash start-kimaki.sh`
|
|
64
|
-
|
|
65
|
-
### "Sessions not spawning"
|
|
66
|
-
```bash
|
|
67
|
-
# Check opencode config is valid
|
|
68
|
-
node -e "JSON.parse(require('fs').readFileSync('$HOME/.opencode/opencode.json','utf8'))" && echo "Config valid"
|
|
69
|
-
# Check opencode is the right version
|
|
70
|
-
opencode --version
|
|
71
|
-
# Check agent names exist in config
|
|
72
|
-
grep -A2 '"agent"' ~/.opencode/opencode.json | head -20
|
|
73
|
-
# Test a direct spawn
|
|
74
|
-
kimaki send --channel ID --prompt 'ping' --agent build
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### "Can't see messages in channel"
|
|
78
|
-
Bot lacks permissions:
|
|
79
|
-
1. Check bot has Read Messages + Send Messages in channel
|
|
80
|
-
2. Check Message Content Intent is ON in Discord Developer Portal
|
|
81
|
-
3. Check server permissions → bot role may be restricted
|
|
82
|
-
|
|
83
|
-
### "Privileged Gateway Intent" errors
|
|
84
|
-
User needs to enable in Discord Developer Portal:
|
|
85
|
-
1. Go to https://discord.com/developers/applications
|
|
86
|
-
2. Select app → Bot
|
|
87
|
-
3. Enable "Message Content Intent"
|
|
88
|
-
4. Enable "Server Members Intent" (for user lookups)
|
|
89
|
-
5. Save → restart kimaki
|
|
90
|
-
|
|
91
|
-
### "Rate limited" / 429 errors
|
|
92
|
-
Too many requests. Wait 5 minutes, then reduce spawn frequency.
|
|
93
|
-
|
|
94
|
-
## Step 4: Verify
|
|
95
|
-
```bash
|
|
96
|
-
# Test connection
|
|
97
|
-
kimaki session list --json 2>&1 | head -5
|
|
98
|
-
# Send a test ping
|
|
99
|
-
kimaki send --channel ID --prompt 'hello from Hermes — system test' --agent build
|
|
100
|
-
```
|
|
24
|
+
## Hard Rules
|
|
25
|
+
- Never print secret values — key names only
|
|
26
|
+
- Never delete the Inkstone DB
|
|
27
|
+
- Verify every fix with a live test before reporting done
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
# Hermes
|
|
1
|
+
# Hermes Fixer Protocol
|
|
2
2
|
|
|
3
3
|
## DIAGNOSTIC (run first — always)
|
|
4
|
+
Non-interactive option: `huckleberry doctor` (prints the same checks).
|
|
5
|
+
Manual diagnostic:
|
|
4
6
|
```bash
|
|
5
7
|
echo "=== Node ===" && node --version 2>&1 || echo "MISSING"
|
|
6
8
|
echo "=== npm ===" && npm --version 2>&1 || echo "MISSING"
|
|
7
9
|
echo "=== opencode ===" && opencode --version 2>&1 || echo "MISSING"
|
|
8
|
-
echo "=== kimaki ===" && kimaki --version 2>&1 || echo "MISSING"
|
|
9
|
-
echo "=== Inkstone ===" && ls ~/.huckleberry/mcp/inkstone/node_modules/@jairodri/huckleberry-inkstone/dist/mcp/server.js 2>&1
|
|
10
|
-
echo "===
|
|
10
|
+
echo "=== kimaki ===" && (command -v kimaki >/dev/null && kimaki --version 2>&1 || echo "MISSING")
|
|
11
|
+
echo "=== Inkstone ===" && ls ~/.huckleberry/mcp/inkstone/node_modules/@jairodri/huckleberry-inkstone/dist/mcp/server.js 2>&1 || echo "MISSING"
|
|
12
|
+
echo "=== Jev ===" && ls ~/.huckleberry/mcp/jev-mcp/node_modules/@jkudish/jev-mcp/dist/index.js 2>&1 || echo "MISSING"
|
|
13
|
+
echo "=== opencode config ===" && node -e "try{JSON.parse(require('fs').readFileSync(require('os').homedir()+'/.opencode/opencode.json','utf8'));console.log('VALID')}catch(e){console.log('INVALID:',e.message)}"
|
|
11
14
|
echo "=== Processes ===" && ps aux | grep -E "opencode|kimaki|inkstone" | grep -v grep
|
|
12
15
|
echo "=== Disk ===" && df -h ~ | tail -1
|
|
13
|
-
echo "=== Env ===" && grep -
|
|
16
|
+
echo "=== Env key names (never values) ===" && grep -E "^[A-Z_]+=" ~/.huckleberry/.env 2>/dev/null | cut -d= -f1
|
|
14
17
|
```
|
|
15
18
|
|
|
16
19
|
## Fix Procedures
|
|
@@ -20,7 +23,7 @@ echo "=== Env ===" && grep -v "^#" ~/.huckleberry/.env 2>/dev/null | head -5
|
|
|
20
23
|
|
|
21
24
|
**Bot not responding:**
|
|
22
25
|
1. Check process: `ps aux | grep kimaki | grep -v grep`
|
|
23
|
-
2. If dead:
|
|
26
|
+
2. If dead: restart per wiki (kimaki runs as a service — check `launchctl list | grep huckleberry` on macOS, or the systemd unit on Linux)
|
|
24
27
|
3. Wait 10s, check again
|
|
25
28
|
4. Read wiki: Section "Common Issues > Bot Not Responding"
|
|
26
29
|
5. Logs: `tail -50 ~/.kimaki/kimaki.log`
|
|
@@ -28,88 +31,55 @@ echo "=== Env ===" && grep -v "^#" ~/.huckleberry/.env 2>/dev/null | head -5
|
|
|
28
31
|
**Sessions not spawning:**
|
|
29
32
|
1. Read wiki: Section "Common Issues > Sessions Not Starting"
|
|
30
33
|
2. Validate opencode: `opencode --version`
|
|
31
|
-
3. Check agent names in opencode.json match what's being spawned
|
|
34
|
+
3. Check agent names in `~/.opencode/opencode.json` match what's being spawned
|
|
32
35
|
4. Test: `kimaki send --channel <id> --prompt 'ping' --agent build`
|
|
33
36
|
|
|
34
37
|
**Token expired (401 errors):**
|
|
35
38
|
1. Read wiki: Section "Bot Setup (One-Time)"
|
|
36
|
-
2. Read discord.md
|
|
37
|
-
3. User
|
|
38
|
-
4. Update `~/.huckleberry/.env`
|
|
39
|
-
5. Restart kimaki
|
|
39
|
+
2. Read `~/.huckleberry/wiki/discord.md`: Section "Common Issues > Bot Not Online"
|
|
40
|
+
3. User regenerates the token in the Discord Developer Portal
|
|
41
|
+
4. Update `~/.huckleberry/.env` (`DISCORD_BOT_TOKEN=...`)
|
|
42
|
+
5. Restart the kimaki service
|
|
40
43
|
|
|
41
44
|
### Discord Bot Fixes
|
|
42
45
|
**Reference:** `~/.huckleberry/wiki/discord.md`
|
|
43
46
|
|
|
44
47
|
**Bot not online:**
|
|
45
|
-
1. Check
|
|
46
|
-
2.
|
|
47
|
-
3.
|
|
48
|
-
4. Read discord.md: "Bot Setup" for OAuth2 flow
|
|
49
|
-
5. After token update: `killall node && kimaki start`
|
|
48
|
+
1. Check that `DISCORD_BOT_TOKEN` exists in `~/.huckleberry/.env` (name only — never print the value)
|
|
49
|
+
2. If token invalid: user regenerates in Discord Developer Portal
|
|
50
|
+
3. After token update: restart the kimaki service
|
|
50
51
|
|
|
51
52
|
**Bot can't see messages:**
|
|
52
|
-
1.
|
|
53
|
-
2. Check
|
|
54
|
-
3. Check
|
|
55
|
-
4. Check server permissions override
|
|
53
|
+
1. Check Message Content Intent in Discord Developer Portal
|
|
54
|
+
2. Check channel permissions
|
|
55
|
+
3. Check server permissions override
|
|
56
56
|
|
|
57
57
|
**Bot joined wrong server:**
|
|
58
58
|
1. Read wiki: Section "Adding to Existing Server"
|
|
59
59
|
2. Regenerate OAuth2 URL
|
|
60
60
|
3. Remove bot from old server
|
|
61
|
-
4. Re-add via new URL
|
|
62
61
|
|
|
63
|
-
### opencode Fixes
|
|
64
|
-
**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
**
|
|
70
|
-
1.
|
|
71
|
-
2.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
3. This is normal behavior, not a bug
|
|
88
|
-
|
|
89
|
-
**MCP server not starting:**
|
|
90
|
-
1. Read wiki: Section "Common Issues > MCP Server Won't Start"
|
|
91
|
-
2. Check Node.js: `node --version`
|
|
92
|
-
3. Check server file exists
|
|
93
|
-
4. Run manually: `node ~/.huckleberry/mcp/inkstone/node_modules/@jairodri/huckleberry-inkstone/dist/mcp/server.js`
|
|
94
|
-
5. If missing node_modules: `cd ~/.huckleberry/mcp/inkstone && npm install`
|
|
95
|
-
|
|
96
|
-
**Database corrupt:**
|
|
97
|
-
1. Read wiki: Section "Common Issues > Database Corruption"
|
|
98
|
-
2. Check: `inkstone status`
|
|
99
|
-
3. Restore from backup if available
|
|
100
|
-
4. Reinitialize if no backup
|
|
101
|
-
|
|
102
|
-
## Final Verification
|
|
103
|
-
After all fixes, report:
|
|
104
|
-
```
|
|
105
|
-
✅ Fix complete:
|
|
106
|
-
• Found: [root cause]
|
|
107
|
-
• Fixed: [what was done]
|
|
108
|
-
• Verified: [how tested]
|
|
109
|
-
|
|
110
|
-
Status:
|
|
111
|
-
- opencode: [version] ✓
|
|
112
|
-
- kimaki: [version] ✓
|
|
113
|
-
- Inkstone DB: [size] ✓
|
|
114
|
-
- Discord bot: [online/offline]
|
|
115
|
-
```
|
|
62
|
+
### opencode / MCP Fixes
|
|
63
|
+
**Config invalid JSON:**
|
|
64
|
+
1. `node -e "JSON.parse(require('fs').readFileSync(require('os').homedir()+'/.opencode/opencode.json'))"` prints the parse error
|
|
65
|
+
2. Fix the syntax error (most common: trailing comma)
|
|
66
|
+
3. Restart the session
|
|
67
|
+
|
|
68
|
+
**Inkstone MCP missing:**
|
|
69
|
+
1. `cd ~/.huckleberry/mcp/inkstone && npm install`
|
|
70
|
+
2. Verify the server file exists (path in diagnostic above)
|
|
71
|
+
|
|
72
|
+
**Jev MCP missing:**
|
|
73
|
+
1. `cd ~/.huckleberry/mcp/jev-mcp && npm install`
|
|
74
|
+
2. If 401 from the API: `TYPESAFE_API_KEY` in `~/.huckleberry/.env` is missing/expired — user gets one at typesafe.ai
|
|
75
|
+
|
|
76
|
+
### Memory & Session Fixes
|
|
77
|
+
- Inkstone DB: `~/.huckleberry/inkstone.db` — never delete; back up before bulk ops
|
|
78
|
+
- Session logs: `~/.local/share/opencode/` — check size if disk is full
|
|
79
|
+
|
|
80
|
+
## Rules
|
|
81
|
+
- Fix the root cause, not the symptom
|
|
82
|
+
- Verify every fix with a concrete test (run the thing, don't assume)
|
|
83
|
+
- Never print secret values; show key names only
|
|
84
|
+
- If the fix requires user action (portal clicks, new tokens), give exact numbered steps
|
|
85
|
+
- Escalate after 3 real failed attempts with: what you tried, exact errors, recommended next step
|
package/agents/hermes.json
CHANGED
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hermes",
|
|
3
3
|
"description": "System administrator — fixes the Huckleberry stack when it breaks.",
|
|
4
|
-
"
|
|
5
|
-
"instructions": [
|
|
6
|
-
"~/.huckleberry/agents/hermes/AGENTS.md",
|
|
7
|
-
"~/.huckleberry/agents/hermes/SOUL.md",
|
|
8
|
-
"~/.huckleberry/agents/hermes/hermes-fixer.md",
|
|
9
|
-
"~/.huckleberry/wiki/kimaki.md",
|
|
10
|
-
"~/.huckleberry/wiki/discord.md",
|
|
11
|
-
"~/.huckleberry/wiki/opencode.md",
|
|
12
|
-
"~/.huckleberry/wiki/inkstone.md"
|
|
13
|
-
],
|
|
4
|
+
"prompt": "You are Hermes, the Huckleberry system administrator. At session start, BEFORE any work, read: ~/.huckleberry/agents/hermes/SOUL.md, ~/.huckleberry/agents/hermes/AGENTS.md, ~/.huckleberry/agents/hermes/hermes-fixer.md, and the wiki files in ~/.huckleberry/wiki/ (kimaki.md, discord.md, opencode.md, inkstone.md, doctor.md). When something breaks: diagnose first (or run `huckleberry doctor`), fix the root cause, verify every fix with a live test, and never print secret values. Escalate after 3 real failed attempts with what you tried, exact errors, and your recommended next step.",
|
|
14
5
|
"skills": [
|
|
15
|
-
"
|
|
6
|
+
"fix-kimaki"
|
|
16
7
|
],
|
|
17
8
|
"mcp": [
|
|
18
|
-
"context7"
|
|
19
|
-
"inkstone"
|
|
9
|
+
"context7"
|
|
20
10
|
],
|
|
21
|
-
"tools":
|
|
22
|
-
"context7_query-docs"
|
|
23
|
-
|
|
24
|
-
"inkstone_memory_failures"
|
|
25
|
-
]
|
|
11
|
+
"tools": {
|
|
12
|
+
"context7_query-docs": true
|
|
13
|
+
}
|
|
26
14
|
}
|
package/kanban/SKILL.md
CHANGED
|
@@ -31,13 +31,13 @@ Use this skill when:
|
|
|
31
31
|
5. Complete the task:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
bun /
|
|
34
|
+
bun ~/.huckleberry/kanban/src/cli.mjs complete "$KIMAKI_KANBAN_TASK" --summary "Completed: <what changed>"
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
5. If you are blocked:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
bun /
|
|
40
|
+
bun ~/.huckleberry/kanban/src/cli.mjs block "$KIMAKI_KANBAN_TASK" --reason "Need human input: <specific question>"
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Workflow Templates
|
|
@@ -47,8 +47,8 @@ The kanban system supports brand-agnostic workflow templates. These are YAML fil
|
|
|
47
47
|
### Listing Templates
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
bun /
|
|
51
|
-
bun /
|
|
50
|
+
bun ~/.huckleberry/kanban/src/cli.mjs templates
|
|
51
|
+
bun ~/.huckleberry/kanban/src/cli.mjs templates --details
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### Stamping a Template for a Brand
|
|
@@ -57,7 +57,7 @@ See **CLI Reference** below for full syntax.
|
|
|
57
57
|
|
|
58
58
|
## CLI Reference
|
|
59
59
|
|
|
60
|
-
All commands: `bun /
|
|
60
|
+
All commands: `bun ~/.huckleberry/kanban/src/cli.mjs <command> [options]`
|
|
61
61
|
|
|
62
62
|
Common flags: `--db <path>` (default: `kanban.db` in cwd)
|
|
63
63
|
|
|
@@ -65,29 +65,29 @@ Common flags: `--db <path>` (default: `kanban.db` in cwd)
|
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
67
|
# Create a task
|
|
68
|
-
cli.mjs create "Task title" --tenant <business> --project <project> --assignee <agent> --skills skill1,skill2
|
|
68
|
+
~/.huckleberry/kanban/src/cli.mjs create "Task title" --tenant <business> --project <project> --assignee <agent> --skills skill1,skill2
|
|
69
69
|
|
|
70
70
|
# List tasks (supports all filters)
|
|
71
|
-
cli.mjs list [--tenant <business>] [--project <project>] [--status ready|todo|in_progress|done|blocked] [--assignee <agent>] [--limit N]
|
|
71
|
+
~/.huckleberry/kanban/src/cli.mjs list [--tenant <business>] [--project <project>] [--status ready|todo|in_progress|done|blocked] [--assignee <agent>] [--limit N]
|
|
72
72
|
|
|
73
73
|
# Show task details
|
|
74
|
-
cli.mjs show <task_id>
|
|
74
|
+
~/.huckleberry/kanban/src/cli.mjs show <task_id>
|
|
75
75
|
|
|
76
76
|
# Complete a task
|
|
77
|
-
cli.mjs complete <task_id> --summary "What was done"
|
|
77
|
+
~/.huckleberry/kanban/src/cli.mjs complete <task_id> --summary "What was done"
|
|
78
78
|
|
|
79
79
|
# Block a task
|
|
80
|
-
cli.mjs block <task_id> --reason "Why blocked"
|
|
80
|
+
~/.huckleberry/kanban/src/cli.mjs block <task_id> --reason "Why blocked"
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
### Templates
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
86
|
# List available templates
|
|
87
|
-
cli.mjs templates [--details]
|
|
87
|
+
~/.huckleberry/kanban/src/cli.mjs templates [--details]
|
|
88
88
|
|
|
89
89
|
# Stamp a template (creates all tasks in the DAG)
|
|
90
|
-
cli.mjs stamp <template-name> \
|
|
90
|
+
~/.huckleberry/kanban/src/cli.mjs stamp <template-name> \
|
|
91
91
|
--var topic="solar chargers" \
|
|
92
92
|
--var tenant=nomadixgear \
|
|
93
93
|
--project seo-hub-spoke
|
|
@@ -99,17 +99,17 @@ The `--project` flag groups tasks within a tenant by project. Use it on `create`
|
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
101
|
# Create with project
|
|
102
|
-
cli.mjs create "Build hub pages" --tenant enchantents --project seo-hub-spoke
|
|
102
|
+
~/.huckleberry/kanban/src/cli.mjs create "Build hub pages" --tenant enchantents --project seo-hub-spoke
|
|
103
103
|
|
|
104
104
|
# List only tasks for a specific project
|
|
105
|
-
cli.mjs list --tenant enchantents --project seo-hub-spoke
|
|
105
|
+
~/.huckleberry/kanban/src/cli.mjs list --tenant enchantents --project seo-hub-spoke
|
|
106
106
|
|
|
107
107
|
# Stamp with project (all tasks in the DAG inherit it)
|
|
108
|
-
cli.mjs stamp blog-social-campaign --var topic="solar chargers" --var tenant=enchantents --project seo-hub-spoke
|
|
108
|
+
~/.huckleberry/kanban/src/cli.mjs stamp blog-social-campaign --var topic="solar chargers" --var tenant=enchantents --var content_tier=commodity --var digital_brain_delta="one line: what this piece adds to the brand's digital brain" --project seo-hub-spoke
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
Available templates:
|
|
112
|
-
- `blog-social-campaign` — Research (keywords + Reddit + PAA) → AEO triplet publish → multi-platform distribution (
|
|
112
|
+
- `blog-social-campaign` — Research (keywords + Reddit + PAA) → AEO triplet publish → multi-platform distribution (15 tasks, requires content_tier + digital_brain_delta)
|
|
113
113
|
- `ai-visibility-sprint` — AI citation audit → gap analysis → content overhaul → distribute → tracking setup (5 tasks)
|
|
114
114
|
- `product-launch` — Position → assets → listing + announce (4 tasks)
|
|
115
115
|
- `b2b-outreach` — Scrape → research → emails → send (4 tasks)
|
|
@@ -117,7 +117,7 @@ Available templates:
|
|
|
117
117
|
|
|
118
118
|
### Building a New Template
|
|
119
119
|
|
|
120
|
-
Create a YAML file in
|
|
120
|
+
Create a YAML file in `~/.huckleberry/kanban/templates/`:
|
|
121
121
|
|
|
122
122
|
```yaml
|
|
123
123
|
name: My Workflow
|
|
@@ -148,7 +148,7 @@ tasks:
|
|
|
148
148
|
Write about {{topic}} using step1 results.
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
Run `bun /
|
|
151
|
+
Run `bun ~/.huckleberry/kanban/src/cli.mjs stamp-help` for the full agent guide.
|
|
152
152
|
|
|
153
153
|
## Human Gates
|
|
154
154
|
|
package/kanban/package.json
CHANGED
|
@@ -181,7 +181,7 @@ function resolveAgent(assignee, mapping, fallback = 'build') {
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
const TENANT_WORKDIRS = {
|
|
184
|
-
'ai-employee-setup': '/Users/clawdbot/clawd/businesses/
|
|
184
|
+
'ai-employee-setup': '/Users/clawdbot/clawd/businesses/huckleberry/platform/ai-employee-setup',
|
|
185
185
|
'natureshares': '/Users/clawdbot/clawd/businesses/natureshares',
|
|
186
186
|
'enchantents': '/Users/clawdbot/clawd/businesses/nomadixgear-sa/enchantents',
|
|
187
187
|
'nomadixgear': '/Users/clawdbot/clawd/businesses/nomadixgear-sa',
|