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
|
@@ -50,17 +50,99 @@ declare -a FAILED_OPTIONAL=()
|
|
|
50
50
|
declare -a SKIPPED_SUDO=()
|
|
51
51
|
FINAL_EXIT_CODE=0
|
|
52
52
|
|
|
53
|
-
# Detect OS
|
|
53
|
+
# Detect OS (including WSL and Windows shells)
|
|
54
54
|
detect_os() {
|
|
55
55
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
56
56
|
echo "macos"
|
|
57
|
-
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
58
|
-
|
|
57
|
+
elif [[ "$OSTYPE" == "linux-gnu"* ]] || [[ "$OSTYPE" == "linux"* ]]; then
|
|
58
|
+
# Check for WSL
|
|
59
|
+
if [[ -f /proc/version ]] && grep -qi microsoft /proc/version 2>/dev/null; then
|
|
60
|
+
echo "wsl"
|
|
61
|
+
else
|
|
62
|
+
echo "linux"
|
|
63
|
+
fi
|
|
64
|
+
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "mingw"* ]]; then
|
|
65
|
+
echo "msys" # Git Bash / MSYS2
|
|
66
|
+
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
|
67
|
+
echo "cygwin"
|
|
68
|
+
else
|
|
69
|
+
echo "unknown"
|
|
70
|
+
fi
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# Detect Linux distribution (for package manager selection)
|
|
74
|
+
detect_distro() {
|
|
75
|
+
# WSL uses the underlying Linux distro
|
|
76
|
+
if [[ "$OS" != "linux" ]] && [[ "$OS" != "wsl" ]]; then
|
|
77
|
+
echo "none"
|
|
78
|
+
return
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
# Alpine detection (check first - most specific)
|
|
82
|
+
if [[ -f /etc/alpine-release ]]; then
|
|
83
|
+
echo "alpine"
|
|
84
|
+
# Arch Linux detection
|
|
85
|
+
elif [[ -f /etc/arch-release ]] || command_exists pacman; then
|
|
86
|
+
echo "arch"
|
|
87
|
+
# Debian/Ubuntu detection
|
|
88
|
+
elif command_exists apt-get; then
|
|
89
|
+
echo "debian"
|
|
90
|
+
# RHEL/CentOS/Fedora detection
|
|
91
|
+
elif command_exists dnf; then
|
|
92
|
+
echo "redhat"
|
|
93
|
+
elif command_exists yum; then
|
|
94
|
+
echo "redhat"
|
|
59
95
|
else
|
|
60
96
|
echo "unknown"
|
|
61
97
|
fi
|
|
62
98
|
}
|
|
63
99
|
|
|
100
|
+
# Package manager abstraction - update package lists
|
|
101
|
+
pkg_update() {
|
|
102
|
+
case "$DISTRO" in
|
|
103
|
+
alpine)
|
|
104
|
+
apk update
|
|
105
|
+
;;
|
|
106
|
+
arch)
|
|
107
|
+
pacman -Sy
|
|
108
|
+
;;
|
|
109
|
+
debian)
|
|
110
|
+
apt-get update -qq
|
|
111
|
+
;;
|
|
112
|
+
redhat)
|
|
113
|
+
dnf check-update || true
|
|
114
|
+
;;
|
|
115
|
+
*)
|
|
116
|
+
print_warning "Unknown distro, skipping package update"
|
|
117
|
+
;;
|
|
118
|
+
esac
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
# Package manager abstraction - install package
|
|
122
|
+
# Usage: pkg_install <package_name>
|
|
123
|
+
pkg_install() {
|
|
124
|
+
local package_name="$1"
|
|
125
|
+
|
|
126
|
+
case "$DISTRO" in
|
|
127
|
+
alpine)
|
|
128
|
+
apk add --no-cache "$package_name"
|
|
129
|
+
;;
|
|
130
|
+
arch)
|
|
131
|
+
pacman -S --noconfirm "$package_name"
|
|
132
|
+
;;
|
|
133
|
+
debian)
|
|
134
|
+
apt-get install -y "$package_name"
|
|
135
|
+
;;
|
|
136
|
+
redhat)
|
|
137
|
+
dnf install -y "$package_name"
|
|
138
|
+
;;
|
|
139
|
+
*)
|
|
140
|
+
print_warning "Unknown distro, cannot install $package_name"
|
|
141
|
+
return 1
|
|
142
|
+
;;
|
|
143
|
+
esac
|
|
144
|
+
}
|
|
145
|
+
|
|
64
146
|
# Print functions (must be defined before check_bash_version)
|
|
65
147
|
print_header() {
|
|
66
148
|
echo -e "\n${BLUE}===================================================${NC}"
|
|
@@ -116,6 +198,9 @@ command_exists() {
|
|
|
116
198
|
command -v "$1" >/dev/null 2>&1
|
|
117
199
|
}
|
|
118
200
|
|
|
201
|
+
# Initialize distro detection (after command_exists is defined)
|
|
202
|
+
DISTRO=$(detect_distro)
|
|
203
|
+
|
|
119
204
|
# ============================================================================
|
|
120
205
|
# Installation Tracking Functions
|
|
121
206
|
# ============================================================================
|
|
@@ -245,8 +330,24 @@ try_pip_install() {
|
|
|
245
330
|
# Phase 2: Check if we can build from source
|
|
246
331
|
if ! has_build_tools; then
|
|
247
332
|
print_warning "$package_name: No wheel available, no build tools"
|
|
248
|
-
if [[ "$OS" == "linux" ]]; then
|
|
249
|
-
|
|
333
|
+
if [[ "$OS" == "linux" ]] || [[ "$OS" == "wsl" ]]; then
|
|
334
|
+
case "$DISTRO" in
|
|
335
|
+
alpine)
|
|
336
|
+
print_info "Install build tools: apk add build-base python3-dev"
|
|
337
|
+
;;
|
|
338
|
+
arch)
|
|
339
|
+
print_info "Install build tools: sudo pacman -S base-devel python"
|
|
340
|
+
;;
|
|
341
|
+
debian)
|
|
342
|
+
print_info "Install build tools: sudo apt-get install gcc python3-dev"
|
|
343
|
+
;;
|
|
344
|
+
redhat)
|
|
345
|
+
print_info "Install build tools: sudo dnf install gcc python3-devel"
|
|
346
|
+
;;
|
|
347
|
+
*)
|
|
348
|
+
print_info "Install build tools: gcc and python3-dev equivalent"
|
|
349
|
+
;;
|
|
350
|
+
esac
|
|
250
351
|
elif [[ "$OS" == "macos" ]]; then
|
|
251
352
|
print_info "Install build tools: xcode-select --install"
|
|
252
353
|
fi
|
|
@@ -295,17 +396,39 @@ install_system_package() {
|
|
|
295
396
|
fi
|
|
296
397
|
fi
|
|
297
398
|
|
|
298
|
-
# Linux: only install if --with-sudo was passed
|
|
299
|
-
if [[ "$WITH_SUDO" == "true" ]]; then
|
|
300
|
-
print_info "Installing $display_name
|
|
301
|
-
if
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
399
|
+
# Linux: only install if --with-sudo was passed (except Alpine which often runs as root)
|
|
400
|
+
if [[ "$WITH_SUDO" == "true" ]] || [[ "$DISTRO" == "alpine" && "$(id -u)" == "0" ]]; then
|
|
401
|
+
print_info "Installing $display_name..."
|
|
402
|
+
if [[ "$WITH_SUDO" == "true" ]]; then
|
|
403
|
+
# Call package manager directly with sudo (functions don't work with sudo)
|
|
404
|
+
local install_result=0
|
|
405
|
+
case "$DISTRO" in
|
|
406
|
+
alpine) sudo apk add --no-cache "$package_name" || install_result=1 ;;
|
|
407
|
+
arch) sudo pacman -S --noconfirm "$package_name" || install_result=1 ;;
|
|
408
|
+
debian) sudo apt-get install -y "$package_name" || install_result=1 ;;
|
|
409
|
+
redhat) sudo dnf install -y "$package_name" || install_result=1 ;;
|
|
410
|
+
*) install_result=1 ;;
|
|
411
|
+
esac
|
|
412
|
+
if [[ "$install_result" -eq 0 ]]; then
|
|
413
|
+
print_success "$display_name installed"
|
|
414
|
+
track_success "optional" "$display_name"
|
|
415
|
+
return 0
|
|
416
|
+
else
|
|
417
|
+
print_warning "$display_name: package install failed"
|
|
418
|
+
track_failure "optional" "$display_name" "package install failed"
|
|
419
|
+
return 1
|
|
420
|
+
fi
|
|
305
421
|
else
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
422
|
+
# Alpine as root (no sudo needed)
|
|
423
|
+
if pkg_install "$package_name"; then
|
|
424
|
+
print_success "$display_name installed"
|
|
425
|
+
track_success "optional" "$display_name"
|
|
426
|
+
return 0
|
|
427
|
+
else
|
|
428
|
+
print_warning "$display_name: package install failed"
|
|
429
|
+
track_failure "optional" "$display_name" "package install failed"
|
|
430
|
+
return 1
|
|
431
|
+
fi
|
|
309
432
|
fi
|
|
310
433
|
else
|
|
311
434
|
# No sudo permission - track as skipped
|
|
@@ -325,16 +448,33 @@ check_package_manager() {
|
|
|
325
448
|
else
|
|
326
449
|
print_success "Homebrew found"
|
|
327
450
|
fi
|
|
328
|
-
elif [[ "$OS" == "linux" ]]; then
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
451
|
+
elif [[ "$OS" == "linux" ]] || [[ "$OS" == "wsl" ]]; then
|
|
452
|
+
case "$DISTRO" in
|
|
453
|
+
alpine)
|
|
454
|
+
print_success "apk found (Alpine Linux)"
|
|
455
|
+
;;
|
|
456
|
+
arch)
|
|
457
|
+
print_success "pacman found (Arch Linux)"
|
|
458
|
+
;;
|
|
459
|
+
debian)
|
|
460
|
+
print_success "apt-get found (Debian/Ubuntu)"
|
|
461
|
+
;;
|
|
462
|
+
redhat)
|
|
463
|
+
if command_exists dnf; then
|
|
464
|
+
print_success "dnf found (RHEL/Fedora)"
|
|
465
|
+
else
|
|
466
|
+
print_success "yum found (RHEL/CentOS)"
|
|
467
|
+
fi
|
|
468
|
+
;;
|
|
469
|
+
*)
|
|
470
|
+
print_warning "No supported package manager found (apk, pacman, apt-get, dnf, or yum)"
|
|
471
|
+
print_info "System packages will be skipped"
|
|
472
|
+
;;
|
|
473
|
+
esac
|
|
474
|
+
elif [[ "$OS" == "msys" ]] || [[ "$OS" == "cygwin" ]]; then
|
|
475
|
+
print_warning "Windows shell detected ($OS)"
|
|
476
|
+
print_info "System package installation not supported"
|
|
477
|
+
print_info "Please install dependencies manually or use WSL"
|
|
338
478
|
fi
|
|
339
479
|
}
|
|
340
480
|
|
|
@@ -342,10 +482,22 @@ check_package_manager() {
|
|
|
342
482
|
install_system_deps() {
|
|
343
483
|
print_header "Installing System Dependencies"
|
|
344
484
|
|
|
345
|
-
# Update
|
|
346
|
-
if [[ "$OS" == "linux" ]]
|
|
347
|
-
|
|
348
|
-
|
|
485
|
+
# Update package cache if we have permission (Linux only)
|
|
486
|
+
if [[ "$OS" == "linux" ]]; then
|
|
487
|
+
if [[ "$WITH_SUDO" == "true" ]]; then
|
|
488
|
+
print_info "Updating package lists..."
|
|
489
|
+
# Call package manager directly with sudo (functions don't work with sudo)
|
|
490
|
+
case "$DISTRO" in
|
|
491
|
+
alpine) sudo apk update ;;
|
|
492
|
+
arch) sudo pacman -Sy ;;
|
|
493
|
+
debian) sudo apt-get update -qq ;;
|
|
494
|
+
redhat) sudo dnf check-update || true ;;
|
|
495
|
+
esac
|
|
496
|
+
elif [[ "$DISTRO" == "alpine" && "$(id -u)" == "0" ]]; then
|
|
497
|
+
# Alpine as root (no sudo needed)
|
|
498
|
+
print_info "Updating package lists..."
|
|
499
|
+
pkg_update
|
|
500
|
+
fi
|
|
349
501
|
fi
|
|
350
502
|
|
|
351
503
|
# FFmpeg (required for media-processing skill)
|
|
@@ -377,9 +529,57 @@ install_node_deps() {
|
|
|
377
529
|
print_info "Installing Node.js..."
|
|
378
530
|
if [[ "$OS" == "macos" ]]; then
|
|
379
531
|
brew install node
|
|
380
|
-
elif [[ "$OS" == "linux" ]]; then
|
|
381
|
-
|
|
382
|
-
|
|
532
|
+
elif [[ "$OS" == "linux" ]] || [[ "$OS" == "wsl" ]]; then
|
|
533
|
+
case "$DISTRO" in
|
|
534
|
+
alpine)
|
|
535
|
+
# Alpine: install via apk
|
|
536
|
+
if [[ "$(id -u)" == "0" ]]; then
|
|
537
|
+
apk add --no-cache nodejs npm
|
|
538
|
+
elif [[ "$WITH_SUDO" == "true" ]]; then
|
|
539
|
+
sudo apk add --no-cache nodejs npm
|
|
540
|
+
else
|
|
541
|
+
print_warning "Node.js installation requires root or --with-sudo"
|
|
542
|
+
print_info "Run: apk add nodejs npm"
|
|
543
|
+
return 1
|
|
544
|
+
fi
|
|
545
|
+
;;
|
|
546
|
+
arch)
|
|
547
|
+
# Arch: install via pacman
|
|
548
|
+
if [[ "$(id -u)" == "0" ]]; then
|
|
549
|
+
pacman -S --noconfirm nodejs npm
|
|
550
|
+
elif [[ "$WITH_SUDO" == "true" ]]; then
|
|
551
|
+
sudo pacman -S --noconfirm nodejs npm
|
|
552
|
+
else
|
|
553
|
+
print_warning "Node.js installation requires root or --with-sudo"
|
|
554
|
+
print_info "Run: sudo pacman -S nodejs npm"
|
|
555
|
+
return 1
|
|
556
|
+
fi
|
|
557
|
+
;;
|
|
558
|
+
debian)
|
|
559
|
+
# Debian/Ubuntu: use nodesource
|
|
560
|
+
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
561
|
+
sudo apt-get install -y nodejs
|
|
562
|
+
;;
|
|
563
|
+
redhat)
|
|
564
|
+
# RHEL/CentOS/Fedora: use nodesource
|
|
565
|
+
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
|
|
566
|
+
if command_exists dnf; then
|
|
567
|
+
sudo dnf install -y nodejs
|
|
568
|
+
else
|
|
569
|
+
sudo yum install -y nodejs
|
|
570
|
+
fi
|
|
571
|
+
;;
|
|
572
|
+
*)
|
|
573
|
+
print_warning "Unknown distro, cannot install Node.js automatically"
|
|
574
|
+
print_info "Please install Node.js manually"
|
|
575
|
+
return 1
|
|
576
|
+
;;
|
|
577
|
+
esac
|
|
578
|
+
elif [[ "$OS" == "msys" ]] || [[ "$OS" == "cygwin" ]]; then
|
|
579
|
+
print_warning "Cannot install Node.js in $OS environment"
|
|
580
|
+
print_info "Please install Node.js from https://nodejs.org"
|
|
581
|
+
print_info "Or use WSL for better compatibility"
|
|
582
|
+
return 1
|
|
383
583
|
fi
|
|
384
584
|
print_success "Node.js installed"
|
|
385
585
|
fi
|
|
@@ -488,19 +688,9 @@ setup_python_env() {
|
|
|
488
688
|
PYTHON_PATH=$(which python3)
|
|
489
689
|
print_success "Python3 found ($PYTHON_VERSION)"
|
|
490
690
|
|
|
491
|
-
#
|
|
691
|
+
# Detect UV-managed Python — warn but don't exit (create_venv handles fallback)
|
|
492
692
|
if [[ "$PYTHON_PATH" == *"/.local/share/uv/"* ]]; then
|
|
493
|
-
|
|
494
|
-
if ! python3 -c "import sys; sys.exit(0 if '/install' not in sys.base_prefix else 1)" 2>/dev/null; then
|
|
495
|
-
print_error "UV Python installation is broken (corrupted sys.base_prefix)"
|
|
496
|
-
print_info "Please reinstall Python using Homebrew:"
|
|
497
|
-
print_info " brew install python@3.12"
|
|
498
|
-
print_info " export PATH=\"/opt/homebrew/bin:\$PATH\""
|
|
499
|
-
print_info "Or fix UV Python:"
|
|
500
|
-
print_info " uv python uninstall 3.12"
|
|
501
|
-
print_info " uv python install 3.12"
|
|
502
|
-
exit 1
|
|
503
|
-
fi
|
|
693
|
+
print_info "UV-managed Python detected (venv creation will use uv if needed)"
|
|
504
694
|
fi
|
|
505
695
|
else
|
|
506
696
|
print_error "Python3 not found. Please install Python 3.7+"
|
|
@@ -514,9 +704,32 @@ setup_python_env() {
|
|
|
514
704
|
return 0
|
|
515
705
|
fi
|
|
516
706
|
|
|
707
|
+
# Try uv venv if available (handles uv-managed Python where python3 -m venv breaks)
|
|
708
|
+
if command_exists uv; then
|
|
709
|
+
print_warning "Standard venv creation failed, trying uv venv..."
|
|
710
|
+
if uv venv "$VENV_DIR" 2>/dev/null; then
|
|
711
|
+
# uv venv doesn't include pip — bootstrap it
|
|
712
|
+
if ! curl -sS https://bootstrap.pypa.io/get-pip.py | "$VENV_DIR/bin/python3" 2>/dev/null; then
|
|
713
|
+
print_warning "Could not bootstrap pip via get-pip.py, trying uv pip..."
|
|
714
|
+
if ! uv pip install pip --python "$VENV_DIR/bin/python3" 2>/dev/null; then
|
|
715
|
+
print_error "Failed to install pip in uv venv"
|
|
716
|
+
rm -rf "$VENV_DIR"
|
|
717
|
+
return 1
|
|
718
|
+
fi
|
|
719
|
+
fi
|
|
720
|
+
return 0
|
|
721
|
+
fi
|
|
722
|
+
fi
|
|
723
|
+
|
|
517
724
|
# If ensurepip fails (common on macOS), create without pip and bootstrap manually
|
|
518
725
|
print_warning "Standard venv creation failed, trying without ensurepip..."
|
|
519
|
-
if python3 -m venv --without-pip "$VENV_DIR"; then
|
|
726
|
+
if python3 -m venv --without-pip "$VENV_DIR" 2>/dev/null; then
|
|
727
|
+
# Verify the venv Python works (uv-managed Python may create broken venvs)
|
|
728
|
+
if ! "$VENV_DIR/bin/python3" -c "import sys" 2>/dev/null; then
|
|
729
|
+
print_warning "Venv Python is broken (cannot import stdlib), skipping..."
|
|
730
|
+
rm -rf "$VENV_DIR"
|
|
731
|
+
return 1
|
|
732
|
+
fi
|
|
520
733
|
# Bootstrap pip manually with error handling
|
|
521
734
|
source "$VENV_DIR/bin/activate"
|
|
522
735
|
if ! curl -sS https://bootstrap.pypa.io/get-pip.py | python3; then
|
|
@@ -777,27 +990,87 @@ generate_remediation_commands() {
|
|
|
777
990
|
echo ""
|
|
778
991
|
|
|
779
992
|
if [[ "$has_sudo_skipped" == "true" ]]; then
|
|
780
|
-
echo "# System packages (requires sudo):"
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
993
|
+
echo "# System packages (requires root/sudo):"
|
|
994
|
+
case "$DISTRO" in
|
|
995
|
+
alpine)
|
|
996
|
+
echo "apk update"
|
|
997
|
+
for item in "${SKIPPED_SUDO[@]}"; do
|
|
998
|
+
local pkg="${item%%:*}"
|
|
999
|
+
case "$pkg" in
|
|
1000
|
+
FFmpeg) echo "apk add ffmpeg" ;;
|
|
1001
|
+
ImageMagick) echo "apk add imagemagick" ;;
|
|
1002
|
+
*) echo "# $pkg: see documentation" ;;
|
|
1003
|
+
esac
|
|
1004
|
+
done
|
|
1005
|
+
;;
|
|
1006
|
+
arch)
|
|
1007
|
+
echo "sudo pacman -Sy"
|
|
1008
|
+
for item in "${SKIPPED_SUDO[@]}"; do
|
|
1009
|
+
local pkg="${item%%:*}"
|
|
1010
|
+
case "$pkg" in
|
|
1011
|
+
FFmpeg) echo "sudo pacman -S --noconfirm ffmpeg" ;;
|
|
1012
|
+
ImageMagick) echo "sudo pacman -S --noconfirm imagemagick" ;;
|
|
1013
|
+
*) echo "# $pkg: see documentation" ;;
|
|
1014
|
+
esac
|
|
1015
|
+
done
|
|
1016
|
+
;;
|
|
1017
|
+
debian)
|
|
1018
|
+
echo "sudo apt-get update"
|
|
1019
|
+
for item in "${SKIPPED_SUDO[@]}"; do
|
|
1020
|
+
local pkg="${item%%:*}"
|
|
1021
|
+
case "$pkg" in
|
|
1022
|
+
FFmpeg) echo "sudo apt-get install -y ffmpeg" ;;
|
|
1023
|
+
ImageMagick) echo "sudo apt-get install -y imagemagick" ;;
|
|
1024
|
+
*) echo "# $pkg: see documentation" ;;
|
|
1025
|
+
esac
|
|
1026
|
+
done
|
|
1027
|
+
;;
|
|
1028
|
+
redhat)
|
|
1029
|
+
echo "sudo dnf check-update"
|
|
1030
|
+
for item in "${SKIPPED_SUDO[@]}"; do
|
|
1031
|
+
local pkg="${item%%:*}"
|
|
1032
|
+
case "$pkg" in
|
|
1033
|
+
FFmpeg) echo "sudo dnf install -y ffmpeg" ;;
|
|
1034
|
+
ImageMagick) echo "sudo dnf install -y ImageMagick" ;;
|
|
1035
|
+
*) echo "# $pkg: see documentation" ;;
|
|
1036
|
+
esac
|
|
1037
|
+
done
|
|
1038
|
+
;;
|
|
1039
|
+
*)
|
|
1040
|
+
echo "# Unknown distro - install packages manually"
|
|
1041
|
+
for item in "${SKIPPED_SUDO[@]}"; do
|
|
1042
|
+
local pkg="${item%%:*}"
|
|
1043
|
+
echo "# $pkg: see documentation"
|
|
1044
|
+
done
|
|
1045
|
+
;;
|
|
1046
|
+
esac
|
|
790
1047
|
echo ""
|
|
791
1048
|
fi
|
|
792
1049
|
|
|
793
1050
|
if [[ "$has_python_failed" == "true" ]]; then
|
|
794
1051
|
echo "# Python packages (may require build tools):"
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
1052
|
+
case "$DISTRO" in
|
|
1053
|
+
alpine)
|
|
1054
|
+
echo "apk add build-base python3-dev jpeg-dev zlib-dev"
|
|
1055
|
+
;;
|
|
1056
|
+
arch)
|
|
1057
|
+
echo "sudo pacman -S --noconfirm base-devel python libjpeg-turbo zlib"
|
|
1058
|
+
;;
|
|
1059
|
+
debian)
|
|
1060
|
+
echo "sudo apt-get install -y gcc python3-dev libjpeg-dev zlib1g-dev"
|
|
1061
|
+
;;
|
|
1062
|
+
redhat)
|
|
1063
|
+
echo "sudo dnf install -y gcc python3-devel libjpeg-devel zlib-devel"
|
|
1064
|
+
;;
|
|
1065
|
+
*)
|
|
1066
|
+
if [[ "$OS" == "macos" ]]; then
|
|
1067
|
+
echo "xcode-select --install"
|
|
1068
|
+
echo "brew install jpeg libpng"
|
|
1069
|
+
else
|
|
1070
|
+
echo "# Install gcc, python3-dev, and image libraries for your distro"
|
|
1071
|
+
fi
|
|
1072
|
+
;;
|
|
1073
|
+
esac
|
|
801
1074
|
echo "source $VENV_DIR/bin/activate"
|
|
802
1075
|
|
|
803
1076
|
for item in "${FAILED_OPTIONAL[@]}"; do
|
|
@@ -916,16 +1189,47 @@ write_error_summary() {
|
|
|
916
1189
|
skipped_json+="]"
|
|
917
1190
|
fi
|
|
918
1191
|
|
|
1192
|
+
# Generate distro-specific remediation commands
|
|
1193
|
+
local sudo_pkg_cmd build_tools_cmd
|
|
1194
|
+
case "$DISTRO" in
|
|
1195
|
+
alpine)
|
|
1196
|
+
sudo_pkg_cmd="apk add ffmpeg imagemagick"
|
|
1197
|
+
build_tools_cmd="apk add build-base python3-dev jpeg-dev zlib-dev"
|
|
1198
|
+
;;
|
|
1199
|
+
arch)
|
|
1200
|
+
sudo_pkg_cmd="sudo pacman -S --noconfirm ffmpeg imagemagick"
|
|
1201
|
+
build_tools_cmd="sudo pacman -S --noconfirm base-devel python libjpeg-turbo zlib"
|
|
1202
|
+
;;
|
|
1203
|
+
debian)
|
|
1204
|
+
sudo_pkg_cmd="sudo apt-get install -y ffmpeg imagemagick"
|
|
1205
|
+
build_tools_cmd="sudo apt-get install -y gcc python3-dev libjpeg-dev zlib1g-dev"
|
|
1206
|
+
;;
|
|
1207
|
+
redhat)
|
|
1208
|
+
sudo_pkg_cmd="sudo dnf install -y ffmpeg ImageMagick"
|
|
1209
|
+
build_tools_cmd="sudo dnf install -y gcc python3-devel libjpeg-devel zlib-devel"
|
|
1210
|
+
;;
|
|
1211
|
+
*)
|
|
1212
|
+
if [[ "$OS" == "macos" ]]; then
|
|
1213
|
+
sudo_pkg_cmd="brew install ffmpeg imagemagick"
|
|
1214
|
+
build_tools_cmd="xcode-select --install && brew install jpeg libpng"
|
|
1215
|
+
else
|
|
1216
|
+
sudo_pkg_cmd="# Install ffmpeg and imagemagick for your distro"
|
|
1217
|
+
build_tools_cmd="# Install gcc, python3-dev, and image libraries for your distro"
|
|
1218
|
+
fi
|
|
1219
|
+
;;
|
|
1220
|
+
esac
|
|
1221
|
+
|
|
919
1222
|
cat > "$summary_file" << EOF
|
|
920
1223
|
{
|
|
921
1224
|
"exit_code": $FINAL_EXIT_CODE,
|
|
922
1225
|
"timestamp": "$(date -Iseconds 2>/dev/null || date -u +%Y-%m-%dT%H:%M:%SZ)",
|
|
1226
|
+
"distro": "$DISTRO",
|
|
923
1227
|
"critical_failures": $critical_json,
|
|
924
1228
|
"optional_failures": $optional_json,
|
|
925
1229
|
"skipped": $skipped_json,
|
|
926
1230
|
"remediation": {
|
|
927
|
-
"sudo_packages": "
|
|
928
|
-
"build_tools": "
|
|
1231
|
+
"sudo_packages": "$sudo_pkg_cmd",
|
|
1232
|
+
"build_tools": "$build_tools_cmd",
|
|
929
1233
|
"pip_retry": "source $VENV_DIR/bin/activate && pip install <package>"
|
|
930
1234
|
}
|
|
931
1235
|
}
|
|
@@ -949,6 +1253,12 @@ main() {
|
|
|
949
1253
|
echo "" # Just add spacing, don't clear terminal
|
|
950
1254
|
print_header "Claude Code Skills Installation"
|
|
951
1255
|
print_info "OS: $OS"
|
|
1256
|
+
if [[ "$OS" == "linux" ]] || [[ "$OS" == "wsl" ]]; then
|
|
1257
|
+
print_info "Distro: $DISTRO"
|
|
1258
|
+
fi
|
|
1259
|
+
if [[ "$OS" == "wsl" ]]; then
|
|
1260
|
+
print_info "Environment: Windows Subsystem for Linux"
|
|
1261
|
+
fi
|
|
952
1262
|
print_info "Script directory: $SCRIPT_DIR"
|
|
953
1263
|
if [[ "$WITH_SUDO" == "true" ]]; then
|
|
954
1264
|
print_info "Mode: with sudo (--with-sudo)"
|
|
@@ -960,11 +1270,21 @@ main() {
|
|
|
960
1270
|
fi
|
|
961
1271
|
echo ""
|
|
962
1272
|
|
|
1273
|
+
# Handle unsupported OS
|
|
963
1274
|
if [[ "$OS" == "unknown" ]]; then
|
|
964
1275
|
print_error "Unsupported operating system"
|
|
965
1276
|
exit 1
|
|
966
1277
|
fi
|
|
967
1278
|
|
|
1279
|
+
# Warn about limited Windows shell support
|
|
1280
|
+
if [[ "$OS" == "msys" ]] || [[ "$OS" == "cygwin" ]]; then
|
|
1281
|
+
print_warning "Running in Windows shell environment ($OS)"
|
|
1282
|
+
print_warning "Limited functionality - system packages cannot be installed"
|
|
1283
|
+
print_info "For full support, consider using WSL (Windows Subsystem for Linux)"
|
|
1284
|
+
print_info "Continuing with Python environment setup only..."
|
|
1285
|
+
echo ""
|
|
1286
|
+
fi
|
|
1287
|
+
|
|
968
1288
|
# Confirm installation (skip if --yes flag or NON_INTERACTIVE env is set)
|
|
969
1289
|
if [[ "$SKIP_CONFIRM" == "false" ]]; then
|
|
970
1290
|
read -p "This will install system packages and Node.js dependencies. Continue? (y/N) " -n 1 -r
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ck:journal
|
|
3
|
+
description: "Write journal entries analyzing recent changes and session reflections."
|
|
4
|
+
argument-hint: "[topic or reflection]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Journal
|
|
8
|
+
|
|
9
|
+
Use the `journal-writer` subagent to explore the memories and recent code changes, and write some journal entries.
|
|
10
|
+
Journal entries should be concise and focused on the most important events, key changes, impacts, and decisions.
|
|
11
|
+
Keep journal entries in the `./docs/journals/` directory.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ck:kanban
|
|
3
|
+
description: "AI agent orchestration board for task visualization and team coordination."
|
|
4
|
+
argument-hint: "[dir]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plans Dashboard
|
|
8
|
+
|
|
9
|
+
Plans dashboard with progress tracking and timeline visualization.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
- `/ck:kanban` - View dashboard for ./plans directory
|
|
14
|
+
- `/ck:kanban <dir>` - View dashboard for specific directory
|
|
15
|
+
- `/ck:kanban --stop` - Stop running server
|
|
16
|
+
|
|
17
|
+
## Features
|
|
18
|
+
|
|
19
|
+
- Plan cards with progress bars
|
|
20
|
+
- Phase status breakdown (completed, in-progress, pending)
|
|
21
|
+
- Timeline/Gantt visualization
|
|
22
|
+
- Activity heatmap
|
|
23
|
+
- Issue and branch links
|
|
24
|
+
|
|
25
|
+
## Execution
|
|
26
|
+
|
|
27
|
+
**IMPORTANT:** Run server as Claude Code background task using `run_in_background: true` with the Bash tool. This makes the server visible in `/tasks` and manageable via `KillShell`.
|
|
28
|
+
|
|
29
|
+
The skill is located at `.claude/skills/plans-kanban/`.
|
|
30
|
+
|
|
31
|
+
### Stop Server
|
|
32
|
+
|
|
33
|
+
If `--stop` flag is provided:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node .claude/skills/plans-kanban/scripts/server.cjs --stop
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Start Server
|
|
40
|
+
|
|
41
|
+
Otherwise, run the kanban server as CC background task with `--foreground` flag (keeps process alive for CC task management):
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Determine plans directory
|
|
45
|
+
INPUT_DIR="$1"
|
|
46
|
+
PLANS_DIR="${INPUT_DIR:-./plans}"
|
|
47
|
+
|
|
48
|
+
# Start kanban dashboard
|
|
49
|
+
node .claude/skills/plans-kanban/scripts/server.cjs \
|
|
50
|
+
--dir "$PLANS_DIR" \
|
|
51
|
+
--host 0.0.0.0 \
|
|
52
|
+
--open \
|
|
53
|
+
--foreground
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Critical:** When calling the Bash tool:
|
|
57
|
+
- Set `run_in_background: true` to run as CC background task
|
|
58
|
+
- Set `timeout: 300000` (5 minutes) to prevent premature termination
|
|
59
|
+
- Parse JSON output and report URL to user
|
|
60
|
+
|
|
61
|
+
Example Bash tool call:
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"command": "node .claude/skills/plans-kanban/scripts/server.cjs --dir \"./plans\" --host 0.0.0.0 --open --foreground",
|
|
65
|
+
"run_in_background": true,
|
|
66
|
+
"timeout": 300000,
|
|
67
|
+
"description": "Start kanban server in background"
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
After starting, parse the JSON output and report:
|
|
72
|
+
- Local URL for browser access
|
|
73
|
+
- Network URL for remote device access (if available)
|
|
74
|
+
- Inform user that server is now running as CC background task (visible in `/tasks`)
|
|
75
|
+
|
|
76
|
+
**CRITICAL:** MUST display the FULL URL including path and query string. NEVER truncate to just `host:port`.
|
|
77
|
+
|
|
78
|
+
## Future Plans
|
|
79
|
+
|
|
80
|
+
The `/ck:kanban` command will evolve into **VibeKanban-inspired** AI agent orchestration:
|
|
81
|
+
|
|
82
|
+
### Phase 1 (Current - MVP)
|
|
83
|
+
- Task board with progress tracking
|
|
84
|
+
- Visual representation of plans/tasks
|
|
85
|
+
- Click to view plan details
|
|
86
|
+
|
|
87
|
+
### Phase 2 (Worktree Integration)
|
|
88
|
+
- Create tasks → spawn git worktrees
|
|
89
|
+
- Assign agents to tasks
|
|
90
|
+
- Track agent progress per worktree
|
|
91
|
+
|
|
92
|
+
### Phase 3 (Full Orchestration)
|
|
93
|
+
- Parallel agent execution monitoring
|
|
94
|
+
- Code diff/review interface
|
|
95
|
+
- PR creation workflow
|
|
96
|
+
- Agent output streaming
|
|
97
|
+
- Conflict detection
|
|
98
|
+
|
|
99
|
+
Track progress: https://github.com/claudekit/claudekit-engineer/issues/189
|