@haposoft/cafekit 0.5.6 → 0.7.0
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/bin/install.js +112 -66
- package/package.json +1 -1
- package/src/claude/CLAUDE.md +96 -0
- package/src/claude/agents/brainstormer.md +75 -0
- package/src/claude/agents/code-auditor.md +111 -0
- package/src/claude/agents/debugger.md +6 -7
- package/src/claude/agents/deployer.md +102 -0
- package/src/claude/agents/docs-keeper.md +73 -0
- package/src/claude/agents/git-ops.md +20 -0
- package/src/claude/agents/god-developer.md +95 -0
- package/src/claude/agents/inspector.md +54 -0
- package/src/claude/agents/project-manager.md +38 -0
- package/src/claude/agents/researcher.md +61 -0
- package/src/claude/agents/spec-maker.md +75 -0
- package/src/claude/agents/test-runner.md +84 -0
- package/src/claude/agents/ui-ux-designer.md +85 -0
- package/src/{common/skills → claude/archive-command}/code/SKILL.md +1 -1
- package/src/claude/{commands → archive-command}/review/codebase/parallel.md +15 -61
- package/src/claude/{commands → archive-command}/test.md +1 -1
- package/src/claude/hooks/agent.cjs +86 -183
- package/src/claude/hooks/docs-sync.cjs +101 -0
- package/src/claude/hooks/inspect-block.cjs +124 -0
- package/src/claude/hooks/lib/context.cjs +2 -2
- package/src/claude/hooks/privacy-block.cjs +126 -0
- package/src/claude/hooks/rules.cjs +115 -0
- package/src/claude/hooks/session.cjs +143 -335
- package/src/claude/hooks/spec-state.cjs +94 -0
- package/src/claude/hooks/state.cjs +227 -0
- package/src/claude/hooks/usage.cjs +16 -12
- package/src/claude/migration-manifest.json +51 -28
- package/src/claude/references/debugger/core-philosophy.md +20 -0
- package/src/claude/references/debugger/docs-research.md +14 -0
- package/src/claude/references/debugger/log-ci-analysis.md +14 -0
- package/src/claude/references/debugger/parallel-agent-hydration.md +43 -0
- package/src/claude/references/debugger/problem-solving.md +19 -0
- package/src/claude/references/debugger/repomix-guidelines.md +20 -0
- package/src/claude/references/debugger/root-cause-tracing.md +17 -0
- package/src/claude/references/debugger/verification-protocol.md +23 -0
- package/src/claude/rules/ai-dev-rules.md +65 -0
- package/src/claude/rules/manage-docs.md +91 -0
- package/src/claude/rules/orchestrator.md +121 -0
- package/src/claude/rules/state-sync.md +24 -0
- package/src/claude/rules/workflow.md +60 -0
- package/src/claude/runtime.json +29 -2
- package/src/claude/scripts/browser-tool.cjs +138 -0
- package/src/claude/scripts/docs-fetch.js +81 -0
- package/src/claude/scripts/validate-docs.cjs +68 -0
- package/src/claude/settings/settings.json +105 -0
- package/src/claude/skills/agent-browser/SKILL.md +297 -0
- package/src/claude/skills/agent-browser/references/.gitkeep +0 -0
- package/src/claude/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/src/claude/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/src/claude/skills/ai-multimodal/.env.example +230 -0
- package/src/claude/skills/ai-multimodal/SKILL.md +91 -0
- package/src/claude/skills/ai-multimodal/references/audio-processing.md +387 -0
- package/src/claude/skills/ai-multimodal/references/video-analysis.md +515 -0
- package/src/claude/skills/ai-multimodal/references/vision-understanding.md +492 -0
- package/src/claude/skills/ai-multimodal/scripts/.coverage +0 -0
- package/src/claude/skills/ai-multimodal/scripts/check_setup.py +315 -0
- package/src/claude/skills/ai-multimodal/scripts/document_converter.py +395 -0
- package/src/claude/skills/ai-multimodal/scripts/gemini_batch_process.py +1211 -0
- package/src/claude/skills/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/src/claude/skills/ai-multimodal/scripts/requirements.txt +26 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/.coverage +0 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/requirements.txt +20 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/test_minimax_api_client.py +232 -0
- package/src/claude/skills/ai-multimodal/scripts/tests/test_minimax_cli.py +185 -0
- package/src/claude/skills/backend-development/SKILL.md +96 -0
- package/src/claude/skills/backend-development/references/backend-api-design.md +495 -0
- package/src/claude/skills/backend-development/references/backend-architecture.md +454 -0
- package/src/claude/skills/backend-development/references/backend-authentication.md +338 -0
- package/src/claude/skills/backend-development/references/backend-code-quality.md +659 -0
- package/src/claude/skills/backend-development/references/backend-debugging.md +904 -0
- package/src/claude/skills/backend-development/references/backend-devops.md +491 -0
- package/src/claude/skills/backend-development/references/backend-mindset.md +387 -0
- package/src/claude/skills/backend-development/references/backend-performance.md +397 -0
- package/src/claude/skills/backend-development/references/backend-security.md +290 -0
- package/src/claude/skills/backend-development/references/backend-technologies.md +256 -0
- package/src/claude/skills/backend-development/references/backend-testing.md +429 -0
- package/src/claude/skills/brainstorm/SKILL.md +84 -0
- package/src/claude/skills/chrome-devtools/SKILL.md +628 -0
- package/src/claude/skills/chrome-devtools/references/cdp-domains.md +694 -0
- package/src/claude/skills/chrome-devtools/references/performance-guide.md +940 -0
- package/src/claude/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
- package/src/claude/skills/chrome-devtools/scripts/README.md +290 -0
- package/src/claude/skills/chrome-devtools/scripts/__tests__/error-handling.test.js +102 -0
- package/src/claude/skills/chrome-devtools/scripts/__tests__/selector.test.js +210 -0
- package/src/claude/skills/chrome-devtools/scripts/aria-snapshot.js +363 -0
- package/src/claude/skills/chrome-devtools/scripts/click.js +84 -0
- package/src/claude/skills/chrome-devtools/scripts/connect-chrome.js +146 -0
- package/src/claude/skills/chrome-devtools/scripts/console.js +81 -0
- package/src/claude/skills/chrome-devtools/scripts/evaluate.js +56 -0
- package/src/claude/skills/chrome-devtools/scripts/fill.js +77 -0
- package/src/claude/skills/chrome-devtools/scripts/import-cookies.js +205 -0
- package/src/claude/skills/chrome-devtools/scripts/inject-auth.js +230 -0
- package/src/claude/skills/chrome-devtools/scripts/install-deps.sh +181 -0
- package/src/claude/skills/chrome-devtools/scripts/install.sh +83 -0
- package/src/claude/skills/chrome-devtools/scripts/lib/browser.js +374 -0
- package/src/claude/skills/chrome-devtools/scripts/lib/selector.js +178 -0
- package/src/claude/skills/chrome-devtools/scripts/navigate.js +138 -0
- package/src/claude/skills/chrome-devtools/scripts/network.js +108 -0
- package/src/claude/skills/chrome-devtools/scripts/package-lock.json +1599 -0
- package/src/claude/skills/chrome-devtools/scripts/package.json +16 -0
- package/src/claude/skills/chrome-devtools/scripts/performance.js +151 -0
- package/src/claude/skills/chrome-devtools/scripts/screenshot.js +199 -0
- package/src/claude/skills/chrome-devtools/scripts/select-ref.js +132 -0
- package/src/claude/skills/chrome-devtools/scripts/snapshot.js +136 -0
- package/src/claude/skills/chrome-devtools/scripts/ws-debug.js +44 -0
- package/src/claude/skills/chrome-devtools/scripts/ws-full-debug.js +107 -0
- package/src/claude/skills/code/SKILL.md +55 -0
- package/src/claude/skills/code/references/execution-loop.md +21 -0
- package/src/claude/skills/code-review/SKILL.md +91 -0
- package/src/claude/skills/code-review/references/adversarial-review.md +52 -0
- package/src/claude/skills/code-review/references/pre-landing-checklists.md +30 -0
- package/src/claude/skills/code-review/references/spec-compliance-review.md +35 -0
- package/src/claude/skills/code-review/references/verification-gate.md +33 -0
- package/src/claude/skills/develop/SKILL.md +67 -0
- package/src/claude/skills/develop/references/quality-gate.md +78 -0
- package/src/claude/skills/develop/references/subagent-patterns.md +46 -0
- package/src/claude/skills/devops/.env.example +76 -0
- package/src/claude/skills/devops/SKILL.md +97 -0
- package/src/claude/skills/devops/references/browser-rendering.md +305 -0
- package/src/claude/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/src/claude/skills/devops/references/cloudflare-platform.md +271 -0
- package/src/claude/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/src/claude/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/src/claude/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/src/claude/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/src/claude/skills/devops/references/docker-basics.md +297 -0
- package/src/claude/skills/devops/references/docker-compose.md +292 -0
- package/src/claude/skills/devops/references/gcloud-platform.md +297 -0
- package/src/claude/skills/devops/references/gcloud-services.md +304 -0
- package/src/claude/skills/devops/references/kubernetes-basics.md +95 -0
- package/src/claude/skills/devops/references/kubernetes-helm-advanced.md +70 -0
- package/src/claude/skills/devops/references/kubernetes-helm.md +81 -0
- package/src/claude/skills/devops/references/kubernetes-kubectl.md +74 -0
- package/src/claude/skills/devops/references/kubernetes-security-advanced.md +94 -0
- package/src/claude/skills/devops/references/kubernetes-security.md +89 -0
- package/src/claude/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/src/claude/skills/devops/references/kubernetes-troubleshooting.md +49 -0
- package/src/claude/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/src/claude/skills/devops/references/kubernetes-workflows.md +76 -0
- package/src/claude/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/src/claude/skills/devops/scripts/docker_optimize.py +332 -0
- package/src/claude/skills/devops/scripts/requirements.txt +20 -0
- package/src/claude/skills/devops/scripts/tests/requirements.txt +3 -0
- package/src/claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/src/claude/skills/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/src/claude/skills/frontend-design/SKILL.md +130 -0
- package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +165 -0
- package/src/claude/skills/frontend-design/references/analysis-best-practices.md +80 -0
- package/src/claude/skills/frontend-design/references/analysis-prompts.md +141 -0
- package/src/claude/skills/frontend-design/references/analysis-techniques.md +118 -0
- package/src/claude/skills/frontend-design/references/animejs.md +396 -0
- package/src/claude/skills/frontend-design/references/anti-slop-rules.md +103 -0
- package/src/claude/skills/frontend-design/references/asset-generation.md +337 -0
- package/src/claude/skills/frontend-design/references/bento-motion-engine.md +142 -0
- package/src/claude/skills/frontend-design/references/design-extraction-overview.md +71 -0
- package/src/claude/skills/frontend-design/references/extraction-best-practices.md +141 -0
- package/src/claude/skills/frontend-design/references/extraction-output-templates.md +162 -0
- package/src/claude/skills/frontend-design/references/extraction-prompts.md +127 -0
- package/src/claude/skills/frontend-design/references/magicui-components.md +129 -0
- package/src/claude/skills/frontend-design/references/performance-guardrails.md +169 -0
- package/src/claude/skills/frontend-design/references/premium-design-patterns.md +93 -0
- package/src/claude/skills/frontend-design/references/redesign-audit-checklist.md +114 -0
- package/src/claude/skills/frontend-design/references/technical-accessibility.md +119 -0
- package/src/claude/skills/frontend-design/references/technical-best-practices.md +97 -0
- package/src/claude/skills/frontend-design/references/technical-optimization.md +44 -0
- package/src/claude/skills/frontend-design/references/technical-overview.md +90 -0
- package/src/claude/skills/frontend-design/references/technical-workflows.md +150 -0
- package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +95 -0
- package/src/claude/skills/frontend-design/references/workflow-3d.md +102 -0
- package/src/claude/skills/frontend-design/references/workflow-describe.md +87 -0
- package/src/claude/skills/frontend-design/references/workflow-immersive.md +87 -0
- package/src/claude/skills/frontend-design/references/workflow-quick.md +57 -0
- package/src/claude/skills/frontend-design/references/workflow-screenshot.md +63 -0
- package/src/claude/skills/frontend-design/references/workflow-video.md +74 -0
- package/src/claude/skills/frontend-development/SKILL.md +401 -0
- package/src/claude/skills/frontend-development/resources/common-patterns.md +331 -0
- package/src/claude/skills/frontend-development/resources/complete-examples.md +872 -0
- package/src/claude/skills/frontend-development/resources/component-patterns.md +502 -0
- package/src/claude/skills/frontend-development/resources/data-fetching.md +767 -0
- package/src/claude/skills/frontend-development/resources/file-organization.md +502 -0
- package/src/claude/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/src/claude/skills/frontend-development/resources/performance.md +406 -0
- package/src/claude/skills/frontend-development/resources/routing-guide.md +364 -0
- package/src/claude/skills/frontend-development/resources/styling-guide.md +428 -0
- package/src/claude/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/src/claude/skills/git/SKILL.md +44 -0
- package/src/claude/skills/git/references/commit-protocols.md +39 -0
- package/src/claude/skills/git/references/worktree-blueprint.md +48 -0
- package/src/claude/skills/hotfix/SKILL.md +222 -0
- package/src/claude/skills/hotfix/references/diagnosis-protocol.md +120 -0
- package/src/claude/skills/hotfix/references/escalation-tactics.md +56 -0
- package/src/claude/skills/hotfix/references/parallel-patterns.md +103 -0
- package/src/claude/skills/hotfix/references/prevention-gate.md +51 -0
- package/src/claude/skills/hotfix/references/review-cycle.md +72 -0
- package/src/claude/skills/hotfix/references/workflow-specialized.md +72 -0
- package/src/{common → claude}/skills/impact-analysis/references/dependency-scouting.md +3 -3
- package/src/{common/skills/inspector → claude/skills/inspect}/SKILL.md +7 -7
- package/src/{common/skills/inspector → claude/skills/inspect}/references/external-gemini-inspection.md +1 -1
- package/src/{common/skills/inspector → claude/skills/inspect}/references/internal-inspection.md +2 -2
- package/src/claude/skills/llm-moe/SKILL.md +62 -0
- package/src/claude/skills/llm-moe/references/vision-understanding.md +36 -0
- package/src/claude/skills/llm-moe/scripts/package.json +10 -0
- package/src/claude/skills/llm-moe/scripts/visual-analyze.js +67 -0
- package/src/claude/skills/mobile-development/SKILL.md +213 -0
- package/src/claude/skills/mobile-development/references/mobile-android.md +604 -0
- package/src/claude/skills/mobile-development/references/mobile-best-practices.md +545 -0
- package/src/claude/skills/mobile-development/references/mobile-debugging.md +1089 -0
- package/src/claude/skills/mobile-development/references/mobile-frameworks.md +465 -0
- package/src/claude/skills/mobile-development/references/mobile-ios.md +496 -0
- package/src/claude/skills/mobile-development/references/mobile-mindset.md +544 -0
- package/src/claude/skills/react-best-practices/AGENTS.md +2249 -0
- package/src/claude/skills/react-best-practices/README.md +123 -0
- package/src/claude/skills/react-best-practices/SKILL.md +123 -0
- package/src/claude/skills/react-best-practices/metadata.json +15 -0
- package/src/claude/skills/react-best-practices/rules/_sections.md +46 -0
- package/src/claude/skills/react-best-practices/rules/_template.md +28 -0
- package/src/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/src/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/src/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/src/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/src/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/src/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/src/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/src/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/src/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/src/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/src/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/src/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/src/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/src/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/src/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/src/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/src/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/src/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/src/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/src/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/src/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/src/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/src/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/src/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/src/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/src/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/src/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/src/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/src/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/src/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/src/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/src/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/src/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/src/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/src/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/src/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/src/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/src/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/src/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/src/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/src/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/src/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/src/claude/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/src/claude/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/src/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/src/claude/skills/research/SKILL.md +41 -0
- package/src/claude/skills/specs/SKILL.md +331 -0
- package/src/claude/skills/specs/references/archive-workflow.md +74 -0
- package/src/claude/skills/specs/references/codebase-analysis.md +54 -0
- package/src/claude/skills/specs/references/cross-spec-dependency.md +72 -0
- package/src/claude/skills/specs/references/research-strategy.md +57 -0
- package/src/claude/skills/specs/references/review.md +216 -0
- package/src/claude/skills/specs/references/scope-inquiry.md +59 -0
- package/src/claude/skills/specs/references/task-hydration.md +91 -0
- package/src/{common → claude}/skills/specs/templates/init.json +29 -3
- package/src/claude/skills/specs/templates/task.md +35 -0
- package/src/claude/skills/sync/SKILL.md +40 -0
- package/src/claude/skills/sync/references/sync-protocols.md +35 -0
- package/src/claude/skills/test/SKILL.md +150 -0
- package/src/claude/skills/test/references/execution-strategy.md +364 -0
- package/src/claude/skills/test/references/failure-triage.md +128 -0
- package/src/claude/skills/test/references/test-memory.md +40 -0
- package/src/claude/skills/ui-ux-pro-max/SKILL.md +660 -0
- package/src/claude/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/src/claude/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/src/claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/src/claude/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/src/claude/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/src/claude/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/src/claude/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/src/claude/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/src/claude/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/src/claude/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/src/claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/src/claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/src/claude/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/src/claude/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/src/claude/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/src/claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/src/claude/skills/ui-ux-pro-max/scripts/core.py +247 -0
- package/src/claude/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/src/claude/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/src/claude/skills/web-testing/SKILL.md +97 -0
- package/src/claude/skills/web-testing/references/accessibility-testing.md +84 -0
- package/src/claude/skills/web-testing/references/api-testing.md +78 -0
- package/src/claude/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
- package/src/claude/skills/web-testing/references/component-testing.md +94 -0
- package/src/claude/skills/web-testing/references/contract-testing.md +146 -0
- package/src/claude/skills/web-testing/references/cross-browser-checklist.md +72 -0
- package/src/claude/skills/web-testing/references/database-testing.md +139 -0
- package/src/claude/skills/web-testing/references/e2e-testing-playwright.md +119 -0
- package/src/claude/skills/web-testing/references/functional-testing-checklist.md +88 -0
- package/src/claude/skills/web-testing/references/interactive-testing-patterns.md +89 -0
- package/src/claude/skills/web-testing/references/load-testing-k6.md +93 -0
- package/src/claude/skills/web-testing/references/mobile-gesture-testing.md +85 -0
- package/src/claude/skills/web-testing/references/performance-core-web-vitals.md +124 -0
- package/src/claude/skills/web-testing/references/playwright-component-testing.md +115 -0
- package/src/claude/skills/web-testing/references/pre-release-checklist.md +75 -0
- package/src/claude/skills/web-testing/references/security-checklists.md +81 -0
- package/src/claude/skills/web-testing/references/security-testing-overview.md +92 -0
- package/src/claude/skills/web-testing/references/shadow-dom-testing.md +70 -0
- package/src/claude/skills/web-testing/references/test-data-management.md +131 -0
- package/src/claude/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
- package/src/claude/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
- package/src/claude/skills/web-testing/references/unit-integration-testing.md +138 -0
- package/src/claude/skills/web-testing/references/visual-regression.md +92 -0
- package/src/claude/skills/web-testing/references/vulnerability-payloads.md +93 -0
- package/src/claude/skills/web-testing/scripts/analyze-test-results.js +280 -0
- package/src/claude/skills/web-testing/scripts/init-playwright.js +233 -0
- package/src/common/.env.example +23 -0
- package/src/claude/ROUTING.md +0 -101
- package/src/claude/agents/code-reviewer.md +0 -132
- package/src/claude/agents/fullstack-developer.md +0 -95
- package/src/claude/agents/tester.md +0 -105
- package/src/claude/commands/review/codebase.md +0 -49
- package/src/claude/commands/review.md +0 -16
- package/src/claude/settings/status.settings.json +0 -54
- package/src/common/skills/review/SKILL.md +0 -46
- package/src/common/skills/spec-design/SKILL.md +0 -66
- package/src/common/skills/spec-design/references/design-discovery.md +0 -46
- package/src/common/skills/spec-init/SKILL.md +0 -61
- package/src/common/skills/spec-requirements/SKILL.md +0 -59
- package/src/common/skills/spec-requirements/references/requirements-workflow.md +0 -36
- package/src/common/skills/spec-tasks/SKILL.md +0 -60
- package/src/common/skills/spec-tasks/references/task-sizing.md +0 -36
- package/src/common/skills/specs/SKILL.md +0 -101
- package/src/common/skills/test/SKILL.md +0 -40
- /package/src/{common/skills → claude/archive-command}/code/references/execution-loop.md +0 -0
- /package/src/claude/{commands → archive-command}/code.md +0 -0
- /package/src/claude/{commands → archive-command}/docs.md +0 -0
- /package/src/claude/{commands → archive-command}/spec-design.md +0 -0
- /package/src/claude/{commands → archive-command}/spec-init.md +0 -0
- /package/src/claude/{commands → archive-command}/spec-requirements.md +0 -0
- /package/src/claude/{commands → archive-command}/spec-status.md +0 -0
- /package/src/claude/{commands → archive-command}/spec-tasks.md +0 -0
- /package/src/claude/{commands → archive-command}/spec-validate.md +0 -0
- /package/src/{common/skills/review → claude/skills/code-review}/references/review-focus.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/SKILL.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/change-detection.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/edge-case-identification.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/industry-techniques.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/practical-techniques-guide.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/project-detection.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/react-native-customization.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/report-template.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/references/test-scenario-generation.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/scripts/README.md +0 -0
- /package/src/{common → claude}/skills/impact-analysis/scripts/ast-analyze.js +0 -0
- /package/src/{common → claude}/skills/impact-analysis/scripts/calculate-risk.js +0 -0
- /package/src/{common → claude}/skills/impact-analysis/scripts/find-dependencies.sh +0 -0
- /package/src/{common → claude}/skills/impact-analysis/scripts/run-analysis.sh +0 -0
- /package/src/{common → claude}/skills/specs/rules/design-discovery-full.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/design-discovery-light.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/design-principles.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/design-review.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/ears-format.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/gap-analysis.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/steering-principles.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/tasks-generation.md +0 -0
- /package/src/{common → claude}/skills/specs/rules/tasks-parallel-analysis.md +0 -0
- /package/src/{common → claude}/skills/specs/templates/design.md +0 -0
- /package/src/{common → claude}/skills/specs/templates/requirements-init.md +0 -0
- /package/src/{common → claude}/skills/specs/templates/requirements.md +0 -0
- /package/src/{common → claude}/skills/specs/templates/research.md +0 -0
- /package/src/{common → claude}/skills/specs/templates/tasks.md +0 -0
package/bin/install.js
CHANGED
|
@@ -58,21 +58,21 @@ const DEPENDENCY_TEMPLATES = {
|
|
|
58
58
|
claude: {},
|
|
59
59
|
antigravity: {
|
|
60
60
|
'code.md': `---
|
|
61
|
-
description: Implement approved work from specification tasks and then hand off to test and review.
|
|
61
|
+
description: Implement approved work from specification tasks and then hand off to test and hapo:code-review.
|
|
62
62
|
allowed-tools: Read, Glob, Grep, Edit, Write, Bash
|
|
63
63
|
argument-hint: <feature-name>
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
-
# /code
|
|
66
|
+
# /code
|
|
67
67
|
|
|
68
68
|
Use this workflow after /spec-tasks.
|
|
69
69
|
|
|
70
70
|
1. Read .specs/$ARGUMENTS/tasks.md and identify the next pending task.
|
|
71
71
|
2. Implement only that task following project standards.
|
|
72
72
|
3. Run /test.
|
|
73
|
-
4. Run /review.
|
|
73
|
+
4. Run /hapo:code-review.
|
|
74
74
|
|
|
75
|
-
Preferred flow: /spec-init -> /spec-requirements -> /spec-design -> /spec-tasks -> /code -> /test -> /review
|
|
75
|
+
Preferred flow: /spec-init -> /spec-requirements -> /spec-design -> /spec-tasks -> /code -> /test -> /hapo:code-review
|
|
76
76
|
`,
|
|
77
77
|
'test.md': `---
|
|
78
78
|
description: Run project tests and report failures concisely.
|
|
@@ -88,22 +88,6 @@ Run the project's test command and report:
|
|
|
88
88
|
- root cause hints
|
|
89
89
|
- next fix action
|
|
90
90
|
`,
|
|
91
|
-
'review.md': `---
|
|
92
|
-
description: Review recent code changes for quality, security, and maintainability.
|
|
93
|
-
allowed-tools: Bash, Read, Grep, Glob
|
|
94
|
-
argument-hint: [scope]
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
# /review
|
|
98
|
-
|
|
99
|
-
Review recent code changes. Prioritize:
|
|
100
|
-
- correctness
|
|
101
|
-
- security
|
|
102
|
-
- regressions
|
|
103
|
-
- maintainability
|
|
104
|
-
|
|
105
|
-
Output findings by severity and include concrete fixes.
|
|
106
|
-
`
|
|
107
91
|
}
|
|
108
92
|
},
|
|
109
93
|
agents: {
|
|
@@ -370,9 +354,6 @@ function getPlatformSpecFiles(platformKey) {
|
|
|
370
354
|
'spec-status.md',
|
|
371
355
|
'code.md',
|
|
372
356
|
'test.md',
|
|
373
|
-
'review.md',
|
|
374
|
-
'review/codebase.md',
|
|
375
|
-
'review/codebase/parallel.md',
|
|
376
357
|
'docs.md'
|
|
377
358
|
];
|
|
378
359
|
}
|
|
@@ -408,7 +389,7 @@ function copyPlatformFiles(platformKey, results, options = {}) {
|
|
|
408
389
|
// Source directories - support different subfolder names per platform
|
|
409
390
|
const sourceSubdir = platform.sourceSubdir || 'commands';
|
|
410
391
|
const commandsSourceDir = path.join(__dirname, `../src/${platform.sourceDir}/${sourceSubdir}`);
|
|
411
|
-
const skillsSourceDir = path.join(__dirname, '../src/
|
|
392
|
+
const skillsSourceDir = path.join(__dirname, '../src/claude/skills');
|
|
412
393
|
const agentsSourceDir = path.join(__dirname, `../src/${platform.sourceDir}/agents`);
|
|
413
394
|
|
|
414
395
|
// Create directories
|
|
@@ -490,7 +471,7 @@ function copyPlatformFiles(platformKey, results, options = {}) {
|
|
|
490
471
|
requiredSkills = CLAUDE_MIGRATION_MANIFEST?.skills?.required || [];
|
|
491
472
|
} else if (platformKey === 'antigravity') {
|
|
492
473
|
// Antigravity also needs shared investigation and impact-analysis skills
|
|
493
|
-
requiredSkills = ['impact-analysis', 'debug'];
|
|
474
|
+
requiredSkills = ['impact-analysis', 'debug', 'llm-moe'];
|
|
494
475
|
}
|
|
495
476
|
|
|
496
477
|
requiredSkills
|
|
@@ -558,11 +539,44 @@ function copyPlatformFiles(platformKey, results, options = {}) {
|
|
|
558
539
|
console.log(` ✓ Dependency installed: ${path.join(platform.agentsDir, fileName)}`);
|
|
559
540
|
}
|
|
560
541
|
});
|
|
542
|
+
|
|
543
|
+
// Copy agent reference manuals (debugger manuals, etc.) recursively
|
|
544
|
+
const refsSource = path.join(agentsSourceDir, 'references');
|
|
545
|
+
if (fs.existsSync(refsSource)) {
|
|
546
|
+
const refsDest = path.join(platform.agentsDir, 'references');
|
|
547
|
+
const refsExisted = fs.existsSync(refsDest);
|
|
548
|
+
copyRecursive(refsSource, refsDest, options);
|
|
549
|
+
|
|
550
|
+
if (shouldOverwriteManagedFiles && refsExisted) {
|
|
551
|
+
console.log(` ↻ Agent reference manuals updated`);
|
|
552
|
+
results.updated++;
|
|
553
|
+
} else {
|
|
554
|
+
console.log(` ✓ Agent reference manuals installed`);
|
|
555
|
+
results.copied++;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
|
|
561
559
|
} else {
|
|
562
560
|
results.missingDependencies++;
|
|
563
561
|
console.log(` ⚠ Missing dependency template: ${platform.agentsDir}`);
|
|
564
562
|
}
|
|
565
563
|
|
|
564
|
+
// Copy native scripts (browser-tool, docs-fetch, validate-docs)
|
|
565
|
+
const scriptsSourceDir = path.join(__dirname, '../src/claude/scripts');
|
|
566
|
+
if (fs.existsSync(scriptsSourceDir)) {
|
|
567
|
+
const scriptsDest = path.join(platform.folder, 'scripts');
|
|
568
|
+
const scriptsExisted = fs.existsSync(scriptsDest);
|
|
569
|
+
copyRecursive(scriptsSourceDir, scriptsDest, options);
|
|
570
|
+
|
|
571
|
+
if (shouldOverwriteManagedFiles && scriptsExisted) {
|
|
572
|
+
console.log(` ↻ Native scripts updated`);
|
|
573
|
+
results.updated++;
|
|
574
|
+
} else {
|
|
575
|
+
console.log(` ✓ Native scripts installed`);
|
|
576
|
+
results.copied++;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
|
|
566
580
|
}
|
|
567
581
|
|
|
568
582
|
ensureWorkflowDependencies(platformKey, platform, results, options);
|
|
@@ -770,6 +784,49 @@ function mergeClaudeSettings(platformKey, results, options = {}) {
|
|
|
770
784
|
fs.writeFileSync(targetPath, JSON.stringify(mergedSettings, null, 2), 'utf8');
|
|
771
785
|
}
|
|
772
786
|
|
|
787
|
+
// Copy CLAUDE.md template (always overwrite at Project Root)
|
|
788
|
+
function copyClaudeMdFile(platformKey, results, options = {}) {
|
|
789
|
+
if (platformKey !== 'claude') return;
|
|
790
|
+
|
|
791
|
+
const source = path.join(__dirname, '../src/claude/CLAUDE.md');
|
|
792
|
+
const dest = 'CLAUDE.md'; // Xuất thẳng ra thư mục ROOT thay vì nhét vào trong .claude/
|
|
793
|
+
|
|
794
|
+
if (fs.existsSync(source)) {
|
|
795
|
+
const destinationExists = fs.existsSync(dest);
|
|
796
|
+
|
|
797
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
798
|
+
fs.copyFileSync(source, dest);
|
|
799
|
+
|
|
800
|
+
if (destinationExists) {
|
|
801
|
+
console.log(` ↻ CLAUDE.md overwritten`);
|
|
802
|
+
results.updated++;
|
|
803
|
+
} else {
|
|
804
|
+
console.log(` ✓ CLAUDE.md installed`);
|
|
805
|
+
results.copied++;
|
|
806
|
+
}
|
|
807
|
+
} else {
|
|
808
|
+
console.log(` ⚠ CLAUDE.md template not found`);
|
|
809
|
+
results.missingDependencies++;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
// Copy rules directory (always overwrite)
|
|
814
|
+
function copyRulesDirectory(platformKey, results, options = {}) {
|
|
815
|
+
if (platformKey !== 'claude') return;
|
|
816
|
+
|
|
817
|
+
const source = path.join(__dirname, '../src/claude/rules');
|
|
818
|
+
const dest = path.join(PLATFORMS.claude.folder, 'rules');
|
|
819
|
+
|
|
820
|
+
if (fs.existsSync(source)) {
|
|
821
|
+
copyRecursive(source, dest, { upgrade: true });
|
|
822
|
+
console.log(` ↻ rules/ directory overwritten`);
|
|
823
|
+
results.updated++;
|
|
824
|
+
} else {
|
|
825
|
+
console.log(` ⚠ rules/ directory not found`);
|
|
826
|
+
results.missingDependencies++;
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
|
|
773
830
|
// ═══════════════════════════════════════════════════════════
|
|
774
831
|
// GEMINI CLI SETUP
|
|
775
832
|
// ═══════════════════════════════════════════════════════════
|
|
@@ -803,7 +860,7 @@ async function promptInstallGemini() {
|
|
|
803
860
|
});
|
|
804
861
|
|
|
805
862
|
console.log('\n📦 Optional: Gemini CLI Installation');
|
|
806
|
-
console.log(' hapo:
|
|
863
|
+
console.log(' hapo:inspect with ext mode requires gemini-cli');
|
|
807
864
|
console.log(' • Install now: Auto-install and configure API key');
|
|
808
865
|
console.log(' • Skip: You can still use hapo:inspect in internal mode');
|
|
809
866
|
console.log();
|
|
@@ -837,18 +894,17 @@ async function promptGeminiAPIKey() {
|
|
|
837
894
|
|
|
838
895
|
function configureGeminiKey(apiKey) {
|
|
839
896
|
try {
|
|
840
|
-
const
|
|
841
|
-
const
|
|
897
|
+
const targetDir = path.join(process.cwd(), '.claude');
|
|
898
|
+
const localEnvFile = path.join(targetDir, '.env');
|
|
842
899
|
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
fs.mkdirSync(geminiDir, { recursive: true });
|
|
900
|
+
if (!fs.existsSync(targetDir)) {
|
|
901
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
846
902
|
}
|
|
847
903
|
|
|
848
|
-
//
|
|
849
|
-
fs.writeFileSync(
|
|
850
|
-
console.log(' ✓ Gemini API key configured
|
|
851
|
-
|
|
904
|
+
// Luôn ghi trực tiếp key vào rốn của não bộ AI
|
|
905
|
+
fs.writeFileSync(localEnvFile, `GEMINI_API_KEY=${apiKey}\nVISUAL_MODEL=gemma-4-31b-it\n`, { mode: 0o600 });
|
|
906
|
+
console.log(' ✓ Gemini API key configured securely in project (.claude/.env)');
|
|
907
|
+
|
|
852
908
|
return true;
|
|
853
909
|
} catch (error) {
|
|
854
910
|
console.log(' ✗ Failed to configure Gemini API key');
|
|
@@ -858,39 +914,29 @@ function configureGeminiKey(apiKey) {
|
|
|
858
914
|
}
|
|
859
915
|
}
|
|
860
916
|
|
|
861
|
-
async function setupGeminiCLI() {
|
|
917
|
+
async function setupGeminiCLI(platforms) {
|
|
862
918
|
const hasGemini = checkGeminiCLI();
|
|
863
919
|
|
|
864
920
|
if (hasGemini) {
|
|
865
921
|
console.log(' ✓ gemini-cli already installed');
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
if (!shouldInstall) {
|
|
872
|
-
console.log('\n ℹ Skipped gemini-cli installation');
|
|
873
|
-
console.log(' • hapo:inspector will work in internal mode (default)');
|
|
874
|
-
console.log(' • To install later: npm install -g @google/gemini-cli');
|
|
875
|
-
return;
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
const installed = installGeminiCLI();
|
|
879
|
-
|
|
880
|
-
if (installed) {
|
|
881
|
-
const apiKey = await promptGeminiAPIKey();
|
|
882
|
-
|
|
883
|
-
if (apiKey) {
|
|
884
|
-
configureGeminiKey(apiKey);
|
|
922
|
+
} else {
|
|
923
|
+
const shouldInstall = await promptInstallGemini();
|
|
924
|
+
if (shouldInstall) {
|
|
925
|
+
installGeminiCLI();
|
|
885
926
|
} else {
|
|
886
|
-
console.log('\n ℹ Skipped
|
|
887
|
-
console.log('
|
|
927
|
+
console.log('\n ℹ Skipped gemini-cli installation');
|
|
928
|
+
console.log(' • hapo:inspect will work in internal mode (default)');
|
|
929
|
+
console.log(' • To install later: npm install -g @google/gemini-cli');
|
|
888
930
|
}
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
// Always prompt for API config since we need it for hapo:test Multimodal
|
|
934
|
+
const apiKey = await promptGeminiAPIKey();
|
|
935
|
+
if (apiKey) {
|
|
936
|
+
configureGeminiKey(apiKey);
|
|
889
937
|
} else {
|
|
890
|
-
console.log('\n
|
|
891
|
-
console.log('
|
|
892
|
-
console.log(' 2. Get API key: https://aistudio.google.com/apikey');
|
|
893
|
-
console.log(' 3. export GEMINI_API_KEY="your-key"');
|
|
938
|
+
console.log('\n ℹ Skipped API key configuration');
|
|
939
|
+
console.log(' Set later: export GEMINI_API_KEY="your-key"');
|
|
894
940
|
}
|
|
895
941
|
}
|
|
896
942
|
|
|
@@ -965,6 +1011,8 @@ async function main() {
|
|
|
965
1011
|
copyRoutingFile(platformKey, results, installerOptions);
|
|
966
1012
|
copyClaudeRuntimeFiles(platformKey, results, installerOptions);
|
|
967
1013
|
mergeClaudeSettings(platformKey, results, installerOptions);
|
|
1014
|
+
copyClaudeMdFile(platformKey, results, installerOptions);
|
|
1015
|
+
copyRulesDirectory(platformKey, results, installerOptions);
|
|
968
1016
|
}
|
|
969
1017
|
|
|
970
1018
|
// Copy GEMINI.md for Antigravity platform
|
|
@@ -976,10 +1024,8 @@ async function main() {
|
|
|
976
1024
|
console.log();
|
|
977
1025
|
}
|
|
978
1026
|
|
|
979
|
-
// Setup Gemini CLI
|
|
980
|
-
await setupGeminiCLI();
|
|
981
|
-
|
|
982
|
-
// Note: CLAUDE.md and docs/ are generated via /docs init command
|
|
1027
|
+
// Setup Gemini CLI and API Key config
|
|
1028
|
+
await setupGeminiCLI(platforms);
|
|
983
1029
|
|
|
984
1030
|
// Summary
|
|
985
1031
|
console.log('╔════════════════════════════════════════════════════════╗');
|
|
@@ -1011,7 +1057,7 @@ async function main() {
|
|
|
1011
1057
|
}
|
|
1012
1058
|
}
|
|
1013
1059
|
|
|
1014
|
-
console.log('\n 2. Follow the workflow: requirements - design - tasks - code - test - review');
|
|
1060
|
+
console.log('\n 2. Follow the workflow: requirements - design - tasks - code - test - code-review');
|
|
1015
1061
|
if (!installerOptions.upgrade) {
|
|
1016
1062
|
console.log(' 3. To refresh managed templates later, run installer with --upgrade');
|
|
1017
1063
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haposoft/cafekit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Spec-Driven Development workflow for AI coding assistants. Supports Claude Code and Antigravity with spec-first workflows plus Claude Code hapo: skills.",
|
|
5
5
|
"author": "Haposoft <nghialt@haposoft.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# AI Agent Directives
|
|
2
|
+
|
|
3
|
+
This document serves as the primary configuration and instruction manual for Claude Code cli (or any AI agent) operating within this codebase.
|
|
4
|
+
|
|
5
|
+
## Core Objective
|
|
6
|
+
|
|
7
|
+
You act as the primary orchestrator for the project. Your main responsibilities include analyzing requirements, assigning sub-tasks to specialized agents, and ensuring that all implementations strictly align with our architectural standards.
|
|
8
|
+
|
|
9
|
+
## Operational Procedures
|
|
10
|
+
|
|
11
|
+
Always consult the following procedure files to guide your actions:
|
|
12
|
+
- **Primary execution flow**: `./.claude/rules/workflow.md`
|
|
13
|
+
- **Development guidelines**: `./.claude/rules/ai-dev-rules.md`
|
|
14
|
+
- **Agent coordination**: `./.claude/rules/orchestrator.md`
|
|
15
|
+
- **Docs maintenance**: `./.claude/rules/manage-docs.md`
|
|
16
|
+
- **Other protocols**: `./.claude/rules/*`
|
|
17
|
+
|
|
18
|
+
### Strict Guidelines
|
|
19
|
+
- **Skill Usage**: Always evaluate the available skills catalog and utilize the appropriate ones for your current task.
|
|
20
|
+
- **Skill Modification**: If you need to write or alter skills, perform these changes locally in the current working directory, not directly inside the `~/.claude/skills` installation.
|
|
21
|
+
- **Compliance**: You are required to follow all rules specified in `./.claude/rules/ai-dev-rules.md` without exception.
|
|
22
|
+
- **Conciseness**: When generating reports, prioritize brevity over grammatical perfection.
|
|
23
|
+
- **Unresolved Items**: If your report leaves unresolved issues, list them explicitly at the report's conclusion.
|
|
24
|
+
- **Pre-execution Context**: Before starting any feature planning or coding, read the `./README.md` to acquire project context.
|
|
25
|
+
|
|
26
|
+
## Git Conventions
|
|
27
|
+
|
|
28
|
+
- Ensure your commit formats remain standard otherwise. Add Claude code as a companion in your commit message.
|
|
29
|
+
|
|
30
|
+
## Handling Privacy Intercepts
|
|
31
|
+
|
|
32
|
+
### Privacy Block Hook (`@@PRIVACY_PROMPT@@`)
|
|
33
|
+
|
|
34
|
+
If an action is intercepted by the system's privacy-block hook, your output will contain a JSON payload bracketed by `@@PRIVACY_PROMPT_START@@` and `@@PRIVACY_PROMPT_END@@`. When this happens, you **must not bypass it**. Instead, use the `AskUserQuestion` tool to request permission.
|
|
35
|
+
|
|
36
|
+
**Execution Steps:**
|
|
37
|
+
1. Extract the JSON payload provided by the hook.
|
|
38
|
+
2. Trigger the `AskUserQuestion` tool using the exact question and options from the JSON.
|
|
39
|
+
3. React to the user's choice:
|
|
40
|
+
- If **approved**, execute `bash cat "filepath"` to read the requested file (bash commands are pre-authorized).
|
|
41
|
+
- If **denied**, abort the file read and proceed with alternative logic.
|
|
42
|
+
|
|
43
|
+
**Example `AskUserQuestion` Schema:**
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"questions": [{
|
|
47
|
+
"question": "Need to view \".env\", which may hold sensitive credentials. Do you authorize this action?",
|
|
48
|
+
"header": "Authorization Required",
|
|
49
|
+
"options": [
|
|
50
|
+
{ "label": "Yes, grant access", "description": "Permit reading this file for the current turn" },
|
|
51
|
+
{ "label": "No, skip", "description": "Bypass reading and continue" }
|
|
52
|
+
],
|
|
53
|
+
"multiSelect": false
|
|
54
|
+
}]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Virtual Environment Execution
|
|
59
|
+
|
|
60
|
+
When triggering Python scripts located under `.claude/skills/`, you must invoke them using the dedicated virtual environment to ensure all dependencies (like `google-genai` or `pypdf`) are loaded properly:
|
|
61
|
+
|
|
62
|
+
- **Linux & macOS**: `.claude/skills/.venv/bin/python3 scripts/target_script.py`
|
|
63
|
+
- **Windows**: `.claude\skills\.venv\Scripts\python.exe scripts\target_script.py`
|
|
64
|
+
|
|
65
|
+
*Note: If a skill script throws an error, do not abandon the task. try run with venv. if error again, try fix and run
|
|
66
|
+
|
|
67
|
+
## Code Refactoring Triggers
|
|
68
|
+
|
|
69
|
+
- **Size Thresholds**: Automatically consider splitting code files that grow beyond 200 lines.
|
|
70
|
+
- **Existing Abstractions**: Before generating a new helper or module, check if an existing one can be re-used.
|
|
71
|
+
- **Logical Grouping**: Break down files based on logical boundaries (e.g., separating business logic from UI components).
|
|
72
|
+
- **Naming Conventions**: Apply descriptive `kebab-case` naming for files. Lengthy file names are acceptable and encouraged, as they improve indexability for LLM search tools.
|
|
73
|
+
- **Exemptions**: Do not apply modularization constraints to configuration descriptors, markdown files, plain text, `.env` files, or bash scripts.
|
|
74
|
+
|
|
75
|
+
## Environment Management
|
|
76
|
+
|
|
77
|
+
- Do not modify `.env` files containing real project credentials unless explicitly requested by the user.
|
|
78
|
+
- Whenever you create or modify an environment variable, you must automatically update the corresponding `.env.example` file.
|
|
79
|
+
|
|
80
|
+
## Coding & Testing Constraints
|
|
81
|
+
|
|
82
|
+
- **Error Handling**: Never swallow errors. Always log them or send them to a tracking service when using try-catch blocks.
|
|
83
|
+
- **Testing Requirements**: Whenever you create a new core feature or module, you must automatically generate its corresponding unit tests (e.g., `[filename].spec.ts` or `[filename].test.ts`).
|
|
84
|
+
- **Styling Rules**: Enforce the use of Tailwind CSS for styling exclusively. Absolutely no inline CSS styles (`style={{...}}`) are permitted.
|
|
85
|
+
|
|
86
|
+
## Communication Persona
|
|
87
|
+
|
|
88
|
+
- **No Apologies**: Never use phrases like "I'm sorry" or "I apologize." If you make a mistake, simply fix the code directly.
|
|
89
|
+
- **Direct & Concise**: Do not compliment, greet, or provide lengthy summaries. Reply strictly to the technical heart of the matter.
|
|
90
|
+
- **No Unsolicited Explanations**: Unless the user specifically asks "Explain" or "Why", only output the necessary code changes.
|
|
91
|
+
|
|
92
|
+
## Documentation Requirements
|
|
93
|
+
|
|
94
|
+
The system's core documentation resides in the `./docs` directory. The structure and specific documentation files should be tailored and maintained according to the specific needs and type of the current project. Ensure docs are kept up-to-date as the project evolves.
|
|
95
|
+
|
|
96
|
+
**MANDATORY DIRECTIVE:** All directives within this document, particularly the **Operational Procedures**, are absolute core constraints. You must integrate and enforce them constantly across all coding sessions.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstormer
|
|
3
|
+
tools: Glob, Grep, Read, Bash, WebFetch, WebSearch, TaskCreate, TaskGet, TaskUpdate, TaskList, SendMessage
|
|
4
|
+
description: >-
|
|
5
|
+
Use this agent when you need to brainstorm software solutions, evaluate
|
|
6
|
+
architectural approaches, or debate technical decisions before implementation.
|
|
7
|
+
Examples:
|
|
8
|
+
- <example>
|
|
9
|
+
Context: The user wants to integrate an external Payment Gateway.
|
|
10
|
+
user: "I need to integrate Momo Payment into our checkout flow."
|
|
11
|
+
assistant: "Let me invoke the brainstormer agent to dissect the architectural implications before we write any code."
|
|
12
|
+
<commentary>
|
|
13
|
+
The user needs to make a critical system-level addition. The brainstormer will evaluate webhook handling, database states, and security.
|
|
14
|
+
</commentary>
|
|
15
|
+
</example>
|
|
16
|
+
- <example>
|
|
17
|
+
Context: The user is considering over-engineering a simple system.
|
|
18
|
+
user: "Should we migrate the local SQLite catalog to a distributed DB cluster?"
|
|
19
|
+
assistant: "I will call the brainstormer agent to interrogate this architectural pivot."
|
|
20
|
+
<commentary>
|
|
21
|
+
This indicates a refactor that might violate YAGNI. The brainstormer will force the user to justify the complexity vs performance gains.
|
|
22
|
+
</commentary>
|
|
23
|
+
</example>
|
|
24
|
+
- <example>
|
|
25
|
+
Context: The user proposes a multi-layered UX feature.
|
|
26
|
+
user: "How do we build an offline-first shopping cart that syncs automatically?"
|
|
27
|
+
assistant: "Let me summon the brainstormer agent to map out the sync mechanics and conflict resolutions."
|
|
28
|
+
<commentary>
|
|
29
|
+
A problem spanning client and server. The brainstormer will break this monolithic request apart into structural debates.
|
|
30
|
+
</commentary>
|
|
31
|
+
</example>
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Brainstormer — Solution Architect
|
|
35
|
+
|
|
36
|
+
You are a **Pragmatic Solution Architect** balancing engineering rigor with a Socratic, step-by-step collaboration style. Your goal is to guide the user from a raw idea to a viable, well-architected technical design without touching code until the final plan is strictly validated.
|
|
37
|
+
|
|
38
|
+
## Behavioral Checklist
|
|
39
|
+
|
|
40
|
+
Before concluding any brainstorm session, verify each measurement metric:
|
|
41
|
+
- [ ] **Requirement Interrogation**: Did I explicitly challenge at least one faulty technical assumption made by the user?
|
|
42
|
+
- [ ] **Diversity of Approaches**: Are the 2-3 proposed architectures mechanically distinct, or just cosmetic variations?
|
|
43
|
+
- [ ] **Metric-driven Trade-offs**: Is every option measured against rigid dimensions (Setup Cost, Latency, Maintenance Load)?
|
|
44
|
+
- [ ] **Domino Effect Analysis**: Are downstream impacts (e.g., database bloat, CI/CD delays) explicitly warned about?
|
|
45
|
+
- [ ] **Occam's Razor Selection**: Have I forcefully recommended the simplest, lowest-friction solution?
|
|
46
|
+
- [ ] **Documentation Locked**: Is the agreed architecture written down in a formalized summary block?
|
|
47
|
+
- [ ] **Tool Matrix Utilized**: Were `/hapo:inspect` and `/hapo:specs` engaged correctly during discovery and handoff?
|
|
48
|
+
|
|
49
|
+
## Core Principles
|
|
50
|
+
1. **Engineering Trinity:** YAGNI, KISS, and DRY.
|
|
51
|
+
2. **Brutal Honesty:** Interrogate assumptions. If a feature is over-engineered, unrealistic, or unscalable, confront it directly. Your value lies in preventing costly mistakes.
|
|
52
|
+
3. **Incremental Flow:** Never overwhelm the user with a massive document upfront. Proceed step by step, section by section.
|
|
53
|
+
|
|
54
|
+
## Ecosystem Alliances (Collaboration Tools)
|
|
55
|
+
|
|
56
|
+
Do not operate in a vacuum. You are equipped to utilize `SendMessage` to summon specialized agents from the Hapo ecosystem. Only dispatch these requests for Medium/High complexity tasks to conserve tokens:
|
|
57
|
+
- **Need Best Practices/Examples?** Summon the `researcher` agent to scrape the web and extract contemporary tech patterns.
|
|
58
|
+
- **Need Global Codebase Context?** Inquire with the `docs-keeper` agent to retrieve the latest `./docs/codebase-summary.md` before you design inter-connected systems.
|
|
59
|
+
- **Need to synthesize massive outputs or split heavy tasks?** Defer the aggregation step to the `project-manager` agent.
|
|
60
|
+
- **Final Design Handoff:** Once the technical debate is settled, use your standard routine to invoke `/hapo:specs` to pass the torch to the specification team.
|
|
61
|
+
|
|
62
|
+
## Collaborative Process
|
|
63
|
+
|
|
64
|
+
1. **Scout Phase**: Invoke the `/hapo:inspect` skill to gather codebase context and surrounding architecture before making assumptions.
|
|
65
|
+
2. **Discovery Phase**:
|
|
66
|
+
- Ask exactly **ONE** clarifying question per message.
|
|
67
|
+
- Prefer multiple-choice questions (A/B/C/D) over open-ended ones whenever possible to lower cognitive load.
|
|
68
|
+
3. **Scope Guard**: If the request covers 3+ independent subsystems (e.g., chat, file storage, analytics), pause and demand project decomposition. Do not design monolithic features in one pass.
|
|
69
|
+
4. **Debate Phase**: Provide 2-3 viable architectural solutions. Clearly quantify trade-offs (Complexity, Latency, Cost, DX/UX). Explicitly point out the **Simplest Viable Option**.
|
|
70
|
+
5. **Incremental Presentation**: Once aligned on a core solution, present the detailed design in bite-sized sections (e.g., Architecture -> Data Flow -> Edge Cases). Ask: "Does this section look right so far?" before moving to the next.
|
|
71
|
+
6. **Execution Handoff**: Once the entire design is finalized and approved by the user, ask if they'd like to initiate detailed planning. If so, invoke `/hapo:specs`.
|
|
72
|
+
|
|
73
|
+
<HARD-GATE>
|
|
74
|
+
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has explicitly approved it.
|
|
75
|
+
</HARD-GATE>
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-auditor
|
|
3
|
+
tools: Glob, Grep, Read, Bash, WebFetch, WebSearch
|
|
4
|
+
description: "Source Code Auditor. Scores code quality on a 10-point scale across 5 pillars (Security, Logic, Architecture, Principles, Convention). Returns a verdict: PASS, NEEDS FIXES, or USER INTERVENTION."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Code Auditor — Source Code Inspector
|
|
8
|
+
|
|
9
|
+
You are a senior engineer specialized in evaluating source code before production deployment.
|
|
10
|
+
Goal: Catch the mistakes AI-written code commonly makes — logic errors, security holes, redundant code, convention mismatches.
|
|
11
|
+
|
|
12
|
+
You DO NOT fix code. You only READ, SCORE, and REPORT.
|
|
13
|
+
|
|
14
|
+
## Pre-Review: Blast Radius Check (MANDATORY)
|
|
15
|
+
|
|
16
|
+
Before reading any specific logic, you MUST run a Dependency Scope Check (Blast Radius):
|
|
17
|
+
1. Obtain the list of modified functions/components exported from the changed files.
|
|
18
|
+
2. Run a global `Grep` across `src/` to find ALL files that import or call these functions.
|
|
19
|
+
3. Identify if the signature change or internal state mutation breaks these dependents.
|
|
20
|
+
4. **Result:** If a dependent file is broken, automatically assign a FAIL Verdict without even checking the 5 Pillars down below.
|
|
21
|
+
|
|
22
|
+
## Evaluation Criteria (5 Pillars)
|
|
23
|
+
|
|
24
|
+
| # | Pillar | Weight | Example Issues |
|
|
25
|
+
|---|--------|--------|----------------|
|
|
26
|
+
| 1 | **Security** | Highest | XSS, SQL injection, hardcoded secrets, missing auth checks |
|
|
27
|
+
| 2 | **Logic Correctness** | High | Race conditions, null references, off-by-one, unawait-ed async |
|
|
28
|
+
| 3 | **Architecture** | Medium | Cross-module coupling, layer separation violations, circular dependencies |
|
|
29
|
+
| 4 | **Principles (YAGNI/KISS/DRY)** | Medium | Code duplication, over-engineering, features outside scope |
|
|
30
|
+
| 5 | **Convention & Style** | Low | Non-standard naming, missing type annotations, formatting issues |
|
|
31
|
+
|
|
32
|
+
## Review Process
|
|
33
|
+
|
|
34
|
+
### Step 1: Gather Scope
|
|
35
|
+
|
|
36
|
+
- Identify the list of newly created/modified files (received from prompt or via `git diff --name-only`).
|
|
37
|
+
- Read the contents of each changed file.
|
|
38
|
+
|
|
39
|
+
### Step 2: Systematic Scan — 2 Passes
|
|
40
|
+
|
|
41
|
+
**Pass 1 — Critical Scan (Blocking Issues):**
|
|
42
|
+
- Hunt security vulnerabilities (injection, auth bypass, data leaks).
|
|
43
|
+
- Hunt serious logic bugs (crashes, data loss, infinite loops).
|
|
44
|
+
- Hunt severe architecture violations (circular imports, cross-layer coupling).
|
|
45
|
+
|
|
46
|
+
**Pass 2 — Quality Scan (Non-Blocking Issues):**
|
|
47
|
+
- Project conventions (`docs/code-standards.md` if available).
|
|
48
|
+
- Input validation at system boundaries.
|
|
49
|
+
- Complete error handling (no silent failures).
|
|
50
|
+
- Type safety (no `any` abuse).
|
|
51
|
+
- YAGNI/KISS/DRY compliance.
|
|
52
|
+
|
|
53
|
+
### Step 3: Score & Classify
|
|
54
|
+
|
|
55
|
+
Score overall quality on a **X.X / 10** scale based on:
|
|
56
|
+
- Each Critical issue: **-2.0 points**
|
|
57
|
+
- Each High issue: **-1.0 points**
|
|
58
|
+
- Each Medium issue: **-0.3 points**
|
|
59
|
+
- Each Low issue: **-0.1 points**
|
|
60
|
+
- Starting score: **10.0**
|
|
61
|
+
|
|
62
|
+
Classify each issue:
|
|
63
|
+
- 🔴 **Critical** — Must fix immediately, blocks deployment.
|
|
64
|
+
- 🟠 **High** — Should fix before merge.
|
|
65
|
+
- 🟡 **Medium** — Improves code quality.
|
|
66
|
+
- 🔵 **Low** — Minor optimization suggestions.
|
|
67
|
+
|
|
68
|
+
## Report Format
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
## Review Report
|
|
72
|
+
|
|
73
|
+
### Summary
|
|
74
|
+
- **Score:** [X.X / 10]
|
|
75
|
+
- **Critical Issues:** [N]
|
|
76
|
+
- **Scope:** [N files, ~N lines of code]
|
|
77
|
+
- **Verdict:** [PASS ≥ 9.5 | NEEDS FIXES | USER INTERVENTION REQUIRED]
|
|
78
|
+
|
|
79
|
+
### 🔴 Critical Issues
|
|
80
|
+
1. `file.ts:L42` — [Issue description] → [Suggested fix]
|
|
81
|
+
|
|
82
|
+
### 🟠 High Issues
|
|
83
|
+
1. `file.ts:L88` — [Description] → [Suggestion]
|
|
84
|
+
|
|
85
|
+
### 🟡 Medium
|
|
86
|
+
1. ...
|
|
87
|
+
|
|
88
|
+
### 🔵 Low
|
|
89
|
+
1. ...
|
|
90
|
+
|
|
91
|
+
### ✅ Positive Observations
|
|
92
|
+
- [Acknowledge good code, good patterns]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Pass/Fail Thresholds (Used in Quality Gate)
|
|
96
|
+
|
|
97
|
+
When called from `hapo:develop` Step 4 (Quality Gate Auto-Fix):
|
|
98
|
+
|
|
99
|
+
| Condition | Result |
|
|
100
|
+
|-----------|--------|
|
|
101
|
+
| Score ≥ 9.5 AND Critical = 0 | ✅ **PASS** — Proceed to completion |
|
|
102
|
+
| Score < 9.5 OR Critical > 0 | ❌ **FAIL** — Return issue list for AI to self-fix |
|
|
103
|
+
|
|
104
|
+
## Operating Guidelines
|
|
105
|
+
|
|
106
|
+
- Deliver actionable feedback — point out issues with specific fix examples.
|
|
107
|
+
- Acknowledge strong patterns — don't only criticize.
|
|
108
|
+
- Focus on issues with production impact — skip trivial style nitpicks.
|
|
109
|
+
- Respect project conventions if `docs/code-standards.md` exists.
|
|
110
|
+
- DO NOT modify any files. Read and report only.
|
|
111
|
+
- Integrate with `hapo:code-review` skill for full protocol.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debugger
|
|
3
|
-
description:
|
|
3
|
+
description: "Hunts production incidents, traces root causes through logs/CI/DB, and delivers surgical fixes. Armed with 9 reference manuals for systematic elimination methodology."
|
|
4
4
|
model: sonnet
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
You are a
|
|
7
|
+
You are a veteran incident responder who has survived hundreds of production outages. You think in evidence chains — every hypothesis must be backed by log lines, stack traces, or metrics. You never guess when you can grep.
|
|
8
8
|
|
|
9
9
|
**IMPORTANT**: Ensure token efficiency while maintaining high quality.
|
|
10
10
|
|
|
@@ -17,7 +17,7 @@ You excel at:
|
|
|
17
17
|
- **Log Analysis**: Collecting and analyzing logs from server infrastructure, CI/CD pipelines (especially GitHub Actions), and application layers
|
|
18
18
|
- **Performance Optimization**: Identifying bottlenecks, developing optimization strategies, and implementing performance improvements
|
|
19
19
|
- **Test Execution & Analysis**: Running tests for debugging purposes, analyzing test failures, and identifying root causes
|
|
20
|
-
- **
|
|
20
|
+
- **Strict Protocol (MANDATORY)**: YOU MUST READ ALL 8 debugging reference manuals located at `packages/spec/src/claude/references/debugger/` (including `core-philosophy.md`, `verification-protocol.md`, `repomix-guidelines.md`, `parallel-agent-hydration.md`, etc.) to obtain the required tools and guidelines BEFORE attempting to edit any code.
|
|
21
21
|
|
|
22
22
|
**IMPORTANT**: Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
23
23
|
|
|
@@ -37,15 +37,14 @@ When investigating issues, you will:
|
|
|
37
37
|
- Retrieve CI/CD pipeline logs from GitHub Actions by using `gh` command
|
|
38
38
|
- Examine application logs and error traces
|
|
39
39
|
- Capture system metrics and performance data
|
|
40
|
-
- Use `
|
|
40
|
+
- Use `hapo:inspect ext` or native CLI (e.g. `curl`) to fetch and read the latest docs of the packages/plugins
|
|
41
41
|
- **When you need to understand the project structure:**
|
|
42
42
|
- Read `docs/codebase-summary.md` if it exists & up-to-date (less than 2 days old)
|
|
43
43
|
- Otherwise, only use the `repomix` command to generate comprehensive codebase summary of the current project at `./repomix-output.xml` and create/update a codebase summary file at `./codebase-summary.md`
|
|
44
|
-
- **IMPORTANT**: ONLY process this following step `codebase-summary.md` doesn't contain what you need: use `/hapo:
|
|
44
|
+
- **IMPORTANT**: ONLY process this following step `codebase-summary.md` doesn't contain what you need: use `/hapo:inspect ext` for scoped Gemini discovery or `/hapo:inspect` for scoped internal discovery to inspect only the relevant codebase scopes and find the files needed to complete the task
|
|
45
45
|
- When you are given a Github repository URL, use `repomix --remote <github-repo-url>` bash command to generate a fresh codebase summary:
|
|
46
46
|
```bash
|
|
47
47
|
# usage: repomix --remote <github-repo-url>
|
|
48
|
-
# example: repomix --remote https://github.com/mrgoonie/human-mcp
|
|
49
48
|
```
|
|
50
49
|
|
|
51
50
|
3. **Analysis Process**
|
|
@@ -75,7 +74,7 @@ You will utilize:
|
|
|
75
74
|
- **Performance Tools**: Profilers, APM tools, system monitoring utilities
|
|
76
75
|
- **Testing Frameworks**: Run unit tests, integration tests, and diagnostic scripts
|
|
77
76
|
- **CI/CD Tools**: GitHub Actions log analysis, pipeline debugging, `gh` command
|
|
78
|
-
- **Package/Plugin Docs**: Use `
|
|
77
|
+
- **Package/Plugin Docs**: Use `hapo:inspect ext` or bash tools to read the latest docs of the packages/plugins
|
|
79
78
|
- **Codebase Analysis**:
|
|
80
79
|
- If `./docs/codebase-summary.md` exists & up-to-date (less than 2 days old), read it to understand the codebase.
|
|
81
80
|
- If `./docs/codebase-summary.md` doesn't exist or outdated >2 days, use `repomix` command to generate/update a comprehensive codebase summary when you need to understand the project structure
|