@macpaw/cctk 1.0.0-beta.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/License +21 -0
- package/README.md +142 -0
- package/bin/index.js +5 -0
- package/dist/index.js +1 -0
- package/package.json +65 -0
- package/templates/claude/agents/brainstormer.md +113 -0
- package/templates/claude/agents/code-reviewer.md +157 -0
- package/templates/claude/agents/copywriter.md +110 -0
- package/templates/claude/agents/database-admin.md +92 -0
- package/templates/claude/agents/debugger.md +137 -0
- package/templates/claude/agents/docs-manager.md +208 -0
- package/templates/claude/agents/fullstack-developer.md +95 -0
- package/templates/claude/agents/git-manager.md +394 -0
- package/templates/claude/agents/journal-writer.md +113 -0
- package/templates/claude/agents/mcp-manager.md +89 -0
- package/templates/claude/agents/planner.md +108 -0
- package/templates/claude/agents/project-manager.md +125 -0
- package/templates/claude/agents/registry.json +304 -0
- package/templates/claude/agents/researcher.md +37 -0
- package/templates/claude/agents/scout-external.md +140 -0
- package/templates/claude/agents/scout.md +106 -0
- package/templates/claude/agents/tester.md +105 -0
- package/templates/claude/agents/ui-ux-designer.md +208 -0
- package/templates/claude/commands/ask.md +56 -0
- package/templates/claude/commands/bootstrap/auto/fast.md +106 -0
- package/templates/claude/commands/bootstrap/auto/parallel.md +64 -0
- package/templates/claude/commands/bootstrap/auto.md +110 -0
- package/templates/claude/commands/bootstrap.md +130 -0
- package/templates/claude/commands/brainstorm.md +75 -0
- package/templates/claude/commands/code/auto.md +198 -0
- package/templates/claude/commands/code/no-test.md +172 -0
- package/templates/claude/commands/code/parallel.md +100 -0
- package/templates/claude/commands/code.md +197 -0
- package/templates/claude/commands/coding-level.md +37 -0
- package/templates/claude/commands/content/cro.md +41 -0
- package/templates/claude/commands/content/enhance.md +12 -0
- package/templates/claude/commands/content/fast.md +11 -0
- package/templates/claude/commands/content/good.md +14 -0
- package/templates/claude/commands/cook/auto/fast.md +26 -0
- package/templates/claude/commands/cook/auto/parallel.md +49 -0
- package/templates/claude/commands/cook/auto.md +15 -0
- package/templates/claude/commands/cook.md +101 -0
- package/templates/claude/commands/debug.md +13 -0
- package/templates/claude/commands/docs/init.md +37 -0
- package/templates/claude/commands/docs/summarize.md +22 -0
- package/templates/claude/commands/docs/update.md +78 -0
- package/templates/claude/commands/fix/ci.md +17 -0
- package/templates/claude/commands/fix/fast.md +18 -0
- package/templates/claude/commands/fix/hard.md +35 -0
- package/templates/claude/commands/fix/logs.md +26 -0
- package/templates/claude/commands/fix/parallel.md +54 -0
- package/templates/claude/commands/fix/test.md +20 -0
- package/templates/claude/commands/fix/types.md +9 -0
- package/templates/claude/commands/fix/ui.md +33 -0
- package/templates/claude/commands/fix.md +43 -0
- package/templates/claude/commands/git/cm.md +5 -0
- package/templates/claude/commands/git/cp.md +4 -0
- package/templates/claude/commands/git/merge.md +40 -0
- package/templates/claude/commands/git/pr.md +50 -0
- package/templates/claude/commands/journal.md +7 -0
- package/templates/claude/commands/kanban.md +99 -0
- package/templates/claude/commands/plan/archive.md +57 -0
- package/templates/claude/commands/plan/ci.md +33 -0
- package/templates/claude/commands/plan/cro.md +67 -0
- package/templates/claude/commands/plan/fast.md +66 -0
- package/templates/claude/commands/plan/hard.md +92 -0
- package/templates/claude/commands/plan/parallel.md +129 -0
- package/templates/claude/commands/plan/two.md +45 -0
- package/templates/claude/commands/plan/validate.md +117 -0
- package/templates/claude/commands/plan.md +30 -0
- package/templates/claude/commands/preview.md +87 -0
- package/templates/claude/commands/registry.json +313 -0
- package/templates/claude/commands/review/codebase/parallel.md +122 -0
- package/templates/claude/commands/review/codebase.md +47 -0
- package/templates/claude/commands/scout/ext.md +35 -0
- package/templates/claude/commands/scout.md +28 -0
- package/templates/claude/commands/skill/add.md +36 -0
- package/templates/claude/commands/skill/create.md +29 -0
- package/templates/claude/commands/skill/fix-logs.md +22 -0
- package/templates/claude/commands/skill/optimize/auto.md +25 -0
- package/templates/claude/commands/skill/optimize.md +34 -0
- package/templates/claude/commands/skill/plan.md +45 -0
- package/templates/claude/commands/test/ui.md +91 -0
- package/templates/claude/commands/test.md +8 -0
- package/templates/claude/commands/use-mcp.md +34 -0
- package/templates/claude/commands/watzup.md +8 -0
- package/templates/claude/commands/worktree.md +126 -0
- package/templates/claude/hooks/dev-rules-reminder.cjs +258 -0
- package/templates/claude/hooks/docs/README.md +42 -0
- package/templates/claude/hooks/lib/cctk-config-utils.cjs +751 -0
- package/templates/claude/hooks/lib/cctk-paths.cjs +106 -0
- package/templates/claude/hooks/lib/context-tracker.cjs +346 -0
- package/templates/claude/hooks/privacy-block.cjs +289 -0
- package/templates/claude/hooks/registry.json +77 -0
- package/templates/claude/hooks/scout-block/broad-pattern-detector.cjs +293 -0
- package/templates/claude/hooks/scout-block/error-formatter.cjs +156 -0
- package/templates/claude/hooks/scout-block/path-extractor.cjs +359 -0
- package/templates/claude/hooks/scout-block/pattern-matcher.cjs +184 -0
- package/templates/claude/hooks/scout-block/vendor/ignore.js +626 -0
- package/templates/claude/hooks/scout-block.cjs +167 -0
- package/templates/claude/hooks/session-end.cjs +35 -0
- package/templates/claude/hooks/session-init.cjs +214 -0
- package/templates/claude/hooks/subagent-init.cjs +161 -0
- package/templates/claude/hooks/write-compact-marker.cjs +153 -0
- package/templates/claude/output-styles/coding-level-1.md +148 -0
- package/templates/claude/output-styles/coding-level-2.md +159 -0
- package/templates/claude/output-styles/coding-level-3.md +91 -0
- package/templates/claude/scripts/README.md +33 -0
- package/templates/claude/scripts/generate-catalogs.cjs +318 -0
- package/templates/claude/scripts/registry.json +48 -0
- package/templates/claude/scripts/set-active-plan.cjs +45 -0
- package/templates/claude/scripts/validate-docs.cjs +447 -0
- package/templates/claude/scripts/worktree.cjs +658 -0
- package/templates/claude/skills/README.md +112 -0
- package/templates/claude/skills/ai-artist/SKILL.md +75 -0
- package/templates/claude/skills/ai-artist/references/advanced-techniques.md +184 -0
- package/templates/claude/skills/ai-artist/references/domain-code.md +66 -0
- package/templates/claude/skills/ai-artist/references/domain-data.md +72 -0
- package/templates/claude/skills/ai-artist/references/domain-marketing.md +66 -0
- package/templates/claude/skills/ai-artist/references/domain-patterns.md +33 -0
- package/templates/claude/skills/ai-artist/references/domain-writing.md +68 -0
- package/templates/claude/skills/ai-artist/references/image-prompting.md +141 -0
- package/templates/claude/skills/ai-artist/references/llm-prompting.md +165 -0
- package/templates/claude/skills/ai-artist/references/nano-banana.md +59 -0
- package/templates/claude/skills/ai-artist/references/reasoning-techniques.md +201 -0
- package/templates/claude/skills/backend-development/SKILL.md +95 -0
- package/templates/claude/skills/backend-development/references/backend-api-design.md +495 -0
- package/templates/claude/skills/backend-development/references/backend-architecture.md +454 -0
- package/templates/claude/skills/backend-development/references/backend-authentication.md +338 -0
- package/templates/claude/skills/backend-development/references/backend-code-quality.md +659 -0
- package/templates/claude/skills/backend-development/references/backend-debugging.md +904 -0
- package/templates/claude/skills/backend-development/references/backend-devops.md +494 -0
- package/templates/claude/skills/backend-development/references/backend-mindset.md +387 -0
- package/templates/claude/skills/backend-development/references/backend-performance.md +397 -0
- package/templates/claude/skills/backend-development/references/backend-security.md +290 -0
- package/templates/claude/skills/backend-development/references/backend-technologies.md +256 -0
- package/templates/claude/skills/backend-development/references/backend-testing.md +429 -0
- package/templates/claude/skills/better-auth/SKILL.md +204 -0
- package/templates/claude/skills/better-auth/references/advanced-features.md +553 -0
- package/templates/claude/skills/better-auth/references/database-integration.md +577 -0
- package/templates/claude/skills/better-auth/references/email-password-auth.md +416 -0
- package/templates/claude/skills/better-auth/references/oauth-providers.md +430 -0
- package/templates/claude/skills/better-auth/scripts/better_auth_init.py +521 -0
- package/templates/claude/skills/chrome-devtools/SKILL.md +473 -0
- package/templates/claude/skills/chrome-devtools/references/cdp-domains.md +694 -0
- package/templates/claude/skills/chrome-devtools/references/performance-guide.md +940 -0
- package/templates/claude/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
- package/templates/claude/skills/chrome-devtools/scripts/README.md +288 -0
- package/templates/claude/skills/chrome-devtools/scripts/aria-snapshot.js +368 -0
- package/templates/claude/skills/chrome-devtools/scripts/click.js +92 -0
- package/templates/claude/skills/chrome-devtools/scripts/console.js +85 -0
- package/templates/claude/skills/chrome-devtools/scripts/evaluate.js +59 -0
- package/templates/claude/skills/chrome-devtools/scripts/fill.js +84 -0
- package/templates/claude/skills/chrome-devtools/scripts/inject-auth.js +247 -0
- package/templates/claude/skills/chrome-devtools/scripts/install-deps.sh +11 -0
- package/templates/claude/skills/chrome-devtools/scripts/install.sh +36 -0
- package/templates/claude/skills/chrome-devtools/scripts/lib/browser.js +335 -0
- package/templates/claude/skills/chrome-devtools/scripts/lib/selector.js +183 -0
- package/templates/claude/skills/chrome-devtools/scripts/navigate.js +60 -0
- package/templates/claude/skills/chrome-devtools/scripts/network.js +113 -0
- package/templates/claude/skills/chrome-devtools/scripts/package.json +16 -0
- package/templates/claude/skills/chrome-devtools/scripts/performance.js +159 -0
- package/templates/claude/skills/chrome-devtools/scripts/screenshot.js +212 -0
- package/templates/claude/skills/chrome-devtools/scripts/select-ref.js +151 -0
- package/templates/claude/skills/chrome-devtools/scripts/snapshot.js +143 -0
- package/templates/claude/skills/chrome-devtools/scripts/ws-debug.js +47 -0
- package/templates/claude/skills/chrome-devtools/scripts/ws-full-debug.js +115 -0
- package/templates/claude/skills/claude-code/references/advanced-features.md +399 -0
- package/templates/claude/skills/claude-code/references/agent-skills.md +399 -0
- package/templates/claude/skills/claude-code/references/api-reference.md +498 -0
- package/templates/claude/skills/claude-code/references/best-practices.md +447 -0
- package/templates/claude/skills/claude-code/references/cicd-integration.md +428 -0
- package/templates/claude/skills/claude-code/references/common-workflows.md +107 -0
- package/templates/claude/skills/claude-code/references/configuration.md +480 -0
- package/templates/claude/skills/claude-code/references/enterprise-features.md +472 -0
- package/templates/claude/skills/claude-code/references/getting-started.md +244 -0
- package/templates/claude/skills/claude-code/references/hooks-and-plugins.md +444 -0
- package/templates/claude/skills/claude-code/references/hooks-comprehensive.md +622 -0
- package/templates/claude/skills/claude-code/references/ide-integration.md +316 -0
- package/templates/claude/skills/claude-code/references/mcp-integration.md +386 -0
- package/templates/claude/skills/claude-code/references/slash-commands.md +460 -0
- package/templates/claude/skills/claude-code/references/troubleshooting.md +455 -0
- package/templates/claude/skills/claude-code/skill.md +60 -0
- package/templates/claude/skills/code-review/SKILL.md +143 -0
- package/templates/claude/skills/code-review/references/code-review-reception.md +209 -0
- package/templates/claude/skills/code-review/references/requesting-code-review.md +105 -0
- package/templates/claude/skills/code-review/references/verification-before-completion.md +139 -0
- package/templates/claude/skills/context-engineering/SKILL.md +86 -0
- package/templates/claude/skills/context-engineering/references/context-compression.md +84 -0
- package/templates/claude/skills/context-engineering/references/context-degradation.md +93 -0
- package/templates/claude/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/templates/claude/skills/context-engineering/references/context-optimization.md +82 -0
- package/templates/claude/skills/context-engineering/references/evaluation.md +89 -0
- package/templates/claude/skills/context-engineering/references/memory-systems.md +88 -0
- package/templates/claude/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/templates/claude/skills/context-engineering/references/project-development.md +97 -0
- package/templates/claude/skills/context-engineering/references/tool-design.md +86 -0
- package/templates/claude/skills/context-engineering/scripts/compression_evaluator.py +329 -0
- package/templates/claude/skills/context-engineering/scripts/context_analyzer.py +294 -0
- package/templates/claude/skills/databases/SKILL.md +232 -0
- package/templates/claude/skills/databases/references/mongodb-aggregation.md +447 -0
- package/templates/claude/skills/databases/references/mongodb-atlas.md +465 -0
- package/templates/claude/skills/databases/references/mongodb-crud.md +408 -0
- package/templates/claude/skills/databases/references/mongodb-indexing.md +442 -0
- package/templates/claude/skills/databases/references/postgresql-administration.md +594 -0
- package/templates/claude/skills/databases/references/postgresql-performance.md +527 -0
- package/templates/claude/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/templates/claude/skills/databases/references/postgresql-queries.md +475 -0
- package/templates/claude/skills/databases/scripts/db_backup.py +502 -0
- package/templates/claude/skills/databases/scripts/db_migrate.py +414 -0
- package/templates/claude/skills/databases/scripts/db_performance_check.py +445 -0
- package/templates/claude/skills/debugging/SKILL.md +84 -0
- package/templates/claude/skills/debugging/references/defense-in-depth.md +124 -0
- package/templates/claude/skills/debugging/references/root-cause-tracing.md +122 -0
- package/templates/claude/skills/debugging/references/systematic-debugging.md +102 -0
- package/templates/claude/skills/debugging/references/verification.md +123 -0
- package/templates/claude/skills/debugging/scripts/find-polluter.sh +63 -0
- package/templates/claude/skills/debugging/scripts/find-polluter.test.md +102 -0
- package/templates/claude/skills/devops/SKILL.md +293 -0
- package/templates/claude/skills/devops/references/browser-rendering.md +305 -0
- package/templates/claude/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/templates/claude/skills/devops/references/cloudflare-platform.md +271 -0
- package/templates/claude/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/templates/claude/skills/devops/references/docker-basics.md +297 -0
- package/templates/claude/skills/devops/references/docker-compose.md +292 -0
- package/templates/claude/skills/devops/references/gcloud-platform.md +307 -0
- package/templates/claude/skills/devops/references/gcloud-services.md +304 -0
- package/templates/claude/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/templates/claude/skills/devops/scripts/docker_optimize.py +320 -0
- package/templates/claude/skills/docs-seeker/SKILL.md +95 -0
- package/templates/claude/skills/docs-seeker/package.json +24 -0
- package/templates/claude/skills/docs-seeker/references/advanced.md +78 -0
- package/templates/claude/skills/docs-seeker/references/context7-patterns.md +68 -0
- package/templates/claude/skills/docs-seeker/references/errors.md +68 -0
- package/templates/claude/skills/docs-seeker/scripts/analyze-llms-txt.js +245 -0
- package/templates/claude/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/templates/claude/skills/docs-seeker/scripts/fetch-docs.js +212 -0
- package/templates/claude/skills/docs-seeker/workflows/library-search.md +87 -0
- package/templates/claude/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/templates/claude/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/templates/claude/skills/frontend-design/SKILL.md +85 -0
- package/templates/claude/skills/frontend-design/references/analysis-best-practices.md +80 -0
- package/templates/claude/skills/frontend-design/references/analysis-prompts.md +141 -0
- package/templates/claude/skills/frontend-design/references/analysis-techniques.md +118 -0
- package/templates/claude/skills/frontend-design/references/animejs.md +396 -0
- package/templates/claude/skills/frontend-design/references/design-extraction-overview.md +71 -0
- package/templates/claude/skills/frontend-design/references/extraction-best-practices.md +141 -0
- package/templates/claude/skills/frontend-design/references/extraction-output-templates.md +162 -0
- package/templates/claude/skills/frontend-design/references/extraction-prompts.md +127 -0
- package/templates/claude/skills/frontend-design/references/technical-accessibility.md +119 -0
- package/templates/claude/skills/frontend-design/references/technical-best-practices.md +97 -0
- package/templates/claude/skills/frontend-design/references/technical-optimization.md +44 -0
- package/templates/claude/skills/frontend-design/references/technical-overview.md +90 -0
- package/templates/claude/skills/frontend-design/references/technical-workflows.md +150 -0
- package/templates/claude/skills/frontend-design/references/visual-analysis-overview.md +95 -0
- package/templates/claude/skills/frontend-development/SKILL.md +399 -0
- package/templates/claude/skills/frontend-development/resources/common-patterns.md +331 -0
- package/templates/claude/skills/frontend-development/resources/complete-examples.md +872 -0
- package/templates/claude/skills/frontend-development/resources/component-patterns.md +502 -0
- package/templates/claude/skills/frontend-development/resources/data-fetching.md +767 -0
- package/templates/claude/skills/frontend-development/resources/file-organization.md +502 -0
- package/templates/claude/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/templates/claude/skills/frontend-development/resources/performance.md +406 -0
- package/templates/claude/skills/frontend-development/resources/routing-guide.md +364 -0
- package/templates/claude/skills/frontend-development/resources/styling-guide.md +428 -0
- package/templates/claude/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/templates/claude/skills/markdown-novel-viewer/SKILL.md +272 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/favicon.png +0 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/novel-theme.css +872 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/reader.js +378 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/template.html +85 -0
- package/templates/claude/skills/markdown-novel-viewer/package.json +15 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +49 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/server.cjs +398 -0
- package/templates/claude/skills/mcp-builder/SKILL.md +328 -0
- package/templates/claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/templates/claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/templates/claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/templates/claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/templates/claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/templates/claude/skills/mcp-builder/scripts/evaluation.py +381 -0
- package/templates/claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/templates/claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/templates/claude/skills/mcp-management/README.md +219 -0
- package/templates/claude/skills/mcp-management/SKILL.md +209 -0
- package/templates/claude/skills/mcp-management/assets/tools.json +3146 -0
- package/templates/claude/skills/mcp-management/references/configuration.md +114 -0
- package/templates/claude/skills/mcp-management/references/gemini-cli-integration.md +209 -0
- package/templates/claude/skills/mcp-management/references/mcp-protocol.md +116 -0
- package/templates/claude/skills/mcp-management/scripts/.env.example +10 -0
- package/templates/claude/skills/mcp-management/scripts/cli.ts +202 -0
- package/templates/claude/skills/mcp-management/scripts/mcp-client.ts +247 -0
- package/templates/claude/skills/mcp-management/scripts/package.json +20 -0
- package/templates/claude/skills/mcp-management/scripts/tsconfig.json +15 -0
- package/templates/claude/skills/media-processing/SKILL.md +91 -0
- package/templates/claude/skills/media-processing/references/common-workflows.md +132 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-encoding.md +358 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-filters.md +503 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-streaming.md +395 -0
- package/templates/claude/skills/media-processing/references/format-compatibility.md +375 -0
- package/templates/claude/skills/media-processing/references/imagemagick-batch.md +612 -0
- package/templates/claude/skills/media-processing/references/imagemagick-editing.md +623 -0
- package/templates/claude/skills/media-processing/references/rmbg-background-removal.md +66 -0
- package/templates/claude/skills/media-processing/references/troubleshooting.md +109 -0
- package/templates/claude/skills/media-processing/scripts/README.md +102 -0
- package/templates/claude/skills/media-processing/scripts/batch-remove-background.sh +124 -0
- package/templates/claude/skills/media-processing/scripts/batch_resize.py +342 -0
- package/templates/claude/skills/media-processing/scripts/media_convert.py +311 -0
- package/templates/claude/skills/media-processing/scripts/remove-background.sh +96 -0
- package/templates/claude/skills/media-processing/scripts/remove-bg-node.js +181 -0
- package/templates/claude/skills/mermaidjs-v11/SKILL.md +115 -0
- package/templates/claude/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/templates/claude/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/templates/claude/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/templates/claude/skills/mermaidjs-v11/references/examples.md +344 -0
- package/templates/claude/skills/mermaidjs-v11/references/integration.md +310 -0
- package/templates/claude/skills/planning/SKILL.md +115 -0
- package/templates/claude/skills/planning/references/codebase-understanding.md +62 -0
- package/templates/claude/skills/planning/references/output-standards.md +127 -0
- package/templates/claude/skills/planning/references/plan-organization.md +150 -0
- package/templates/claude/skills/planning/references/research-phase.md +49 -0
- package/templates/claude/skills/planning/references/solution-design.md +63 -0
- package/templates/claude/skills/plans-kanban/SKILL.md +157 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard-template.html +119 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard.css +1594 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard.js +659 -0
- package/templates/claude/skills/plans-kanban/assets/favicon.png +0 -0
- package/templates/claude/skills/plans-kanban/package.json +13 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +941 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-parser.cjs +194 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-scanner.cjs +277 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/port-finder.cjs +49 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
- package/templates/claude/skills/plans-kanban/scripts/server.cjs +249 -0
- package/templates/claude/skills/problem-solving/SKILL.md +96 -0
- package/templates/claude/skills/problem-solving/references/attribution.md +69 -0
- package/templates/claude/skills/problem-solving/references/collision-zone-thinking.md +79 -0
- package/templates/claude/skills/problem-solving/references/inversion-exercise.md +91 -0
- package/templates/claude/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/templates/claude/skills/problem-solving/references/scale-game.md +95 -0
- package/templates/claude/skills/problem-solving/references/simplification-cascades.md +80 -0
- package/templates/claude/skills/problem-solving/references/when-stuck.md +72 -0
- package/templates/claude/skills/registry.json +258 -0
- package/templates/claude/skills/repomix/SKILL.md +247 -0
- package/templates/claude/skills/repomix/references/configuration.md +211 -0
- package/templates/claude/skills/repomix/references/usage-patterns.md +232 -0
- package/templates/claude/skills/repomix/scripts/README.md +179 -0
- package/templates/claude/skills/repomix/scripts/repomix_batch.py +455 -0
- package/templates/claude/skills/repomix/scripts/repos.example.json +15 -0
- package/templates/claude/skills/research/SKILL.md +168 -0
- package/templates/claude/skills/sequential-thinking/.env.example +8 -0
- package/templates/claude/skills/sequential-thinking/README.md +183 -0
- package/templates/claude/skills/sequential-thinking/SKILL.md +94 -0
- package/templates/claude/skills/sequential-thinking/package.json +31 -0
- package/templates/claude/skills/sequential-thinking/references/advanced-strategies.md +79 -0
- package/templates/claude/skills/sequential-thinking/references/advanced-techniques.md +76 -0
- package/templates/claude/skills/sequential-thinking/references/core-patterns.md +95 -0
- package/templates/claude/skills/sequential-thinking/references/examples-api.md +88 -0
- package/templates/claude/skills/sequential-thinking/references/examples-architecture.md +94 -0
- package/templates/claude/skills/sequential-thinking/references/examples-debug.md +90 -0
- package/templates/claude/skills/sequential-thinking/scripts/format-thought.js +182 -0
- package/templates/claude/skills/sequential-thinking/scripts/process-thought.js +252 -0
- package/templates/claude/skills/skill-creator/LICENSE.txt +202 -0
- package/templates/claude/skills/skill-creator/SKILL.md +266 -0
- package/templates/claude/skills/skill-creator/references/agent-skills-spec.md +51 -0
- package/templates/claude/skills/skill-creator/scripts/encoding_utils.py +21 -0
- package/templates/claude/skills/skill-creator/scripts/init_skill.py +304 -0
- package/templates/claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/templates/claude/skills/skill-creator/scripts/quick_validate.py +66 -0
- package/templates/claude/skills/template-skill/SKILL.md +6 -0
- package/templates/claude/skills/vitest/SKILL.md +595 -0
- package/templates/claude/skills/vitest/references/async-patterns.md +82 -0
- package/templates/claude/skills/vitest/references/mock-patterns.md +78 -0
- package/templates/claude/skills/vitest/references/monorepo-setup.md +185 -0
- package/templates/claude/skills/vitest/references/turborepo-setup.md +332 -0
- package/templates/claude/skills/web-frameworks/SKILL.md +324 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-app-router.md +465 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-optimization.md +511 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-server-components.md +495 -0
- package/templates/claude/skills/web-frameworks/references/remix-icon-integration.md +603 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-caching.md +551 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-pipelines.md +517 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-setup.md +542 -0
- package/templates/claude/skills/web-frameworks/scripts/nextjs_init.py +547 -0
- package/templates/claude/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/templates/claude/workflows/development-rules.md +40 -0
- package/templates/claude/workflows/documentation-management.md +121 -0
- package/templates/claude/workflows/orchestration-protocol.md +16 -0
- package/templates/claude/workflows/primary-workflow.md +45 -0
- package/templates/claude/workflows/registry.json +37 -0
- package/templates/common/.cct.json +41 -0
- package/templates/common/.cctkignore +22 -0
- package/templates/common/.env.example +39 -0
- package/templates/common/.mcp.json.example +16 -0
- package/templates/common/metadata.json +15 -0
- package/templates/common/settings.json +79 -0
- package/templates/common/statusline.cjs +271 -0
- package/templates/config/.repomixignore +22 -0
- package/templates/config/AGENTS.md +55 -0
- package/templates/config/CLAUDE.md +87 -0
- package/templates/plans/bug-fix-template.md +69 -0
- package/templates/plans/feature-implementation-template.md +84 -0
- package/templates/plans/refactor-template.md +82 -0
- package/templates/plans/template-usage-guide.md +58 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"codingLevel": -1,
|
|
3
|
+
"privacyBlock": true,
|
|
4
|
+
"docs": {
|
|
5
|
+
"maxLoc": 800
|
|
6
|
+
},
|
|
7
|
+
"plan": {
|
|
8
|
+
"namingFormat": "{date}-{issue}-{slug}",
|
|
9
|
+
"dateFormat": "YYMMDD-HHmm",
|
|
10
|
+
"issuePrefix": "GH-",
|
|
11
|
+
"reportsDir": "reports",
|
|
12
|
+
"resolution": {
|
|
13
|
+
"order": ["session", "branch"],
|
|
14
|
+
"branchPattern": "(?:feat|fix|chore|refactor|docs)/(?:[^/]+/)?(.+)"
|
|
15
|
+
},
|
|
16
|
+
"validation": {
|
|
17
|
+
"mode": "prompt",
|
|
18
|
+
"minQuestions": 3,
|
|
19
|
+
"maxQuestions": 8,
|
|
20
|
+
"focusAreas": ["assumptions", "risks", "tradeoffs", "architecture"]
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"paths": {
|
|
24
|
+
"docs": "docs",
|
|
25
|
+
"plans": "plans"
|
|
26
|
+
},
|
|
27
|
+
"locale": {
|
|
28
|
+
"thinkingLanguage": null,
|
|
29
|
+
"responseLanguage": null
|
|
30
|
+
},
|
|
31
|
+
"trust": {
|
|
32
|
+
"passphrase": null,
|
|
33
|
+
"enabled": false
|
|
34
|
+
},
|
|
35
|
+
"project": {
|
|
36
|
+
"type": "auto",
|
|
37
|
+
"packageManager": "auto",
|
|
38
|
+
"framework": "auto"
|
|
39
|
+
},
|
|
40
|
+
"assertions": []
|
|
41
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Blocks directories with heavy file counts that fill LLM context
|
|
2
|
+
# Syntax: gitignore-spec | Use ! prefix to allow (e.g., !src/vendor)
|
|
3
|
+
|
|
4
|
+
# JS/TS
|
|
5
|
+
node_modules
|
|
6
|
+
dist
|
|
7
|
+
build
|
|
8
|
+
.next
|
|
9
|
+
.nuxt
|
|
10
|
+
|
|
11
|
+
# Python
|
|
12
|
+
__pycache__
|
|
13
|
+
.venv
|
|
14
|
+
venv
|
|
15
|
+
|
|
16
|
+
# Go/PHP/Rust/Java
|
|
17
|
+
vendor
|
|
18
|
+
target
|
|
19
|
+
|
|
20
|
+
# VCS & Coverage
|
|
21
|
+
.git
|
|
22
|
+
coverage
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Claude Code - Global Environment Variables
|
|
2
|
+
# Location: .claude/.env
|
|
3
|
+
# Priority: LOWEST (overridden by skills/.env and skill-specific .env)
|
|
4
|
+
# Scope: Project-wide configuration, global defaults
|
|
5
|
+
# Setup: Copy to .claude/.env and configure
|
|
6
|
+
|
|
7
|
+
# ============================================
|
|
8
|
+
# Environment Variable Hierarchy
|
|
9
|
+
# ============================================
|
|
10
|
+
# Priority order (highest to lowest):
|
|
11
|
+
# 1. process.env - Runtime environment (HIGHEST)
|
|
12
|
+
# 2. .claude/skills/<skill>/.env - Skill-specific overrides
|
|
13
|
+
# 3. .claude/skills/.env - Shared across all skills
|
|
14
|
+
# 4. .claude/.env - Global defaults (this file, LOWEST)
|
|
15
|
+
#
|
|
16
|
+
# ============================================
|
|
17
|
+
# Context7 API Configuration (optional)
|
|
18
|
+
# ============================================
|
|
19
|
+
# Get your API key from https://context7.com/dashboard/api-keys
|
|
20
|
+
CONTEXT7_API_KEY=
|
|
21
|
+
|
|
22
|
+
# ============================================
|
|
23
|
+
# Gemini API Configuration (optional)
|
|
24
|
+
# ============================================
|
|
25
|
+
# Used for research, documentation search, and enhanced capabilities
|
|
26
|
+
# Get your API key from https://aistudio.google.com/apikey
|
|
27
|
+
GEMINI_API_KEY=
|
|
28
|
+
|
|
29
|
+
# ============================================
|
|
30
|
+
# Development & CI/CD
|
|
31
|
+
# ============================================
|
|
32
|
+
# NODE_ENV=development
|
|
33
|
+
# LOG_LEVEL=info
|
|
34
|
+
|
|
35
|
+
# ============================================
|
|
36
|
+
# Output settings
|
|
37
|
+
# ============================================
|
|
38
|
+
OUTPUT_FORMAT=json
|
|
39
|
+
DEBUG=false
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"context7": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": ["-y", "@upstash/context7-mcp", "--api-key", "YOUR_API_KEY"]
|
|
6
|
+
},
|
|
7
|
+
"chrome-devtools": {
|
|
8
|
+
"command": "npx",
|
|
9
|
+
"args": ["-y", "chrome-devtools-mcp@latest"]
|
|
10
|
+
},
|
|
11
|
+
"sequential-thinking": {
|
|
12
|
+
"command": "npx",
|
|
13
|
+
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.0.1",
|
|
3
|
+
"name": "cctk",
|
|
4
|
+
"description": "A comprehensive CLI toolkit for boosting Claude Code to the insane level.",
|
|
5
|
+
"buildDate": "2026-01-05T04:24:39.330Z",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/MacPawLabs/claude-code-toolkit.git"
|
|
9
|
+
},
|
|
10
|
+
"download": {
|
|
11
|
+
"lastDownloadedAt": null,
|
|
12
|
+
"downloadedBy": null,
|
|
13
|
+
"installCount": 0
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"includeCoAuthoredBy": false,
|
|
3
|
+
"statusLine": {
|
|
4
|
+
"type": "command",
|
|
5
|
+
"command": "node .claude/statusline.cjs",
|
|
6
|
+
"padding": 0
|
|
7
|
+
},
|
|
8
|
+
"hooks": {
|
|
9
|
+
"SessionStart": [
|
|
10
|
+
{
|
|
11
|
+
"matcher": "startup|resume|clear|compact",
|
|
12
|
+
"hooks": [
|
|
13
|
+
{
|
|
14
|
+
"type": "command",
|
|
15
|
+
"command": "node .claude/hooks/session-init.cjs"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"SubagentStart": [
|
|
21
|
+
{
|
|
22
|
+
"matcher": "*",
|
|
23
|
+
"hooks": [
|
|
24
|
+
{
|
|
25
|
+
"type": "command",
|
|
26
|
+
"command": "node .claude/hooks/subagent-init.cjs"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"UserPromptSubmit": [
|
|
32
|
+
{
|
|
33
|
+
"hooks": [
|
|
34
|
+
{
|
|
35
|
+
"type": "command",
|
|
36
|
+
"command": "node .claude/hooks/dev-rules-reminder.cjs"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"PreToolUse": [
|
|
42
|
+
{
|
|
43
|
+
"matcher": "Bash|Glob|Grep|Read|Edit|Write",
|
|
44
|
+
"hooks": [
|
|
45
|
+
{
|
|
46
|
+
"type": "command",
|
|
47
|
+
"command": "node .claude/hooks/scout-block.cjs"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "command",
|
|
51
|
+
"command": "node .claude/hooks/privacy-block.cjs"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"PreCompact": [
|
|
57
|
+
{
|
|
58
|
+
"matcher": "manual|auto",
|
|
59
|
+
"hooks": [
|
|
60
|
+
{
|
|
61
|
+
"type": "command",
|
|
62
|
+
"command": "node .claude/hooks/write-compact-marker.cjs"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"SessionEnd": [
|
|
68
|
+
{
|
|
69
|
+
"matcher": "clear",
|
|
70
|
+
"hooks": [
|
|
71
|
+
{
|
|
72
|
+
"type": "command",
|
|
73
|
+
"command": "node .claude/hooks/session-end.cjs"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const { stdin, env } = require('process');
|
|
5
|
+
const { execSync } = require('child_process');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const { trackContext } = require('./hooks/lib/context-tracker.cjs');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Safe command execution wrapper
|
|
12
|
+
* @param {string} cmd - command to execute
|
|
13
|
+
*/
|
|
14
|
+
function exec(cmd) {
|
|
15
|
+
try {
|
|
16
|
+
return execSync(cmd, {
|
|
17
|
+
encoding: 'utf8',
|
|
18
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
19
|
+
windowsHide: true
|
|
20
|
+
}).trim();
|
|
21
|
+
} catch (err) {
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Format epoch timestamp as HH:mm
|
|
28
|
+
* @param {number} epoch - epoch timestamp
|
|
29
|
+
*/
|
|
30
|
+
function formatTimeHM(epoch) {
|
|
31
|
+
try {
|
|
32
|
+
const date = new Date(epoch * 1000);
|
|
33
|
+
const hours = date.getHours().toString().padStart(2, '0');
|
|
34
|
+
const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
35
|
+
return `${hours}:${minutes}`;
|
|
36
|
+
} catch (err) {
|
|
37
|
+
return '00:00';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Generate Unicode progress bar (horizontal rectangles)
|
|
43
|
+
* Uses smooth block characters for consistent rendering
|
|
44
|
+
*
|
|
45
|
+
* @param {number} percent - 0-100 percentage
|
|
46
|
+
* @param {number} width - bar width in characters (default 12)
|
|
47
|
+
* @returns {string} Unicode progress bar like ▰▰▰▰▰▱▱▱▱▱▱▱
|
|
48
|
+
*/
|
|
49
|
+
function progressBar(percent, width = 12) {
|
|
50
|
+
const clamped = Math.max(0, Math.min(100, percent));
|
|
51
|
+
const filled = Math.round(clamped * width / 100);
|
|
52
|
+
const empty = width - filled;
|
|
53
|
+
// ▰ (U+25B0) filled, ▱ (U+25B1) empty - smooth horizontal rectangles
|
|
54
|
+
return '▰'.repeat(filled) + '▱'.repeat(empty);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get severity emoji based on percentage (no color codes)
|
|
59
|
+
*
|
|
60
|
+
* @param {number} percent - 0-100 percentage
|
|
61
|
+
* @returns {string} Emoji indicator
|
|
62
|
+
*/
|
|
63
|
+
function getSeverityEmoji(percent) {
|
|
64
|
+
if (percent >= 90) return '🔴'; // Critical
|
|
65
|
+
if (percent >= 70) return '🟡'; // Warning
|
|
66
|
+
return '🟢'; // Healthy
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Expand home directory to ~
|
|
71
|
+
* @param {string} filePath - file path to expand
|
|
72
|
+
*/
|
|
73
|
+
function expandHome(filePath) {
|
|
74
|
+
const homeDir = os.homedir();
|
|
75
|
+
if (filePath.startsWith(homeDir)) {
|
|
76
|
+
return filePath.replace(homeDir, '~');
|
|
77
|
+
}
|
|
78
|
+
return filePath;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Read stdin asynchronously
|
|
83
|
+
*/
|
|
84
|
+
async function readStdin() {
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
86
|
+
const chunks = [];
|
|
87
|
+
stdin.setEncoding('utf8');
|
|
88
|
+
|
|
89
|
+
stdin.on('data', (chunk) => {
|
|
90
|
+
chunks.push(chunk);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
stdin.on('end', () => {
|
|
94
|
+
resolve(chunks.join(''));
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
stdin.on('error', (err) => {
|
|
98
|
+
reject(err);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Main function
|
|
105
|
+
*/
|
|
106
|
+
async function main() {
|
|
107
|
+
try {
|
|
108
|
+
const input = await readStdin();
|
|
109
|
+
if (!input.trim()) {
|
|
110
|
+
console.error('No input provided');
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const data = JSON.parse(input);
|
|
115
|
+
|
|
116
|
+
let currentDir = 'unknown';
|
|
117
|
+
if (data.workspace?.current_dir) {
|
|
118
|
+
currentDir = data.workspace.current_dir;
|
|
119
|
+
} else if (data.cwd) {
|
|
120
|
+
currentDir = data.cwd;
|
|
121
|
+
}
|
|
122
|
+
currentDir = expandHome(currentDir);
|
|
123
|
+
|
|
124
|
+
const modelName = data.model?.display_name || 'Claude';
|
|
125
|
+
const modelVersion = data.model?.version && data.model.version !== 'null' ? data.model.version : '';
|
|
126
|
+
|
|
127
|
+
let gitBranch = '';
|
|
128
|
+
let gitUnstaged = 0;
|
|
129
|
+
const gitCheck = exec('git rev-parse --git-dir');
|
|
130
|
+
if (gitCheck) {
|
|
131
|
+
gitBranch = exec('git branch --show-current');
|
|
132
|
+
if (!gitBranch) {
|
|
133
|
+
gitBranch = exec('git rev-parse --short HEAD');
|
|
134
|
+
}
|
|
135
|
+
const unstagedOutput = exec('git diff --name-only');
|
|
136
|
+
if (unstagedOutput) {
|
|
137
|
+
gitUnstaged = unstagedOutput.split('\n').filter(line => line.trim()).length;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
let sessionText = '';
|
|
142
|
+
let costUSD = '';
|
|
143
|
+
let linesAdded = 0;
|
|
144
|
+
let linesRemoved = 0;
|
|
145
|
+
let contextPercent = 0;
|
|
146
|
+
let contextText = '';
|
|
147
|
+
const billingMode = env.CLAUDE_BILLING_MODE || 'api';
|
|
148
|
+
|
|
149
|
+
costUSD = data.cost?.total_cost_usd || '';
|
|
150
|
+
linesAdded = data.cost?.total_lines_added || 0;
|
|
151
|
+
linesRemoved = data.cost?.total_lines_removed || 0;
|
|
152
|
+
|
|
153
|
+
const contextInput = data.context_window?.total_input_tokens || 0;
|
|
154
|
+
const contextOutput = data.context_window?.total_output_tokens || 0;
|
|
155
|
+
const contextSize = data.context_window?.context_window_size || 0;
|
|
156
|
+
|
|
157
|
+
if (contextSize > 0) {
|
|
158
|
+
const result = trackContext({
|
|
159
|
+
sessionId: data.session_id,
|
|
160
|
+
contextInput,
|
|
161
|
+
contextOutput,
|
|
162
|
+
contextWindowSize: contextSize
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
contextPercent = result.percentage;
|
|
166
|
+
|
|
167
|
+
if (result.showCompactIndicator) {
|
|
168
|
+
contextText = `🔄 ▱▱▱▱▱▱▱▱▱▱▱▱`;
|
|
169
|
+
} else {
|
|
170
|
+
const emoji = getSeverityEmoji(contextPercent);
|
|
171
|
+
const bar = progressBar(contextPercent, 12);
|
|
172
|
+
contextText = `${emoji} ${bar} ${contextPercent}%`;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const transcriptPath = data.transcript_path;
|
|
177
|
+
|
|
178
|
+
if (transcriptPath) {
|
|
179
|
+
try {
|
|
180
|
+
if (fs.existsSync(transcriptPath)) {
|
|
181
|
+
const content = fs.readFileSync(transcriptPath, 'utf8');
|
|
182
|
+
const lines = content.split('\n').filter(l => l.trim());
|
|
183
|
+
|
|
184
|
+
let firstApiCall = null;
|
|
185
|
+
for (const line of lines) {
|
|
186
|
+
try {
|
|
187
|
+
const entry = JSON.parse(line);
|
|
188
|
+
if (entry.usage && entry.timestamp) {
|
|
189
|
+
firstApiCall = entry.timestamp;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
} catch (e) {
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (firstApiCall) {
|
|
198
|
+
const now = new Date();
|
|
199
|
+
const currentUtcHour = now.getUTCHours();
|
|
200
|
+
const blockStart = Math.floor(currentUtcHour / 5) * 5;
|
|
201
|
+
let blockEnd = blockStart + 5;
|
|
202
|
+
|
|
203
|
+
let blockEndDate = new Date(now);
|
|
204
|
+
if (blockEnd >= 24) {
|
|
205
|
+
blockEnd -= 24;
|
|
206
|
+
blockEndDate.setUTCDate(blockEndDate.getUTCDate() + 1);
|
|
207
|
+
}
|
|
208
|
+
blockEndDate.setUTCHours(blockEnd, 0, 0, 0);
|
|
209
|
+
|
|
210
|
+
const nowSec = Math.floor(Date.now() / 1000);
|
|
211
|
+
const blockEndSec = Math.floor(blockEndDate.getTime() / 1000);
|
|
212
|
+
const remaining = blockEndSec - nowSec;
|
|
213
|
+
|
|
214
|
+
if (remaining > 0 && remaining < 18000) {
|
|
215
|
+
const rh = Math.floor(remaining / 3600);
|
|
216
|
+
const rm = Math.floor((remaining % 3600) / 60);
|
|
217
|
+
const blockEndLocal = formatTimeHM(blockEndSec);
|
|
218
|
+
sessionText = `${rh}h ${rm}m until reset at ${blockEndLocal}`;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
} catch (err) {
|
|
223
|
+
// Silent fail - transcript not readable
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
let output = '';
|
|
228
|
+
|
|
229
|
+
output += `📁 ${currentDir}`;
|
|
230
|
+
|
|
231
|
+
if (gitBranch) {
|
|
232
|
+
output += ` 🌿 ${gitBranch}`;
|
|
233
|
+
if (gitUnstaged > 0) {
|
|
234
|
+
output += ` (${gitUnstaged})`;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
output += ` 🤖 ${modelName}`;
|
|
239
|
+
|
|
240
|
+
if (modelVersion) {
|
|
241
|
+
output += ` ${modelVersion}`;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
if (sessionText) {
|
|
245
|
+
output += ` ⌛ ${sessionText}`;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (billingMode === 'api' && costUSD && /^\d+(\.\d+)?$/.test(costUSD.toString())) {
|
|
249
|
+
const costUSDNum = parseFloat(costUSD);
|
|
250
|
+
output += ` 💵 $${costUSDNum.toFixed(4)}`;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if ((linesAdded > 0 || linesRemoved > 0)) {
|
|
254
|
+
output += ` 📝 +${linesAdded} -${linesRemoved}`;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (contextText) {
|
|
258
|
+
output += ` ${contextText}`;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
console.log(output);
|
|
262
|
+
} catch (err) {
|
|
263
|
+
console.error('Error:', err.message);
|
|
264
|
+
process.exit(1);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
main().catch(err => {
|
|
269
|
+
console.error('Fatal error:', err);
|
|
270
|
+
process.exit(1);
|
|
271
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
docs/*
|
|
2
|
+
plans/*
|
|
3
|
+
assets/*
|
|
4
|
+
dist/*
|
|
5
|
+
coverage/*
|
|
6
|
+
build/*
|
|
7
|
+
ios/*
|
|
8
|
+
android/*
|
|
9
|
+
tests/*
|
|
10
|
+
__tests__/*
|
|
11
|
+
__pycache__/*
|
|
12
|
+
node_modules/*
|
|
13
|
+
|
|
14
|
+
.opencode/*
|
|
15
|
+
.claude/*
|
|
16
|
+
.serena/*
|
|
17
|
+
.pnpm-store/*
|
|
18
|
+
.github/*
|
|
19
|
+
.dart_tool/*
|
|
20
|
+
.idea/*
|
|
21
|
+
.husky/*
|
|
22
|
+
.venv/*
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to OpenCode when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Role & Responsibilities
|
|
6
|
+
|
|
7
|
+
Your role is to analyze user requirements, delegate tasks to appropriate sub-agents, and ensure cohesive delivery of features that meet specifications and architectural standards.
|
|
8
|
+
|
|
9
|
+
## Workflows
|
|
10
|
+
|
|
11
|
+
- Primary workflow: `./.claude/rules/primary-workflow.md`
|
|
12
|
+
- Development rules: `./.claude/rules/development-rules.md`
|
|
13
|
+
- Orchestration protocols: `./.claude/rules/orchestration-protocol.md`
|
|
14
|
+
- Documentation management: `./.claude/rules/documentation-management.md`
|
|
15
|
+
- And other workflows: `./.claude/rules/*`
|
|
16
|
+
|
|
17
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
18
|
+
**IMPORTANT:** You must follow strictly the development rules in `./.claude/rules/development-rules.md` file.
|
|
19
|
+
**IMPORTANT:** Before you plan or proceed any implementation, always read the `./README.md` file first to get context.
|
|
20
|
+
**IMPORTANT:** Sacrifice grammar for the sake of concision when writing reports.
|
|
21
|
+
**IMPORTANT:** In reports, list any unresolved questions at the end, if any.
|
|
22
|
+
|
|
23
|
+
## Development Principles
|
|
24
|
+
|
|
25
|
+
- **YAGNI**: You Aren't Gonna Need It - avoid over-engineering
|
|
26
|
+
- **KISS**: Keep It Simple, Stupid - prefer simple solutions
|
|
27
|
+
- **DRY**: Don't Repeat Yourself - eliminate code duplication
|
|
28
|
+
|
|
29
|
+
## Documentation
|
|
30
|
+
|
|
31
|
+
Keep all important docs in `./docs` folder:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
./docs
|
|
35
|
+
├── project-overview-pdr.md
|
|
36
|
+
├── code-standards.md
|
|
37
|
+
├── codebase-summary.md
|
|
38
|
+
├── design-guidelines.md
|
|
39
|
+
└── system-architecture.md
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## External Files
|
|
43
|
+
|
|
44
|
+
Reference external instruction files in `opencode.json`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"instructions": ["docs/*.md", ".opencode/agents/*.md"]
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
*Generated by Claude Code Toolkit OpenCode Generator*
|
|
55
|
+
*Date: 2026-01-11*
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Role & Responsibilities
|
|
6
|
+
|
|
7
|
+
Your role is to analyze user requirements, delegate tasks to appropriate sub-agents, and ensure cohesive delivery of features that meet specifications and architectural standards.
|
|
8
|
+
|
|
9
|
+
## Workflows
|
|
10
|
+
|
|
11
|
+
- Primary workflow: `./.claude/rules/primary-workflow.md`
|
|
12
|
+
- Development rules: `./.claude/rules/development-rules.md`
|
|
13
|
+
- Orchestration protocols: `./.claude/rules/orchestration-protocol.md`
|
|
14
|
+
- Documentation management: `./.claude/rules/documentation-management.md`
|
|
15
|
+
- And other workflows: `./.claude/rules/*`
|
|
16
|
+
|
|
17
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
18
|
+
**IMPORTANT:** You must follow strictly the development rules in `./.claude/rules/development-rules.md` file.
|
|
19
|
+
**IMPORTANT:** Before you plan or proceed any implementation, always read the `./README.md` file first to get context.
|
|
20
|
+
**IMPORTANT:** Sacrifice grammar for the sake of concision when writing reports.
|
|
21
|
+
**IMPORTANT:** In reports, list any unresolved questions at the end, if any.
|
|
22
|
+
|
|
23
|
+
## Hook Response Protocol
|
|
24
|
+
|
|
25
|
+
### Privacy Block Hook (`@@PRIVACY_PROMPT@@`)
|
|
26
|
+
|
|
27
|
+
When a tool call is blocked by the privacy-block hook, the output contains a JSON marker between `@@PRIVACY_PROMPT_START@@` and `@@PRIVACY_PROMPT_END@@`. **You MUST use the `AskUserQuestion` tool** to get proper user approval.
|
|
28
|
+
|
|
29
|
+
**Required Flow:**
|
|
30
|
+
|
|
31
|
+
1. Parse the JSON from the hook output
|
|
32
|
+
2. Use `AskUserQuestion` with the question data from the JSON
|
|
33
|
+
3. Based on user's selection:
|
|
34
|
+
- **"Yes, approve access"** → Use `bash cat "filepath"` to read the file (bash is auto-approved)
|
|
35
|
+
- **"No, skip this file"** → Continue without accessing the file
|
|
36
|
+
|
|
37
|
+
**Example AskUserQuestion call:**
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"questions": [{
|
|
41
|
+
"question": "I need to read \".env\" which may contain sensitive data. Do you approve?",
|
|
42
|
+
"header": "File Access",
|
|
43
|
+
"options": [
|
|
44
|
+
{ "label": "Yes, approve access", "description": "Allow reading .env this time" },
|
|
45
|
+
{ "label": "No, skip this file", "description": "Continue without accessing this file" }
|
|
46
|
+
],
|
|
47
|
+
"multiSelect": false
|
|
48
|
+
}]
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**IMPORTANT:** Always ask the user via `AskUserQuestion` first. Never try to work around the privacy block without explicit user approval.
|
|
53
|
+
|
|
54
|
+
## Python Scripts (Skills)
|
|
55
|
+
|
|
56
|
+
When running Python scripts from `.claude/skills/`, use the venv Python interpreter:
|
|
57
|
+
- **Linux/macOS:** `.claude/skills/.venv/bin/python3 scripts/xxx.py`
|
|
58
|
+
|
|
59
|
+
This ensures packages installed by the CLI toolkit are available.
|
|
60
|
+
|
|
61
|
+
**IMPORTANT:** When scripts of skills failed, don't stop, try to fix them directly.
|
|
62
|
+
|
|
63
|
+
## [IMPORTANT] Consider Modularization
|
|
64
|
+
- If a code file exceeds 200 lines of code, consider modularizing it
|
|
65
|
+
- Check existing modules before creating new
|
|
66
|
+
- Analyze logical separation boundaries (functions, classes, concerns)
|
|
67
|
+
- Use kebab-case naming with long descriptive names, it's fine if the file name is long because this ensures file names are self-documenting for LLM tools (Grep, Glob, Search)
|
|
68
|
+
- Write descriptive code comments
|
|
69
|
+
- After modularization, continue with main task
|
|
70
|
+
- When not to modularize: Markdown files, plain text files, bash scripts, configuration files, environment variables files, etc.
|
|
71
|
+
|
|
72
|
+
## Documentation Management
|
|
73
|
+
|
|
74
|
+
We keep all important docs in `./docs` folder and keep updating them, structure like below:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
./docs
|
|
78
|
+
├── project-overview-pdr.md
|
|
79
|
+
├── code-standards.md
|
|
80
|
+
├── codebase-summary.md
|
|
81
|
+
├── design-guidelines.md
|
|
82
|
+
├── deployment-guide.md
|
|
83
|
+
├── system-architecture.md
|
|
84
|
+
└── project-roadmap.md
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**IMPORTANT:** *MUST READ* and *MUST COMPLY* all *INSTRUCTIONS* in project `./CLAUDE.md`, especially *WORKFLOWS* section is *CRITICALLY IMPORTANT*, this rule is *MANDATORY. NON-NEGOTIABLE. NO EXCEPTIONS. MUST REMEMBER AT ALL TIMES!!!*
|