thanh-kit 2.5.0 → 2.5.1
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/package.json +1 -1
- package/templates/.ck.json +60 -0
- package/templates/.ckignore +27 -0
- package/templates/.mcp.json.example +23 -0
- package/templates/agents/brainstormer.md +18 -2
- package/templates/agents/code-reviewer.md +122 -142
- package/templates/agents/code-simplifier.md +50 -100
- package/templates/agents/debugger.md +27 -11
- package/templates/agents/docs-manager.md +100 -38
- package/templates/agents/fullstack-developer.md +15 -3
- package/templates/agents/git-manager.md +11 -386
- package/templates/agents/journal-writer.md +13 -8
- package/templates/agents/mcp-manager.md +21 -6
- package/templates/agents/planner.md +24 -8
- package/templates/agents/project-manager.md +17 -121
- package/templates/agents/researcher.md +22 -7
- package/templates/agents/tester.md +23 -7
- package/templates/agents/ui-ux-designer.md +23 -14
- package/templates/hooks/__tests__/ck-config-utils.test.cjs +557 -0
- package/templates/hooks/__tests__/descriptive-name.test.cjs +292 -0
- package/templates/hooks/__tests__/dev-rules-reminder.test.cjs +336 -0
- package/templates/hooks/__tests__/integration/path-resolution.test.cjs +319 -0
- package/templates/hooks/__tests__/privacy-block.test.cjs +273 -0
- package/templates/hooks/__tests__/session-init.test.cjs +308 -0
- package/templates/hooks/__tests__/skill-dedup.test.cjs +527 -0
- package/templates/hooks/__tests__/subagent-init.test.cjs +622 -0
- package/templates/hooks/__tests__/task-completed-handler.test.cjs +246 -0
- package/templates/hooks/__tests__/team-context-inject.test.cjs +804 -0
- package/templates/hooks/__tests__/teammate-idle-handler.test.cjs +254 -0
- package/templates/hooks/cook-after-plan-reminder.cjs +72 -0
- package/templates/hooks/descriptive-name.cjs +47 -0
- package/templates/hooks/dev-rules-reminder.cjs +37 -214
- package/templates/hooks/lib/__tests__/README.md +240 -0
- package/templates/hooks/lib/__tests__/ck-config-utils.test.cjs +613 -1
- package/templates/hooks/lib/__tests__/context-builder.test.cjs +468 -0
- package/templates/hooks/lib/__tests__/project-detector.test.cjs +754 -0
- package/templates/hooks/lib/__tests__/statusline-integration.test.cjs +678 -0
- package/templates/hooks/lib/__tests__/statusline.test.cjs +689 -0
- package/templates/hooks/lib/ck-config-utils.cjs +146 -21
- package/templates/hooks/lib/colors.cjs +95 -0
- package/templates/hooks/lib/config-counter.cjs +103 -0
- package/templates/hooks/lib/context-builder.cjs +616 -0
- package/templates/hooks/lib/git-info-cache.cjs +143 -0
- package/templates/hooks/lib/hook-logger.cjs +92 -0
- package/templates/hooks/lib/privacy-checker.cjs +297 -0
- package/templates/hooks/lib/project-detector.cjs +474 -0
- package/templates/hooks/lib/scout-checker.cjs +263 -0
- package/templates/hooks/lib/transcript-parser.cjs +181 -0
- package/templates/hooks/notifications/discord_notify.sh +17 -4
- package/templates/hooks/notifications/docs/discord-hook-setup.md +26 -10
- package/templates/hooks/notifications/docs/telegram-hook-setup.md +24 -6
- package/templates/hooks/notifications/notify.cjs +0 -0
- package/templates/hooks/notifications/send-discord.sh +0 -0
- package/templates/hooks/notifications/telegram_notify.sh +17 -4
- package/templates/hooks/post-edit-simplify-reminder.cjs +156 -0
- package/templates/hooks/privacy-block.cjs +97 -188
- package/templates/hooks/scout-block/broad-pattern-detector.cjs +4 -6
- package/templates/hooks/scout-block/error-formatter.cjs +0 -0
- package/templates/hooks/scout-block/path-extractor.cjs +102 -13
- package/templates/hooks/scout-block/pattern-matcher.cjs +16 -1
- package/templates/hooks/scout-block/tests/{test-broad-pattern-detector.js → test-broad-pattern-detector.cjs} +1 -61
- package/templates/hooks/scout-block/tests/{test-build-command-allowlist.js → test-build-command-allowlist.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-error-formatter.js → test-error-formatter.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-full-flow-edge-cases.js → test-full-flow-edge-cases.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-monorepo-scenarios.js → test-monorepo-scenarios.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-path-extractor.js → test-path-extractor.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-pattern-matcher.js → test-pattern-matcher.cjs} +1 -1
- package/templates/hooks/scout-block.cjs +100 -87
- package/templates/hooks/session-init.cjs +197 -330
- package/templates/hooks/skill-dedup.cjs +268 -0
- package/templates/hooks/subagent-init.cjs +75 -22
- package/templates/hooks/task-completed-handler.cjs +118 -0
- package/templates/hooks/team-context-inject.cjs +176 -0
- package/templates/hooks/teammate-idle-handler.cjs +121 -0
- package/templates/hooks/tests/scout-block/broad-pattern-detector.test.cjs +231 -0
- package/templates/hooks/tests/scout-block/fixtures/ckignore-custom.txt +6 -0
- package/templates/hooks/tests/scout-block/fixtures/ckignore-default.txt +13 -0
- package/templates/hooks/tests/scout-block/fixtures/ckignore-negation.txt +8 -0
- package/templates/hooks/tests/scout-block/path-extractor.test.cjs +527 -0
- package/templates/hooks/tests/scout-block/pattern-matcher.test.cjs +293 -0
- package/templates/hooks/tests/scout-block/scout-checker.test.cjs +741 -0
- package/templates/hooks/tests/{test-ckignore.js → test-ckignore.cjs} +0 -0
- package/templates/hooks/tests/{test-modularization-hook.js → test-modularization-hook.cjs} +0 -0
- package/templates/hooks/tests/{test-privacy-block.js → test-privacy-block.cjs} +1 -1
- package/templates/hooks/tests/test-scout-block.cjs +315 -0
- package/templates/hooks/usage-context-awareness.cjs +179 -0
- package/templates/metadata.json +104 -0
- package/templates/scripts/README.md +94 -198
- package/templates/scripts/ck-help.py +19 -855
- package/templates/scripts/commands_data.yaml +3 -621
- package/templates/scripts/fix-shebang-permissions.sh +50 -0
- package/templates/scripts/generate_catalogs.py +37 -8
- package/templates/scripts/resolve_env.py +0 -0
- package/templates/scripts/scan_commands.py +14 -96
- package/templates/scripts/scan_skills.py +59 -19
- package/templates/scripts/set-active-plan.cjs +8 -3
- package/templates/scripts/skills_data.yaml +2 -596
- package/templates/scripts/test-ck-help.py +15 -0
- package/templates/scripts/test_ck_help.py +139 -0
- package/templates/scripts/test_ck_help_integration.py +72 -0
- package/templates/scripts/validate-docs.cjs +342 -0
- package/templates/scripts/win_compat.py +0 -0
- package/templates/scripts/worktree.cjs +4 -652
- package/templates/scripts/worktree.test.cjs +5 -330
- package/templates/settings.json +104 -239
- package/templates/skills/README.md +95 -255
- package/templates/skills/THIRD_PARTY_NOTICES.md +405 -0
- package/templates/skills/agent-browser/SKILL.md +294 -0
- package/templates/skills/agent-browser/references/.gitkeep +0 -0
- package/templates/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/templates/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/templates/skills/ai-artist/SKILL.md +103 -56
- package/templates/skills/ai-artist/data/awesome-prompts.csv +3592 -0
- package/templates/skills/ai-artist/data/lighting.csv +19 -0
- package/templates/skills/ai-artist/data/nano-banana-templates.csv +17 -0
- package/templates/skills/ai-artist/data/platforms.csv +11 -0
- package/templates/skills/ai-artist/data/styles.csv +26 -0
- package/templates/skills/ai-artist/data/techniques.csv +19 -0
- package/templates/skills/ai-artist/data/use-cases.csv +16 -0
- package/templates/skills/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
- package/templates/skills/ai-artist/references/nano-banana.md +78 -1
- package/templates/skills/ai-artist/references/validation-workflow.md +117 -0
- package/templates/skills/ai-artist/scripts/core.py +197 -0
- package/templates/skills/ai-artist/scripts/extract_prompts.py +102 -0
- package/templates/skills/ai-artist/scripts/generate.py +370 -0
- package/templates/skills/ai-artist/scripts/search.py +147 -0
- package/templates/skills/ai-multimodal/SKILL.md +4 -3
- package/templates/skills/ai-multimodal/scripts/check_setup.py +12 -2
- package/templates/skills/ai-multimodal/scripts/document_converter.py +0 -0
- package/templates/skills/ai-multimodal/scripts/gemini_batch_process.py +3 -2
- package/templates/skills/ai-multimodal/scripts/media_optimizer.py +0 -0
- package/templates/skills/ask/SKILL.md +58 -0
- package/templates/skills/backend-development/SKILL.md +3 -2
- package/templates/skills/better-auth/SKILL.md +3 -2
- package/templates/skills/better-auth/scripts/better_auth_init.py +3 -3
- package/templates/skills/bootstrap/SKILL.md +101 -0
- package/templates/skills/bootstrap/references/shared-phases.md +59 -0
- package/templates/skills/bootstrap/references/workflow-auto.md +52 -0
- package/templates/skills/bootstrap/references/workflow-fast.md +50 -0
- package/templates/skills/bootstrap/references/workflow-full.md +60 -0
- package/templates/skills/bootstrap/references/workflow-parallel.md +59 -0
- package/templates/skills/brainstorm/SKILL.md +77 -0
- package/templates/skills/chrome-devtools/SKILL.md +221 -68
- package/templates/skills/chrome-devtools/scripts/README.md +18 -0
- package/templates/skills/chrome-devtools/scripts/__tests__/error-handling.test.js +102 -0
- package/templates/skills/chrome-devtools/scripts/aria-snapshot.js +2 -1
- package/templates/skills/chrome-devtools/scripts/click.js +2 -1
- package/templates/skills/chrome-devtools/scripts/connect-chrome.js +146 -0
- package/templates/skills/chrome-devtools/scripts/console.js +3 -1
- package/templates/skills/chrome-devtools/scripts/evaluate.js +6 -3
- package/templates/skills/chrome-devtools/scripts/fill.js +2 -1
- package/templates/skills/chrome-devtools/scripts/import-cookies.js +205 -0
- package/templates/skills/chrome-devtools/scripts/inject-auth.js +2 -1
- package/templates/skills/chrome-devtools/scripts/install-deps.sh +0 -0
- package/templates/skills/chrome-devtools/scripts/install.sh +0 -0
- package/templates/skills/chrome-devtools/scripts/lib/browser.js +60 -4
- package/templates/skills/chrome-devtools/scripts/navigate.js +86 -2
- package/templates/skills/chrome-devtools/scripts/network.js +3 -1
- package/templates/skills/chrome-devtools/scripts/performance.js +3 -1
- package/templates/skills/chrome-devtools/scripts/screenshot.js +2 -1
- package/templates/skills/chrome-devtools/scripts/select-ref.js +2 -1
- package/templates/skills/chrome-devtools/scripts/snapshot.js +2 -1
- package/templates/skills/chrome-devtools/scripts/ws-debug.js +44 -0
- package/templates/skills/chrome-devtools/scripts/ws-full-debug.js +107 -0
- package/templates/skills/ck-help/SKILL.md +102 -0
- package/templates/skills/ck-help/scripts/ck-help.py +1321 -0
- package/templates/skills/ck-help/scripts/commands_data.yaml +3 -0
- package/templates/skills/ck-help/scripts/skills_data.yaml +593 -0
- package/templates/skills/code-review/SKILL.md +97 -93
- package/templates/skills/code-review/references/code-review-reception.md +113 -209
- package/templates/skills/code-review/references/codebase-scan-workflow.md +29 -0
- package/templates/skills/code-review/references/edge-case-scouting.md +119 -0
- package/templates/skills/code-review/references/parallel-review-workflow.md +69 -0
- package/templates/skills/code-review/references/requesting-code-review.md +115 -104
- package/templates/skills/code-review/references/task-management-reviews.md +140 -0
- package/templates/skills/code-review/references/verification-before-completion.md +138 -138
- package/templates/skills/coding-level/SKILL.md +56 -0
- package/templates/skills/common/README.md +120 -0
- package/templates/skills/common/api_key_helper.py +411 -0
- package/templates/skills/common/api_key_rotator.py +248 -0
- package/templates/skills/context-engineering/SKILL.md +108 -0
- package/templates/skills/context-engineering/references/context-compression.md +84 -0
- package/templates/skills/context-engineering/references/context-degradation.md +93 -0
- package/templates/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/templates/skills/context-engineering/references/context-optimization.md +82 -0
- package/templates/skills/context-engineering/references/evaluation.md +89 -0
- package/templates/skills/context-engineering/references/memory-systems.md +88 -0
- package/templates/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/templates/skills/context-engineering/references/project-development.md +97 -0
- package/templates/skills/context-engineering/references/runtime-awareness.md +202 -0
- package/templates/skills/context-engineering/references/tool-design.md +86 -0
- package/templates/skills/context-engineering/scripts/compression_evaluator.py +349 -0
- package/templates/skills/context-engineering/scripts/context_analyzer.py +317 -0
- package/templates/skills/context-engineering/scripts/tests/test_edge_cases.py +246 -0
- package/templates/skills/cook/README.md +86 -0
- package/templates/skills/cook/SKILL.md +113 -0
- package/templates/skills/cook/references/intent-detection.md +101 -0
- package/templates/skills/cook/references/review-cycle.md +75 -0
- package/templates/skills/cook/references/subagent-patterns.md +75 -0
- package/templates/skills/cook/references/workflow-steps.md +172 -0
- package/templates/skills/copywriting/SKILL.md +94 -0
- package/templates/skills/copywriting/references/copy-formulas.md +150 -0
- package/templates/skills/copywriting/references/cta-patterns.md +168 -0
- package/templates/skills/copywriting/references/email-copy.md +193 -0
- package/templates/skills/copywriting/references/headline-templates.md +140 -0
- package/templates/skills/copywriting/references/landing-page-copy.md +175 -0
- package/templates/skills/copywriting/references/power-words.md +189 -0
- package/templates/skills/copywriting/references/social-media-copy.md +222 -0
- package/templates/skills/copywriting/references/workflow-cro.md +83 -0
- package/templates/skills/copywriting/references/workflow-enhance.md +32 -0
- package/templates/skills/copywriting/references/workflow-fast.md +29 -0
- package/templates/skills/copywriting/references/workflow-good.md +39 -0
- package/templates/skills/copywriting/references/writing-styles.md +247 -0
- package/templates/skills/copywriting/scripts/extract-writing-styles.py +308 -0
- package/templates/skills/copywriting/templates/copy-brief.md +49 -0
- package/templates/skills/databases/SKILL.md +7 -155
- package/templates/skills/databases/analytics.md +198 -0
- package/templates/skills/databases/db-design.md +188 -0
- package/templates/skills/databases/incremental-etl.md +213 -0
- package/templates/skills/databases/scripts/db_backup.py +0 -0
- package/templates/skills/databases/scripts/db_migrate.py +3 -2
- package/templates/skills/databases/scripts/db_performance_check.py +3 -2
- package/templates/skills/databases/stacks/bigquery.md +231 -0
- package/templates/skills/databases/stacks/d1_cloudflare.md +137 -0
- package/templates/skills/databases/stacks/mysql.md +216 -0
- package/templates/skills/databases/stacks/postgres.md +235 -0
- package/templates/skills/databases/stacks/sqlite.md +244 -0
- package/templates/skills/databases/transactional.md +176 -0
- package/templates/skills/debug/SKILL.md +121 -0
- package/templates/skills/debug/references/frontend-verification.md +103 -0
- package/templates/skills/debug/references/investigation-methodology.md +101 -0
- package/templates/skills/debug/references/log-and-ci-analysis.md +97 -0
- package/templates/skills/debug/references/performance-diagnostics.md +113 -0
- package/templates/skills/debug/references/reporting-standards.md +122 -0
- package/templates/skills/debug/references/task-management-debugging.md +155 -0
- package/templates/skills/devops/SKILL.md +65 -253
- package/templates/skills/devops/references/kubernetes-basics.md +99 -0
- package/templates/skills/devops/references/kubernetes-helm-advanced.md +75 -0
- package/templates/skills/devops/references/kubernetes-helm.md +81 -0
- package/templates/skills/devops/references/kubernetes-kubectl.md +74 -0
- package/templates/skills/devops/references/kubernetes-security-advanced.md +98 -0
- package/templates/skills/devops/references/kubernetes-security.md +95 -0
- package/templates/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/templates/skills/devops/references/kubernetes-troubleshooting.md +49 -0
- package/templates/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/templates/skills/devops/references/kubernetes-workflows.md +78 -0
- package/templates/skills/devops/scripts/cloudflare_deploy.py +0 -0
- package/templates/skills/devops/scripts/docker_optimize.py +3 -2
- package/templates/skills/docs/SKILL.md +55 -0
- package/templates/skills/docs/references/init-workflow.md +32 -0
- package/templates/skills/docs/references/summarize-workflow.md +18 -0
- package/templates/skills/docs/references/update-workflow.md +59 -0
- package/templates/skills/docs-seeker/SKILL.md +3 -2
- package/templates/skills/docs-seeker/scripts/analyze-llms-txt.js +0 -0
- package/templates/skills/docs-seeker/scripts/detect-topic.js +0 -0
- package/templates/skills/docs-seeker/scripts/fetch-docs.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/run-tests.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/test-analyze-llms.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/test-detect-topic.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/test-fetch-docs.js +0 -0
- package/templates/skills/docs-seeker/scripts/utils/env-loader.js +0 -0
- package/templates/skills/document-skills/docx/SKILL.md +2 -2
- package/templates/skills/document-skills/docx/ooxml/scripts/pack.py +0 -0
- package/templates/skills/document-skills/docx/ooxml/scripts/unpack.py +0 -0
- package/templates/skills/document-skills/docx/ooxml/scripts/validate.py +0 -0
- package/templates/skills/document-skills/docx/scripts/document.py +0 -0
- package/templates/skills/document-skills/docx/scripts/utilities.py +0 -0
- package/templates/skills/document-skills/pdf/SKILL.md +2 -2
- package/templates/skills/document-skills/pptx/SKILL.md +2 -2
- package/templates/skills/document-skills/pptx/ooxml/scripts/pack.py +0 -0
- package/templates/skills/document-skills/pptx/ooxml/scripts/unpack.py +0 -0
- package/templates/skills/document-skills/pptx/ooxml/scripts/validate.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/inventory.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/rearrange.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/replace.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/thumbnail.py +0 -0
- package/templates/skills/document-skills/xlsx/SKILL.md +2 -2
- package/templates/skills/document-skills/xlsx/recalc.py +3 -2
- package/templates/skills/find-skills/SKILL.md +134 -0
- package/templates/skills/fix/SKILL.md +111 -0
- package/templates/skills/fix/references/complexity-assessment.md +72 -0
- package/templates/skills/fix/references/mode-selection.md +46 -0
- package/templates/skills/fix/references/parallel-exploration.md +100 -0
- package/templates/skills/fix/references/review-cycle.md +77 -0
- package/templates/skills/fix/references/skill-activation-matrix.md +78 -0
- package/templates/skills/fix/references/task-orchestration.md +103 -0
- package/templates/skills/fix/references/workflow-ci.md +28 -0
- package/templates/skills/fix/references/workflow-deep.md +122 -0
- package/templates/skills/fix/references/workflow-logs.md +72 -0
- package/templates/skills/fix/references/workflow-quick.md +59 -0
- package/templates/skills/fix/references/workflow-standard.md +111 -0
- package/templates/skills/fix/references/workflow-test.md +75 -0
- package/templates/skills/fix/references/workflow-types.md +33 -0
- package/templates/skills/fix/references/workflow-ui.md +75 -0
- package/templates/skills/frontend-design/SKILL.md +78 -91
- package/templates/skills/frontend-design/references/ai-multimodal-overview.md +6 -6
- package/templates/skills/frontend-design/references/animejs.md +395 -395
- package/templates/skills/frontend-design/references/asset-generation.md +4 -4
- package/templates/skills/frontend-design/references/visual-analysis-overview.md +1 -1
- package/templates/skills/frontend-design/references/workflow-3d.md +102 -0
- package/templates/skills/frontend-design/references/workflow-describe.md +87 -0
- package/templates/skills/frontend-design/references/workflow-immersive.md +87 -0
- package/templates/skills/frontend-design/references/workflow-quick.md +57 -0
- package/templates/skills/frontend-design/references/workflow-screenshot.md +63 -0
- package/templates/skills/frontend-design/references/workflow-video.md +74 -0
- package/templates/skills/frontend-development/SKILL.md +4 -3
- package/templates/skills/git/SKILL.md +114 -0
- package/templates/skills/git/references/branch-management.md +88 -0
- package/templates/skills/git/references/commit-standards.md +46 -0
- package/templates/skills/git/references/gh-cli-guide.md +109 -0
- package/templates/skills/git/references/safety-protocols.md +69 -0
- package/templates/skills/git/references/workflow-commit.md +58 -0
- package/templates/skills/git/references/workflow-merge.md +48 -0
- package/templates/skills/git/references/workflow-pr.md +58 -0
- package/templates/skills/git/references/workflow-push.md +52 -0
- package/templates/skills/gkg/SKILL.md +91 -0
- package/templates/skills/gkg/references/cli-commands.md +106 -0
- package/templates/skills/gkg/references/http-api.md +102 -0
- package/templates/skills/gkg/references/language-support.md +57 -0
- package/templates/skills/gkg/references/mcp-tools.md +99 -0
- package/templates/skills/google-adk-python/SKILL.md +91 -195
- package/templates/skills/google-adk-python/references/agent-types-and-architecture.md +128 -0
- package/templates/skills/google-adk-python/references/callbacks-plugins-observability.md +117 -0
- package/templates/skills/google-adk-python/references/deployment-cloud-run-vertex-gke.md +138 -0
- package/templates/skills/google-adk-python/references/evaluation-testing-cli.md +112 -0
- package/templates/skills/google-adk-python/references/multi-agent-and-a2a-protocol.md +145 -0
- package/templates/skills/google-adk-python/references/sessions-state-memory-artifacts.md +131 -0
- package/templates/skills/google-adk-python/references/tools-and-mcp-integration.md +146 -0
- package/templates/skills/install.ps1 +130 -26
- package/templates/skills/install.sh +383 -63
- package/templates/skills/journal/SKILL.md +11 -0
- package/templates/skills/kanban/SKILL.md +99 -0
- package/templates/skills/markdown-novel-viewer/SKILL.md +314 -0
- package/templates/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/templates/skills/markdown-novel-viewer/assets/favicon.png +0 -0
- package/templates/skills/markdown-novel-viewer/assets/novel-theme.css +16 -0
- package/templates/skills/markdown-novel-viewer/assets/reader.js +838 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-base.css +54 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-components.css +180 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-content.css +176 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-header.css +217 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-mermaid.css +153 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-overlays.css +202 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-responsive.css +285 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-sidebar.css +359 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-variables.css +56 -0
- package/templates/skills/markdown-novel-viewer/assets/template.html +149 -0
- package/templates/skills/markdown-novel-viewer/bun.lock +38 -0
- package/templates/skills/markdown-novel-viewer/package.json +15 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +571 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +48 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/templates/skills/markdown-novel-viewer/scripts/server.cjs +411 -0
- package/templates/skills/markdown-novel-viewer/scripts/tests/server.test.cjs +283 -0
- package/templates/skills/markdown-novel-viewer/tests/dashboard-assets.test.cjs +340 -0
- package/templates/skills/markdown-novel-viewer/tests/dashboard-renderer.test.cjs +404 -0
- package/templates/skills/markdown-novel-viewer/tests/http-server.test.cjs +271 -0
- package/templates/skills/markdown-novel-viewer/tests/run-tests.cjs +51 -0
- package/templates/skills/markdown-novel-viewer/tests/test-framework.cjs +154 -0
- package/templates/skills/markdown-novel-viewer/tests/verify-xss.cjs +90 -0
- package/templates/skills/mcp-builder/SKILL.md +3 -2
- package/templates/skills/mcp-builder/scripts/evaluation.py +9 -1
- package/templates/skills/mcp-management/SKILL.md +8 -7
- package/templates/skills/mcp-management/references/gemini-cli-integration.md +16 -10
- package/templates/skills/mcp-management/scripts/cli.ts +0 -0
- package/templates/skills/mcp-management/scripts/dist/analyze-tools.js +0 -0
- package/templates/skills/mcp-management/scripts/dist/cli.js +0 -0
- package/templates/skills/mcp-management/scripts/dist/mcp-client.js +0 -0
- package/templates/skills/mcp-management/scripts/mcp-client.ts +0 -0
- package/templates/skills/media-processing/SKILL.md +3 -2
- package/templates/skills/media-processing/scripts/batch-remove-background.sh +0 -0
- package/templates/skills/media-processing/scripts/batch_resize.py +0 -0
- package/templates/skills/media-processing/scripts/media_convert.py +0 -0
- package/templates/skills/media-processing/scripts/remove-background.sh +0 -0
- package/templates/skills/media-processing/scripts/remove-bg-node.js +0 -0
- package/templates/skills/media-processing/scripts/tests/test_batch_resize.py +0 -0
- package/templates/skills/media-processing/scripts/tests/test_media_convert.py +0 -0
- package/templates/skills/media-processing/scripts/tests/test_video_optimize.py +0 -0
- package/templates/skills/media-processing/scripts/video_optimize.py +0 -0
- package/templates/skills/mermaidjs-v11/SKILL.md +116 -0
- package/templates/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/templates/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/templates/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/templates/skills/mermaidjs-v11/references/examples.md +344 -0
- package/templates/skills/mermaidjs-v11/references/integration.md +310 -0
- package/templates/skills/mintlify/SKILL.md +121 -0
- package/templates/skills/mintlify/references/ai-features-and-integrations-reference.md +756 -0
- package/templates/skills/mintlify/references/api-documentation-components-reference.md +873 -0
- package/templates/skills/mintlify/references/deployment-and-continuous-integration-reference.md +674 -0
- package/templates/skills/mintlify/references/docs-json-configuration-reference.md +724 -0
- package/templates/skills/mintlify/references/mdx-components-reference.md +551 -0
- package/templates/skills/mintlify/references/navigation-structure-and-organization-reference.md +775 -0
- package/templates/skills/mobile-development/SKILL.md +3 -2
- package/templates/skills/payment-integration/README.md +44 -12
- package/templates/skills/payment-integration/SKILL.md +82 -97
- package/templates/skills/payment-integration/references/creem/api.md +139 -0
- package/templates/skills/payment-integration/references/creem/checkouts.md +99 -0
- package/templates/skills/payment-integration/references/creem/licensing.md +136 -0
- package/templates/skills/payment-integration/references/creem/overview.md +65 -0
- package/templates/skills/payment-integration/references/creem/sdk.md +161 -0
- package/templates/skills/payment-integration/references/creem/subscriptions.md +129 -0
- package/templates/skills/payment-integration/references/creem/webhooks.md +120 -0
- package/templates/skills/payment-integration/references/implementation-workflows.md +43 -0
- package/templates/skills/payment-integration/references/multi-provider-order-management-patterns.md +821 -0
- package/templates/skills/payment-integration/references/paddle/api.md +116 -0
- package/templates/skills/payment-integration/references/paddle/best-practices.md +130 -0
- package/templates/skills/payment-integration/references/paddle/overview.md +57 -0
- package/templates/skills/payment-integration/references/paddle/paddle-js.md +106 -0
- package/templates/skills/payment-integration/references/paddle/sdk.md +131 -0
- package/templates/skills/payment-integration/references/paddle/subscriptions.md +118 -0
- package/templates/skills/payment-integration/references/paddle/webhooks.md +112 -0
- package/templates/skills/payment-integration/references/polar/best-practices.md +781 -361
- package/templates/skills/payment-integration/references/sepay/best-practices.md +870 -268
- package/templates/skills/payment-integration/references/stripe/stripe-best-practices.md +32 -0
- package/templates/skills/payment-integration/references/stripe/stripe-cli.md +148 -0
- package/templates/skills/payment-integration/references/stripe/stripe-js.md +116 -0
- package/templates/skills/payment-integration/references/stripe/stripe-sdks.md +84 -0
- package/templates/skills/payment-integration/references/stripe/stripe-upgrade.md +175 -0
- package/templates/skills/payment-integration/scripts/checkout-helper.js +0 -0
- package/templates/skills/payment-integration/scripts/polar-webhook-verify.js +0 -0
- package/templates/skills/payment-integration/scripts/sepay-webhook-verify.js +0 -0
- package/templates/skills/payment-integration/scripts/test-scripts.js +0 -0
- package/templates/skills/plan/SKILL.md +137 -0
- package/templates/skills/plan/references/archive-workflow.md +53 -0
- package/templates/skills/{planning → plan}/references/codebase-understanding.md +1 -1
- package/templates/skills/{planning → plan}/references/output-standards.md +15 -1
- package/templates/skills/{planning → plan}/references/plan-organization.md +12 -19
- package/templates/skills/plan/references/red-team-personas.md +69 -0
- package/templates/skills/plan/references/red-team-workflow.md +77 -0
- package/templates/skills/{planning → plan}/references/research-phase.md +2 -2
- package/templates/skills/plan/references/task-management.md +132 -0
- package/templates/skills/plan/references/validate-question-framework.md +80 -0
- package/templates/skills/plan/references/validate-workflow.md +65 -0
- package/templates/skills/plan/references/workflow-modes.md +145 -0
- package/templates/skills/plans-kanban/SKILL.md +167 -0
- package/templates/skills/plans-kanban/assets/dashboard-template.html +119 -0
- package/templates/skills/plans-kanban/assets/dashboard.css +1594 -0
- package/templates/skills/plans-kanban/assets/dashboard.js +596 -0
- package/templates/skills/plans-kanban/assets/favicon.png +0 -0
- package/templates/skills/plans-kanban/package.json +13 -0
- package/templates/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +884 -0
- package/templates/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
- package/templates/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
- package/templates/skills/plans-kanban/scripts/lib/plan-parser.cjs +175 -0
- package/templates/skills/plans-kanban/scripts/lib/plan-scanner.cjs +272 -0
- package/templates/skills/plans-kanban/scripts/lib/port-finder.cjs +48 -0
- package/templates/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
- package/templates/skills/plans-kanban/scripts/server.cjs +260 -0
- package/templates/skills/preview/SKILL.md +75 -0
- package/templates/skills/preview/references/generation-modes.md +95 -0
- package/templates/skills/preview/references/view-mode.md +42 -0
- package/templates/skills/problem-solving/SKILL.md +3 -2
- package/templates/skills/project-management/SKILL.md +122 -0
- package/templates/skills/project-management/references/documentation-triggers.md +60 -0
- package/templates/skills/project-management/references/hydration-workflow.md +85 -0
- package/templates/skills/project-management/references/progress-tracking.md +96 -0
- package/templates/skills/project-management/references/reporting-patterns.md +94 -0
- package/templates/skills/project-management/references/task-operations.md +85 -0
- package/templates/skills/react-best-practices/AGENTS.md +2249 -0
- package/templates/skills/react-best-practices/README.md +123 -0
- package/templates/skills/react-best-practices/SKILL.md +122 -0
- package/templates/skills/react-best-practices/metadata.json +15 -0
- package/templates/skills/react-best-practices/rules/_sections.md +46 -0
- package/templates/skills/react-best-practices/rules/_template.md +28 -0
- package/templates/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/templates/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/templates/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/templates/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/templates/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/templates/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/templates/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/templates/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/templates/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/templates/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/templates/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/templates/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/templates/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/templates/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/templates/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/templates/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/templates/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/templates/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/templates/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/templates/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/templates/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/templates/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/templates/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/templates/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/templates/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/templates/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/templates/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/templates/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/templates/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/templates/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/templates/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/templates/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/templates/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/templates/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/templates/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/templates/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/templates/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/templates/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/templates/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/templates/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/templates/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/templates/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/templates/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/templates/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/templates/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/templates/skills/remotion/SKILL.md +44 -0
- package/templates/skills/remotion/rules/3d.md +86 -0
- package/templates/skills/remotion/rules/animations.md +29 -0
- package/templates/skills/remotion/rules/assets/charts-bar-chart.tsx +173 -0
- package/templates/skills/remotion/rules/assets/text-animations-typewriter.tsx +100 -0
- package/templates/skills/remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/templates/skills/remotion/rules/assets.md +78 -0
- package/templates/skills/remotion/rules/audio.md +172 -0
- package/templates/skills/remotion/rules/calculate-metadata.md +104 -0
- package/templates/skills/remotion/rules/can-decode.md +75 -0
- package/templates/skills/remotion/rules/charts.md +58 -0
- package/templates/skills/remotion/rules/compositions.md +146 -0
- package/templates/skills/remotion/rules/display-captions.md +126 -0
- package/templates/skills/remotion/rules/extract-frames.md +229 -0
- package/templates/skills/remotion/rules/fonts.md +152 -0
- package/templates/skills/remotion/rules/get-audio-duration.md +58 -0
- package/templates/skills/remotion/rules/get-video-dimensions.md +68 -0
- package/templates/skills/remotion/rules/get-video-duration.md +58 -0
- package/templates/skills/remotion/rules/gifs.md +138 -0
- package/templates/skills/remotion/rules/images.md +130 -0
- package/templates/skills/remotion/rules/import-srt-captions.md +67 -0
- package/templates/skills/remotion/rules/lottie.md +68 -0
- package/templates/skills/remotion/rules/measuring-dom-nodes.md +35 -0
- package/templates/skills/remotion/rules/measuring-text.md +143 -0
- package/templates/skills/remotion/rules/sequencing.md +106 -0
- package/templates/skills/remotion/rules/tailwind.md +11 -0
- package/templates/skills/remotion/rules/text-animations.md +20 -0
- package/templates/skills/remotion/rules/timing.md +179 -0
- package/templates/skills/remotion/rules/transcribe-captions.md +19 -0
- package/templates/skills/remotion/rules/transitions.md +122 -0
- package/templates/skills/remotion/rules/trimming.md +53 -0
- package/templates/skills/remotion/rules/videos.md +171 -0
- package/templates/skills/repomix/SKILL.md +3 -2
- package/templates/skills/repomix/scripts/repomix_batch.py +0 -0
- package/templates/skills/research/SKILL.md +9 -6
- package/templates/skills/scout/SKILL.md +89 -0
- package/templates/skills/scout/references/external-scouting.md +140 -0
- package/templates/skills/scout/references/internal-scouting.md +119 -0
- package/templates/skills/scout/references/task-management-scouting.md +125 -0
- package/templates/skills/sequential-thinking/SKILL.md +3 -2
- package/templates/skills/sequential-thinking/scripts/format-thought.js +0 -0
- package/templates/skills/sequential-thinking/scripts/process-thought.js +0 -0
- package/templates/skills/shader/SKILL.md +113 -0
- package/templates/skills/shader/references/glsl-cellular-voronoi-worley-noise-patterns.md +142 -0
- package/templates/skills/shader/references/glsl-colors-rgb-hsb-gradients-mixing-color-spaces.md +143 -0
- package/templates/skills/shader/references/glsl-fbm-fractional-brownian-motion-turbulence-octaves.md +146 -0
- package/templates/skills/shader/references/glsl-fundamentals-data-types-vectors-precision-coordinates.md +104 -0
- package/templates/skills/shader/references/glsl-noise-random-perlin-simplex-cellular-voronoi.md +115 -0
- package/templates/skills/shader/references/glsl-pattern-symmetry-truchet-domain-warping.md +134 -0
- package/templates/skills/shader/references/glsl-patterns-tiling-fract-matrices-transformations.md +133 -0
- package/templates/skills/shader/references/glsl-procedural-textures-clouds-marble-wood-terrain.md +144 -0
- package/templates/skills/shader/references/glsl-shader-builtin-functions-complete-api-reference.md +112 -0
- package/templates/skills/shader/references/glsl-shapes-polygon-star-polar-sdf-combinations.md +124 -0
- package/templates/skills/shader/references/glsl-shapes-sdf-circles-rectangles-polar-distance-fields.md +106 -0
- package/templates/skills/shader/references/glsl-shaping-functions-step-smoothstep-curves-interpolation.md +141 -0
- package/templates/skills/shopify/SKILL.md +3 -2
- package/templates/skills/shopify/scripts/shopify_init.py +5 -5
- package/templates/skills/skill-creator/SKILL.md +91 -238
- package/templates/skills/skill-creator/references/benchmark-optimization-guide.md +86 -0
- package/templates/skills/skill-creator/references/distribution-guide.md +79 -0
- package/templates/skills/skill-creator/references/mcp-skills-integration.md +71 -0
- package/templates/skills/skill-creator/references/metadata-quality-criteria.md +76 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-hosting.md +104 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-overview.md +89 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-schema.md +93 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-sources.md +103 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +76 -0
- package/templates/skills/skill-creator/references/script-quality-criteria.md +106 -0
- package/templates/skills/skill-creator/references/skill-anatomy-and-requirements.md +76 -0
- package/templates/skills/skill-creator/references/skill-creation-workflow.md +95 -0
- package/templates/skills/skill-creator/references/skill-design-patterns.md +75 -0
- package/templates/skills/skill-creator/references/skillmark-benchmark-criteria.md +102 -0
- package/templates/skills/skill-creator/references/structure-organization-criteria.md +114 -0
- package/templates/skills/skill-creator/references/testing-and-iteration.md +78 -0
- package/templates/skills/skill-creator/references/token-efficiency-criteria.md +74 -0
- package/templates/skills/skill-creator/references/troubleshooting-guide.md +80 -0
- package/templates/skills/skill-creator/references/validation-checklist.md +83 -0
- package/templates/skills/skill-creator/references/writing-effective-instructions.md +88 -0
- package/templates/skills/skill-creator/references/yaml-frontmatter-reference.md +91 -0
- package/templates/skills/skill-creator/scripts/debug.zip +0 -0
- package/templates/skills/skill-creator/scripts/encoding_utils.py +36 -0
- package/templates/skills/skill-creator/scripts/init_skill.py +9 -4
- package/templates/skills/skill-creator/scripts/package_skill.py +5 -0
- package/templates/skills/skill-creator/scripts/quick_validate.py +6 -2
- package/templates/skills/tanstack/SKILL.md +141 -0
- package/templates/skills/tanstack/references/tanstack-ai.md +97 -0
- package/templates/skills/tanstack/references/tanstack-form.md +125 -0
- package/templates/skills/tanstack/references/tanstack-start.md +100 -0
- package/templates/skills/team/SKILL.md +285 -0
- package/templates/skills/team/references/agent-teams-controls-and-modes.md +107 -0
- package/templates/skills/team/references/agent-teams-examples-and-best-practices.md +182 -0
- package/templates/skills/team/references/agent-teams-official-docs.md +175 -0
- package/templates/skills/template-skill/SKILL.md +1 -1
- package/templates/skills/test/SKILL.md +109 -0
- package/templates/skills/test/references/report-format.md +58 -0
- package/templates/skills/test/references/test-execution-workflow.md +103 -0
- package/templates/skills/test/references/ui-testing-workflow.md +65 -0
- package/templates/skills/threejs/SKILL.md +106 -53
- package/templates/skills/threejs/data/api-reference.csv +61 -0
- package/templates/skills/threejs/data/categories.csv +14 -0
- package/templates/skills/threejs/data/examples-all.csv +557 -0
- package/templates/skills/threejs/data/use-cases.csv +21 -0
- package/templates/skills/threejs/references/00-fundamentals.md +487 -0
- package/templates/skills/threejs/references/11-materials-advanced.md +1 -1
- package/templates/skills/threejs/references/11-materials.md +519 -0
- package/templates/skills/threejs/references/17-shader.md +641 -0
- package/templates/skills/threejs/references/18-geometry.md +547 -0
- package/templates/skills/threejs/scripts/core.py +236 -0
- package/templates/skills/threejs/scripts/extract_examples.py +688 -0
- package/templates/skills/threejs/scripts/generate_csv_from_json.py +135 -0
- package/templates/skills/threejs/scripts/search.py +77 -0
- package/templates/skills/ui-styling/SKILL.md +3 -2
- package/templates/skills/ui-styling/scripts/shadcn_add.py +0 -0
- package/templates/skills/ui-styling/scripts/tailwind_config_gen.py +1 -1
- package/templates/skills/ui-ux-pro-max/SKILL.md +69 -32
- package/templates/skills/ui-ux-pro-max/data/charts.csv +25 -25
- package/templates/skills/ui-ux-pro-max/data/colors.csv +96 -96
- package/templates/skills/ui-ux-pro-max/data/landing.csv +30 -30
- package/templates/skills/ui-ux-pro-max/data/products.csv +96 -96
- package/templates/skills/ui-ux-pro-max/data/prompts.csv +20 -20
- package/templates/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/templates/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/templates/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/templates/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/templates/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/templates/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/templates/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/templates/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/templates/skills/ui-ux-pro-max/data/styles.csv +58 -58
- package/templates/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/skills/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/templates/skills/ui-ux-pro-max/scripts/design_system.py +494 -0
- package/templates/skills/ui-ux-pro-max/scripts/search.py +84 -61
- package/templates/skills/use-mcp/SKILL.md +42 -0
- package/templates/skills/watzup/SKILL.md +12 -0
- package/templates/skills/web-design-guidelines/SKILL.md +36 -0
- package/templates/skills/web-frameworks/SKILL.md +4 -3
- package/templates/skills/web-frameworks/scripts/nextjs_init.py +13 -13
- package/templates/skills/web-frameworks/scripts/turborepo_migrate.py +0 -0
- package/templates/skills/web-testing/SKILL.md +97 -0
- package/templates/skills/web-testing/references/accessibility-testing.md +84 -0
- package/templates/skills/web-testing/references/api-testing.md +78 -0
- package/templates/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
- package/templates/skills/web-testing/references/component-testing.md +94 -0
- package/templates/skills/web-testing/references/contract-testing.md +146 -0
- package/templates/skills/web-testing/references/cross-browser-checklist.md +72 -0
- package/templates/skills/web-testing/references/database-testing.md +139 -0
- package/templates/skills/web-testing/references/e2e-testing-playwright.md +119 -0
- package/templates/skills/web-testing/references/functional-testing-checklist.md +88 -0
- package/templates/skills/web-testing/references/interactive-testing-patterns.md +89 -0
- package/templates/skills/web-testing/references/load-testing-k6.md +93 -0
- package/templates/skills/web-testing/references/mobile-gesture-testing.md +85 -0
- package/templates/skills/web-testing/references/performance-core-web-vitals.md +124 -0
- package/templates/skills/web-testing/references/playwright-component-testing.md +115 -0
- package/templates/skills/web-testing/references/pre-release-checklist.md +75 -0
- package/templates/skills/web-testing/references/security-checklists.md +81 -0
- package/templates/skills/web-testing/references/security-testing-overview.md +92 -0
- package/templates/skills/web-testing/references/shadow-dom-testing.md +70 -0
- package/templates/skills/web-testing/references/test-data-management.md +131 -0
- package/templates/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
- package/templates/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
- package/templates/skills/web-testing/references/unit-integration-testing.md +138 -0
- package/templates/skills/web-testing/references/visual-regression.md +92 -0
- package/templates/skills/web-testing/references/vulnerability-payloads.md +93 -0
- package/templates/skills/web-testing/scripts/analyze-test-results.js +280 -0
- package/templates/skills/web-testing/scripts/init-playwright.js +233 -0
- package/templates/skills/worktree/SKILL.md +96 -0
- package/templates/skills/worktree/scripts/worktree.cjs +916 -0
- package/templates/skills/worktree/scripts/worktree.test.cjs +792 -0
- package/templates/statusline.cjs +477 -244
- package/templates/statusline.ps1 +0 -1
- package/templates/statusline.sh +0 -1
- package/templates/agents/README.md +0 -172
- package/templates/agents/copywriter.md +0 -113
- package/templates/agents/database-admin.md +0 -97
- package/templates/agents/scout-external.md +0 -146
- package/templates/agents/scout.md +0 -260
- package/templates/hooks/.python-cache.json +0 -1
- package/templates/hooks/README.md +0 -246
- package/templates/hooks/backend-csharp-context.cjs +0 -223
- package/templates/hooks/design-system-context.cjs +0 -185
- package/templates/hooks/frontend-typescript-context.cjs +0 -233
- package/templates/hooks/lib/ck-paths.cjs +0 -110
- package/templates/hooks/lib/context-tracker.cjs +0 -335
- package/templates/hooks/notify-waiting.js +0 -117
- package/templates/hooks/post-edit-prettier.cjs +0 -189
- package/templates/hooks/post-task-review.cjs +0 -142
- package/templates/hooks/scss-styling-context.cjs +0 -213
- package/templates/hooks/session-end.cjs +0 -35
- package/templates/hooks/tests/test-context-tracker.cjs +0 -454
- package/templates/hooks/tests/test-scout-block.js +0 -163
- package/templates/hooks/workflow-router.cjs +0 -326
- package/templates/hooks/write-compact-marker.cjs +0 -159
- package/templates/scripts/__pycache__/win_compat.cpython-312.pyc +0 -0
- package/templates/scripts/plan-preview.cjs +0 -921
- package/templates/skills/arch-cross-service-integration/SKILL.md +0 -48
- package/templates/skills/arch-performance-optimization/SKILL.md +0 -306
- package/templates/skills/arch-security-review/SKILL.md +0 -344
- package/templates/skills/branch-comparison/SKILL.md +0 -150
- package/templates/skills/bug-diagnosis/SKILL.md +0 -309
- package/templates/skills/claude-code/references/advanced-features.md +0 -399
- package/templates/skills/claude-code/references/agent-skills.md +0 -399
- package/templates/skills/claude-code/references/api-reference.md +0 -498
- package/templates/skills/claude-code/references/best-practices.md +0 -447
- package/templates/skills/claude-code/references/cicd-integration.md +0 -428
- package/templates/skills/claude-code/references/common-workflows.md +0 -119
- package/templates/skills/claude-code/references/configuration.md +0 -480
- package/templates/skills/claude-code/references/enterprise-features.md +0 -472
- package/templates/skills/claude-code/references/getting-started.md +0 -252
- package/templates/skills/claude-code/references/hooks-and-plugins.md +0 -444
- package/templates/skills/claude-code/references/hooks-comprehensive.md +0 -622
- package/templates/skills/claude-code/references/ide-integration.md +0 -316
- package/templates/skills/claude-code/references/mcp-integration.md +0 -386
- package/templates/skills/claude-code/references/slash-commands.md +0 -489
- package/templates/skills/claude-code/references/troubleshooting.md +0 -456
- package/templates/skills/claude-code/skill.md +0 -60
- package/templates/skills/debugging/SKILL.md +0 -84
- package/templates/skills/developer-growth-analysis/SKILL.md +0 -322
- package/templates/skills/documentation/SKILL.md +0 -134
- package/templates/skills/domain-name-brainstormer/SKILL.md +0 -212
- package/templates/skills/dual-pass-review/SKILL.md +0 -249
- package/templates/skills/feature-docs/SKILL.md +0 -294
- package/templates/skills/feature-implementation/SKILL.md +0 -262
- package/templates/skills/feature-investigation/SKILL.md +0 -346
- package/templates/skills/frontend-design-pro/SKILL.md +0 -58
- package/templates/skills/package-upgrade/SKILL.md +0 -189
- package/templates/skills/plan-analysis/SKILL.md +0 -191
- package/templates/skills/planning/SKILL.md +0 -115
- package/templates/skills/planning-with-files/SKILL.md +0 -160
- package/templates/skills/planning-with-files/examples.md +0 -202
- package/templates/skills/planning-with-files/reference.md +0 -110
- package/templates/skills/project-index/SKILL.md +0 -97
- package/templates/skills/project-index/scripts/scan-structure.js +0 -417
- package/templates/skills/project-index/scripts/scan_structure.py +0 -450
- package/templates/skills/readme-improvement/SKILL.md +0 -177
- package/templates/skills/skill-share/SKILL.md +0 -80
- package/templates/skills/tasks-code-review/SKILL.md +0 -298
- package/templates/skills/tasks-documentation/SKILL.md +0 -328
- package/templates/skills/tasks-spec-update/SKILL.md +0 -318
- package/templates/skills/tasks-test-generation/SKILL.md +0 -433
- package/templates/skills/test-generation/SKILL.md +0 -203
- package/templates/skills/webapp-testing/LICENSE.txt +0 -202
- package/templates/skills/webapp-testing/SKILL.md +0 -96
- package/templates/skills/webapp-testing/examples/console_logging.py +0 -35
- package/templates/skills/webapp-testing/examples/element_discovery.py +0 -40
- package/templates/skills/webapp-testing/examples/static_html_automation.py +0 -33
- package/templates/skills/webapp-testing/scripts/with_server.py +0 -106
- /package/templates/hooks/scout-block/vendor/{ignore.js → ignore.cjs} +0 -0
- /package/templates/skills/{debugging → debug}/references/defense-in-depth.md +0 -0
- /package/templates/skills/{debugging → debug}/references/root-cause-tracing.md +0 -0
- /package/templates/skills/{debugging → debug}/references/systematic-debugging.md +0 -0
- /package/templates/skills/{debugging → debug}/references/verification.md +0 -0
- /package/templates/skills/{debugging → debug}/scripts/find-polluter.sh +0 -0
- /package/templates/skills/{debugging → debug}/scripts/find-polluter.test.md +0 -0
- /package/templates/skills/{planning → plan}/references/solution-design.md +0 -0
|
@@ -1,869 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""
|
|
3
|
-
|
|
4
|
-
Scans .claude/commands/ directory to build catalog at runtime.
|
|
3
|
+
Backward-compatible wrapper for ck-help.
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
python ck-help.py fix # Category guide with workflow
|
|
9
|
-
python ck-help.py plan/fast # Command details
|
|
10
|
-
python ck-help.py debug login error # Task recommendations
|
|
11
|
-
python ck-help.py auth # Search (unknown word)
|
|
5
|
+
Canonical implementation lives at:
|
|
6
|
+
.claude/skills/ck-help/scripts/ck-help.py
|
|
12
7
|
"""
|
|
13
8
|
|
|
9
|
+
import runpy
|
|
14
10
|
import sys
|
|
15
|
-
import re
|
|
16
|
-
import io
|
|
17
11
|
from pathlib import Path
|
|
18
12
|
|
|
19
|
-
# Fix Windows console encoding for Unicode characters
|
|
20
|
-
if sys.platform == 'win32':
|
|
21
|
-
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
|
22
13
|
|
|
14
|
+
def main() -> int:
|
|
15
|
+
target = (
|
|
16
|
+
Path(__file__).resolve().parent.parent
|
|
17
|
+
/ "skills"
|
|
18
|
+
/ "ck-help"
|
|
19
|
+
/ "scripts"
|
|
20
|
+
/ "ck-help.py"
|
|
21
|
+
)
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
# - comprehensive-docs: Full documentation, show verbatim + add context
|
|
28
|
-
# - category-guide: Workflow guide, show full + explain workflow
|
|
29
|
-
# - command-details: Single command, show + offer to run
|
|
30
|
-
# - search-results: Search matches, show + offer alternatives
|
|
31
|
-
# - task-recommendations: Task-based suggestions, explain reasoning
|
|
32
|
-
OUTPUT_TYPES = {
|
|
33
|
-
"comprehensive-docs": "Show FULL output verbatim, then ADD helpful context, examples, and real-world tips",
|
|
34
|
-
"category-guide": "Show complete workflow, then ENHANCE with practical usage scenarios",
|
|
35
|
-
"command-details": "Show command info, then ADD usage examples and related commands",
|
|
36
|
-
"search-results": "Show all matches, then HELP user narrow down or explore",
|
|
37
|
-
"task-recommendations": "Show recommendations, then EXPLAIN why these fit and offer to start",
|
|
38
|
-
}
|
|
23
|
+
if not target.exists():
|
|
24
|
+
print(f"Error: canonical ck-help script not found: {target}", file=sys.stderr)
|
|
25
|
+
return 1
|
|
39
26
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
print(f"@CK_OUTPUT_TYPE:{output_type}")
|
|
44
|
-
print()
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
# Task keyword mappings for intent detection
|
|
48
|
-
TASK_MAPPINGS = {
|
|
49
|
-
"fix": ["fix", "bug", "error", "broken", "issue", "debug", "crash", "fail", "wrong", "not working"],
|
|
50
|
-
"plan": ["plan", "design", "architect", "research", "think", "analyze", "strategy", "how to", "approach"],
|
|
51
|
-
"cook": ["implement", "build", "create", "add", "feature", "code", "develop", "make", "write"],
|
|
52
|
-
"bootstrap": ["start", "new", "init", "setup", "project", "scaffold", "generate", "begin"],
|
|
53
|
-
"test": ["test", "check", "verify", "validate", "spec", "unit", "integration", "coverage"],
|
|
54
|
-
"docs": ["document", "readme", "docs", "explain", "comment", "documentation"],
|
|
55
|
-
"git": ["commit", "push", "pr", "merge", "branch", "pull", "request", "git"],
|
|
56
|
-
"design": ["ui", "ux", "style", "layout", "visual", "css", "component", "page", "responsive"],
|
|
57
|
-
"review": ["review", "audit", "inspect", "quality", "refactor", "clean"],
|
|
58
|
-
"content": ["copy", "text", "marketing", "content", "blog", "seo"],
|
|
59
|
-
"integrate": ["integrate", "payment", "api", "connect", "webhook", "third-party"],
|
|
60
|
-
"skill": ["skill", "agent", "automate", "workflow"],
|
|
61
|
-
"scout": ["find", "search", "locate", "explore", "scan", "where"],
|
|
62
|
-
"config": ["config", "configure", "settings", "ck.json", ".ck.json", "setup", "locale", "language", "paths"],
|
|
63
|
-
"coding-level": ["coding", "level", "eli5", "junior", "senior", "lead", "god", "beginner", "expert", "teach", "learn", "explain"],
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
# Category workflows and tips
|
|
67
|
-
CATEGORY_GUIDES = {
|
|
68
|
-
"fix": {
|
|
69
|
-
"title": "Fixing Issues",
|
|
70
|
-
"workflow": [
|
|
71
|
-
("Start", "`/fix` \"describe your issue\""),
|
|
72
|
-
("If stuck", "`/debug` \"more details\""),
|
|
73
|
-
("Verify", "`/test`"),
|
|
74
|
-
],
|
|
75
|
-
"tip": "Include error messages for better results",
|
|
76
|
-
},
|
|
77
|
-
"plan": {
|
|
78
|
-
"title": "Planning",
|
|
79
|
-
"workflow": [
|
|
80
|
-
("Quick plan", "`/plan/fast` \"your task\""),
|
|
81
|
-
("Deep research", "`/plan/hard` \"complex task\""),
|
|
82
|
-
("Validate", "`/plan/validate` (interview to confirm decisions)"),
|
|
83
|
-
("Execute plan", "`/code` (runs the plan)"),
|
|
84
|
-
],
|
|
85
|
-
"tip": "Use /plan/validate to confirm assumptions before coding",
|
|
86
|
-
},
|
|
87
|
-
"cook": {
|
|
88
|
-
"title": "Implementation",
|
|
89
|
-
"workflow": [
|
|
90
|
-
("Quick impl", "`/cook` \"your feature\""),
|
|
91
|
-
("Auto mode", "`/cook/auto` \"trust me bro\""),
|
|
92
|
-
("Test", "`/test`"),
|
|
93
|
-
],
|
|
94
|
-
"tip": "Cook is standalone - it plans internally. Use /plan → /code for explicit planning",
|
|
95
|
-
},
|
|
96
|
-
"bootstrap": {
|
|
97
|
-
"title": "Project Setup",
|
|
98
|
-
"workflow": [
|
|
99
|
-
("Quick start", "`/bootstrap/auto/fast` \"requirements\""),
|
|
100
|
-
("Full setup", "`/bootstrap` \"detailed requirements\""),
|
|
101
|
-
],
|
|
102
|
-
"tip": "Include tech stack preferences in description",
|
|
103
|
-
},
|
|
104
|
-
"test": {
|
|
105
|
-
"title": "Testing",
|
|
106
|
-
"workflow": [
|
|
107
|
-
("Run tests", "`/test`"),
|
|
108
|
-
("Fix failures", "`/fix/test`"),
|
|
109
|
-
],
|
|
110
|
-
"tip": "Run tests frequently during development",
|
|
111
|
-
},
|
|
112
|
-
"docs": {
|
|
113
|
-
"title": "Documentation",
|
|
114
|
-
"workflow": [
|
|
115
|
-
("Initialize", "`/docs/init`"),
|
|
116
|
-
("Update", "`/docs/update`"),
|
|
117
|
-
],
|
|
118
|
-
"tip": "Keep docs close to code for accuracy",
|
|
119
|
-
},
|
|
120
|
-
"git": {
|
|
121
|
-
"title": "Git Workflow",
|
|
122
|
-
"workflow": [
|
|
123
|
-
("Commit", "`/git/cm`"),
|
|
124
|
-
("Push", "`/git/cp`"),
|
|
125
|
-
("PR", "`/git/pr`"),
|
|
126
|
-
],
|
|
127
|
-
"tip": "Commit often with clear messages",
|
|
128
|
-
},
|
|
129
|
-
"design": {
|
|
130
|
-
"title": "Design",
|
|
131
|
-
"workflow": [
|
|
132
|
-
("Quick design", "`/design/fast` \"description\""),
|
|
133
|
-
("From screenshot", "`/design/screenshot` <path>"),
|
|
134
|
-
("3D design", "`/design/3d` \"description\""),
|
|
135
|
-
],
|
|
136
|
-
"tip": "Reference existing designs for consistency",
|
|
137
|
-
},
|
|
138
|
-
"review": {
|
|
139
|
-
"title": "Code Review",
|
|
140
|
-
"workflow": [
|
|
141
|
-
("Full review", "`/review/codebase`"),
|
|
142
|
-
],
|
|
143
|
-
"tip": "Review before merging to main",
|
|
144
|
-
},
|
|
145
|
-
"content": {
|
|
146
|
-
"title": "Content Creation",
|
|
147
|
-
"workflow": [
|
|
148
|
-
("Quick copy", "`/content/fast` \"requirements\""),
|
|
149
|
-
("Quality copy", "`/content/good` \"requirements\""),
|
|
150
|
-
("Optimize", "`/content/cro`"),
|
|
151
|
-
],
|
|
152
|
-
"tip": "Know your audience before writing",
|
|
153
|
-
},
|
|
154
|
-
"integrate": {
|
|
155
|
-
"title": "Integration",
|
|
156
|
-
"workflow": [
|
|
157
|
-
("Polar.sh", "`/integrate/polar`"),
|
|
158
|
-
("SePay", "`/integrate/sepay`"),
|
|
159
|
-
],
|
|
160
|
-
"tip": "Read API docs before integrating",
|
|
161
|
-
},
|
|
162
|
-
"skill": {
|
|
163
|
-
"title": "Skill Management",
|
|
164
|
-
"workflow": [
|
|
165
|
-
("Create", "`/skill/create`"),
|
|
166
|
-
("Optimize", "`/skill/optimize`"),
|
|
167
|
-
],
|
|
168
|
-
"tip": "Skills extend agent capabilities",
|
|
169
|
-
},
|
|
170
|
-
"scout": {
|
|
171
|
-
"title": "Codebase Exploration",
|
|
172
|
-
"workflow": [
|
|
173
|
-
("Find files", "`/scout` \"what to find\""),
|
|
174
|
-
("External tools", "`/scout/ext` \"query\""),
|
|
175
|
-
],
|
|
176
|
-
"tip": "Be specific about what you're looking for",
|
|
177
|
-
},
|
|
178
|
-
"coding-level": {
|
|
179
|
-
"title": "Coding Level (Adaptive Communication)",
|
|
180
|
-
"workflow": [
|
|
181
|
-
("Disabled", "`codingLevel: -1` (default, no injection)"),
|
|
182
|
-
("ELI5", "`codingLevel: 0` (analogies, baby steps)"),
|
|
183
|
-
("Junior", "`codingLevel: 1` (WHY before HOW)"),
|
|
184
|
-
("Mid-Level", "`codingLevel: 2` (patterns, trade-offs)"),
|
|
185
|
-
("Senior", "`codingLevel: 3` (production code, ops)"),
|
|
186
|
-
("Tech Lead", "`codingLevel: 4` (risk matrix, strategy)"),
|
|
187
|
-
("God Mode", "`codingLevel: 5` (code first, no fluff)"),
|
|
188
|
-
],
|
|
189
|
-
"tip": "Set in .ck.json. Guidelines auto-inject on session start",
|
|
190
|
-
},
|
|
191
|
-
"config": {
|
|
192
|
-
"title": "ClaudeKit Configuration (.ck.json)",
|
|
193
|
-
"workflow": [
|
|
194
|
-
("Global", "Set user prefs in `~/.claude/.ck.json`"),
|
|
195
|
-
("Local", "Override per-project in `./.claude/.ck.json`"),
|
|
196
|
-
("Resolution", "DEFAULT → global → local (deep merge)"),
|
|
197
|
-
],
|
|
198
|
-
"tip": "Global config works in fresh dirs; local overrides for projects",
|
|
199
|
-
},
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
def detect_prefix(commands_dir: Path) -> str:
|
|
204
|
-
"""Legacy hook: commands used to support a /ck: namespace.
|
|
205
|
-
|
|
206
|
-
This repo uses canonical command names like `/fix/ui` (no `/ck:` prefix).
|
|
207
|
-
"""
|
|
208
|
-
return ""
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def parse_frontmatter(file_path: Path) -> dict:
|
|
212
|
-
"""Parse YAML frontmatter from a markdown file."""
|
|
213
|
-
try:
|
|
214
|
-
content = file_path.read_text(encoding='utf-8')
|
|
215
|
-
except Exception:
|
|
216
|
-
return {}
|
|
217
|
-
|
|
218
|
-
# Check for frontmatter
|
|
219
|
-
if not content.startswith('---'):
|
|
220
|
-
return {}
|
|
221
|
-
|
|
222
|
-
# Find closing ---
|
|
223
|
-
end_idx = content.find('---', 3)
|
|
224
|
-
if end_idx == -1:
|
|
225
|
-
return {}
|
|
226
|
-
|
|
227
|
-
frontmatter = content[3:end_idx].strip()
|
|
228
|
-
result = {}
|
|
229
|
-
|
|
230
|
-
for line in frontmatter.split('\n'):
|
|
231
|
-
if ':' in line:
|
|
232
|
-
key, value = line.split(':', 1)
|
|
233
|
-
result[key.strip()] = value.strip()
|
|
234
|
-
|
|
235
|
-
return result
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
def discover_commands(commands_dir: Path, prefix: str) -> dict:
|
|
239
|
-
"""Scan .claude/commands/ and build command catalog."""
|
|
240
|
-
commands = {}
|
|
241
|
-
categories = {}
|
|
242
|
-
|
|
243
|
-
if not commands_dir.exists():
|
|
244
|
-
return {"commands": commands, "categories": categories}
|
|
245
|
-
|
|
246
|
-
# Scan all .md files
|
|
247
|
-
for md_file in commands_dir.rglob("*.md"):
|
|
248
|
-
# Skip non-command files
|
|
249
|
-
rel_path = md_file.relative_to(commands_dir)
|
|
250
|
-
parts = rel_path.parts
|
|
251
|
-
|
|
252
|
-
# Get command name from path
|
|
253
|
-
# e.g., fix/fast.md -> fix/fast, plan.md -> plan
|
|
254
|
-
if len(parts) == 1:
|
|
255
|
-
# Root command: plan.md -> plan
|
|
256
|
-
cmd_name = parts[0].replace('.md', '')
|
|
257
|
-
category = "core"
|
|
258
|
-
else:
|
|
259
|
-
# Nested command: fix/fast.md -> fix/fast
|
|
260
|
-
category = parts[0]
|
|
261
|
-
cmd_name = '/'.join([p.replace('.md', '') for p in parts])
|
|
262
|
-
|
|
263
|
-
# Parse frontmatter
|
|
264
|
-
fm = parse_frontmatter(md_file)
|
|
265
|
-
description = fm.get('description', '')
|
|
266
|
-
|
|
267
|
-
# Skip if no description (not a real command)
|
|
268
|
-
if not description:
|
|
269
|
-
continue
|
|
270
|
-
|
|
271
|
-
# Clean description (remove emoji indicators)
|
|
272
|
-
clean_desc = re.sub(r'^[^\w\s]+\s*', '', description).strip()
|
|
273
|
-
|
|
274
|
-
# Format command name with prefix
|
|
275
|
-
formatted_name = f"/{prefix}{cmd_name}" if prefix else f"/{cmd_name}"
|
|
276
|
-
|
|
277
|
-
# Add to commands
|
|
278
|
-
if category not in commands:
|
|
279
|
-
commands[category] = []
|
|
280
|
-
|
|
281
|
-
commands[category].append({
|
|
282
|
-
"name": formatted_name,
|
|
283
|
-
"description": clean_desc,
|
|
284
|
-
"category": category,
|
|
285
|
-
})
|
|
286
|
-
|
|
287
|
-
# Track categories
|
|
288
|
-
if category not in categories:
|
|
289
|
-
categories[category] = category.title()
|
|
290
|
-
|
|
291
|
-
# Sort commands within each category
|
|
292
|
-
for cat in commands:
|
|
293
|
-
commands[cat].sort(key=lambda x: x["name"])
|
|
294
|
-
|
|
295
|
-
return {"commands": commands, "categories": categories}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
def detect_intent(input_str: str, categories: list) -> str:
|
|
299
|
-
"""Smart auto-detection of user intent."""
|
|
300
|
-
if not input_str:
|
|
301
|
-
return "overview"
|
|
302
|
-
|
|
303
|
-
input_lower = input_str.lower()
|
|
304
|
-
|
|
305
|
-
# Check if it's a known category
|
|
306
|
-
if input_lower in [c.lower() for c in categories]:
|
|
307
|
-
return "category"
|
|
308
|
-
|
|
309
|
-
# Check if it looks like a command (legacy ':' or canonical '/')
|
|
310
|
-
if (':' in input_str or '/' in input_str) and ' ' not in input_str:
|
|
311
|
-
return "command"
|
|
312
|
-
|
|
313
|
-
# Multiple words = task description
|
|
314
|
-
if len(input_str.split()) >= 2:
|
|
315
|
-
return "task"
|
|
316
|
-
|
|
317
|
-
return "search"
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
def show_overview(data: dict, prefix: str) -> None:
|
|
321
|
-
"""Display overview with quick start guide."""
|
|
322
|
-
emit_output_type("category-guide")
|
|
323
|
-
|
|
324
|
-
commands = data["commands"]
|
|
325
|
-
categories = data["categories"]
|
|
326
|
-
total = sum(len(cmds) for cmds in commands.values())
|
|
327
|
-
help_cmd = f"/{prefix}ck-help" if prefix else "/ck-help"
|
|
328
|
-
|
|
329
|
-
print("# ClaudeKit Commands")
|
|
330
|
-
print()
|
|
331
|
-
print(f"{total} commands across {len(categories)} categories.")
|
|
332
|
-
print()
|
|
333
|
-
print("**Quick Start:**")
|
|
334
|
-
print(f"- `/{prefix}cook` - Implement features (standalone)")
|
|
335
|
-
print(f"- `/{prefix}plan` + `/{prefix}code` - Plan then execute")
|
|
336
|
-
print(f"- `/{prefix}fix` - Fix bugs intelligently")
|
|
337
|
-
print(f"- `/{prefix}test` - Run and analyze tests")
|
|
338
|
-
print()
|
|
339
|
-
print("**Categories:**")
|
|
340
|
-
for cat_key in sorted(categories.keys()):
|
|
341
|
-
count = len(commands.get(cat_key, []))
|
|
342
|
-
print(f"- `{cat_key}` ({count})")
|
|
343
|
-
print()
|
|
344
|
-
print("**Usage:**")
|
|
345
|
-
print(f"- `{help_cmd} <category>` - Category guide with workflow")
|
|
346
|
-
print(f"- `{help_cmd} <command>` - Command details")
|
|
347
|
-
print(f"- `{help_cmd} <task description>` - Recommendations")
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
def show_category_guide(data: dict, category: str, prefix: str) -> None:
|
|
351
|
-
"""Display category guide with workflow and tips."""
|
|
352
|
-
emit_output_type("category-guide")
|
|
353
|
-
|
|
354
|
-
categories = data["categories"]
|
|
355
|
-
commands = data["commands"]
|
|
356
|
-
|
|
357
|
-
# Find matching category (case-insensitive)
|
|
358
|
-
cat_key = None
|
|
359
|
-
for key in categories:
|
|
360
|
-
if key.lower() == category.lower():
|
|
361
|
-
cat_key = key
|
|
362
|
-
break
|
|
363
|
-
|
|
364
|
-
if not cat_key:
|
|
365
|
-
print(f"Category '{category}' not found.")
|
|
366
|
-
print()
|
|
367
|
-
print("Available: " + ", ".join(f"`{c}`" for c in sorted(categories.keys())))
|
|
368
|
-
return
|
|
369
|
-
|
|
370
|
-
cmds = commands.get(cat_key, [])
|
|
371
|
-
guide = CATEGORY_GUIDES.get(cat_key, {})
|
|
372
|
-
|
|
373
|
-
print(f"# {guide.get('title', cat_key.title())}")
|
|
374
|
-
print()
|
|
375
|
-
|
|
376
|
-
# Workflow first (most important)
|
|
377
|
-
if "workflow" in guide:
|
|
378
|
-
print("**Workflow:**")
|
|
379
|
-
for step, cmd in guide["workflow"]:
|
|
380
|
-
print(f"- {step}: {cmd}")
|
|
381
|
-
print()
|
|
382
|
-
|
|
383
|
-
# Commands list
|
|
384
|
-
print("**Commands:**")
|
|
385
|
-
for cmd in cmds:
|
|
386
|
-
print(f"- `{cmd['name']}` - {cmd['description']}")
|
|
387
|
-
|
|
388
|
-
# Tip at the end
|
|
389
|
-
if "tip" in guide:
|
|
390
|
-
print()
|
|
391
|
-
print(f"*Tip: {guide['tip']}*")
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
def show_command(data: dict, command: str, prefix: str) -> None:
|
|
395
|
-
"""Display command details."""
|
|
396
|
-
emit_output_type("command-details")
|
|
397
|
-
|
|
398
|
-
commands = data["commands"]
|
|
399
|
-
|
|
400
|
-
def canonicalize_command_name(value: str) -> str:
|
|
401
|
-
"""Canonicalize input to the repo's command format: /a/b/c.
|
|
402
|
-
|
|
403
|
-
Also accepts legacy formats like `plan:fast` or `/ck:plan:fast`.
|
|
404
|
-
"""
|
|
405
|
-
s = (value or "").strip().lower()
|
|
406
|
-
if not s:
|
|
407
|
-
return s
|
|
408
|
-
if not s.startswith("/"):
|
|
409
|
-
s = "/" + s
|
|
410
|
-
s = s.replace("/ck:", "/")
|
|
411
|
-
s = s.replace(":", "/")
|
|
412
|
-
s = re.sub(r"/{2,}", "/", s)
|
|
413
|
-
return s
|
|
414
|
-
|
|
415
|
-
# Normalize search term
|
|
416
|
-
search = canonicalize_command_name(command)
|
|
417
|
-
|
|
418
|
-
found = None
|
|
419
|
-
for cmds in commands.values():
|
|
420
|
-
for cmd in cmds:
|
|
421
|
-
if canonicalize_command_name(cmd["name"]) == search:
|
|
422
|
-
found = cmd
|
|
423
|
-
break
|
|
424
|
-
if found:
|
|
425
|
-
break
|
|
426
|
-
|
|
427
|
-
if not found:
|
|
428
|
-
print(f"Command '{command}' not found.")
|
|
429
|
-
print()
|
|
430
|
-
do_search(data, command.replace(":", " ").replace("/", " "), prefix)
|
|
431
|
-
return
|
|
432
|
-
|
|
433
|
-
print(f"# `{found['name']}`")
|
|
434
|
-
print()
|
|
435
|
-
print(found['description'])
|
|
436
|
-
print()
|
|
437
|
-
print(f"**Category:** {found['category']}")
|
|
438
|
-
print()
|
|
439
|
-
print(f"**Usage:** `{found['name']} <your-input>`")
|
|
440
|
-
|
|
441
|
-
# Show related commands (same category)
|
|
442
|
-
cat = found['category']
|
|
443
|
-
if cat in commands:
|
|
444
|
-
related = [c for c in commands[cat] if c['name'] != found['name']][:3]
|
|
445
|
-
if related:
|
|
446
|
-
related_names = ", ".join(f"`{r['name']}`" for r in related)
|
|
447
|
-
print()
|
|
448
|
-
print(f"**Related:** {related_names}")
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
def do_search(data: dict, term: str, prefix: str) -> None:
|
|
452
|
-
"""Search commands by keyword."""
|
|
453
|
-
emit_output_type("search-results")
|
|
454
|
-
|
|
455
|
-
commands = data["commands"]
|
|
456
|
-
term_lower = term.lower()
|
|
457
|
-
matches = []
|
|
458
|
-
|
|
459
|
-
for cmds in commands.values():
|
|
460
|
-
for cmd in cmds:
|
|
461
|
-
if term_lower in cmd["name"].lower() or term_lower in cmd["description"].lower():
|
|
462
|
-
matches.append(cmd)
|
|
463
|
-
|
|
464
|
-
if not matches:
|
|
465
|
-
print(f"No commands found for '{term}'.")
|
|
466
|
-
print()
|
|
467
|
-
print("Try browsing categories: " + ", ".join(f"`{c}`" for c in sorted(data["categories"].keys())))
|
|
468
|
-
return
|
|
469
|
-
|
|
470
|
-
print(f"# Search: {term}")
|
|
471
|
-
print()
|
|
472
|
-
print(f"Found {len(matches)} matches:")
|
|
473
|
-
for cmd in matches[:8]:
|
|
474
|
-
print(f"- `{cmd['name']}` - {cmd['description']}")
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
def recommend_task(data: dict, task: str, prefix: str) -> None:
|
|
478
|
-
"""Recommend commands for a task description."""
|
|
479
|
-
emit_output_type("task-recommendations")
|
|
480
|
-
|
|
481
|
-
commands = data["commands"]
|
|
482
|
-
task_lower = task.lower()
|
|
483
|
-
|
|
484
|
-
# Score categories by keyword matches
|
|
485
|
-
scores = {}
|
|
486
|
-
for cat, keywords in TASK_MAPPINGS.items():
|
|
487
|
-
score = sum(1 for kw in keywords if kw in task_lower)
|
|
488
|
-
if score > 0:
|
|
489
|
-
scores[cat] = score
|
|
490
|
-
|
|
491
|
-
if not scores:
|
|
492
|
-
print(f"Not sure about: {task}")
|
|
493
|
-
print()
|
|
494
|
-
print("Try being more specific, or browse categories: " + ", ".join(f"`{c}`" for c in sorted(data["categories"].keys())))
|
|
495
|
-
return
|
|
496
|
-
|
|
497
|
-
sorted_cats = sorted(scores.items(), key=lambda x: -x[1])
|
|
498
|
-
top_cat = sorted_cats[0][0]
|
|
499
|
-
guide = CATEGORY_GUIDES.get(top_cat, {})
|
|
500
|
-
|
|
501
|
-
print(f"# Recommended for: {task}")
|
|
502
|
-
print()
|
|
503
|
-
|
|
504
|
-
# Show workflow first (most actionable)
|
|
505
|
-
if "workflow" in guide:
|
|
506
|
-
print("**Workflow:**")
|
|
507
|
-
for step, cmd in guide["workflow"][:3]:
|
|
508
|
-
print(f"- {step}: {cmd}")
|
|
509
|
-
print()
|
|
510
|
-
|
|
511
|
-
# Show relevant commands
|
|
512
|
-
print("**Commands:**")
|
|
513
|
-
shown = 0
|
|
514
|
-
for cat, _ in sorted_cats[:2]:
|
|
515
|
-
if cat in commands:
|
|
516
|
-
for cmd in commands[cat][:2]:
|
|
517
|
-
print(f"- `{cmd['name']}` - {cmd['description']}")
|
|
518
|
-
shown += 1
|
|
519
|
-
if shown >= 4:
|
|
520
|
-
break
|
|
521
|
-
if shown >= 4:
|
|
522
|
-
break
|
|
523
|
-
|
|
524
|
-
if "tip" in guide:
|
|
525
|
-
print()
|
|
526
|
-
print(f"*Tip: {guide['tip']}*")
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
def show_config_guide() -> None:
|
|
530
|
-
"""Display comprehensive .ck.json configuration guide."""
|
|
531
|
-
emit_output_type("comprehensive-docs")
|
|
532
|
-
|
|
533
|
-
print("# ClaudeKit Configuration (.ck.json)")
|
|
534
|
-
print()
|
|
535
|
-
print("**Locations (cascading resolution):**")
|
|
536
|
-
print("- Global: `~/.claude/.ck.json` (user preferences)")
|
|
537
|
-
print("- Local: `./.claude/.ck.json` (project overrides)")
|
|
538
|
-
print()
|
|
539
|
-
print("**Resolution Order:** `DEFAULT → global → local`")
|
|
540
|
-
print("- Global config sets user defaults")
|
|
541
|
-
print("- Local config overrides for specific projects")
|
|
542
|
-
print("- Deep merge: nested objects merge recursively")
|
|
543
|
-
print()
|
|
544
|
-
print("**Purpose:** Customize plan naming, paths, locale, and hook behavior.")
|
|
545
|
-
print()
|
|
546
|
-
print("---")
|
|
547
|
-
print()
|
|
548
|
-
print("## Quick Start")
|
|
549
|
-
print()
|
|
550
|
-
print("**Global config** (`~/.claude/.ck.json`) - your preferences:")
|
|
551
|
-
print("```json")
|
|
552
|
-
print('{')
|
|
553
|
-
print(' "locale": {')
|
|
554
|
-
print(' "thinkingLanguage": "en",')
|
|
555
|
-
print(' "responseLanguage": "vi"')
|
|
556
|
-
print(' },')
|
|
557
|
-
print(' "plan": { "issuePrefix": "GH-" }')
|
|
558
|
-
print('}')
|
|
559
|
-
print("```")
|
|
560
|
-
print()
|
|
561
|
-
print("**Local override** (`./.claude/.ck.json`) - project-specific:")
|
|
562
|
-
print("```json")
|
|
563
|
-
print('{')
|
|
564
|
-
print(' "plan": { "issuePrefix": "JIRA-" },')
|
|
565
|
-
print(' "paths": { "docs": "documentation" }')
|
|
566
|
-
print('}')
|
|
567
|
-
print("```")
|
|
568
|
-
print()
|
|
569
|
-
print("---")
|
|
570
|
-
print()
|
|
571
|
-
print("## Full Schema")
|
|
572
|
-
print()
|
|
573
|
-
print("```json")
|
|
574
|
-
print('{')
|
|
575
|
-
print(' "plan": {')
|
|
576
|
-
print(' "namingFormat": "{date}-{issue}-{slug}", // Plan folder naming')
|
|
577
|
-
print(' "dateFormat": "YYMMDD-HHmm", // Date format in names')
|
|
578
|
-
print(' "issuePrefix": "GH-", // Issue ID prefix (null = #)')
|
|
579
|
-
print(' "reportsDir": "reports", // Reports subfolder')
|
|
580
|
-
print(' "resolution": {')
|
|
581
|
-
print(' "order": ["session", "branch"], // Resolution chain')
|
|
582
|
-
print(' "branchPattern": "(?:feat|fix|...)/.+" // Branch slug regex')
|
|
583
|
-
print(' },')
|
|
584
|
-
print(' "validation": {')
|
|
585
|
-
print(' "mode": "prompt", // "auto" | "prompt" | "off"')
|
|
586
|
-
print(' "minQuestions": 3, // Min questions to ask')
|
|
587
|
-
print(' "maxQuestions": 8, // Max questions to ask')
|
|
588
|
-
print(' "focusAreas": ["assumptions", "risks", "tradeoffs", "architecture"]')
|
|
589
|
-
print(' }')
|
|
590
|
-
print(' },')
|
|
591
|
-
print(' "paths": {')
|
|
592
|
-
print(' "docs": "docs", // Documentation directory')
|
|
593
|
-
print(' "plans": "plans" // Plans directory')
|
|
594
|
-
print(' },')
|
|
595
|
-
print(' "locale": {')
|
|
596
|
-
print(' "thinkingLanguage": null, // Language for reasoning ("en" recommended)')
|
|
597
|
-
print(' "responseLanguage": null // Language for output ("vi", "fr", etc.)')
|
|
598
|
-
print(' },')
|
|
599
|
-
print(' "trust": {')
|
|
600
|
-
print(' "passphrase": null, // Secret for testing context injection')
|
|
601
|
-
print(' "enabled": false // Enable trust verification')
|
|
602
|
-
print(' },')
|
|
603
|
-
print(' "project": {')
|
|
604
|
-
print(' "type": "auto", // "monorepo", "single-repo", "auto"')
|
|
605
|
-
print(' "packageManager": "auto", // "npm", "pnpm", "yarn", "auto"')
|
|
606
|
-
print(' "framework": "auto" // "next", "react", "vue", "auto"')
|
|
607
|
-
print(' },')
|
|
608
|
-
print(' "codingLevel": -1 // Adaptive communication (-1 to 5)')
|
|
609
|
-
print('}')
|
|
610
|
-
print("```")
|
|
611
|
-
print()
|
|
612
|
-
print("---")
|
|
613
|
-
print()
|
|
614
|
-
print("## Key Concepts")
|
|
615
|
-
print()
|
|
616
|
-
print("**Plan Resolution Chain:**")
|
|
617
|
-
print("1. `session` - Check session temp file for active plan")
|
|
618
|
-
print("2. `branch` - Match git branch slug to plan folder")
|
|
619
|
-
print()
|
|
620
|
-
print("**Naming Format Variables:**")
|
|
621
|
-
print("- `{date}` - Formatted date (per dateFormat)")
|
|
622
|
-
print("- `{issue}` - Issue ID with prefix")
|
|
623
|
-
print("- `{slug}` - Descriptive slug from branch or input")
|
|
624
|
-
print()
|
|
625
|
-
print("**Language Settings:**")
|
|
626
|
-
print("- `thinkingLanguage` - Language for internal reasoning (\"en\" recommended)")
|
|
627
|
-
print("- `responseLanguage` - Language for user-facing output (\"vi\", \"fr\", etc.)")
|
|
628
|
-
print()
|
|
629
|
-
print("When both are set, Claude thinks in one language but responds in another.")
|
|
630
|
-
print("This improves precision (English) while maintaining natural output (your language).")
|
|
631
|
-
print()
|
|
632
|
-
print("**Plan Validation:**")
|
|
633
|
-
print("- `mode: \"prompt\"` - Ask user after plan creation (default)")
|
|
634
|
-
print("- `mode: \"auto\"` - Always run validation interview")
|
|
635
|
-
print("- `mode: \"off\"` - Skip; user runs `/plan/validate` manually")
|
|
636
|
-
print()
|
|
637
|
-
print("Validation interviews the user with critical questions to confirm")
|
|
638
|
-
print("assumptions, risks, and architectural decisions before implementation.")
|
|
639
|
-
print()
|
|
640
|
-
print("**Coding Level (Adaptive Communication):**")
|
|
641
|
-
print("- `-1` = Disabled (default) - no injection, saves tokens")
|
|
642
|
-
print("- `0` = ELI5 - analogies, baby steps, check-ins")
|
|
643
|
-
print("- `1` = Junior - WHY before HOW, pitfalls, takeaways")
|
|
644
|
-
print("- `2` = Mid-Level - patterns, trade-offs, scalability")
|
|
645
|
-
print("- `3` = Senior - trade-offs table, production code, ops")
|
|
646
|
-
print("- `4` = Tech Lead - executive summary, risk matrix, business impact")
|
|
647
|
-
print("- `5` = God Mode - code first, minimal prose, no hand-holding")
|
|
648
|
-
print()
|
|
649
|
-
print("Guidelines auto-inject on session start. Commands like `/brainstorm` respect them.")
|
|
650
|
-
print()
|
|
651
|
-
print("---")
|
|
652
|
-
print()
|
|
653
|
-
print("## Edge Cases & Validation")
|
|
654
|
-
print()
|
|
655
|
-
print("**Path Handling:**")
|
|
656
|
-
print("- Trailing slashes normalized (`plans/` → `plans`)")
|
|
657
|
-
print("- Empty/whitespace-only paths fall back to defaults")
|
|
658
|
-
print("- Absolute paths supported (e.g., `/home/user/all-plans`)")
|
|
659
|
-
print("- Path traversal (`../`) blocked for relative paths")
|
|
660
|
-
print("- Null bytes and control chars rejected")
|
|
661
|
-
print()
|
|
662
|
-
print("**Slug Sanitization:**")
|
|
663
|
-
print("- Invalid filename chars removed: `< > : \" / \\ | ? *`")
|
|
664
|
-
print("- Non-alphanumeric replaced with hyphen")
|
|
665
|
-
print("- Multiple hyphens collapsed: `foo---bar` → `foo-bar`")
|
|
666
|
-
print("- Leading/trailing hyphens removed")
|
|
667
|
-
print("- Max 100 chars to prevent filesystem issues")
|
|
668
|
-
print()
|
|
669
|
-
print("**Naming Pattern Validation:**")
|
|
670
|
-
print("- Pattern must contain `{slug}` placeholder")
|
|
671
|
-
print("- Result must be non-empty after variable substitution")
|
|
672
|
-
print("- Unresolved placeholders (except `{slug}`) trigger error")
|
|
673
|
-
print("- Malformed JSON config falls back to defaults")
|
|
674
|
-
print()
|
|
675
|
-
print("**Consolidated Plans (advanced):**")
|
|
676
|
-
print("```json")
|
|
677
|
-
print('{')
|
|
678
|
-
print(' "paths": {')
|
|
679
|
-
print(' "plans": "/home/user/all-my-plans"')
|
|
680
|
-
print(' }')
|
|
681
|
-
print('}')
|
|
682
|
-
print("```")
|
|
683
|
-
print("Absolute paths allow storing all plans in one location across projects.")
|
|
684
|
-
print()
|
|
685
|
-
print("---")
|
|
686
|
-
print()
|
|
687
|
-
print("## Examples")
|
|
688
|
-
print()
|
|
689
|
-
print("**Global install user (fresh directories work):**")
|
|
690
|
-
print("```bash")
|
|
691
|
-
print("# ~/.claude/.ck.json - applies everywhere")
|
|
692
|
-
print("cd /tmp/new-project && claude # Uses global config")
|
|
693
|
-
print("```")
|
|
694
|
-
print()
|
|
695
|
-
print("**Project with local override:**")
|
|
696
|
-
print("```bash")
|
|
697
|
-
print("# Global: issuePrefix = \"GH-\"")
|
|
698
|
-
print("# Local (.claude/.ck.json): issuePrefix = \"JIRA-\"")
|
|
699
|
-
print("# Result: issuePrefix = \"JIRA-\" (local wins)")
|
|
700
|
-
print("```")
|
|
701
|
-
print()
|
|
702
|
-
print("**Deep merge behavior:**")
|
|
703
|
-
print("```")
|
|
704
|
-
print("Global: { plan: { issuePrefix: \"GH-\", dateFormat: \"YYMMDD\" } }")
|
|
705
|
-
print("Local: { plan: { issuePrefix: \"JIRA-\" } }")
|
|
706
|
-
print("Result: { plan: { issuePrefix: \"JIRA-\", dateFormat: \"YYMMDD\" } }")
|
|
707
|
-
print("```")
|
|
708
|
-
print()
|
|
709
|
-
print("*Tip: Config is optional - all fields have sensible defaults.*")
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
def show_coding_level_guide() -> None:
|
|
713
|
-
"""Display comprehensive codingLevel configuration guide."""
|
|
714
|
-
emit_output_type("comprehensive-docs")
|
|
715
|
-
|
|
716
|
-
print("# Coding Level (Adaptive Communication)")
|
|
717
|
-
print()
|
|
718
|
-
print("Adjusts Claude's communication style based on user's experience level.")
|
|
719
|
-
print("Guidelines auto-inject on SessionStart. Commands respect them.")
|
|
720
|
-
print()
|
|
721
|
-
print("---")
|
|
722
|
-
print()
|
|
723
|
-
print("## Levels")
|
|
724
|
-
print()
|
|
725
|
-
print("| Level | Name | Description |")
|
|
726
|
-
print("|-------|------|-------------|")
|
|
727
|
-
print("| **-1** | **Disabled** | Default - no injection, saves tokens |")
|
|
728
|
-
print("| 0 | ELI5 | Zero experience - analogies, baby steps, check-ins |")
|
|
729
|
-
print("| 1 | Junior | 0-2 years - WHY before HOW, pitfalls, takeaways |")
|
|
730
|
-
print("| 2 | Mid-Level | 3-5 years - patterns, trade-offs, scalability |")
|
|
731
|
-
print("| 3 | Senior | 5-8 years - trade-offs table, production code, ops |")
|
|
732
|
-
print("| 4 | Tech Lead | 8-15 years - executive summary, risk matrix, strategy |")
|
|
733
|
-
print("| 5 | God Mode | 15+ years - code first, minimal prose, no fluff |")
|
|
734
|
-
print()
|
|
735
|
-
print("---")
|
|
736
|
-
print()
|
|
737
|
-
print("## Configuration")
|
|
738
|
-
print()
|
|
739
|
-
print("**Set in `.ck.json`:**")
|
|
740
|
-
print("```json")
|
|
741
|
-
print('{')
|
|
742
|
-
print(' "codingLevel": 0')
|
|
743
|
-
print('}')
|
|
744
|
-
print("```")
|
|
745
|
-
print()
|
|
746
|
-
print("**Location (cascading):**")
|
|
747
|
-
print("- Global: `~/.claude/.ck.json` - personal preference")
|
|
748
|
-
print("- Local: `./.claude/.ck.json` - project override")
|
|
749
|
-
print()
|
|
750
|
-
print("---")
|
|
751
|
-
print()
|
|
752
|
-
print("## How It Works")
|
|
753
|
-
print()
|
|
754
|
-
print("1. SessionStart hook reads `codingLevel` from `.ck.json`")
|
|
755
|
-
print("2. If 0-5, injects guidelines from `.claude/output-styles/coding-level-*.md`")
|
|
756
|
-
print("3. Commands like `/brainstorm` follow the injected guidelines")
|
|
757
|
-
print()
|
|
758
|
-
print("**Token Efficiency:**")
|
|
759
|
-
print("- `-1` (default): Zero injection, zero overhead")
|
|
760
|
-
print("- `0-5`: Only selected level's guidelines injected (not all)")
|
|
761
|
-
print()
|
|
762
|
-
print("---")
|
|
763
|
-
print()
|
|
764
|
-
print("## Level Details")
|
|
765
|
-
print()
|
|
766
|
-
print("### Level 0 (ELI5)")
|
|
767
|
-
print("- **MUST** use real-world analogies (labeled boxes, recipes)")
|
|
768
|
-
print("- **MUST** define every technical term")
|
|
769
|
-
print("- **MUST** use \"we\" language")
|
|
770
|
-
print("- **MUST** end with check-in: \"Does this make sense?\"")
|
|
771
|
-
print("- **MUST** comment every line of code")
|
|
772
|
-
print("- Structure: Big Picture → Analogy → Baby Steps → Try It → Check-In")
|
|
773
|
-
print()
|
|
774
|
-
print("### Level 1 (Junior)")
|
|
775
|
-
print("- Explain WHY before HOW")
|
|
776
|
-
print("- Define technical terms on first use")
|
|
777
|
-
print("- Include common pitfalls section")
|
|
778
|
-
print("- Add Key Takeaways and Learn More links")
|
|
779
|
-
print("- Structure: Context → Approach → Implementation → Pitfalls → Takeaways")
|
|
780
|
-
print()
|
|
781
|
-
print("### Level 2 (Mid-Level)")
|
|
782
|
-
print("- Discuss design patterns and when to use them")
|
|
783
|
-
print("- Highlight trade-offs explicitly")
|
|
784
|
-
print("- Consider scalability implications")
|
|
785
|
-
print("- Reference patterns by name")
|
|
786
|
-
print("- Structure: Approach → Design → Implementation → Edge Cases")
|
|
787
|
-
print()
|
|
788
|
-
print("### Level 3 (Senior)")
|
|
789
|
-
print("- Lead with trade-offs table")
|
|
790
|
-
print("- Show production-ready code")
|
|
791
|
-
print("- Discuss operational concerns (monitoring, logging)")
|
|
792
|
-
print("- Flag security implications")
|
|
793
|
-
print("- **NEVER** explain basic concepts")
|
|
794
|
-
print("- Structure: Trade-offs → Implementation → Ops → Security")
|
|
795
|
-
print()
|
|
796
|
-
print("### Level 4 (Tech Lead)")
|
|
797
|
-
print("- Executive summary first (3-4 sentences)")
|
|
798
|
-
print("- Risk assessment matrix (Likelihood × Impact)")
|
|
799
|
-
print("- Strategic options comparison")
|
|
800
|
-
print("- Business impact analysis")
|
|
801
|
-
print("- Identify decisions needing stakeholder alignment")
|
|
802
|
-
print("- Structure: Summary → Risks → Options → Approach → Business Impact")
|
|
803
|
-
print()
|
|
804
|
-
print("### Level 5 (God Mode)")
|
|
805
|
-
print("- Answer exactly what was asked, nothing more")
|
|
806
|
-
print("- Code first, minimal prose")
|
|
807
|
-
print("- No explanations unless asked")
|
|
808
|
-
print("- **NEVER** use filler phrases")
|
|
809
|
-
print("- Trust their judgment completely")
|
|
810
|
-
print()
|
|
811
|
-
print("---")
|
|
812
|
-
print()
|
|
813
|
-
print("## Customization")
|
|
814
|
-
print()
|
|
815
|
-
print("Guidelines live in `.claude/output-styles/coding-level-*.md`")
|
|
816
|
-
print("Edit these files directly to customize behavior per level.")
|
|
817
|
-
print()
|
|
818
|
-
print("*Tip: Use `-1` (disabled) unless you're teaching or want guided explanations.*")
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
def main():
|
|
822
|
-
# Find .claude/commands directory
|
|
823
|
-
script_path = Path(__file__).resolve()
|
|
824
|
-
claude_dir = script_path.parent.parent # .claude/scripts -> .claude
|
|
825
|
-
commands_dir = claude_dir / "commands"
|
|
826
|
-
|
|
827
|
-
if not commands_dir.exists():
|
|
828
|
-
print("Error: .claude/commands/ directory not found.")
|
|
829
|
-
sys.exit(1)
|
|
830
|
-
|
|
831
|
-
# Detect prefix and discover commands
|
|
832
|
-
prefix = detect_prefix(commands_dir)
|
|
833
|
-
data = discover_commands(commands_dir, prefix)
|
|
834
|
-
|
|
835
|
-
if not data["commands"]:
|
|
836
|
-
print("No commands found in .claude/commands/")
|
|
837
|
-
sys.exit(1)
|
|
838
|
-
|
|
839
|
-
# Parse input
|
|
840
|
-
args = sys.argv[1:]
|
|
841
|
-
input_str = " ".join(args).strip()
|
|
842
|
-
|
|
843
|
-
# Special case: config documentation (not a command category)
|
|
844
|
-
if input_str.lower() in ["config", "configuration", ".ck.json", "ck.json"]:
|
|
845
|
-
show_config_guide()
|
|
846
|
-
return
|
|
847
|
-
|
|
848
|
-
# Special case: coding level documentation
|
|
849
|
-
if input_str.lower() in ["coding-level", "codinglevel", "coding level", "level", "eli5", "god mode"]:
|
|
850
|
-
show_coding_level_guide()
|
|
851
|
-
return
|
|
852
|
-
|
|
853
|
-
# Detect intent and route
|
|
854
|
-
intent = detect_intent(input_str, list(data["categories"].keys()))
|
|
855
|
-
|
|
856
|
-
if intent == "overview":
|
|
857
|
-
show_overview(data, prefix)
|
|
858
|
-
elif intent == "category":
|
|
859
|
-
show_category_guide(data, input_str, prefix)
|
|
860
|
-
elif intent == "command":
|
|
861
|
-
show_command(data, input_str, prefix)
|
|
862
|
-
elif intent == "task":
|
|
863
|
-
recommend_task(data, input_str, prefix)
|
|
864
|
-
else:
|
|
865
|
-
do_search(data, input_str, prefix)
|
|
27
|
+
# Preserve argv; run canonical script as __main__.
|
|
28
|
+
runpy.run_path(str(target), run_name="__main__")
|
|
29
|
+
return 0
|
|
866
30
|
|
|
867
31
|
|
|
868
32
|
if __name__ == "__main__":
|
|
869
|
-
main()
|
|
33
|
+
raise SystemExit(main())
|