thanh-kit 2.5.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/.ck.json +60 -0
- package/templates/.ckignore +27 -0
- package/templates/.mcp.json.example +23 -0
- package/templates/agents/brainstormer.md +18 -2
- package/templates/agents/code-reviewer.md +122 -142
- package/templates/agents/code-simplifier.md +50 -100
- package/templates/agents/debugger.md +27 -11
- package/templates/agents/docs-manager.md +100 -38
- package/templates/agents/fullstack-developer.md +15 -3
- package/templates/agents/git-manager.md +11 -386
- package/templates/agents/journal-writer.md +13 -8
- package/templates/agents/mcp-manager.md +21 -6
- package/templates/agents/planner.md +24 -8
- package/templates/agents/project-manager.md +17 -121
- package/templates/agents/researcher.md +22 -7
- package/templates/agents/tester.md +23 -7
- package/templates/agents/ui-ux-designer.md +23 -14
- package/templates/hooks/__tests__/ck-config-utils.test.cjs +557 -0
- package/templates/hooks/__tests__/descriptive-name.test.cjs +292 -0
- package/templates/hooks/__tests__/dev-rules-reminder.test.cjs +336 -0
- package/templates/hooks/__tests__/integration/path-resolution.test.cjs +319 -0
- package/templates/hooks/__tests__/privacy-block.test.cjs +273 -0
- package/templates/hooks/__tests__/session-init.test.cjs +308 -0
- package/templates/hooks/__tests__/skill-dedup.test.cjs +527 -0
- package/templates/hooks/__tests__/subagent-init.test.cjs +622 -0
- package/templates/hooks/__tests__/task-completed-handler.test.cjs +246 -0
- package/templates/hooks/__tests__/team-context-inject.test.cjs +804 -0
- package/templates/hooks/__tests__/teammate-idle-handler.test.cjs +254 -0
- package/templates/hooks/cook-after-plan-reminder.cjs +72 -0
- package/templates/hooks/descriptive-name.cjs +47 -0
- package/templates/hooks/dev-rules-reminder.cjs +37 -214
- package/templates/hooks/lib/__tests__/README.md +240 -0
- package/templates/hooks/lib/__tests__/ck-config-utils.test.cjs +613 -1
- package/templates/hooks/lib/__tests__/context-builder.test.cjs +468 -0
- package/templates/hooks/lib/__tests__/project-detector.test.cjs +754 -0
- package/templates/hooks/lib/__tests__/statusline-integration.test.cjs +678 -0
- package/templates/hooks/lib/__tests__/statusline.test.cjs +689 -0
- package/templates/hooks/lib/ck-config-utils.cjs +146 -21
- package/templates/hooks/lib/colors.cjs +95 -0
- package/templates/hooks/lib/config-counter.cjs +103 -0
- package/templates/hooks/lib/context-builder.cjs +616 -0
- package/templates/hooks/lib/git-info-cache.cjs +143 -0
- package/templates/hooks/lib/hook-logger.cjs +92 -0
- package/templates/hooks/lib/privacy-checker.cjs +297 -0
- package/templates/hooks/lib/project-detector.cjs +474 -0
- package/templates/hooks/lib/scout-checker.cjs +263 -0
- package/templates/hooks/lib/transcript-parser.cjs +181 -0
- package/templates/hooks/notifications/discord_notify.sh +17 -4
- package/templates/hooks/notifications/docs/discord-hook-setup.md +26 -10
- package/templates/hooks/notifications/docs/telegram-hook-setup.md +24 -6
- package/templates/hooks/notifications/notify.cjs +0 -0
- package/templates/hooks/notifications/send-discord.sh +0 -0
- package/templates/hooks/notifications/telegram_notify.sh +17 -4
- package/templates/hooks/post-edit-simplify-reminder.cjs +156 -0
- package/templates/hooks/privacy-block.cjs +97 -188
- package/templates/hooks/scout-block/broad-pattern-detector.cjs +4 -6
- package/templates/hooks/scout-block/error-formatter.cjs +0 -0
- package/templates/hooks/scout-block/path-extractor.cjs +102 -13
- package/templates/hooks/scout-block/pattern-matcher.cjs +16 -1
- package/templates/hooks/scout-block/tests/{test-broad-pattern-detector.js → test-broad-pattern-detector.cjs} +1 -61
- package/templates/hooks/scout-block/tests/{test-build-command-allowlist.js → test-build-command-allowlist.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-error-formatter.js → test-error-formatter.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-full-flow-edge-cases.js → test-full-flow-edge-cases.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-monorepo-scenarios.js → test-monorepo-scenarios.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-path-extractor.js → test-path-extractor.cjs} +1 -1
- package/templates/hooks/scout-block/tests/{test-pattern-matcher.js → test-pattern-matcher.cjs} +1 -1
- package/templates/hooks/scout-block.cjs +100 -87
- package/templates/hooks/session-init.cjs +197 -330
- package/templates/hooks/skill-dedup.cjs +268 -0
- package/templates/hooks/subagent-init.cjs +75 -22
- package/templates/hooks/task-completed-handler.cjs +118 -0
- package/templates/hooks/team-context-inject.cjs +176 -0
- package/templates/hooks/teammate-idle-handler.cjs +121 -0
- package/templates/hooks/tests/scout-block/broad-pattern-detector.test.cjs +231 -0
- package/templates/hooks/tests/scout-block/fixtures/ckignore-custom.txt +6 -0
- package/templates/hooks/tests/scout-block/fixtures/ckignore-default.txt +13 -0
- package/templates/hooks/tests/scout-block/fixtures/ckignore-negation.txt +8 -0
- package/templates/hooks/tests/scout-block/path-extractor.test.cjs +527 -0
- package/templates/hooks/tests/scout-block/pattern-matcher.test.cjs +293 -0
- package/templates/hooks/tests/scout-block/scout-checker.test.cjs +741 -0
- package/templates/hooks/tests/{test-ckignore.js → test-ckignore.cjs} +0 -0
- package/templates/hooks/tests/{test-modularization-hook.js → test-modularization-hook.cjs} +0 -0
- package/templates/hooks/tests/{test-privacy-block.js → test-privacy-block.cjs} +1 -1
- package/templates/hooks/tests/test-scout-block.cjs +315 -0
- package/templates/hooks/usage-context-awareness.cjs +179 -0
- package/templates/metadata.json +104 -0
- package/templates/scripts/README.md +94 -198
- package/templates/scripts/ck-help.py +19 -855
- package/templates/scripts/commands_data.yaml +3 -621
- package/templates/scripts/fix-shebang-permissions.sh +50 -0
- package/templates/scripts/generate_catalogs.py +37 -8
- package/templates/scripts/resolve_env.py +0 -0
- package/templates/scripts/scan_commands.py +14 -96
- package/templates/scripts/scan_skills.py +59 -19
- package/templates/scripts/set-active-plan.cjs +8 -3
- package/templates/scripts/skills_data.yaml +2 -596
- package/templates/scripts/test-ck-help.py +15 -0
- package/templates/scripts/test_ck_help.py +139 -0
- package/templates/scripts/test_ck_help_integration.py +72 -0
- package/templates/scripts/validate-docs.cjs +342 -0
- package/templates/scripts/win_compat.py +0 -0
- package/templates/scripts/worktree.cjs +4 -652
- package/templates/scripts/worktree.test.cjs +5 -330
- package/templates/settings.json +104 -239
- package/templates/skills/README.md +95 -255
- package/templates/skills/THIRD_PARTY_NOTICES.md +405 -0
- package/templates/skills/agent-browser/SKILL.md +294 -0
- package/templates/skills/agent-browser/references/.gitkeep +0 -0
- package/templates/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/templates/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/templates/skills/ai-artist/SKILL.md +103 -56
- package/templates/skills/ai-artist/data/awesome-prompts.csv +3592 -0
- package/templates/skills/ai-artist/data/lighting.csv +19 -0
- package/templates/skills/ai-artist/data/nano-banana-templates.csv +17 -0
- package/templates/skills/ai-artist/data/platforms.csv +11 -0
- package/templates/skills/ai-artist/data/styles.csv +26 -0
- package/templates/skills/ai-artist/data/techniques.csv +19 -0
- package/templates/skills/ai-artist/data/use-cases.csv +16 -0
- package/templates/skills/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
- package/templates/skills/ai-artist/references/nano-banana.md +78 -1
- package/templates/skills/ai-artist/references/validation-workflow.md +117 -0
- package/templates/skills/ai-artist/scripts/core.py +197 -0
- package/templates/skills/ai-artist/scripts/extract_prompts.py +102 -0
- package/templates/skills/ai-artist/scripts/generate.py +370 -0
- package/templates/skills/ai-artist/scripts/search.py +147 -0
- package/templates/skills/ai-multimodal/SKILL.md +4 -3
- package/templates/skills/ai-multimodal/scripts/check_setup.py +12 -2
- package/templates/skills/ai-multimodal/scripts/document_converter.py +0 -0
- package/templates/skills/ai-multimodal/scripts/gemini_batch_process.py +3 -2
- package/templates/skills/ai-multimodal/scripts/media_optimizer.py +0 -0
- package/templates/skills/ask/SKILL.md +58 -0
- package/templates/skills/backend-development/SKILL.md +3 -2
- package/templates/skills/better-auth/SKILL.md +3 -2
- package/templates/skills/better-auth/scripts/better_auth_init.py +3 -3
- package/templates/skills/bootstrap/SKILL.md +101 -0
- package/templates/skills/bootstrap/references/shared-phases.md +59 -0
- package/templates/skills/bootstrap/references/workflow-auto.md +52 -0
- package/templates/skills/bootstrap/references/workflow-fast.md +50 -0
- package/templates/skills/bootstrap/references/workflow-full.md +60 -0
- package/templates/skills/bootstrap/references/workflow-parallel.md +59 -0
- package/templates/skills/brainstorm/SKILL.md +77 -0
- package/templates/skills/chrome-devtools/SKILL.md +221 -68
- package/templates/skills/chrome-devtools/scripts/README.md +18 -0
- package/templates/skills/chrome-devtools/scripts/__tests__/error-handling.test.js +102 -0
- package/templates/skills/chrome-devtools/scripts/aria-snapshot.js +2 -1
- package/templates/skills/chrome-devtools/scripts/click.js +2 -1
- package/templates/skills/chrome-devtools/scripts/connect-chrome.js +146 -0
- package/templates/skills/chrome-devtools/scripts/console.js +3 -1
- package/templates/skills/chrome-devtools/scripts/evaluate.js +6 -3
- package/templates/skills/chrome-devtools/scripts/fill.js +2 -1
- package/templates/skills/chrome-devtools/scripts/import-cookies.js +205 -0
- package/templates/skills/chrome-devtools/scripts/inject-auth.js +2 -1
- package/templates/skills/chrome-devtools/scripts/install-deps.sh +0 -0
- package/templates/skills/chrome-devtools/scripts/install.sh +0 -0
- package/templates/skills/chrome-devtools/scripts/lib/browser.js +60 -4
- package/templates/skills/chrome-devtools/scripts/navigate.js +86 -2
- package/templates/skills/chrome-devtools/scripts/network.js +3 -1
- package/templates/skills/chrome-devtools/scripts/performance.js +3 -1
- package/templates/skills/chrome-devtools/scripts/screenshot.js +2 -1
- package/templates/skills/chrome-devtools/scripts/select-ref.js +2 -1
- package/templates/skills/chrome-devtools/scripts/snapshot.js +2 -1
- package/templates/skills/chrome-devtools/scripts/ws-debug.js +44 -0
- package/templates/skills/chrome-devtools/scripts/ws-full-debug.js +107 -0
- package/templates/skills/ck-help/SKILL.md +102 -0
- package/templates/skills/ck-help/scripts/ck-help.py +1321 -0
- package/templates/skills/ck-help/scripts/commands_data.yaml +3 -0
- package/templates/skills/ck-help/scripts/skills_data.yaml +593 -0
- package/templates/skills/code-review/SKILL.md +97 -93
- package/templates/skills/code-review/references/code-review-reception.md +113 -209
- package/templates/skills/code-review/references/codebase-scan-workflow.md +29 -0
- package/templates/skills/code-review/references/edge-case-scouting.md +119 -0
- package/templates/skills/code-review/references/parallel-review-workflow.md +69 -0
- package/templates/skills/code-review/references/requesting-code-review.md +115 -104
- package/templates/skills/code-review/references/task-management-reviews.md +140 -0
- package/templates/skills/code-review/references/verification-before-completion.md +138 -138
- package/templates/skills/coding-level/SKILL.md +56 -0
- package/templates/skills/common/README.md +120 -0
- package/templates/skills/common/api_key_helper.py +411 -0
- package/templates/skills/common/api_key_rotator.py +248 -0
- package/templates/skills/context-engineering/SKILL.md +108 -0
- package/templates/skills/context-engineering/references/context-compression.md +84 -0
- package/templates/skills/context-engineering/references/context-degradation.md +93 -0
- package/templates/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/templates/skills/context-engineering/references/context-optimization.md +82 -0
- package/templates/skills/context-engineering/references/evaluation.md +89 -0
- package/templates/skills/context-engineering/references/memory-systems.md +88 -0
- package/templates/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/templates/skills/context-engineering/references/project-development.md +97 -0
- package/templates/skills/context-engineering/references/runtime-awareness.md +202 -0
- package/templates/skills/context-engineering/references/tool-design.md +86 -0
- package/templates/skills/context-engineering/scripts/compression_evaluator.py +349 -0
- package/templates/skills/context-engineering/scripts/context_analyzer.py +317 -0
- package/templates/skills/context-engineering/scripts/tests/test_edge_cases.py +246 -0
- package/templates/skills/cook/README.md +86 -0
- package/templates/skills/cook/SKILL.md +113 -0
- package/templates/skills/cook/references/intent-detection.md +101 -0
- package/templates/skills/cook/references/review-cycle.md +75 -0
- package/templates/skills/cook/references/subagent-patterns.md +75 -0
- package/templates/skills/cook/references/workflow-steps.md +172 -0
- package/templates/skills/copywriting/SKILL.md +94 -0
- package/templates/skills/copywriting/references/copy-formulas.md +150 -0
- package/templates/skills/copywriting/references/cta-patterns.md +168 -0
- package/templates/skills/copywriting/references/email-copy.md +193 -0
- package/templates/skills/copywriting/references/headline-templates.md +140 -0
- package/templates/skills/copywriting/references/landing-page-copy.md +175 -0
- package/templates/skills/copywriting/references/power-words.md +189 -0
- package/templates/skills/copywriting/references/social-media-copy.md +222 -0
- package/templates/skills/copywriting/references/workflow-cro.md +83 -0
- package/templates/skills/copywriting/references/workflow-enhance.md +32 -0
- package/templates/skills/copywriting/references/workflow-fast.md +29 -0
- package/templates/skills/copywriting/references/workflow-good.md +39 -0
- package/templates/skills/copywriting/references/writing-styles.md +247 -0
- package/templates/skills/copywriting/scripts/extract-writing-styles.py +308 -0
- package/templates/skills/copywriting/templates/copy-brief.md +49 -0
- package/templates/skills/databases/SKILL.md +7 -155
- package/templates/skills/databases/analytics.md +198 -0
- package/templates/skills/databases/db-design.md +188 -0
- package/templates/skills/databases/incremental-etl.md +213 -0
- package/templates/skills/databases/scripts/db_backup.py +0 -0
- package/templates/skills/databases/scripts/db_migrate.py +3 -2
- package/templates/skills/databases/scripts/db_performance_check.py +3 -2
- package/templates/skills/databases/stacks/bigquery.md +231 -0
- package/templates/skills/databases/stacks/d1_cloudflare.md +137 -0
- package/templates/skills/databases/stacks/mysql.md +216 -0
- package/templates/skills/databases/stacks/postgres.md +235 -0
- package/templates/skills/databases/stacks/sqlite.md +244 -0
- package/templates/skills/databases/transactional.md +176 -0
- package/templates/skills/debug/SKILL.md +121 -0
- package/templates/skills/debug/references/frontend-verification.md +103 -0
- package/templates/skills/debug/references/investigation-methodology.md +101 -0
- package/templates/skills/debug/references/log-and-ci-analysis.md +97 -0
- package/templates/skills/debug/references/performance-diagnostics.md +113 -0
- package/templates/skills/debug/references/reporting-standards.md +122 -0
- package/templates/skills/debug/references/task-management-debugging.md +155 -0
- package/templates/skills/devops/SKILL.md +65 -253
- package/templates/skills/devops/references/kubernetes-basics.md +99 -0
- package/templates/skills/devops/references/kubernetes-helm-advanced.md +75 -0
- package/templates/skills/devops/references/kubernetes-helm.md +81 -0
- package/templates/skills/devops/references/kubernetes-kubectl.md +74 -0
- package/templates/skills/devops/references/kubernetes-security-advanced.md +98 -0
- package/templates/skills/devops/references/kubernetes-security.md +95 -0
- package/templates/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/templates/skills/devops/references/kubernetes-troubleshooting.md +49 -0
- package/templates/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/templates/skills/devops/references/kubernetes-workflows.md +78 -0
- package/templates/skills/devops/scripts/cloudflare_deploy.py +0 -0
- package/templates/skills/devops/scripts/docker_optimize.py +3 -2
- package/templates/skills/docs/SKILL.md +55 -0
- package/templates/skills/docs/references/init-workflow.md +32 -0
- package/templates/skills/docs/references/summarize-workflow.md +18 -0
- package/templates/skills/docs/references/update-workflow.md +59 -0
- package/templates/skills/docs-seeker/SKILL.md +3 -2
- package/templates/skills/docs-seeker/scripts/analyze-llms-txt.js +0 -0
- package/templates/skills/docs-seeker/scripts/detect-topic.js +0 -0
- package/templates/skills/docs-seeker/scripts/fetch-docs.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/run-tests.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/test-analyze-llms.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/test-detect-topic.js +0 -0
- package/templates/skills/docs-seeker/scripts/tests/test-fetch-docs.js +0 -0
- package/templates/skills/docs-seeker/scripts/utils/env-loader.js +0 -0
- package/templates/skills/document-skills/docx/SKILL.md +2 -2
- package/templates/skills/document-skills/docx/ooxml/scripts/pack.py +0 -0
- package/templates/skills/document-skills/docx/ooxml/scripts/unpack.py +0 -0
- package/templates/skills/document-skills/docx/ooxml/scripts/validate.py +0 -0
- package/templates/skills/document-skills/docx/scripts/document.py +0 -0
- package/templates/skills/document-skills/docx/scripts/utilities.py +0 -0
- package/templates/skills/document-skills/pdf/SKILL.md +2 -2
- package/templates/skills/document-skills/pptx/SKILL.md +2 -2
- package/templates/skills/document-skills/pptx/ooxml/scripts/pack.py +0 -0
- package/templates/skills/document-skills/pptx/ooxml/scripts/unpack.py +0 -0
- package/templates/skills/document-skills/pptx/ooxml/scripts/validate.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/inventory.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/rearrange.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/replace.py +0 -0
- package/templates/skills/document-skills/pptx/scripts/thumbnail.py +0 -0
- package/templates/skills/document-skills/xlsx/SKILL.md +2 -2
- package/templates/skills/document-skills/xlsx/recalc.py +3 -2
- package/templates/skills/find-skills/SKILL.md +134 -0
- package/templates/skills/fix/SKILL.md +111 -0
- package/templates/skills/fix/references/complexity-assessment.md +72 -0
- package/templates/skills/fix/references/mode-selection.md +46 -0
- package/templates/skills/fix/references/parallel-exploration.md +100 -0
- package/templates/skills/fix/references/review-cycle.md +77 -0
- package/templates/skills/fix/references/skill-activation-matrix.md +78 -0
- package/templates/skills/fix/references/task-orchestration.md +103 -0
- package/templates/skills/fix/references/workflow-ci.md +28 -0
- package/templates/skills/fix/references/workflow-deep.md +122 -0
- package/templates/skills/fix/references/workflow-logs.md +72 -0
- package/templates/skills/fix/references/workflow-quick.md +59 -0
- package/templates/skills/fix/references/workflow-standard.md +111 -0
- package/templates/skills/fix/references/workflow-test.md +75 -0
- package/templates/skills/fix/references/workflow-types.md +33 -0
- package/templates/skills/fix/references/workflow-ui.md +75 -0
- package/templates/skills/frontend-design/SKILL.md +78 -91
- package/templates/skills/frontend-design/references/ai-multimodal-overview.md +6 -6
- package/templates/skills/frontend-design/references/animejs.md +395 -395
- package/templates/skills/frontend-design/references/asset-generation.md +4 -4
- package/templates/skills/frontend-design/references/visual-analysis-overview.md +1 -1
- package/templates/skills/frontend-design/references/workflow-3d.md +102 -0
- package/templates/skills/frontend-design/references/workflow-describe.md +87 -0
- package/templates/skills/frontend-design/references/workflow-immersive.md +87 -0
- package/templates/skills/frontend-design/references/workflow-quick.md +57 -0
- package/templates/skills/frontend-design/references/workflow-screenshot.md +63 -0
- package/templates/skills/frontend-design/references/workflow-video.md +74 -0
- package/templates/skills/frontend-development/SKILL.md +4 -3
- package/templates/skills/git/SKILL.md +114 -0
- package/templates/skills/git/references/branch-management.md +88 -0
- package/templates/skills/git/references/commit-standards.md +46 -0
- package/templates/skills/git/references/gh-cli-guide.md +109 -0
- package/templates/skills/git/references/safety-protocols.md +69 -0
- package/templates/skills/git/references/workflow-commit.md +58 -0
- package/templates/skills/git/references/workflow-merge.md +48 -0
- package/templates/skills/git/references/workflow-pr.md +58 -0
- package/templates/skills/git/references/workflow-push.md +52 -0
- package/templates/skills/gkg/SKILL.md +91 -0
- package/templates/skills/gkg/references/cli-commands.md +106 -0
- package/templates/skills/gkg/references/http-api.md +102 -0
- package/templates/skills/gkg/references/language-support.md +57 -0
- package/templates/skills/gkg/references/mcp-tools.md +99 -0
- package/templates/skills/google-adk-python/SKILL.md +91 -195
- package/templates/skills/google-adk-python/references/agent-types-and-architecture.md +128 -0
- package/templates/skills/google-adk-python/references/callbacks-plugins-observability.md +117 -0
- package/templates/skills/google-adk-python/references/deployment-cloud-run-vertex-gke.md +138 -0
- package/templates/skills/google-adk-python/references/evaluation-testing-cli.md +112 -0
- package/templates/skills/google-adk-python/references/multi-agent-and-a2a-protocol.md +145 -0
- package/templates/skills/google-adk-python/references/sessions-state-memory-artifacts.md +131 -0
- package/templates/skills/google-adk-python/references/tools-and-mcp-integration.md +146 -0
- package/templates/skills/install.ps1 +130 -26
- package/templates/skills/install.sh +383 -63
- package/templates/skills/journal/SKILL.md +11 -0
- package/templates/skills/kanban/SKILL.md +99 -0
- package/templates/skills/markdown-novel-viewer/SKILL.md +314 -0
- package/templates/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/templates/skills/markdown-novel-viewer/assets/favicon.png +0 -0
- package/templates/skills/markdown-novel-viewer/assets/novel-theme.css +16 -0
- package/templates/skills/markdown-novel-viewer/assets/reader.js +838 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-base.css +54 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-components.css +180 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-content.css +176 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-header.css +217 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-mermaid.css +153 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-overlays.css +202 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-responsive.css +285 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-sidebar.css +359 -0
- package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-variables.css +56 -0
- package/templates/skills/markdown-novel-viewer/assets/template.html +149 -0
- package/templates/skills/markdown-novel-viewer/bun.lock +38 -0
- package/templates/skills/markdown-novel-viewer/package.json +15 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +571 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +48 -0
- package/templates/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/templates/skills/markdown-novel-viewer/scripts/server.cjs +411 -0
- package/templates/skills/markdown-novel-viewer/scripts/tests/server.test.cjs +283 -0
- package/templates/skills/markdown-novel-viewer/tests/dashboard-assets.test.cjs +340 -0
- package/templates/skills/markdown-novel-viewer/tests/dashboard-renderer.test.cjs +404 -0
- package/templates/skills/markdown-novel-viewer/tests/http-server.test.cjs +271 -0
- package/templates/skills/markdown-novel-viewer/tests/run-tests.cjs +51 -0
- package/templates/skills/markdown-novel-viewer/tests/test-framework.cjs +154 -0
- package/templates/skills/markdown-novel-viewer/tests/verify-xss.cjs +90 -0
- package/templates/skills/mcp-builder/SKILL.md +3 -2
- package/templates/skills/mcp-builder/scripts/evaluation.py +9 -1
- package/templates/skills/mcp-management/SKILL.md +8 -7
- package/templates/skills/mcp-management/references/gemini-cli-integration.md +16 -10
- package/templates/skills/mcp-management/scripts/cli.ts +0 -0
- package/templates/skills/mcp-management/scripts/dist/analyze-tools.js +0 -0
- package/templates/skills/mcp-management/scripts/dist/cli.js +0 -0
- package/templates/skills/mcp-management/scripts/dist/mcp-client.js +0 -0
- package/templates/skills/mcp-management/scripts/mcp-client.ts +0 -0
- package/templates/skills/media-processing/SKILL.md +3 -2
- package/templates/skills/media-processing/scripts/batch-remove-background.sh +0 -0
- package/templates/skills/media-processing/scripts/batch_resize.py +0 -0
- package/templates/skills/media-processing/scripts/media_convert.py +0 -0
- package/templates/skills/media-processing/scripts/remove-background.sh +0 -0
- package/templates/skills/media-processing/scripts/remove-bg-node.js +0 -0
- package/templates/skills/media-processing/scripts/tests/test_batch_resize.py +0 -0
- package/templates/skills/media-processing/scripts/tests/test_media_convert.py +0 -0
- package/templates/skills/media-processing/scripts/tests/test_video_optimize.py +0 -0
- package/templates/skills/media-processing/scripts/video_optimize.py +0 -0
- package/templates/skills/mermaidjs-v11/SKILL.md +116 -0
- package/templates/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/templates/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/templates/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/templates/skills/mermaidjs-v11/references/examples.md +344 -0
- package/templates/skills/mermaidjs-v11/references/integration.md +310 -0
- package/templates/skills/mintlify/SKILL.md +121 -0
- package/templates/skills/mintlify/references/ai-features-and-integrations-reference.md +756 -0
- package/templates/skills/mintlify/references/api-documentation-components-reference.md +873 -0
- package/templates/skills/mintlify/references/deployment-and-continuous-integration-reference.md +674 -0
- package/templates/skills/mintlify/references/docs-json-configuration-reference.md +724 -0
- package/templates/skills/mintlify/references/mdx-components-reference.md +551 -0
- package/templates/skills/mintlify/references/navigation-structure-and-organization-reference.md +775 -0
- package/templates/skills/mobile-development/SKILL.md +3 -2
- package/templates/skills/payment-integration/README.md +44 -12
- package/templates/skills/payment-integration/SKILL.md +82 -97
- package/templates/skills/payment-integration/references/creem/api.md +139 -0
- package/templates/skills/payment-integration/references/creem/checkouts.md +99 -0
- package/templates/skills/payment-integration/references/creem/licensing.md +136 -0
- package/templates/skills/payment-integration/references/creem/overview.md +65 -0
- package/templates/skills/payment-integration/references/creem/sdk.md +161 -0
- package/templates/skills/payment-integration/references/creem/subscriptions.md +129 -0
- package/templates/skills/payment-integration/references/creem/webhooks.md +120 -0
- package/templates/skills/payment-integration/references/implementation-workflows.md +43 -0
- package/templates/skills/payment-integration/references/multi-provider-order-management-patterns.md +821 -0
- package/templates/skills/payment-integration/references/paddle/api.md +116 -0
- package/templates/skills/payment-integration/references/paddle/best-practices.md +130 -0
- package/templates/skills/payment-integration/references/paddle/overview.md +57 -0
- package/templates/skills/payment-integration/references/paddle/paddle-js.md +106 -0
- package/templates/skills/payment-integration/references/paddle/sdk.md +131 -0
- package/templates/skills/payment-integration/references/paddle/subscriptions.md +118 -0
- package/templates/skills/payment-integration/references/paddle/webhooks.md +112 -0
- package/templates/skills/payment-integration/references/polar/best-practices.md +781 -361
- package/templates/skills/payment-integration/references/sepay/best-practices.md +870 -268
- package/templates/skills/payment-integration/references/stripe/stripe-best-practices.md +32 -0
- package/templates/skills/payment-integration/references/stripe/stripe-cli.md +148 -0
- package/templates/skills/payment-integration/references/stripe/stripe-js.md +116 -0
- package/templates/skills/payment-integration/references/stripe/stripe-sdks.md +84 -0
- package/templates/skills/payment-integration/references/stripe/stripe-upgrade.md +175 -0
- package/templates/skills/payment-integration/scripts/checkout-helper.js +0 -0
- package/templates/skills/payment-integration/scripts/polar-webhook-verify.js +0 -0
- package/templates/skills/payment-integration/scripts/sepay-webhook-verify.js +0 -0
- package/templates/skills/payment-integration/scripts/test-scripts.js +0 -0
- package/templates/skills/plan/SKILL.md +137 -0
- package/templates/skills/plan/references/archive-workflow.md +53 -0
- package/templates/skills/{planning → plan}/references/codebase-understanding.md +1 -1
- package/templates/skills/{planning → plan}/references/output-standards.md +15 -1
- package/templates/skills/{planning → plan}/references/plan-organization.md +12 -19
- package/templates/skills/plan/references/red-team-personas.md +69 -0
- package/templates/skills/plan/references/red-team-workflow.md +77 -0
- package/templates/skills/{planning → plan}/references/research-phase.md +2 -2
- package/templates/skills/plan/references/task-management.md +132 -0
- package/templates/skills/plan/references/validate-question-framework.md +80 -0
- package/templates/skills/plan/references/validate-workflow.md +65 -0
- package/templates/skills/plan/references/workflow-modes.md +145 -0
- package/templates/skills/plans-kanban/SKILL.md +167 -0
- package/templates/skills/plans-kanban/assets/dashboard-template.html +119 -0
- package/templates/skills/plans-kanban/assets/dashboard.css +1594 -0
- package/templates/skills/plans-kanban/assets/dashboard.js +596 -0
- package/templates/skills/plans-kanban/assets/favicon.png +0 -0
- package/templates/skills/plans-kanban/package.json +13 -0
- package/templates/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +884 -0
- package/templates/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
- package/templates/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
- package/templates/skills/plans-kanban/scripts/lib/plan-parser.cjs +175 -0
- package/templates/skills/plans-kanban/scripts/lib/plan-scanner.cjs +272 -0
- package/templates/skills/plans-kanban/scripts/lib/port-finder.cjs +48 -0
- package/templates/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
- package/templates/skills/plans-kanban/scripts/server.cjs +260 -0
- package/templates/skills/preview/SKILL.md +75 -0
- package/templates/skills/preview/references/generation-modes.md +95 -0
- package/templates/skills/preview/references/view-mode.md +42 -0
- package/templates/skills/problem-solving/SKILL.md +3 -2
- package/templates/skills/project-management/SKILL.md +122 -0
- package/templates/skills/project-management/references/documentation-triggers.md +60 -0
- package/templates/skills/project-management/references/hydration-workflow.md +85 -0
- package/templates/skills/project-management/references/progress-tracking.md +96 -0
- package/templates/skills/project-management/references/reporting-patterns.md +94 -0
- package/templates/skills/project-management/references/task-operations.md +85 -0
- package/templates/skills/react-best-practices/AGENTS.md +2249 -0
- package/templates/skills/react-best-practices/README.md +123 -0
- package/templates/skills/react-best-practices/SKILL.md +122 -0
- package/templates/skills/react-best-practices/metadata.json +15 -0
- package/templates/skills/react-best-practices/rules/_sections.md +46 -0
- package/templates/skills/react-best-practices/rules/_template.md +28 -0
- package/templates/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/templates/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/templates/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/templates/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/templates/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/templates/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/templates/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/templates/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/templates/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/templates/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/templates/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/templates/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/templates/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/templates/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/templates/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/templates/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/templates/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/templates/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/templates/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/templates/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/templates/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/templates/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/templates/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/templates/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/templates/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/templates/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/templates/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/templates/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/templates/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/templates/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/templates/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/templates/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/templates/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/templates/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/templates/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/templates/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/templates/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/templates/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/templates/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/templates/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/templates/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/templates/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/templates/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/templates/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/templates/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/templates/skills/remotion/SKILL.md +44 -0
- package/templates/skills/remotion/rules/3d.md +86 -0
- package/templates/skills/remotion/rules/animations.md +29 -0
- package/templates/skills/remotion/rules/assets/charts-bar-chart.tsx +173 -0
- package/templates/skills/remotion/rules/assets/text-animations-typewriter.tsx +100 -0
- package/templates/skills/remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/templates/skills/remotion/rules/assets.md +78 -0
- package/templates/skills/remotion/rules/audio.md +172 -0
- package/templates/skills/remotion/rules/calculate-metadata.md +104 -0
- package/templates/skills/remotion/rules/can-decode.md +75 -0
- package/templates/skills/remotion/rules/charts.md +58 -0
- package/templates/skills/remotion/rules/compositions.md +146 -0
- package/templates/skills/remotion/rules/display-captions.md +126 -0
- package/templates/skills/remotion/rules/extract-frames.md +229 -0
- package/templates/skills/remotion/rules/fonts.md +152 -0
- package/templates/skills/remotion/rules/get-audio-duration.md +58 -0
- package/templates/skills/remotion/rules/get-video-dimensions.md +68 -0
- package/templates/skills/remotion/rules/get-video-duration.md +58 -0
- package/templates/skills/remotion/rules/gifs.md +138 -0
- package/templates/skills/remotion/rules/images.md +130 -0
- package/templates/skills/remotion/rules/import-srt-captions.md +67 -0
- package/templates/skills/remotion/rules/lottie.md +68 -0
- package/templates/skills/remotion/rules/measuring-dom-nodes.md +35 -0
- package/templates/skills/remotion/rules/measuring-text.md +143 -0
- package/templates/skills/remotion/rules/sequencing.md +106 -0
- package/templates/skills/remotion/rules/tailwind.md +11 -0
- package/templates/skills/remotion/rules/text-animations.md +20 -0
- package/templates/skills/remotion/rules/timing.md +179 -0
- package/templates/skills/remotion/rules/transcribe-captions.md +19 -0
- package/templates/skills/remotion/rules/transitions.md +122 -0
- package/templates/skills/remotion/rules/trimming.md +53 -0
- package/templates/skills/remotion/rules/videos.md +171 -0
- package/templates/skills/repomix/SKILL.md +3 -2
- package/templates/skills/repomix/scripts/repomix_batch.py +0 -0
- package/templates/skills/research/SKILL.md +9 -6
- package/templates/skills/scout/SKILL.md +89 -0
- package/templates/skills/scout/references/external-scouting.md +140 -0
- package/templates/skills/scout/references/internal-scouting.md +119 -0
- package/templates/skills/scout/references/task-management-scouting.md +125 -0
- package/templates/skills/sequential-thinking/SKILL.md +3 -2
- package/templates/skills/sequential-thinking/scripts/format-thought.js +0 -0
- package/templates/skills/sequential-thinking/scripts/process-thought.js +0 -0
- package/templates/skills/shader/SKILL.md +113 -0
- package/templates/skills/shader/references/glsl-cellular-voronoi-worley-noise-patterns.md +142 -0
- package/templates/skills/shader/references/glsl-colors-rgb-hsb-gradients-mixing-color-spaces.md +143 -0
- package/templates/skills/shader/references/glsl-fbm-fractional-brownian-motion-turbulence-octaves.md +146 -0
- package/templates/skills/shader/references/glsl-fundamentals-data-types-vectors-precision-coordinates.md +104 -0
- package/templates/skills/shader/references/glsl-noise-random-perlin-simplex-cellular-voronoi.md +115 -0
- package/templates/skills/shader/references/glsl-pattern-symmetry-truchet-domain-warping.md +134 -0
- package/templates/skills/shader/references/glsl-patterns-tiling-fract-matrices-transformations.md +133 -0
- package/templates/skills/shader/references/glsl-procedural-textures-clouds-marble-wood-terrain.md +144 -0
- package/templates/skills/shader/references/glsl-shader-builtin-functions-complete-api-reference.md +112 -0
- package/templates/skills/shader/references/glsl-shapes-polygon-star-polar-sdf-combinations.md +124 -0
- package/templates/skills/shader/references/glsl-shapes-sdf-circles-rectangles-polar-distance-fields.md +106 -0
- package/templates/skills/shader/references/glsl-shaping-functions-step-smoothstep-curves-interpolation.md +141 -0
- package/templates/skills/shopify/SKILL.md +3 -2
- package/templates/skills/shopify/scripts/shopify_init.py +5 -5
- package/templates/skills/skill-creator/SKILL.md +91 -238
- package/templates/skills/skill-creator/references/benchmark-optimization-guide.md +86 -0
- package/templates/skills/skill-creator/references/distribution-guide.md +79 -0
- package/templates/skills/skill-creator/references/mcp-skills-integration.md +71 -0
- package/templates/skills/skill-creator/references/metadata-quality-criteria.md +76 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-hosting.md +104 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-overview.md +89 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-schema.md +93 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-sources.md +103 -0
- package/templates/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +76 -0
- package/templates/skills/skill-creator/references/script-quality-criteria.md +106 -0
- package/templates/skills/skill-creator/references/skill-anatomy-and-requirements.md +76 -0
- package/templates/skills/skill-creator/references/skill-creation-workflow.md +95 -0
- package/templates/skills/skill-creator/references/skill-design-patterns.md +75 -0
- package/templates/skills/skill-creator/references/skillmark-benchmark-criteria.md +102 -0
- package/templates/skills/skill-creator/references/structure-organization-criteria.md +114 -0
- package/templates/skills/skill-creator/references/testing-and-iteration.md +78 -0
- package/templates/skills/skill-creator/references/token-efficiency-criteria.md +74 -0
- package/templates/skills/skill-creator/references/troubleshooting-guide.md +80 -0
- package/templates/skills/skill-creator/references/validation-checklist.md +83 -0
- package/templates/skills/skill-creator/references/writing-effective-instructions.md +88 -0
- package/templates/skills/skill-creator/references/yaml-frontmatter-reference.md +91 -0
- package/templates/skills/skill-creator/scripts/debug.zip +0 -0
- package/templates/skills/skill-creator/scripts/encoding_utils.py +36 -0
- package/templates/skills/skill-creator/scripts/init_skill.py +9 -4
- package/templates/skills/skill-creator/scripts/package_skill.py +5 -0
- package/templates/skills/skill-creator/scripts/quick_validate.py +6 -2
- package/templates/skills/tanstack/SKILL.md +141 -0
- package/templates/skills/tanstack/references/tanstack-ai.md +97 -0
- package/templates/skills/tanstack/references/tanstack-form.md +125 -0
- package/templates/skills/tanstack/references/tanstack-start.md +100 -0
- package/templates/skills/team/SKILL.md +285 -0
- package/templates/skills/team/references/agent-teams-controls-and-modes.md +107 -0
- package/templates/skills/team/references/agent-teams-examples-and-best-practices.md +182 -0
- package/templates/skills/team/references/agent-teams-official-docs.md +175 -0
- package/templates/skills/template-skill/SKILL.md +1 -1
- package/templates/skills/test/SKILL.md +109 -0
- package/templates/skills/test/references/report-format.md +58 -0
- package/templates/skills/test/references/test-execution-workflow.md +103 -0
- package/templates/skills/test/references/ui-testing-workflow.md +65 -0
- package/templates/skills/threejs/SKILL.md +106 -53
- package/templates/skills/threejs/data/api-reference.csv +61 -0
- package/templates/skills/threejs/data/categories.csv +14 -0
- package/templates/skills/threejs/data/examples-all.csv +557 -0
- package/templates/skills/threejs/data/use-cases.csv +21 -0
- package/templates/skills/threejs/references/00-fundamentals.md +487 -0
- package/templates/skills/threejs/references/11-materials-advanced.md +1 -1
- package/templates/skills/threejs/references/11-materials.md +519 -0
- package/templates/skills/threejs/references/17-shader.md +641 -0
- package/templates/skills/threejs/references/18-geometry.md +547 -0
- package/templates/skills/threejs/scripts/core.py +236 -0
- package/templates/skills/threejs/scripts/extract_examples.py +688 -0
- package/templates/skills/threejs/scripts/generate_csv_from_json.py +135 -0
- package/templates/skills/threejs/scripts/search.py +77 -0
- package/templates/skills/ui-styling/SKILL.md +3 -2
- package/templates/skills/ui-styling/scripts/shadcn_add.py +0 -0
- package/templates/skills/ui-styling/scripts/tailwind_config_gen.py +1 -1
- package/templates/skills/ui-ux-pro-max/SKILL.md +69 -32
- package/templates/skills/ui-ux-pro-max/data/charts.csv +25 -25
- package/templates/skills/ui-ux-pro-max/data/colors.csv +96 -96
- package/templates/skills/ui-ux-pro-max/data/landing.csv +30 -30
- package/templates/skills/ui-ux-pro-max/data/products.csv +96 -96
- package/templates/skills/ui-ux-pro-max/data/prompts.csv +20 -20
- package/templates/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/templates/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/templates/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/templates/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/templates/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/templates/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/templates/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/templates/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/templates/skills/ui-ux-pro-max/data/styles.csv +58 -58
- package/templates/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/skills/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/templates/skills/ui-ux-pro-max/scripts/design_system.py +494 -0
- package/templates/skills/ui-ux-pro-max/scripts/search.py +84 -61
- package/templates/skills/use-mcp/SKILL.md +42 -0
- package/templates/skills/watzup/SKILL.md +12 -0
- package/templates/skills/web-design-guidelines/SKILL.md +36 -0
- package/templates/skills/web-frameworks/SKILL.md +4 -3
- package/templates/skills/web-frameworks/scripts/nextjs_init.py +13 -13
- package/templates/skills/web-frameworks/scripts/turborepo_migrate.py +0 -0
- package/templates/skills/web-testing/SKILL.md +97 -0
- package/templates/skills/web-testing/references/accessibility-testing.md +84 -0
- package/templates/skills/web-testing/references/api-testing.md +78 -0
- package/templates/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
- package/templates/skills/web-testing/references/component-testing.md +94 -0
- package/templates/skills/web-testing/references/contract-testing.md +146 -0
- package/templates/skills/web-testing/references/cross-browser-checklist.md +72 -0
- package/templates/skills/web-testing/references/database-testing.md +139 -0
- package/templates/skills/web-testing/references/e2e-testing-playwright.md +119 -0
- package/templates/skills/web-testing/references/functional-testing-checklist.md +88 -0
- package/templates/skills/web-testing/references/interactive-testing-patterns.md +89 -0
- package/templates/skills/web-testing/references/load-testing-k6.md +93 -0
- package/templates/skills/web-testing/references/mobile-gesture-testing.md +85 -0
- package/templates/skills/web-testing/references/performance-core-web-vitals.md +124 -0
- package/templates/skills/web-testing/references/playwright-component-testing.md +115 -0
- package/templates/skills/web-testing/references/pre-release-checklist.md +75 -0
- package/templates/skills/web-testing/references/security-checklists.md +81 -0
- package/templates/skills/web-testing/references/security-testing-overview.md +92 -0
- package/templates/skills/web-testing/references/shadow-dom-testing.md +70 -0
- package/templates/skills/web-testing/references/test-data-management.md +131 -0
- package/templates/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
- package/templates/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
- package/templates/skills/web-testing/references/unit-integration-testing.md +138 -0
- package/templates/skills/web-testing/references/visual-regression.md +92 -0
- package/templates/skills/web-testing/references/vulnerability-payloads.md +93 -0
- package/templates/skills/web-testing/scripts/analyze-test-results.js +280 -0
- package/templates/skills/web-testing/scripts/init-playwright.js +233 -0
- package/templates/skills/worktree/SKILL.md +96 -0
- package/templates/skills/worktree/scripts/worktree.cjs +916 -0
- package/templates/skills/worktree/scripts/worktree.test.cjs +792 -0
- package/templates/statusline.cjs +477 -244
- package/templates/statusline.ps1 +0 -1
- package/templates/statusline.sh +0 -1
- package/templates/agents/README.md +0 -172
- package/templates/agents/copywriter.md +0 -113
- package/templates/agents/database-admin.md +0 -97
- package/templates/agents/scout-external.md +0 -146
- package/templates/agents/scout.md +0 -260
- package/templates/hooks/.python-cache.json +0 -1
- package/templates/hooks/README.md +0 -246
- package/templates/hooks/backend-csharp-context.cjs +0 -223
- package/templates/hooks/design-system-context.cjs +0 -185
- package/templates/hooks/frontend-typescript-context.cjs +0 -233
- package/templates/hooks/lib/ck-paths.cjs +0 -110
- package/templates/hooks/lib/context-tracker.cjs +0 -335
- package/templates/hooks/notify-waiting.js +0 -117
- package/templates/hooks/post-edit-prettier.cjs +0 -189
- package/templates/hooks/post-task-review.cjs +0 -142
- package/templates/hooks/scss-styling-context.cjs +0 -213
- package/templates/hooks/session-end.cjs +0 -35
- package/templates/hooks/tests/test-context-tracker.cjs +0 -454
- package/templates/hooks/tests/test-scout-block.js +0 -163
- package/templates/hooks/workflow-router.cjs +0 -326
- package/templates/hooks/write-compact-marker.cjs +0 -159
- package/templates/scripts/__pycache__/win_compat.cpython-312.pyc +0 -0
- package/templates/scripts/plan-preview.cjs +0 -921
- package/templates/skills/arch-cross-service-integration/SKILL.md +0 -48
- package/templates/skills/arch-performance-optimization/SKILL.md +0 -306
- package/templates/skills/arch-security-review/SKILL.md +0 -344
- package/templates/skills/branch-comparison/SKILL.md +0 -150
- package/templates/skills/bug-diagnosis/SKILL.md +0 -309
- package/templates/skills/claude-code/references/advanced-features.md +0 -399
- package/templates/skills/claude-code/references/agent-skills.md +0 -399
- package/templates/skills/claude-code/references/api-reference.md +0 -498
- package/templates/skills/claude-code/references/best-practices.md +0 -447
- package/templates/skills/claude-code/references/cicd-integration.md +0 -428
- package/templates/skills/claude-code/references/common-workflows.md +0 -119
- package/templates/skills/claude-code/references/configuration.md +0 -480
- package/templates/skills/claude-code/references/enterprise-features.md +0 -472
- package/templates/skills/claude-code/references/getting-started.md +0 -252
- package/templates/skills/claude-code/references/hooks-and-plugins.md +0 -444
- package/templates/skills/claude-code/references/hooks-comprehensive.md +0 -622
- package/templates/skills/claude-code/references/ide-integration.md +0 -316
- package/templates/skills/claude-code/references/mcp-integration.md +0 -386
- package/templates/skills/claude-code/references/slash-commands.md +0 -489
- package/templates/skills/claude-code/references/troubleshooting.md +0 -456
- package/templates/skills/claude-code/skill.md +0 -60
- package/templates/skills/debugging/SKILL.md +0 -84
- package/templates/skills/developer-growth-analysis/SKILL.md +0 -322
- package/templates/skills/documentation/SKILL.md +0 -134
- package/templates/skills/domain-name-brainstormer/SKILL.md +0 -212
- package/templates/skills/dual-pass-review/SKILL.md +0 -249
- package/templates/skills/feature-docs/SKILL.md +0 -294
- package/templates/skills/feature-implementation/SKILL.md +0 -262
- package/templates/skills/feature-investigation/SKILL.md +0 -346
- package/templates/skills/frontend-design-pro/SKILL.md +0 -58
- package/templates/skills/package-upgrade/SKILL.md +0 -189
- package/templates/skills/plan-analysis/SKILL.md +0 -191
- package/templates/skills/planning/SKILL.md +0 -115
- package/templates/skills/planning-with-files/SKILL.md +0 -160
- package/templates/skills/planning-with-files/examples.md +0 -202
- package/templates/skills/planning-with-files/reference.md +0 -110
- package/templates/skills/project-index/SKILL.md +0 -97
- package/templates/skills/project-index/scripts/scan-structure.js +0 -417
- package/templates/skills/project-index/scripts/scan_structure.py +0 -450
- package/templates/skills/readme-improvement/SKILL.md +0 -177
- package/templates/skills/skill-share/SKILL.md +0 -80
- package/templates/skills/tasks-code-review/SKILL.md +0 -298
- package/templates/skills/tasks-documentation/SKILL.md +0 -328
- package/templates/skills/tasks-spec-update/SKILL.md +0 -318
- package/templates/skills/tasks-test-generation/SKILL.md +0 -433
- package/templates/skills/test-generation/SKILL.md +0 -203
- package/templates/skills/webapp-testing/LICENSE.txt +0 -202
- package/templates/skills/webapp-testing/SKILL.md +0 -96
- package/templates/skills/webapp-testing/examples/console_logging.py +0 -35
- package/templates/skills/webapp-testing/examples/element_discovery.py +0 -40
- package/templates/skills/webapp-testing/examples/static_html_automation.py +0 -33
- package/templates/skills/webapp-testing/scripts/with_server.py +0 -106
- /package/templates/hooks/scout-block/vendor/{ignore.js → ignore.cjs} +0 -0
- /package/templates/skills/{debugging → debug}/references/defense-in-depth.md +0 -0
- /package/templates/skills/{debugging → debug}/references/root-cause-tracing.md +0 -0
- /package/templates/skills/{debugging → debug}/references/systematic-debugging.md +0 -0
- /package/templates/skills/{debugging → debug}/references/verification.md +0 -0
- /package/templates/skills/{debugging → debug}/scripts/find-polluter.sh +0 -0
- /package/templates/skills/{debugging → debug}/scripts/find-polluter.test.md +0 -0
- /package/templates/skills/{planning → plan}/references/solution-design.md +0 -0
|
@@ -1,450 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Project Structure Scanner
|
|
4
|
-
Cross-platform script to generate an AI-friendly project map + directory tree.
|
|
5
|
-
|
|
6
|
-
Usage:
|
|
7
|
-
python scan_structure.py [root_path] [max_depth] [format]
|
|
8
|
-
python scan_structure.py . 4
|
|
9
|
-
python scan_structure.py . 4 json
|
|
10
|
-
python scan_structure.py . 4 --no-gitignore
|
|
11
|
-
"""
|
|
12
|
-
|
|
13
|
-
from __future__ import annotations
|
|
14
|
-
|
|
15
|
-
import fnmatch
|
|
16
|
-
import json
|
|
17
|
-
import os
|
|
18
|
-
import re
|
|
19
|
-
import sys
|
|
20
|
-
from datetime import datetime
|
|
21
|
-
from pathlib import Path
|
|
22
|
-
from typing import Dict, List, Optional, Set, Tuple
|
|
23
|
-
|
|
24
|
-
# Goal: keep output focused on "main" project directories and avoid common noise.
|
|
25
|
-
BASE_IGNORES: Set[str] = {
|
|
26
|
-
# VCS / OS
|
|
27
|
-
".git",
|
|
28
|
-
".DS_Store",
|
|
29
|
-
"Thumbs.db",
|
|
30
|
-
# Dependencies / build outputs
|
|
31
|
-
"node_modules",
|
|
32
|
-
"dist",
|
|
33
|
-
"build",
|
|
34
|
-
"out",
|
|
35
|
-
"coverage",
|
|
36
|
-
".next",
|
|
37
|
-
".nuxt",
|
|
38
|
-
".turbo",
|
|
39
|
-
# Python virtualenv / caches
|
|
40
|
-
"venv",
|
|
41
|
-
".venv",
|
|
42
|
-
"env",
|
|
43
|
-
".tox",
|
|
44
|
-
"__pycache__",
|
|
45
|
-
".pytest_cache",
|
|
46
|
-
".mypy_cache",
|
|
47
|
-
".ruff_cache",
|
|
48
|
-
# Tooling caches / IDE
|
|
49
|
-
".cache",
|
|
50
|
-
".idea",
|
|
51
|
-
".vscode",
|
|
52
|
-
# .NET / Rust typical outputs
|
|
53
|
-
"bin",
|
|
54
|
-
"obj",
|
|
55
|
-
"target",
|
|
56
|
-
# Secrets (files)
|
|
57
|
-
".env",
|
|
58
|
-
".env.local",
|
|
59
|
-
".env.development.local",
|
|
60
|
-
".env.test.local",
|
|
61
|
-
".env.production.local",
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
FILE_CATEGORIES: Dict[str, Set[str]] = {
|
|
66
|
-
"typescript": {".ts", ".tsx", ".mts", ".cts"},
|
|
67
|
-
"javascript": {".js", ".jsx", ".mjs", ".cjs"},
|
|
68
|
-
"python": {".py", ".pyw", ".pyi"},
|
|
69
|
-
"csharp": {".cs", ".csx"},
|
|
70
|
-
"java": {".java"},
|
|
71
|
-
"go": {".go"},
|
|
72
|
-
"rust": {".rs"},
|
|
73
|
-
"ruby": {".rb"},
|
|
74
|
-
"php": {".php"},
|
|
75
|
-
"styles": {".css", ".scss", ".sass", ".less", ".styl"},
|
|
76
|
-
"markup": {".html", ".htm", ".vue", ".svelte"},
|
|
77
|
-
"config": {".json", ".yaml", ".yml", ".toml", ".xml", ".ini"},
|
|
78
|
-
"markdown": {".md", ".mdx"},
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
ENTRY_PATTERNS = [
|
|
83
|
-
re.compile(r"^(main|index|app|server|entry)\.(ts|tsx|js|jsx|py|go|rs)$", re.I),
|
|
84
|
-
re.compile(r"^(Program|Startup)\.(cs)$", re.I),
|
|
85
|
-
]
|
|
86
|
-
|
|
87
|
-
CONFIG_PATTERNS = [
|
|
88
|
-
re.compile(r"^package\.json$", re.I),
|
|
89
|
-
re.compile(r"^tsconfig.*\.json$", re.I),
|
|
90
|
-
re.compile(r"^vite\.config\.", re.I),
|
|
91
|
-
re.compile(r"^next\.config\.", re.I),
|
|
92
|
-
re.compile(r"^webpack\.config\.", re.I),
|
|
93
|
-
re.compile(r"^\.eslintrc", re.I),
|
|
94
|
-
re.compile(r"^\.prettierrc", re.I),
|
|
95
|
-
re.compile(r"^tailwind\.config\.", re.I),
|
|
96
|
-
re.compile(r"^docker-compose", re.I),
|
|
97
|
-
re.compile(r"^Dockerfile$", re.I),
|
|
98
|
-
re.compile(r"^Makefile$", re.I),
|
|
99
|
-
re.compile(r"^\.env\.example$", re.I),
|
|
100
|
-
re.compile(r"^requirements\.txt$", re.I),
|
|
101
|
-
re.compile(r"^pyproject\.toml$", re.I),
|
|
102
|
-
re.compile(r"^Cargo\.toml$", re.I),
|
|
103
|
-
re.compile(r"^go\.mod$", re.I),
|
|
104
|
-
]
|
|
105
|
-
|
|
106
|
-
KEY_PATTERNS = [
|
|
107
|
-
re.compile(r"^README", re.I),
|
|
108
|
-
re.compile(r"^CHANGELOG", re.I),
|
|
109
|
-
re.compile(r"^CONTRIBUTING", re.I),
|
|
110
|
-
re.compile(r"^LICENSE", re.I),
|
|
111
|
-
re.compile(r"^AGENTS\.md$", re.I),
|
|
112
|
-
re.compile(r"^HANDOFF\.md$", re.I),
|
|
113
|
-
]
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
def parse_gitignore(gitignore_path: Path) -> List[str]:
|
|
117
|
-
patterns: List[str] = []
|
|
118
|
-
if not gitignore_path.exists():
|
|
119
|
-
return patterns
|
|
120
|
-
|
|
121
|
-
try:
|
|
122
|
-
for raw in gitignore_path.read_text(encoding="utf-8").splitlines():
|
|
123
|
-
line = raw.strip()
|
|
124
|
-
if not line or line.startswith("#"):
|
|
125
|
-
continue
|
|
126
|
-
if line.startswith("!"):
|
|
127
|
-
continue
|
|
128
|
-
if line.startswith("/"):
|
|
129
|
-
line = line[1:]
|
|
130
|
-
patterns.append(line)
|
|
131
|
-
except Exception as exc:
|
|
132
|
-
print(f"Warning: Could not read .gitignore: {exc}", file=sys.stderr)
|
|
133
|
-
|
|
134
|
-
return patterns
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
def normalize_rel_path(p: Path) -> str:
|
|
138
|
-
return str(p).replace(os.sep, "/")
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
class ProjectScanner:
|
|
142
|
-
def __init__(self, root_path: str, max_depth: int = 4, respect_gitignore: bool = True):
|
|
143
|
-
self.root_path = Path(root_path).resolve()
|
|
144
|
-
self.max_depth = max_depth
|
|
145
|
-
|
|
146
|
-
self.respect_gitignore = respect_gitignore
|
|
147
|
-
self.gitignore_patterns: List[str] = (
|
|
148
|
-
parse_gitignore(self.root_path / ".gitignore") if respect_gitignore else []
|
|
149
|
-
)
|
|
150
|
-
|
|
151
|
-
self.stats = {
|
|
152
|
-
"total_files": 0,
|
|
153
|
-
"total_dirs": 0,
|
|
154
|
-
"by_category": {},
|
|
155
|
-
"entry_points": [],
|
|
156
|
-
"config_files": [],
|
|
157
|
-
"key_files": [],
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
def should_ignore(self, name: str, rel_path: str) -> bool:
|
|
161
|
-
if name in BASE_IGNORES or rel_path in BASE_IGNORES:
|
|
162
|
-
return True
|
|
163
|
-
|
|
164
|
-
rel_path_norm = rel_path.replace(os.sep, "/")
|
|
165
|
-
parts = rel_path_norm.split("/") if rel_path_norm else []
|
|
166
|
-
|
|
167
|
-
# Base ignore by segment
|
|
168
|
-
if any(part in BASE_IGNORES for part in parts):
|
|
169
|
-
return True
|
|
170
|
-
|
|
171
|
-
for pattern in self.gitignore_patterns:
|
|
172
|
-
p = pattern.replace(os.sep, "/")
|
|
173
|
-
|
|
174
|
-
# Directory pattern (ends with "/")
|
|
175
|
-
if p.endswith("/"):
|
|
176
|
-
p_dir = p[:-1]
|
|
177
|
-
if rel_path_norm == p_dir or rel_path_norm.startswith(p_dir + "/"):
|
|
178
|
-
return True
|
|
179
|
-
continue
|
|
180
|
-
|
|
181
|
-
# Path pattern
|
|
182
|
-
if "/" in p:
|
|
183
|
-
if fnmatch.fnmatch(rel_path_norm, p):
|
|
184
|
-
return True
|
|
185
|
-
continue
|
|
186
|
-
|
|
187
|
-
# Name pattern
|
|
188
|
-
if fnmatch.fnmatch(name, p):
|
|
189
|
-
return True
|
|
190
|
-
|
|
191
|
-
return False
|
|
192
|
-
|
|
193
|
-
def categorize_file(self, file_name: str) -> str:
|
|
194
|
-
ext = Path(file_name).suffix.lower()
|
|
195
|
-
for category, exts in FILE_CATEGORIES.items():
|
|
196
|
-
if ext in exts:
|
|
197
|
-
return category
|
|
198
|
-
return "other"
|
|
199
|
-
|
|
200
|
-
def matches_any(self, name: str, patterns: List[re.Pattern]) -> bool:
|
|
201
|
-
return any(p.search(name) for p in patterns)
|
|
202
|
-
|
|
203
|
-
def is_entry_point(self, name: str) -> bool:
|
|
204
|
-
return self.matches_any(name, ENTRY_PATTERNS)
|
|
205
|
-
|
|
206
|
-
def is_config_file(self, name: str) -> bool:
|
|
207
|
-
return self.matches_any(name, CONFIG_PATTERNS)
|
|
208
|
-
|
|
209
|
-
def is_key_file(self, name: str) -> bool:
|
|
210
|
-
return self.matches_any(name, KEY_PATTERNS)
|
|
211
|
-
|
|
212
|
-
def get_main_language(self) -> str:
|
|
213
|
-
code_categories = [
|
|
214
|
-
"typescript",
|
|
215
|
-
"javascript",
|
|
216
|
-
"python",
|
|
217
|
-
"csharp",
|
|
218
|
-
"java",
|
|
219
|
-
"go",
|
|
220
|
-
"rust",
|
|
221
|
-
"ruby",
|
|
222
|
-
"php",
|
|
223
|
-
]
|
|
224
|
-
max_category = "unknown"
|
|
225
|
-
max_count = 0
|
|
226
|
-
for cat in code_categories:
|
|
227
|
-
count = int(self.stats["by_category"].get(cat, 0))
|
|
228
|
-
if count > max_count:
|
|
229
|
-
max_count = count
|
|
230
|
-
max_category = cat
|
|
231
|
-
return max_category
|
|
232
|
-
|
|
233
|
-
def describe_top_level_entry(self, name: str, is_dir: bool) -> str:
|
|
234
|
-
if not is_dir:
|
|
235
|
-
lower = name.lower()
|
|
236
|
-
if lower == "readme.md":
|
|
237
|
-
return "Project overview and getting started"
|
|
238
|
-
if lower == "agents.md":
|
|
239
|
-
return "Agent working conventions / repo rules"
|
|
240
|
-
if lower in {"changelog.md", "handoff.md", "contributing.md", "license", "license.md"}:
|
|
241
|
-
return "Project process / legal / handoff documentation"
|
|
242
|
-
if lower in {"package.json", "pnpm-lock.yaml", "yarn.lock", "package-lock.json"}:
|
|
243
|
-
return "JavaScript/TypeScript dependencies and scripts"
|
|
244
|
-
if lower in {"pyproject.toml", "requirements.txt", "poetry.lock", "pipfile", "pipfile.lock"}:
|
|
245
|
-
return "Python dependencies and tooling"
|
|
246
|
-
if lower in {".gitignore", ".gitattributes"}:
|
|
247
|
-
return "Git configuration"
|
|
248
|
-
return "Key file (see tree for context)"
|
|
249
|
-
|
|
250
|
-
lower = name.lower()
|
|
251
|
-
if lower == "src":
|
|
252
|
-
return "Main application source code"
|
|
253
|
-
if lower in {"app", "apps"}:
|
|
254
|
-
return "Application(s) (often runnable targets)"
|
|
255
|
-
if lower in {"packages", "pkg"}:
|
|
256
|
-
return "Packages (shared modules/libraries)"
|
|
257
|
-
if lower in {"libs", "lib"}:
|
|
258
|
-
return "Shared libraries/utilities"
|
|
259
|
-
if lower in {"services", "service"}:
|
|
260
|
-
return "Backend services / service layer"
|
|
261
|
-
if lower in {"api", "apis"}:
|
|
262
|
-
return "API layer (routes/controllers/handlers)"
|
|
263
|
-
if lower in {"tests", "test", "__tests__"}:
|
|
264
|
-
return "Tests"
|
|
265
|
-
if lower in {"docs", "documentation"}:
|
|
266
|
-
return "Documentation"
|
|
267
|
-
if lower in {"scripts", "tools"}:
|
|
268
|
-
return "Automation scripts / tooling"
|
|
269
|
-
if lower in {"public", "static", "assets"}:
|
|
270
|
-
return "Static assets"
|
|
271
|
-
if lower == ".github":
|
|
272
|
-
return "GitHub configuration (CI, templates, workflows)"
|
|
273
|
-
if lower == ".claude":
|
|
274
|
-
return "AI tooling / agent workflows (project-local)"
|
|
275
|
-
if lower == ".codex":
|
|
276
|
-
return "Codex CLI skills / configuration (project-local)"
|
|
277
|
-
if lower in {"infra", "infrastructure", "deploy", "ops", "k8s", "terraform"}:
|
|
278
|
-
return "Infrastructure / deployment"
|
|
279
|
-
return "Project-specific directory (see tree)"
|
|
280
|
-
|
|
281
|
-
def get_top_level_map(self) -> List[Tuple[str, str, str]]:
|
|
282
|
-
items: List[Tuple[str, str, str]] = []
|
|
283
|
-
try:
|
|
284
|
-
entries = list(self.root_path.iterdir())
|
|
285
|
-
except PermissionError:
|
|
286
|
-
return items
|
|
287
|
-
|
|
288
|
-
entries.sort(key=lambda e: (not e.is_dir(), e.name.lower()))
|
|
289
|
-
for entry in entries:
|
|
290
|
-
rel_path = normalize_rel_path(entry.relative_to(self.root_path))
|
|
291
|
-
if self.should_ignore(entry.name, rel_path):
|
|
292
|
-
continue
|
|
293
|
-
|
|
294
|
-
is_dir = entry.is_dir()
|
|
295
|
-
display = f"{entry.name}/" if is_dir else entry.name
|
|
296
|
-
typ = "dir" if is_dir else "file"
|
|
297
|
-
purpose = self.describe_top_level_entry(entry.name, is_dir=is_dir)
|
|
298
|
-
items.append((display, typ, purpose))
|
|
299
|
-
return items
|
|
300
|
-
|
|
301
|
-
def scan_directory(self, dir_path: Path, depth: int = 0, prefix: str = "") -> List[str]:
|
|
302
|
-
lines: List[str] = []
|
|
303
|
-
if depth > self.max_depth:
|
|
304
|
-
return lines
|
|
305
|
-
|
|
306
|
-
try:
|
|
307
|
-
entries = list(dir_path.iterdir())
|
|
308
|
-
except (PermissionError, OSError):
|
|
309
|
-
return lines
|
|
310
|
-
|
|
311
|
-
# Sort: directories first, then files
|
|
312
|
-
entries.sort(key=lambda e: (not e.is_dir(), e.name.lower()))
|
|
313
|
-
|
|
314
|
-
# Filter ignored
|
|
315
|
-
filtered: List[Path] = []
|
|
316
|
-
for entry in entries:
|
|
317
|
-
try:
|
|
318
|
-
rel = normalize_rel_path(entry.relative_to(self.root_path))
|
|
319
|
-
except ValueError:
|
|
320
|
-
rel = entry.name
|
|
321
|
-
if not self.should_ignore(entry.name, rel):
|
|
322
|
-
filtered.append(entry)
|
|
323
|
-
|
|
324
|
-
for idx, entry in enumerate(filtered):
|
|
325
|
-
is_last = idx == len(filtered) - 1
|
|
326
|
-
connector = "`-- " if is_last else "|-- "
|
|
327
|
-
child_prefix = " " if is_last else "| "
|
|
328
|
-
|
|
329
|
-
try:
|
|
330
|
-
rel_path = normalize_rel_path(entry.relative_to(self.root_path))
|
|
331
|
-
except ValueError:
|
|
332
|
-
rel_path = entry.name
|
|
333
|
-
|
|
334
|
-
if entry.is_dir():
|
|
335
|
-
self.stats["total_dirs"] += 1
|
|
336
|
-
lines.append(f"{prefix}{connector}{entry.name}/")
|
|
337
|
-
lines.extend(self.scan_directory(entry, depth + 1, prefix + child_prefix))
|
|
338
|
-
continue
|
|
339
|
-
|
|
340
|
-
self.stats["total_files"] += 1
|
|
341
|
-
category = self.categorize_file(entry.name)
|
|
342
|
-
self.stats["by_category"][category] = int(self.stats["by_category"].get(category, 0)) + 1
|
|
343
|
-
|
|
344
|
-
if self.is_entry_point(entry.name):
|
|
345
|
-
self.stats["entry_points"].append(rel_path)
|
|
346
|
-
if self.is_config_file(entry.name):
|
|
347
|
-
self.stats["config_files"].append(rel_path)
|
|
348
|
-
if self.is_key_file(entry.name):
|
|
349
|
-
self.stats["key_files"].append(rel_path)
|
|
350
|
-
|
|
351
|
-
lines.append(f"{prefix}{connector}{entry.name}")
|
|
352
|
-
|
|
353
|
-
return lines
|
|
354
|
-
|
|
355
|
-
def scan(self) -> Dict[str, object]:
|
|
356
|
-
root_name = self.root_path.name
|
|
357
|
-
lines = [f"{root_name}/"] + self.scan_directory(self.root_path)
|
|
358
|
-
return {"tree": "\n".join(lines), "stats": self.stats}
|
|
359
|
-
|
|
360
|
-
def generate_markdown(self) -> str:
|
|
361
|
-
result = self.scan()
|
|
362
|
-
main_lang = self.get_main_language()
|
|
363
|
-
now = datetime.now().strftime("%Y-%m-%d %H:%M")
|
|
364
|
-
|
|
365
|
-
top_level = self.get_top_level_map()
|
|
366
|
-
top_level_table = (
|
|
367
|
-
"\n".join(f"| {p} | {t} | {purpose} |" for p, t, purpose in top_level)
|
|
368
|
-
or "| (none) | - | - |"
|
|
369
|
-
)
|
|
370
|
-
|
|
371
|
-
entry_points = "\n".join(f"- {f}" for f in self.stats["entry_points"]) or "- (none detected)"
|
|
372
|
-
config_files = "\n".join(f"- {f}" for f in self.stats["config_files"]) or "- (none detected)"
|
|
373
|
-
key_files = "\n".join(f"- {f}" for f in self.stats["key_files"]) or "- (none detected)"
|
|
374
|
-
|
|
375
|
-
distribution = "\n".join(
|
|
376
|
-
f"| {cat} | {count} |"
|
|
377
|
-
for cat, count in sorted(self.stats["by_category"].items(), key=lambda x: -int(x[1]))
|
|
378
|
-
)
|
|
379
|
-
if not distribution:
|
|
380
|
-
distribution = "| (none) | 0 |"
|
|
381
|
-
|
|
382
|
-
return f"""# Project Structure Index
|
|
383
|
-
> Auto-generated by project-index. Last updated: {now}
|
|
384
|
-
|
|
385
|
-
## Quick Stats
|
|
386
|
-
- **Total files**: {self.stats['total_files']}
|
|
387
|
-
- **Total directories**: {self.stats['total_dirs']}
|
|
388
|
-
- **Main language**: {main_lang}
|
|
389
|
-
|
|
390
|
-
## Top-Level Map
|
|
391
|
-
| Path | Type | Purpose |
|
|
392
|
-
|:---|:---:|:---|
|
|
393
|
-
{top_level_table}
|
|
394
|
-
|
|
395
|
-
## Directory Tree
|
|
396
|
-
```
|
|
397
|
-
{result['tree']}
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
## Entry Points
|
|
401
|
-
{entry_points}
|
|
402
|
-
|
|
403
|
-
## Config Files
|
|
404
|
-
{config_files}
|
|
405
|
-
|
|
406
|
-
## Key Files
|
|
407
|
-
{key_files}
|
|
408
|
-
|
|
409
|
-
## File Distribution
|
|
410
|
-
| Category | Count |
|
|
411
|
-
|:---|---:|
|
|
412
|
-
{distribution}
|
|
413
|
-
"""
|
|
414
|
-
|
|
415
|
-
def generate_json(self) -> str:
|
|
416
|
-
result = self.scan()
|
|
417
|
-
return json.dumps(
|
|
418
|
-
{
|
|
419
|
-
"generated": datetime.now().isoformat(),
|
|
420
|
-
"root_path": str(self.root_path),
|
|
421
|
-
"max_depth": self.max_depth,
|
|
422
|
-
"respect_gitignore": self.respect_gitignore,
|
|
423
|
-
"stats": self.stats,
|
|
424
|
-
"main_language": self.get_main_language(),
|
|
425
|
-
"top_level_map": [
|
|
426
|
-
{"path": p, "type": t, "purpose": purpose} for p, t, purpose in self.get_top_level_map()
|
|
427
|
-
],
|
|
428
|
-
"tree": result["tree"],
|
|
429
|
-
},
|
|
430
|
-
indent=2,
|
|
431
|
-
)
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
def main() -> None:
|
|
435
|
-
args = sys.argv[1:]
|
|
436
|
-
root_path = args[0] if len(args) > 0 else "."
|
|
437
|
-
max_depth = int(args[1]) if len(args) > 1 and args[1].isdigit() else 4
|
|
438
|
-
fmt = args[2] if len(args) > 2 and not args[2].startswith("--") else "markdown"
|
|
439
|
-
|
|
440
|
-
respect_gitignore = "--no-gitignore" not in args
|
|
441
|
-
|
|
442
|
-
scanner = ProjectScanner(root_path, max_depth=max_depth, respect_gitignore=respect_gitignore)
|
|
443
|
-
if fmt == "json":
|
|
444
|
-
print(scanner.generate_json())
|
|
445
|
-
else:
|
|
446
|
-
print(scanner.generate_markdown())
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
if __name__ == "__main__":
|
|
450
|
-
main()
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: readme-improvement
|
|
3
|
-
description: Use when the user asks to create or improve a README file, project documentation, getting started guide, or installation instructions. Triggers on keywords like "README", "getting started", "installation guide", "project overview", "setup instructions".
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Task, TodoWrite
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# README Improvement
|
|
8
|
-
|
|
9
|
-
You are to operate as an expert technical writer and project documentation specialist to create a comprehensive, accurate README.md file.
|
|
10
|
-
|
|
11
|
-
**IMPORTANT**: Always thinks hard, plan step by step to-do list first before execute. Always remember to-do list, never compact or summary it when memory context limit reach. Always preserve and carry your to-do list through every operation.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Core Anti-Hallucination Protocols
|
|
16
|
-
|
|
17
|
-
### ASSUMPTION_VALIDATION_CHECKPOINT
|
|
18
|
-
Before every major operation:
|
|
19
|
-
1. "What assumptions am I making about [X]?"
|
|
20
|
-
2. "Have I verified this with actual code evidence?"
|
|
21
|
-
3. "Could I be wrong about [specific pattern/relationship]?"
|
|
22
|
-
|
|
23
|
-
### EVIDENCE_CHAIN_VALIDATION
|
|
24
|
-
Before claiming any relationship:
|
|
25
|
-
- "I believe X calls Y because..." → show actual code
|
|
26
|
-
- "This follows pattern Z because..." → cite specific examples
|
|
27
|
-
|
|
28
|
-
### TOOL_EFFICIENCY_PROTOCOL
|
|
29
|
-
- Batch multiple Grep searches into single calls with OR patterns
|
|
30
|
-
- Use parallel Read operations for related files
|
|
31
|
-
|
|
32
|
-
### CONTEXT_ANCHOR_SYSTEM
|
|
33
|
-
Every 10 operations:
|
|
34
|
-
1. Re-read the original task description
|
|
35
|
-
2. Verify the current operation aligns with original goals
|
|
36
|
-
3. Update the `Current Focus` in `## Progress` section
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## PHASE 1: EXTERNAL MEMORY-DRIVEN README ANALYSIS
|
|
41
|
-
|
|
42
|
-
Build a structured knowledge model in `ai_task_analysis_notes/[project-name].ai_task_analysis_notes_temp.md`.
|
|
43
|
-
|
|
44
|
-
### PHASE 1A: INITIALIZATION AND DISCOVERY
|
|
45
|
-
|
|
46
|
-
1. **Initialize** the analysis file with standard headings
|
|
47
|
-
2. **Discovery searches** for all project files
|
|
48
|
-
|
|
49
|
-
### README-SPECIFIC DISCOVERY
|
|
50
|
-
|
|
51
|
-
**PROJECT_OVERVIEW_DISCOVERY**: Focus on README-relevant patterns:
|
|
52
|
-
|
|
53
|
-
1. **Project Structure Analysis**: Find entry points, map key directories, identify technologies. Document under `## Project Structure`.
|
|
54
|
-
|
|
55
|
-
2. **Feature Discovery**: Find user-facing features and map API endpoints. Document under `## Feature Mapping`.
|
|
56
|
-
|
|
57
|
-
3. **Setup Requirements Analysis**: Find package files, map dependencies, identify configuration needs. Document under `## Setup Requirements`.
|
|
58
|
-
|
|
59
|
-
### PHASE 1B: SYSTEMATIC FILE ANALYSIS FOR README
|
|
60
|
-
|
|
61
|
-
**IMPORTANT: MUST DO WITH TODO LIST**
|
|
62
|
-
|
|
63
|
-
For each file, document in `## Knowledge Graph`:
|
|
64
|
-
- Standard fields plus README-specific:
|
|
65
|
-
- `readmeRelevance`: How component should be represented (1-10)
|
|
66
|
-
- `userImpact`: How component affects end users
|
|
67
|
-
- `setupRequirements`: Prerequisites for this component
|
|
68
|
-
- `configurationNeeds`: Configuration required
|
|
69
|
-
- `featureDescription`: User-facing features provided
|
|
70
|
-
- `troubleshootingAreas`: Common issues users might encounter
|
|
71
|
-
- `exampleUsage`: Usage examples for README
|
|
72
|
-
- `projectContext`: How it fits into overall project
|
|
73
|
-
|
|
74
|
-
### PHASE 1C: OVERALL ANALYSIS
|
|
75
|
-
|
|
76
|
-
Write comprehensive summary showing:
|
|
77
|
-
- Complete end-to-end workflows discovered
|
|
78
|
-
- Key features and capabilities
|
|
79
|
-
- Setup and configuration requirements
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## PHASE 2: README PLAN GENERATION
|
|
84
|
-
|
|
85
|
-
Generate detailed README outline under `## README Plan`:
|
|
86
|
-
- Project Overview
|
|
87
|
-
- Installation
|
|
88
|
-
- Usage
|
|
89
|
-
- Configuration
|
|
90
|
-
- Development guidelines
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## PHASE 3: APPROVAL GATE
|
|
95
|
-
|
|
96
|
-
**CRITICAL**: Present README plan for explicit approval. **DO NOT** proceed without it.
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## PHASE 4: README EXECUTION
|
|
101
|
-
|
|
102
|
-
Once approved, create the comprehensive README using all README_SAFEGUARDS.
|
|
103
|
-
|
|
104
|
-
### README Structure Template
|
|
105
|
-
|
|
106
|
-
```markdown
|
|
107
|
-
# Project Name
|
|
108
|
-
|
|
109
|
-
Brief description of the project.
|
|
110
|
-
|
|
111
|
-
## Table of Contents
|
|
112
|
-
- [Features](#features)
|
|
113
|
-
- [Prerequisites](#prerequisites)
|
|
114
|
-
- [Installation](#installation)
|
|
115
|
-
- [Configuration](#configuration)
|
|
116
|
-
- [Usage](#usage)
|
|
117
|
-
- [Development](#development)
|
|
118
|
-
- [Testing](#testing)
|
|
119
|
-
- [Deployment](#deployment)
|
|
120
|
-
- [Troubleshooting](#troubleshooting)
|
|
121
|
-
- [Contributing](#contributing)
|
|
122
|
-
- [License](#license)
|
|
123
|
-
|
|
124
|
-
## Features
|
|
125
|
-
- Feature 1
|
|
126
|
-
- Feature 2
|
|
127
|
-
|
|
128
|
-
## Prerequisites
|
|
129
|
-
- Node.js >= 18
|
|
130
|
-
- .NET 9 SDK
|
|
131
|
-
|
|
132
|
-
## Installation
|
|
133
|
-
```bash
|
|
134
|
-
# Clone the repository
|
|
135
|
-
git clone [url]
|
|
136
|
-
|
|
137
|
-
# Install dependencies
|
|
138
|
-
npm install
|
|
139
|
-
dotnet restore
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Configuration
|
|
143
|
-
[Configuration details]
|
|
144
|
-
|
|
145
|
-
## Usage
|
|
146
|
-
[Usage examples]
|
|
147
|
-
|
|
148
|
-
## Development
|
|
149
|
-
[Development setup]
|
|
150
|
-
|
|
151
|
-
## Testing
|
|
152
|
-
[Testing instructions]
|
|
153
|
-
|
|
154
|
-
## Troubleshooting
|
|
155
|
-
[Common issues and solutions]
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## SUCCESS VALIDATION
|
|
161
|
-
|
|
162
|
-
Verify README is:
|
|
163
|
-
- Accurate (all instructions work)
|
|
164
|
-
- Comprehensive (covers all setup needs)
|
|
165
|
-
- Helpful (new users can get started)
|
|
166
|
-
|
|
167
|
-
Document under `## README Validation`.
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## README Guidelines
|
|
172
|
-
|
|
173
|
-
- **User-first approach**: Organize for new users
|
|
174
|
-
- **Verified instructions**: Test all setup and installation instructions
|
|
175
|
-
- **Clear project purpose**: Explain what the project does and why
|
|
176
|
-
- **Practical examples**: Include working examples users can follow
|
|
177
|
-
- **No assumptions**: Don't assume user knowledge
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: skill-share
|
|
3
|
-
description: A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
|
|
4
|
-
license: Complete terms in LICENSE.txt
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## When to use this skill
|
|
8
|
-
|
|
9
|
-
Use this skill when you need to:
|
|
10
|
-
- **Create new Claude skills** with proper structure and metadata
|
|
11
|
-
- **Generate skill packages** ready for distribution
|
|
12
|
-
- **Automatically share created skills** on Slack channels for team visibility
|
|
13
|
-
- **Validate skill structure** before sharing
|
|
14
|
-
- **Package and distribute** skills to your team
|
|
15
|
-
|
|
16
|
-
Also use this skill when:
|
|
17
|
-
- **User says he wants to create/share his skill**
|
|
18
|
-
|
|
19
|
-
This skill is ideal for:
|
|
20
|
-
- Creating skills as part of team workflows
|
|
21
|
-
- Building internal tools that need skill creation + team notification
|
|
22
|
-
- Automating the skill development pipeline
|
|
23
|
-
- Collaborative skill creation with team notifications
|
|
24
|
-
|
|
25
|
-
## Key Features
|
|
26
|
-
|
|
27
|
-
### 1. Skill Creation
|
|
28
|
-
- Creates properly structured skill directories with SKILL.md
|
|
29
|
-
- Generates standardized scripts/, references/, and assets/ directories
|
|
30
|
-
- Auto-generates YAML frontmatter with required metadata
|
|
31
|
-
- Enforces naming conventions (hyphen-case)
|
|
32
|
-
|
|
33
|
-
### 2. Skill Validation
|
|
34
|
-
- Validates SKILL.md format and required fields
|
|
35
|
-
- Checks naming conventions
|
|
36
|
-
- Ensures metadata completeness before packaging
|
|
37
|
-
|
|
38
|
-
### 3. Skill Packaging
|
|
39
|
-
- Creates distributable zip files
|
|
40
|
-
- Includes all skill assets and documentation
|
|
41
|
-
- Runs validation automatically before packaging
|
|
42
|
-
|
|
43
|
-
### 4. Slack Integration via Rube
|
|
44
|
-
- Automatically sends created skill information to designated Slack channels
|
|
45
|
-
- Shares skill metadata (name, description, link)
|
|
46
|
-
- Posts skill summary for team discovery
|
|
47
|
-
- Provides direct links to skill files
|
|
48
|
-
|
|
49
|
-
## How It Works
|
|
50
|
-
|
|
51
|
-
1. **Initialization**: Provide skill name and description
|
|
52
|
-
2. **Creation**: Skill directory is created with proper structure
|
|
53
|
-
3. **Validation**: Skill metadata is validated for correctness
|
|
54
|
-
4. **Packaging**: Skill is packaged into a distributable format
|
|
55
|
-
5. **Slack Notification**: Skill details are posted to your team's Slack channel
|
|
56
|
-
|
|
57
|
-
## Example Usage
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
When you ask Claude to create a skill called "pdf-analyzer":
|
|
61
|
-
1. Creates /skill-pdf-analyzer/ with SKILL.md template
|
|
62
|
-
2. Generates structured directories (scripts/, references/, assets/)
|
|
63
|
-
3. Validates the skill structure
|
|
64
|
-
4. Packages the skill as a zip file
|
|
65
|
-
5. Posts to Slack: "New Skill Created: pdf-analyzer - Advanced PDF analysis and extraction capabilities"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Integration with Rube
|
|
69
|
-
|
|
70
|
-
This skill leverages Rube for:
|
|
71
|
-
- **SLACK_SEND_MESSAGE**: Posts skill information to team channels
|
|
72
|
-
- **SLACK_POST_MESSAGE_WITH_BLOCKS**: Shares rich formatted skill metadata
|
|
73
|
-
- **SLACK_FIND_CHANNELS**: Discovers target channels for skill announcements
|
|
74
|
-
|
|
75
|
-
## Requirements
|
|
76
|
-
|
|
77
|
-
- Slack workspace connection via Rube
|
|
78
|
-
- Write access to skill creation directory
|
|
79
|
-
- Python 3.7+ for skill creation scripts
|
|
80
|
-
- Target Slack channel for skill notifications
|