@heyai-rules/pilo-masterkit 1.2.2 → 3.1.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/.agent/agents/architect.md +211 -211
- package/.agent/agents/build-error-resolver.md +114 -114
- package/.agent/agents/chief-of-staff.md +151 -151
- package/.agent/agents/code-reviewer.md +237 -237
- package/.agent/agents/cpp-build-resolver.md +90 -90
- package/.agent/agents/cpp-reviewer.md +72 -72
- package/.agent/agents/csharp-reviewer.md +101 -0
- package/.agent/agents/dart-build-resolver.md +201 -0
- package/.agent/agents/database-reviewer.md +91 -91
- package/.agent/agents/doc-updater.md +107 -107
- package/.agent/agents/docs-lookup.md +68 -68
- package/.agent/agents/e2e-runner.md +107 -107
- package/.agent/agents/flutter-reviewer.md +243 -243
- package/.agent/agents/gan-evaluator.md +209 -0
- package/.agent/agents/gan-generator.md +131 -0
- package/.agent/agents/gan-planner.md +99 -0
- package/.agent/agents/go-build-resolver.md +94 -94
- package/.agent/agents/go-reviewer.md +76 -76
- package/.agent/agents/harness-optimizer.md +35 -35
- package/.agent/agents/healthcare-reviewer.md +83 -0
- package/.agent/agents/java-build-resolver.md +153 -153
- package/.agent/agents/java-reviewer.md +92 -92
- package/.agent/agents/kotlin-build-resolver.md +118 -118
- package/.agent/agents/kotlin-reviewer.md +159 -159
- package/.agent/agents/loop-operator.md +36 -36
- package/.agent/agents/opensource-forker.md +198 -0
- package/.agent/agents/opensource-packager.md +249 -0
- package/.agent/agents/opensource-sanitizer.md +188 -0
- package/.agent/agents/performance-optimizer.md +392 -133
- package/.agent/agents/personas/athena-agent/agent.json +10 -0
- package/.agent/agents/personas/athena-agent/athena-backend-logic-architecture-profile.md +189 -0
- package/.agent/agents/personas/athena-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/athena-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/athena-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/athena-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/athena-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/athena-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/da-vinci-agent/agent.json +10 -0
- package/.agent/agents/personas/da-vinci-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/da-vinci-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/da-vinci-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/da-vinci-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/da-vinci-agent/da-vinci-frontend-ui-ux-design-profile.md +189 -0
- package/.agent/agents/personas/da-vinci-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/da-vinci-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/duong-tang-agent/agent.json +10 -0
- package/.agent/agents/personas/duong-tang-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/duong-tang-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/duong-tang-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/duong-tang-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/duong-tang-agent/tang-monk-quality-testing-documentation-profile.md +189 -0
- package/.agent/agents/personas/duong-tang-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/duong-tang-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/gia-cat-luong-agent/agent.json +10 -0
- package/.agent/agents/personas/gia-cat-luong-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/gia-cat-luong-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/gia-cat-luong-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/gia-cat-luong-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/gia-cat-luong-agent/kongming-research-strategy-analysis-profile.md +189 -0
- package/.agent/agents/personas/gia-cat-luong-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/gia-cat-luong-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/mihata-agent/agent.json +10 -0
- package/.agent/agents/personas/mihata-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/mihata-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/mihata-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/mihata-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/mihata-agent/mihata-multi-agent-orchestration-profile.md +189 -0
- package/.agent/agents/personas/mihata-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/mihata-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/tesla-agent/agent.json +10 -0
- package/.agent/agents/personas/tesla-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/tesla-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/tesla-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/tesla-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/tesla-agent/tesla-fullstack-system-optimization-profile.md +189 -0
- package/.agent/agents/personas/tesla-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/tesla-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/tu-ma-y-agent/agent.json +10 -0
- package/.agent/agents/personas/tu-ma-y-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/tu-ma-y-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/tu-ma-y-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/tu-ma-y-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/tu-ma-y-agent/simayi-feasibility-risk-control-profile.md +189 -0
- package/.agent/agents/personas/tu-ma-y-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/tu-ma-y-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/venti-agent/agent.json +10 -0
- package/.agent/agents/personas/venti-agent/context-files/agents.md +55 -0
- package/.agent/agents/personas/venti-agent/context-files/identity.md +23 -0
- package/.agent/agents/personas/venti-agent/context-files/soul.md +51 -0
- package/.agent/agents/personas/venti-agent/context-files/user-predefined.md +15 -0
- package/.agent/agents/personas/venti-agent/user-context-files/system/bootstrap.md +37 -0
- package/.agent/agents/personas/venti-agent/user-context-files/system/user.md +45 -0
- package/.agent/agents/personas/venti-agent/venti-learning-communication-mentoring-profile.md +189 -0
- package/.agent/agents/planner.md +212 -212
- package/.agent/agents/python-reviewer.md +98 -98
- package/.agent/agents/pytorch-build-resolver.md +120 -120
- package/.agent/agents/refactor-cleaner.md +85 -85
- package/.agent/agents/rust-build-resolver.md +148 -148
- package/.agent/agents/rust-reviewer.md +94 -94
- package/.agent/agents/security-reviewer.md +108 -108
- package/.agent/agents/tdd-guide.md +91 -91
- package/.agent/agents/typescript-reviewer.md +112 -112
- package/.agent/contexts/dev.md +20 -0
- package/.agent/contexts/research.md +26 -0
- package/.agent/contexts/review.md +22 -0
- package/.agent/hooks/hooks.json +395 -0
- package/.agent/hooks/readme.md +222 -0
- package/.agent/mcp-configs/mcp-servers.json +181 -0
- package/.agent/rules/common/agents.md +50 -0
- package/.agent/rules/common/code-review.md +124 -0
- package/.agent/rules/common/coding-style.md +48 -0
- package/.agent/rules/common/development-workflow.md +44 -0
- package/.agent/rules/common/git-workflow.md +24 -0
- package/.agent/rules/common/hooks.md +30 -0
- package/.agent/rules/common/patterns.md +31 -0
- package/.agent/rules/common/performance.md +55 -0
- package/.agent/rules/common/security.md +29 -0
- package/.agent/rules/common/testing.md +29 -0
- package/.agent/rules/cpp/coding-style.md +44 -0
- package/.agent/rules/cpp/hooks.md +39 -0
- package/.agent/rules/cpp/patterns.md +51 -0
- package/.agent/rules/cpp/security.md +51 -0
- package/.agent/rules/cpp/testing.md +44 -0
- package/.agent/rules/csharp/coding-style.md +72 -0
- package/.agent/rules/csharp/hooks.md +25 -0
- package/.agent/rules/csharp/patterns.md +50 -0
- package/.agent/rules/csharp/security.md +58 -0
- package/.agent/rules/csharp/testing.md +46 -0
- package/.agent/rules/dart/coding-style.md +159 -0
- package/.agent/rules/dart/hooks.md +66 -0
- package/.agent/rules/dart/patterns.md +261 -0
- package/.agent/rules/dart/security.md +135 -0
- package/.agent/rules/dart/testing.md +215 -0
- package/.agent/rules/golang/coding-style.md +32 -0
- package/.agent/rules/golang/hooks.md +17 -0
- package/.agent/rules/golang/patterns.md +45 -0
- package/.agent/rules/golang/security.md +34 -0
- package/.agent/rules/golang/testing.md +31 -0
- package/.agent/rules/java/coding-style.md +114 -0
- package/.agent/rules/java/hooks.md +18 -0
- package/.agent/rules/java/patterns.md +146 -0
- package/.agent/rules/java/security.md +100 -0
- package/.agent/rules/java/testing.md +131 -0
- package/.agent/rules/kotlin/coding-style.md +86 -0
- package/.agent/rules/kotlin/hooks.md +17 -0
- package/.agent/rules/kotlin/patterns.md +146 -0
- package/.agent/rules/kotlin/security.md +82 -0
- package/.agent/rules/kotlin/testing.md +128 -0
- package/.agent/rules/perl/coding-style.md +46 -0
- package/.agent/rules/perl/hooks.md +22 -0
- package/.agent/rules/perl/patterns.md +76 -0
- package/.agent/rules/perl/security.md +69 -0
- package/.agent/rules/perl/testing.md +54 -0
- package/.agent/rules/php/coding-style.md +40 -0
- package/.agent/rules/php/hooks.md +24 -0
- package/.agent/rules/php/patterns.md +33 -0
- package/.agent/rules/php/security.md +37 -0
- package/.agent/rules/php/testing.md +39 -0
- package/.agent/rules/python/coding-style.md +42 -0
- package/.agent/rules/python/hooks.md +19 -0
- package/.agent/rules/python/patterns.md +39 -0
- package/.agent/rules/python/security.md +30 -0
- package/.agent/rules/python/testing.md +38 -0
- package/.agent/rules/readme.md +111 -0
- package/.agent/rules/rust/coding-style.md +151 -0
- package/.agent/rules/rust/hooks.md +16 -0
- package/.agent/rules/rust/patterns.md +168 -0
- package/.agent/rules/rust/security.md +141 -0
- package/.agent/rules/rust/testing.md +154 -0
- package/.agent/rules/swift/coding-style.md +47 -0
- package/.agent/rules/swift/hooks.md +20 -0
- package/.agent/rules/swift/patterns.md +66 -0
- package/.agent/rules/swift/security.md +33 -0
- package/.agent/rules/swift/testing.md +45 -0
- package/.agent/rules/typescript/coding-style.md +199 -0
- package/.agent/rules/typescript/hooks.md +22 -0
- package/.agent/rules/typescript/patterns.md +52 -0
- package/.agent/rules/typescript/security.md +28 -0
- package/.agent/rules/typescript/testing.md +18 -0
- package/.agent/rules/web/coding-style.md +96 -0
- package/.agent/rules/web/design-quality.md +63 -0
- package/.agent/rules/web/hooks.md +120 -0
- package/.agent/rules/web/patterns.md +79 -0
- package/.agent/rules/web/performance.md +64 -0
- package/.agent/rules/web/security.md +57 -0
- package/.agent/rules/web/testing.md +55 -0
- package/.agent/rules/zh/agents.md +50 -0
- package/.agent/rules/zh/code-review.md +124 -0
- package/.agent/rules/zh/coding-style.md +48 -0
- package/.agent/rules/zh/development-workflow.md +44 -0
- package/.agent/rules/zh/git-workflow.md +24 -0
- package/.agent/rules/zh/hooks.md +30 -0
- package/.agent/rules/zh/patterns.md +31 -0
- package/.agent/rules/zh/performance.md +55 -0
- package/.agent/rules/zh/readme.md +108 -0
- package/.agent/rules/zh/security.md +29 -0
- package/.agent/rules/zh/testing.md +29 -0
- package/.agent/skills/agent-eval/SKILL.md +145 -0
- package/.agent/skills/agent-harness-construction/SKILL.md +73 -0
- package/.agent/skills/agent-payment-x402/SKILL.md +178 -0
- package/.agent/skills/agentic-engineering/SKILL.md +63 -0
- package/.agent/skills/ai-first-engineering/SKILL.md +51 -0
- package/.agent/skills/ai-regression-testing/SKILL.md +385 -0
- package/.agent/skills/android-clean-architecture/SKILL.md +339 -0
- package/.agent/skills/api-design/SKILL.md +523 -0
- package/.agent/skills/architecture-decision-records/SKILL.md +179 -0
- package/.agent/skills/article-writing/SKILL.md +79 -0
- package/.agent/skills/autonomous-agent-harness/SKILL.md +267 -0
- package/.agent/skills/autonomous-loops/SKILL.md +610 -0
- package/.agent/skills/backend-patterns/SKILL.md +598 -0
- package/.agent/skills/benchmark/SKILL.md +93 -0
- package/.agent/skills/blueprint/SKILL.md +105 -0
- package/.agent/skills/brand-voice/SKILL.md +97 -0
- package/.agent/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/.agent/skills/browser-qa/SKILL.md +87 -0
- package/.agent/skills/bun-runtime/SKILL.md +84 -0
- package/.agent/skills/canary-watch/SKILL.md +99 -0
- package/.agent/skills/carrier-relationship-management/SKILL.md +212 -0
- package/.agent/skills/ck/SKILL.md +147 -0
- package/.agent/skills/ck/commands/forget.mjs +44 -0
- package/.agent/skills/ck/commands/info.mjs +24 -0
- package/.agent/skills/ck/commands/init.mjs +143 -0
- package/.agent/skills/ck/commands/list.mjs +40 -0
- package/.agent/skills/ck/commands/migrate.mjs +202 -0
- package/.agent/skills/ck/commands/resume.mjs +36 -0
- package/.agent/skills/ck/commands/save.mjs +210 -0
- package/.agent/skills/ck/commands/shared.mjs +387 -0
- package/.agent/skills/ck/hooks/session-start.mjs +224 -0
- package/.agent/skills/claude-api/SKILL.md +337 -0
- package/.agent/skills/claude-devfleet/SKILL.md +103 -0
- package/.agent/skills/click-path-audit/SKILL.md +244 -0
- package/.agent/skills/clickhouse-io/SKILL.md +439 -0
- package/.agent/skills/codebase-onboarding/SKILL.md +233 -0
- package/.agent/skills/coding-standards/SKILL.md +530 -0
- package/.agent/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/.agent/skills/configure-ecc/SKILL.md +367 -0
- package/.agent/skills/connections-optimizer/SKILL.md +189 -0
- package/.agent/skills/content-engine/SKILL.md +131 -0
- package/.agent/skills/content-hash-cache-pattern/SKILL.md +161 -0
- package/.agent/skills/context-budget/SKILL.md +135 -0
- package/.agent/skills/continuous-agent-loop/SKILL.md +45 -0
- package/.agent/skills/continuous-learning/SKILL.md +119 -0
- package/.agent/skills/continuous-learning/config.json +18 -0
- package/.agent/skills/continuous-learning/evaluate-session.sh +69 -0
- package/.agent/skills/continuous-learning-v2/SKILL.md +365 -0
- package/.agent/skills/continuous-learning-v2/agents/observer-loop.sh +271 -0
- package/.agent/skills/continuous-learning-v2/agents/observer.md +198 -0
- package/.agent/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/.agent/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
- package/.agent/skills/continuous-learning-v2/config.json +8 -0
- package/.agent/skills/continuous-learning-v2/hooks/observe.sh +428 -0
- package/.agent/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
- package/.agent/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
- package/.agent/skills/continuous-learning-v2/scripts/test-parse-instinct.py +984 -0
- package/.agent/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/.agent/skills/cpp-coding-standards/SKILL.md +723 -0
- package/.agent/skills/cpp-testing/SKILL.md +324 -0
- package/.agent/skills/crosspost/SKILL.md +111 -0
- package/.agent/skills/csharp-testing/SKILL.md +321 -0
- package/.agent/skills/customer-billing-ops/SKILL.md +140 -0
- package/.agent/skills/customs-trade-compliance/SKILL.md +263 -0
- package/.agent/skills/dart-flutter-patterns/SKILL.md +563 -0
- package/.agent/skills/data-scraper-agent/SKILL.md +764 -0
- package/.agent/skills/database-migrations/SKILL.md +429 -0
- package/.agent/skills/deep-research/SKILL.md +155 -0
- package/.agent/skills/deployment-patterns/SKILL.md +427 -0
- package/.agent/skills/design-system/SKILL.md +82 -0
- package/.agent/skills/django-patterns/SKILL.md +734 -0
- package/.agent/skills/django-security/SKILL.md +593 -0
- package/.agent/skills/django-tdd/SKILL.md +729 -0
- package/.agent/skills/django-verification/SKILL.md +469 -0
- package/.agent/skills/dmux-workflows/SKILL.md +191 -0
- package/.agent/skills/docker-patterns/SKILL.md +364 -0
- package/.agent/skills/documentation-lookup/SKILL.md +90 -0
- package/.agent/skills/dotnet-patterns/SKILL.md +321 -0
- package/.agent/skills/e2e-testing/SKILL.md +326 -0
- package/.agent/skills/energy-procurement/SKILL.md +228 -0
- package/.agent/skills/enterprise-agent-ops/SKILL.md +50 -0
- package/.agent/skills/eval-harness/SKILL.md +270 -0
- package/.agent/skills/exa-search/SKILL.md +103 -0
- package/.agent/skills/fal-ai-media/SKILL.md +284 -0
- package/.agent/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/.agent/skills/foundation-models-on-device/SKILL.md +243 -0
- package/.agent/skills/frontend-patterns/SKILL.md +642 -0
- package/.agent/skills/frontend-slides/SKILL.md +184 -0
- package/.agent/skills/frontend-slides/style-presets.md +330 -0
- package/.agent/skills/gan-style-harness/SKILL.md +278 -0
- package/.agent/skills/git-workflow/SKILL.md +715 -0
- package/.agent/skills/golang-patterns/SKILL.md +674 -0
- package/.agent/skills/golang-testing/SKILL.md +720 -0
- package/.agent/skills/google-workspace-ops/SKILL.md +95 -0
- package/.agent/skills/healthcare-cdss-patterns/SKILL.md +245 -0
- package/.agent/skills/healthcare-emr-patterns/SKILL.md +159 -0
- package/.agent/skills/healthcare-eval-harness/SKILL.md +207 -0
- package/.agent/skills/healthcare-phi-compliance/SKILL.md +145 -0
- package/.agent/skills/hexagonal-architecture/SKILL.md +276 -0
- package/.agent/skills/inventory-demand-planning/SKILL.md +247 -0
- package/.agent/skills/investor-materials/SKILL.md +96 -0
- package/.agent/skills/investor-outreach/SKILL.md +91 -0
- package/.agent/skills/iterative-retrieval/SKILL.md +211 -0
- package/.agent/skills/java-coding-standards/SKILL.md +147 -0
- package/.agent/skills/jira-integration/SKILL.md +293 -0
- package/.agent/skills/jpa-patterns/SKILL.md +151 -0
- package/.agent/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/.agent/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/.agent/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/.agent/skills/kotlin-patterns/SKILL.md +711 -0
- package/.agent/skills/kotlin-testing/SKILL.md +824 -0
- package/.agent/skills/laravel-patterns/SKILL.md +415 -0
- package/.agent/skills/laravel-plugin-discovery/SKILL.md +229 -0
- package/.agent/skills/laravel-security/SKILL.md +285 -0
- package/.agent/skills/laravel-tdd/SKILL.md +283 -0
- package/.agent/skills/laravel-verification/SKILL.md +179 -0
- package/.agent/skills/lead-intelligence/SKILL.md +321 -0
- package/.agent/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
- package/.agent/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
- package/.agent/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
- package/.agent/skills/lead-intelligence/agents/signal-scorer.md +60 -0
- package/.agent/skills/liquid-glass-design/SKILL.md +279 -0
- package/.agent/skills/logistics-exception-management/SKILL.md +222 -0
- package/.agent/skills/manim-video/SKILL.md +89 -0
- package/.agent/skills/manim-video/assets/network-graph-scene.py +52 -0
- package/.agent/skills/market-research/SKILL.md +75 -0
- package/.agent/skills/mcp-builder/SKILL.md +173 -113
- package/.agent/skills/mcp-builder/license.txt +202 -0
- package/.agent/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.agent/skills/mcp-builder/reference/mcp-best-practices.md +249 -0
- package/.agent/skills/mcp-builder/reference/node-mcp-server.md +970 -0
- package/.agent/skills/mcp-builder/reference/python-mcp-server.md +719 -0
- package/.agent/skills/mcp-builder/scripts/connections.py +151 -0
- package/.agent/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.agent/skills/mcp-builder/scripts/example-evaluation.xml +22 -0
- package/.agent/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.agent/skills/mcp-server-patterns/SKILL.md +67 -0
- package/.agent/skills/nanoclaw-repl/SKILL.md +33 -0
- package/.agent/skills/nestjs-patterns/SKILL.md +230 -0
- package/.agent/skills/nextjs-turbopack/SKILL.md +44 -0
- package/.agent/skills/nutrient-document-processing/SKILL.md +167 -0
- package/.agent/skills/nuxt4-patterns/SKILL.md +100 -0
- package/.agent/skills/openclaw-persona-forge/SKILL.md +296 -0
- package/.agent/skills/openclaw-persona-forge/gacha.py +224 -0
- package/.agent/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/.agent/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/.agent/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/.agent/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/.agent/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/.agent/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/.agent/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/.agent/skills/opensource-pipeline/SKILL.md +255 -0
- package/.agent/skills/perl-patterns/SKILL.md +504 -0
- package/.agent/skills/perl-security/SKILL.md +503 -0
- package/.agent/skills/perl-testing/SKILL.md +475 -0
- package/.agent/skills/plankton-code-quality/SKILL.md +236 -0
- package/.agent/skills/postgres-patterns/SKILL.md +147 -0
- package/.agent/skills/product-lens/SKILL.md +85 -0
- package/.agent/skills/production-scheduling/SKILL.md +238 -0
- package/.agent/skills/project-flow-ops/SKILL.md +111 -0
- package/.agent/skills/project-guidelines-example/SKILL.md +349 -0
- package/.agent/skills/prompt-optimizer/SKILL.md +397 -0
- package/.agent/skills/python-patterns/SKILL.md +622 -313
- package/.agent/skills/python-testing/SKILL.md +816 -0
- package/.agent/skills/pytorch-patterns/SKILL.md +396 -0
- package/.agent/skills/quality-nonconformance/SKILL.md +260 -0
- package/.agent/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
- package/.agent/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/.agent/skills/remotion-video-creation/SKILL.md +43 -0
- package/.agent/skills/remotion-video-creation/rules/3d.md +86 -0
- package/.agent/skills/remotion-video-creation/rules/animations.md +29 -0
- package/.agent/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/.agent/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.agent/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/.agent/skills/remotion-video-creation/rules/assets.md +78 -0
- package/.agent/skills/remotion-video-creation/rules/audio.md +172 -0
- package/.agent/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/.agent/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/.agent/skills/remotion-video-creation/rules/charts.md +58 -0
- package/.agent/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/.agent/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/.agent/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/.agent/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/.agent/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/.agent/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/.agent/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/.agent/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/.agent/skills/remotion-video-creation/rules/images.md +130 -0
- package/.agent/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/.agent/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/.agent/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/.agent/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/.agent/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/.agent/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/.agent/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/.agent/skills/remotion-video-creation/rules/timing.md +179 -0
- package/.agent/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/.agent/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/.agent/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/.agent/skills/remotion-video-creation/rules/videos.md +171 -0
- package/.agent/skills/repo-scan/SKILL.md +78 -0
- package/.agent/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/.agent/skills/rules-distill/SKILL.md +264 -0
- package/.agent/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/.agent/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/.agent/skills/rust-patterns/SKILL.md +499 -0
- package/.agent/skills/rust-testing/SKILL.md +500 -0
- package/.agent/skills/safety-guard/SKILL.md +75 -0
- package/.agent/skills/santa-method/SKILL.md +306 -0
- package/.agent/skills/search-first/SKILL.md +161 -0
- package/.agent/skills/security-review/SKILL.md +495 -0
- package/.agent/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/.agent/skills/security-scan/SKILL.md +165 -0
- package/.agent/skills/skill-comply/SKILL.md +58 -0
- package/.agent/skills/skill-comply/fixtures/compliant-trace.jsonl +5 -0
- package/.agent/skills/skill-comply/fixtures/noncompliant-trace.jsonl +3 -0
- package/.agent/skills/skill-comply/fixtures/tdd-spec.yaml +44 -0
- package/.agent/skills/skill-comply/prompts/classifier.md +24 -0
- package/.agent/skills/skill-comply/prompts/scenario-generator.md +62 -0
- package/.agent/skills/skill-comply/prompts/spec-generator.md +42 -0
- package/.agent/skills/skill-comply/pyproject.toml +15 -0
- package/.agent/skills/skill-comply/scripts/classifier.py +85 -0
- package/.agent/skills/skill-comply/scripts/grader.py +122 -0
- package/.agent/skills/skill-comply/scripts/init.py +0 -0
- package/.agent/skills/skill-comply/scripts/parser.py +107 -0
- package/.agent/skills/skill-comply/scripts/report.py +170 -0
- package/.agent/skills/skill-comply/scripts/run.py +127 -0
- package/.agent/skills/skill-comply/scripts/runner.py +161 -0
- package/.agent/skills/skill-comply/scripts/scenario-generator.py +70 -0
- package/.agent/skills/skill-comply/scripts/spec-generator.py +72 -0
- package/.agent/skills/skill-comply/scripts/utils.py +13 -0
- package/.agent/skills/skill-comply/tests/test-grader.py +137 -0
- package/.agent/skills/skill-comply/tests/test-parser.py +90 -0
- package/.agent/skills/skill-creator/SKILL.md +485 -0
- package/.agent/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agent/skills/skill-creator/agents/comparator.md +202 -0
- package/.agent/skills/skill-creator/agents/grader.md +223 -0
- package/.agent/skills/skill-creator/assets/eval-review.html +146 -0
- package/.agent/skills/skill-creator/eval-viewer/generate-review.py +471 -0
- package/.agent/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agent/skills/skill-creator/license.txt +202 -0
- package/.agent/skills/skill-creator/references/schemas.md +430 -0
- package/.agent/skills/skill-creator/scripts/aggregate-benchmark.py +401 -0
- package/.agent/skills/skill-creator/scripts/generate-report.py +326 -0
- package/.agent/skills/skill-creator/scripts/improve-description.py +247 -0
- package/.agent/skills/skill-creator/scripts/init.py +0 -0
- package/.agent/skills/skill-creator/scripts/package-skill.py +136 -0
- package/.agent/skills/skill-creator/scripts/quick-validate.py +103 -0
- package/.agent/skills/skill-creator/scripts/run-eval.py +310 -0
- package/.agent/skills/skill-creator/scripts/run-loop.py +328 -0
- package/.agent/skills/skill-creator/scripts/utils.py +47 -0
- package/.agent/skills/skill-stocktake/SKILL.md +193 -0
- package/.agent/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/.agent/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/.agent/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/.agent/skills/social-graph-ranker/SKILL.md +154 -0
- package/.agent/skills/springboot-patterns/SKILL.md +314 -0
- package/.agent/skills/springboot-security/SKILL.md +272 -0
- package/.agent/skills/springboot-tdd/SKILL.md +158 -0
- package/.agent/skills/springboot-verification/SKILL.md +231 -0
- package/.agent/skills/strategic-compact/SKILL.md +131 -0
- package/.agent/skills/strategic-compact/suggest-compact.sh +54 -0
- package/.agent/skills/swift-actor-persistence/SKILL.md +143 -0
- package/.agent/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/.agent/skills/swift-protocol-di-testing/SKILL.md +190 -0
- package/.agent/skills/swiftui-patterns/SKILL.md +259 -0
- package/.agent/skills/tdd-workflow/SKILL.md +412 -98
- package/.agent/skills/team-builder/SKILL.md +168 -0
- package/.agent/skills/token-budget-advisor/SKILL.md +133 -0
- package/.agent/skills/ui-demo/SKILL.md +465 -0
- package/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -26
- package/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -97
- package/.agent/skills/ui-ux-pro-max/data/landing.csv +28 -28
- package/.agent/skills/ui-ux-pro-max/data/products.csv +96 -96
- package/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/.agent/skills/ui-ux-pro-max/data/styles.csv +68 -68
- package/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/.agent/skills/ui-ux-pro-max/scripts/search.py +114 -114
- package/.agent/skills/verification-loop/SKILL.md +126 -0
- package/.agent/skills/video-editing/SKILL.md +310 -0
- package/.agent/skills/videodb/SKILL.md +374 -0
- package/.agent/skills/videodb/reference/api-reference.md +550 -0
- package/.agent/skills/videodb/reference/capture-reference.md +407 -0
- package/.agent/skills/videodb/reference/capture.md +101 -0
- package/.agent/skills/videodb/reference/editor.md +443 -0
- package/.agent/skills/videodb/reference/generative.md +331 -0
- package/.agent/skills/videodb/reference/rtstream-reference.md +564 -0
- package/.agent/skills/videodb/reference/rtstream.md +65 -0
- package/.agent/skills/videodb/reference/search.md +230 -0
- package/.agent/skills/videodb/reference/streaming.md +406 -0
- package/.agent/skills/videodb/reference/use-cases.md +118 -0
- package/.agent/skills/videodb/scripts/ws-listener.py +282 -0
- package/.agent/skills/visa-doc-translate/SKILL.md +117 -0
- package/.agent/skills/visa-doc-translate/readme.md +86 -0
- package/.agent/skills/workspace-surface-audit/SKILL.md +125 -0
- package/.agent/skills/x-api/SKILL.md +230 -0
- package/.agent/tasks/two-track-merge-contract.md +29 -0
- package/.agent/workflows/aside.md +164 -164
- package/.agent/workflows/build-fix.md +62 -62
- package/.agent/workflows/checkpoint.md +74 -74
- package/.agent/workflows/claw.md +23 -51
- package/.agent/workflows/clean-memory.md +34 -0
- package/.agent/workflows/code-review.md +289 -40
- package/.agent/workflows/context-budget.md +23 -29
- package/.agent/workflows/cpp-build.md +173 -173
- package/.agent/workflows/cpp-review.md +132 -132
- package/.agent/workflows/cpp-test.md +251 -251
- package/.agent/workflows/devfleet.md +23 -92
- package/.agent/workflows/docs.md +23 -31
- package/.agent/workflows/e2e.md +268 -365
- package/.agent/workflows/eval.md +23 -120
- package/.agent/workflows/evolve.md +178 -178
- package/.agent/workflows/flutter-build.md +164 -0
- package/.agent/workflows/flutter-review.md +116 -0
- package/.agent/workflows/flutter-test.md +144 -0
- package/.agent/workflows/gan-build.md +99 -0
- package/.agent/workflows/gan-design.md +35 -0
- package/.agent/workflows/go-build.md +183 -183
- package/.agent/workflows/go-review.md +148 -148
- package/.agent/workflows/go-test.md +268 -268
- package/.agent/workflows/gradle-build.md +70 -70
- package/.agent/workflows/harness-audit.md +73 -71
- package/.agent/workflows/instinct-export.md +66 -66
- package/.agent/workflows/instinct-import.md +114 -114
- package/.agent/workflows/instinct-status.md +59 -59
- package/.agent/workflows/jira.md +106 -0
- package/.agent/workflows/kotlin-build.md +174 -174
- package/.agent/workflows/kotlin-review.md +140 -140
- package/.agent/workflows/kotlin-test.md +312 -312
- package/.agent/workflows/learn-eval.md +116 -116
- package/.agent/workflows/learn.md +70 -70
- package/.agent/workflows/loop-start.md +32 -32
- package/.agent/workflows/loop-status.md +24 -24
- package/.agent/workflows/model-route.md +26 -26
- package/.agent/workflows/multi-backend.md +158 -158
- package/.agent/workflows/multi-execute.md +315 -315
- package/.agent/workflows/multi-frontend.md +158 -158
- package/.agent/workflows/multi-plan.md +268 -268
- package/.agent/workflows/multi-workflow.md +191 -191
- package/.agent/workflows/orchestrate.md +135 -231
- package/.agent/workflows/plan.md +117 -115
- package/.agent/workflows/pm2.md +272 -272
- package/.agent/workflows/projects.md +39 -39
- package/.agent/workflows/promote.md +41 -41
- package/.agent/workflows/prompt-optimize.md +23 -38
- package/.agent/workflows/prp-commit.md +112 -0
- package/.agent/workflows/prp-implement.md +385 -0
- package/.agent/workflows/prp-plan.md +502 -0
- package/.agent/workflows/prp-pr.md +184 -0
- package/.agent/workflows/prp-prd.md +447 -0
- package/.agent/workflows/prune.md +31 -31
- package/.agent/workflows/python-review.md +297 -297
- package/.agent/workflows/quality-gate.md +29 -29
- package/.agent/workflows/refactor-clean.md +80 -80
- package/.agent/workflows/resume-session.md +156 -156
- package/.agent/workflows/rules-distill.md +20 -11
- package/.agent/workflows/rust-build.md +187 -187
- package/.agent/workflows/rust-review.md +142 -142
- package/.agent/workflows/rust-test.md +308 -308
- package/.agent/workflows/santa-loop.md +175 -0
- package/.agent/workflows/save-session.md +275 -275
- package/.agent/workflows/sessions.md +333 -333
- package/.agent/workflows/setup-pm.md +80 -80
- package/.agent/workflows/skill-create.md +174 -174
- package/.agent/workflows/skill-health.md +54 -54
- package/.agent/workflows/tdd.md +231 -328
- package/.agent/workflows/test-coverage.md +69 -69
- package/.agent/workflows/update-codemaps.md +72 -72
- package/.agent/workflows/update-docs.md +84 -84
- package/.agent/workflows/verify.md +23 -59
- package/LICENSE +176 -176
- package/README.md +28 -20
- package/RELEASE.md +32 -36
- package/package.json +87 -79
- package/scripts/release-check.js +55 -55
- package/src/bin/cli.js +399 -53
- package/src/lib/installer.js +360 -114
- package/src/lib/manifests/stacks.js +122 -0
- package/src/lib/slash-commands.js +28 -0
- package/src/templates/claude/CLAUDE.en.md +42 -0
- package/src/templates/claude/CLAUDE.md +42 -0
- package/src/templates/claude/CLAUDE.vi.md +42 -0
- package/src/templates/codex/AGENTS.en.md +40 -0
- package/src/templates/codex/AGENTS.md +40 -0
- package/src/templates/codex/AGENTS.vi.md +40 -0
- package/src/templates/cursor/pilo-masterkit.mdc +20 -0
- package/src/templates/gemini/GEMINI.en.md +56 -0
- package/src/templates/gemini/GEMINI.md +56 -0
- package/src/templates/gemini/GEMINI.vi.md +56 -0
- package/src/templates/github/copilot-instructions.md +16 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Hooks
|
|
2
|
+
|
|
3
|
+
Hooks are event-driven automations that fire before or after Claude Code tool executions. They enforce code quality, catch mistakes early, and automate repetitive checks.
|
|
4
|
+
|
|
5
|
+
## How Hooks Work
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
User request → Claude picks a tool → PreToolUse hook runs → Tool executes → PostToolUse hook runs
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- **PreToolUse** hooks run before the tool executes. They can **block** (exit code 2) or **warn** (stderr without blocking).
|
|
12
|
+
- **PostToolUse** hooks run after the tool completes. They can analyze output but cannot block.
|
|
13
|
+
- **Stop** hooks run after each Claude response.
|
|
14
|
+
- **SessionStart/SessionEnd** hooks run at session lifecycle boundaries.
|
|
15
|
+
- **PreCompact** hooks run before context compaction, useful for saving state.
|
|
16
|
+
|
|
17
|
+
## Hooks in This Plugin
|
|
18
|
+
|
|
19
|
+
### PreToolUse Hooks
|
|
20
|
+
|
|
21
|
+
| Hook | Matcher | Behavior | Exit Code |
|
|
22
|
+
|------|---------|----------|-----------|
|
|
23
|
+
| **Dev server blocker** | `Bash` | Blocks `npm run dev` etc. outside tmux — ensures log access | 2 (blocks) |
|
|
24
|
+
| **Tmux reminder** | `Bash` | Suggests tmux for long-running commands (npm test, cargo build, docker) | 0 (warns) |
|
|
25
|
+
| **Git push reminder** | `Bash` | Reminds to review changes before `git push` | 0 (warns) |
|
|
26
|
+
| **Pre-commit quality check** | `Bash` | Runs quality checks before `git commit`: lints staged files, validates commit message format when provided via `-m/--message`, detects console.log/debugger/secrets | 2 (blocks critical) / 0 (warns) |
|
|
27
|
+
| **Doc file warning** | `Write` | Warns about non-standard `.md`/`.txt` files (allows README, CLAUDE, CONTRIBUTING, CHANGELOG, LICENSE, SKILL, docs/, skills/); cross-platform path handling | 0 (warns) |
|
|
28
|
+
| **Strategic compact** | `Edit\|Write` | Suggests manual `/compact` at logical intervals (every ~50 tool calls) | 0 (warns) |
|
|
29
|
+
| **InsAIts security monitor (opt-in)** | `Bash\|Write\|Edit\|MultiEdit` | Optional security scan for high-signal tool inputs. Disabled unless `ECC_ENABLE_INSAITS=1`. Blocks on critical findings, warns on non-critical, and writes audit log to `.insaits_audit_session.jsonl`. Requires `pip install insa-its`. [Details](../scripts/hooks/insaits-security-monitor.py) | 2 (blocks critical) / 0 (warns) |
|
|
30
|
+
|
|
31
|
+
### PostToolUse Hooks
|
|
32
|
+
|
|
33
|
+
| Hook | Matcher | What It Does |
|
|
34
|
+
|------|---------|-------------|
|
|
35
|
+
| **PR logger** | `Bash` | Logs PR URL and review command after `gh pr create` |
|
|
36
|
+
| **Build analysis** | `Bash` | Background analysis after build commands (async, non-blocking) |
|
|
37
|
+
| **Quality gate** | `Edit\|Write\|MultiEdit` | Runs fast quality checks after edits |
|
|
38
|
+
| **Design quality check** | `Edit\|Write\|MultiEdit` | Warns when frontend edits drift toward generic template-looking UI |
|
|
39
|
+
| **Prettier format** | `Edit` | Auto-formats JS/TS files with Prettier after edits |
|
|
40
|
+
| **TypeScript check** | `Edit` | Runs `tsc --noEmit` after editing `.ts`/`.tsx` files |
|
|
41
|
+
| **console.log warning** | `Edit` | Warns about `console.log` statements in edited files |
|
|
42
|
+
|
|
43
|
+
### Lifecycle Hooks
|
|
44
|
+
|
|
45
|
+
| Hook | Event | What It Does |
|
|
46
|
+
|------|-------|-------------|
|
|
47
|
+
| **Session start** | `SessionStart` | Loads previous context and detects package manager |
|
|
48
|
+
| **Pre-compact** | `PreCompact` | Saves state before context compaction |
|
|
49
|
+
| **Console.log audit** | `Stop` | Checks all modified files for `console.log` after each response |
|
|
50
|
+
| **Session summary** | `Stop` | Persists session state when transcript path is available |
|
|
51
|
+
| **Pattern extraction** | `Stop` | Evaluates session for extractable patterns (continuous learning) |
|
|
52
|
+
| **Cost tracker** | `Stop` | Emits lightweight run-cost telemetry markers |
|
|
53
|
+
| **Desktop notify** | `Stop` | Sends macOS desktop notification with task summary (standard+) |
|
|
54
|
+
| **Session end marker** | `SessionEnd` | Lifecycle marker and cleanup log |
|
|
55
|
+
|
|
56
|
+
## Customizing Hooks
|
|
57
|
+
|
|
58
|
+
### Disabling a Hook
|
|
59
|
+
|
|
60
|
+
Remove or comment out the hook entry in `hooks.json`. If installed as a plugin, override in your `~/.claude/settings.json`:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"hooks": {
|
|
65
|
+
"PreToolUse": [
|
|
66
|
+
{
|
|
67
|
+
"matcher": "Write",
|
|
68
|
+
"hooks": [],
|
|
69
|
+
"description": "Override: allow all .md file creation"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Runtime Hook Controls (Recommended)
|
|
77
|
+
|
|
78
|
+
Use environment variables to control hook behavior without editing `hooks.json`:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# minimal | standard | strict (default: standard)
|
|
82
|
+
export ECC_HOOK_PROFILE=standard
|
|
83
|
+
|
|
84
|
+
# Disable specific hook IDs (comma-separated)
|
|
85
|
+
export ECC_DISABLED_HOOKS="pre:bash:tmux-reminder,post:edit:typecheck"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Profiles:
|
|
89
|
+
- `minimal` — keep essential lifecycle and safety hooks only.
|
|
90
|
+
- `standard` — default; balanced quality + safety checks.
|
|
91
|
+
- `strict` — enables additional reminders and stricter guardrails.
|
|
92
|
+
|
|
93
|
+
### Writing Your Own Hook
|
|
94
|
+
|
|
95
|
+
Hooks are shell commands that receive tool input as JSON on stdin and must output JSON on stdout.
|
|
96
|
+
|
|
97
|
+
**Basic structure:**
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
// my-hook.js
|
|
101
|
+
let data = '';
|
|
102
|
+
process.stdin.on('data', chunk => data += chunk);
|
|
103
|
+
process.stdin.on('end', () => {
|
|
104
|
+
const input = JSON.parse(data);
|
|
105
|
+
|
|
106
|
+
// Access tool info
|
|
107
|
+
const toolName = input.tool_name; // "Edit", "Bash", "Write", etc.
|
|
108
|
+
const toolInput = input.tool_input; // Tool-specific parameters
|
|
109
|
+
const toolOutput = input.tool_output; // Only available in PostToolUse
|
|
110
|
+
|
|
111
|
+
// Warn (non-blocking): write to stderr
|
|
112
|
+
console.error('[Hook] Warning message shown to Claude');
|
|
113
|
+
|
|
114
|
+
// Block (PreToolUse only): exit with code 2
|
|
115
|
+
// process.exit(2);
|
|
116
|
+
|
|
117
|
+
// Always output the original data to stdout
|
|
118
|
+
console.log(data);
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Exit codes:**
|
|
123
|
+
- `0` — Success (continue execution)
|
|
124
|
+
- `2` — Block the tool call (PreToolUse only)
|
|
125
|
+
- Other non-zero — Error (logged but does not block)
|
|
126
|
+
|
|
127
|
+
### Hook Input Schema
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
interface HookInput {
|
|
131
|
+
tool_name: string; // "Bash", "Edit", "Write", "Read", etc.
|
|
132
|
+
tool_input: {
|
|
133
|
+
command?: string; // Bash: the command being run
|
|
134
|
+
file_path?: string; // Edit/Write/Read: target file
|
|
135
|
+
old_string?: string; // Edit: text being replaced
|
|
136
|
+
new_string?: string; // Edit: replacement text
|
|
137
|
+
content?: string; // Write: file content
|
|
138
|
+
};
|
|
139
|
+
tool_output?: { // PostToolUse only
|
|
140
|
+
output?: string; // Command/tool output
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Async Hooks
|
|
146
|
+
|
|
147
|
+
For hooks that should not block the main flow (e.g., background analysis):
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"type": "command",
|
|
152
|
+
"command": "node my-slow-hook.js",
|
|
153
|
+
"async": true,
|
|
154
|
+
"timeout": 30
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Async hooks run in the background. They cannot block tool execution.
|
|
159
|
+
|
|
160
|
+
## Common Hook Recipes
|
|
161
|
+
|
|
162
|
+
### Warn about TODO comments
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"matcher": "Edit",
|
|
167
|
+
"hooks": [{
|
|
168
|
+
"type": "command",
|
|
169
|
+
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const ns=i.tool_input?.new_string||'';if(/TODO|FIXME|HACK/.test(ns)){console.error('[Hook] New TODO/FIXME added - consider creating an issue')}console.log(d)})\""
|
|
170
|
+
}],
|
|
171
|
+
"description": "Warn when adding TODO/FIXME comments"
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Block large file creation
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"matcher": "Write",
|
|
180
|
+
"hooks": [{
|
|
181
|
+
"type": "command",
|
|
182
|
+
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const c=i.tool_input?.content||'';const lines=c.split('\\n').length;if(lines>800){console.error('[Hook] BLOCKED: File exceeds 800 lines ('+lines+' lines)');console.error('[Hook] Split into smaller, focused modules');process.exit(2)}console.log(d)})\""
|
|
183
|
+
}],
|
|
184
|
+
"description": "Block creation of files larger than 800 lines"
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Auto-format Python files with ruff
|
|
189
|
+
|
|
190
|
+
```json
|
|
191
|
+
{
|
|
192
|
+
"matcher": "Edit",
|
|
193
|
+
"hooks": [{
|
|
194
|
+
"type": "command",
|
|
195
|
+
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const p=i.tool_input?.file_path||'';if(/\\.py$/.test(p)){const{execFileSync}=require('child_process');try{execFileSync('ruff',['format',p],{stdio:'pipe'})}catch(e){}}console.log(d)})\""
|
|
196
|
+
}],
|
|
197
|
+
"description": "Auto-format Python files with ruff after edits"
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Require test files alongside new source files
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"matcher": "Write",
|
|
206
|
+
"hooks": [{
|
|
207
|
+
"type": "command",
|
|
208
|
+
"command": "node -e \"const fs=require('fs');let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const p=i.tool_input?.file_path||'';if(/src\\/.*\\.(ts|js)$/.test(p)&&!/\\.test\\.|\\.spec\\./.test(p)){const testPath=p.replace(/\\.(ts|js)$/,'.test.$1');if(!fs.existsSync(testPath)){console.error('[Hook] No test file found for: '+p);console.error('[Hook] Expected: '+testPath);console.error('[Hook] Consider writing tests first (/tdd)')}}console.log(d)})\""
|
|
209
|
+
}],
|
|
210
|
+
"description": "Remind to create tests when adding new source files"
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Cross-Platform Notes
|
|
215
|
+
|
|
216
|
+
Hook logic is implemented in Node.js scripts for cross-platform behavior on Windows, macOS, and Linux. A small number of shell wrappers are retained for continuous-learning observer hooks; those wrappers are profile-gated and have Windows-safe fallback behavior.
|
|
217
|
+
|
|
218
|
+
## Related
|
|
219
|
+
|
|
220
|
+
- [rules/common/hooks.md](../rules/common/hooks.md) — Hook architecture guidelines
|
|
221
|
+
- [skills/strategic-compact/](../skills/strategic-compact/) — Strategic compaction skill
|
|
222
|
+
- [scripts/hooks/](../scripts/hooks/) — Hook script implementations
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"jira": {
|
|
4
|
+
"command": "uvx",
|
|
5
|
+
"args": ["mcp-atlassian==0.21.0"],
|
|
6
|
+
"env": {
|
|
7
|
+
"JIRA_URL": "YOUR_JIRA_URL_HERE",
|
|
8
|
+
"JIRA_EMAIL": "YOUR_JIRA_EMAIL_HERE",
|
|
9
|
+
"JIRA_API_TOKEN": "YOUR_JIRA_API_TOKEN_HERE"
|
|
10
|
+
},
|
|
11
|
+
"description": "Jira issue tracking — search, create, update, comment, transition issues"
|
|
12
|
+
},
|
|
13
|
+
"github": {
|
|
14
|
+
"command": "npx",
|
|
15
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
16
|
+
"env": {
|
|
17
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE"
|
|
18
|
+
},
|
|
19
|
+
"description": "GitHub operations - PRs, issues, repos"
|
|
20
|
+
},
|
|
21
|
+
"firecrawl": {
|
|
22
|
+
"command": "npx",
|
|
23
|
+
"args": ["-y", "firecrawl-mcp"],
|
|
24
|
+
"env": {
|
|
25
|
+
"FIRECRAWL_API_KEY": "YOUR_FIRECRAWL_KEY_HERE"
|
|
26
|
+
},
|
|
27
|
+
"description": "Web scraping and crawling"
|
|
28
|
+
},
|
|
29
|
+
"supabase": {
|
|
30
|
+
"command": "npx",
|
|
31
|
+
"args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref=YOUR_PROJECT_REF"],
|
|
32
|
+
"description": "Supabase database operations"
|
|
33
|
+
},
|
|
34
|
+
"memory": {
|
|
35
|
+
"command": "npx",
|
|
36
|
+
"args": ["-y", "@modelcontextprotocol/server-memory"],
|
|
37
|
+
"description": "Persistent memory across sessions"
|
|
38
|
+
},
|
|
39
|
+
"omega-memory": {
|
|
40
|
+
"command": "uvx",
|
|
41
|
+
"args": ["omega-memory", "serve"],
|
|
42
|
+
"description": "Persistent agent memory with semantic search, multi-agent coordination, and knowledge graphs — run via uvx (richer than the basic memory store)"
|
|
43
|
+
},
|
|
44
|
+
"sequential-thinking": {
|
|
45
|
+
"command": "npx",
|
|
46
|
+
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"],
|
|
47
|
+
"description": "Chain-of-thought reasoning"
|
|
48
|
+
},
|
|
49
|
+
"vercel": {
|
|
50
|
+
"type": "http",
|
|
51
|
+
"url": "https://mcp.vercel.com",
|
|
52
|
+
"description": "Vercel deployments and projects"
|
|
53
|
+
},
|
|
54
|
+
"railway": {
|
|
55
|
+
"command": "npx",
|
|
56
|
+
"args": ["-y", "@railway/mcp-server"],
|
|
57
|
+
"description": "Railway deployments"
|
|
58
|
+
},
|
|
59
|
+
"cloudflare-docs": {
|
|
60
|
+
"type": "http",
|
|
61
|
+
"url": "https://docs.mcp.cloudflare.com/mcp",
|
|
62
|
+
"description": "Cloudflare documentation search"
|
|
63
|
+
},
|
|
64
|
+
"cloudflare-workers-builds": {
|
|
65
|
+
"type": "http",
|
|
66
|
+
"url": "https://builds.mcp.cloudflare.com/mcp",
|
|
67
|
+
"description": "Cloudflare Workers builds"
|
|
68
|
+
},
|
|
69
|
+
"cloudflare-workers-bindings": {
|
|
70
|
+
"type": "http",
|
|
71
|
+
"url": "https://bindings.mcp.cloudflare.com/mcp",
|
|
72
|
+
"description": "Cloudflare Workers bindings"
|
|
73
|
+
},
|
|
74
|
+
"cloudflare-observability": {
|
|
75
|
+
"type": "http",
|
|
76
|
+
"url": "https://observability.mcp.cloudflare.com/mcp",
|
|
77
|
+
"description": "Cloudflare observability/logs"
|
|
78
|
+
},
|
|
79
|
+
"clickhouse": {
|
|
80
|
+
"type": "http",
|
|
81
|
+
"url": "https://mcp.clickhouse.cloud/mcp",
|
|
82
|
+
"description": "ClickHouse analytics queries"
|
|
83
|
+
},
|
|
84
|
+
"exa-web-search": {
|
|
85
|
+
"command": "npx",
|
|
86
|
+
"args": ["-y", "exa-mcp-server"],
|
|
87
|
+
"env": {
|
|
88
|
+
"EXA_API_KEY": "YOUR_EXA_API_KEY_HERE"
|
|
89
|
+
},
|
|
90
|
+
"description": "Web search, research, and data ingestion via Exa API — prefer task-scoped use for broader research after GitHub search and primary docs"
|
|
91
|
+
},
|
|
92
|
+
"context7": {
|
|
93
|
+
"command": "npx",
|
|
94
|
+
"args": ["-y", "@upstash/context7-mcp@latest"],
|
|
95
|
+
"description": "Live documentation lookup — use with /docs command and documentation-lookup skill (resolve-library-id, query-docs)."
|
|
96
|
+
},
|
|
97
|
+
"magic": {
|
|
98
|
+
"command": "npx",
|
|
99
|
+
"args": ["-y", "@magicuidesign/mcp@latest"],
|
|
100
|
+
"description": "Magic UI components"
|
|
101
|
+
},
|
|
102
|
+
"filesystem": {
|
|
103
|
+
"command": "npx",
|
|
104
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/projects"],
|
|
105
|
+
"description": "Filesystem operations (set your path)"
|
|
106
|
+
},
|
|
107
|
+
"insaits": {
|
|
108
|
+
"command": "python3",
|
|
109
|
+
"args": ["-m", "insa_its.mcp_server"],
|
|
110
|
+
"description": "AI-to-AI security monitoring — anomaly detection, credential exposure, hallucination checks, forensic tracing. 23 anomaly types, OWASP MCP Top 10 coverage. 100% local. Install: pip install insa-its"
|
|
111
|
+
},
|
|
112
|
+
"playwright": {
|
|
113
|
+
"command": "npx",
|
|
114
|
+
"args": ["-y", "@playwright/mcp", "--browser", "chrome"],
|
|
115
|
+
"description": "Browser automation and testing via Playwright"
|
|
116
|
+
},
|
|
117
|
+
"fal-ai": {
|
|
118
|
+
"command": "npx",
|
|
119
|
+
"args": ["-y", "fal-ai-mcp-server"],
|
|
120
|
+
"env": {
|
|
121
|
+
"FAL_KEY": "YOUR_FAL_KEY_HERE"
|
|
122
|
+
},
|
|
123
|
+
"description": "AI image/video/audio generation via fal.ai models"
|
|
124
|
+
},
|
|
125
|
+
"browserbase": {
|
|
126
|
+
"command": "npx",
|
|
127
|
+
"args": ["-y", "@browserbasehq/mcp-server-browserbase"],
|
|
128
|
+
"env": {
|
|
129
|
+
"BROWSERBASE_API_KEY": "YOUR_BROWSERBASE_KEY_HERE"
|
|
130
|
+
},
|
|
131
|
+
"description": "Cloud browser sessions via Browserbase"
|
|
132
|
+
},
|
|
133
|
+
"browser-use": {
|
|
134
|
+
"type": "http",
|
|
135
|
+
"url": "https://api.browser-use.com/mcp",
|
|
136
|
+
"headers": {
|
|
137
|
+
"x-browser-use-api-key": "YOUR_BROWSER_USE_KEY_HERE"
|
|
138
|
+
},
|
|
139
|
+
"description": "AI browser agent for web tasks"
|
|
140
|
+
},
|
|
141
|
+
"devfleet": {
|
|
142
|
+
"type": "http",
|
|
143
|
+
"url": "http://localhost:18801/mcp",
|
|
144
|
+
"description": "Multi-agent orchestration — dispatch parallel Claude Code agents in isolated worktrees. Plan projects, auto-chain missions, read structured reports. Repo: https://github.com/LEC-AI/claude-devfleet"
|
|
145
|
+
},
|
|
146
|
+
"token-optimizer": {
|
|
147
|
+
"command": "npx",
|
|
148
|
+
"args": ["-y", "token-optimizer-mcp"],
|
|
149
|
+
"description": "Token optimization for 95%+ context reduction via content deduplication and compression"
|
|
150
|
+
},
|
|
151
|
+
"laraplugins": {
|
|
152
|
+
"type": "http",
|
|
153
|
+
"url": "https://laraplugins.io/mcp/plugins",
|
|
154
|
+
"description": "Laravel plugin discovery — search packages by keyword, health score, Laravel/PHP version compatibility. Use with laravel-plugin-discovery skill."
|
|
155
|
+
},
|
|
156
|
+
"confluence": {
|
|
157
|
+
"command": "npx",
|
|
158
|
+
"args": ["-y", "confluence-mcp-server"],
|
|
159
|
+
"env": {
|
|
160
|
+
"CONFLUENCE_BASE_URL": "YOUR_CONFLUENCE_URL_HERE",
|
|
161
|
+
"CONFLUENCE_EMAIL": "YOUR_EMAIL_HERE",
|
|
162
|
+
"CONFLUENCE_API_TOKEN": "YOUR_CONFLUENCE_TOKEN_HERE"
|
|
163
|
+
},
|
|
164
|
+
"description": "Confluence Cloud integration — search pages, retrieve content, explore spaces"
|
|
165
|
+
},
|
|
166
|
+
"evalview": {
|
|
167
|
+
"command": "python3",
|
|
168
|
+
"args": ["-m", "evalview", "mcp", "serve"],
|
|
169
|
+
"env": {
|
|
170
|
+
"OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE"
|
|
171
|
+
},
|
|
172
|
+
"description": "AI agent regression testing — snapshot behavior, detect regressions in tool calls and output quality. 8 tools: create_test, run_snapshot, run_check, list_tests, validate_skill, generate_skill_tests, run_skill_test, generate_visual_report. API key optional — deterministic checks (tool diff, output hash) work without it. Install: pip install \"evalview>=0.5,<1\""
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"_comments": {
|
|
176
|
+
"usage": "Copy the servers you need to your ~/.claude.json mcpServers section",
|
|
177
|
+
"env_vars": "Replace YOUR_*_HERE placeholders with actual values",
|
|
178
|
+
"disabling": "Use disabledMcpServers array in project config to disable per-project",
|
|
179
|
+
"context_warning": "Keep under 10 MCPs enabled to preserve context window"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Agent Orchestration
|
|
2
|
+
|
|
3
|
+
## Available Agents
|
|
4
|
+
|
|
5
|
+
Located in `~/.claude/agents/`:
|
|
6
|
+
|
|
7
|
+
| Agent | Purpose | When to Use |
|
|
8
|
+
|-------|---------|-------------|
|
|
9
|
+
| planner | Implementation planning | Complex features, refactoring |
|
|
10
|
+
| architect | System design | Architectural decisions |
|
|
11
|
+
| tdd-guide | Test-driven development | New features, bug fixes |
|
|
12
|
+
| code-reviewer | Code review | After writing code |
|
|
13
|
+
| security-reviewer | Security analysis | Before commits |
|
|
14
|
+
| build-error-resolver | Fix build errors | When build fails |
|
|
15
|
+
| e2e-runner | E2E testing | Critical user flows |
|
|
16
|
+
| refactor-cleaner | Dead code cleanup | Code maintenance |
|
|
17
|
+
| doc-updater | Documentation | Updating docs |
|
|
18
|
+
| rust-reviewer | Rust code review | Rust projects |
|
|
19
|
+
|
|
20
|
+
## Immediate Agent Usage
|
|
21
|
+
|
|
22
|
+
No user prompt needed:
|
|
23
|
+
1. Complex feature requests - Use **planner** agent
|
|
24
|
+
2. Code just written/modified - Use **code-reviewer** agent
|
|
25
|
+
3. Bug fix or new feature - Use **tdd-guide** agent
|
|
26
|
+
4. Architectural decision - Use **architect** agent
|
|
27
|
+
|
|
28
|
+
## Parallel Task Execution
|
|
29
|
+
|
|
30
|
+
ALWAYS use parallel Task execution for independent operations:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# GOOD: Parallel execution
|
|
34
|
+
Launch 3 agents in parallel:
|
|
35
|
+
1. Agent 1: Security analysis of auth module
|
|
36
|
+
2. Agent 2: Performance review of cache system
|
|
37
|
+
3. Agent 3: Type checking of utilities
|
|
38
|
+
|
|
39
|
+
# BAD: Sequential when unnecessary
|
|
40
|
+
First agent 1, then agent 2, then agent 3
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Multi-Perspective Analysis
|
|
44
|
+
|
|
45
|
+
For complex problems, use split role sub-agents:
|
|
46
|
+
- Factual reviewer
|
|
47
|
+
- Senior engineer
|
|
48
|
+
- Security expert
|
|
49
|
+
- Consistency reviewer
|
|
50
|
+
- Redundancy checker
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Code Review Standards
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Code review ensures quality, security, and maintainability before code is merged. This rule defines when and how to conduct code reviews.
|
|
6
|
+
|
|
7
|
+
## When to Review
|
|
8
|
+
|
|
9
|
+
**MANDATORY review triggers:**
|
|
10
|
+
|
|
11
|
+
- After writing or modifying code
|
|
12
|
+
- Before any commit to shared branches
|
|
13
|
+
- When security-sensitive code is changed (auth, payments, user data)
|
|
14
|
+
- When architectural changes are made
|
|
15
|
+
- Before merging pull requests
|
|
16
|
+
|
|
17
|
+
**Pre-Review Requirements:**
|
|
18
|
+
|
|
19
|
+
Before requesting review, ensure:
|
|
20
|
+
|
|
21
|
+
- All automated checks (CI/CD) are passing
|
|
22
|
+
- Merge conflicts are resolved
|
|
23
|
+
- Branch is up to date with target branch
|
|
24
|
+
|
|
25
|
+
## Review Checklist
|
|
26
|
+
|
|
27
|
+
Before marking code complete:
|
|
28
|
+
|
|
29
|
+
- [ ] Code is readable and well-named
|
|
30
|
+
- [ ] Functions are focused (<50 lines)
|
|
31
|
+
- [ ] Files are cohesive (<800 lines)
|
|
32
|
+
- [ ] No deep nesting (>4 levels)
|
|
33
|
+
- [ ] Errors are handled explicitly
|
|
34
|
+
- [ ] No hardcoded secrets or credentials
|
|
35
|
+
- [ ] No console.log or debug statements
|
|
36
|
+
- [ ] Tests exist for new functionality
|
|
37
|
+
- [ ] Test coverage meets 80% minimum
|
|
38
|
+
|
|
39
|
+
## Security Review Triggers
|
|
40
|
+
|
|
41
|
+
**STOP and use security-reviewer agent when:**
|
|
42
|
+
|
|
43
|
+
- Authentication or authorization code
|
|
44
|
+
- User input handling
|
|
45
|
+
- Database queries
|
|
46
|
+
- File system operations
|
|
47
|
+
- External API calls
|
|
48
|
+
- Cryptographic operations
|
|
49
|
+
- Payment or financial code
|
|
50
|
+
|
|
51
|
+
## Review Severity Levels
|
|
52
|
+
|
|
53
|
+
| Level | Meaning | Action |
|
|
54
|
+
|-------|---------|--------|
|
|
55
|
+
| CRITICAL | Security vulnerability or data loss risk | **BLOCK** - Must fix before merge |
|
|
56
|
+
| HIGH | Bug or significant quality issue | **WARN** - Should fix before merge |
|
|
57
|
+
| MEDIUM | Maintainability concern | **INFO** - Consider fixing |
|
|
58
|
+
| LOW | Style or minor suggestion | **NOTE** - Optional |
|
|
59
|
+
|
|
60
|
+
## Agent Usage
|
|
61
|
+
|
|
62
|
+
Use these agents for code review:
|
|
63
|
+
|
|
64
|
+
| Agent | Purpose |
|
|
65
|
+
|-------|---------|
|
|
66
|
+
| **code-reviewer** | General code quality, patterns, best practices |
|
|
67
|
+
| **security-reviewer** | Security vulnerabilities, OWASP Top 10 |
|
|
68
|
+
| **typescript-reviewer** | TypeScript/JavaScript specific issues |
|
|
69
|
+
| **python-reviewer** | Python specific issues |
|
|
70
|
+
| **go-reviewer** | Go specific issues |
|
|
71
|
+
| **rust-reviewer** | Rust specific issues |
|
|
72
|
+
|
|
73
|
+
## Review Workflow
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
1. Run git diff to understand changes
|
|
77
|
+
2. Check security checklist first
|
|
78
|
+
3. Review code quality checklist
|
|
79
|
+
4. Run relevant tests
|
|
80
|
+
5. Verify coverage >= 80%
|
|
81
|
+
6. Use appropriate agent for detailed review
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Common Issues to Catch
|
|
85
|
+
|
|
86
|
+
### Security
|
|
87
|
+
|
|
88
|
+
- Hardcoded credentials (API keys, passwords, tokens)
|
|
89
|
+
- SQL injection (string concatenation in queries)
|
|
90
|
+
- XSS vulnerabilities (unescaped user input)
|
|
91
|
+
- Path traversal (unsanitized file paths)
|
|
92
|
+
- CSRF protection missing
|
|
93
|
+
- Authentication bypasses
|
|
94
|
+
|
|
95
|
+
### Code Quality
|
|
96
|
+
|
|
97
|
+
- Large functions (>50 lines) - split into smaller
|
|
98
|
+
- Large files (>800 lines) - extract modules
|
|
99
|
+
- Deep nesting (>4 levels) - use early returns
|
|
100
|
+
- Missing error handling - handle explicitly
|
|
101
|
+
- Mutation patterns - prefer immutable operations
|
|
102
|
+
- Missing tests - add test coverage
|
|
103
|
+
|
|
104
|
+
### Performance
|
|
105
|
+
|
|
106
|
+
- N+1 queries - use JOINs or batching
|
|
107
|
+
- Missing pagination - add LIMIT to queries
|
|
108
|
+
- Unbounded queries - add constraints
|
|
109
|
+
- Missing caching - cache expensive operations
|
|
110
|
+
|
|
111
|
+
## Approval Criteria
|
|
112
|
+
|
|
113
|
+
- **Approve**: No CRITICAL or HIGH issues
|
|
114
|
+
- **Warning**: Only HIGH issues (merge with caution)
|
|
115
|
+
- **Block**: CRITICAL issues found
|
|
116
|
+
|
|
117
|
+
## Integration with Other Rules
|
|
118
|
+
|
|
119
|
+
This rule works with:
|
|
120
|
+
|
|
121
|
+
- [testing.md](testing.md) - Test coverage requirements
|
|
122
|
+
- [security.md](security.md) - Security checklist
|
|
123
|
+
- [git-workflow.md](git-workflow.md) - Commit standards
|
|
124
|
+
- [agents.md](agents.md) - Agent delegation
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Coding Style
|
|
2
|
+
|
|
3
|
+
## Immutability (CRITICAL)
|
|
4
|
+
|
|
5
|
+
ALWAYS create new objects, NEVER mutate existing ones:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
// Pseudocode
|
|
9
|
+
WRONG: modify(original, field, value) → changes original in-place
|
|
10
|
+
CORRECT: update(original, field, value) → returns new copy with change
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Rationale: Immutable data prevents hidden side effects, makes debugging easier, and enables safe concurrency.
|
|
14
|
+
|
|
15
|
+
## File Organization
|
|
16
|
+
|
|
17
|
+
MANY SMALL FILES > FEW LARGE FILES:
|
|
18
|
+
- High cohesion, low coupling
|
|
19
|
+
- 200-400 lines typical, 800 max
|
|
20
|
+
- Extract utilities from large modules
|
|
21
|
+
- Organize by feature/domain, not by type
|
|
22
|
+
|
|
23
|
+
## Error Handling
|
|
24
|
+
|
|
25
|
+
ALWAYS handle errors comprehensively:
|
|
26
|
+
- Handle errors explicitly at every level
|
|
27
|
+
- Provide user-friendly error messages in UI-facing code
|
|
28
|
+
- Log detailed error context on the server side
|
|
29
|
+
- Never silently swallow errors
|
|
30
|
+
|
|
31
|
+
## Input Validation
|
|
32
|
+
|
|
33
|
+
ALWAYS validate at system boundaries:
|
|
34
|
+
- Validate all user input before processing
|
|
35
|
+
- Use schema-based validation where available
|
|
36
|
+
- Fail fast with clear error messages
|
|
37
|
+
- Never trust external data (API responses, user input, file content)
|
|
38
|
+
|
|
39
|
+
## Code Quality Checklist
|
|
40
|
+
|
|
41
|
+
Before marking work complete:
|
|
42
|
+
- [ ] Code is readable and well-named
|
|
43
|
+
- [ ] Functions are small (<50 lines)
|
|
44
|
+
- [ ] Files are focused (<800 lines)
|
|
45
|
+
- [ ] No deep nesting (>4 levels)
|
|
46
|
+
- [ ] Proper error handling
|
|
47
|
+
- [ ] No hardcoded values (use constants or config)
|
|
48
|
+
- [ ] No mutation (immutable patterns used)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Development Workflow
|
|
2
|
+
|
|
3
|
+
> This file extends [common/git-workflow.md](./git-workflow.md) with the full feature development process that happens before git operations.
|
|
4
|
+
|
|
5
|
+
The Feature Implementation Workflow describes the development pipeline: research, planning, TDD, code review, and then committing to git.
|
|
6
|
+
|
|
7
|
+
## Feature Implementation Workflow
|
|
8
|
+
|
|
9
|
+
0. **Research & Reuse** _(mandatory before any new implementation)_
|
|
10
|
+
- **GitHub code search first:** Run `gh search repos` and `gh search code` to find existing implementations, templates, and patterns before writing anything new.
|
|
11
|
+
- **Library docs second:** Use Context7 or primary vendor docs to confirm API behavior, package usage, and version-specific details before implementing.
|
|
12
|
+
- **Exa only when the first two are insufficient:** Use Exa for broader web research or discovery after GitHub search and primary docs.
|
|
13
|
+
- **Check package registries:** Search npm, PyPI, crates.io, and other registries before writing utility code. Prefer battle-tested libraries over hand-rolled solutions.
|
|
14
|
+
- **Search for adaptable implementations:** Look for open-source projects that solve 80%+ of the problem and can be forked, ported, or wrapped.
|
|
15
|
+
- Prefer adopting or porting a proven approach over writing net-new code when it meets the requirement.
|
|
16
|
+
|
|
17
|
+
1. **Plan First**
|
|
18
|
+
- Use **planner** agent to create implementation plan
|
|
19
|
+
- Generate planning docs before coding: PRD, architecture, system_design, tech_doc, task_list
|
|
20
|
+
- Identify dependencies and risks
|
|
21
|
+
- Break down into phases
|
|
22
|
+
|
|
23
|
+
2. **TDD Approach**
|
|
24
|
+
- Use **tdd-guide** agent
|
|
25
|
+
- Write tests first (RED)
|
|
26
|
+
- Implement to pass tests (GREEN)
|
|
27
|
+
- Refactor (IMPROVE)
|
|
28
|
+
- Verify 80%+ coverage
|
|
29
|
+
|
|
30
|
+
3. **Code Review**
|
|
31
|
+
- Use **code-reviewer** agent immediately after writing code
|
|
32
|
+
- Address CRITICAL and HIGH issues
|
|
33
|
+
- Fix MEDIUM issues when possible
|
|
34
|
+
|
|
35
|
+
4. **Commit & Push**
|
|
36
|
+
- Detailed commit messages
|
|
37
|
+
- Follow conventional commits format
|
|
38
|
+
- See [git-workflow.md](./git-workflow.md) for commit message format and PR process
|
|
39
|
+
|
|
40
|
+
5. **Pre-Review Checks**
|
|
41
|
+
- Verify all automated checks (CI/CD) are passing
|
|
42
|
+
- Resolve any merge conflicts
|
|
43
|
+
- Ensure branch is up to date with target branch
|
|
44
|
+
- Only request review after these checks pass
|