aigroup-workflow 2.2.1 → 2.2.2
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/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/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 +195 -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/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/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
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
# Security Checklist
|
|
2
|
-
|
|
3
|
-
## Per-Feature Security Checklist
|
|
4
|
-
|
|
5
|
-
| Category | Check | Action |
|
|
6
|
-
|----------|-------|--------|
|
|
7
|
-
| **Auth** | Endpoint requires authentication? | Add auth middleware/guard |
|
|
8
|
-
| **Authz** | User authorized for this action? | Check ownership/role |
|
|
9
|
-
| **Input** | All input validated and sanitized? | Use schemas, sanitize |
|
|
10
|
-
| **Output** | Sensitive data excluded from response? | Filter response fields |
|
|
11
|
-
| **Rate Limit** | Endpoint rate limited? | Add rate limiter |
|
|
12
|
-
| **Logging** | Security events logged? | Log auth failures, changes |
|
|
13
|
-
|
|
14
|
-
## Authentication Patterns
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
// NestJS Guard
|
|
18
|
-
@UseGuards(JwtAuthGuard)
|
|
19
|
-
@Get('profile')
|
|
20
|
-
async getProfile(@CurrentUser() user: User) {
|
|
21
|
-
return this.userService.findById(user.id);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Express Middleware
|
|
25
|
-
app.get('/profile', authenticate, (req, res) => {
|
|
26
|
-
res.json(req.user);
|
|
27
|
-
});
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
```python
|
|
31
|
-
# FastAPI Dependency
|
|
32
|
-
@router.get("/profile")
|
|
33
|
-
async def get_profile(current_user: User = Depends(get_current_user)):
|
|
34
|
-
return current_user
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Authorization Patterns
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
// Resource ownership check
|
|
41
|
-
async updatePost(postId: string, userId: string, data: UpdatePostDto) {
|
|
42
|
-
const post = await this.postRepo.findById(postId);
|
|
43
|
-
|
|
44
|
-
if (post.authorId !== userId) {
|
|
45
|
-
throw new ForbiddenException('Not authorized to edit this post');
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return this.postRepo.update(postId, data);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Role-based check
|
|
52
|
-
@Roles('admin')
|
|
53
|
-
@UseGuards(RolesGuard)
|
|
54
|
-
@Delete(':id')
|
|
55
|
-
async deleteUser(@Param('id') id: string) {
|
|
56
|
-
return this.userService.delete(id);
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Input Validation
|
|
61
|
-
|
|
62
|
-
```typescript
|
|
63
|
-
// Zod schema
|
|
64
|
-
const CreateUserSchema = z.object({
|
|
65
|
-
email: z.string().email(),
|
|
66
|
-
name: z.string().min(1).max(100),
|
|
67
|
-
password: z.string().min(12),
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
// Use in endpoint
|
|
71
|
-
const validated = CreateUserSchema.parse(req.body);
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
```python
|
|
75
|
-
# Pydantic model
|
|
76
|
-
class CreateUser(BaseModel):
|
|
77
|
-
email: EmailStr
|
|
78
|
-
name: str = Field(min_length=1, max_length=100)
|
|
79
|
-
password: str = Field(min_length=12)
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Rate Limiting
|
|
83
|
-
|
|
84
|
-
```typescript
|
|
85
|
-
// Express rate-limit
|
|
86
|
-
import rateLimit from 'express-rate-limit';
|
|
87
|
-
|
|
88
|
-
const authLimiter = rateLimit({
|
|
89
|
-
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
90
|
-
max: 5, // 5 attempts
|
|
91
|
-
message: 'Too many login attempts',
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
app.post('/login', authLimiter, loginHandler);
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Quick Reference
|
|
98
|
-
|
|
99
|
-
| Risk | Mitigation |
|
|
100
|
-
|------|------------|
|
|
101
|
-
| SQL Injection | Parameterized queries |
|
|
102
|
-
| XSS | Output encoding, CSP |
|
|
103
|
-
| CSRF | CSRF tokens, SameSite cookies |
|
|
104
|
-
| IDOR | Authorization checks |
|
|
105
|
-
| Brute Force | Rate limiting |
|
|
106
|
-
| Data Exposure | Response filtering |
|
|
1
|
+
# Security Checklist
|
|
2
|
+
|
|
3
|
+
## Per-Feature Security Checklist
|
|
4
|
+
|
|
5
|
+
| Category | Check | Action |
|
|
6
|
+
|----------|-------|--------|
|
|
7
|
+
| **Auth** | Endpoint requires authentication? | Add auth middleware/guard |
|
|
8
|
+
| **Authz** | User authorized for this action? | Check ownership/role |
|
|
9
|
+
| **Input** | All input validated and sanitized? | Use schemas, sanitize |
|
|
10
|
+
| **Output** | Sensitive data excluded from response? | Filter response fields |
|
|
11
|
+
| **Rate Limit** | Endpoint rate limited? | Add rate limiter |
|
|
12
|
+
| **Logging** | Security events logged? | Log auth failures, changes |
|
|
13
|
+
|
|
14
|
+
## Authentication Patterns
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// NestJS Guard
|
|
18
|
+
@UseGuards(JwtAuthGuard)
|
|
19
|
+
@Get('profile')
|
|
20
|
+
async getProfile(@CurrentUser() user: User) {
|
|
21
|
+
return this.userService.findById(user.id);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Express Middleware
|
|
25
|
+
app.get('/profile', authenticate, (req, res) => {
|
|
26
|
+
res.json(req.user);
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```python
|
|
31
|
+
# FastAPI Dependency
|
|
32
|
+
@router.get("/profile")
|
|
33
|
+
async def get_profile(current_user: User = Depends(get_current_user)):
|
|
34
|
+
return current_user
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Authorization Patterns
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// Resource ownership check
|
|
41
|
+
async updatePost(postId: string, userId: string, data: UpdatePostDto) {
|
|
42
|
+
const post = await this.postRepo.findById(postId);
|
|
43
|
+
|
|
44
|
+
if (post.authorId !== userId) {
|
|
45
|
+
throw new ForbiddenException('Not authorized to edit this post');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return this.postRepo.update(postId, data);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Role-based check
|
|
52
|
+
@Roles('admin')
|
|
53
|
+
@UseGuards(RolesGuard)
|
|
54
|
+
@Delete(':id')
|
|
55
|
+
async deleteUser(@Param('id') id: string) {
|
|
56
|
+
return this.userService.delete(id);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Input Validation
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
// Zod schema
|
|
64
|
+
const CreateUserSchema = z.object({
|
|
65
|
+
email: z.string().email(),
|
|
66
|
+
name: z.string().min(1).max(100),
|
|
67
|
+
password: z.string().min(12),
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// Use in endpoint
|
|
71
|
+
const validated = CreateUserSchema.parse(req.body);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
# Pydantic model
|
|
76
|
+
class CreateUser(BaseModel):
|
|
77
|
+
email: EmailStr
|
|
78
|
+
name: str = Field(min_length=1, max_length=100)
|
|
79
|
+
password: str = Field(min_length=12)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Rate Limiting
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
// Express rate-limit
|
|
86
|
+
import rateLimit from 'express-rate-limit';
|
|
87
|
+
|
|
88
|
+
const authLimiter = rateLimit({
|
|
89
|
+
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
90
|
+
max: 5, // 5 attempts
|
|
91
|
+
message: 'Too many login attempts',
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
app.post('/login', authLimiter, loginHandler);
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Quick Reference
|
|
98
|
+
|
|
99
|
+
| Risk | Mitigation |
|
|
100
|
+
|------|------------|
|
|
101
|
+
| SQL Injection | Parameterized queries |
|
|
102
|
+
| XSS | Output encoding, CSP |
|
|
103
|
+
| CSRF | CSRF tokens, SameSite cookies |
|
|
104
|
+
| IDOR | Authorization checks |
|
|
105
|
+
| Brute Force | Rate limiting |
|
|
106
|
+
| Data Exposure | Response filtering |
|
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: graphql-architect
|
|
3
|
-
description: Use when designing GraphQL schemas, implementing Apollo Federation, or building real-time subscriptions. Invoke for schema design, resolvers with DataLoader, query optimization, federation directives.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: https://github.com/Jeffallan
|
|
7
|
-
version: "1.1.0"
|
|
8
|
-
domain: api-architecture
|
|
9
|
-
triggers: GraphQL, Apollo Federation, GraphQL schema, API graph, GraphQL subscriptions, Apollo Server, schema design, GraphQL resolvers, DataLoader
|
|
10
|
-
role: architect
|
|
11
|
-
scope: design
|
|
12
|
-
output-format: schema
|
|
13
|
-
related-skills: api-designer, microservices-architect, database-optimizer
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# GraphQL Architect
|
|
17
|
-
|
|
18
|
-
Senior GraphQL architect specializing in schema design and distributed graph architectures with deep expertise in Apollo Federation 2.5+, GraphQL subscriptions, and performance optimization.
|
|
19
|
-
|
|
20
|
-
## Core Workflow
|
|
21
|
-
|
|
22
|
-
1. **Domain Modeling** - Map business domains to GraphQL type system
|
|
23
|
-
2. **Design Schema** - Create types, interfaces, unions with federation directives
|
|
24
|
-
3. **Validate Schema** - Run schema composition check; confirm all `@key` entities resolve correctly
|
|
25
|
-
- _If composition fails:_ review entity `@key` directives, check for missing or mismatched type definitions across subgraphs, resolve any `@external` field inconsistencies, then re-run composition
|
|
26
|
-
4. **Implement Resolvers** - Write efficient resolvers with DataLoader patterns
|
|
27
|
-
5. **Secure** - Add query complexity limits, depth limiting, field-level auth; validate complexity thresholds before deployment
|
|
28
|
-
- _If complexity threshold is exceeded:_ identify the highest-cost fields, add pagination limits, restructure nested queries, or raise the threshold with documented justification
|
|
29
|
-
6. **Optimize** - Performance tune with caching, persisted queries, monitoring
|
|
30
|
-
|
|
31
|
-
## Reference Guide
|
|
32
|
-
|
|
33
|
-
Load detailed guidance based on context:
|
|
34
|
-
|
|
35
|
-
| Topic | Reference | Load When |
|
|
36
|
-
|-------|-----------|-----------|
|
|
37
|
-
| Schema Design | `references/schema-design.md` | Types, interfaces, unions, enums, input types |
|
|
38
|
-
| Resolvers | `references/resolvers.md` | Resolver patterns, context, DataLoader, N+1 |
|
|
39
|
-
| Federation | `references/federation.md` | Apollo Federation, subgraphs, entities, directives |
|
|
40
|
-
| Subscriptions | `references/subscriptions.md` | Real-time updates, WebSocket, pub/sub patterns |
|
|
41
|
-
| Security | `references/security.md` | Query depth, complexity analysis, authentication |
|
|
42
|
-
| REST Migration | `references/migration-from-rest.md` | Migrating REST APIs to GraphQL |
|
|
43
|
-
|
|
44
|
-
## Constraints
|
|
45
|
-
|
|
46
|
-
### MUST DO
|
|
47
|
-
- Use schema-first design approach
|
|
48
|
-
- Implement proper nullable field patterns
|
|
49
|
-
- Use DataLoader for batching and caching
|
|
50
|
-
- Add query complexity analysis
|
|
51
|
-
- Document all types and fields
|
|
52
|
-
- Follow GraphQL naming conventions (camelCase)
|
|
53
|
-
- Use federation directives correctly
|
|
54
|
-
- Provide example queries for all operations
|
|
55
|
-
|
|
56
|
-
### MUST NOT DO
|
|
57
|
-
- Create N+1 query problems
|
|
58
|
-
- Skip query depth limiting
|
|
59
|
-
- Expose internal implementation details
|
|
60
|
-
- Use REST patterns in GraphQL
|
|
61
|
-
- Return null for non-nullable fields
|
|
62
|
-
- Skip error handling in resolvers
|
|
63
|
-
- Hardcode authorization logic
|
|
64
|
-
- Ignore schema validation
|
|
65
|
-
|
|
66
|
-
## Code Examples
|
|
67
|
-
|
|
68
|
-
### Federation Schema (SDL)
|
|
69
|
-
|
|
70
|
-
```graphql
|
|
71
|
-
# products subgraph
|
|
72
|
-
type Product @key(fields: "id") {
|
|
73
|
-
id: ID!
|
|
74
|
-
name: String!
|
|
75
|
-
price: Float!
|
|
76
|
-
inStock: Boolean!
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
# reviews subgraph — extends Product from products subgraph
|
|
80
|
-
type Product @key(fields: "id") {
|
|
81
|
-
id: ID! @external
|
|
82
|
-
reviews: [Review!]!
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
type Review {
|
|
86
|
-
id: ID!
|
|
87
|
-
rating: Int!
|
|
88
|
-
body: String
|
|
89
|
-
author: User! @shareable
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
type User @shareable {
|
|
93
|
-
id: ID!
|
|
94
|
-
username: String!
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Resolver with DataLoader (N+1 Prevention)
|
|
99
|
-
|
|
100
|
-
```js
|
|
101
|
-
// context setup — one DataLoader instance per request
|
|
102
|
-
const context = ({ req }) => ({
|
|
103
|
-
loaders: {
|
|
104
|
-
user: new DataLoader(async (userIds) => {
|
|
105
|
-
const users = await db.users.findMany({ where: { id: { in: userIds } } });
|
|
106
|
-
// return results in same order as input keys
|
|
107
|
-
return userIds.map((id) => users.find((u) => u.id === id) ?? null);
|
|
108
|
-
}),
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
// resolver — batches all user lookups in a single query
|
|
113
|
-
const resolvers = {
|
|
114
|
-
Review: {
|
|
115
|
-
author: (review, _args, { loaders }) => loaders.user.load(review.authorId),
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Query Complexity Validation
|
|
121
|
-
|
|
122
|
-
```js
|
|
123
|
-
import { createComplexityRule } from 'graphql-query-complexity';
|
|
124
|
-
|
|
125
|
-
const server = new ApolloServer({
|
|
126
|
-
schema,
|
|
127
|
-
validationRules: [
|
|
128
|
-
createComplexityRule({
|
|
129
|
-
maximumComplexity: 1000,
|
|
130
|
-
onComplete: (complexity) => console.log('Query complexity:', complexity),
|
|
131
|
-
}),
|
|
132
|
-
],
|
|
133
|
-
});
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Output Templates
|
|
137
|
-
|
|
138
|
-
When implementing GraphQL features, provide:
|
|
139
|
-
1. Schema definition (SDL with types and directives)
|
|
140
|
-
2. Resolver implementation (with DataLoader patterns)
|
|
141
|
-
3. Query/mutation/subscription examples
|
|
142
|
-
4. Brief explanation of design decisions
|
|
143
|
-
|
|
144
|
-
## Knowledge Reference
|
|
145
|
-
|
|
146
|
-
Apollo Server, Apollo Federation 2.5+, GraphQL SDL, DataLoader, GraphQL Subscriptions, WebSocket, Redis pub/sub, schema composition, query complexity, persisted queries, schema stitching, type generation
|
|
1
|
+
---
|
|
2
|
+
name: graphql-architect
|
|
3
|
+
description: Use when designing GraphQL schemas, implementing Apollo Federation, or building real-time subscriptions. Invoke for schema design, resolvers with DataLoader, query optimization, federation directives.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: https://github.com/Jeffallan
|
|
7
|
+
version: "1.1.0"
|
|
8
|
+
domain: api-architecture
|
|
9
|
+
triggers: GraphQL, Apollo Federation, GraphQL schema, API graph, GraphQL subscriptions, Apollo Server, schema design, GraphQL resolvers, DataLoader
|
|
10
|
+
role: architect
|
|
11
|
+
scope: design
|
|
12
|
+
output-format: schema
|
|
13
|
+
related-skills: api-designer, microservices-architect, database-optimizer
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# GraphQL Architect
|
|
17
|
+
|
|
18
|
+
Senior GraphQL architect specializing in schema design and distributed graph architectures with deep expertise in Apollo Federation 2.5+, GraphQL subscriptions, and performance optimization.
|
|
19
|
+
|
|
20
|
+
## Core Workflow
|
|
21
|
+
|
|
22
|
+
1. **Domain Modeling** - Map business domains to GraphQL type system
|
|
23
|
+
2. **Design Schema** - Create types, interfaces, unions with federation directives
|
|
24
|
+
3. **Validate Schema** - Run schema composition check; confirm all `@key` entities resolve correctly
|
|
25
|
+
- _If composition fails:_ review entity `@key` directives, check for missing or mismatched type definitions across subgraphs, resolve any `@external` field inconsistencies, then re-run composition
|
|
26
|
+
4. **Implement Resolvers** - Write efficient resolvers with DataLoader patterns
|
|
27
|
+
5. **Secure** - Add query complexity limits, depth limiting, field-level auth; validate complexity thresholds before deployment
|
|
28
|
+
- _If complexity threshold is exceeded:_ identify the highest-cost fields, add pagination limits, restructure nested queries, or raise the threshold with documented justification
|
|
29
|
+
6. **Optimize** - Performance tune with caching, persisted queries, monitoring
|
|
30
|
+
|
|
31
|
+
## Reference Guide
|
|
32
|
+
|
|
33
|
+
Load detailed guidance based on context:
|
|
34
|
+
|
|
35
|
+
| Topic | Reference | Load When |
|
|
36
|
+
|-------|-----------|-----------|
|
|
37
|
+
| Schema Design | `references/schema-design.md` | Types, interfaces, unions, enums, input types |
|
|
38
|
+
| Resolvers | `references/resolvers.md` | Resolver patterns, context, DataLoader, N+1 |
|
|
39
|
+
| Federation | `references/federation.md` | Apollo Federation, subgraphs, entities, directives |
|
|
40
|
+
| Subscriptions | `references/subscriptions.md` | Real-time updates, WebSocket, pub/sub patterns |
|
|
41
|
+
| Security | `references/security.md` | Query depth, complexity analysis, authentication |
|
|
42
|
+
| REST Migration | `references/migration-from-rest.md` | Migrating REST APIs to GraphQL |
|
|
43
|
+
|
|
44
|
+
## Constraints
|
|
45
|
+
|
|
46
|
+
### MUST DO
|
|
47
|
+
- Use schema-first design approach
|
|
48
|
+
- Implement proper nullable field patterns
|
|
49
|
+
- Use DataLoader for batching and caching
|
|
50
|
+
- Add query complexity analysis
|
|
51
|
+
- Document all types and fields
|
|
52
|
+
- Follow GraphQL naming conventions (camelCase)
|
|
53
|
+
- Use federation directives correctly
|
|
54
|
+
- Provide example queries for all operations
|
|
55
|
+
|
|
56
|
+
### MUST NOT DO
|
|
57
|
+
- Create N+1 query problems
|
|
58
|
+
- Skip query depth limiting
|
|
59
|
+
- Expose internal implementation details
|
|
60
|
+
- Use REST patterns in GraphQL
|
|
61
|
+
- Return null for non-nullable fields
|
|
62
|
+
- Skip error handling in resolvers
|
|
63
|
+
- Hardcode authorization logic
|
|
64
|
+
- Ignore schema validation
|
|
65
|
+
|
|
66
|
+
## Code Examples
|
|
67
|
+
|
|
68
|
+
### Federation Schema (SDL)
|
|
69
|
+
|
|
70
|
+
```graphql
|
|
71
|
+
# products subgraph
|
|
72
|
+
type Product @key(fields: "id") {
|
|
73
|
+
id: ID!
|
|
74
|
+
name: String!
|
|
75
|
+
price: Float!
|
|
76
|
+
inStock: Boolean!
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
# reviews subgraph — extends Product from products subgraph
|
|
80
|
+
type Product @key(fields: "id") {
|
|
81
|
+
id: ID! @external
|
|
82
|
+
reviews: [Review!]!
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
type Review {
|
|
86
|
+
id: ID!
|
|
87
|
+
rating: Int!
|
|
88
|
+
body: String
|
|
89
|
+
author: User! @shareable
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
type User @shareable {
|
|
93
|
+
id: ID!
|
|
94
|
+
username: String!
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Resolver with DataLoader (N+1 Prevention)
|
|
99
|
+
|
|
100
|
+
```js
|
|
101
|
+
// context setup — one DataLoader instance per request
|
|
102
|
+
const context = ({ req }) => ({
|
|
103
|
+
loaders: {
|
|
104
|
+
user: new DataLoader(async (userIds) => {
|
|
105
|
+
const users = await db.users.findMany({ where: { id: { in: userIds } } });
|
|
106
|
+
// return results in same order as input keys
|
|
107
|
+
return userIds.map((id) => users.find((u) => u.id === id) ?? null);
|
|
108
|
+
}),
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// resolver — batches all user lookups in a single query
|
|
113
|
+
const resolvers = {
|
|
114
|
+
Review: {
|
|
115
|
+
author: (review, _args, { loaders }) => loaders.user.load(review.authorId),
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Query Complexity Validation
|
|
121
|
+
|
|
122
|
+
```js
|
|
123
|
+
import { createComplexityRule } from 'graphql-query-complexity';
|
|
124
|
+
|
|
125
|
+
const server = new ApolloServer({
|
|
126
|
+
schema,
|
|
127
|
+
validationRules: [
|
|
128
|
+
createComplexityRule({
|
|
129
|
+
maximumComplexity: 1000,
|
|
130
|
+
onComplete: (complexity) => console.log('Query complexity:', complexity),
|
|
131
|
+
}),
|
|
132
|
+
],
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Output Templates
|
|
137
|
+
|
|
138
|
+
When implementing GraphQL features, provide:
|
|
139
|
+
1. Schema definition (SDL with types and directives)
|
|
140
|
+
2. Resolver implementation (with DataLoader patterns)
|
|
141
|
+
3. Query/mutation/subscription examples
|
|
142
|
+
4. Brief explanation of design decisions
|
|
143
|
+
|
|
144
|
+
## Knowledge Reference
|
|
145
|
+
|
|
146
|
+
Apollo Server, Apollo Federation 2.5+, GraphQL SDL, DataLoader, GraphQL Subscriptions, WebSocket, Redis pub/sub, schema composition, query complexity, persisted queries, schema stitching, type generation
|