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
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"""Tests for context-engineering edge case handling.
|
|
2
|
+
|
|
3
|
+
Tests the error handling improvements in compression_evaluator.py and context_analyzer.py:
|
|
4
|
+
- File not found
|
|
5
|
+
- Permission denied
|
|
6
|
+
- Invalid JSON
|
|
7
|
+
- File too large
|
|
8
|
+
- UTF-8 encoding
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import json
|
|
12
|
+
import os
|
|
13
|
+
import stat
|
|
14
|
+
import subprocess
|
|
15
|
+
import sys
|
|
16
|
+
import tempfile
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
import pytest
|
|
20
|
+
|
|
21
|
+
SCRIPTS_DIR = Path(__file__).parent.parent
|
|
22
|
+
PYTHON = sys.executable
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class TestCompressionEvaluatorEdgeCases:
|
|
26
|
+
"""Test edge cases in compression_evaluator.py"""
|
|
27
|
+
|
|
28
|
+
@pytest.fixture
|
|
29
|
+
def valid_json_file(self, tmp_path):
|
|
30
|
+
"""Create valid JSON file."""
|
|
31
|
+
f = tmp_path / "valid.json"
|
|
32
|
+
f.write_text('{"messages": [{"role": "user", "content": "hello"}]}', encoding='utf-8')
|
|
33
|
+
return str(f)
|
|
34
|
+
|
|
35
|
+
@pytest.fixture
|
|
36
|
+
def valid_text_file(self, tmp_path):
|
|
37
|
+
"""Create valid text file."""
|
|
38
|
+
f = tmp_path / "compressed.txt"
|
|
39
|
+
f.write_text("Summary of conversation", encoding='utf-8')
|
|
40
|
+
return str(f)
|
|
41
|
+
|
|
42
|
+
def run_script(self, *args, timeout=30):
|
|
43
|
+
"""Run compression_evaluator.py with args."""
|
|
44
|
+
cmd = [PYTHON, str(SCRIPTS_DIR / "compression_evaluator.py")] + list(args)
|
|
45
|
+
result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
|
|
46
|
+
return result
|
|
47
|
+
|
|
48
|
+
def test_missing_file_exits_1(self, tmp_path):
|
|
49
|
+
"""Test exit code 1 when file not found."""
|
|
50
|
+
result = self.run_script("evaluate", "/nonexistent/file.json", str(tmp_path / "c.txt"))
|
|
51
|
+
assert result.returncode == 1
|
|
52
|
+
assert "File not found" in result.stderr
|
|
53
|
+
|
|
54
|
+
def test_missing_file_error_message(self, tmp_path):
|
|
55
|
+
"""Test error message format for missing file."""
|
|
56
|
+
missing = "/this/path/does/not/exist/file.json"
|
|
57
|
+
result = self.run_script("evaluate", missing, str(tmp_path / "c.txt"))
|
|
58
|
+
assert result.returncode == 1
|
|
59
|
+
assert missing in result.stderr or "not found" in result.stderr.lower()
|
|
60
|
+
|
|
61
|
+
def test_invalid_json_exits_1(self, tmp_path, valid_text_file):
|
|
62
|
+
"""Test exit code 1 when JSON is invalid."""
|
|
63
|
+
bad_json = tmp_path / "bad.json"
|
|
64
|
+
bad_json.write_text("{invalid json content", encoding='utf-8')
|
|
65
|
+
|
|
66
|
+
result = self.run_script("evaluate", str(bad_json), valid_text_file)
|
|
67
|
+
assert result.returncode == 1
|
|
68
|
+
assert "Invalid JSON" in result.stderr or "JSON" in result.stderr
|
|
69
|
+
|
|
70
|
+
def test_valid_files_succeed(self, valid_json_file, valid_text_file):
|
|
71
|
+
"""Test success with valid inputs."""
|
|
72
|
+
result = self.run_script("evaluate", valid_json_file, valid_text_file)
|
|
73
|
+
assert result.returncode == 0
|
|
74
|
+
output = json.loads(result.stdout)
|
|
75
|
+
assert "compression_ratio" in output
|
|
76
|
+
assert "quality_score" in output
|
|
77
|
+
|
|
78
|
+
def test_generate_probes_missing_file(self):
|
|
79
|
+
"""Test generate-probes with missing file."""
|
|
80
|
+
result = self.run_script("generate-probes", "/nonexistent/context.json")
|
|
81
|
+
assert result.returncode == 1
|
|
82
|
+
assert "File not found" in result.stderr
|
|
83
|
+
|
|
84
|
+
def test_generate_probes_invalid_json(self, tmp_path):
|
|
85
|
+
"""Test generate-probes with invalid JSON."""
|
|
86
|
+
bad = tmp_path / "bad.json"
|
|
87
|
+
bad.write_text("not valid json {{{", encoding='utf-8')
|
|
88
|
+
|
|
89
|
+
result = self.run_script("generate-probes", str(bad))
|
|
90
|
+
assert result.returncode == 1
|
|
91
|
+
assert "Invalid JSON" in result.stderr or "JSON" in result.stderr
|
|
92
|
+
|
|
93
|
+
def test_generate_probes_success(self, valid_json_file):
|
|
94
|
+
"""Test generate-probes with valid file."""
|
|
95
|
+
result = self.run_script("generate-probes", valid_json_file)
|
|
96
|
+
assert result.returncode == 0
|
|
97
|
+
output = json.loads(result.stdout)
|
|
98
|
+
assert isinstance(output, list)
|
|
99
|
+
|
|
100
|
+
def test_utf8_content(self, tmp_path):
|
|
101
|
+
"""Test UTF-8 encoding with special characters."""
|
|
102
|
+
utf8_file = tmp_path / "utf8.json"
|
|
103
|
+
content = {"messages": [{"role": "user", "content": "日本語テスト émojis 🎉"}]}
|
|
104
|
+
utf8_file.write_text(json.dumps(content), encoding='utf-8')
|
|
105
|
+
|
|
106
|
+
compressed = tmp_path / "compressed.txt"
|
|
107
|
+
compressed.write_text("Summary with 日本語 and émojis 🎉", encoding='utf-8')
|
|
108
|
+
|
|
109
|
+
result = self.run_script("evaluate", str(utf8_file), str(compressed))
|
|
110
|
+
assert result.returncode == 0
|
|
111
|
+
|
|
112
|
+
@pytest.mark.skipif(os.name == 'nt', reason="Permission test not reliable on Windows")
|
|
113
|
+
def test_permission_denied(self, tmp_path):
|
|
114
|
+
"""Test permission denied error."""
|
|
115
|
+
protected = tmp_path / "protected.json"
|
|
116
|
+
protected.write_text('{"messages": []}', encoding='utf-8')
|
|
117
|
+
os.chmod(protected, 0o000)
|
|
118
|
+
|
|
119
|
+
try:
|
|
120
|
+
result = self.run_script("generate-probes", str(protected))
|
|
121
|
+
assert result.returncode == 1
|
|
122
|
+
assert "Permission denied" in result.stderr or "permission" in result.stderr.lower()
|
|
123
|
+
finally:
|
|
124
|
+
os.chmod(protected, stat.S_IRUSR | stat.S_IWUSR)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class TestContextAnalyzerEdgeCases:
|
|
128
|
+
"""Test edge cases in context_analyzer.py"""
|
|
129
|
+
|
|
130
|
+
@pytest.fixture
|
|
131
|
+
def valid_context_file(self, tmp_path):
|
|
132
|
+
"""Create valid context file."""
|
|
133
|
+
f = tmp_path / "context.json"
|
|
134
|
+
content = {
|
|
135
|
+
"messages": [
|
|
136
|
+
{"role": "user", "content": "implement feature X"},
|
|
137
|
+
{"role": "assistant", "content": "I'll help with that"}
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
f.write_text(json.dumps(content), encoding='utf-8')
|
|
141
|
+
return str(f)
|
|
142
|
+
|
|
143
|
+
def run_script(self, *args, timeout=30):
|
|
144
|
+
"""Run context_analyzer.py with args."""
|
|
145
|
+
cmd = [PYTHON, str(SCRIPTS_DIR / "context_analyzer.py")] + list(args)
|
|
146
|
+
result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
|
|
147
|
+
return result
|
|
148
|
+
|
|
149
|
+
def test_missing_file_exits_1(self):
|
|
150
|
+
"""Test exit code 1 when file not found."""
|
|
151
|
+
result = self.run_script("analyze", "/nonexistent/context.json")
|
|
152
|
+
assert result.returncode == 1
|
|
153
|
+
assert "File not found" in result.stderr
|
|
154
|
+
|
|
155
|
+
def test_invalid_json_exits_1(self, tmp_path):
|
|
156
|
+
"""Test exit code 1 when JSON is invalid."""
|
|
157
|
+
bad = tmp_path / "bad.json"
|
|
158
|
+
bad.write_text("not json", encoding='utf-8')
|
|
159
|
+
|
|
160
|
+
result = self.run_script("analyze", str(bad))
|
|
161
|
+
assert result.returncode == 1
|
|
162
|
+
assert "Invalid JSON" in result.stderr or "JSON" in result.stderr
|
|
163
|
+
|
|
164
|
+
def test_valid_file_succeeds(self, valid_context_file):
|
|
165
|
+
"""Test success with valid input."""
|
|
166
|
+
result = self.run_script("analyze", valid_context_file)
|
|
167
|
+
assert result.returncode == 0
|
|
168
|
+
output = json.loads(result.stdout)
|
|
169
|
+
assert "health_status" in output or "health_score" in output
|
|
170
|
+
|
|
171
|
+
def test_utf8_content(self, tmp_path):
|
|
172
|
+
"""Test UTF-8 encoding with international characters."""
|
|
173
|
+
utf8_file = tmp_path / "utf8.json"
|
|
174
|
+
content = {
|
|
175
|
+
"messages": [
|
|
176
|
+
{"role": "user", "content": "日本語で説明してください"},
|
|
177
|
+
{"role": "assistant", "content": "はい、説明します。émojis: 🎉🚀"}
|
|
178
|
+
]
|
|
179
|
+
}
|
|
180
|
+
utf8_file.write_text(json.dumps(content, ensure_ascii=False), encoding='utf-8')
|
|
181
|
+
|
|
182
|
+
result = self.run_script("analyze", str(utf8_file))
|
|
183
|
+
assert result.returncode == 0
|
|
184
|
+
|
|
185
|
+
def test_empty_messages_array(self, tmp_path):
|
|
186
|
+
"""Test handling of empty messages array."""
|
|
187
|
+
f = tmp_path / "empty.json"
|
|
188
|
+
f.write_text('{"messages": []}', encoding='utf-8')
|
|
189
|
+
|
|
190
|
+
result = self.run_script("analyze", str(f))
|
|
191
|
+
assert result.returncode == 0
|
|
192
|
+
|
|
193
|
+
def test_direct_messages_list(self, tmp_path):
|
|
194
|
+
"""Test handling of direct messages list (no wrapper)."""
|
|
195
|
+
f = tmp_path / "direct.json"
|
|
196
|
+
content = [
|
|
197
|
+
{"role": "user", "content": "hello"},
|
|
198
|
+
{"role": "assistant", "content": "hi"}
|
|
199
|
+
]
|
|
200
|
+
f.write_text(json.dumps(content), encoding='utf-8')
|
|
201
|
+
|
|
202
|
+
result = self.run_script("analyze", str(f))
|
|
203
|
+
assert result.returncode == 0
|
|
204
|
+
|
|
205
|
+
@pytest.mark.skipif(os.name == 'nt', reason="Permission test not reliable on Windows")
|
|
206
|
+
def test_permission_denied(self, tmp_path):
|
|
207
|
+
"""Test permission denied error."""
|
|
208
|
+
protected = tmp_path / "protected.json"
|
|
209
|
+
protected.write_text('{"messages": []}', encoding='utf-8')
|
|
210
|
+
os.chmod(protected, 0o000)
|
|
211
|
+
|
|
212
|
+
try:
|
|
213
|
+
result = self.run_script("analyze", str(protected))
|
|
214
|
+
assert result.returncode == 1
|
|
215
|
+
assert "Permission denied" in result.stderr or "permission" in result.stderr.lower()
|
|
216
|
+
finally:
|
|
217
|
+
os.chmod(protected, stat.S_IRUSR | stat.S_IWUSR)
|
|
218
|
+
|
|
219
|
+
def test_with_keywords_filter(self, valid_context_file):
|
|
220
|
+
"""Test analyze with keywords filter."""
|
|
221
|
+
result = self.run_script("analyze", valid_context_file, "--keywords", "feature,implement")
|
|
222
|
+
assert result.returncode == 0
|
|
223
|
+
|
|
224
|
+
def test_with_limit(self, valid_context_file):
|
|
225
|
+
"""Test analyze with limit parameter."""
|
|
226
|
+
result = self.run_script("analyze", valid_context_file, "--limit", "10")
|
|
227
|
+
assert result.returncode == 0
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
class TestFileSizeValidation:
|
|
231
|
+
"""Test file size validation (100MB limit)."""
|
|
232
|
+
|
|
233
|
+
def test_large_file_warning_in_code(self):
|
|
234
|
+
"""Verify MAX_FILE_SIZE_MB constant exists in scripts."""
|
|
235
|
+
evaluator = SCRIPTS_DIR / "compression_evaluator.py"
|
|
236
|
+
analyzer = SCRIPTS_DIR / "context_analyzer.py"
|
|
237
|
+
|
|
238
|
+
eval_content = evaluator.read_text()
|
|
239
|
+
analyzer_content = analyzer.read_text()
|
|
240
|
+
|
|
241
|
+
assert "MAX_FILE_SIZE_MB = 100" in eval_content
|
|
242
|
+
assert "MAX_FILE_SIZE_MB = 100" in analyzer_content
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
if __name__ == "__main__":
|
|
246
|
+
pytest.main([__file__, "-v"])
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Cook Skill
|
|
2
|
+
|
|
3
|
+
End-to-end feature implementation with smart intent detection.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Copy the `cook/` folder to your Claude skills directory:
|
|
8
|
+
```bash
|
|
9
|
+
cp -r cook ~/.claude/skills/
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
/cook <natural language task OR plan path>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The skill automatically detects your intent and routes to the appropriate workflow.
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Interactive mode (default)
|
|
24
|
+
/cook implement user authentication
|
|
25
|
+
|
|
26
|
+
# Execute existing plan
|
|
27
|
+
/cook plans/260120-auth
|
|
28
|
+
|
|
29
|
+
# Fast mode (skip research)
|
|
30
|
+
/cook quick fix for login bug
|
|
31
|
+
/cook implement feature --fast
|
|
32
|
+
|
|
33
|
+
# Auto mode (trust me bro)
|
|
34
|
+
/cook implement dashboard trust me
|
|
35
|
+
/cook implement feature --auto
|
|
36
|
+
|
|
37
|
+
# Parallel mode (multi-agent)
|
|
38
|
+
/cook implement auth, payments, notifications
|
|
39
|
+
/cook implement feature --parallel
|
|
40
|
+
|
|
41
|
+
# No-test mode
|
|
42
|
+
/cook implement feature --no-test
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Modes
|
|
46
|
+
|
|
47
|
+
| Mode | Research | Testing | Review | Use Case |
|
|
48
|
+
|------|----------|---------|--------|----------|
|
|
49
|
+
| interactive | ✓ | ✓ | User approval | Default, full control |
|
|
50
|
+
| auto | ✓ | ✓ | Auto if score≥9.5 | Trusted, hands-off |
|
|
51
|
+
| fast | ✗ | ✓ | Simplified | Quick fixes |
|
|
52
|
+
| parallel | Optional | ✓ | User approval | Multi-feature work |
|
|
53
|
+
| no-test | ✓ | ✗ | User approval | Speed priority |
|
|
54
|
+
| code | ✗ | ✓ | User approval | Existing plans |
|
|
55
|
+
|
|
56
|
+
## Intent Detection
|
|
57
|
+
|
|
58
|
+
The skill detects mode from:
|
|
59
|
+
1. **Explicit flags:** `--fast`, `--auto`, `--parallel`, `--no-test`
|
|
60
|
+
2. **Plan paths:** `./plans/*`, `plan.md`, `phase-*.md`
|
|
61
|
+
3. **Keywords:** "fast", "quick", "trust me", "auto", "no test"
|
|
62
|
+
4. **Feature count:** 3+ features → parallel mode
|
|
63
|
+
|
|
64
|
+
## Workflow
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
[Intent Detection] → [Research?] → [Plan] → [Implement] → [Test?] → [Review] → [Finalize]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Files
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
cook/
|
|
74
|
+
├── SKILL.md # Main skill definition
|
|
75
|
+
├── README.md # This file
|
|
76
|
+
└── references/
|
|
77
|
+
├── intent-detection.md # Detection rules
|
|
78
|
+
├── workflow-steps.md # Step definitions
|
|
79
|
+
├── review-cycle.md # Review process
|
|
80
|
+
└── subagent-patterns.md # Subagent usage
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Version
|
|
84
|
+
|
|
85
|
+
2.1.0 - Review gates added for human-in-the-loop mode
|
|
86
|
+
2.0.0 - Smart intent detection (hybrid approach)
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ck:cook
|
|
3
|
+
description: "ALWAYS activate this skill before implementing EVERY feature, plan, or fix."
|
|
4
|
+
version: 2.1.1
|
|
5
|
+
argument-hint: "[task|plan-path] [--interactive|--fast|--parallel|--auto|--no-test]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Cook - Smart Feature Implementation
|
|
9
|
+
|
|
10
|
+
End-to-end implementation with automatic workflow detection.
|
|
11
|
+
|
|
12
|
+
**Principles:** YAGNI, KISS, DRY | Token efficiency | Concise reports
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/cook <natural language task OR plan path>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**IMPORTANT:** If no flag is provided, the skill will use the `interactive` mode by default for the workflow.
|
|
21
|
+
|
|
22
|
+
**Optional flags to select the workflow mode:**
|
|
23
|
+
- `--interactive`: Full workflow with user input (**default**)
|
|
24
|
+
- `--fast`: Skip research, scout→plan→code
|
|
25
|
+
- `--parallel`: Multi-agent execution
|
|
26
|
+
- `--no-test`: Skip testing step
|
|
27
|
+
- `--auto`: Auto-approve all steps
|
|
28
|
+
|
|
29
|
+
**Example:**
|
|
30
|
+
```
|
|
31
|
+
/cook "Add user authentication to the app" --fast
|
|
32
|
+
/cook path/to/plan.md --auto
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Smart Intent Detection
|
|
36
|
+
|
|
37
|
+
| Input Pattern | Detected Mode | Behavior |
|
|
38
|
+
|---------------|---------------|----------|
|
|
39
|
+
| Path to `plan.md` or `phase-*.md` | code | Execute existing plan |
|
|
40
|
+
| Contains "fast", "quick" | fast | Skip research, scout→plan→code |
|
|
41
|
+
| Contains "trust me", "auto" | auto | Auto-approve all steps |
|
|
42
|
+
| Lists 3+ features OR "parallel" | parallel | Multi-agent execution |
|
|
43
|
+
| Contains "no test", "skip test" | no-test | Skip testing step |
|
|
44
|
+
| Default | interactive | Full workflow with user input |
|
|
45
|
+
|
|
46
|
+
See `references/intent-detection.md` for detection logic.
|
|
47
|
+
|
|
48
|
+
## Workflow Overview
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
[Intent Detection] → [Research?] → [Review] → [Plan] → [Review] → [Implement] → [Review] → [Test?] → [Review] → [Finalize]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Default (non-auto):** Stops at `[Review]` gates for human approval before each major step.
|
|
55
|
+
**Auto mode (`--auto`):** Skips human review gates, implements all phases continuously.
|
|
56
|
+
**Claude Tasks:** Utilize all these tools `TaskCreate`, `TaskUpdate`, `TaskGet` and `TaskList` during implementation step.
|
|
57
|
+
|
|
58
|
+
| Mode | Research | Testing | Review Gates | Phase Progression |
|
|
59
|
+
|------|----------|---------|--------------|-------------------|
|
|
60
|
+
| interactive | ✓ | ✓ | **User approval at each step** | One at a time |
|
|
61
|
+
| auto | ✓ | ✓ | Auto if score≥9.5 | All at once (no stops) |
|
|
62
|
+
| fast | ✗ | ✓ | **User approval at each step** | One at a time |
|
|
63
|
+
| parallel | Optional | ✓ | **User approval at each step** | Parallel groups |
|
|
64
|
+
| no-test | ✓ | ✗ | **User approval at each step** | One at a time |
|
|
65
|
+
| code | ✗ | ✓ | **User approval at each step** | Per plan |
|
|
66
|
+
|
|
67
|
+
## Step Output Format
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
✓ Step [N]: [Brief status] - [Key metrics]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Blocking Gates (Non-Auto Mode)
|
|
74
|
+
|
|
75
|
+
Human review required at these checkpoints (skipped with `--auto`):
|
|
76
|
+
- **Post-Research:** Review findings before planning
|
|
77
|
+
- **Post-Plan:** Approve plan before implementation
|
|
78
|
+
- **Post-Implementation:** Approve code before testing
|
|
79
|
+
- **Post-Testing:** 100% pass + approve before finalize
|
|
80
|
+
|
|
81
|
+
**Always enforced (all modes):**
|
|
82
|
+
- **Testing:** 100% pass required (unless no-test mode)
|
|
83
|
+
- **Code Review:** User approval OR auto-approve (score≥9.5, 0 critical)
|
|
84
|
+
- **Finalize (MANDATORY - never skip):**
|
|
85
|
+
1. `project-manager` subagent → run full plan sync-back (all completed tasks/steps across all `phase-XX-*.md`, not only current phase), then update `plan.md` status/progress
|
|
86
|
+
2. `docs-manager` subagent → update `./docs` if changes warrant
|
|
87
|
+
3. `TaskUpdate` → mark all Claude Tasks complete after sync-back verification
|
|
88
|
+
4. Ask user if they want to commit via `git-manager` subagent
|
|
89
|
+
|
|
90
|
+
## Required Subagents (MANDATORY)
|
|
91
|
+
|
|
92
|
+
| Phase | Subagent | Requirement |
|
|
93
|
+
|-------|----------|-------------|
|
|
94
|
+
| Research | `researcher` | Optional in fast/code |
|
|
95
|
+
| Scout | `ck:scout` | Optional in code |
|
|
96
|
+
| Plan | `planner` | Optional in code |
|
|
97
|
+
| UI Work | `ui-ux-designer` | If frontend work |
|
|
98
|
+
| Testing | `tester`, `debugger` | **MUST** spawn |
|
|
99
|
+
| Review | `code-reviewer` | **MUST** spawn |
|
|
100
|
+
| Finalize | `project-manager`, `docs-manager`, `git-manager` | **MUST** spawn all 3 |
|
|
101
|
+
|
|
102
|
+
**CRITICAL ENFORCEMENT:**
|
|
103
|
+
- Steps 4, 5, 6 **MUST** use Task tool to spawn subagents
|
|
104
|
+
- DO NOT implement testing, review, or finalization yourself - DELEGATE
|
|
105
|
+
- If workflow ends with 0 Task tool calls, it is INCOMPLETE
|
|
106
|
+
- Pattern: `Task(subagent_type="[type]", prompt="[task]", description="[brief]")`
|
|
107
|
+
|
|
108
|
+
## References
|
|
109
|
+
|
|
110
|
+
- `references/intent-detection.md` - Detection rules and routing logic
|
|
111
|
+
- `references/workflow-steps.md` - Detailed step definitions for all modes
|
|
112
|
+
- `references/review-cycle.md` - Interactive and auto review processes
|
|
113
|
+
- `references/subagent-patterns.md` - Subagent invocation patterns
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Intent Detection Logic
|
|
2
|
+
|
|
3
|
+
Detect user intent from natural language and route to appropriate workflow.
|
|
4
|
+
|
|
5
|
+
## Detection Algorithm
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
FUNCTION detectMode(input):
|
|
9
|
+
# Priority 1: Explicit flags (override all)
|
|
10
|
+
IF input contains "--fast": RETURN "fast"
|
|
11
|
+
IF input contains "--parallel": RETURN "parallel"
|
|
12
|
+
IF input contains "--auto": RETURN "auto"
|
|
13
|
+
IF input contains "--no-test": RETURN "no-test"
|
|
14
|
+
|
|
15
|
+
# Priority 2: Plan path detection
|
|
16
|
+
IF input matches path pattern (./plans/*, plan.md, phase-*.md):
|
|
17
|
+
RETURN "code"
|
|
18
|
+
|
|
19
|
+
# Priority 3: Keyword detection (case-insensitive)
|
|
20
|
+
keywords = lowercase(input)
|
|
21
|
+
|
|
22
|
+
IF keywords contains ["fast", "quick", "rapidly", "asap"]:
|
|
23
|
+
RETURN "fast"
|
|
24
|
+
|
|
25
|
+
IF keywords contains ["trust me", "auto", "yolo", "just do it"]:
|
|
26
|
+
RETURN "auto"
|
|
27
|
+
|
|
28
|
+
IF keywords contains ["no test", "skip test", "without test"]:
|
|
29
|
+
RETURN "no-test"
|
|
30
|
+
|
|
31
|
+
# Priority 4: Complexity detection
|
|
32
|
+
features = extractFeatures(input) # comma-separated or "and"-joined items
|
|
33
|
+
IF count(features) >= 3 OR keywords contains "parallel":
|
|
34
|
+
RETURN "parallel"
|
|
35
|
+
|
|
36
|
+
# Default: interactive workflow
|
|
37
|
+
RETURN "interactive"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Feature Extraction
|
|
41
|
+
|
|
42
|
+
Detect multiple features from natural language:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
"implement auth, payments, and notifications" → ["auth", "payments", "notifications"]
|
|
46
|
+
"add login + signup + password reset" → ["login", "signup", "password reset"]
|
|
47
|
+
"create dashboard with charts and tables" → single feature (dashboard)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Parallel trigger:** 3+ distinct features = parallel mode
|
|
51
|
+
|
|
52
|
+
## Mode Behaviors
|
|
53
|
+
|
|
54
|
+
| Mode | Skip Research | Skip Test | Review Gates | Auto-Approve | Parallel Exec |
|
|
55
|
+
|------|---------------|-----------|--------------|--------------|---------------|
|
|
56
|
+
| interactive | ✗ | ✗ | **Yes (stops)** | ✗ | ✗ |
|
|
57
|
+
| auto | ✗ | ✗ | **No (skips)** | ✓ (score≥9.5) | ✓ (all phases) |
|
|
58
|
+
| fast | ✓ | ✗ | Yes (stops) | ✗ | ✗ |
|
|
59
|
+
| parallel | Optional | ✗ | Yes (stops) | ✗ | ✓ |
|
|
60
|
+
| no-test | ✗ | ✓ | Yes (stops) | ✗ | ✗ |
|
|
61
|
+
| code | ✓ | ✗ | Yes (stops) | Per plan | Per plan |
|
|
62
|
+
|
|
63
|
+
**Review Gates:** Human approval checkpoints between major steps (see `workflow-steps.md`).
|
|
64
|
+
- All modes EXCEPT `auto` stop at review gates for human approval.
|
|
65
|
+
- `auto` mode is the only mode that runs continuously without stopping.
|
|
66
|
+
|
|
67
|
+
## Examples
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
"/cook implement user auth"
|
|
71
|
+
→ Mode: interactive (default, stops at review gates)
|
|
72
|
+
|
|
73
|
+
"/cook plans/260120-auth/phase-02-api.md"
|
|
74
|
+
→ Mode: code (path detected, stops at review gates)
|
|
75
|
+
|
|
76
|
+
"/cook quick fix for the login bug"
|
|
77
|
+
→ Mode: fast ("quick" keyword, stops at review gates)
|
|
78
|
+
|
|
79
|
+
"/cook implement auth, payments, notifications, shipping"
|
|
80
|
+
→ Mode: parallel (4 features, stops at review gates)
|
|
81
|
+
|
|
82
|
+
"/cook implement dashboard --fast"
|
|
83
|
+
→ Mode: fast (explicit flag, stops at review gates)
|
|
84
|
+
|
|
85
|
+
"/cook implement everything --auto"
|
|
86
|
+
→ Mode: auto (NO STOPS, implements all phases continuously)
|
|
87
|
+
|
|
88
|
+
"/cook implement dashboard trust me"
|
|
89
|
+
→ Mode: auto ("trust me" keyword, NO STOPS)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Note:** Only `--auto` flag or "trust me"/"auto"/"yolo" keywords enable continuous execution.
|
|
93
|
+
|
|
94
|
+
## Conflict Resolution
|
|
95
|
+
|
|
96
|
+
When multiple signals detected, priority order:
|
|
97
|
+
1. Explicit flags (`--fast`, `--auto`, etc.)
|
|
98
|
+
2. Path detection (plan files)
|
|
99
|
+
3. Keywords in text
|
|
100
|
+
4. Feature count analysis
|
|
101
|
+
5. Default (interactive)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Code Review Cycle
|
|
2
|
+
|
|
3
|
+
Interactive review-fix cycle used in code workflows.
|
|
4
|
+
|
|
5
|
+
## Interactive Cycle (max 3 cycles)
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
cycle = 0
|
|
9
|
+
LOOP:
|
|
10
|
+
1. Run code-reviewer → score, critical_count, warnings, suggestions
|
|
11
|
+
|
|
12
|
+
2. DISPLAY FINDINGS:
|
|
13
|
+
┌─────────────────────────────────────────┐
|
|
14
|
+
│ Code Review Results: [score]/10 │
|
|
15
|
+
├─────────────────────────────────────────┤
|
|
16
|
+
│ Summary: [what implemented], tests │
|
|
17
|
+
│ [X/X passed] │
|
|
18
|
+
├─────────────────────────────────────────┤
|
|
19
|
+
│ Critical Issues ([N]): MUST FIX │
|
|
20
|
+
│ - [issue] at [file:line] │
|
|
21
|
+
│ Warnings ([N]): SHOULD FIX │
|
|
22
|
+
│ - [issue] at [file:line] │
|
|
23
|
+
│ Suggestions ([N]): NICE TO HAVE │
|
|
24
|
+
│ - [suggestion] │
|
|
25
|
+
└─────────────────────────────────────────┘
|
|
26
|
+
|
|
27
|
+
3. AskUserQuestion (header: "Review & Approve"):
|
|
28
|
+
IF critical_count > 0:
|
|
29
|
+
- "Fix critical issues" → fix, re-run tester, cycle++, LOOP
|
|
30
|
+
- "Fix all issues" → fix all, re-run tester, cycle++, LOOP
|
|
31
|
+
- "Approve anyway" → PROCEED
|
|
32
|
+
- "Abort" → stop
|
|
33
|
+
ELSE:
|
|
34
|
+
- "Approve" → PROCEED
|
|
35
|
+
- "Fix warnings/suggestions" → fix, cycle++, LOOP
|
|
36
|
+
- "Abort" → stop
|
|
37
|
+
|
|
38
|
+
4. IF cycle >= 3 AND user selects fix:
|
|
39
|
+
→ "⚠ 3 review cycles completed. Final decision required."
|
|
40
|
+
→ AskUserQuestion: "Approve with noted issues" / "Abort workflow"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Auto-Handling Cycle (for auto modes)
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
cycle = 0
|
|
47
|
+
LOOP:
|
|
48
|
+
1. Run code-reviewer → score, critical_count, warnings
|
|
49
|
+
|
|
50
|
+
2. IF score >= 9.5 AND critical_count == 0:
|
|
51
|
+
→ Auto-approve, PROCEED
|
|
52
|
+
|
|
53
|
+
3. ELSE IF critical_count > 0 AND cycle < 3:
|
|
54
|
+
→ Auto-fix critical issues
|
|
55
|
+
→ Re-run tester
|
|
56
|
+
→ cycle++, LOOP
|
|
57
|
+
|
|
58
|
+
4. ELSE IF critical_count > 0 AND cycle >= 3:
|
|
59
|
+
→ ESCALATE TO USER
|
|
60
|
+
|
|
61
|
+
5. ELSE (no critical, score < 9.5):
|
|
62
|
+
→ Approve with warnings logged, PROCEED
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Critical Issues Definition
|
|
66
|
+
- Security: XSS, SQL injection, OWASP vulnerabilities
|
|
67
|
+
- Performance: bottlenecks, inefficient algorithms
|
|
68
|
+
- Architecture: violations of patterns, coupling
|
|
69
|
+
- Principles: YAGNI, KISS, DRY violations
|
|
70
|
+
|
|
71
|
+
## Output Formats
|
|
72
|
+
- Waiting: `⏸ Step 4: Code reviewed - [score]/10 - WAITING for approval`
|
|
73
|
+
- After fix: `✓ Step 4: [old]/10 → Fixed [N] issues → [new]/10 - Approved`
|
|
74
|
+
- Auto-approved: `✓ Step 4: Code reviewed - 9.8/10 - Auto-approved`
|
|
75
|
+
- Approved: `✓ Step 4: Code reviewed - [score]/10 - User approved`
|