aigroup-workflow 2.2.1 → 2.2.3
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/.claude/commands/fix-build.md +10 -5
- package/.claude/commands/init-project.md +13 -8
- package/.claude/commands/plan.md +15 -8
- package/.claude/commands/review.md +12 -6
- package/.claude/commands/tdd.md +11 -5
- package/.claude/commands/workflow-start.md +20 -11
- package/.claude/settings.json +28 -0
- package/.codex/agents/architect.toml +207 -0
- package/.codex/agents/build-error-resolver.toml +110 -0
- package/.codex/agents/code-reviewer.toml +233 -0
- package/.codex/agents/doc-updater.toml +103 -0
- package/.codex/agents/e2e-runner.toml +103 -0
- package/.codex/agents/get-current-datetime.toml +23 -0
- package/.codex/agents/init-architect.toml +181 -0
- package/.codex/agents/planner.toml +208 -0
- package/.codex/agents/refactor-cleaner.toml +81 -0
- package/.codex/agents/rust-reviewer.toml +90 -0
- package/.codex/agents/security-reviewer.toml +104 -0
- package/.codex/agents/tdd-guide.toml +87 -0
- package/.codex/config.toml +22 -39
- package/AGENTS.md +2 -2
- package/CLAUDE.md +23 -1
- package/LICENSE +20 -20
- package/README.md +333 -333
- package/agents/a11y-architect.md +141 -141
- package/agents/architect.md +211 -211
- package/agents/build-error-resolver.md +114 -114
- package/agents/chief-of-staff.md +151 -151
- package/agents/code-architect.md +71 -71
- package/agents/code-explorer.md +69 -69
- package/agents/code-reviewer.md +237 -237
- package/agents/code-simplifier.md +47 -47
- package/agents/comment-analyzer.md +45 -45
- package/agents/conversation-analyzer.md +52 -52
- package/agents/cpp-build-resolver.md +90 -90
- package/agents/cpp-reviewer.md +72 -72
- package/agents/csharp-reviewer.md +101 -101
- package/agents/dart-build-resolver.md +201 -201
- package/agents/database-reviewer.md +91 -91
- package/agents/doc-updater.md +107 -107
- package/agents/docs-lookup.md +68 -68
- package/agents/e2e-runner.md +107 -107
- package/agents/flutter-reviewer.md +243 -243
- package/agents/gan-evaluator.md +209 -209
- package/agents/gan-generator.md +131 -131
- package/agents/gan-planner.md +99 -99
- package/agents/get-current-datetime.md +26 -26
- package/agents/go-build-resolver.md +94 -94
- package/agents/go-reviewer.md +76 -76
- package/agents/harness-optimizer.md +35 -35
- package/agents/healthcare-reviewer.md +83 -83
- package/agents/java-build-resolver.md +153 -153
- package/agents/java-reviewer.md +92 -92
- package/agents/kotlin-build-resolver.md +118 -118
- package/agents/kotlin-reviewer.md +159 -159
- package/agents/loop-operator.md +36 -36
- package/agents/opensource-forker.md +198 -198
- package/agents/opensource-packager.md +249 -249
- package/agents/opensource-sanitizer.md +188 -188
- package/agents/performance-optimizer.md +446 -446
- package/agents/planner.md +212 -212
- package/agents/pr-test-analyzer.md +45 -45
- package/agents/python-reviewer.md +98 -98
- package/agents/pytorch-build-resolver.md +120 -120
- package/agents/refactor-cleaner.md +85 -85
- package/agents/rust-build-resolver.md +148 -148
- package/agents/rust-reviewer.md +94 -94
- package/agents/security-reviewer.md +108 -108
- package/agents/seo-specialist.md +59 -59
- package/agents/silent-failure-hunter.md +50 -50
- package/agents/tdd-guide.md +91 -91
- package/agents/type-design-analyzer.md +41 -41
- package/agents/typescript-reviewer.md +112 -112
- package/cli/commands/update.mjs +1 -1
- package/cli/utils/scaffold.mjs +53 -0
- package/docs/rules/agents.md +166 -50
- package/docs/rules/cpp/coding-style.md +44 -44
- package/docs/rules/cpp/hooks.md +39 -39
- package/docs/rules/cpp/patterns.md +51 -51
- package/docs/rules/cpp/security.md +51 -51
- package/docs/rules/cpp/testing.md +44 -44
- package/docs/rules/csharp/coding-style.md +72 -72
- package/docs/rules/csharp/hooks.md +25 -25
- package/docs/rules/csharp/patterns.md +50 -50
- package/docs/rules/csharp/security.md +58 -58
- package/docs/rules/csharp/testing.md +46 -46
- package/docs/rules/dart/coding-style.md +159 -159
- package/docs/rules/dart/hooks.md +66 -66
- package/docs/rules/dart/patterns.md +261 -261
- package/docs/rules/dart/security.md +135 -135
- package/docs/rules/dart/testing.md +215 -215
- package/docs/rules/golang/coding-style.md +32 -32
- package/docs/rules/golang/hooks.md +17 -17
- package/docs/rules/golang/patterns.md +45 -45
- package/docs/rules/golang/security.md +34 -34
- package/docs/rules/golang/testing.md +31 -31
- package/docs/rules/java/coding-style.md +114 -114
- package/docs/rules/java/hooks.md +18 -18
- package/docs/rules/java/patterns.md +146 -146
- package/docs/rules/java/security.md +100 -100
- package/docs/rules/java/testing.md +131 -131
- package/docs/rules/java_zn/coding-style.md +169 -0
- package/docs/rules/java_zn/mybatis.md +102 -0
- package/docs/rules/kotlin/coding-style.md +86 -86
- package/docs/rules/kotlin/hooks.md +17 -17
- package/docs/rules/kotlin/patterns.md +146 -146
- package/docs/rules/kotlin/security.md +82 -82
- package/docs/rules/kotlin/testing.md +128 -128
- package/docs/rules/perl/coding-style.md +46 -46
- package/docs/rules/perl/hooks.md +22 -22
- package/docs/rules/perl/patterns.md +76 -76
- package/docs/rules/perl/security.md +69 -69
- package/docs/rules/perl/testing.md +54 -54
- package/docs/rules/php/coding-style.md +40 -40
- package/docs/rules/php/hooks.md +24 -24
- package/docs/rules/php/patterns.md +33 -33
- package/docs/rules/php/security.md +37 -37
- package/docs/rules/php/testing.md +39 -39
- package/docs/rules/python/coding-style.md +42 -42
- package/docs/rules/python/hooks.md +19 -19
- package/docs/rules/python/patterns.md +39 -39
- package/docs/rules/python/security.md +30 -30
- package/docs/rules/python/testing.md +38 -38
- package/docs/rules/rust/coding-style.md +151 -151
- package/docs/rules/rust/hooks.md +16 -16
- package/docs/rules/rust/patterns.md +168 -168
- package/docs/rules/rust/security.md +141 -141
- package/docs/rules/rust/testing.md +154 -154
- package/docs/rules/swift/coding-style.md +47 -47
- package/docs/rules/swift/hooks.md +20 -20
- package/docs/rules/swift/patterns.md +66 -66
- package/docs/rules/swift/security.md +33 -33
- package/docs/rules/swift/testing.md +45 -45
- package/docs/rules/typescript/coding-style.md +199 -199
- package/docs/rules/typescript/hooks.md +22 -22
- package/docs/rules/typescript/patterns.md +52 -52
- package/docs/rules/typescript/security.md +28 -28
- package/docs/rules/typescript/testing.md +18 -18
- package/docs/rules/web/coding-style.md +96 -96
- package/docs/rules/web/design-quality.md +62 -62
- package/docs/rules/web/hooks.md +120 -120
- package/docs/rules/web/patterns.md +79 -79
- package/docs/rules/web/performance.md +64 -64
- package/docs/rules/web/security.md +57 -57
- package/docs/rules/web/testing.md +55 -55
- package/docs/templates/README.md +36 -36
- package/docs/templates/ai-project-final.md +124 -124
- package/docs/templates/ai-project.md +105 -105
- package/docs/templates/api.md +157 -157
- package/docs/templates/bug.md +62 -62
- package/docs/templates/code-review.md +87 -87
- package/docs/templates/generic.md +116 -116
- package/docs/templates/implementation-plan.md +1 -1
- package/docs/templates/meeting.md +68 -68
- package/docs/templates/prd.md +98 -98
- package/docs/templates/ui.md +134 -134
- package/docs/workflow-pipeline.md +5 -5
- package/package.json +40 -39
- package/skills/SUPERPOWERS-LICENSE +21 -21
- package/skills/ai-ml/fine-tuning-expert/SKILL.md +162 -162
- package/skills/ai-ml/fine-tuning-expert/references/dataset-preparation.md +540 -540
- package/skills/ai-ml/fine-tuning-expert/references/deployment-optimization.md +673 -673
- package/skills/ai-ml/fine-tuning-expert/references/evaluation-metrics.md +597 -597
- package/skills/ai-ml/fine-tuning-expert/references/hyperparameter-tuning.md +565 -565
- package/skills/ai-ml/fine-tuning-expert/references/lora-peft.md +347 -347
- package/skills/ai-ml/ml-pipeline/SKILL.md +159 -159
- package/skills/ai-ml/ml-pipeline/references/experiment-tracking.md +833 -833
- package/skills/ai-ml/ml-pipeline/references/feature-engineering.md +631 -631
- package/skills/ai-ml/ml-pipeline/references/model-validation.md +978 -978
- package/skills/ai-ml/ml-pipeline/references/pipeline-orchestration.md +907 -907
- package/skills/ai-ml/ml-pipeline/references/training-pipelines.md +782 -782
- package/skills/ai-ml/rag-architect/SKILL.md +194 -194
- package/skills/ai-ml/rag-architect/references/chunking-strategies.md +878 -878
- package/skills/ai-ml/rag-architect/references/embedding-models.md +561 -561
- package/skills/ai-ml/rag-architect/references/rag-evaluation.md +833 -833
- package/skills/ai-ml/rag-architect/references/retrieval-optimization.md +795 -795
- package/skills/ai-ml/rag-architect/references/vector-databases.md +589 -589
- package/skills/ai-ml/spark-engineer/SKILL.md +148 -148
- package/skills/ai-ml/spark-engineer/references/partitioning-caching.md +543 -543
- package/skills/ai-ml/spark-engineer/references/performance-tuning.md +544 -544
- package/skills/ai-ml/spark-engineer/references/rdd-operations.md +599 -599
- package/skills/ai-ml/spark-engineer/references/spark-sql-dataframes.md +474 -474
- package/skills/ai-ml/spark-engineer/references/streaming-patterns.md +786 -786
- package/skills/backend/api-designer/SKILL.md +217 -217
- package/skills/backend/api-designer/references/error-handling.md +541 -541
- package/skills/backend/api-designer/references/openapi.md +824 -824
- package/skills/backend/api-designer/references/pagination.md +494 -494
- package/skills/backend/api-designer/references/rest-patterns.md +335 -335
- package/skills/backend/api-designer/references/versioning.md +391 -391
- package/skills/backend/architecture-designer/SKILL.md +117 -117
- package/skills/backend/architecture-designer/references/adr-template.md +116 -116
- package/skills/backend/architecture-designer/references/architecture-patterns.md +111 -111
- package/skills/backend/architecture-designer/references/database-selection.md +102 -102
- package/skills/backend/architecture-designer/references/nfr-checklist.md +112 -112
- package/skills/backend/architecture-designer/references/system-design.md +100 -100
- package/skills/backend/code-documenter/SKILL.md +147 -147
- package/skills/backend/code-documenter/references/api-docs-fastapi-django.md +166 -166
- package/skills/backend/code-documenter/references/api-docs-nestjs-express.md +220 -220
- package/skills/backend/code-documenter/references/coverage-reports.md +125 -125
- package/skills/backend/code-documenter/references/documentation-systems.md +333 -333
- package/skills/backend/code-documenter/references/interactive-api-docs.md +531 -531
- package/skills/backend/code-documenter/references/python-docstrings.md +121 -121
- package/skills/backend/code-documenter/references/typescript-jsdoc.md +145 -145
- package/skills/backend/code-documenter/references/user-guides-tutorials.md +530 -530
- package/skills/backend/debugging-wizard/SKILL.md +105 -105
- package/skills/backend/debugging-wizard/references/common-patterns.md +132 -132
- package/skills/backend/debugging-wizard/references/debugging-tools.md +140 -140
- package/skills/backend/debugging-wizard/references/quick-fixes.md +177 -177
- package/skills/backend/debugging-wizard/references/strategies.md +142 -142
- package/skills/backend/debugging-wizard/references/systematic-debugging.md +367 -367
- package/skills/backend/feature-forge/SKILL.md +98 -98
- package/skills/backend/feature-forge/references/acceptance-criteria.md +104 -104
- package/skills/backend/feature-forge/references/ears-syntax.md +99 -99
- package/skills/backend/feature-forge/references/interview-questions.md +150 -150
- package/skills/backend/feature-forge/references/pre-discovery-subagents.md +54 -54
- package/skills/backend/feature-forge/references/specification-template.md +103 -103
- package/skills/backend/fullstack-guardian/SKILL.md +105 -105
- package/skills/backend/fullstack-guardian/references/api-design-standards.md +307 -307
- package/skills/backend/fullstack-guardian/references/architecture-decisions.md +350 -350
- package/skills/backend/fullstack-guardian/references/backend-patterns.md +237 -237
- package/skills/backend/fullstack-guardian/references/common-patterns.md +134 -134
- package/skills/backend/fullstack-guardian/references/deliverables-checklist.md +354 -354
- package/skills/backend/fullstack-guardian/references/design-template.md +91 -91
- package/skills/backend/fullstack-guardian/references/error-handling.md +135 -135
- package/skills/backend/fullstack-guardian/references/frontend-patterns.md +340 -340
- package/skills/backend/fullstack-guardian/references/integration-patterns.md +333 -333
- package/skills/backend/fullstack-guardian/references/security-checklist.md +106 -106
- package/skills/backend/graphql-architect/SKILL.md +146 -146
- package/skills/backend/graphql-architect/references/federation.md +418 -418
- package/skills/backend/graphql-architect/references/migration-from-rest.md +1141 -1141
- package/skills/backend/graphql-architect/references/resolvers.md +425 -425
- package/skills/backend/graphql-architect/references/schema-design.md +393 -393
- package/skills/backend/graphql-architect/references/security.md +569 -569
- package/skills/backend/graphql-architect/references/subscriptions.md +510 -510
- package/skills/backend/legacy-modernizer/SKILL.md +137 -137
- package/skills/backend/legacy-modernizer/references/legacy-testing.md +381 -381
- package/skills/backend/legacy-modernizer/references/migration-strategies.md +423 -423
- package/skills/backend/legacy-modernizer/references/refactoring-patterns.md +395 -395
- package/skills/backend/legacy-modernizer/references/strangler-fig-pattern.md +281 -281
- package/skills/backend/legacy-modernizer/references/system-assessment.md +487 -487
- package/skills/backend/microservices-architect/SKILL.md +164 -164
- package/skills/backend/microservices-architect/references/communication.md +499 -499
- package/skills/backend/microservices-architect/references/data.md +721 -721
- package/skills/backend/microservices-architect/references/decomposition.md +344 -344
- package/skills/backend/microservices-architect/references/observability.md +805 -805
- package/skills/backend/microservices-architect/references/patterns.md +603 -603
- package/skills/database/database-optimizer/SKILL.md +147 -147
- package/skills/database/database-optimizer/references/index-strategies.md +331 -331
- package/skills/database/database-optimizer/references/monitoring-analysis.md +501 -501
- package/skills/database/database-optimizer/references/mysql-tuning.md +452 -452
- package/skills/database/database-optimizer/references/postgresql-tuning.md +413 -413
- package/skills/database/database-optimizer/references/query-optimization.md +251 -251
- package/skills/database/postgres-pro/SKILL.md +152 -152
- package/skills/database/postgres-pro/references/extensions.md +404 -404
- package/skills/database/postgres-pro/references/jsonb.md +321 -321
- package/skills/database/postgres-pro/references/maintenance.md +481 -481
- package/skills/database/postgres-pro/references/performance.md +265 -265
- package/skills/database/postgres-pro/references/replication.md +446 -446
- package/skills/database/sql-pro/SKILL.md +129 -129
- package/skills/database/sql-pro/references/database-design.md +402 -402
- package/skills/database/sql-pro/references/dialect-differences.md +419 -419
- package/skills/database/sql-pro/references/optimization.md +384 -384
- package/skills/database/sql-pro/references/query-patterns.md +285 -285
- package/skills/database/sql-pro/references/window-functions.md +328 -328
- package/skills/dotnet/csharp-developer/SKILL.md +125 -125
- package/skills/dotnet/csharp-developer/references/aspnet-core.md +394 -394
- package/skills/dotnet/csharp-developer/references/blazor.md +553 -553
- package/skills/dotnet/csharp-developer/references/entity-framework.md +409 -409
- package/skills/dotnet/csharp-developer/references/modern-csharp.md +248 -248
- package/skills/dotnet/csharp-developer/references/performance.md +498 -498
- package/skills/dotnet/dotnet-core-expert/SKILL.md +138 -138
- package/skills/dotnet/dotnet-core-expert/references/authentication.md +546 -546
- package/skills/dotnet/dotnet-core-expert/references/clean-architecture.md +455 -455
- package/skills/dotnet/dotnet-core-expert/references/cloud-native.md +548 -548
- package/skills/dotnet/dotnet-core-expert/references/entity-framework.md +440 -440
- package/skills/dotnet/dotnet-core-expert/references/minimal-apis.md +319 -319
- package/skills/frontend/angular-architect/SKILL.md +152 -152
- package/skills/frontend/angular-architect/references/components.md +297 -297
- package/skills/frontend/angular-architect/references/ngrx.md +401 -401
- package/skills/frontend/angular-architect/references/routing.md +361 -361
- package/skills/frontend/angular-architect/references/rxjs.md +319 -319
- package/skills/frontend/angular-architect/references/testing.md +405 -405
- package/skills/frontend/design-commands/design.md +91 -91
- package/skills/frontend/design-commands/handoff.md +97 -97
- package/skills/frontend/design-commands/prototype.md +120 -120
- package/skills/frontend/design-commands/spec.md +160 -160
- package/skills/frontend/design-commands/style.md +78 -78
- package/skills/frontend/flutter-expert/SKILL.md +138 -138
- package/skills/frontend/flutter-expert/references/bloc-state.md +259 -259
- package/skills/frontend/flutter-expert/references/gorouter-navigation.md +119 -119
- package/skills/frontend/flutter-expert/references/performance.md +99 -99
- package/skills/frontend/flutter-expert/references/project-structure.md +118 -118
- package/skills/frontend/flutter-expert/references/riverpod-state.md +130 -130
- package/skills/frontend/flutter-expert/references/widget-patterns.md +123 -123
- package/skills/frontend/nextjs-developer/SKILL.md +143 -143
- package/skills/frontend/nextjs-developer/references/app-router.md +311 -311
- package/skills/frontend/nextjs-developer/references/data-fetching.md +482 -482
- package/skills/frontend/nextjs-developer/references/deployment.md +545 -545
- package/skills/frontend/nextjs-developer/references/server-actions.md +462 -462
- package/skills/frontend/nextjs-developer/references/server-components.md +384 -384
- package/skills/frontend/react-expert/SKILL.md +149 -149
- package/skills/frontend/react-expert/references/hooks-patterns.md +162 -162
- package/skills/frontend/react-expert/references/migration-class-to-modern.md +1119 -1119
- package/skills/frontend/react-expert/references/performance.md +168 -168
- package/skills/frontend/react-expert/references/react-19-features.md +174 -174
- package/skills/frontend/react-expert/references/server-components.md +143 -143
- package/skills/frontend/react-expert/references/state-management.md +171 -171
- package/skills/frontend/react-expert/references/testing-react.md +174 -174
- package/skills/frontend/react-native-expert/SKILL.md +185 -185
- package/skills/frontend/react-native-expert/references/expo-router.md +187 -187
- package/skills/frontend/react-native-expert/references/list-optimization.md +204 -204
- package/skills/frontend/react-native-expert/references/platform-handling.md +188 -188
- package/skills/frontend/react-native-expert/references/project-structure.md +171 -171
- package/skills/frontend/react-native-expert/references/storage-hooks.md +173 -173
- package/skills/frontend/senior-frontend/SKILL.md +477 -477
- package/skills/frontend/senior-frontend/references/frontend_best_practices.md +806 -806
- package/skills/frontend/senior-frontend/references/nextjs_optimization_guide.md +724 -724
- package/skills/frontend/senior-frontend/references/react_patterns.md +746 -746
- package/skills/frontend/senior-frontend/scripts/bundle_analyzer.py +407 -407
- package/skills/frontend/senior-frontend/scripts/component_generator.py +329 -329
- package/skills/frontend/senior-frontend/scripts/frontend_scaffolder.py +1005 -1005
- package/skills/frontend/ui-ux-pro-max/SKILL.md +386 -386
- package/skills/frontend/ui-ux-pro-max/data/charts.csv +26 -26
- package/skills/frontend/ui-ux-pro-max/data/colors.csv +97 -97
- package/skills/frontend/ui-ux-pro-max/data/icons.csv +101 -101
- package/skills/frontend/ui-ux-pro-max/data/landing.csv +31 -31
- package/skills/frontend/ui-ux-pro-max/data/products.csv +96 -96
- package/skills/frontend/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/skills/frontend/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/skills/frontend/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/skills/frontend/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/skills/frontend/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/skills/frontend/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/skills/frontend/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/skills/frontend/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/skills/frontend/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/skills/frontend/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/skills/frontend/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/skills/frontend/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/skills/frontend/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/skills/frontend/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/skills/frontend/ui-ux-pro-max/data/styles.csv +68 -68
- package/skills/frontend/ui-ux-pro-max/data/typography.csv +57 -57
- package/skills/frontend/ui-ux-pro-max/data/ui-reasoning.csv +101 -101
- package/skills/frontend/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/skills/frontend/ui-ux-pro-max/data/web-interface.csv +31 -31
- package/skills/frontend/ui-ux-pro-max/scripts/core.py +253 -253
- package/skills/frontend/ui-ux-pro-max/scripts/design_system.py +1067 -1067
- package/skills/frontend/ui-ux-pro-max/scripts/search.py +114 -114
- package/skills/frontend/vue-expert/SKILL.md +98 -98
- package/skills/frontend/vue-expert/references/build-tooling.md +480 -480
- package/skills/frontend/vue-expert/references/components.md +448 -448
- package/skills/frontend/vue-expert/references/composition-api.md +299 -299
- package/skills/frontend/vue-expert/references/mobile-hybrid.md +636 -636
- package/skills/frontend/vue-expert/references/nuxt.md +669 -669
- package/skills/frontend/vue-expert/references/state-management.md +449 -449
- package/skills/frontend/vue-expert/references/typescript.md +584 -584
- package/skills/frontend/vue-expert-js/SKILL.md +167 -167
- package/skills/frontend/vue-expert-js/references/component-architecture.md +219 -219
- package/skills/frontend/vue-expert-js/references/composables-patterns.md +183 -183
- package/skills/frontend/vue-expert-js/references/jsdoc-typing.md +535 -535
- package/skills/frontend/vue-expert-js/references/state-management.md +249 -249
- package/skills/frontend/vue-expert-js/references/testing-patterns.md +237 -237
- package/skills/go-rust-cpp/cpp-pro/SKILL.md +115 -115
- package/skills/go-rust-cpp/cpp-pro/references/build-tooling.md +440 -440
- package/skills/go-rust-cpp/cpp-pro/references/concurrency.md +437 -437
- package/skills/go-rust-cpp/cpp-pro/references/memory-performance.md +397 -397
- package/skills/go-rust-cpp/cpp-pro/references/modern-cpp.md +304 -304
- package/skills/go-rust-cpp/cpp-pro/references/templates.md +357 -357
- package/skills/go-rust-cpp/golang-pro/SKILL.md +122 -122
- package/skills/go-rust-cpp/golang-pro/references/concurrency.md +329 -329
- package/skills/go-rust-cpp/golang-pro/references/generics.md +442 -442
- package/skills/go-rust-cpp/golang-pro/references/interfaces.md +432 -432
- package/skills/go-rust-cpp/golang-pro/references/project-structure.md +477 -477
- package/skills/go-rust-cpp/golang-pro/references/testing.md +451 -451
- package/skills/go-rust-cpp/rust-engineer/SKILL.md +167 -167
- package/skills/go-rust-cpp/rust-engineer/references/async.md +458 -458
- package/skills/go-rust-cpp/rust-engineer/references/error-handling.md +334 -334
- package/skills/go-rust-cpp/rust-engineer/references/ownership.md +278 -278
- package/skills/go-rust-cpp/rust-engineer/references/testing.md +470 -470
- package/skills/go-rust-cpp/rust-engineer/references/traits.md +413 -413
- package/skills/infra/cli-developer/SKILL.md +113 -113
- package/skills/infra/cli-developer/references/design-patterns.md +221 -221
- package/skills/infra/cli-developer/references/go-cli.md +540 -540
- package/skills/infra/cli-developer/references/node-cli.md +383 -383
- package/skills/infra/cli-developer/references/python-cli.md +422 -422
- package/skills/infra/cli-developer/references/ux-patterns.md +448 -448
- package/skills/infra/cloud-architect/SKILL.md +216 -216
- package/skills/infra/cloud-architect/references/aws.md +394 -394
- package/skills/infra/cloud-architect/references/azure.md +562 -562
- package/skills/infra/cloud-architect/references/cost.md +582 -582
- package/skills/infra/cloud-architect/references/gcp.md +633 -633
- package/skills/infra/cloud-architect/references/multi-cloud.md +483 -483
- package/skills/infra/devops-engineer/SKILL.md +144 -144
- package/skills/infra/devops-engineer/references/deployment-strategies.md +241 -241
- package/skills/infra/devops-engineer/references/docker-patterns.md +113 -113
- package/skills/infra/devops-engineer/references/github-actions.md +139 -139
- package/skills/infra/devops-engineer/references/incident-response.md +331 -331
- package/skills/infra/devops-engineer/references/kubernetes.md +154 -154
- package/skills/infra/devops-engineer/references/platform-engineering.md +417 -417
- package/skills/infra/devops-engineer/references/release-automation.md +527 -527
- package/skills/infra/devops-engineer/references/terraform-iac.md +141 -141
- package/skills/infra/kubernetes-specialist/SKILL.md +241 -241
- package/skills/infra/kubernetes-specialist/references/configuration.md +452 -452
- package/skills/infra/kubernetes-specialist/references/cost-optimization.md +458 -458
- package/skills/infra/kubernetes-specialist/references/custom-operators.md +563 -563
- package/skills/infra/kubernetes-specialist/references/gitops.md +530 -530
- package/skills/infra/kubernetes-specialist/references/helm-charts.md +912 -912
- package/skills/infra/kubernetes-specialist/references/multi-cluster.md +507 -507
- package/skills/infra/kubernetes-specialist/references/networking.md +447 -447
- package/skills/infra/kubernetes-specialist/references/service-mesh.md +459 -459
- package/skills/infra/kubernetes-specialist/references/storage.md +535 -535
- package/skills/infra/kubernetes-specialist/references/troubleshooting.md +414 -414
- package/skills/infra/kubernetes-specialist/references/workloads.md +377 -377
- package/skills/infra/mcp-developer/SKILL.md +143 -143
- package/skills/infra/mcp-developer/references/protocol.md +244 -244
- package/skills/infra/mcp-developer/references/python-sdk.md +367 -367
- package/skills/infra/mcp-developer/references/resources.md +554 -554
- package/skills/infra/mcp-developer/references/tools.md +480 -480
- package/skills/infra/mcp-developer/references/typescript-sdk.md +350 -350
- package/skills/infra/monitoring-expert/SKILL.md +176 -176
- package/skills/infra/monitoring-expert/references/alerting-rules.md +141 -141
- package/skills/infra/monitoring-expert/references/application-profiling.md +331 -331
- package/skills/infra/monitoring-expert/references/capacity-planning.md +344 -344
- package/skills/infra/monitoring-expert/references/dashboards.md +126 -126
- package/skills/infra/monitoring-expert/references/opentelemetry.md +123 -123
- package/skills/infra/monitoring-expert/references/performance-testing.md +269 -269
- package/skills/infra/monitoring-expert/references/prometheus-metrics.md +136 -136
- package/skills/infra/monitoring-expert/references/structured-logging.md +142 -142
- package/skills/infra/sre-engineer/SKILL.md +181 -181
- package/skills/infra/sre-engineer/references/automation-toil.md +492 -492
- package/skills/infra/sre-engineer/references/error-budget-policy.md +334 -334
- package/skills/infra/sre-engineer/references/incident-chaos.md +576 -576
- package/skills/infra/sre-engineer/references/monitoring-alerting.md +424 -424
- package/skills/infra/sre-engineer/references/slo-sli-management.md +238 -238
- package/skills/infra/terraform-engineer/SKILL.md +143 -143
- package/skills/infra/terraform-engineer/references/best-practices.md +583 -583
- package/skills/infra/terraform-engineer/references/module-patterns.md +297 -297
- package/skills/infra/terraform-engineer/references/providers.md +452 -452
- package/skills/infra/terraform-engineer/references/state-management.md +371 -371
- package/skills/infra/terraform-engineer/references/testing.md +486 -486
- package/skills/infra/websocket-engineer/SKILL.md +168 -168
- package/skills/infra/websocket-engineer/references/alternatives.md +391 -391
- package/skills/infra/websocket-engineer/references/patterns.md +400 -400
- package/skills/infra/websocket-engineer/references/protocol.md +195 -195
- package/skills/infra/websocket-engineer/references/scaling.md +333 -333
- package/skills/infra/websocket-engineer/references/security.md +474 -474
- package/skills/java/java-architect/SKILL.md +132 -132
- package/skills/java/java-architect/references/jpa-optimization.md +393 -393
- package/skills/java/java-architect/references/reactive-webflux.md +356 -356
- package/skills/java/java-architect/references/spring-boot-setup.md +269 -269
- package/skills/java/java-architect/references/spring-security.md +445 -445
- package/skills/java/java-architect/references/testing-patterns.md +500 -500
- package/skills/java/kotlin-specialist/SKILL.md +147 -147
- package/skills/java/kotlin-specialist/references/android-compose.md +419 -419
- package/skills/java/kotlin-specialist/references/coroutines-flow.md +276 -276
- package/skills/java/kotlin-specialist/references/dsl-idioms.md +421 -421
- package/skills/java/kotlin-specialist/references/ktor-server.md +426 -426
- package/skills/java/kotlin-specialist/references/multiplatform-kmp.md +380 -380
- package/skills/java/spring-boot-engineer/SKILL.md +196 -195
- package/skills/java/spring-boot-engineer/references/cloud.md +498 -498
- package/skills/java/spring-boot-engineer/references/data.md +381 -381
- package/skills/java/spring-boot-engineer/references/mybatis-plus.md +592 -0
- package/skills/java/spring-boot-engineer/references/security.md +459 -459
- package/skills/java/spring-boot-engineer/references/testing.md +545 -545
- package/skills/java/spring-boot-engineer/references/web.md +295 -295
- package/skills/java/spring-boot-engineer_zn/SKILL.md +129 -0
- package/skills/java/spring-boot-engineer_zn/references/architecture.md +23 -0
- package/skills/java/spring-boot-engineer_zn/references/concurrency.md +9 -0
- package/skills/java/spring-boot-engineer_zn/references/exception-logging.md +31 -0
- package/skills/java/spring-boot-engineer_zn/references/persistence.md +13 -0
- package/skills/java/spring-boot-engineer_zn/references/pojo-lombok.md +48 -0
- package/skills/java/spring-boot-engineer_zn/references/security.md +9 -0
- package/skills/java/spring-boot-engineer_zn/references/testing.md +7 -0
- package/skills/java/spring-boot-engineer_zn/references/validation.md +80 -0
- package/skills/javascript/javascript-pro/SKILL.md +132 -132
- package/skills/javascript/javascript-pro/references/async-patterns.md +334 -334
- package/skills/javascript/javascript-pro/references/browser-apis.md +398 -398
- package/skills/javascript/javascript-pro/references/modern-syntax.md +272 -272
- package/skills/javascript/javascript-pro/references/modules.md +357 -357
- package/skills/javascript/javascript-pro/references/node-essentials.md +471 -471
- package/skills/javascript/nestjs-expert/SKILL.md +206 -206
- package/skills/javascript/nestjs-expert/references/authentication.md +166 -166
- package/skills/javascript/nestjs-expert/references/controllers-routing.md +111 -111
- package/skills/javascript/nestjs-expert/references/dtos-validation.md +153 -153
- package/skills/javascript/nestjs-expert/references/migration-from-express.md +1237 -1237
- package/skills/javascript/nestjs-expert/references/services-di.md +140 -140
- package/skills/javascript/nestjs-expert/references/testing-patterns.md +186 -186
- package/skills/javascript/typescript-pro/SKILL.md +145 -145
- package/skills/javascript/typescript-pro/references/advanced-types.md +259 -259
- package/skills/javascript/typescript-pro/references/configuration.md +445 -445
- package/skills/javascript/typescript-pro/references/patterns.md +484 -484
- package/skills/javascript/typescript-pro/references/type-guards.md +352 -352
- package/skills/javascript/typescript-pro/references/utility-types.md +329 -329
- package/skills/php/laravel-specialist/SKILL.md +262 -262
- package/skills/php/laravel-specialist/references/eloquent.md +351 -351
- package/skills/php/laravel-specialist/references/livewire.md +512 -512
- package/skills/php/laravel-specialist/references/queues.md +423 -423
- package/skills/php/laravel-specialist/references/routing.md +362 -362
- package/skills/php/laravel-specialist/references/testing.md +522 -522
- package/skills/php/php-pro/SKILL.md +206 -206
- package/skills/php/php-pro/references/async-patterns.md +412 -412
- package/skills/php/php-pro/references/laravel-patterns.md +377 -377
- package/skills/php/php-pro/references/modern-php-features.md +323 -323
- package/skills/php/php-pro/references/symfony-patterns.md +466 -466
- package/skills/php/php-pro/references/testing-quality.md +466 -466
- package/skills/product/competitive-analysis/SKILL.md +257 -257
- package/skills/product/meeting-notes/SKILL.md +266 -266
- package/skills/product/prd-template/SKILL.md +150 -150
- package/skills/product/stakeholder-update/SKILL.md +225 -225
- package/skills/product/user-research-synthesis/SKILL.md +235 -235
- package/skills/python/django-expert/SKILL.md +162 -162
- package/skills/python/django-expert/references/authentication.md +145 -145
- package/skills/python/django-expert/references/drf-serializers.md +148 -148
- package/skills/python/django-expert/references/models-orm.md +151 -151
- package/skills/python/django-expert/references/testing-django.md +204 -204
- package/skills/python/django-expert/references/viewsets-views.md +153 -153
- package/skills/python/fastapi-expert/SKILL.md +185 -185
- package/skills/python/fastapi-expert/references/async-sqlalchemy.md +146 -146
- package/skills/python/fastapi-expert/references/authentication.md +159 -159
- package/skills/python/fastapi-expert/references/endpoints-routing.md +142 -142
- package/skills/python/fastapi-expert/references/migration-from-django.md +996 -996
- package/skills/python/fastapi-expert/references/pydantic-v2.md +135 -135
- package/skills/python/fastapi-expert/references/testing-async.md +159 -159
- package/skills/python/pandas-pro/SKILL.md +178 -178
- package/skills/python/pandas-pro/references/aggregation-groupby.md +545 -545
- package/skills/python/pandas-pro/references/data-cleaning.md +500 -500
- package/skills/python/pandas-pro/references/dataframe-operations.md +420 -420
- package/skills/python/pandas-pro/references/merging-joining.md +596 -596
- package/skills/python/pandas-pro/references/performance-optimization.md +597 -597
- package/skills/python/python-pro/SKILL.md +177 -177
- package/skills/python/python-pro/references/async-patterns.md +356 -356
- package/skills/python/python-pro/references/packaging.md +460 -460
- package/skills/python/python-pro/references/standard-library.md +378 -378
- package/skills/python/python-pro/references/testing.md +404 -404
- package/skills/python/python-pro/references/type-system.md +290 -290
- package/skills/quality/chaos-engineer/SKILL.md +182 -182
- package/skills/quality/chaos-engineer/references/chaos-tools.md +511 -511
- package/skills/quality/chaos-engineer/references/experiment-design.md +229 -229
- package/skills/quality/chaos-engineer/references/game-days.md +434 -434
- package/skills/quality/chaos-engineer/references/infrastructure-chaos.md +348 -348
- package/skills/quality/chaos-engineer/references/kubernetes-chaos.md +432 -432
- package/skills/quality/code-reviewer/SKILL.md +119 -119
- package/skills/quality/code-reviewer/references/common-issues.md +142 -142
- package/skills/quality/code-reviewer/references/feedback-examples.md +144 -144
- package/skills/quality/code-reviewer/references/receiving-feedback.md +238 -238
- package/skills/quality/code-reviewer/references/report-template.md +109 -109
- package/skills/quality/code-reviewer/references/review-checklist.md +88 -88
- package/skills/quality/code-reviewer/references/spec-compliance-review.md +258 -258
- package/skills/quality/playwright-expert/SKILL.md +169 -169
- package/skills/quality/playwright-expert/references/api-mocking.md +140 -140
- package/skills/quality/playwright-expert/references/configuration.md +155 -155
- package/skills/quality/playwright-expert/references/debugging-flaky.md +150 -150
- package/skills/quality/playwright-expert/references/page-object-model.md +152 -152
- package/skills/quality/playwright-expert/references/selectors-locators.md +119 -119
- package/skills/quality/secure-code-guardian/SKILL.md +191 -191
- package/skills/quality/secure-code-guardian/references/authentication.md +136 -136
- package/skills/quality/secure-code-guardian/references/input-validation.md +146 -146
- package/skills/quality/secure-code-guardian/references/owasp-prevention.md +135 -135
- package/skills/quality/secure-code-guardian/references/security-headers.md +133 -133
- package/skills/quality/secure-code-guardian/references/xss-csrf.md +157 -157
- package/skills/quality/security-reviewer/SKILL.md +103 -103
- package/skills/quality/security-reviewer/references/infrastructure-security.md +268 -268
- package/skills/quality/security-reviewer/references/penetration-testing.md +268 -268
- package/skills/quality/security-reviewer/references/report-template.md +170 -170
- package/skills/quality/security-reviewer/references/sast-tools.md +117 -117
- package/skills/quality/security-reviewer/references/secret-scanning.md +125 -125
- package/skills/quality/security-reviewer/references/vulnerability-patterns.md +152 -152
- package/skills/quality/senior-qa/README.md +196 -196
- package/skills/quality/senior-qa/SKILL.md +399 -399
- package/skills/quality/senior-qa/references/qa_best_practices.md +964 -964
- package/skills/quality/senior-qa/references/test_automation_patterns.md +1009 -1009
- package/skills/quality/senior-qa/references/testing_strategies.md +649 -649
- package/skills/quality/senior-qa/scripts/coverage_analyzer.py +836 -836
- package/skills/quality/senior-qa/scripts/e2e_test_scaffolder.py +820 -820
- package/skills/quality/senior-qa/scripts/test_suite_generator.py +605 -605
- package/skills/quality/tdd-guide/HOW_TO_USE.md +313 -313
- package/skills/quality/tdd-guide/README.md +680 -680
- package/skills/quality/tdd-guide/SKILL.md +122 -122
- package/skills/quality/tdd-guide/assets/expected_output.json +77 -77
- package/skills/quality/tdd-guide/assets/sample_input_python.json +39 -39
- package/skills/quality/tdd-guide/assets/sample_input_typescript.json +36 -36
- package/skills/quality/tdd-guide/references/ci-integration.md +195 -195
- package/skills/quality/tdd-guide/references/framework-guide.md +206 -206
- package/skills/quality/tdd-guide/references/tdd-best-practices.md +128 -128
- package/skills/quality/tdd-guide/scripts/coverage_analyzer.py +434 -434
- package/skills/quality/tdd-guide/scripts/fixture_generator.py +440 -440
- package/skills/quality/tdd-guide/scripts/format_detector.py +384 -384
- package/skills/quality/tdd-guide/scripts/framework_adapter.py +428 -428
- package/skills/quality/tdd-guide/scripts/metrics_calculator.py +456 -456
- package/skills/quality/tdd-guide/scripts/output_formatter.py +354 -354
- package/skills/quality/tdd-guide/scripts/tdd_workflow.py +474 -474
- package/skills/quality/tdd-guide/scripts/test_generator.py +438 -438
- package/skills/quality/test-master/SKILL.md +94 -94
- package/skills/quality/test-master/references/automation-frameworks.md +294 -294
- package/skills/quality/test-master/references/e2e-testing.md +128 -128
- package/skills/quality/test-master/references/integration-testing.md +120 -120
- package/skills/quality/test-master/references/performance-testing.md +118 -118
- package/skills/quality/test-master/references/qa-methodology.md +247 -247
- package/skills/quality/test-master/references/security-testing.md +127 -127
- package/skills/quality/test-master/references/tdd-iron-laws.md +174 -174
- package/skills/quality/test-master/references/test-reports.md +104 -104
- package/skills/quality/test-master/references/testing-anti-patterns.md +231 -231
- package/skills/quality/test-master/references/unit-testing.md +113 -113
- package/skills/ruby/rails-expert/SKILL.md +154 -154
- package/skills/ruby/rails-expert/references/active-record.md +244 -244
- package/skills/ruby/rails-expert/references/api-development.md +401 -401
- package/skills/ruby/rails-expert/references/background-jobs.md +272 -272
- package/skills/ruby/rails-expert/references/hotwire-turbo.md +228 -228
- package/skills/ruby/rails-expert/references/rspec-testing.md +367 -367
- package/skills/swift/swift-expert/SKILL.md +163 -163
- package/skills/swift/swift-expert/references/async-concurrency.md +360 -360
- package/skills/swift/swift-expert/references/memory-performance.md +377 -377
- package/skills/swift/swift-expert/references/protocol-oriented.md +354 -354
- package/skills/swift/swift-expert/references/swiftui-patterns.md +291 -291
- package/skills/swift/swift-expert/references/testing-patterns.md +399 -399
- package/skills/workflow/brainstorming/SKILL.md +164 -164
- package/skills/workflow/brainstorming/scripts/frame-template.html +214 -214
- package/skills/workflow/brainstorming/scripts/helper.js +88 -88
- package/skills/workflow/brainstorming/scripts/server.cjs +354 -354
- package/skills/workflow/brainstorming/scripts/start-server.sh +148 -148
- package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -56
- package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -49
- package/skills/workflow/brainstorming/visual-companion.md +287 -287
- package/skills/workflow/documentation/SKILL.md +45 -45
- package/skills/workflow/entropy-management/SKILL.md +115 -115
- package/skills/workflow/executing-plans/SKILL.md +70 -70
- package/skills/workflow/finishing-a-development-branch/SKILL.md +200 -200
- package/skills/workflow/receiving-code-review/SKILL.md +213 -213
- package/skills/workflow/requesting-code-review/SKILL.md +105 -105
- package/skills/workflow/requesting-code-review/code-reviewer.md +146 -146
- package/skills/workflow/requirement-engineering/SKILL.md +111 -111
- package/skills/workflow/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/workflow/systematic-debugging/SKILL.md +296 -296
- package/skills/workflow/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/workflow/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/workflow/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/workflow/systematic-debugging/find-polluter.sh +63 -63
- package/skills/workflow/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/workflow/systematic-debugging/test-academic.md +14 -14
- package/skills/workflow/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/workflow/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/workflow/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/workflow/using-git-worktrees/SKILL.md +218 -218
- package/skills/workflow/verification-before-completion/SKILL.md +139 -139
- package/skills/workflow/writing-plans/SKILL.md +151 -151
- package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -49
- package/skills/workflow/writing-skills/SKILL.md +655 -655
- package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -1150
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
- package/skills/workflow/writing-skills/persuasion-principles.md +187 -187
- package/skills/workflow/writing-skills/render-graphs.js +168 -168
- package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -384
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spring-boot-engineer_zn
|
|
3
|
+
description: 中文版 Java / Spring Boot 工程规约与代码 Review 标准。覆盖 Jakarta Validation 参数校验、空安全工具类、常量与枚举、Lombok/POJO、异常与日志、安全、MySQL/ORM、并发、单元测试、工程分层与 Review 清单。当用中文进行 Java/Spring Boot 代码生成、改造或 Review 时加载。
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
domain: backend
|
|
8
|
+
triggers: Java 代码规约, Spring Boot 规约, Jakarta Validation, Lombok, MyBatis, 阿里巴巴 Java 开发手册, 代码 Review, 工程分层
|
|
9
|
+
role: specialist
|
|
10
|
+
scope: standards
|
|
11
|
+
output-format: code
|
|
12
|
+
related-skills: spring-boot-engineer, java-architect
|
|
13
|
+
language: zh-CN
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Spring Boot 工程规约(中文)
|
|
17
|
+
|
|
18
|
+
## 适用范围
|
|
19
|
+
|
|
20
|
+
本 skill 以《Java 开发手册》为基准,适用于 Java / Spring / Spring Boot 项目的代码生成、修改和 Review,强制遵守命名、格式、异常日志、安全、数据库、分层与设计规约。
|
|
21
|
+
|
|
22
|
+
加载时机:当用中文进行 Java / Spring Boot 代码生成、改造或 Review,且需要超出纯编码风格(见 `docs/rules/java_zn/coding-style.md`)的工程规约时,加载本 skill。生成代码时优先遵守项目现有约定;项目无明确约定时按本 skill 执行。
|
|
23
|
+
|
|
24
|
+
## 参考指南
|
|
25
|
+
|
|
26
|
+
按上下文加载对应参考文件:
|
|
27
|
+
|
|
28
|
+
| 主题 | 参考文件 | 何时加载 |
|
|
29
|
+
|------|----------|----------|
|
|
30
|
+
| DTO 与参数校验 | `references/validation.md` | Jakarta Validation 注解、`@Valid`/`@Validated`、跨字段与业务校验 |
|
|
31
|
+
| OOP / POJO / Lombok | `references/pojo-lombok.md` | POJO 设计、Lombok 注解组合、Builder、`@Data` 取舍 |
|
|
32
|
+
| 异常与日志 | `references/exception-logging.md` | 异常处理完整规则、SLF4J 日志、脱敏 |
|
|
33
|
+
| 安全 | `references/security.md` | 参数校验、权限、脱敏、SQL 注入、CSRF、幂等防刷 |
|
|
34
|
+
| MySQL 与 ORM | `references/persistence.md` | 表结构规约、MyBatis、分页、事务 |
|
|
35
|
+
| 并发 | `references/concurrency.md` | 线程池、`ThreadLocal`、锁、并发更新 |
|
|
36
|
+
| 单元测试 | `references/testing.md` | 测试编写、覆盖范围、独立可重复 |
|
|
37
|
+
| 工程结构与设计 | `references/architecture.md` | 重复代码抽象、分层依赖、单一职责、设计原则 |
|
|
38
|
+
|
|
39
|
+
## 核心规约
|
|
40
|
+
|
|
41
|
+
以下为高频内联规约,完整迁移自原规则。
|
|
42
|
+
|
|
43
|
+
### 值判断与工具类使用
|
|
44
|
+
|
|
45
|
+
- 字符串、包装类型、对象、集合、数组等值判断,应优先使用空安全工具类或 JDK 工具方法,避免直接使用 `==` / `!=` 做相等判断。
|
|
46
|
+
- 字符串空白判断优先使用 `org.apache.commons.lang3.StringUtils.isBlank` / `isNotBlank`,或项目已有的 `org.springframework.util.StringUtils.hasText`。
|
|
47
|
+
- 字符串相等优先使用 `org.apache.commons.lang3.StringUtils.equals` / `equalsIgnoreCase`。
|
|
48
|
+
- 对象相等优先使用 `java.util.Objects.equals`。
|
|
49
|
+
- Boolean 包装类型判断优先使用 `org.apache.commons.lang3.BooleanUtils.isTrue` / `isFalse`。
|
|
50
|
+
- 集合或 Map 判空优先使用 `org.springframework.util.CollectionUtils.isEmpty`。
|
|
51
|
+
- 数组、对象整体判空可使用 `org.springframework.util.ObjectUtils.isEmpty`。
|
|
52
|
+
- 枚举相等在明确非空语义下可以使用 `EnumConstant == value`;如果枚举变量可能为 null,优先使用 `Objects.equals(value, EnumConstant)` 或将常量放左侧。
|
|
53
|
+
- 基本类型大小比较仍使用 `>`、`<`、`>=`、`<=`。
|
|
54
|
+
|
|
55
|
+
禁止写法:
|
|
56
|
+
|
|
57
|
+
```java
|
|
58
|
+
if (userName == "") {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (status == 1) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (enabled == true) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
推荐写法:
|
|
72
|
+
|
|
73
|
+
```java
|
|
74
|
+
if (StringUtils.isBlank(userName)) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (Objects.equals(status, ENABLED_STATUS)) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (BooleanUtils.isTrue(enabled)) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (CollectionUtils.isEmpty(userList)) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 常量与枚举
|
|
92
|
+
|
|
93
|
+
- 禁止魔法值直接出现在代码中,应定义为常量或枚举。
|
|
94
|
+
- `Long` 字面量使用大写 `L`,例如 `1L`。
|
|
95
|
+
- 固定范围的状态、类型、渠道、来源等优先使用枚举。
|
|
96
|
+
- 常量按功能归类,不要维护一个“大而全”的常量类。
|
|
97
|
+
- 枚举类建议以 `Enum` 结尾,枚举项全大写并使用下划线分隔。
|
|
98
|
+
|
|
99
|
+
### DTO 与参数校验要点
|
|
100
|
+
|
|
101
|
+
- DTO 字段校验优先使用 `jakarta.validation` 注解,Controller 入参用 `@Valid` / `@Validated` 触发,嵌套对象与集合元素用 `@Valid` 级联。
|
|
102
|
+
- 禁止使用 `javax.validation` 包;Spring Boot 3+ 统一 Jakarta Validation。
|
|
103
|
+
- 简单字段校验交给 DTO 注解,不在 Service 中重复写 `if`;跨字段、依赖外部数据、权限幂等等复杂校验才用代码校验。
|
|
104
|
+
|
|
105
|
+
> 完整规则与示例见 `references/validation.md`。
|
|
106
|
+
|
|
107
|
+
### Lombok 与 POJO 要点
|
|
108
|
+
|
|
109
|
+
- 创建 DO / DTO / VO / BO / Query / Command 等数据承载对象时,优先使用 Lombok 注解生成 getter、setter、构造器、`toString`、Builder 等样板代码。
|
|
110
|
+
- 字段较多或可选参数较多时优先 `@Builder` + `Xxx.builder().field(value).build()`;框架反射创建对象时保留无参构造器。
|
|
111
|
+
- 谨慎使用 `@Data`:涉及继承、实体、缓存 key、集合元素去重或需精确控制 `equals` / `hashCode` 的类,改用更明确的 `@Getter`、`@Setter`、`@ToString`、`@EqualsAndHashCode`。
|
|
112
|
+
|
|
113
|
+
> 完整规则与示例见 `references/pojo-lombok.md`。
|
|
114
|
+
|
|
115
|
+
## Review 检查清单
|
|
116
|
+
|
|
117
|
+
Review Java 代码时至少检查:
|
|
118
|
+
|
|
119
|
+
- DTO 字段校验是否优先使用 `jakarta.validation` 注解。
|
|
120
|
+
- 是否误用了 `javax.validation`。
|
|
121
|
+
- 字符串、包装类型、对象、集合判断是否使用空安全工具类。
|
|
122
|
+
- 是否存在 `==` 比较字符串、包装类型或业务值对象。
|
|
123
|
+
- 数据承载对象是否优先使用 Lombok 注解,字段较多的对象创建是否优先使用 Builder。
|
|
124
|
+
- 是否出现魔法值。
|
|
125
|
+
- 同类或跨类重复代码是否出现 3 次及以上。
|
|
126
|
+
- 是否存在过深嵌套、超长方法或复杂条件表达式。
|
|
127
|
+
- 异常是否被吞掉,日志是否重复打印或泄露敏感信息。
|
|
128
|
+
- SQL 是否显式列字段、使用参数绑定并命中必要索引。
|
|
129
|
+
- 新增核心逻辑是否有单元测试覆盖。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 工程结构与设计
|
|
2
|
+
|
|
3
|
+
## 重复代码与抽象
|
|
4
|
+
|
|
5
|
+
- 同一段或高度相似代码出现 3 次及以上,必须评估抽取。
|
|
6
|
+
- 简单业务复用优先抽为 `private` 方法或领域服务方法。
|
|
7
|
+
- 跨类复用优先抽为公共组件、工具类、模板方法或策略类。
|
|
8
|
+
- 跨层、横切关注点优先考虑 AOP、Filter、Interceptor、注解驱动组件,例如:
|
|
9
|
+
- 登录态、权限、租户、审计、幂等、限流、防重放。
|
|
10
|
+
- 统一日志、埋点、异常转换、接口耗时统计。
|
|
11
|
+
- 重复的通用参数校验逻辑。
|
|
12
|
+
- DTO 简单字段校验重复出现时,不要抽 `checkXxx` 方法,应优先回到 DTO 上加 Jakarta Validation 注解。
|
|
13
|
+
|
|
14
|
+
## 工程结构与设计
|
|
15
|
+
|
|
16
|
+
- 上层可以依赖下层,下层不要反向依赖上层。
|
|
17
|
+
- Web 层负责协议适配、基础参数校验和转发,不承载复杂业务。
|
|
18
|
+
- Service / Manager 层承载业务编排和领域逻辑。
|
|
19
|
+
- DAO 层只处理持久化,不写业务逻辑。
|
|
20
|
+
- 类应遵守单一职责。
|
|
21
|
+
- 优先组合 / 聚合,谨慎使用继承。
|
|
22
|
+
- 依赖抽象而非具体实现,保持扩展开放、修改封闭。
|
|
23
|
+
- 状态超过 3 个、对象协作复杂、调用链涉及对象超过 3 个时,应考虑补充状态图、时序图或类图辅助设计。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# 并发规则
|
|
2
|
+
|
|
3
|
+
- 线程资源必须通过线程池提供,不允许随意 `new Thread`。
|
|
4
|
+
- 线程池不使用 `Executors` 快捷方法,应通过 `ThreadPoolExecutor` 明确核心参数。
|
|
5
|
+
- 线程和线程池必须有可识别的业务名称。
|
|
6
|
+
- `ThreadLocal` 使用后必须在 `finally` 中清理。
|
|
7
|
+
- 多资源加锁必须保持一致顺序,避免死锁。
|
|
8
|
+
- 并发更新同一记录必须考虑锁、版本号、幂等或唯一约束。
|
|
9
|
+
- `SimpleDateFormat` 不得作为共享静态变量;优先使用 `java.time`。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 异常处理与日志
|
|
2
|
+
|
|
3
|
+
## 异常处理
|
|
4
|
+
|
|
5
|
+
- 异常不得用于流程控制。
|
|
6
|
+
- 能通过预检查避免的 RuntimeException,不应依赖 catch 兜底。
|
|
7
|
+
- catch 后必须处理、转换或记录,不允许空 catch。
|
|
8
|
+
- 事务代码中 catch 后如果需要回滚,必须显式处理回滚或继续抛出异常。
|
|
9
|
+
- `finally` 中禁止 `return`。
|
|
10
|
+
- 流和资源优先使用 `try-with-resources`。
|
|
11
|
+
- 对外接口使用统一错误码或统一响应结构;应用内部优先通过明确的业务异常表达失败。
|
|
12
|
+
- 方法返回值允许为 null 时,必须通过注释、Optional 或调用约定说明清楚。
|
|
13
|
+
|
|
14
|
+
## 日志规则
|
|
15
|
+
|
|
16
|
+
- 使用 SLF4J 等统一日志门面,不直接依赖具体日志实现 API。
|
|
17
|
+
- 日志变量拼接使用占位符,不使用字符串拼接。
|
|
18
|
+
- `trace` / `debug` / 大量 `info` 日志输出前必须判断日志级别。
|
|
19
|
+
- 不要重复打印同一个异常;上层已记录时下层不要重复记录完整堆栈。
|
|
20
|
+
- 异常日志必须包含现场信息和异常堆栈。
|
|
21
|
+
- 生产环境禁止输出敏感数据,用户敏感信息必须脱敏。
|
|
22
|
+
|
|
23
|
+
示例:
|
|
24
|
+
|
|
25
|
+
```java
|
|
26
|
+
if (log.isDebugEnabled()) {
|
|
27
|
+
log.debug("Create user request, orgId={}, userName={}", orgId, userName);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
log.error("Create user failed, orgId={}, userName={}", orgId, userName, exception);
|
|
31
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# MySQL 与 ORM
|
|
2
|
+
|
|
3
|
+
- 表名、字段名使用小写字母、数字和下划线,禁止保留字。
|
|
4
|
+
- 表名不使用复数。
|
|
5
|
+
- 表必须包含 `id`、`create_time`、`update_time` 等基础字段,除非项目规范另有说明。
|
|
6
|
+
- 表达是与否的数据库字段使用 `is_xxx`,Java POJO 字段不要使用 `is` 前缀,并在映射中处理。
|
|
7
|
+
- 小数类型使用 `decimal`,禁止用 `float` / `double` 存储精确金额。
|
|
8
|
+
- 具备唯一业务语义的字段必须建立唯一索引。
|
|
9
|
+
- 查询字段必须显式列出,禁止 `select *`。
|
|
10
|
+
- MyBatis 参数使用 `#{}`,禁止 `${}` 拼接用户输入。
|
|
11
|
+
- 分页查询时如果 `count` 为 0,应直接返回,不继续执行分页查询。
|
|
12
|
+
- 更新记录时必须维护更新时间字段。
|
|
13
|
+
- `@Transactional` 不要滥用,事务范围应尽量小且语义明确。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# OOP 与 POJO
|
|
2
|
+
|
|
3
|
+
## OOP 与 POJO 通用规则
|
|
4
|
+
|
|
5
|
+
- 所有覆写方法必须添加 `@Override`。
|
|
6
|
+
- 禁止使用过时类或过时方法。
|
|
7
|
+
- DO / DTO / VO 等 POJO 字段必须使用包装类型,局部变量可使用基本类型。
|
|
8
|
+
- POJO 类必须提供可读的 `toString`,避免遗漏关键字段;优先使用 Lombok `@ToString` 生成。
|
|
9
|
+
- POJO 布尔字段不要以 `is` 开头,避免序列化和反序列化歧义。
|
|
10
|
+
- 构造方法中禁止写业务逻辑;初始化逻辑放到明确的初始化方法或工厂方法。
|
|
11
|
+
- `BigDecimal` 禁止使用 `new BigDecimal(double)`,应使用字符串或 `BigDecimal.valueOf`。
|
|
12
|
+
- 循环体内字符串拼接优先使用 `StringBuilder`。
|
|
13
|
+
- 访问控制从严,能 `private` 不 `protected`,能包内可见不 `public`。
|
|
14
|
+
|
|
15
|
+
## Lombok 使用规则
|
|
16
|
+
|
|
17
|
+
- 创建 DO / DTO / VO / BO / Query / Command 等数据承载对象时,优先使用 Lombok 注解生成 getter、setter、构造器、`toString`、Builder 等样板代码。
|
|
18
|
+
- 常用组合:
|
|
19
|
+
- 可变 DTO / VO:`@Getter`、`@Setter`、`@ToString`、`@NoArgsConstructor`
|
|
20
|
+
- 需要全参构造:增加 `@AllArgsConstructor`
|
|
21
|
+
- 字段较多或可选参数较多:增加 `@Builder`,创建对象时优先使用 `Xxx.builder().field(value).build()`
|
|
22
|
+
- 继承结构下的 Builder:使用 `@SuperBuilder`
|
|
23
|
+
- 不可变值对象:优先使用 `@Value` 或 `@Getter` + `final` 字段,按项目约定选择
|
|
24
|
+
- Jackson、MyBatis、JPA 等框架需要反射创建对象时,应保留无参构造器,例如 `@NoArgsConstructor`。
|
|
25
|
+
- DTO 字段不要为了 Lombok `@Builder.Default` 设置默认值;确有业务默认值时,应在业务层、工厂方法或明确的初始化流程中处理。
|
|
26
|
+
- 谨慎使用 `@Data`:纯 DTO / VO 可按项目约定使用;涉及继承、实体、缓存 key、集合元素去重或需要精确控制 `equals` / `hashCode` 的类,应改用更明确的 `@Getter`、`@Setter`、`@ToString`、`@EqualsAndHashCode`。
|
|
27
|
+
|
|
28
|
+
推荐写法:
|
|
29
|
+
|
|
30
|
+
```java
|
|
31
|
+
@Getter
|
|
32
|
+
@Setter
|
|
33
|
+
@ToString
|
|
34
|
+
@NoArgsConstructor
|
|
35
|
+
@AllArgsConstructor
|
|
36
|
+
@Builder
|
|
37
|
+
public class UserDTO {
|
|
38
|
+
|
|
39
|
+
private Long id;
|
|
40
|
+
|
|
41
|
+
private String userName;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
UserDTO user = UserDTO.builder()
|
|
45
|
+
.id(userId)
|
|
46
|
+
.userName(userName)
|
|
47
|
+
.build();
|
|
48
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# DTO 与参数校验
|
|
2
|
+
|
|
3
|
+
## Jakarta Validation 优先
|
|
4
|
+
|
|
5
|
+
- DTO 字段非空、长度、范围、格式等校验,必须优先使用 `jakarta.validation` 包下的注解。
|
|
6
|
+
- 禁止使用 `javax.validation` 包;Spring Boot 3+ 项目统一使用 Jakarta Validation。
|
|
7
|
+
- Controller 入参 DTO 使用 `@Valid` 或 `@Validated` 触发校验。
|
|
8
|
+
- 嵌套对象、集合元素需要级联校验时使用 `@Valid`。
|
|
9
|
+
- DTO 字段不要设置默认值,避免框架反序列化和业务语义混淆。
|
|
10
|
+
|
|
11
|
+
常用注解优先级:
|
|
12
|
+
|
|
13
|
+
```java
|
|
14
|
+
import jakarta.validation.Valid;
|
|
15
|
+
import jakarta.validation.constraints.AssertTrue;
|
|
16
|
+
import jakarta.validation.constraints.Email;
|
|
17
|
+
import jakarta.validation.constraints.Max;
|
|
18
|
+
import jakarta.validation.constraints.Min;
|
|
19
|
+
import jakarta.validation.constraints.NotBlank;
|
|
20
|
+
import jakarta.validation.constraints.NotEmpty;
|
|
21
|
+
import jakarta.validation.constraints.NotNull;
|
|
22
|
+
import jakarta.validation.constraints.Pattern;
|
|
23
|
+
import jakarta.validation.constraints.Positive;
|
|
24
|
+
import jakarta.validation.constraints.Size;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
推荐写法:
|
|
28
|
+
|
|
29
|
+
```java
|
|
30
|
+
public class CreateUserDTO {
|
|
31
|
+
|
|
32
|
+
@NotBlank(message = "用户名不能为空")
|
|
33
|
+
@Size(max = 64, message = "用户名长度不能超过64")
|
|
34
|
+
private String userName;
|
|
35
|
+
|
|
36
|
+
@NotNull(message = "组织ID不能为空")
|
|
37
|
+
@Positive(message = "组织ID必须为正数")
|
|
38
|
+
private Long orgId;
|
|
39
|
+
|
|
40
|
+
@Email(message = "邮箱格式不正确")
|
|
41
|
+
private String email;
|
|
42
|
+
|
|
43
|
+
@Valid
|
|
44
|
+
@NotEmpty(message = "明细不能为空")
|
|
45
|
+
private List<CreateUserItemDTO> items;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Controller 示例:
|
|
50
|
+
|
|
51
|
+
```java
|
|
52
|
+
@PostMapping("/users")
|
|
53
|
+
public Result<Void> createUser(@Valid @RequestBody CreateUserDTO request) {
|
|
54
|
+
userService.createUser(request);
|
|
55
|
+
return Result.success();
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 代码校验只作为补充
|
|
60
|
+
|
|
61
|
+
- 简单字段校验不得在 Service 中重复写 `if` 判断,应交给 DTO 注解。
|
|
62
|
+
- 以下场景可以使用代码校验:
|
|
63
|
+
- 跨字段关系,例如 `startTime` 必须早于 `endTime`。
|
|
64
|
+
- 依赖数据库、缓存、外部服务的业务校验。
|
|
65
|
+
- 权限、幂等、防重放、防刷等上下文相关校验。
|
|
66
|
+
- 注解表达成本过高或会显著降低可读性的复杂条件。
|
|
67
|
+
- 跨字段规则优先考虑 `@AssertTrue`、自定义约束注解或类级别 Validator;仍不适合时才写业务代码校验。
|
|
68
|
+
- 方法参数校验可在类上使用 `@Validated`,并在 public 方法参数上使用 Jakarta Validation 注解。
|
|
69
|
+
|
|
70
|
+
示例:
|
|
71
|
+
|
|
72
|
+
```java
|
|
73
|
+
@AssertTrue(message = "开始时间必须早于结束时间")
|
|
74
|
+
public boolean isTimeRangeValid() {
|
|
75
|
+
if (startTime == null || endTime == null) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return startTime.isBefore(endTime);
|
|
79
|
+
}
|
|
80
|
+
```
|
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: javascript-pro
|
|
3
|
-
description: Writes, debugs, and refactors JavaScript code using modern ES2023+ features, async/await patterns, ESM module systems, and Node.js APIs. Use when building vanilla JavaScript applications, implementing Promise-based async flows, optimising browser or Node.js performance, working with Web Workers or Fetch API, or reviewing .js/.mjs/.cjs files for correctness and best practices.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: https://github.com/Jeffallan
|
|
7
|
-
version: "1.1.0"
|
|
8
|
-
domain: language
|
|
9
|
-
triggers: JavaScript, ES2023, async await, Node.js, vanilla JavaScript, Web Workers, Fetch API, browser API, module system
|
|
10
|
-
role: specialist
|
|
11
|
-
scope: implementation
|
|
12
|
-
output-format: code
|
|
13
|
-
related-skills: fullstack-guardian
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# JavaScript Pro
|
|
17
|
-
|
|
18
|
-
## When to Use This Skill
|
|
19
|
-
|
|
20
|
-
- Building vanilla JavaScript applications
|
|
21
|
-
- Implementing async/await patterns and Promise handling
|
|
22
|
-
- Working with modern module systems (ESM/CJS)
|
|
23
|
-
- Optimizing browser performance and memory usage
|
|
24
|
-
- Developing Node.js backend services
|
|
25
|
-
- Implementing Web Workers, Service Workers, or browser APIs
|
|
26
|
-
|
|
27
|
-
## Core Workflow
|
|
28
|
-
|
|
29
|
-
1. **Analyze requirements** — Review `package.json`, module system, Node version, browser targets; confirm `.js`/`.mjs`/`.cjs` conventions
|
|
30
|
-
2. **Design architecture** — Plan modules, async flows, and error handling strategies
|
|
31
|
-
3. **Implement** — Write ES2023+ code with proper patterns and optimisations
|
|
32
|
-
4. **Validate** — Run linter (`eslint --fix`); if linter fails, fix all reported issues and re-run before proceeding. Check for memory leaks with DevTools or `--inspect`, verify bundle size; if leaks are found, resolve them before continuing
|
|
33
|
-
5. **Test** — Write comprehensive tests with Jest achieving 85%+ coverage; if coverage falls short, add missing cases and re-run. Confirm no unhandled Promise rejections
|
|
34
|
-
|
|
35
|
-
## Reference Guide
|
|
36
|
-
|
|
37
|
-
Load detailed guidance based on context:
|
|
38
|
-
|
|
39
|
-
| Topic | Reference | Load When |
|
|
40
|
-
|-------|-----------|-----------|
|
|
41
|
-
| Modern Syntax | `references/modern-syntax.md` | ES2023+ features, optional chaining, private fields |
|
|
42
|
-
| Async Patterns | `references/async-patterns.md` | Promises, async/await, error handling, event loop |
|
|
43
|
-
| Modules | `references/modules.md` | ESM vs CJS, dynamic imports, package.json exports |
|
|
44
|
-
| Browser APIs | `references/browser-apis.md` | Fetch, Web Workers, Storage, IntersectionObserver |
|
|
45
|
-
| Node Essentials | `references/node-essentials.md` | fs/promises, streams, EventEmitter, worker threads |
|
|
46
|
-
|
|
47
|
-
## Constraints
|
|
48
|
-
|
|
49
|
-
### MUST DO
|
|
50
|
-
- Use ES2023+ features exclusively
|
|
51
|
-
- Use `X | null` or `X | undefined` patterns
|
|
52
|
-
- Use optional chaining (`?.`) and nullish coalescing (`??`)
|
|
53
|
-
- Use async/await for all asynchronous operations
|
|
54
|
-
- Use ESM (`import`/`export`) for new projects
|
|
55
|
-
- Implement proper error handling with try/catch
|
|
56
|
-
- Add JSDoc comments for complex functions
|
|
57
|
-
- Follow functional programming principles
|
|
58
|
-
|
|
59
|
-
### MUST NOT DO
|
|
60
|
-
- Use `var` (always use `const` or `let`)
|
|
61
|
-
- Use callback-based patterns (prefer Promises)
|
|
62
|
-
- Mix CommonJS and ESM in the same module
|
|
63
|
-
- Ignore memory leaks or performance issues
|
|
64
|
-
- Skip error handling in async functions
|
|
65
|
-
- Use synchronous I/O in Node.js
|
|
66
|
-
- Mutate function parameters
|
|
67
|
-
- Create blocking operations in the browser
|
|
68
|
-
|
|
69
|
-
## Key Patterns with Examples
|
|
70
|
-
|
|
71
|
-
### Async/Await Error Handling
|
|
72
|
-
```js
|
|
73
|
-
// ✅ Correct — always handle async errors explicitly
|
|
74
|
-
async function fetchUser(id) {
|
|
75
|
-
try {
|
|
76
|
-
const response = await fetch(`/api/users/${id}`);
|
|
77
|
-
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
|
78
|
-
return await response.json();
|
|
79
|
-
} catch (err) {
|
|
80
|
-
console.error("fetchUser failed:", err);
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// ❌ Incorrect — unhandled rejection, no null guard
|
|
86
|
-
async function fetchUser(id) {
|
|
87
|
-
const response = await fetch(`/api/users/${id}`);
|
|
88
|
-
return response.json();
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Optional Chaining & Nullish Coalescing
|
|
93
|
-
```js
|
|
94
|
-
// ✅ Correct
|
|
95
|
-
const city = user?.address?.city ?? "Unknown";
|
|
96
|
-
|
|
97
|
-
// ❌ Incorrect — throws if address is undefined
|
|
98
|
-
const city = user.address.city || "Unknown";
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### ESM Module Structure
|
|
102
|
-
```js
|
|
103
|
-
// ✅ Correct — named exports, no default-only exports for libraries
|
|
104
|
-
// utils/math.mjs
|
|
105
|
-
export const add = (a, b) => a + b;
|
|
106
|
-
export const multiply = (a, b) => a * b;
|
|
107
|
-
|
|
108
|
-
// consumer.mjs
|
|
109
|
-
import { add } from "./utils/math.mjs";
|
|
110
|
-
|
|
111
|
-
// ❌ Incorrect — mixing require() with ESM
|
|
112
|
-
const { add } = require("./utils/math.mjs");
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Avoid var / Prefer const
|
|
116
|
-
```js
|
|
117
|
-
// ✅ Correct
|
|
118
|
-
const MAX_RETRIES = 3;
|
|
119
|
-
let attempts = 0;
|
|
120
|
-
|
|
121
|
-
// ❌ Incorrect
|
|
122
|
-
var MAX_RETRIES = 3;
|
|
123
|
-
var attempts = 0;
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## Output Templates
|
|
127
|
-
|
|
128
|
-
When implementing JavaScript features, provide:
|
|
129
|
-
1. Module file with clean exports
|
|
130
|
-
2. Test file with comprehensive coverage
|
|
131
|
-
3. JSDoc documentation for public APIs
|
|
132
|
-
4. Brief explanation of patterns used
|
|
1
|
+
---
|
|
2
|
+
name: javascript-pro
|
|
3
|
+
description: Writes, debugs, and refactors JavaScript code using modern ES2023+ features, async/await patterns, ESM module systems, and Node.js APIs. Use when building vanilla JavaScript applications, implementing Promise-based async flows, optimising browser or Node.js performance, working with Web Workers or Fetch API, or reviewing .js/.mjs/.cjs files for correctness and best practices.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: https://github.com/Jeffallan
|
|
7
|
+
version: "1.1.0"
|
|
8
|
+
domain: language
|
|
9
|
+
triggers: JavaScript, ES2023, async await, Node.js, vanilla JavaScript, Web Workers, Fetch API, browser API, module system
|
|
10
|
+
role: specialist
|
|
11
|
+
scope: implementation
|
|
12
|
+
output-format: code
|
|
13
|
+
related-skills: fullstack-guardian
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# JavaScript Pro
|
|
17
|
+
|
|
18
|
+
## When to Use This Skill
|
|
19
|
+
|
|
20
|
+
- Building vanilla JavaScript applications
|
|
21
|
+
- Implementing async/await patterns and Promise handling
|
|
22
|
+
- Working with modern module systems (ESM/CJS)
|
|
23
|
+
- Optimizing browser performance and memory usage
|
|
24
|
+
- Developing Node.js backend services
|
|
25
|
+
- Implementing Web Workers, Service Workers, or browser APIs
|
|
26
|
+
|
|
27
|
+
## Core Workflow
|
|
28
|
+
|
|
29
|
+
1. **Analyze requirements** — Review `package.json`, module system, Node version, browser targets; confirm `.js`/`.mjs`/`.cjs` conventions
|
|
30
|
+
2. **Design architecture** — Plan modules, async flows, and error handling strategies
|
|
31
|
+
3. **Implement** — Write ES2023+ code with proper patterns and optimisations
|
|
32
|
+
4. **Validate** — Run linter (`eslint --fix`); if linter fails, fix all reported issues and re-run before proceeding. Check for memory leaks with DevTools or `--inspect`, verify bundle size; if leaks are found, resolve them before continuing
|
|
33
|
+
5. **Test** — Write comprehensive tests with Jest achieving 85%+ coverage; if coverage falls short, add missing cases and re-run. Confirm no unhandled Promise rejections
|
|
34
|
+
|
|
35
|
+
## Reference Guide
|
|
36
|
+
|
|
37
|
+
Load detailed guidance based on context:
|
|
38
|
+
|
|
39
|
+
| Topic | Reference | Load When |
|
|
40
|
+
|-------|-----------|-----------|
|
|
41
|
+
| Modern Syntax | `references/modern-syntax.md` | ES2023+ features, optional chaining, private fields |
|
|
42
|
+
| Async Patterns | `references/async-patterns.md` | Promises, async/await, error handling, event loop |
|
|
43
|
+
| Modules | `references/modules.md` | ESM vs CJS, dynamic imports, package.json exports |
|
|
44
|
+
| Browser APIs | `references/browser-apis.md` | Fetch, Web Workers, Storage, IntersectionObserver |
|
|
45
|
+
| Node Essentials | `references/node-essentials.md` | fs/promises, streams, EventEmitter, worker threads |
|
|
46
|
+
|
|
47
|
+
## Constraints
|
|
48
|
+
|
|
49
|
+
### MUST DO
|
|
50
|
+
- Use ES2023+ features exclusively
|
|
51
|
+
- Use `X | null` or `X | undefined` patterns
|
|
52
|
+
- Use optional chaining (`?.`) and nullish coalescing (`??`)
|
|
53
|
+
- Use async/await for all asynchronous operations
|
|
54
|
+
- Use ESM (`import`/`export`) for new projects
|
|
55
|
+
- Implement proper error handling with try/catch
|
|
56
|
+
- Add JSDoc comments for complex functions
|
|
57
|
+
- Follow functional programming principles
|
|
58
|
+
|
|
59
|
+
### MUST NOT DO
|
|
60
|
+
- Use `var` (always use `const` or `let`)
|
|
61
|
+
- Use callback-based patterns (prefer Promises)
|
|
62
|
+
- Mix CommonJS and ESM in the same module
|
|
63
|
+
- Ignore memory leaks or performance issues
|
|
64
|
+
- Skip error handling in async functions
|
|
65
|
+
- Use synchronous I/O in Node.js
|
|
66
|
+
- Mutate function parameters
|
|
67
|
+
- Create blocking operations in the browser
|
|
68
|
+
|
|
69
|
+
## Key Patterns with Examples
|
|
70
|
+
|
|
71
|
+
### Async/Await Error Handling
|
|
72
|
+
```js
|
|
73
|
+
// ✅ Correct — always handle async errors explicitly
|
|
74
|
+
async function fetchUser(id) {
|
|
75
|
+
try {
|
|
76
|
+
const response = await fetch(`/api/users/${id}`);
|
|
77
|
+
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
|
78
|
+
return await response.json();
|
|
79
|
+
} catch (err) {
|
|
80
|
+
console.error("fetchUser failed:", err);
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ❌ Incorrect — unhandled rejection, no null guard
|
|
86
|
+
async function fetchUser(id) {
|
|
87
|
+
const response = await fetch(`/api/users/${id}`);
|
|
88
|
+
return response.json();
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Optional Chaining & Nullish Coalescing
|
|
93
|
+
```js
|
|
94
|
+
// ✅ Correct
|
|
95
|
+
const city = user?.address?.city ?? "Unknown";
|
|
96
|
+
|
|
97
|
+
// ❌ Incorrect — throws if address is undefined
|
|
98
|
+
const city = user.address.city || "Unknown";
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### ESM Module Structure
|
|
102
|
+
```js
|
|
103
|
+
// ✅ Correct — named exports, no default-only exports for libraries
|
|
104
|
+
// utils/math.mjs
|
|
105
|
+
export const add = (a, b) => a + b;
|
|
106
|
+
export const multiply = (a, b) => a * b;
|
|
107
|
+
|
|
108
|
+
// consumer.mjs
|
|
109
|
+
import { add } from "./utils/math.mjs";
|
|
110
|
+
|
|
111
|
+
// ❌ Incorrect — mixing require() with ESM
|
|
112
|
+
const { add } = require("./utils/math.mjs");
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Avoid var / Prefer const
|
|
116
|
+
```js
|
|
117
|
+
// ✅ Correct
|
|
118
|
+
const MAX_RETRIES = 3;
|
|
119
|
+
let attempts = 0;
|
|
120
|
+
|
|
121
|
+
// ❌ Incorrect
|
|
122
|
+
var MAX_RETRIES = 3;
|
|
123
|
+
var attempts = 0;
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Output Templates
|
|
127
|
+
|
|
128
|
+
When implementing JavaScript features, provide:
|
|
129
|
+
1. Module file with clean exports
|
|
130
|
+
2. Test file with comprehensive coverage
|
|
131
|
+
3. JSDoc documentation for public APIs
|
|
132
|
+
4. Brief explanation of patterns used
|