@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,96 @@
|
|
|
1
|
+
> This file extends [common/coding-style.md](../common/coding-style.md) with web-specific frontend content.
|
|
2
|
+
|
|
3
|
+
# Web Coding Style
|
|
4
|
+
|
|
5
|
+
## File Organization
|
|
6
|
+
|
|
7
|
+
Organize by feature or surface area, not by file type:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
src/
|
|
11
|
+
├── components/
|
|
12
|
+
│ ├── hero/
|
|
13
|
+
│ │ ├── Hero.tsx
|
|
14
|
+
│ │ ├── HeroVisual.tsx
|
|
15
|
+
│ │ └── hero.css
|
|
16
|
+
│ ├── scrolly-section/
|
|
17
|
+
│ │ ├── ScrollySection.tsx
|
|
18
|
+
│ │ ├── StickyVisual.tsx
|
|
19
|
+
│ │ └── scrolly.css
|
|
20
|
+
│ └── ui/
|
|
21
|
+
│ ├── Button.tsx
|
|
22
|
+
│ ├── SurfaceCard.tsx
|
|
23
|
+
│ └── AnimatedText.tsx
|
|
24
|
+
├── hooks/
|
|
25
|
+
│ ├── useReducedMotion.ts
|
|
26
|
+
│ └── useScrollProgress.ts
|
|
27
|
+
├── lib/
|
|
28
|
+
│ ├── animation.ts
|
|
29
|
+
│ └── color.ts
|
|
30
|
+
└── styles/
|
|
31
|
+
├── tokens.css
|
|
32
|
+
├── typography.css
|
|
33
|
+
└── global.css
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## CSS Custom Properties
|
|
37
|
+
|
|
38
|
+
Define design tokens as variables. Do not hardcode palette, typography, or spacing repeatedly:
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
:root {
|
|
42
|
+
--color-surface: oklch(98% 0 0);
|
|
43
|
+
--color-text: oklch(18% 0 0);
|
|
44
|
+
--color-accent: oklch(68% 0.21 250);
|
|
45
|
+
|
|
46
|
+
--text-base: clamp(1rem, 0.92rem + 0.4vw, 1.125rem);
|
|
47
|
+
--text-hero: clamp(3rem, 1rem + 7vw, 8rem);
|
|
48
|
+
|
|
49
|
+
--space-section: clamp(4rem, 3rem + 5vw, 10rem);
|
|
50
|
+
|
|
51
|
+
--duration-fast: 150ms;
|
|
52
|
+
--duration-normal: 300ms;
|
|
53
|
+
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Animation-Only Properties
|
|
58
|
+
|
|
59
|
+
Prefer compositor-friendly motion:
|
|
60
|
+
- `transform`
|
|
61
|
+
- `opacity`
|
|
62
|
+
- `clip-path`
|
|
63
|
+
- `filter` (sparingly)
|
|
64
|
+
|
|
65
|
+
Avoid animating layout-bound properties:
|
|
66
|
+
- `width`
|
|
67
|
+
- `height`
|
|
68
|
+
- `top`
|
|
69
|
+
- `left`
|
|
70
|
+
- `margin`
|
|
71
|
+
- `padding`
|
|
72
|
+
- `border`
|
|
73
|
+
- `font-size`
|
|
74
|
+
|
|
75
|
+
## Semantic HTML First
|
|
76
|
+
|
|
77
|
+
```html
|
|
78
|
+
<header>
|
|
79
|
+
<nav aria-label="Main navigation">...</nav>
|
|
80
|
+
</header>
|
|
81
|
+
<main>
|
|
82
|
+
<section aria-labelledby="hero-heading">
|
|
83
|
+
<h1 id="hero-heading">...</h1>
|
|
84
|
+
</section>
|
|
85
|
+
</main>
|
|
86
|
+
<footer>...</footer>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Do not reach for generic wrapper `div` stacks when a semantic element exists.
|
|
90
|
+
|
|
91
|
+
## Naming
|
|
92
|
+
|
|
93
|
+
- Components: PascalCase (`ScrollySection`, `SurfaceCard`)
|
|
94
|
+
- Hooks: `use` prefix (`useReducedMotion`)
|
|
95
|
+
- CSS classes: kebab-case or utility classes
|
|
96
|
+
- Animation timelines: camelCase with intent (`heroRevealTl`)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
> This file extends [common/patterns.md](../common/patterns.md) with web-specific design-quality guidance.
|
|
2
|
+
|
|
3
|
+
# Web Design Quality Standards
|
|
4
|
+
|
|
5
|
+
## Anti-Template Policy
|
|
6
|
+
|
|
7
|
+
Do not ship generic template-looking UI. Frontend output should look intentional, opinionated, and specific to the product.
|
|
8
|
+
|
|
9
|
+
### Banned Patterns
|
|
10
|
+
|
|
11
|
+
- Default card grids with uniform spacing and no hierarchy
|
|
12
|
+
- Stock hero section with centered headline, gradient blob, and generic CTA
|
|
13
|
+
- Unmodified library defaults passed off as finished design
|
|
14
|
+
- Flat layouts with no layering, depth, or motion
|
|
15
|
+
- Uniform radius, spacing, and shadows across every component
|
|
16
|
+
- Safe gray-on-white styling with one decorative accent color
|
|
17
|
+
- Dashboard-by-numbers layouts with sidebar + cards + charts and no point of view
|
|
18
|
+
- Default font stacks used without a deliberate reason
|
|
19
|
+
|
|
20
|
+
### Required Qualities
|
|
21
|
+
|
|
22
|
+
Every meaningful frontend surface should demonstrate at least four of these:
|
|
23
|
+
|
|
24
|
+
1. Clear hierarchy through scale contrast
|
|
25
|
+
2. Intentional rhythm in spacing, not uniform padding everywhere
|
|
26
|
+
3. Depth or layering through overlap, shadows, surfaces, or motion
|
|
27
|
+
4. Typography with character and a real pairing strategy
|
|
28
|
+
5. Color used semantically, not just decoratively
|
|
29
|
+
6. Hover, focus, and active states that feel designed
|
|
30
|
+
7. Grid-breaking editorial or bento composition where appropriate
|
|
31
|
+
8. Texture, grain, or atmosphere when it fits the visual direction
|
|
32
|
+
9. Motion that clarifies flow instead of distracting from it
|
|
33
|
+
10. Data visualization treated as part of the design system, not an afterthought
|
|
34
|
+
|
|
35
|
+
## Before Writing Frontend Code
|
|
36
|
+
|
|
37
|
+
1. Pick a specific style direction. Avoid vague defaults like "clean minimal".
|
|
38
|
+
2. Define a palette intentionally.
|
|
39
|
+
3. Choose typography deliberately.
|
|
40
|
+
4. Gather at least a small set of real references.
|
|
41
|
+
5. Use ECC design/frontend skills where relevant.
|
|
42
|
+
|
|
43
|
+
## Worthwhile Style Directions
|
|
44
|
+
|
|
45
|
+
- Editorial / magazine
|
|
46
|
+
- Neo-brutalism
|
|
47
|
+
- Glassmorphism with real depth
|
|
48
|
+
- Dark luxury or light luxury with disciplined contrast
|
|
49
|
+
- Bento layouts
|
|
50
|
+
- Scrollytelling
|
|
51
|
+
- 3D integration
|
|
52
|
+
- Swiss / International
|
|
53
|
+
- Retro-futurism
|
|
54
|
+
|
|
55
|
+
Do not default to dark mode automatically. Choose the visual direction the product actually wants.
|
|
56
|
+
|
|
57
|
+
## Component Checklist
|
|
58
|
+
|
|
59
|
+
- [ ] Does it avoid looking like a default Tailwind or shadcn template?
|
|
60
|
+
- [ ] Does it have intentional hover/focus/active states?
|
|
61
|
+
- [ ] Does it use hierarchy rather than uniform emphasis?
|
|
62
|
+
- [ ] Would this look believable in a real product screenshot?
|
|
63
|
+
- [ ] If it supports both themes, do both light and dark feel intentional?
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
> This file extends [common/hooks.md](../common/hooks.md) with web-specific hook recommendations.
|
|
2
|
+
|
|
3
|
+
# Web Hooks
|
|
4
|
+
|
|
5
|
+
## Recommended PostToolUse Hooks
|
|
6
|
+
|
|
7
|
+
Prefer project-local tooling. Do not wire hooks to remote one-off package execution.
|
|
8
|
+
|
|
9
|
+
### Format on Save
|
|
10
|
+
|
|
11
|
+
Use the project's existing formatter entrypoint after edits:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"hooks": {
|
|
16
|
+
"PostToolUse": [
|
|
17
|
+
{
|
|
18
|
+
"matcher": "Write|Edit",
|
|
19
|
+
"command": "pnpm prettier --write \"$FILE_PATH\"",
|
|
20
|
+
"description": "Format edited frontend files"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Equivalent local commands via `yarn prettier` or `npm exec prettier --` are fine when they use repo-owned dependencies.
|
|
28
|
+
|
|
29
|
+
### Lint Check
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"hooks": {
|
|
34
|
+
"PostToolUse": [
|
|
35
|
+
{
|
|
36
|
+
"matcher": "Write|Edit",
|
|
37
|
+
"command": "pnpm eslint --fix \"$FILE_PATH\"",
|
|
38
|
+
"description": "Run ESLint on edited frontend files"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Type Check
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"hooks": {
|
|
50
|
+
"PostToolUse": [
|
|
51
|
+
{
|
|
52
|
+
"matcher": "Write|Edit",
|
|
53
|
+
"command": "pnpm tsc --noEmit --pretty false",
|
|
54
|
+
"description": "Type-check after frontend edits"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### CSS Lint
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"hooks": {
|
|
66
|
+
"PostToolUse": [
|
|
67
|
+
{
|
|
68
|
+
"matcher": "Write|Edit",
|
|
69
|
+
"command": "pnpm stylelint --fix \"$FILE_PATH\"",
|
|
70
|
+
"description": "Lint edited stylesheets"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## PreToolUse Hooks
|
|
78
|
+
|
|
79
|
+
### Guard File Size
|
|
80
|
+
|
|
81
|
+
Block oversized writes from tool input content, not from a file that may not exist yet:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"hooks": {
|
|
86
|
+
"PreToolUse": [
|
|
87
|
+
{
|
|
88
|
+
"matcher": "Write",
|
|
89
|
+
"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 modules');process.exit(2)}console.log(d)})\"",
|
|
90
|
+
"description": "Block writes that exceed 800 lines"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Stop Hooks
|
|
98
|
+
|
|
99
|
+
### Final Build Verification
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"hooks": {
|
|
104
|
+
"Stop": [
|
|
105
|
+
{
|
|
106
|
+
"command": "pnpm build",
|
|
107
|
+
"description": "Verify the production build at session end"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Ordering
|
|
115
|
+
|
|
116
|
+
Recommended order:
|
|
117
|
+
1. format
|
|
118
|
+
2. lint
|
|
119
|
+
3. type check
|
|
120
|
+
4. build verification
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
> This file extends [common/patterns.md](../common/patterns.md) with web-specific patterns.
|
|
2
|
+
|
|
3
|
+
# Web Patterns
|
|
4
|
+
|
|
5
|
+
## Component Composition
|
|
6
|
+
|
|
7
|
+
### Compound Components
|
|
8
|
+
|
|
9
|
+
Use compound components when related UI shares state and interaction semantics:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
<Tabs defaultValue="overview">
|
|
13
|
+
<Tabs.List>
|
|
14
|
+
<Tabs.Trigger value="overview">Overview</Tabs.Trigger>
|
|
15
|
+
<Tabs.Trigger value="settings">Settings</Tabs.Trigger>
|
|
16
|
+
</Tabs.List>
|
|
17
|
+
<Tabs.Content value="overview">...</Tabs.Content>
|
|
18
|
+
<Tabs.Content value="settings">...</Tabs.Content>
|
|
19
|
+
</Tabs>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- Parent owns state
|
|
23
|
+
- Children consume via context
|
|
24
|
+
- Prefer this over prop drilling for complex widgets
|
|
25
|
+
|
|
26
|
+
### Render Props / Slots
|
|
27
|
+
|
|
28
|
+
- Use render props or slot patterns when behavior is shared but markup must vary
|
|
29
|
+
- Keep keyboard handling, ARIA, and focus logic in the headless layer
|
|
30
|
+
|
|
31
|
+
### Container / Presentational Split
|
|
32
|
+
|
|
33
|
+
- Container components own data loading and side effects
|
|
34
|
+
- Presentational components receive props and render UI
|
|
35
|
+
- Presentational components should stay pure
|
|
36
|
+
|
|
37
|
+
## State Management
|
|
38
|
+
|
|
39
|
+
Treat these separately:
|
|
40
|
+
|
|
41
|
+
| Concern | Tooling |
|
|
42
|
+
|---------|---------|
|
|
43
|
+
| Server state | TanStack Query, SWR, tRPC |
|
|
44
|
+
| Client state | Zustand, Jotai, signals |
|
|
45
|
+
| URL state | search params, route segments |
|
|
46
|
+
| Form state | React Hook Form or equivalent |
|
|
47
|
+
|
|
48
|
+
- Do not duplicate server state into client stores
|
|
49
|
+
- Derive values instead of storing redundant computed state
|
|
50
|
+
|
|
51
|
+
## URL As State
|
|
52
|
+
|
|
53
|
+
Persist shareable state in the URL:
|
|
54
|
+
- filters
|
|
55
|
+
- sort order
|
|
56
|
+
- pagination
|
|
57
|
+
- active tab
|
|
58
|
+
- search query
|
|
59
|
+
|
|
60
|
+
## Data Fetching
|
|
61
|
+
|
|
62
|
+
### Stale-While-Revalidate
|
|
63
|
+
|
|
64
|
+
- Return cached data immediately
|
|
65
|
+
- Revalidate in the background
|
|
66
|
+
- Prefer existing libraries instead of rolling this by hand
|
|
67
|
+
|
|
68
|
+
### Optimistic Updates
|
|
69
|
+
|
|
70
|
+
- Snapshot current state
|
|
71
|
+
- Apply optimistic update
|
|
72
|
+
- Roll back on failure
|
|
73
|
+
- Emit visible error feedback when rolling back
|
|
74
|
+
|
|
75
|
+
### Parallel Loading
|
|
76
|
+
|
|
77
|
+
- Fetch independent data in parallel
|
|
78
|
+
- Avoid parent-child request waterfalls
|
|
79
|
+
- Prefetch likely next routes or states when justified
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
> This file extends [common/performance.md](../common/performance.md) with web-specific performance content.
|
|
2
|
+
|
|
3
|
+
# Web Performance Rules
|
|
4
|
+
|
|
5
|
+
## Core Web Vitals Targets
|
|
6
|
+
|
|
7
|
+
| Metric | Target |
|
|
8
|
+
|--------|--------|
|
|
9
|
+
| LCP | < 2.5s |
|
|
10
|
+
| INP | < 200ms |
|
|
11
|
+
| CLS | < 0.1 |
|
|
12
|
+
| FCP | < 1.5s |
|
|
13
|
+
| TBT | < 200ms |
|
|
14
|
+
|
|
15
|
+
## Bundle Budget
|
|
16
|
+
|
|
17
|
+
| Page Type | JS Budget (gzipped) | CSS Budget |
|
|
18
|
+
|-----------|---------------------|------------|
|
|
19
|
+
| Landing page | < 150kb | < 30kb |
|
|
20
|
+
| App page | < 300kb | < 50kb |
|
|
21
|
+
| Microsite | < 80kb | < 15kb |
|
|
22
|
+
|
|
23
|
+
## Loading Strategy
|
|
24
|
+
|
|
25
|
+
1. Inline critical above-the-fold CSS where justified
|
|
26
|
+
2. Preload the hero image and primary font only
|
|
27
|
+
3. Defer non-critical CSS or JS
|
|
28
|
+
4. Dynamically import heavy libraries
|
|
29
|
+
|
|
30
|
+
```js
|
|
31
|
+
const gsapModule = await import('gsap');
|
|
32
|
+
const { ScrollTrigger } = await import('gsap/ScrollTrigger');
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Image Optimization
|
|
36
|
+
|
|
37
|
+
- Explicit `width` and `height`
|
|
38
|
+
- `loading="eager"` plus `fetchpriority="high"` for hero media only
|
|
39
|
+
- `loading="lazy"` for below-the-fold assets
|
|
40
|
+
- Prefer AVIF or WebP with fallbacks
|
|
41
|
+
- Never ship source images far beyond rendered size
|
|
42
|
+
|
|
43
|
+
## Font Loading
|
|
44
|
+
|
|
45
|
+
- Max two font families unless there is a clear exception
|
|
46
|
+
- `font-display: swap`
|
|
47
|
+
- Subset where possible
|
|
48
|
+
- Preload only the truly critical weight/style
|
|
49
|
+
|
|
50
|
+
## Animation Performance
|
|
51
|
+
|
|
52
|
+
- Animate compositor-friendly properties only
|
|
53
|
+
- Use `will-change` narrowly and remove it when done
|
|
54
|
+
- Prefer CSS for simple transitions
|
|
55
|
+
- Use `requestAnimationFrame` or established animation libraries for JS motion
|
|
56
|
+
- Avoid scroll handler churn; use IntersectionObserver or well-behaved libraries
|
|
57
|
+
|
|
58
|
+
## Performance Checklist
|
|
59
|
+
|
|
60
|
+
- [ ] All images have explicit dimensions
|
|
61
|
+
- [ ] No accidental render-blocking resources
|
|
62
|
+
- [ ] No layout shifts from dynamic content
|
|
63
|
+
- [ ] Motion stays on compositor-friendly properties
|
|
64
|
+
- [ ] Third-party scripts load async/defer and only when needed
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
> This file extends [common/security.md](../common/security.md) with web-specific security content.
|
|
2
|
+
|
|
3
|
+
# Web Security Rules
|
|
4
|
+
|
|
5
|
+
## Content Security Policy
|
|
6
|
+
|
|
7
|
+
Always configure a production CSP.
|
|
8
|
+
|
|
9
|
+
### Nonce-Based CSP
|
|
10
|
+
|
|
11
|
+
Use a per-request nonce for scripts instead of `'unsafe-inline'`.
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
Content-Security-Policy:
|
|
15
|
+
default-src 'self';
|
|
16
|
+
script-src 'self' 'nonce-{RANDOM}' https://cdn.jsdelivr.net;
|
|
17
|
+
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
|
|
18
|
+
img-src 'self' data: https:;
|
|
19
|
+
font-src 'self' https://fonts.gstatic.com;
|
|
20
|
+
connect-src 'self' https://*.example.com;
|
|
21
|
+
frame-src 'none';
|
|
22
|
+
object-src 'none';
|
|
23
|
+
base-uri 'self';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Adjust origins to the project. Do not cargo-cult this block unchanged.
|
|
27
|
+
|
|
28
|
+
## XSS Prevention
|
|
29
|
+
|
|
30
|
+
- Never inject unsanitized HTML
|
|
31
|
+
- Avoid `innerHTML` / `dangerouslySetInnerHTML` unless sanitized first
|
|
32
|
+
- Escape dynamic template values
|
|
33
|
+
- Sanitize user HTML with a vetted local sanitizer when absolutely necessary
|
|
34
|
+
|
|
35
|
+
## Third-Party Scripts
|
|
36
|
+
|
|
37
|
+
- Load asynchronously
|
|
38
|
+
- Use SRI when serving from a CDN
|
|
39
|
+
- Audit quarterly
|
|
40
|
+
- Prefer self-hosting for critical dependencies when practical
|
|
41
|
+
|
|
42
|
+
## HTTPS and Headers
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
|
|
46
|
+
X-Content-Type-Options: nosniff
|
|
47
|
+
X-Frame-Options: DENY
|
|
48
|
+
Referrer-Policy: strict-origin-when-cross-origin
|
|
49
|
+
Permissions-Policy: camera=(), microphone=(), geolocation=()
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Forms
|
|
53
|
+
|
|
54
|
+
- CSRF protection on state-changing forms
|
|
55
|
+
- Rate limiting on submission endpoints
|
|
56
|
+
- Validate client and server side
|
|
57
|
+
- Prefer honeypots or light anti-abuse controls over heavy-handed CAPTCHA defaults
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
> This file extends [common/testing.md](../common/testing.md) with web-specific testing content.
|
|
2
|
+
|
|
3
|
+
# Web Testing Rules
|
|
4
|
+
|
|
5
|
+
## Priority Order
|
|
6
|
+
|
|
7
|
+
### 1. Visual Regression
|
|
8
|
+
|
|
9
|
+
- Screenshot key breakpoints: 320, 768, 1024, 1440
|
|
10
|
+
- Test hero sections, scrollytelling sections, and meaningful states
|
|
11
|
+
- Use Playwright screenshots for visual-heavy work
|
|
12
|
+
- If both themes exist, test both
|
|
13
|
+
|
|
14
|
+
### 2. Accessibility
|
|
15
|
+
|
|
16
|
+
- Run automated accessibility checks
|
|
17
|
+
- Test keyboard navigation
|
|
18
|
+
- Verify reduced-motion behavior
|
|
19
|
+
- Verify color contrast
|
|
20
|
+
|
|
21
|
+
### 3. Performance
|
|
22
|
+
|
|
23
|
+
- Run Lighthouse or equivalent against meaningful pages
|
|
24
|
+
- Keep CWV targets from [performance.md](performance.md)
|
|
25
|
+
|
|
26
|
+
### 4. Cross-Browser
|
|
27
|
+
|
|
28
|
+
- Minimum: Chrome, Firefox, Safari
|
|
29
|
+
- Test scrolling, motion, and fallback behavior
|
|
30
|
+
|
|
31
|
+
### 5. Responsive
|
|
32
|
+
|
|
33
|
+
- Test 320, 375, 768, 1024, 1440, 1920
|
|
34
|
+
- Verify no overflow
|
|
35
|
+
- Verify touch interactions
|
|
36
|
+
|
|
37
|
+
## E2E Shape
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { test, expect } from '@playwright/test';
|
|
41
|
+
|
|
42
|
+
test('landing hero loads', async ({ page }) => {
|
|
43
|
+
await page.goto('/');
|
|
44
|
+
await expect(page.locator('h1')).toBeVisible();
|
|
45
|
+
});
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- Avoid flaky timeout-based assertions
|
|
49
|
+
- Prefer deterministic waits
|
|
50
|
+
|
|
51
|
+
## Unit Tests
|
|
52
|
+
|
|
53
|
+
- Test utilities, data transforms, and custom hooks
|
|
54
|
+
- For highly visual components, visual regression often carries more signal than brittle markup assertions
|
|
55
|
+
- Visual regression supplements coverage targets; it does not replace them
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# 代理编排
|
|
2
|
+
|
|
3
|
+
## 可用代理
|
|
4
|
+
|
|
5
|
+
位于 `~/.claude/agents/`:
|
|
6
|
+
|
|
7
|
+
| 代理 | 用途 | 何时使用 |
|
|
8
|
+
|-------|---------|------------|
|
|
9
|
+
| planner | 实现规划 | 复杂功能、重构 |
|
|
10
|
+
| architect | 系统设计 | 架构决策 |
|
|
11
|
+
| tdd-guide | 测试驱动开发 | 新功能、bug 修复 |
|
|
12
|
+
| code-reviewer | 代码审查 | 编写代码后 |
|
|
13
|
+
| security-reviewer | 安全分析 | 提交前 |
|
|
14
|
+
| build-error-resolver | 修复构建错误 | 构建失败时 |
|
|
15
|
+
| e2e-runner | E2E 测试 | 关键用户流程 |
|
|
16
|
+
| refactor-cleaner | 死代码清理 | 代码维护 |
|
|
17
|
+
| doc-updater | 文档 | 更新文档 |
|
|
18
|
+
| rust-reviewer | Rust 代码审查 | Rust 项目 |
|
|
19
|
+
|
|
20
|
+
## 立即使用代理
|
|
21
|
+
|
|
22
|
+
无需用户提示:
|
|
23
|
+
1. 复杂功能请求 - 使用 **planner** 代理
|
|
24
|
+
2. 刚编写/修改的代码 - 使用 **code-reviewer** 代理
|
|
25
|
+
3. Bug 修复或新功能 - 使用 **tdd-guide** 代理
|
|
26
|
+
4. 架构决策 - 使用 **architect** 代理
|
|
27
|
+
|
|
28
|
+
## 并行任务执行
|
|
29
|
+
|
|
30
|
+
对独立操作始终使用并行 Task 执行:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# 好:并行执行
|
|
34
|
+
同时启动 3 个代理:
|
|
35
|
+
1. 代理 1:认证模块安全分析
|
|
36
|
+
2. 代理 2:缓存系统性能审查
|
|
37
|
+
3. 代理 3:工具类型检查
|
|
38
|
+
|
|
39
|
+
# 坏:不必要的顺序
|
|
40
|
+
先代理 1,然后代理 2,然后代理 3
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 多视角分析
|
|
44
|
+
|
|
45
|
+
对于复杂问题,使用分角色子代理:
|
|
46
|
+
- 事实审查者
|
|
47
|
+
- 高级工程师
|
|
48
|
+
- 安全专家
|
|
49
|
+
- 一致性审查者
|
|
50
|
+
- 冗余检查者
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# 代码审查标准
|
|
2
|
+
|
|
3
|
+
## 目的
|
|
4
|
+
|
|
5
|
+
代码审查确保代码合并前的质量、安全性和可维护性。此规则定义何时以及如何进行代码审查。
|
|
6
|
+
|
|
7
|
+
## 何时审查
|
|
8
|
+
|
|
9
|
+
**强制审查触发条件:**
|
|
10
|
+
|
|
11
|
+
- 编写或修改代码后
|
|
12
|
+
- 提交到共享分支之前
|
|
13
|
+
- 更改安全敏感代码时(认证、支付、用户数据)
|
|
14
|
+
- 进行架构更改时
|
|
15
|
+
- 合并 pull request 之前
|
|
16
|
+
|
|
17
|
+
**审查前要求:**
|
|
18
|
+
|
|
19
|
+
在请求审查之前,确保:
|
|
20
|
+
|
|
21
|
+
- 所有自动化检查(CI/CD)已通过
|
|
22
|
+
- 合并冲突已解决
|
|
23
|
+
- 分支已与目标分支同步
|
|
24
|
+
|
|
25
|
+
## 审查检查清单
|
|
26
|
+
|
|
27
|
+
在标记代码完成之前:
|
|
28
|
+
|
|
29
|
+
- [ ] 代码可读且命名良好
|
|
30
|
+
- [ ] 函数聚焦(<50 行)
|
|
31
|
+
- [ ] 文件内聚(<800 行)
|
|
32
|
+
- [ ] 无深层嵌套(>4 层)
|
|
33
|
+
- [ ] 错误显式处理
|
|
34
|
+
- [ ] 无硬编码密钥或凭据
|
|
35
|
+
- [ ] 无 console.log 或调试语句
|
|
36
|
+
- [ ] 新功能有测试
|
|
37
|
+
- [ ] 测试覆盖率满足 80% 最低要求
|
|
38
|
+
|
|
39
|
+
## 安全审查触发条件
|
|
40
|
+
|
|
41
|
+
**停止并使用 security-reviewer 代理当:**
|
|
42
|
+
|
|
43
|
+
- 认证或授权代码
|
|
44
|
+
- 用户输入处理
|
|
45
|
+
- 数据库查询
|
|
46
|
+
- 文件系统操作
|
|
47
|
+
- 外部 API 调用
|
|
48
|
+
- 加密操作
|
|
49
|
+
- 支付或金融代码
|
|
50
|
+
|
|
51
|
+
## 审查严重级别
|
|
52
|
+
|
|
53
|
+
| 级别 | 含义 | 行动 |
|
|
54
|
+
|-------|---------|--------|
|
|
55
|
+
| CRITICAL(关键) | 安全漏洞或数据丢失风险 | **阻止** - 合并前必须修复 |
|
|
56
|
+
| HIGH(高) | Bug 或重大质量问题 | **警告** - 合并前应修复 |
|
|
57
|
+
| MEDIUM(中) | 可维护性问题 | **信息** - 考虑修复 |
|
|
58
|
+
| LOW(低) | 风格或次要建议 | **注意** - 可选 |
|
|
59
|
+
|
|
60
|
+
## 代理使用
|
|
61
|
+
|
|
62
|
+
使用这些代理进行代码审查:
|
|
63
|
+
|
|
64
|
+
| 代理 | 用途 |
|
|
65
|
+
|-------|--------|
|
|
66
|
+
| **code-reviewer** | 通用代码质量、模式、最佳实践 |
|
|
67
|
+
| **security-reviewer** | 安全漏洞、OWASP Top 10 |
|
|
68
|
+
| **typescript-reviewer** | TypeScript/JavaScript 特定问题 |
|
|
69
|
+
| **python-reviewer** | Python 特定问题 |
|
|
70
|
+
| **go-reviewer** | Go 特定问题 |
|
|
71
|
+
| **rust-reviewer** | Rust 特定问题 |
|
|
72
|
+
|
|
73
|
+
## 审查工作流
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
1. 运行 git diff 了解更改
|
|
77
|
+
2. 先检查安全检查清单
|
|
78
|
+
3. 审查代码质量检查清单
|
|
79
|
+
4. 运行相关测试
|
|
80
|
+
5. 验证覆盖率 >= 80%
|
|
81
|
+
6. 使用适当的代理进行详细审查
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## 常见问题捕获
|
|
85
|
+
|
|
86
|
+
### 安全
|
|
87
|
+
|
|
88
|
+
- 硬编码凭据(API 密钥、密码、令牌)
|
|
89
|
+
- SQL 注入(查询中的字符串拼接)
|
|
90
|
+
- XSS 漏洞(未转义的用户输入)
|
|
91
|
+
- 路径遍历(未净化的文件路径)
|
|
92
|
+
- CSRF 保护缺失
|
|
93
|
+
- 认证绕过
|
|
94
|
+
|
|
95
|
+
### 代码质量
|
|
96
|
+
|
|
97
|
+
- 大函数(>50 行)- 拆分为更小的
|
|
98
|
+
- 大文件(>800 行)- 提取模块
|
|
99
|
+
- 深层嵌套(>4 层)- 使用提前返回
|
|
100
|
+
- 缺少错误处理 - 显式处理
|
|
101
|
+
- 变更模式 - 优先使用不可变操作
|
|
102
|
+
- 缺少测试 - 添加测试覆盖
|
|
103
|
+
|
|
104
|
+
### 性能
|
|
105
|
+
|
|
106
|
+
- N+1 查询 - 使用 JOIN 或批处理
|
|
107
|
+
- 缺少分页 - 给查询添加 LIMIT
|
|
108
|
+
- 无界查询 - 添加约束
|
|
109
|
+
- 缺少缓存 - 缓存昂贵操作
|
|
110
|
+
|
|
111
|
+
## 批准标准
|
|
112
|
+
|
|
113
|
+
- **批准**:无关键或高优先级问题
|
|
114
|
+
- **警告**:仅有高优先级问题(谨慎合并)
|
|
115
|
+
- **阻止**:发现关键问题
|
|
116
|
+
|
|
117
|
+
## 与其他规则的集成
|
|
118
|
+
|
|
119
|
+
此规则与以下规则配合:
|
|
120
|
+
|
|
121
|
+
- [testing.md](testing.md) - 测试覆盖率要求
|
|
122
|
+
- [security.md](security.md) - 安全检查清单
|
|
123
|
+
- [git-workflow.md](git-workflow.md) - 提交标准
|
|
124
|
+
- [agents.md](agents.md) - 代理委托
|