@jairodri/huckleberry-cli 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/agents/cos.json +2 -5
- package/agents/hermes/AGENTS.md +25 -49
- package/agents/hermes/fix-kimaki/SKILL.md +19 -92
- package/agents/hermes/hermes-fixer.md +44 -74
- package/agents/hermes.json +6 -18
- package/kanban/SKILL.md +18 -18
- package/kanban/package.json +1 -1
- package/kanban/src/dispatcher.mjs +1 -1
- package/kanban/templates/blog-social-campaign.yaml +6 -2
- package/kanban/templates/social-campaign.yaml +9 -4
- package/mcp/jev-calibration.mjs +335 -0
- package/mcp/jev-client.mjs +119 -0
- package/mcp/jev-thresholds.json +27 -0
- package/package.json +13 -9
- package/scripts/doctor-watchdog.sh +73 -0
- package/scripts/install-services.sh +34 -27
- package/scripts/self-improve-weekly.sh +34 -0
- package/scripts/sync-skills.mjs +121 -0
- package/skills/ab-test-setup/SKILL.md +266 -0
- package/skills/ab-test-setup/evals/evals.json +105 -0
- package/skills/ab-test-setup/references/sample-size-guide.md +263 -0
- package/skills/ab-test-setup/references/test-templates.md +277 -0
- package/skills/agent-reach/SKILL.md +132 -0
- package/skills/agent-reach/references/career.md +29 -0
- package/skills/agent-reach/references/dev.md +62 -0
- package/skills/agent-reach/references/search.md +33 -0
- package/skills/agent-reach/references/social.md +232 -0
- package/skills/agent-reach/references/video.md +130 -0
- package/skills/agent-reach/references/web.md +50 -0
- package/skills/ai-agent-seo/SKILL.md +450 -0
- package/skills/ai-cold-email-intelligence/SKILL.md +54 -0
- package/skills/ai-cold-email-intelligence/references/prompts.md +21 -0
- package/skills/ai-consensus-builder/SKILL.md +324 -0
- package/skills/ai-seo/SKILL.md +399 -0
- package/skills/ai-seo/evals/evals.json +90 -0
- package/skills/ai-seo/references/content-patterns.md +284 -0
- package/skills/ai-seo/references/platform-ranking-factors.md +152 -0
- package/skills/ai-visibility-audit/SKILL.md +322 -0
- package/skills/analytics-tracking/SKILL.md +309 -0
- package/skills/analytics-tracking/evals/evals.json +90 -0
- package/skills/analytics-tracking/references/event-library.md +260 -0
- package/skills/analytics-tracking/references/ga4-implementation.md +300 -0
- package/skills/analytics-tracking/references/gtm-implementation.md +390 -0
- package/skills/article-generator/SKILL.md +216 -0
- package/skills/auto-indexing/SKILL.md +179 -0
- package/skills/auto-indexing/scripts/auto-indexing.js +257 -0
- package/skills/auto-skill/SKILL.md +151 -0
- package/skills/auto-skill/correction-queue.js +102 -0
- package/skills/auto-skill/dedup.js +97 -0
- package/skills/auto-skill/skill-router.js +224 -0
- package/skills/autoresearch/SKILL.md +334 -0
- package/skills/autoresearch/autoresearch-autoresearch/SKILL.md.baseline +329 -0
- package/skills/autoresearch/autoresearch-autoresearch/changelog.md +34 -0
- package/skills/autoresearch/autoresearch-autoresearch/dashboard.html +116 -0
- package/skills/autoresearch/autoresearch-autoresearch/evals.md +39 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.json +44 -0
- package/skills/autoresearch/autoresearch-autoresearch/results.tsv +3 -0
- package/skills/autoresearch/eval-guide.md +121 -0
- package/skills/b2b-cold-outreach/SKILL.md +322 -0
- package/skills/birdclaw/SKILL.md +82 -0
- package/skills/brainstorm/SKILL.md +168 -0
- package/skills/brand-kit-playground/SKILL.md +312 -0
- package/skills/brand-kit-playground/references/html-architecture.md +316 -0
- package/skills/brand-kit-playground/references/steal-patterns.md +88 -0
- package/skills/brand-voice/SKILL.md +223 -0
- package/skills/brand-voice/references/honesty-as-positioning.md +60 -0
- package/skills/brand-voice/references/voice-modes.md +1158 -0
- package/skills/business-advisory-council/README.md +136 -0
- package/skills/business-advisory-council/SKILL.md +94 -0
- package/skills/business-advisory-council/business-advisory-council.py +492 -0
- package/skills/business-advisory-council/discord-components-decision.json +8 -0
- package/skills/business-advisory-council/examples/steve-conley-partnership.json +6 -0
- package/skills/business-advisory-council/steve-conley-call-brief.json +6 -0
- package/skills/churn-prevention/SKILL.md +305 -0
- package/skills/churn-prevention/evals/evals.json +93 -0
- package/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/claw-compactor/LICENSE +21 -0
- package/skills/claw-compactor/README.md +459 -0
- package/skills/claw-compactor/SKILL.md +329 -0
- package/skills/claw-compactor/benchmark/RESULTS.md +104 -0
- package/skills/claw-compactor/benchmark/__init__.py +1 -0
- package/skills/claw-compactor/benchmark/compressors.py +520 -0
- package/skills/claw-compactor/benchmark/data/sample_01_devops.json +82 -0
- package/skills/claw-compactor/benchmark/data/sample_02_trading.json +54 -0
- package/skills/claw-compactor/benchmark/data/sample_03_ml_short.json +38 -0
- package/skills/claw-compactor/benchmark/data/sample_04_mixed_long.json +318 -0
- package/skills/claw-compactor/benchmark/data/sample_05_sysadmin.json +56 -0
- package/skills/claw-compactor/benchmark/evaluate.py +278 -0
- package/skills/claw-compactor/benchmark/report.py +241 -0
- package/skills/claw-compactor/benchmark/results/benchmark_results.json +405 -0
- package/skills/claw-compactor/benchmark/run_benchmark.py +238 -0
- package/skills/claw-compactor/engram.yaml +49 -0
- package/skills/claw-compactor/proxy/README.md +87 -0
- package/skills/claw-compactor/proxy/dashboard.html +804 -0
- package/skills/claw-compactor/proxy/event-log.mjs +213 -0
- package/skills/claw-compactor/proxy/fair-queue.mjs +288 -0
- package/skills/claw-compactor/proxy/metrics-store.mjs +425 -0
- package/skills/claw-compactor/proxy/package-lock.json +125 -0
- package/skills/claw-compactor/proxy/package.json +15 -0
- package/skills/claw-compactor/proxy/portal.html +360 -0
- package/skills/claw-compactor/proxy/process-registry.mjs +447 -0
- package/skills/claw-compactor/proxy/rate-limiter.mjs +117 -0
- package/skills/claw-compactor/proxy/redis-client.mjs +75 -0
- package/skills/claw-compactor/proxy/retry.mjs +182 -0
- package/skills/claw-compactor/proxy/server.mjs +2100 -0
- package/skills/claw-compactor/proxy/session-affinity.mjs +177 -0
- package/skills/claw-compactor/proxy/start.sh +23 -0
- package/skills/claw-compactor/proxy/test/event-log.test.mjs +237 -0
- package/skills/claw-compactor/proxy/test/helpers.mjs +103 -0
- package/skills/claw-compactor/proxy/test/integration.test.mjs +297 -0
- package/skills/claw-compactor/proxy/test/metrics-store.test.mjs +243 -0
- package/skills/claw-compactor/proxy/test/process-registry.test.mjs +390 -0
- package/skills/claw-compactor/proxy/test/rate-limiter.test.mjs +121 -0
- package/skills/claw-compactor/proxy/test/redis-client.test.mjs +62 -0
- package/skills/claw-compactor/proxy/test/token-tracker.test.mjs +200 -0
- package/skills/claw-compactor/proxy/token-tracker.mjs +482 -0
- package/skills/claw-compactor/pyproject.toml +26 -0
- package/skills/claw-compactor/references/README.md +44 -0
- package/skills/claw-compactor/references/architecture.md +197 -0
- package/skills/claw-compactor/references/benchmarks.md +94 -0
- package/skills/claw-compactor/references/compression-prompts.md +39 -0
- package/skills/claw-compactor/references/compression-techniques.md +219 -0
- package/skills/claw-compactor/references/testing.md +160 -0
- package/skills/claw-compactor/scripts/audit_memory.py +216 -0
- package/skills/claw-compactor/scripts/compress_memory.py +236 -0
- package/skills/claw-compactor/scripts/compressed_context.py +280 -0
- package/skills/claw-compactor/scripts/dedup_memory.py +147 -0
- package/skills/claw-compactor/scripts/dictionary_compress.py +170 -0
- package/skills/claw-compactor/scripts/engram-auto.sh +152 -0
- package/skills/claw-compactor/scripts/engram_auto.py +695 -0
- package/skills/claw-compactor/scripts/engram_cli.py +474 -0
- package/skills/claw-compactor/scripts/estimate_tokens.py +131 -0
- package/skills/claw-compactor/scripts/generate_summary_tiers.py +292 -0
- package/skills/claw-compactor/scripts/lib/__init__.py +34 -0
- package/skills/claw-compactor/scripts/lib/config.py +289 -0
- package/skills/claw-compactor/scripts/lib/dedup.py +119 -0
- package/skills/claw-compactor/scripts/lib/dictionary.py +281 -0
- package/skills/claw-compactor/scripts/lib/engram.py +793 -0
- package/skills/claw-compactor/scripts/lib/engram_prompts.py +175 -0
- package/skills/claw-compactor/scripts/lib/engram_storage.py +254 -0
- package/skills/claw-compactor/scripts/lib/exceptions.py +24 -0
- package/skills/claw-compactor/scripts/lib/markdown.py +312 -0
- package/skills/claw-compactor/scripts/lib/rle.py +165 -0
- package/skills/claw-compactor/scripts/lib/tokenizer_optimizer.py +188 -0
- package/skills/claw-compactor/scripts/lib/tokens.py +68 -0
- package/skills/claw-compactor/scripts/mem_compress.py +788 -0
- package/skills/claw-compactor/scripts/observation_compressor.py +346 -0
- package/skills/claw-compactor/tests/__init__.py +0 -0
- package/skills/claw-compactor/tests/conftest.py +94 -0
- package/skills/claw-compactor/tests/test_audit_comprehensive.py +123 -0
- package/skills/claw-compactor/tests/test_audit_memory.py +67 -0
- package/skills/claw-compactor/tests/test_benchmark.py +122 -0
- package/skills/claw-compactor/tests/test_cli_commands.py +228 -0
- package/skills/claw-compactor/tests/test_compress_memory.py +109 -0
- package/skills/claw-compactor/tests/test_compress_memory_comprehensive.py +191 -0
- package/skills/claw-compactor/tests/test_compressed_context.py +145 -0
- package/skills/claw-compactor/tests/test_config.py +54 -0
- package/skills/claw-compactor/tests/test_dedup_memory.py +124 -0
- package/skills/claw-compactor/tests/test_dictionary.py +327 -0
- package/skills/claw-compactor/tests/test_dictionary_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_engram.py +1091 -0
- package/skills/claw-compactor/tests/test_engram_auto.py +529 -0
- package/skills/claw-compactor/tests/test_error_handling.py +194 -0
- package/skills/claw-compactor/tests/test_estimate_tokens.py +99 -0
- package/skills/claw-compactor/tests/test_generate_summary_tiers.py +105 -0
- package/skills/claw-compactor/tests/test_integration.py +249 -0
- package/skills/claw-compactor/tests/test_lib_dedup.py +135 -0
- package/skills/claw-compactor/tests/test_lib_markdown.py +388 -0
- package/skills/claw-compactor/tests/test_lib_tokens.py +82 -0
- package/skills/claw-compactor/tests/test_main_entry.py +176 -0
- package/skills/claw-compactor/tests/test_markdown_advanced.py +284 -0
- package/skills/claw-compactor/tests/test_new_features.py +77 -0
- package/skills/claw-compactor/tests/test_observation_comprehensive.py +261 -0
- package/skills/claw-compactor/tests/test_observation_compressor.py +128 -0
- package/skills/claw-compactor/tests/test_performance.py +172 -0
- package/skills/claw-compactor/tests/test_pipeline.py +109 -0
- package/skills/claw-compactor/tests/test_real_workspace.py +161 -0
- package/skills/claw-compactor/tests/test_rle.py +114 -0
- package/skills/claw-compactor/tests/test_rle_comprehensive.py +151 -0
- package/skills/claw-compactor/tests/test_roundtrip.py +253 -0
- package/skills/claw-compactor/tests/test_roundtrip_comprehensive.py +192 -0
- package/skills/claw-compactor/tests/test_tiers_comprehensive.py +171 -0
- package/skills/claw-compactor/tests/test_token_economics.py +237 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer.py +175 -0
- package/skills/claw-compactor/tests/test_tokenizer_optimizer_comprehensive.py +241 -0
- package/skills/claw-compactor/tests/test_tokens.py +27 -0
- package/skills/cmo/CHANGELOG.md +61 -0
- package/skills/cmo/SKILL.md +500 -0
- package/skills/cmo/references/ai-slop-patterns.md +56 -0
- package/skills/cmo/references/analytics-guide.md +152 -0
- package/skills/cmo/references/ideas-library.md +197 -0
- package/skills/cmo/rules/brand-file-map.md +198 -0
- package/skills/cmo/rules/brand-memory.md +158 -0
- package/skills/cmo/rules/cli-runtime-index.md +95 -0
- package/skills/cmo/rules/command-reference.md +167 -0
- package/skills/cmo/rules/communication.md +15 -0
- package/skills/cmo/rules/context-switch.md +101 -0
- package/skills/cmo/rules/ecosystem.md +125 -0
- package/skills/cmo/rules/error-recovery.md +98 -0
- package/skills/cmo/rules/learning-loop.md +170 -0
- package/skills/cmo/rules/monorepo.md +78 -0
- package/skills/cmo/rules/output-format.md +124 -0
- package/skills/cmo/rules/persona.md +15 -0
- package/skills/cmo/rules/playbooks.md +327 -0
- package/skills/cmo/rules/progressive-enhancement.md +231 -0
- package/skills/cmo/rules/publish-index.md +106 -0
- package/skills/cmo/rules/quality-gate.md +90 -0
- package/skills/cmo/rules/recency-grounding.md +124 -0
- package/skills/cmo/rules/safety.md +80 -0
- package/skills/cmo/rules/studio-api-index.md +138 -0
- package/skills/cmo/rules/studio-integration.md +147 -0
- package/skills/cmo/rules/sub-agents.md +167 -0
- package/skills/cold-email/SKILL.md +240 -0
- package/skills/cold-email/evals/evals.json +94 -0
- package/skills/cold-email/references/benchmarks.md +83 -0
- package/skills/cold-email/references/follow-up-sequences.md +81 -0
- package/skills/cold-email/references/frameworks.md +90 -0
- package/skills/cold-email/references/personalization.md +79 -0
- package/skills/cold-email/references/subject-lines.md +53 -0
- package/skills/competitive-intel/SKILL.md +433 -0
- package/skills/competitive-intel/references/competitive-frameworks.md +145 -0
- package/skills/competitor-alternatives/SKILL.md +362 -0
- package/skills/competitor-alternatives/evals/evals.json +93 -0
- package/skills/competitor-alternatives/references/content-architecture.md +271 -0
- package/skills/competitor-alternatives/references/templates.md +223 -0
- package/skills/concreteness-fixer/SKILL.md +483 -0
- package/skills/concreteness-fixer/scripts/validation/concreteness-validator.js +221 -0
- package/skills/concreteness-fixer/utils/execFileNoThrow.js +16 -0
- package/skills/content-atomizer/SKILL.md +424 -0
- package/skills/content-atomizer/references/hook-strategies.md +56 -0
- package/skills/content-atomizer/references/platform-specs.md +118 -0
- package/skills/content-atomizer/references/platforms/bluesky.md +64 -0
- package/skills/content-atomizer/references/platforms/instagram.md +77 -0
- package/skills/content-atomizer/references/platforms/linkedin.md +120 -0
- package/skills/content-atomizer/references/platforms/reddit.md +73 -0
- package/skills/content-atomizer/references/platforms/threads.md +64 -0
- package/skills/content-atomizer/references/platforms/tiktok.md +55 -0
- package/skills/content-atomizer/references/platforms/twitter.md +123 -0
- package/skills/content-atomizer/references/platforms/youtube.md +56 -0
- package/skills/content-atomizer/references/tweet-patterns.md +40 -0
- package/skills/content-repost-manager/SKILL.md +245 -0
- package/skills/content-repost-manager/scripts/content-repost-scan.py +133 -0
- package/skills/context-recovery/.clawdhub/origin.json +7 -0
- package/skills/context-recovery/SKILL.md +198 -0
- package/skills/context-recovery/_meta.json +6 -0
- package/skills/conversion-flow-cro/SKILL.md +248 -0
- package/skills/conversion-flow-cro/references/flow-benchmarks.md +158 -0
- package/skills/copy-editing/SKILL.md +474 -0
- package/skills/copy-editing/evals/evals.json +89 -0
- package/skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/copywriting/SKILL.md +349 -0
- package/skills/copywriting/evals/evals.json +111 -0
- package/skills/copywriting/references/awareness-level-guide.md +227 -0
- package/skills/copywriting/references/copy-frameworks.md +389 -0
- package/skills/copywriting/references/natural-transitions.md +272 -0
- package/skills/creative/SKILL.md +365 -0
- package/skills/creative/modes/ad-creative.md +1748 -0
- package/skills/creative/modes/product-photo.md +1520 -0
- package/skills/creative/modes/product-video.md +1657 -0
- package/skills/creative/modes/social-graphics.md +1511 -0
- package/skills/creative/modes/talking-head.md +2208 -0
- package/skills/creative/references/VISUAL_INTELLIGENCE.md +1233 -0
- package/skills/deep-serp-article/SKILL.md +677 -0
- package/skills/deep-serp-article/SKILL.md.bak +530 -0
- package/skills/earned-media/SKILL.md +260 -0
- package/skills/email-sequences/SKILL.md +446 -0
- package/skills/email-sequences/references/sequence-templates.md +1217 -0
- package/skills/firecrawl/.skill-meta.json +13 -0
- package/skills/firecrawl/SKILL.md +154 -0
- package/skills/firecrawl/rules/install.md +63 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/form-cro/SKILL.md +429 -0
- package/skills/form-cro/evals/evals.json +90 -0
- package/skills/free-tool-strategy/SKILL.md +325 -0
- package/skills/free-tool-strategy/evals/evals.json +90 -0
- package/skills/free-tool-strategy/references/tool-types.md +253 -0
- package/skills/frontend-slides/SKILL.md +248 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +347 -0
- package/skills/frontend-slides/animation-patterns.md +110 -0
- package/skills/frontend-slides/html-template.md +347 -0
- package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/frontend-slides/viewport-base.css +153 -0
- package/skills/guardrail-framework/SKILL.md +319 -0
- package/skills/hook-generator/SKILL.md +438 -0
- package/skills/hook-generator/database/2026-PLATFORM-RESEARCH.md +211 -0
- package/skills/hook-generator/database/instagram-hooks.json +591 -0
- package/skills/hook-generator/database/linkedin-hooks.json +502 -0
- package/skills/hook-generator/database/medium-hooks.json +181 -0
- package/skills/hook-generator/database/tiktok-hooks.json +337 -0
- package/skills/hook-generator/database/twitter-hooks.json +567 -0
- package/skills/hook-generator/database/youtube-hooks.json +275 -0
- package/skills/hook-generator/package-lock.json +24 -0
- package/skills/hook-generator/package.json +5 -0
- package/skills/hook-generator/references/hook-generation-system.md +257 -0
- package/skills/hook-generator/references/hook-performance-analysis.json +153 -0
- package/skills/hook-generator/references/hooks-library.md +128 -0
- package/skills/hook-generator/references/platform-hook-frameworks.md +275 -0
- package/skills/hook-generator/scripts/generate-hooks-unified.js +722 -0
- package/skills/hook-generator/scripts/generate-hooks.js +225 -0
- package/skills/hook-generator/scripts/generate.sh +36 -0
- package/skills/hook-generator/scripts/ralph-hook-enhancer.js +864 -0
- package/skills/hook-generator/scripts/test-gemini-output.js +51 -0
- package/skills/humanizer/README.md +120 -0
- package/skills/humanizer/SKILL.md +699 -0
- package/skills/image-gen/SKILL.md +277 -0
- package/skills/image-gen/references/prompt-patterns.md +114 -0
- package/skills/image-gen/references/visual-metaphors.md +51 -0
- package/skills/impeccable/SKILL.md +86 -0
- package/skills/impeccable/reference/adapt.md +312 -0
- package/skills/impeccable/reference/adapt.native.md +58 -0
- package/skills/impeccable/reference/android.md +40 -0
- package/skills/impeccable/reference/animate.md +86 -0
- package/skills/impeccable/reference/audit.md +136 -0
- package/skills/impeccable/reference/audit.native.md +139 -0
- package/skills/impeccable/reference/bolder.md +31 -0
- package/skills/impeccable/reference/clarify.md +94 -0
- package/skills/impeccable/reference/colorize.md +86 -0
- package/skills/impeccable/reference/craft-floor.md +42 -0
- package/skills/impeccable/reference/craft.md +5 -0
- package/skills/impeccable/reference/critique.md +788 -0
- package/skills/impeccable/reference/degraded/asset-producer.md +90 -0
- package/skills/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/impeccable/reference/degraded/finish-reviewer.md +37 -0
- package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/impeccable/reference/delight.md +70 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/doctor.md +53 -0
- package/skills/impeccable/reference/document.md +416 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/harden.md +336 -0
- package/skills/impeccable/reference/hooks.md +105 -0
- package/skills/impeccable/reference/init.md +125 -0
- package/skills/impeccable/reference/ios.md +45 -0
- package/skills/impeccable/reference/layout.md +84 -0
- package/skills/impeccable/reference/live-setup.md +102 -0
- package/skills/impeccable/reference/live.md +323 -0
- package/skills/impeccable/reference/new-work.md +110 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/operate.md +61 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +127 -0
- package/skills/impeccable/reference/polish.md +97 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/routing.md +18 -0
- package/skills/impeccable/reference/shape.md +59 -0
- package/skills/impeccable/reference/typeset.md +80 -0
- package/skills/impeccable/reference/visualize.md +49 -0
- package/skills/impeccable/scripts/command-metadata.json +94 -0
- package/skills/impeccable/scripts/concept-seed.mjs +558 -0
- package/skills/impeccable/scripts/context-signals.mjs +334 -0
- package/skills/impeccable/scripts/context.mjs +1467 -0
- package/skills/impeccable/scripts/critique-storage.mjs +213 -0
- package/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/skills/impeccable/scripts/detect.mjs +21 -0
- package/skills/impeccable/scripts/detector/browser/injected/index.mjs +2023 -0
- package/skills/impeccable/scripts/detector/cli/main.mjs +438 -0
- package/skills/impeccable/scripts/detector/design-system.mjs +1046 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +8283 -0
- package/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
- package/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +372 -0
- package/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +1168 -0
- package/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1186 -0
- package/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +264 -0
- package/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/skills/impeccable/scripts/detector/findings.mjs +18 -0
- package/skills/impeccable/scripts/detector/node/file-system.mjs +203 -0
- package/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/skills/impeccable/scripts/detector/registry/antipatterns.mjs +617 -0
- package/skills/impeccable/scripts/detector/rules/checks.mjs +5580 -0
- package/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/skills/impeccable/scripts/detector/shared/constants.mjs +112 -0
- package/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
- package/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/skills/impeccable/scripts/doctor.mjs +336 -0
- package/skills/impeccable/scripts/embed-prompt.mjs +133 -0
- package/skills/impeccable/scripts/generate-image.mjs +240 -0
- package/skills/impeccable/scripts/hook-admin.mjs +801 -0
- package/skills/impeccable/scripts/hook-before-edit.mjs +508 -0
- package/skills/impeccable/scripts/hook-lib.mjs +2153 -0
- package/skills/impeccable/scripts/hook.mjs +78 -0
- package/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
- package/skills/impeccable/scripts/lib/composition-catalog.mjs +200 -0
- package/skills/impeccable/scripts/lib/concept-catalog.mjs +384 -0
- package/skills/impeccable/scripts/lib/design-parser.mjs +925 -0
- package/skills/impeccable/scripts/lib/impeccable-config.mjs +658 -0
- package/skills/impeccable/scripts/lib/impeccable-paths.mjs +137 -0
- package/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
- package/skills/impeccable/scripts/lib/provider.mjs +5 -0
- package/skills/impeccable/scripts/lib/roll-selection.mjs +362 -0
- package/skills/impeccable/scripts/lib/staleness-deep.mjs +478 -0
- package/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
- package/skills/impeccable/scripts/lib/staleness.mjs +457 -0
- package/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
- package/skills/impeccable/scripts/lib/target-args.mjs +42 -0
- package/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
- package/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
- package/skills/impeccable/scripts/live/accept-css.mjs +617 -0
- package/skills/impeccable/scripts/live/accept-verify.mjs +60 -0
- package/skills/impeccable/scripts/live/browser-script-parts.mjs +55 -0
- package/skills/impeccable/scripts/live/completion.mjs +28 -0
- package/skills/impeccable/scripts/live/event-validation.mjs +199 -0
- package/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
- package/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +73 -0
- package/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
- package/skills/impeccable/scripts/live/frameworks/journal.mjs +197 -0
- package/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
- package/skills/impeccable/scripts/live/frameworks/nuxt.mjs +161 -0
- package/skills/impeccable/scripts/live/frameworks/script-src.mjs +17 -0
- package/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
- package/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
- package/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
- package/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
- package/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
- package/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
- package/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
- package/skills/impeccable/scripts/live/instructions.mjs +142 -0
- package/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
- package/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
- package/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
- package/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
- package/skills/impeccable/scripts/live/roots.mjs +508 -0
- package/skills/impeccable/scripts/live/session-store.mjs +563 -0
- package/skills/impeccable/scripts/live/source-lock.mjs +105 -0
- package/skills/impeccable/scripts/live/source-search.mjs +105 -0
- package/skills/impeccable/scripts/live/svelte-ast.mjs +961 -0
- package/skills/impeccable/scripts/live/svelte-component.mjs +1342 -0
- package/skills/impeccable/scripts/live/sveltekit-adapter.mjs +316 -0
- package/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
- package/skills/impeccable/scripts/live/ui-core.mjs +180 -0
- package/skills/impeccable/scripts/live/vocabulary.mjs +171 -0
- package/skills/impeccable/scripts/live-accept.mjs +954 -0
- package/skills/impeccable/scripts/live-browser-dom.js +146 -0
- package/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/skills/impeccable/scripts/live-browser.js +12520 -0
- package/skills/impeccable/scripts/live-commit-manual-edits.mjs +1244 -0
- package/skills/impeccable/scripts/live-complete.mjs +107 -0
- package/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/skills/impeccable/scripts/live-inject.mjs +503 -0
- package/skills/impeccable/scripts/live-insert.mjs +292 -0
- package/skills/impeccable/scripts/live-manual-edit-evidence.mjs +368 -0
- package/skills/impeccable/scripts/live-poll.mjs +429 -0
- package/skills/impeccable/scripts/live-resume.mjs +123 -0
- package/skills/impeccable/scripts/live-server.mjs +1669 -0
- package/skills/impeccable/scripts/live-status.mjs +71 -0
- package/skills/impeccable/scripts/live-target.mjs +30 -0
- package/skills/impeccable/scripts/live-wrap.mjs +927 -0
- package/skills/impeccable/scripts/live.mjs +359 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/impeccable/scripts/palette.mjs +628 -0
- package/skills/impeccable/scripts/pin.mjs +221 -0
- package/skills/impeccable/scripts/serve-question.mjs +932 -0
- package/skills/impeccable/scripts/surface-brief.mjs +74 -0
- package/skills/inkstone-admin/SKILL.md +66 -0
- package/skills/jev-hook-gate/SKILL.md +111 -0
- package/skills/keyword-research/SKILL.md +503 -0
- package/skills/keyword-research/references/dr-cap-and-confidence.md +62 -0
- package/skills/keyword-research/references/keyword-examples.md +769 -0
- package/skills/landing-page-architect/SKILL.md +585 -0
- package/skills/landing-page-architect/references/architecture-reference.md +32 -0
- package/skills/launch-strategy/SKILL.md +384 -0
- package/skills/launch-strategy/evals/evals.json +91 -0
- package/skills/launch-strategy/references/launch-checklist.md +209 -0
- package/skills/launch-strategy/references/launch-timeline.md +159 -0
- package/skills/lead-email-craft/SKILL.md +522 -0
- package/skills/lead-magnets/SKILL.md +310 -0
- package/skills/lead-magnets/references/benchmarks.md +129 -0
- package/skills/lead-magnets/references/format-guide.md +196 -0
- package/skills/link-building-seo/SKILL.md +210 -0
- package/skills/lint-report.txt +1 -0
- package/skills/manifest.json +129 -0
- package/skills/marketing-demo/SKILL.md +249 -0
- package/skills/marketing-demo/references/remotion-examples.md +281 -0
- package/skills/marketing-ideas/SKILL.md +167 -0
- package/skills/marketing-ideas/evals/evals.json +90 -0
- package/skills/marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/marketing-psychology/SKILL.md +374 -0
- package/skills/marketing-psychology/evals/evals.json +88 -0
- package/skills/marketing-psychology/references/case-studies.md +148 -0
- package/skills/narrative-research-article/SKILL.md +469 -0
- package/skills/narrative-research-article/references/lanusse-patterns.md +166 -0
- package/skills/notebooklm/SKILL.md +674 -0
- package/skills/off-page-seo/SKILL.md +219 -0
- package/skills/onboarding-cro/SKILL.md +220 -0
- package/skills/onboarding-cro/evals/evals.json +92 -0
- package/skills/onboarding-cro/references/experiments.md +258 -0
- package/skills/original-research/SKILL.md +388 -0
- package/skills/page-cro/SKILL.md +269 -0
- package/skills/page-cro/references/cro-benchmarks.md +140 -0
- package/skills/paper-marketing/SKILL.md +448 -0
- package/skills/paper-marketing/references/agent-quality-rubric.md +68 -0
- package/skills/paper-marketing/references/brand-system-template.md +120 -0
- package/skills/paper-marketing/references/paper-mcp-rules.md +71 -0
- package/skills/paper-marketing/references/platform-conventions.md +43 -0
- package/skills/paywall-upgrade-cro/SKILL.md +227 -0
- package/skills/paywall-upgrade-cro/evals/evals.json +93 -0
- package/skills/paywall-upgrade-cro/references/experiments.md +164 -0
- package/skills/platform-formatting/SKILL.md +51 -0
- package/skills/popup-cro/SKILL.md +454 -0
- package/skills/popup-cro/evals/evals.json +94 -0
- package/skills/positioning-angles/SKILL.md +524 -0
- package/skills/positioning-angles/references/ad-matrix-and-examples.md +176 -0
- package/skills/positioning-angles/references/angle-frameworks.md +187 -0
- package/skills/positioning-angles/references/dunford-positioning.md +135 -0
- package/skills/positioning-angles/references/hormozi-offer.md +247 -0
- package/skills/positioning-angles/references/schwartz-sophistication.md +166 -0
- package/skills/positioning-angles/references/unique-mechanism.md +162 -0
- package/skills/pricing-strategy/SKILL.md +346 -0
- package/skills/pricing-strategy/evals/evals.json +90 -0
- package/skills/pricing-strategy/references/research-methods.md +152 -0
- package/skills/pricing-strategy/references/tier-structure.md +307 -0
- package/skills/programmatic-seo/SKILL.md +238 -0
- package/skills/programmatic-seo/evals/evals.json +94 -0
- package/skills/programmatic-seo/references/playbooks.md +308 -0
- package/skills/project-rag/SKILL.md +127 -0
- package/skills/quality-gate/SKILL.md +519 -0
- package/skills/quality-gate/judge-personas/buyer.md +47 -0
- package/skills/quality-gate/judge-personas/expert.md +47 -0
- package/skills/quality-gate/judge-personas/outsider.md +47 -0
- package/skills/quality-gate/judge-personas/scanner.md +41 -0
- package/skills/quality-gate/judge-personas/skeptic.md +40 -0
- package/skills/referral-program/SKILL.md +290 -0
- package/skills/referral-program/evals/evals.json +89 -0
- package/skills/referral-program/references/affiliate-programs.md +163 -0
- package/skills/referral-program/references/program-examples.md +143 -0
- package/skills/review-sites/SKILL.md +279 -0
- package/skills/revops/SKILL.md +343 -0
- package/skills/revops/evals/evals.json +91 -0
- package/skills/revops/references/automation-playbooks.md +290 -0
- package/skills/revops/references/lifecycle-definitions.md +278 -0
- package/skills/revops/references/routing-rules.md +203 -0
- package/skills/revops/references/scoring-models.md +247 -0
- package/skills/saas-product-seo/SKILL.md +324 -0
- package/skills/sales-enablement/SKILL.md +349 -0
- package/skills/sales-enablement/evals/evals.json +91 -0
- package/skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/sales-enablement/references/demo-scripts.md +355 -0
- package/skills/sales-enablement/references/objection-library.md +270 -0
- package/skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/schema-markup/SKILL.md +179 -0
- package/skills/schema-markup/evals/evals.json +87 -0
- package/skills/schema-markup/references/schema-examples.md +398 -0
- package/skills/self-improve/SKILL.md +166 -0
- package/skills/self-improving-agent/README.md +243 -0
- package/skills/self-improving-agent/SKILL.md +437 -0
- package/skills/self-improving-agent/scripts/__init__.py +16 -0
- package/skills/self-improving-agent/scripts/__pycache__/auto_detect.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/nlm_curation.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/__pycache__/self_improving_agent.cpython-314.pyc +0 -0
- package/skills/self-improving-agent/scripts/auto_detect.py +270 -0
- package/skills/self-improving-agent/scripts/init_expertise_registry.py +89 -0
- package/skills/self-improving-agent/scripts/nlm_curation.py +259 -0
- package/skills/self-improving-agent/scripts/self-improving-agent +113 -0
- package/skills/self-improving-agent/scripts/self_improving_agent.py +603 -0
- package/skills/self-improving-agent/scripts/test_curation_scorer.py +20 -0
- package/skills/self-improving-agent/scripts/test_self_improving.py +184 -0
- package/skills/send-email/SKILL.md +426 -0
- package/skills/send-email/references/batch-email-examples.md +807 -0
- package/skills/send-email/references/best-practices.md +453 -0
- package/skills/send-email/references/installation.md +123 -0
- package/skills/send-email/references/single-email-examples.md +470 -0
- package/skills/send-email/references/webhooks.md +221 -0
- package/skills/seo-audit/SKILL.md +362 -0
- package/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/seo-audit/references/architecture-patterns.md +271 -0
- package/skills/seo-audit/references/schema-templates.md +427 -0
- package/skills/seo-content/SKILL.md +510 -0
- package/skills/seo-content/references/anti-ai-detection.md +184 -0
- package/skills/seo-content/references/content-structures.md +148 -0
- package/skills/seo-content/references/eeat-examples.md +235 -0
- package/skills/seo-content/references/on-page-seo.md +261 -0
- package/skills/seo-content/references/pseo-playbooks.md +226 -0
- package/skills/seo-content/references/schema-templates.md +104 -0
- package/skills/seo-content/references/serp-analysis-format.md +151 -0
- package/skills/seo-machine/SKILL.md +331 -0
- package/skills/seo-machine/assets/brand-template.md +73 -0
- package/skills/seo-machine/assets/link-inventory-template.md +74 -0
- package/skills/seo-machine/assets/roadmap-template.md +184 -0
- package/skills/seo-machine/references/api-stack-recipes.md +230 -0
- package/skills/seo-machine/references/exa-recipes.md +260 -0
- package/skills/seo-machine/references/manual-research.md +73 -0
- package/skills/seo-machine/references/methodology.md +87 -0
- package/skills/seo-machine/references/off-page.md +123 -0
- package/skills/seo-machine/references/patterns/alternatives.md +176 -0
- package/skills/seo-machine/references/patterns/compare.md +105 -0
- package/skills/seo-machine/references/patterns/playbooks.md +106 -0
- package/skills/seo-machine/references/patterns/use-case.md +109 -0
- package/skills/seo-machine/references/quality-bars.md +99 -0
- package/skills/seo-machine/references/stacks/astro.md +156 -0
- package/skills/seo-machine/references/stacks/detection.md +61 -0
- package/skills/seo-machine/references/stacks/markdown-fallback.md +181 -0
- package/skills/seo-machine/references/stacks/nextjs.md +108 -0
- package/skills/seo-machine/references/stacks/rails-inertia.md +99 -0
- package/skills/seo-machine/references/striking-distance.md +116 -0
- package/skills/seo-machine/references/technical-audit.md +153 -0
- package/skills/seo-machine/scripts/link_audit.py +265 -0
- package/skills/seo-machine/scripts/tech_audit.py +221 -0
- package/skills/seo-machine/scripts/word_count.py +154 -0
- package/skills/sharp-thesis-validator/SKILL.md +393 -0
- package/skills/sharp-thesis-validator/examples.md +186 -0
- package/skills/signup-flow-cro/SKILL.md +359 -0
- package/skills/signup-flow-cro/evals/evals.json +88 -0
- package/skills/site-architecture/SKILL.md +357 -0
- package/skills/site-architecture/evals/evals.json +88 -0
- package/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/skills/site-architecture/references/site-type-templates.md +293 -0
- package/skills/skill-self-improvement/SKILL.md +151 -0
- package/skills/slideshow-script/SKILL.md +274 -0
- package/skills/slideshow-script/references/content-spec-schema.md +77 -0
- package/skills/slideshow-script/references/frameworks.md +84 -0
- package/skills/slideshow-script/references/paips-framework.md +37 -0
- package/skills/social-campaign/SKILL.md +419 -0
- package/skills/social-campaign/references/paper-mcp-workflow.md +48 -0
- package/skills/social-content/SKILL.md +359 -0
- package/skills/social-content/evals/evals.json +92 -0
- package/skills/social-content/references/platforms.md +170 -0
- package/skills/social-content/references/post-templates.md +177 -0
- package/skills/social-content/references/reverse-engineering.md +195 -0
- package/skills/social-worker/SKILL.md +204 -0
- package/skills/startup-launcher/SKILL.md +252 -0
- package/skills/startup-launcher/references/file-router.md +64 -0
- package/skills/startup-launcher/references/platform-matrix.md +65 -0
- package/skills/startup-launcher/references/platforms/alternativeto.md +283 -0
- package/skills/startup-launcher/references/platforms/appsumo.md +495 -0
- package/skills/startup-launcher/references/platforms/auraplusplus.md +736 -0
- package/skills/startup-launcher/references/platforms/betalist.md +98 -0
- package/skills/startup-launcher/references/platforms/capterra.md +276 -0
- package/skills/startup-launcher/references/platforms/crunchbase.md +514 -0
- package/skills/startup-launcher/references/platforms/dealify.md +291 -0
- package/skills/startup-launcher/references/platforms/dealmirror.md +313 -0
- package/skills/startup-launcher/references/platforms/desifounder.md +490 -0
- package/skills/startup-launcher/references/platforms/devhunt.md +210 -0
- package/skills/startup-launcher/references/platforms/devpost.md +448 -0
- package/skills/startup-launcher/references/platforms/fazier.md +56 -0
- package/skills/startup-launcher/references/platforms/firsto.md +489 -0
- package/skills/startup-launcher/references/platforms/g2.md +226 -0
- package/skills/startup-launcher/references/platforms/hackernews.md +99 -0
- package/skills/startup-launcher/references/platforms/hackernoon.md +385 -0
- package/skills/startup-launcher/references/platforms/indiedeals.md +367 -0
- package/skills/startup-launcher/references/platforms/indiehackers.md +80 -0
- package/skills/startup-launcher/references/platforms/kenmoo.md +231 -0
- package/skills/startup-launcher/references/platforms/labstartups.md +618 -0
- package/skills/startup-launcher/references/platforms/launchboard.md +307 -0
- package/skills/startup-launcher/references/platforms/launchfast.md +560 -0
- package/skills/startup-launcher/references/platforms/launchigniter.md +56 -0
- package/skills/startup-launcher/references/platforms/launchingnext.md +674 -0
- package/skills/startup-launcher/references/platforms/launchit.md +574 -0
- package/skills/startup-launcher/references/platforms/launchyourapp.md +677 -0
- package/skills/startup-launcher/references/platforms/libhunt.md +220 -0
- package/skills/startup-launcher/references/platforms/ltdhunt.md +221 -0
- package/skills/startup-launcher/references/platforms/microlaunch.md +45 -0
- package/skills/startup-launcher/references/platforms/openalternative.md +195 -0
- package/skills/startup-launcher/references/platforms/peerlist.md +56 -0
- package/skills/startup-launcher/references/platforms/peerpush.md +64 -0
- package/skills/startup-launcher/references/platforms/primeclub.md +282 -0
- package/skills/startup-launcher/references/platforms/productcanyon.md +190 -0
- package/skills/startup-launcher/references/platforms/producthunt.md +98 -0
- package/skills/startup-launcher/references/platforms/rankinpublic.md +315 -0
- package/skills/startup-launcher/references/platforms/rockethub.md +374 -0
- package/skills/startup-launcher/references/platforms/saasgenius.md +175 -0
- package/skills/startup-launcher/references/platforms/saashub.md +205 -0
- package/skills/startup-launcher/references/platforms/saasmantra.md +221 -0
- package/skills/startup-launcher/references/platforms/saaspirate.md +287 -0
- package/skills/startup-launcher/references/platforms/saaswarrior.md +190 -0
- package/skills/startup-launcher/references/platforms/saaszilla.md +194 -0
- package/skills/startup-launcher/references/platforms/selected.md +925 -0
- package/skills/startup-launcher/references/platforms/sideprojectors.md +86 -0
- package/skills/startup-launcher/references/platforms/softonic.md +240 -0
- package/skills/startup-launcher/references/platforms/sourceforge.md +251 -0
- package/skills/startup-launcher/references/platforms/stacksocial.md +244 -0
- package/skills/startup-launcher/references/platforms/startupstash.md +326 -0
- package/skills/startup-launcher/references/platforms/theresanaiforthat.md +253 -0
- package/skills/startup-launcher/references/platforms/tinylaunch.md +70 -0
- package/skills/startup-launcher/references/platforms/tinystartups.md +72 -0
- package/skills/startup-launcher/references/platforms/toolfolio.md +291 -0
- package/skills/startup-launcher/references/platforms/trustmrr.md +194 -0
- package/skills/startup-launcher/references/platforms/trylaunch.md +531 -0
- package/skills/startup-launcher/references/platforms/uneed.md +57 -0
- package/skills/startup-launcher/references/templates/asset-checklist.md +218 -0
- package/skills/startup-launcher/references/templates/launch-tracker.md +195 -0
- package/skills/startup-launcher/references/templates/product-brief.md +98 -0
- package/skills/summarize/.skill-meta.json +13 -0
- package/skills/summarize/SKILL.md +170 -0
- package/skills/summarize/rules/install.md +157 -0
- package/skills/summarize/rules/usage.md +207 -0
- package/skills/topical-authority/SKILL.md +307 -0
- package/skills/topical-authority/references/jake-ward-framework.md +201 -0
- package/skills/topical-authority/references/serp-clustering-algorithm.md +325 -0
- package/skills/topical-authority/scripts/orchestrator.js +367 -0
- package/skills/topical-authority/scripts/seo/analyze-competitor-coverage.js +3 -0
- package/skills/topical-authority/scripts/seo/audit-internal-links.js +3 -0
- package/skills/topical-authority/scripts/seo/build-clusters-from-serp.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-keywords-from-forums.js +3 -0
- package/skills/topical-authority/scripts/seo/extract-paa-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/fetch-serp-urls.js +3 -0
- package/skills/topical-authority/scripts/seo/gemini-serp-clustering.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-content-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/identify-research-gaps.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-quora-questions.js +3 -0
- package/skills/topical-authority/scripts/seo/scrape-reddit-pain-points.js +3 -0
- package/skills/topical-authority/scripts/seo/weave-internal-links.js +3 -0
- package/skills/visual-style/SKILL.md +199 -0
- package/skills/voice-brand-alignment/SKILL.md +70 -0
- package/skills/voice-brand-alignment/references/ai-slop-patterns.md +405 -0
- package/skills/voice-brand-alignment/scripts/validation/gemini-voice-validator.js +96 -0
- package/skills/voice-extraction/SKILL.md +234 -0
- package/skills/voice-extraction/references/extraction-prompt.md +155 -0
- package/skills/voice-extraction/references/voice-dna-template.md +168 -0
- package/skills/voice-extraction/references/voice-elements.md +259 -0
- package/skills/voice-extraction/scripts/build-corpus.js +120 -0
- package/skills/voice-extraction/scripts/collect-sources.sh +168 -0
- package/skills/warm-outbound/SKILL.md +299 -0
- package/skills/warm-outbound/templates/warm-message.md +39 -0
- package/skills/weekly-newsletter-digest/SKILL.md +78 -0
- package/skills/x-playwriter/SKILL.md +428 -0
- package/skills/x-playwriter/scripts/x-browser.js +185 -0
- package/skills/x-post-generator-openclaw/SKILL.md +138 -0
- package/skills/x-post-generator-openclaw/scripts/generate-x-post.js +537 -0
- package/skills/x-posting-playwriter/SKILL.md +203 -0
- package/skills/x-research/SKILL.md +129 -0
- package/skills/x-research/x-research.sh +85 -0
- package/skills/youtube-summarize/SKILL.md +90 -0
- package/skills/youtube-summarize/scripts/youtube-summarize.sh +143 -0
- package/src/cli.js +347 -172
- package/src/harness/deepseek-adapter.js +102 -0
- package/src/harness/deepseek.js +225 -0
- package/src/harness/opencode-adapter.js +174 -0
- package/src/harness/pi-adapter.js +172 -0
- package/src/harness/registry.js +121 -0
- package/src/harness/telemetry.js +102 -0
- package/src/harness/types.js +165 -0
- package/src/interview.js +36 -4
- package/src/postinstall.js +10 -12
- package/templates/AGENTS.md +17 -17
- package/templates/ORG.md +1 -1
- package/templates/TOOLS.md +7 -2
- package/templates/opencode.json +26 -29
- package/wiki/doctor.md +54 -0
- package/wiki/inkstone.md +4 -4
- package/wiki/opencode.md +3 -3
- package/skills/curated.txt +0 -68
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-self-improvement
|
|
3
|
+
description: "Weekly self-improvement pipeline for skills. Reads outcome journals, corrections, and content analytics to generate targeted skill mutations."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill Self-Improvement — Weekly Pipeline
|
|
7
|
+
|
|
8
|
+
Closes the loop between content performance data → skill file improvements.
|
|
9
|
+
|
|
10
|
+
## Architecture
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Monday 10:00 UTC cron fires
|
|
14
|
+
→ Phase 1: Gather — read outcomes, corrections, analytics, skill queue
|
|
15
|
+
→ Phase 2: Score — run eval scoring (weekly-review.mjs)
|
|
16
|
+
→ Phase 3: Analyze — match correction patterns to skill files
|
|
17
|
+
→ Phase 4: Mutate — generate specific skill improvements, queue for approval
|
|
18
|
+
→ Phase 5: Log — record outcomes of the improvement run
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## When Triggered
|
|
22
|
+
|
|
23
|
+
Either by cron (Mondays 10:00 UTC) or manual invocation:
|
|
24
|
+
```bash
|
|
25
|
+
node scripts/self-improve/weekly-review/weekly-review.mjs run
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Phase 1: Gather
|
|
29
|
+
|
|
30
|
+
Read these data sources:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 1. Outcome journal + eval scores
|
|
34
|
+
node scripts/self-improve/outcome-journal/log-outcome.mjs summary
|
|
35
|
+
node scripts/self-improve/outcome-journal/log-outcome.mjs json
|
|
36
|
+
|
|
37
|
+
# 2. Active corrections
|
|
38
|
+
cat memory/corrections.md
|
|
39
|
+
|
|
40
|
+
# 3. Skill queue (unprocessed items)
|
|
41
|
+
cat memory/skill-queue.md
|
|
42
|
+
|
|
43
|
+
# 4. Content analytics (if available per business)
|
|
44
|
+
# aiwithjai:
|
|
45
|
+
ls businesses/aiwithjai/analytics/reports/ 2>/dev/null
|
|
46
|
+
# nomadixgear:
|
|
47
|
+
ls businesses/nomadixgear-sa/analytics/reports/ 2>/dev/null
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Phase 2: Score
|
|
51
|
+
|
|
52
|
+
Run the weekly review eval scoring:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
node scripts/self-improve/weekly-review/weekly-review.mjs score
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
This returns a JSON score with pass/fail per eval. Any eval that failed gets flagged for mutation in Phase 4.
|
|
59
|
+
|
|
60
|
+
## Phase 3: Analyze — Match Corrections to Skills
|
|
61
|
+
|
|
62
|
+
For each correction in the active queue and each "corrected" outcome from the past week:
|
|
63
|
+
|
|
64
|
+
1. **Extract the core failure pattern** — what specific behavior caused the correction?
|
|
65
|
+
2. **Fuzzy-match against skill index** — which skill(s) should have prevented this?
|
|
66
|
+
3. **If match found** — record "this skill needs an anti-pattern entry"
|
|
67
|
+
4. **If no match** — record "new skill may be needed" with `status: pending-approval`
|
|
68
|
+
|
|
69
|
+
Correction-to-skill mapping heuristics:
|
|
70
|
+
|
|
71
|
+
| Correction Pattern | Likely Skill |
|
|
72
|
+
|---|---|
|
|
73
|
+
| Forgot to use tool/skill X | Any skill named X; add trigger phrase |
|
|
74
|
+
| Wrong format for platform | `humanizer` or `platform-formatting` |
|
|
75
|
+
| Content too generic/boring | `hook-generator`, `direct-response-copy` |
|
|
76
|
+
| Forgot lint/typecheck | `self-improve` (add to pre-task check) |
|
|
77
|
+
| Voice doesn't sound human | `humanizer`, `brand-voice` |
|
|
78
|
+
| Wrong dependency assumed | `concierge-post-call` or `remotion-best-practices` |
|
|
79
|
+
| Not checking existing files | `document-review` |
|
|
80
|
+
| Wrong SEO/article format | `seo-content`, `blog-worker` |
|
|
81
|
+
|
|
82
|
+
## Phase 4: Mutate — Generate Skill Improvements
|
|
83
|
+
|
|
84
|
+
For each skill identified in Phase 3:
|
|
85
|
+
|
|
86
|
+
1. **Read the SKILL.md** for the affected skill
|
|
87
|
+
2. **Determine improvement type:**
|
|
88
|
+
- **ADD_ANTI_PATTERN** — Add a row to the Anti-Patterns table documenting what went wrong
|
|
89
|
+
- **ADD_TRIGGER** — Add trigger words to the description frontmatter
|
|
90
|
+
- **ADD_STEP** — Add a verification step to the workflow
|
|
91
|
+
- **REORDER** — Change the sequence of steps to prevent skip
|
|
92
|
+
- **REWRITE_PROMPT** — Update a prompt template based on what actually works
|
|
93
|
+
3. **Write the improvement** — Write it to `memory/skill-queue.md` with status `pending-approval`
|
|
94
|
+
```
|
|
95
|
+
## Improvement — <skill-name> — <timestamp>
|
|
96
|
+
- **status:** pending-approval
|
|
97
|
+
- **type:** ADD_ANTI_PATTERN
|
|
98
|
+
- **file:** .claude/skills/<skill-name>/SKILL.md
|
|
99
|
+
- **change:** Add anti-pattern: "Agent forgot to use this skill when pattern X appeared"
|
|
100
|
+
- **evidence:** Correction from <date>: <correction text>
|
|
101
|
+
```
|
|
102
|
+
4. **DO NOT auto-edit** — skill files are read-only without human approval
|
|
103
|
+
|
|
104
|
+
## Phase 5: Log Outcomes
|
|
105
|
+
|
|
106
|
+
After the pipeline completes, log the result:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
node scripts/self-improve/outcome-journal/log-outcome.mjs log \
|
|
110
|
+
"skill-self-improvement weekly run" \
|
|
111
|
+
success \
|
|
112
|
+
"" \
|
|
113
|
+
kestrel
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
If the pipeline failed (scripts errored, no data, etc.), log as `corrected` or `failed` with the specific issue.
|
|
117
|
+
|
|
118
|
+
## Phase 6: Auto-Skill Queue Revival
|
|
119
|
+
|
|
120
|
+
**This is the most important phase if the queue is stale.**
|
|
121
|
+
|
|
122
|
+
1. Read `memory/skill-queue.md`
|
|
123
|
+
2. Count entries with `status: done` that have actionable correction text
|
|
124
|
+
3. Filter OUT: praise ("this is fucking good", "this is fucking excellent"), non-sequiturs, duplicates
|
|
125
|
+
4. Filter IN: corrections about specific skills or behaviors ("fix the skill", "use the hook generator", "check for skills")
|
|
126
|
+
5. For each actionable entry: change `status: done` → `status: pending`
|
|
127
|
+
6. The auto-skill cron will pick these up on next Monday run
|
|
128
|
+
|
|
129
|
+
**Filtering examples:**
|
|
130
|
+
- "Fuck yeah! Now we need to develop an X offer" → KEEP (actionable request)
|
|
131
|
+
- "This is fucking good!" → DISCARD (praise)
|
|
132
|
+
- "Fucking fix the skill" → KEEP (vague but actionable — flag for review)
|
|
133
|
+
- "I don't use Claude code" → DISCARD (not a skill issue)
|
|
134
|
+
- "That Landing page is fucking good!" → DISCARD (praise)
|
|
135
|
+
- "who the fuck cares about citations in X?" → KEEP (signals skill needs to respect platform context)
|
|
136
|
+
|
|
137
|
+
## Known Behaviors
|
|
138
|
+
|
|
139
|
+
- **First run after setup:** Expect some failing evals because the system was always reporting 100%. This is healthy — it means scoring is finally working.
|
|
140
|
+
- **No analytics data:** Some weeks may have no content analytics. The pipeline still runs on corrections + outcomes alone; analytics are a bonus signal.
|
|
141
|
+
- **Empty queue is success:** If Phase 3 finds nothing actionable, that means skills are working. Log and move on.
|
|
142
|
+
|
|
143
|
+
## Anti-Patterns
|
|
144
|
+
|
|
145
|
+
| Mistake | Why Wrong | Fix |
|
|
146
|
+
|---|---|---|
|
|
147
|
+
| Auto-editing skill files | Bypasses human review, can break working skills | Always queue for approval |
|
|
148
|
+
| Ignoring corrections with anger | Frustration signals the most important failures | Extract signal from noise |
|
|
149
|
+
| Only checking corrections file | Outcome journal has richer correction data | Check both sources |
|
|
150
|
+
| Skipping content analytics | Misses the connection between skill quality and content performance | Always check analytics dirs |
|
|
151
|
+
| Marking queue as done without applying | This is what killed the auto-skill system | Never mark done until applied |
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slideshow-script
|
|
3
|
+
description: "Generate 5 different narrative scripts for visual slideshows from a single positioning angle. Each script uses a different storytelling framework..."
|
|
4
|
+
category: creative
|
|
5
|
+
tier: core
|
|
6
|
+
reads:
|
|
7
|
+
- brand/positioning.md
|
|
8
|
+
- brand/audience.md
|
|
9
|
+
- brand/voice-profile.md
|
|
10
|
+
writes:
|
|
11
|
+
- marketing/content-specs/*.yaml
|
|
12
|
+
depends-on:
|
|
13
|
+
- brand-voice
|
|
14
|
+
- positioning-angles
|
|
15
|
+
- hook-generator
|
|
16
|
+
triggers:
|
|
17
|
+
- slideshow script
|
|
18
|
+
- generate scripts
|
|
19
|
+
- narrative scripts
|
|
20
|
+
- content scripts
|
|
21
|
+
- TikTok scripts
|
|
22
|
+
- storytelling frameworks
|
|
23
|
+
- carousel scripts
|
|
24
|
+
allowed-tools:
|
|
25
|
+
- Bash(mktg status *)
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# /slideshow-script — Narrative Script Generation
|
|
29
|
+
|
|
30
|
+
Generate 5 different narrative scripts from a single positioning angle. Each script uses a different storytelling framework, producing 5 publishable pieces of content instead of 5 variations of 1 script.
|
|
31
|
+
|
|
32
|
+
For scripting frameworks reference, see [references/frameworks.md](references/frameworks.md).
|
|
33
|
+
For content spec YAML schema, see [references/content-spec-schema.md](references/content-spec-schema.md).
|
|
34
|
+
|
|
35
|
+
## Why 5 Scripts, Not 5 Layouts
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Old model: 1 script × 5 visual layouts = 1 usable output (pick 1, waste 4)
|
|
39
|
+
New model: 5 scripts × 5 visual layouts = 5 usable outputs (post all 5)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Each script has a DIFFERENT narrative, DIFFERENT hook, DIFFERENT proof points. When paired with /paper-marketing, each agent gets a unique script AND a unique design direction.
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
### Phase 1: Load Brand Context
|
|
47
|
+
|
|
48
|
+
Read in parallel (if they exist):
|
|
49
|
+
- `brand/positioning.md` — available angles, headlines, proof points
|
|
50
|
+
- `brand/audience.md` — pain points, desires, language patterns
|
|
51
|
+
- `brand/voice-profile.md` — tone, vocabulary, do's/don'ts, signature phrases
|
|
52
|
+
|
|
53
|
+
If any files are missing, the skill still works — see Progressive Enhancement below for how to handle zero-context and partial-context scenarios.
|
|
54
|
+
|
|
55
|
+
### Phase 2: Select Positioning Angle
|
|
56
|
+
|
|
57
|
+
If the user hasn't specified an angle, present the available angles from `brand/positioning.md`:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
"Which positioning angle should I write 5 scripts for?"
|
|
61
|
+
|
|
62
|
+
[List angles from positioning.md with their headlines]
|
|
63
|
+
|
|
64
|
+
Options:
|
|
65
|
+
1-N. Select a specific angle
|
|
66
|
+
N+1. "Use the primary angle"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Phase 3: Generate 5 Scripts
|
|
70
|
+
|
|
71
|
+
For the selected positioning angle, generate 5 narratively distinct scripts — one per framework:
|
|
72
|
+
|
|
73
|
+
| # | Framework | Structure | Hook Style |
|
|
74
|
+
|---|-----------|-----------|------------|
|
|
75
|
+
| 1 | **AIDA** | Attention → Interest → Desire → Action | Bold claim or question |
|
|
76
|
+
| 2 | **PAS** | Problem → Agitate → Solution | Pain point the audience feels |
|
|
77
|
+
| 3 | **BAB** | Before → After → Bridge | "Life before" vs "life after" |
|
|
78
|
+
| 4 | **Star-Story-Solution** | Hook character → conflict → resolution | Personal/relatable story |
|
|
79
|
+
| 5 | **PAIPS** | Problem → Agitate → Intrigue → Positive → Solution | Pain then curiosity pull |
|
|
80
|
+
|
|
81
|
+
**PAIPS framework** (Problem → Agitate → Intrigue → Positive → Solution): A 5-phase framework that combines PAS agitation with an "intrigue" phase that hints at the solution before revealing it. The "Positive" phase shows the ideal outcome before the actual solution is presented. See [references/paips-framework.md](references/paips-framework.md) for full breakdown with examples.
|
|
82
|
+
|
|
83
|
+
**Each script includes:**
|
|
84
|
+
- **Hook** (slide 1) — the first thing seen, must grab in 1-3 seconds
|
|
85
|
+
- **5-7 slides** — each with `type` annotation (stat, anchor_word, emotional_pivot, cascade, cta, logo_intro)
|
|
86
|
+
- **CTA** (final slide) — clear action with URL/handle
|
|
87
|
+
- **Animation hints** — spring preset suggestion per slide (bouncy, smooth, heavy, snappy)
|
|
88
|
+
|
|
89
|
+
**Script generation rules:**
|
|
90
|
+
- All 5 must use the SAME positioning angle but tell DIFFERENT stories
|
|
91
|
+
- No two scripts should share the same hook
|
|
92
|
+
- Each script should use different proof points from the positioning doc
|
|
93
|
+
- Voice rules from voice-profile.md apply to ALL scripts
|
|
94
|
+
- Slide count can vary (5-9) based on what the narrative needs
|
|
95
|
+
|
|
96
|
+
### 3a. Generate hooks via hook-generator subagent
|
|
97
|
+
|
|
98
|
+
Launch 5 parallel subagents — one per framework — via the `task` tool with `subagent_type: general`. Each subagent loads hook-generator and executes Phase 1-6, using the framework to bias hook style.
|
|
99
|
+
|
|
100
|
+
**Framework → Subagent parameter mapping:**
|
|
101
|
+
|
|
102
|
+
| Framework | Hook Style | Sentence Strategy Bias |
|
|
103
|
+
|-----------|-----------|----------------------|
|
|
104
|
+
| AIDA | Bold claim or question | Declarative |
|
|
105
|
+
| PAS | Pain point the audience feels | Controversial |
|
|
106
|
+
| BAB | "Life before" vs "life after" | Moment |
|
|
107
|
+
| Star-Story-Solution | Personal/relatable story | Vulnerable |
|
|
108
|
+
| PAIPS | Pain then curiosity pull | Insight |
|
|
109
|
+
|
|
110
|
+
**Subagent prompt template (fill per framework):**
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
Load the hook-generator skill and execute the full Phase 1-6 pipeline with this context.
|
|
114
|
+
|
|
115
|
+
Context:
|
|
116
|
+
- WHO: <target audience from brand>
|
|
117
|
+
- WHAT/WHY: <topic/core insight>
|
|
118
|
+
- Knife: <pain point from brand>
|
|
119
|
+
- Platform: TikTok
|
|
120
|
+
- Brand: <brand name>
|
|
121
|
+
- Target Score: 85
|
|
122
|
+
- Framework: <AIDA | PAS | BAB | Star-Story-Solution | PAIPS>
|
|
123
|
+
- Hook Style: <corresponding hook style from table above>
|
|
124
|
+
|
|
125
|
+
Return ONLY this JSON array with 1-2 hooks:
|
|
126
|
+
[{"hook":"...","score":<0-100>,"pattern":"...","formula":"..."}]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Each subagent returns 1-2 scored hooks. Assign the highest-scoring hook to the corresponding script. If a subagent fails (quota, timeout), fall back to writing the hook manually following the framework's hook style.
|
|
130
|
+
|
|
131
|
+
### Phase 4: Match Scripts to Visual Directions
|
|
132
|
+
|
|
133
|
+
Each script gets a recommended visual direction for /paper-marketing:
|
|
134
|
+
|
|
135
|
+
| Framework | Best Visual Direction | Why |
|
|
136
|
+
|-----------|---------------------|-----|
|
|
137
|
+
| AIDA | Typographic | Text IS the design, progressive revelation |
|
|
138
|
+
| PAS | Contrast Play / Split | Tension between problem and solution |
|
|
139
|
+
| BAB | Atmospheric | Emotional transformation needs breathing room |
|
|
140
|
+
| Star-Story-Solution | Editorial | Story flow needs magazine-like pacing |
|
|
141
|
+
| Stat-Flip | Data-Led | Numbers are the visual anchors |
|
|
142
|
+
|
|
143
|
+
These are recommendations — the user can override.
|
|
144
|
+
|
|
145
|
+
### Phase 5: Present for Approval
|
|
146
|
+
|
|
147
|
+
Use **AskUserQuestion** to show all 5 scripts with their visual direction:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
"Here are 5 narrative scripts for '{angle_name}', each using a different storytelling framework:"
|
|
151
|
+
|
|
152
|
+
1. **AIDA** (→ Typographic): "{hook}" — Attention grab → feature interest → desire trigger → CTA
|
|
153
|
+
2. **PAS** (→ Contrast Play): "{hook}" — Pain → twist → relief
|
|
154
|
+
3. **BAB** (→ Atmospheric): "{hook}" — Before/after transformation
|
|
155
|
+
4. **Star-Story-Solution** (→ Editorial): "{hook}" — Story arc → resolution
|
|
156
|
+
5. **Stat-Flip** (→ Data-Led): "{hook}" — Shocking stat → reframe
|
|
157
|
+
|
|
158
|
+
Options:
|
|
159
|
+
1. "All 5 look great" — write all 5 content specs
|
|
160
|
+
2. "Regenerate #{n}" — rewrite a specific script
|
|
161
|
+
3. "Change the angle" — try a different positioning angle
|
|
162
|
+
4. "Edit a script" — modify specific slides
|
|
163
|
+
5. "Only use 3 of these" — select a subset
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Phase 6: Write Content Spec YAMLs
|
|
167
|
+
|
|
168
|
+
For each approved script, write a structured YAML file:
|
|
169
|
+
|
|
170
|
+
**Path:** `marketing/content-specs/{project}-{framework}.yaml`
|
|
171
|
+
|
|
172
|
+
Example: `marketing/content-specs/lumi-aida.yaml`
|
|
173
|
+
|
|
174
|
+
See [references/content-spec-schema.md](references/content-spec-schema.md) for the full schema.
|
|
175
|
+
|
|
176
|
+
```yaml
|
|
177
|
+
spec_version: 1
|
|
178
|
+
project: lumi
|
|
179
|
+
content_type: tiktok-slideshow
|
|
180
|
+
scripting_framework: AIDA
|
|
181
|
+
platform:
|
|
182
|
+
name: tiktok
|
|
183
|
+
width: 1080
|
|
184
|
+
height: 1920
|
|
185
|
+
aspect: "9:16"
|
|
186
|
+
positioning_angle: "The 30-Second Active Gate"
|
|
187
|
+
visual_direction: typographic
|
|
188
|
+
slides:
|
|
189
|
+
- index: 1
|
|
190
|
+
type: stat
|
|
191
|
+
headline: "30"
|
|
192
|
+
subhead: "seconds."
|
|
193
|
+
body: null
|
|
194
|
+
animation_hint: spring_bouncy
|
|
195
|
+
role: hook
|
|
196
|
+
- index: 2
|
|
197
|
+
type: anchor_word
|
|
198
|
+
headline: "Breathe in"
|
|
199
|
+
subhead: "That's how long five deep breaths take."
|
|
200
|
+
body: null
|
|
201
|
+
animation_hint: spring_heavy
|
|
202
|
+
role: interest
|
|
203
|
+
# ... more slides
|
|
204
|
+
- index: 7
|
|
205
|
+
type: cta
|
|
206
|
+
headline: "lumi.com"
|
|
207
|
+
subhead: "Presence before everything."
|
|
208
|
+
body: null
|
|
209
|
+
animation_hint: spring_smooth
|
|
210
|
+
role: action
|
|
211
|
+
cta:
|
|
212
|
+
url: "lumi.com"
|
|
213
|
+
tagline: "Presence before everything."
|
|
214
|
+
handle: "@lumi"
|
|
215
|
+
voice_constraints:
|
|
216
|
+
tone: "calm, certain, mindful"
|
|
217
|
+
avoid: ["hype", "guilt", "exclamation marks"]
|
|
218
|
+
signature_phrases: ["Take 5 breaths. Unlock your phone.", "Presence before everything."]
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Phase 7: Summary
|
|
222
|
+
|
|
223
|
+
Report what was written:
|
|
224
|
+
```
|
|
225
|
+
5 content specs written to marketing/content-specs/:
|
|
226
|
+
1. lumi-aida.yaml (7 slides, Typographic)
|
|
227
|
+
2. lumi-pas.yaml (6 slides, Contrast Play)
|
|
228
|
+
3. lumi-bab.yaml (7 slides, Atmospheric)
|
|
229
|
+
4. lumi-story.yaml (8 slides, Editorial)
|
|
230
|
+
5. lumi-statflip.yaml (5 slides, Data-Led)
|
|
231
|
+
|
|
232
|
+
Next: Run /paper-marketing to design each script, or /tiktok-slideshow for the full pipeline.
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Standalone Usage
|
|
236
|
+
|
|
237
|
+
This skill works independently from any orchestrator:
|
|
238
|
+
- `/slideshow-script` alone → generates scripts for manual design work
|
|
239
|
+
- `/slideshow-script` → `/paper-marketing` → manual export (no video)
|
|
240
|
+
- `/slideshow-script` → `/content-atomizer` → repurpose scripts as text posts
|
|
241
|
+
- `/slideshow-script` → `/email-sequences` → use narratives in email campaigns
|
|
242
|
+
|
|
243
|
+
## Progressive Enhancement
|
|
244
|
+
|
|
245
|
+
This skill works at three levels of context:
|
|
246
|
+
|
|
247
|
+
1. **Zero context** — No brand files. Ask the user for: product name, one-sentence description, target audience, and the key benefit. Generate scripts from that. They'll be generic but functional.
|
|
248
|
+
2. **Partial context** — Only `positioning.md` exists. Generate scripts from the positioning angles. Copy will be accurate but may lack voice personality.
|
|
249
|
+
3. **Full context** — All three brand files exist (`positioning.md`, `audience.md`, `voice-profile.md`). Scripts use the right angles, speak to the right pain points, and sound like the brand.
|
|
250
|
+
|
|
251
|
+
## Anti-Patterns
|
|
252
|
+
|
|
253
|
+
- **Same hook across scripts** — The whole point of 5 scripts is 5 chances to grab attention differently. If two scripts start with a question hook, you've wasted one. A viewer who scrolled past hook A might stop for hook B — but only if B looks and sounds different.
|
|
254
|
+
- **Recycled proof points** — Reusing the same stat in multiple scripts means a viewer who sees script 2 after script 1 hears the same argument. Each script should use different proof points from positioning.md so every post adds new information.
|
|
255
|
+
- **Generic voice** — "Transform your life" could be any brand on any platform. Viewers tune it out because they've seen it a thousand times. Using the exact vocabulary and signature phrases from voice-profile.md makes the content feel authored and recognizable.
|
|
256
|
+
- **Platform-specific copy in scripts** — Scripts are the narrative layer, not the design layer. Writing "swipe right" or "link in bio" locks the script to one platform. Keep scripts platform-agnostic so the same narrative works for TikTok, Instagram, YouTube Shorts, or any other format.
|
|
257
|
+
- **Too many slides** — Every slide the viewer must sit through is friction. If a slide doesn't advance the narrative toward the CTA, it's a drop-off point. 5-7 slides usually hits the sweet spot for social content.
|
|
258
|
+
- **Ignoring the framework** — Each framework works because of its specific psychological structure. AIDA builds desire before asking for action. PAS makes pain visceral before offering relief. Blending frameworks dilutes the psychological effect that makes each one work.
|
|
259
|
+
|
|
260
|
+
## Edge Cases
|
|
261
|
+
|
|
262
|
+
- **positioning.md missing** — Ask the user: "What's the main angle or benefit you want to highlight?" Use their answer as the positioning angle. Offer to run /positioning-angles to build proper angles.
|
|
263
|
+
- **Only 1-2 proof points available** — Generate fewer scripts (3 instead of 5) and tell the user which frameworks were dropped and why. Quality over quantity.
|
|
264
|
+
- **User wants fewer than 5 scripts** — Respect the request. Ask which frameworks they want, or recommend the best 2-3 for their content type.
|
|
265
|
+
- **User wants a framework not in the list** — Accept custom frameworks. Ask for the structure (what are the phases?) and generate a script following that structure.
|
|
266
|
+
- **Brand voice conflicts with framework** — If the brand voice is "calm, no hype" but PAS requires agitation, dial the agitation to match the voice. Agitate with quiet observations, not exclamation marks.
|
|
267
|
+
|
|
268
|
+
## Principles
|
|
269
|
+
|
|
270
|
+
- **5 narratives, not 5 variations** — every output should be publishable
|
|
271
|
+
- **Frameworks enforce diversity** — AIDA and PAS produce fundamentally different stories
|
|
272
|
+
- **Content spec is the contract** — downstream skills read YAML, not prose
|
|
273
|
+
- **Archetype annotations matter** — `type: stat` tells Paper agents AND Remotion what to emphasize
|
|
274
|
+
- **Voice rules are non-negotiable** — all 5 scripts must sound like the brand
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Content Spec YAML Schema
|
|
2
|
+
|
|
3
|
+
The content spec is the shared contract between all skills in the video pipeline. Written by `/slideshow-script`, read by `/paper-marketing` agents, ffmpeg, and Remotion.
|
|
4
|
+
|
|
5
|
+
## Schema
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
# Required fields
|
|
9
|
+
spec_version: 1 # Schema version
|
|
10
|
+
project: string # Project name (kebab-case)
|
|
11
|
+
content_type: string # tiktok-slideshow | instagram-carousel | instagram-post | youtube-short
|
|
12
|
+
scripting_framework: string # AIDA | PAS | BAB | star-story-solution | stat-flip
|
|
13
|
+
|
|
14
|
+
# Platform spec
|
|
15
|
+
platform:
|
|
16
|
+
name: string # tiktok | instagram | youtube
|
|
17
|
+
width: number # pixels (1080)
|
|
18
|
+
height: number # pixels (1920 for 9:16, 1350 for 4:5)
|
|
19
|
+
aspect: string # "9:16" | "4:5" | "1:1" | "16:9"
|
|
20
|
+
|
|
21
|
+
# Brand context
|
|
22
|
+
positioning_angle: string # Which angle from positioning.md
|
|
23
|
+
visual_direction: string # typographic | data-led | atmospheric | editorial | bold-minimal | contrast-play | split | structured
|
|
24
|
+
|
|
25
|
+
# Slide content
|
|
26
|
+
slides:
|
|
27
|
+
- index: number # 1-based slide number
|
|
28
|
+
type: string # stat | anchor_word | emotional_pivot | cascade | cta | logo_intro | comparison | question
|
|
29
|
+
headline: string | null # Primary text (can be a number for stat type)
|
|
30
|
+
subhead: string | null # Secondary text
|
|
31
|
+
body: string | null # Body text (can include Arabic/special characters)
|
|
32
|
+
label: string | null # Small section label (e.g., "BREATH SYSTEM")
|
|
33
|
+
animation_hint: string # spring_bouncy | spring_smooth | spring_heavy | spring_snappy
|
|
34
|
+
role: string # attention | interest | desire | action | problem | agitate | solution | before | after | bridge | star | story | hook
|
|
35
|
+
|
|
36
|
+
# CTA (always present)
|
|
37
|
+
cta:
|
|
38
|
+
url: string # Primary URL
|
|
39
|
+
tagline: string # Signature phrase
|
|
40
|
+
handle: string | null # Social handle (@username)
|
|
41
|
+
|
|
42
|
+
# Voice rules (copied from brand)
|
|
43
|
+
voice_constraints:
|
|
44
|
+
tone: string # e.g., "calm, certain, mindful"
|
|
45
|
+
avoid: string[] # Words/patterns to never use
|
|
46
|
+
signature_phrases: string[] # Available brand phrases
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## File Naming
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
marketing/content-specs/{project}-{framework}.yaml
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
- `marketing/content-specs/lumi-aida.yaml`
|
|
57
|
+
- `marketing/content-specs/lumi-pas.yaml`
|
|
58
|
+
- `marketing/content-specs/myapp-stat-flip.yaml`
|
|
59
|
+
|
|
60
|
+
## Consumers
|
|
61
|
+
|
|
62
|
+
| Consumer | What They Read | How They Use It |
|
|
63
|
+
|----------|---------------|-----------------|
|
|
64
|
+
| /paper-marketing agents | `slides[].type`, `slides[].headline/subhead/body`, `visual_direction` | Layout decisions, text content, archetype-aware design |
|
|
65
|
+
| ffmpeg (v1/v1.5) | `slides[].index`, `platform.width/height` | Slice coordinates, crossfade timing |
|
|
66
|
+
| Remotion (v2) | `slides[].type`, `slides[].animation_hint`, full slide content | Archetype component selection, spring configs, text |
|
|
67
|
+
| /video-content | `platform`, `cta`, `voice_constraints` | Output format, overlays, TTS voice settings |
|
|
68
|
+
|
|
69
|
+
## Validation Rules
|
|
70
|
+
|
|
71
|
+
1. `spec_version` must be `1`
|
|
72
|
+
2. At least 3 slides, at most 12
|
|
73
|
+
3. First slide must have `role: hook` or `role: attention` or `role: problem` or `role: stat`
|
|
74
|
+
4. Last slide must have `type: cta`
|
|
75
|
+
5. Every slide must have at least `headline` OR `body`
|
|
76
|
+
6. `animation_hint` must be one of: `spring_bouncy`, `spring_smooth`, `spring_heavy`, `spring_snappy`
|
|
77
|
+
7. `type` must be one of: `stat`, `anchor_word`, `emotional_pivot`, `cascade`, `cta`, `logo_intro`, `comparison`, `question`
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
> **Note:** Examples below use fictional brands (Acme, Lumi, Helm). Replace with your own brand context.
|
|
2
|
+
|
|
3
|
+
# Slideshow Scripting Frameworks
|
|
4
|
+
|
|
5
|
+
## AIDA — Attention, Interest, Desire, Action
|
|
6
|
+
|
|
7
|
+
**Structure:**
|
|
8
|
+
1. **Attention** (Slide 1): Bold claim, shocking stat, or provocative question
|
|
9
|
+
2. **Interest** (Slides 2-3): Explain the mechanism, share the "how"
|
|
10
|
+
3. **Desire** (Slides 4-5): Show the outcome, paint the picture of "after"
|
|
11
|
+
4. **Action** (Slides 6-7): Clear CTA with URL/handle
|
|
12
|
+
|
|
13
|
+
**Best for:** Broad awareness, product introductions, feature showcases
|
|
14
|
+
**Visual pairing:** Typographic — progressive text revelation matches the framework's build-up
|
|
15
|
+
|
|
16
|
+
**Example pattern:**
|
|
17
|
+
- "30 seconds." → "That's how long 5 deep breaths take." → "Your phone opens when your breath is done." → "lumi.app"
|
|
18
|
+
|
|
19
|
+
## PAS — Problem, Agitate, Solution
|
|
20
|
+
|
|
21
|
+
**Structure:**
|
|
22
|
+
1. **Problem** (Slide 1-2): Name the pain the audience knows
|
|
23
|
+
2. **Agitate** (Slides 3-4): Make the pain worse, show consequences
|
|
24
|
+
3. **Solution** (Slides 5-7): Introduce the fix, prove it works, CTA
|
|
25
|
+
|
|
26
|
+
**Best for:** Pain-driven products, alternatives to existing solutions, "there's a better way"
|
|
27
|
+
**Visual pairing:** Contrast Play or Split — tension between problem and solution halves
|
|
28
|
+
|
|
29
|
+
**Example pattern:**
|
|
30
|
+
- "Every app blocker just makes you wait." → "Wait. Or breathe. Or read quotes. None of it sticks." → "Lumi makes you take a real pause. Then your phone opens."
|
|
31
|
+
|
|
32
|
+
## BAB — Before, After, Bridge
|
|
33
|
+
|
|
34
|
+
**Structure:**
|
|
35
|
+
1. **Before** (Slides 1-2): Current reality (relatable struggle)
|
|
36
|
+
2. **After** (Slides 3-4): Dream state (what life looks like solved)
|
|
37
|
+
3. **Bridge** (Slides 5-7): How to get there (the product), CTA
|
|
38
|
+
|
|
39
|
+
**Best for:** Transformation stories, lifestyle products, habit change
|
|
40
|
+
**Visual pairing:** Atmospheric — emotional transformation needs breathing room
|
|
41
|
+
|
|
42
|
+
**Example pattern:**
|
|
43
|
+
- "My phone was the first thing I touched every morning." → "Now my breath is." → "Lumi is the bridge."
|
|
44
|
+
|
|
45
|
+
## Star-Story-Solution
|
|
46
|
+
|
|
47
|
+
**Structure:**
|
|
48
|
+
1. **Star** (Slide 1): Introduce a relatable character or persona
|
|
49
|
+
2. **Story** (Slides 2-5): Take them through a conflict or journey
|
|
50
|
+
3. **Solution** (Slides 6-7): The product resolves the story, CTA
|
|
51
|
+
|
|
52
|
+
**Best for:** Emotional connection, community-building, personal narratives
|
|
53
|
+
**Visual pairing:** Editorial — story flow needs magazine-like pacing with asymmetric text
|
|
54
|
+
|
|
55
|
+
**Example pattern:**
|
|
56
|
+
- "Maya unlocks her phone 150 times a day." → "One day she set Lumi. Five deep breaths before each unlock." → "Now her first act is presence."
|
|
57
|
+
|
|
58
|
+
## Stat-Flip
|
|
59
|
+
|
|
60
|
+
**Structure:**
|
|
61
|
+
1. **Stat** (Slide 1-2): Surprising, specific data point
|
|
62
|
+
2. **Flip** (Slides 3-4): Reframe the stat, challenge assumptions
|
|
63
|
+
3. **CTA** (Slides 5-6): Clear call to action anchored in the data
|
|
64
|
+
|
|
65
|
+
**Best for:** Data-driven audiences, proof points, credibility building
|
|
66
|
+
**Visual pairing:** Data-Led — giant numbers as visual anchors, text supports the data
|
|
67
|
+
|
|
68
|
+
**Example pattern:**
|
|
69
|
+
- "You unlock your phone 150 times a day." → "That's 150 chances to take a breath." → "Lumi turns screen time into breath time."
|
|
70
|
+
|
|
71
|
+
## Slide Type Reference
|
|
72
|
+
|
|
73
|
+
Each slide should be annotated with one of these types:
|
|
74
|
+
|
|
75
|
+
| Type | Visual Treatment | Animation |
|
|
76
|
+
|------|-----------------|-----------|
|
|
77
|
+
| `stat` | Giant number (300px+), small label | Spring bouncy, counter tick |
|
|
78
|
+
| `anchor_word` | One massive word fills slide | Spring heavy/snappy |
|
|
79
|
+
| `emotional_pivot` | Centered text, generous whitespace | Smooth, glow pulse |
|
|
80
|
+
| `cascade` | Sequential lines, left-aligned | Smooth, staggered reveal |
|
|
81
|
+
| `cta` | Centered, ornamental, URL prominent | Smooth, sequential fade |
|
|
82
|
+
| `logo_intro` | Logo centered, clean backdrop | Spring bouncy, sparkle |
|
|
83
|
+
| `comparison` | Split layout, two zones | Slide transition |
|
|
84
|
+
| `question` | Large text with ? or ... | Smooth fade |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# PAIPS Framework
|
|
2
|
+
|
|
3
|
+
A 5-step copy framework for persuasive short-form content. Use for tweets, short-form video scripts, and carousel copy where you need agitation before the solution.
|
|
4
|
+
|
|
5
|
+
## The 5 Steps
|
|
6
|
+
|
|
7
|
+
### 1. Problem — Highlight something painful
|
|
8
|
+
The first line highlights a painful problem that people experience. This line is intended to elicit a strong emotional response and get the reader to the next line.
|
|
9
|
+
|
|
10
|
+
### 2. Agitate — Agitate the pain
|
|
11
|
+
Next, get under the reader's skin and make them agitated. Once someone is agitated, they are much more likely to be open to a solution.
|
|
12
|
+
|
|
13
|
+
### 3. Intrigue — Introduce something intriguing
|
|
14
|
+
Introduce something that makes them think, "Wait, what's that?" Get the audience to lean in with interest to carry them through the content.
|
|
15
|
+
|
|
16
|
+
### 4. Positive Future — Paint a positive future
|
|
17
|
+
Paint a picture of what a positive future would look like. The positive future is tied to something intriguing.
|
|
18
|
+
|
|
19
|
+
### 5. Solution — Present your solution
|
|
20
|
+
Introduce the solution which should be tied to the problem.
|
|
21
|
+
|
|
22
|
+
## Usage in Scripts
|
|
23
|
+
|
|
24
|
+
When using PAIPS for a slideshow script:
|
|
25
|
+
- Slides 1-2: Problem + Agitate (establish the pain)
|
|
26
|
+
- Slide 3: Intrigue (the "wait, what?" moment)
|
|
27
|
+
- Slides 4-5: Positive Future + Solution (deliver the payoff)
|
|
28
|
+
|
|
29
|
+
## Writing Constraints (from PAIPS source)
|
|
30
|
+
- Break up sentences longer than 25 words
|
|
31
|
+
- Hook sentence must answer: "How will this help me?" or "What will I learn?" or "Is this worth my time?"
|
|
32
|
+
- Mix 3-4 short (7-15 word) sentences with one longer (15-25 word) sentence
|
|
33
|
+
- Use transition words: However, Anyway, More than that, But
|
|
34
|
+
- Use bullets when applicable
|
|
35
|
+
- Short, simple, easy-to-read sentences
|
|
36
|
+
- Do not repeat concepts
|
|
37
|
+
- Do not use "unleash", "unlock", or "imagine"
|