aigroup-workflow 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex/AGENTS.md +1 -1
- package/CLAUDE.md +1 -4
- package/README.md +333 -333
- package/cli/commands/init.mjs +20 -6
- package/cli/utils/scaffold.mjs +39 -9
- package/docs/red-flags.md +1 -1
- package/docs/rules/entropy.md +1 -1
- package/docs/rules/performance.md +1 -1
- package/docs/workflow-pipeline.md +1 -0
- package/manifests/install-modules.json +223 -133
- package/package.json +39 -39
- package/scripts/orchestration/lib/orchestrator.cjs +34 -0
- package/scripts/orchestration/session.cjs +24 -1
- package/skills/ai-ml/fine-tuning-expert/SKILL.md +162 -0
- package/skills/ai-ml/fine-tuning-expert/references/dataset-preparation.md +540 -0
- package/skills/ai-ml/fine-tuning-expert/references/deployment-optimization.md +673 -0
- package/skills/ai-ml/fine-tuning-expert/references/evaluation-metrics.md +597 -0
- package/skills/ai-ml/fine-tuning-expert/references/hyperparameter-tuning.md +565 -0
- package/skills/ai-ml/fine-tuning-expert/references/lora-peft.md +347 -0
- package/skills/ai-ml/ml-pipeline/SKILL.md +159 -0
- package/skills/ai-ml/ml-pipeline/references/experiment-tracking.md +833 -0
- package/skills/ai-ml/ml-pipeline/references/feature-engineering.md +631 -0
- package/skills/ai-ml/ml-pipeline/references/model-validation.md +978 -0
- package/skills/ai-ml/ml-pipeline/references/pipeline-orchestration.md +907 -0
- package/skills/ai-ml/ml-pipeline/references/training-pipelines.md +782 -0
- package/skills/ai-ml/rag-architect/SKILL.md +194 -0
- package/skills/ai-ml/rag-architect/references/chunking-strategies.md +878 -0
- package/skills/ai-ml/rag-architect/references/embedding-models.md +561 -0
- package/skills/ai-ml/rag-architect/references/rag-evaluation.md +833 -0
- package/skills/ai-ml/rag-architect/references/retrieval-optimization.md +795 -0
- package/skills/ai-ml/rag-architect/references/vector-databases.md +589 -0
- package/skills/ai-ml/spark-engineer/SKILL.md +148 -0
- package/skills/ai-ml/spark-engineer/references/partitioning-caching.md +543 -0
- package/skills/ai-ml/spark-engineer/references/performance-tuning.md +544 -0
- package/skills/ai-ml/spark-engineer/references/rdd-operations.md +599 -0
- package/skills/ai-ml/spark-engineer/references/spark-sql-dataframes.md +474 -0
- package/skills/ai-ml/spark-engineer/references/streaming-patterns.md +786 -0
- package/skills/backend/api-designer/SKILL.md +217 -0
- package/skills/backend/api-designer/references/error-handling.md +541 -0
- package/skills/backend/api-designer/references/openapi.md +824 -0
- package/skills/backend/api-designer/references/pagination.md +494 -0
- package/skills/backend/api-designer/references/rest-patterns.md +335 -0
- package/skills/backend/api-designer/references/versioning.md +391 -0
- package/skills/backend/architecture-designer/SKILL.md +117 -0
- package/skills/backend/architecture-designer/references/adr-template.md +116 -0
- package/skills/backend/architecture-designer/references/architecture-patterns.md +111 -0
- package/skills/backend/architecture-designer/references/database-selection.md +102 -0
- package/skills/backend/architecture-designer/references/nfr-checklist.md +112 -0
- package/skills/backend/architecture-designer/references/system-design.md +100 -0
- package/skills/backend/code-documenter/SKILL.md +147 -0
- package/skills/backend/code-documenter/references/api-docs-fastapi-django.md +166 -0
- package/skills/backend/code-documenter/references/api-docs-nestjs-express.md +220 -0
- package/skills/backend/code-documenter/references/coverage-reports.md +125 -0
- package/skills/backend/code-documenter/references/documentation-systems.md +333 -0
- package/skills/backend/code-documenter/references/interactive-api-docs.md +531 -0
- package/skills/backend/code-documenter/references/python-docstrings.md +121 -0
- package/skills/backend/code-documenter/references/typescript-jsdoc.md +145 -0
- package/skills/backend/code-documenter/references/user-guides-tutorials.md +530 -0
- package/skills/backend/debugging-wizard/SKILL.md +105 -0
- package/skills/backend/debugging-wizard/references/common-patterns.md +132 -0
- package/skills/backend/debugging-wizard/references/debugging-tools.md +140 -0
- package/skills/backend/debugging-wizard/references/quick-fixes.md +177 -0
- package/skills/backend/debugging-wizard/references/strategies.md +142 -0
- package/skills/backend/debugging-wizard/references/systematic-debugging.md +367 -0
- package/skills/backend/feature-forge/SKILL.md +98 -0
- package/skills/backend/feature-forge/references/acceptance-criteria.md +104 -0
- package/skills/backend/feature-forge/references/ears-syntax.md +99 -0
- package/skills/backend/feature-forge/references/interview-questions.md +150 -0
- package/skills/backend/feature-forge/references/pre-discovery-subagents.md +54 -0
- package/skills/backend/feature-forge/references/specification-template.md +103 -0
- package/skills/backend/fullstack-guardian/SKILL.md +105 -0
- package/skills/backend/fullstack-guardian/references/api-design-standards.md +307 -0
- package/skills/backend/fullstack-guardian/references/architecture-decisions.md +350 -0
- package/skills/backend/fullstack-guardian/references/backend-patterns.md +237 -0
- package/skills/backend/fullstack-guardian/references/common-patterns.md +134 -0
- package/skills/backend/fullstack-guardian/references/deliverables-checklist.md +354 -0
- package/skills/backend/fullstack-guardian/references/design-template.md +91 -0
- package/skills/backend/fullstack-guardian/references/error-handling.md +135 -0
- package/skills/backend/fullstack-guardian/references/frontend-patterns.md +340 -0
- package/skills/backend/fullstack-guardian/references/integration-patterns.md +333 -0
- package/skills/backend/fullstack-guardian/references/security-checklist.md +106 -0
- package/skills/backend/graphql-architect/SKILL.md +146 -0
- package/skills/backend/graphql-architect/references/federation.md +418 -0
- package/skills/backend/graphql-architect/references/migration-from-rest.md +1141 -0
- package/skills/backend/graphql-architect/references/resolvers.md +425 -0
- package/skills/backend/graphql-architect/references/schema-design.md +393 -0
- package/skills/backend/graphql-architect/references/security.md +569 -0
- package/skills/backend/graphql-architect/references/subscriptions.md +510 -0
- package/skills/backend/legacy-modernizer/SKILL.md +137 -0
- package/skills/backend/legacy-modernizer/references/legacy-testing.md +381 -0
- package/skills/backend/legacy-modernizer/references/migration-strategies.md +423 -0
- package/skills/backend/legacy-modernizer/references/refactoring-patterns.md +395 -0
- package/skills/backend/legacy-modernizer/references/strangler-fig-pattern.md +281 -0
- package/skills/backend/legacy-modernizer/references/system-assessment.md +487 -0
- package/skills/backend/microservices-architect/SKILL.md +164 -0
- package/skills/backend/microservices-architect/references/communication.md +499 -0
- package/skills/backend/microservices-architect/references/data.md +721 -0
- package/skills/backend/microservices-architect/references/decomposition.md +344 -0
- package/skills/backend/microservices-architect/references/observability.md +805 -0
- package/skills/backend/microservices-architect/references/patterns.md +603 -0
- package/skills/database/database-optimizer/SKILL.md +147 -0
- package/skills/database/database-optimizer/references/index-strategies.md +331 -0
- package/skills/database/database-optimizer/references/monitoring-analysis.md +501 -0
- package/skills/database/database-optimizer/references/mysql-tuning.md +452 -0
- package/skills/database/database-optimizer/references/postgresql-tuning.md +413 -0
- package/skills/database/database-optimizer/references/query-optimization.md +251 -0
- package/skills/database/postgres-pro/SKILL.md +152 -0
- package/skills/database/postgres-pro/references/extensions.md +404 -0
- package/skills/database/postgres-pro/references/jsonb.md +321 -0
- package/skills/database/postgres-pro/references/maintenance.md +481 -0
- package/skills/database/postgres-pro/references/performance.md +265 -0
- package/skills/database/postgres-pro/references/replication.md +446 -0
- package/skills/database/sql-pro/SKILL.md +129 -0
- package/skills/database/sql-pro/references/database-design.md +402 -0
- package/skills/database/sql-pro/references/dialect-differences.md +419 -0
- package/skills/database/sql-pro/references/optimization.md +384 -0
- package/skills/database/sql-pro/references/query-patterns.md +285 -0
- package/skills/database/sql-pro/references/window-functions.md +328 -0
- package/skills/dotnet/csharp-developer/SKILL.md +125 -0
- package/skills/dotnet/csharp-developer/references/aspnet-core.md +394 -0
- package/skills/dotnet/csharp-developer/references/blazor.md +553 -0
- package/skills/dotnet/csharp-developer/references/entity-framework.md +409 -0
- package/skills/dotnet/csharp-developer/references/modern-csharp.md +248 -0
- package/skills/dotnet/csharp-developer/references/performance.md +498 -0
- package/skills/dotnet/dotnet-core-expert/SKILL.md +138 -0
- package/skills/dotnet/dotnet-core-expert/references/authentication.md +546 -0
- package/skills/dotnet/dotnet-core-expert/references/clean-architecture.md +455 -0
- package/skills/dotnet/dotnet-core-expert/references/cloud-native.md +548 -0
- package/skills/dotnet/dotnet-core-expert/references/entity-framework.md +440 -0
- package/skills/dotnet/dotnet-core-expert/references/minimal-apis.md +319 -0
- package/skills/frontend/angular-architect/SKILL.md +152 -0
- package/skills/frontend/angular-architect/references/components.md +297 -0
- package/skills/frontend/angular-architect/references/ngrx.md +401 -0
- package/skills/frontend/angular-architect/references/routing.md +361 -0
- package/skills/frontend/angular-architect/references/rxjs.md +319 -0
- package/skills/frontend/angular-architect/references/testing.md +405 -0
- package/skills/frontend/flutter-expert/SKILL.md +138 -0
- package/skills/frontend/flutter-expert/references/bloc-state.md +259 -0
- package/skills/frontend/flutter-expert/references/gorouter-navigation.md +119 -0
- package/skills/frontend/flutter-expert/references/performance.md +99 -0
- package/skills/frontend/flutter-expert/references/project-structure.md +118 -0
- package/skills/frontend/flutter-expert/references/riverpod-state.md +130 -0
- package/skills/frontend/flutter-expert/references/widget-patterns.md +123 -0
- package/skills/frontend/nextjs-developer/SKILL.md +143 -0
- package/skills/frontend/nextjs-developer/references/app-router.md +311 -0
- package/skills/frontend/nextjs-developer/references/data-fetching.md +482 -0
- package/skills/frontend/nextjs-developer/references/deployment.md +545 -0
- package/skills/frontend/nextjs-developer/references/server-actions.md +462 -0
- package/skills/frontend/nextjs-developer/references/server-components.md +384 -0
- package/skills/frontend/react-expert/SKILL.md +149 -0
- package/skills/frontend/react-expert/references/hooks-patterns.md +162 -0
- package/skills/frontend/react-expert/references/migration-class-to-modern.md +1119 -0
- package/skills/frontend/react-expert/references/performance.md +168 -0
- package/skills/frontend/react-expert/references/react-19-features.md +174 -0
- package/skills/frontend/react-expert/references/server-components.md +143 -0
- package/skills/frontend/react-expert/references/state-management.md +171 -0
- package/skills/frontend/react-expert/references/testing-react.md +174 -0
- package/skills/frontend/react-native-expert/SKILL.md +185 -0
- package/skills/frontend/react-native-expert/references/expo-router.md +187 -0
- package/skills/frontend/react-native-expert/references/list-optimization.md +204 -0
- package/skills/frontend/react-native-expert/references/platform-handling.md +188 -0
- package/skills/frontend/react-native-expert/references/project-structure.md +171 -0
- package/skills/frontend/react-native-expert/references/storage-hooks.md +173 -0
- package/skills/frontend/vue-expert/SKILL.md +98 -0
- package/skills/frontend/vue-expert/references/build-tooling.md +480 -0
- package/skills/frontend/vue-expert/references/components.md +448 -0
- package/skills/frontend/vue-expert/references/composition-api.md +299 -0
- package/skills/frontend/vue-expert/references/mobile-hybrid.md +636 -0
- package/skills/frontend/vue-expert/references/nuxt.md +669 -0
- package/skills/frontend/vue-expert/references/state-management.md +449 -0
- package/skills/frontend/vue-expert/references/typescript.md +584 -0
- package/skills/frontend/vue-expert-js/SKILL.md +167 -0
- package/skills/frontend/vue-expert-js/references/component-architecture.md +219 -0
- package/skills/frontend/vue-expert-js/references/composables-patterns.md +183 -0
- package/skills/frontend/vue-expert-js/references/jsdoc-typing.md +535 -0
- package/skills/frontend/vue-expert-js/references/state-management.md +249 -0
- package/skills/frontend/vue-expert-js/references/testing-patterns.md +237 -0
- package/skills/go-rust-cpp/cpp-pro/SKILL.md +115 -0
- package/skills/go-rust-cpp/cpp-pro/references/build-tooling.md +440 -0
- package/skills/go-rust-cpp/cpp-pro/references/concurrency.md +437 -0
- package/skills/go-rust-cpp/cpp-pro/references/memory-performance.md +397 -0
- package/skills/go-rust-cpp/cpp-pro/references/modern-cpp.md +304 -0
- package/skills/go-rust-cpp/cpp-pro/references/templates.md +357 -0
- package/skills/go-rust-cpp/golang-pro/SKILL.md +122 -0
- package/skills/go-rust-cpp/golang-pro/references/concurrency.md +329 -0
- package/skills/go-rust-cpp/golang-pro/references/generics.md +442 -0
- package/skills/go-rust-cpp/golang-pro/references/interfaces.md +432 -0
- package/skills/go-rust-cpp/golang-pro/references/project-structure.md +477 -0
- package/skills/go-rust-cpp/golang-pro/references/testing.md +451 -0
- package/skills/go-rust-cpp/rust-engineer/SKILL.md +167 -0
- package/skills/go-rust-cpp/rust-engineer/references/async.md +458 -0
- package/skills/go-rust-cpp/rust-engineer/references/error-handling.md +334 -0
- package/skills/go-rust-cpp/rust-engineer/references/ownership.md +278 -0
- package/skills/go-rust-cpp/rust-engineer/references/testing.md +470 -0
- package/skills/go-rust-cpp/rust-engineer/references/traits.md +413 -0
- package/skills/infra/cli-developer/SKILL.md +113 -0
- package/skills/infra/cli-developer/references/design-patterns.md +221 -0
- package/skills/infra/cli-developer/references/go-cli.md +540 -0
- package/skills/infra/cli-developer/references/node-cli.md +383 -0
- package/skills/infra/cli-developer/references/python-cli.md +422 -0
- package/skills/infra/cli-developer/references/ux-patterns.md +448 -0
- package/skills/infra/cloud-architect/SKILL.md +216 -0
- package/skills/infra/cloud-architect/references/aws.md +394 -0
- package/skills/infra/cloud-architect/references/azure.md +562 -0
- package/skills/infra/cloud-architect/references/cost.md +582 -0
- package/skills/infra/cloud-architect/references/gcp.md +633 -0
- package/skills/infra/cloud-architect/references/multi-cloud.md +483 -0
- package/skills/infra/devops-engineer/SKILL.md +144 -0
- package/skills/infra/devops-engineer/references/deployment-strategies.md +241 -0
- package/skills/infra/devops-engineer/references/docker-patterns.md +113 -0
- package/skills/infra/devops-engineer/references/github-actions.md +139 -0
- package/skills/infra/devops-engineer/references/incident-response.md +331 -0
- package/skills/infra/devops-engineer/references/kubernetes.md +154 -0
- package/skills/infra/devops-engineer/references/platform-engineering.md +417 -0
- package/skills/infra/devops-engineer/references/release-automation.md +527 -0
- package/skills/infra/devops-engineer/references/terraform-iac.md +141 -0
- package/skills/infra/kubernetes-specialist/SKILL.md +241 -0
- package/skills/infra/kubernetes-specialist/references/configuration.md +452 -0
- package/skills/infra/kubernetes-specialist/references/cost-optimization.md +458 -0
- package/skills/infra/kubernetes-specialist/references/custom-operators.md +563 -0
- package/skills/infra/kubernetes-specialist/references/gitops.md +530 -0
- package/skills/infra/kubernetes-specialist/references/helm-charts.md +912 -0
- package/skills/infra/kubernetes-specialist/references/multi-cluster.md +507 -0
- package/skills/infra/kubernetes-specialist/references/networking.md +447 -0
- package/skills/infra/kubernetes-specialist/references/service-mesh.md +459 -0
- package/skills/infra/kubernetes-specialist/references/storage.md +535 -0
- package/skills/infra/kubernetes-specialist/references/troubleshooting.md +414 -0
- package/skills/infra/kubernetes-specialist/references/workloads.md +377 -0
- package/skills/infra/mcp-developer/SKILL.md +143 -0
- package/skills/infra/mcp-developer/references/protocol.md +244 -0
- package/skills/infra/mcp-developer/references/python-sdk.md +367 -0
- package/skills/infra/mcp-developer/references/resources.md +554 -0
- package/skills/infra/mcp-developer/references/tools.md +480 -0
- package/skills/infra/mcp-developer/references/typescript-sdk.md +350 -0
- package/skills/infra/monitoring-expert/SKILL.md +176 -0
- package/skills/infra/monitoring-expert/references/alerting-rules.md +141 -0
- package/skills/infra/monitoring-expert/references/application-profiling.md +331 -0
- package/skills/infra/monitoring-expert/references/capacity-planning.md +344 -0
- package/skills/infra/monitoring-expert/references/dashboards.md +126 -0
- package/skills/infra/monitoring-expert/references/opentelemetry.md +123 -0
- package/skills/infra/monitoring-expert/references/performance-testing.md +269 -0
- package/skills/infra/monitoring-expert/references/prometheus-metrics.md +136 -0
- package/skills/infra/monitoring-expert/references/structured-logging.md +142 -0
- package/skills/infra/sre-engineer/SKILL.md +181 -0
- package/skills/infra/sre-engineer/references/automation-toil.md +492 -0
- package/skills/infra/sre-engineer/references/error-budget-policy.md +334 -0
- package/skills/infra/sre-engineer/references/incident-chaos.md +576 -0
- package/skills/infra/sre-engineer/references/monitoring-alerting.md +424 -0
- package/skills/infra/sre-engineer/references/slo-sli-management.md +238 -0
- package/skills/infra/terraform-engineer/SKILL.md +143 -0
- package/skills/infra/terraform-engineer/references/best-practices.md +583 -0
- package/skills/infra/terraform-engineer/references/module-patterns.md +297 -0
- package/skills/infra/terraform-engineer/references/providers.md +452 -0
- package/skills/infra/terraform-engineer/references/state-management.md +371 -0
- package/skills/infra/terraform-engineer/references/testing.md +486 -0
- package/skills/infra/websocket-engineer/SKILL.md +168 -0
- package/skills/infra/websocket-engineer/references/alternatives.md +391 -0
- package/skills/infra/websocket-engineer/references/patterns.md +400 -0
- package/skills/infra/websocket-engineer/references/protocol.md +195 -0
- package/skills/infra/websocket-engineer/references/scaling.md +333 -0
- package/skills/infra/websocket-engineer/references/security.md +474 -0
- package/skills/java/java-architect/SKILL.md +132 -0
- package/skills/java/java-architect/references/jpa-optimization.md +393 -0
- package/skills/java/java-architect/references/reactive-webflux.md +356 -0
- package/skills/java/java-architect/references/spring-boot-setup.md +269 -0
- package/skills/java/java-architect/references/spring-security.md +445 -0
- package/skills/java/java-architect/references/testing-patterns.md +500 -0
- package/skills/java/kotlin-specialist/SKILL.md +147 -0
- package/skills/java/kotlin-specialist/references/android-compose.md +419 -0
- package/skills/java/kotlin-specialist/references/coroutines-flow.md +276 -0
- package/skills/java/kotlin-specialist/references/dsl-idioms.md +421 -0
- package/skills/java/kotlin-specialist/references/ktor-server.md +426 -0
- package/skills/java/kotlin-specialist/references/multiplatform-kmp.md +380 -0
- package/skills/java/spring-boot-engineer/SKILL.md +195 -0
- package/skills/java/spring-boot-engineer/references/cloud.md +498 -0
- package/skills/java/spring-boot-engineer/references/data.md +381 -0
- package/skills/java/spring-boot-engineer/references/security.md +459 -0
- package/skills/java/spring-boot-engineer/references/testing.md +545 -0
- package/skills/java/spring-boot-engineer/references/web.md +295 -0
- package/skills/javascript/javascript-pro/SKILL.md +132 -0
- package/skills/javascript/javascript-pro/references/async-patterns.md +334 -0
- package/skills/javascript/javascript-pro/references/browser-apis.md +398 -0
- package/skills/javascript/javascript-pro/references/modern-syntax.md +272 -0
- package/skills/javascript/javascript-pro/references/modules.md +357 -0
- package/skills/javascript/javascript-pro/references/node-essentials.md +471 -0
- package/skills/javascript/nestjs-expert/SKILL.md +206 -0
- package/skills/javascript/nestjs-expert/references/authentication.md +166 -0
- package/skills/javascript/nestjs-expert/references/controllers-routing.md +111 -0
- package/skills/javascript/nestjs-expert/references/dtos-validation.md +153 -0
- package/skills/javascript/nestjs-expert/references/migration-from-express.md +1237 -0
- package/skills/javascript/nestjs-expert/references/services-di.md +140 -0
- package/skills/javascript/nestjs-expert/references/testing-patterns.md +186 -0
- package/skills/javascript/typescript-pro/SKILL.md +145 -0
- package/skills/javascript/typescript-pro/references/advanced-types.md +259 -0
- package/skills/javascript/typescript-pro/references/configuration.md +445 -0
- package/skills/javascript/typescript-pro/references/patterns.md +484 -0
- package/skills/javascript/typescript-pro/references/type-guards.md +352 -0
- package/skills/javascript/typescript-pro/references/utility-types.md +329 -0
- package/skills/php/laravel-specialist/SKILL.md +262 -0
- package/skills/php/laravel-specialist/references/eloquent.md +351 -0
- package/skills/php/laravel-specialist/references/livewire.md +512 -0
- package/skills/php/laravel-specialist/references/queues.md +423 -0
- package/skills/php/laravel-specialist/references/routing.md +362 -0
- package/skills/php/laravel-specialist/references/testing.md +522 -0
- package/skills/php/php-pro/SKILL.md +206 -0
- package/skills/php/php-pro/references/async-patterns.md +412 -0
- package/skills/php/php-pro/references/laravel-patterns.md +377 -0
- package/skills/php/php-pro/references/modern-php-features.md +323 -0
- package/skills/php/php-pro/references/symfony-patterns.md +466 -0
- package/skills/php/php-pro/references/testing-quality.md +466 -0
- package/skills/python/django-expert/SKILL.md +162 -0
- package/skills/python/django-expert/references/authentication.md +145 -0
- package/skills/python/django-expert/references/drf-serializers.md +148 -0
- package/skills/python/django-expert/references/models-orm.md +151 -0
- package/skills/python/django-expert/references/testing-django.md +204 -0
- package/skills/python/django-expert/references/viewsets-views.md +153 -0
- package/skills/python/fastapi-expert/SKILL.md +185 -0
- package/skills/python/fastapi-expert/references/async-sqlalchemy.md +146 -0
- package/skills/python/fastapi-expert/references/authentication.md +159 -0
- package/skills/python/fastapi-expert/references/endpoints-routing.md +142 -0
- package/skills/python/fastapi-expert/references/migration-from-django.md +997 -0
- package/skills/python/fastapi-expert/references/pydantic-v2.md +135 -0
- package/skills/python/fastapi-expert/references/testing-async.md +159 -0
- package/skills/python/pandas-pro/SKILL.md +178 -0
- package/skills/python/pandas-pro/references/aggregation-groupby.md +545 -0
- package/skills/python/pandas-pro/references/data-cleaning.md +500 -0
- package/skills/python/pandas-pro/references/dataframe-operations.md +420 -0
- package/skills/python/pandas-pro/references/merging-joining.md +596 -0
- package/skills/python/pandas-pro/references/performance-optimization.md +597 -0
- package/skills/python/python-pro/SKILL.md +177 -0
- package/skills/python/python-pro/references/async-patterns.md +356 -0
- package/skills/python/python-pro/references/packaging.md +460 -0
- package/skills/python/python-pro/references/standard-library.md +378 -0
- package/skills/python/python-pro/references/testing.md +404 -0
- package/skills/python/python-pro/references/type-system.md +290 -0
- package/skills/quality/chaos-engineer/SKILL.md +182 -0
- package/skills/quality/chaos-engineer/references/chaos-tools.md +511 -0
- package/skills/quality/chaos-engineer/references/experiment-design.md +229 -0
- package/skills/quality/chaos-engineer/references/game-days.md +434 -0
- package/skills/quality/chaos-engineer/references/infrastructure-chaos.md +348 -0
- package/skills/quality/chaos-engineer/references/kubernetes-chaos.md +432 -0
- package/skills/quality/code-reviewer/SKILL.md +119 -0
- package/skills/quality/code-reviewer/references/common-issues.md +142 -0
- package/skills/quality/code-reviewer/references/feedback-examples.md +144 -0
- package/skills/quality/code-reviewer/references/receiving-feedback.md +238 -0
- package/skills/quality/code-reviewer/references/report-template.md +109 -0
- package/skills/quality/code-reviewer/references/review-checklist.md +88 -0
- package/skills/quality/code-reviewer/references/spec-compliance-review.md +258 -0
- package/skills/quality/playwright-expert/SKILL.md +169 -0
- package/skills/quality/playwright-expert/references/api-mocking.md +140 -0
- package/skills/quality/playwright-expert/references/configuration.md +155 -0
- package/skills/quality/playwright-expert/references/debugging-flaky.md +150 -0
- package/skills/quality/playwright-expert/references/page-object-model.md +152 -0
- package/skills/quality/playwright-expert/references/selectors-locators.md +119 -0
- package/skills/quality/secure-code-guardian/SKILL.md +191 -0
- package/skills/quality/secure-code-guardian/references/authentication.md +136 -0
- package/skills/quality/secure-code-guardian/references/input-validation.md +146 -0
- package/skills/quality/secure-code-guardian/references/owasp-prevention.md +135 -0
- package/skills/quality/secure-code-guardian/references/security-headers.md +133 -0
- package/skills/quality/secure-code-guardian/references/xss-csrf.md +157 -0
- package/skills/quality/security-reviewer/SKILL.md +103 -0
- package/skills/quality/security-reviewer/references/infrastructure-security.md +268 -0
- package/skills/quality/security-reviewer/references/penetration-testing.md +268 -0
- package/skills/quality/security-reviewer/references/report-template.md +170 -0
- package/skills/quality/security-reviewer/references/sast-tools.md +117 -0
- package/skills/quality/security-reviewer/references/secret-scanning.md +125 -0
- package/skills/quality/security-reviewer/references/vulnerability-patterns.md +152 -0
- package/skills/quality/tdd-guide/assets/sample_coverage_report.lcov +0 -0
- package/skills/quality/test-master/SKILL.md +94 -0
- package/skills/quality/test-master/references/automation-frameworks.md +294 -0
- package/skills/quality/test-master/references/e2e-testing.md +128 -0
- package/skills/quality/test-master/references/integration-testing.md +120 -0
- package/skills/quality/test-master/references/performance-testing.md +118 -0
- package/skills/quality/test-master/references/qa-methodology.md +247 -0
- package/skills/quality/test-master/references/security-testing.md +127 -0
- package/skills/quality/test-master/references/tdd-iron-laws.md +174 -0
- package/skills/quality/test-master/references/test-reports.md +104 -0
- package/skills/quality/test-master/references/testing-anti-patterns.md +231 -0
- package/skills/quality/test-master/references/unit-testing.md +113 -0
- package/skills/ruby/rails-expert/SKILL.md +154 -0
- package/skills/ruby/rails-expert/references/active-record.md +244 -0
- package/skills/ruby/rails-expert/references/api-development.md +401 -0
- package/skills/ruby/rails-expert/references/background-jobs.md +272 -0
- package/skills/ruby/rails-expert/references/hotwire-turbo.md +228 -0
- package/skills/ruby/rails-expert/references/rspec-testing.md +367 -0
- package/skills/swift/swift-expert/SKILL.md +163 -0
- package/skills/swift/swift-expert/references/async-concurrency.md +360 -0
- package/skills/swift/swift-expert/references/memory-performance.md +377 -0
- package/skills/swift/swift-expert/references/protocol-oriented.md +354 -0
- package/skills/swift/swift-expert/references/swiftui-patterns.md +291 -0
- package/skills/swift/swift-expert/references/testing-patterns.md +399 -0
- package/skills/workflow/brainstorming/SKILL.md +164 -0
- package/skills/workflow/brainstorming/scripts/helper.js +88 -0
- package/skills/workflow/brainstorming/scripts/start-server.sh +148 -0
- package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -0
- package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/workflow/brainstorming/visual-companion.md +287 -0
- package/skills/workflow/documentation/SKILL.md +45 -0
- package/skills/workflow/entropy-management/SKILL.md +115 -0
- package/skills/workflow/executing-plans/SKILL.md +70 -0
- package/skills/workflow/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/workflow/receiving-code-review/SKILL.md +213 -0
- package/skills/workflow/requesting-code-review/SKILL.md +105 -0
- package/skills/workflow/requesting-code-review/code-reviewer.md +146 -0
- package/skills/workflow/requirement-engineering/SKILL.md +111 -0
- package/skills/workflow/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/workflow/systematic-debugging/SKILL.md +296 -0
- package/skills/workflow/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/workflow/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/workflow/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/workflow/systematic-debugging/find-polluter.sh +63 -0
- package/skills/workflow/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/workflow/systematic-debugging/test-academic.md +14 -0
- package/skills/workflow/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/workflow/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/workflow/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/workflow/using-git-worktrees/SKILL.md +218 -0
- package/skills/workflow/verification-before-completion/SKILL.md +139 -0
- package/skills/workflow/writing-plans/SKILL.md +151 -0
- package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/workflow/writing-skills/SKILL.md +655 -0
- package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -0
- package/skills/workflow/writing-skills/persuasion-principles.md +187 -0
- package/skills/workflow/writing-skills/render-graphs.js +168 -0
- package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/angular-architect/SKILL.md +0 -152
- package/skills/angular-architect/references/components.md +0 -297
- package/skills/angular-architect/references/ngrx.md +0 -401
- package/skills/angular-architect/references/routing.md +0 -361
- package/skills/angular-architect/references/rxjs.md +0 -319
- package/skills/angular-architect/references/testing.md +0 -405
- package/skills/api-designer/SKILL.md +0 -217
- package/skills/api-designer/references/error-handling.md +0 -541
- package/skills/api-designer/references/openapi.md +0 -824
- package/skills/api-designer/references/pagination.md +0 -494
- package/skills/api-designer/references/rest-patterns.md +0 -335
- package/skills/api-designer/references/versioning.md +0 -391
- package/skills/architecture-designer/SKILL.md +0 -117
- package/skills/architecture-designer/references/adr-template.md +0 -116
- package/skills/architecture-designer/references/architecture-patterns.md +0 -111
- package/skills/architecture-designer/references/database-selection.md +0 -102
- package/skills/architecture-designer/references/nfr-checklist.md +0 -112
- package/skills/architecture-designer/references/system-design.md +0 -100
- package/skills/brainstorming/SKILL.md +0 -164
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/start-server.sh +0 -148
- package/skills/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/skills/brainstorming/visual-companion.md +0 -287
- package/skills/chaos-engineer/SKILL.md +0 -182
- package/skills/chaos-engineer/references/chaos-tools.md +0 -511
- package/skills/chaos-engineer/references/experiment-design.md +0 -229
- package/skills/chaos-engineer/references/game-days.md +0 -434
- package/skills/chaos-engineer/references/infrastructure-chaos.md +0 -348
- package/skills/chaos-engineer/references/kubernetes-chaos.md +0 -432
- package/skills/cli-developer/SKILL.md +0 -113
- package/skills/cli-developer/references/design-patterns.md +0 -221
- package/skills/cli-developer/references/go-cli.md +0 -540
- package/skills/cli-developer/references/node-cli.md +0 -383
- package/skills/cli-developer/references/python-cli.md +0 -422
- package/skills/cli-developer/references/ux-patterns.md +0 -448
- package/skills/cloud-architect/SKILL.md +0 -216
- package/skills/cloud-architect/references/aws.md +0 -394
- package/skills/cloud-architect/references/azure.md +0 -562
- package/skills/cloud-architect/references/cost.md +0 -582
- package/skills/cloud-architect/references/gcp.md +0 -633
- package/skills/cloud-architect/references/multi-cloud.md +0 -483
- package/skills/code-documenter/SKILL.md +0 -147
- package/skills/code-documenter/references/api-docs-fastapi-django.md +0 -166
- package/skills/code-documenter/references/api-docs-nestjs-express.md +0 -220
- package/skills/code-documenter/references/coverage-reports.md +0 -125
- package/skills/code-documenter/references/documentation-systems.md +0 -333
- package/skills/code-documenter/references/interactive-api-docs.md +0 -531
- package/skills/code-documenter/references/python-docstrings.md +0 -121
- package/skills/code-documenter/references/typescript-jsdoc.md +0 -145
- package/skills/code-documenter/references/user-guides-tutorials.md +0 -530
- package/skills/code-reviewer/SKILL.md +0 -119
- package/skills/code-reviewer/references/common-issues.md +0 -142
- package/skills/code-reviewer/references/feedback-examples.md +0 -144
- package/skills/code-reviewer/references/receiving-feedback.md +0 -238
- package/skills/code-reviewer/references/report-template.md +0 -109
- package/skills/code-reviewer/references/review-checklist.md +0 -88
- package/skills/code-reviewer/references/spec-compliance-review.md +0 -258
- package/skills/cpp-pro/SKILL.md +0 -115
- package/skills/cpp-pro/references/build-tooling.md +0 -440
- package/skills/cpp-pro/references/concurrency.md +0 -437
- package/skills/cpp-pro/references/memory-performance.md +0 -397
- package/skills/cpp-pro/references/modern-cpp.md +0 -304
- package/skills/cpp-pro/references/templates.md +0 -357
- package/skills/csharp-developer/SKILL.md +0 -125
- package/skills/csharp-developer/references/aspnet-core.md +0 -394
- package/skills/csharp-developer/references/blazor.md +0 -553
- package/skills/csharp-developer/references/entity-framework.md +0 -409
- package/skills/csharp-developer/references/modern-csharp.md +0 -248
- package/skills/csharp-developer/references/performance.md +0 -498
- package/skills/database-optimizer/SKILL.md +0 -147
- package/skills/database-optimizer/references/index-strategies.md +0 -331
- package/skills/database-optimizer/references/monitoring-analysis.md +0 -501
- package/skills/database-optimizer/references/mysql-tuning.md +0 -452
- package/skills/database-optimizer/references/postgresql-tuning.md +0 -413
- package/skills/database-optimizer/references/query-optimization.md +0 -251
- package/skills/debugging-wizard/SKILL.md +0 -105
- package/skills/debugging-wizard/references/common-patterns.md +0 -132
- package/skills/debugging-wizard/references/debugging-tools.md +0 -140
- package/skills/debugging-wizard/references/quick-fixes.md +0 -177
- package/skills/debugging-wizard/references/strategies.md +0 -142
- package/skills/debugging-wizard/references/systematic-debugging.md +0 -367
- package/skills/devops-engineer/SKILL.md +0 -144
- package/skills/devops-engineer/references/deployment-strategies.md +0 -241
- package/skills/devops-engineer/references/docker-patterns.md +0 -113
- package/skills/devops-engineer/references/github-actions.md +0 -139
- package/skills/devops-engineer/references/incident-response.md +0 -331
- package/skills/devops-engineer/references/kubernetes.md +0 -154
- package/skills/devops-engineer/references/platform-engineering.md +0 -417
- package/skills/devops-engineer/references/release-automation.md +0 -527
- package/skills/devops-engineer/references/terraform-iac.md +0 -141
- package/skills/django-expert/SKILL.md +0 -162
- package/skills/django-expert/references/authentication.md +0 -145
- package/skills/django-expert/references/drf-serializers.md +0 -148
- package/skills/django-expert/references/models-orm.md +0 -151
- package/skills/django-expert/references/testing-django.md +0 -204
- package/skills/django-expert/references/viewsets-views.md +0 -153
- package/skills/documentation/SKILL.md +0 -45
- package/skills/dotnet-core-expert/SKILL.md +0 -138
- package/skills/dotnet-core-expert/references/authentication.md +0 -546
- package/skills/dotnet-core-expert/references/clean-architecture.md +0 -455
- package/skills/dotnet-core-expert/references/cloud-native.md +0 -548
- package/skills/dotnet-core-expert/references/entity-framework.md +0 -440
- package/skills/dotnet-core-expert/references/minimal-apis.md +0 -319
- package/skills/entropy-management/SKILL.md +0 -115
- package/skills/executing-plans/SKILL.md +0 -70
- package/skills/fastapi-expert/SKILL.md +0 -185
- package/skills/fastapi-expert/references/async-sqlalchemy.md +0 -146
- package/skills/fastapi-expert/references/authentication.md +0 -159
- package/skills/fastapi-expert/references/endpoints-routing.md +0 -142
- package/skills/fastapi-expert/references/migration-from-django.md +0 -997
- package/skills/fastapi-expert/references/pydantic-v2.md +0 -135
- package/skills/fastapi-expert/references/testing-async.md +0 -159
- package/skills/feature-forge/SKILL.md +0 -98
- package/skills/feature-forge/references/acceptance-criteria.md +0 -104
- package/skills/feature-forge/references/ears-syntax.md +0 -99
- package/skills/feature-forge/references/interview-questions.md +0 -150
- package/skills/feature-forge/references/pre-discovery-subagents.md +0 -54
- package/skills/feature-forge/references/specification-template.md +0 -103
- package/skills/fine-tuning-expert/SKILL.md +0 -162
- package/skills/fine-tuning-expert/references/dataset-preparation.md +0 -540
- package/skills/fine-tuning-expert/references/deployment-optimization.md +0 -673
- package/skills/fine-tuning-expert/references/evaluation-metrics.md +0 -597
- package/skills/fine-tuning-expert/references/hyperparameter-tuning.md +0 -565
- package/skills/fine-tuning-expert/references/lora-peft.md +0 -347
- package/skills/finishing-a-development-branch/SKILL.md +0 -200
- package/skills/flutter-expert/SKILL.md +0 -138
- package/skills/flutter-expert/references/bloc-state.md +0 -259
- package/skills/flutter-expert/references/gorouter-navigation.md +0 -119
- package/skills/flutter-expert/references/performance.md +0 -99
- package/skills/flutter-expert/references/project-structure.md +0 -118
- package/skills/flutter-expert/references/riverpod-state.md +0 -130
- package/skills/flutter-expert/references/widget-patterns.md +0 -123
- package/skills/fullstack-guardian/SKILL.md +0 -105
- package/skills/fullstack-guardian/references/api-design-standards.md +0 -307
- package/skills/fullstack-guardian/references/architecture-decisions.md +0 -350
- package/skills/fullstack-guardian/references/backend-patterns.md +0 -237
- package/skills/fullstack-guardian/references/common-patterns.md +0 -134
- package/skills/fullstack-guardian/references/deliverables-checklist.md +0 -354
- package/skills/fullstack-guardian/references/design-template.md +0 -91
- package/skills/fullstack-guardian/references/error-handling.md +0 -135
- package/skills/fullstack-guardian/references/frontend-patterns.md +0 -340
- package/skills/fullstack-guardian/references/integration-patterns.md +0 -333
- package/skills/fullstack-guardian/references/security-checklist.md +0 -106
- package/skills/golang-pro/SKILL.md +0 -122
- package/skills/golang-pro/references/concurrency.md +0 -329
- package/skills/golang-pro/references/generics.md +0 -442
- package/skills/golang-pro/references/interfaces.md +0 -432
- package/skills/golang-pro/references/project-structure.md +0 -477
- package/skills/golang-pro/references/testing.md +0 -451
- package/skills/graphql-architect/SKILL.md +0 -146
- package/skills/graphql-architect/references/federation.md +0 -418
- package/skills/graphql-architect/references/migration-from-rest.md +0 -1141
- package/skills/graphql-architect/references/resolvers.md +0 -425
- package/skills/graphql-architect/references/schema-design.md +0 -393
- package/skills/graphql-architect/references/security.md +0 -569
- package/skills/graphql-architect/references/subscriptions.md +0 -510
- package/skills/java-architect/SKILL.md +0 -132
- package/skills/java-architect/references/jpa-optimization.md +0 -393
- package/skills/java-architect/references/reactive-webflux.md +0 -356
- package/skills/java-architect/references/spring-boot-setup.md +0 -269
- package/skills/java-architect/references/spring-security.md +0 -445
- package/skills/java-architect/references/testing-patterns.md +0 -500
- package/skills/javascript-pro/SKILL.md +0 -132
- package/skills/javascript-pro/references/async-patterns.md +0 -334
- package/skills/javascript-pro/references/browser-apis.md +0 -398
- package/skills/javascript-pro/references/modern-syntax.md +0 -272
- package/skills/javascript-pro/references/modules.md +0 -357
- package/skills/javascript-pro/references/node-essentials.md +0 -471
- package/skills/kotlin-specialist/SKILL.md +0 -147
- package/skills/kotlin-specialist/references/android-compose.md +0 -419
- package/skills/kotlin-specialist/references/coroutines-flow.md +0 -276
- package/skills/kotlin-specialist/references/dsl-idioms.md +0 -421
- package/skills/kotlin-specialist/references/ktor-server.md +0 -426
- package/skills/kotlin-specialist/references/multiplatform-kmp.md +0 -380
- package/skills/kubernetes-specialist/SKILL.md +0 -241
- package/skills/kubernetes-specialist/references/configuration.md +0 -452
- package/skills/kubernetes-specialist/references/cost-optimization.md +0 -458
- package/skills/kubernetes-specialist/references/custom-operators.md +0 -563
- package/skills/kubernetes-specialist/references/gitops.md +0 -530
- package/skills/kubernetes-specialist/references/helm-charts.md +0 -912
- package/skills/kubernetes-specialist/references/multi-cluster.md +0 -507
- package/skills/kubernetes-specialist/references/networking.md +0 -447
- package/skills/kubernetes-specialist/references/service-mesh.md +0 -459
- package/skills/kubernetes-specialist/references/storage.md +0 -535
- package/skills/kubernetes-specialist/references/troubleshooting.md +0 -414
- package/skills/kubernetes-specialist/references/workloads.md +0 -377
- package/skills/laravel-specialist/SKILL.md +0 -262
- package/skills/laravel-specialist/references/eloquent.md +0 -351
- package/skills/laravel-specialist/references/livewire.md +0 -512
- package/skills/laravel-specialist/references/queues.md +0 -423
- package/skills/laravel-specialist/references/routing.md +0 -362
- package/skills/laravel-specialist/references/testing.md +0 -522
- package/skills/legacy-modernizer/SKILL.md +0 -137
- package/skills/legacy-modernizer/references/legacy-testing.md +0 -381
- package/skills/legacy-modernizer/references/migration-strategies.md +0 -423
- package/skills/legacy-modernizer/references/refactoring-patterns.md +0 -395
- package/skills/legacy-modernizer/references/strangler-fig-pattern.md +0 -281
- package/skills/legacy-modernizer/references/system-assessment.md +0 -487
- package/skills/mcp-developer/SKILL.md +0 -143
- package/skills/mcp-developer/references/protocol.md +0 -244
- package/skills/mcp-developer/references/python-sdk.md +0 -367
- package/skills/mcp-developer/references/resources.md +0 -554
- package/skills/mcp-developer/references/tools.md +0 -480
- package/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/skills/microservices-architect/SKILL.md +0 -164
- package/skills/microservices-architect/references/communication.md +0 -499
- package/skills/microservices-architect/references/data.md +0 -721
- package/skills/microservices-architect/references/decomposition.md +0 -344
- package/skills/microservices-architect/references/observability.md +0 -805
- package/skills/microservices-architect/references/patterns.md +0 -603
- package/skills/ml-pipeline/SKILL.md +0 -159
- package/skills/ml-pipeline/references/experiment-tracking.md +0 -833
- package/skills/ml-pipeline/references/feature-engineering.md +0 -631
- package/skills/ml-pipeline/references/model-validation.md +0 -978
- package/skills/ml-pipeline/references/pipeline-orchestration.md +0 -907
- package/skills/ml-pipeline/references/training-pipelines.md +0 -782
- package/skills/monitoring-expert/SKILL.md +0 -176
- package/skills/monitoring-expert/references/alerting-rules.md +0 -141
- package/skills/monitoring-expert/references/application-profiling.md +0 -331
- package/skills/monitoring-expert/references/capacity-planning.md +0 -344
- package/skills/monitoring-expert/references/dashboards.md +0 -126
- package/skills/monitoring-expert/references/opentelemetry.md +0 -123
- package/skills/monitoring-expert/references/performance-testing.md +0 -269
- package/skills/monitoring-expert/references/prometheus-metrics.md +0 -136
- package/skills/monitoring-expert/references/structured-logging.md +0 -142
- package/skills/nestjs-expert/SKILL.md +0 -206
- package/skills/nestjs-expert/references/authentication.md +0 -166
- package/skills/nestjs-expert/references/controllers-routing.md +0 -111
- package/skills/nestjs-expert/references/dtos-validation.md +0 -153
- package/skills/nestjs-expert/references/migration-from-express.md +0 -1237
- package/skills/nestjs-expert/references/services-di.md +0 -140
- package/skills/nestjs-expert/references/testing-patterns.md +0 -186
- package/skills/nextjs-developer/SKILL.md +0 -143
- package/skills/nextjs-developer/references/app-router.md +0 -311
- package/skills/nextjs-developer/references/data-fetching.md +0 -482
- package/skills/nextjs-developer/references/deployment.md +0 -545
- package/skills/nextjs-developer/references/server-actions.md +0 -462
- package/skills/nextjs-developer/references/server-components.md +0 -384
- package/skills/pandas-pro/SKILL.md +0 -178
- package/skills/pandas-pro/references/aggregation-groupby.md +0 -545
- package/skills/pandas-pro/references/data-cleaning.md +0 -500
- package/skills/pandas-pro/references/dataframe-operations.md +0 -420
- package/skills/pandas-pro/references/merging-joining.md +0 -596
- package/skills/pandas-pro/references/performance-optimization.md +0 -597
- package/skills/php-pro/SKILL.md +0 -206
- package/skills/php-pro/references/async-patterns.md +0 -412
- package/skills/php-pro/references/laravel-patterns.md +0 -377
- package/skills/php-pro/references/modern-php-features.md +0 -323
- package/skills/php-pro/references/symfony-patterns.md +0 -466
- package/skills/php-pro/references/testing-quality.md +0 -466
- package/skills/playwright-expert/SKILL.md +0 -169
- package/skills/playwright-expert/references/api-mocking.md +0 -140
- package/skills/playwright-expert/references/configuration.md +0 -155
- package/skills/playwright-expert/references/debugging-flaky.md +0 -150
- package/skills/playwright-expert/references/page-object-model.md +0 -152
- package/skills/playwright-expert/references/selectors-locators.md +0 -119
- package/skills/postgres-pro/SKILL.md +0 -152
- package/skills/postgres-pro/references/extensions.md +0 -404
- package/skills/postgres-pro/references/jsonb.md +0 -321
- package/skills/postgres-pro/references/maintenance.md +0 -481
- package/skills/postgres-pro/references/performance.md +0 -265
- package/skills/postgres-pro/references/replication.md +0 -446
- package/skills/python-pro/SKILL.md +0 -177
- package/skills/python-pro/references/async-patterns.md +0 -356
- package/skills/python-pro/references/packaging.md +0 -460
- package/skills/python-pro/references/standard-library.md +0 -378
- package/skills/python-pro/references/testing.md +0 -404
- package/skills/python-pro/references/type-system.md +0 -290
- package/skills/rag-architect/SKILL.md +0 -194
- package/skills/rag-architect/references/chunking-strategies.md +0 -878
- package/skills/rag-architect/references/embedding-models.md +0 -561
- package/skills/rag-architect/references/rag-evaluation.md +0 -833
- package/skills/rag-architect/references/retrieval-optimization.md +0 -795
- package/skills/rag-architect/references/vector-databases.md +0 -589
- package/skills/rails-expert/SKILL.md +0 -154
- package/skills/rails-expert/references/active-record.md +0 -244
- package/skills/rails-expert/references/api-development.md +0 -401
- package/skills/rails-expert/references/background-jobs.md +0 -272
- package/skills/rails-expert/references/hotwire-turbo.md +0 -228
- package/skills/rails-expert/references/rspec-testing.md +0 -367
- package/skills/react-expert/SKILL.md +0 -149
- package/skills/react-expert/references/hooks-patterns.md +0 -162
- package/skills/react-expert/references/migration-class-to-modern.md +0 -1119
- package/skills/react-expert/references/performance.md +0 -168
- package/skills/react-expert/references/react-19-features.md +0 -174
- package/skills/react-expert/references/server-components.md +0 -143
- package/skills/react-expert/references/state-management.md +0 -171
- package/skills/react-expert/references/testing-react.md +0 -174
- package/skills/react-native-expert/SKILL.md +0 -185
- package/skills/react-native-expert/references/expo-router.md +0 -187
- package/skills/react-native-expert/references/list-optimization.md +0 -204
- package/skills/react-native-expert/references/platform-handling.md +0 -188
- package/skills/react-native-expert/references/project-structure.md +0 -171
- package/skills/react-native-expert/references/storage-hooks.md +0 -173
- package/skills/receiving-code-review/SKILL.md +0 -213
- package/skills/requesting-code-review/SKILL.md +0 -105
- package/skills/requesting-code-review/code-reviewer.md +0 -146
- package/skills/requirement-engineering/SKILL.md +0 -111
- package/skills/rust-engineer/SKILL.md +0 -167
- package/skills/rust-engineer/references/async.md +0 -458
- package/skills/rust-engineer/references/error-handling.md +0 -334
- package/skills/rust-engineer/references/ownership.md +0 -278
- package/skills/rust-engineer/references/testing.md +0 -470
- package/skills/rust-engineer/references/traits.md +0 -413
- package/skills/secure-code-guardian/SKILL.md +0 -191
- package/skills/secure-code-guardian/references/authentication.md +0 -136
- package/skills/secure-code-guardian/references/input-validation.md +0 -146
- package/skills/secure-code-guardian/references/owasp-prevention.md +0 -135
- package/skills/secure-code-guardian/references/security-headers.md +0 -133
- package/skills/secure-code-guardian/references/xss-csrf.md +0 -157
- package/skills/security-reviewer/SKILL.md +0 -103
- package/skills/security-reviewer/references/infrastructure-security.md +0 -268
- package/skills/security-reviewer/references/penetration-testing.md +0 -268
- package/skills/security-reviewer/references/report-template.md +0 -170
- package/skills/security-reviewer/references/sast-tools.md +0 -117
- package/skills/security-reviewer/references/secret-scanning.md +0 -125
- package/skills/security-reviewer/references/vulnerability-patterns.md +0 -152
- package/skills/spark-engineer/SKILL.md +0 -148
- package/skills/spark-engineer/references/partitioning-caching.md +0 -543
- package/skills/spark-engineer/references/performance-tuning.md +0 -544
- package/skills/spark-engineer/references/rdd-operations.md +0 -599
- package/skills/spark-engineer/references/spark-sql-dataframes.md +0 -474
- package/skills/spark-engineer/references/streaming-patterns.md +0 -786
- package/skills/spring-boot-engineer/SKILL.md +0 -195
- package/skills/spring-boot-engineer/references/cloud.md +0 -498
- package/skills/spring-boot-engineer/references/data.md +0 -381
- package/skills/spring-boot-engineer/references/security.md +0 -459
- package/skills/spring-boot-engineer/references/testing.md +0 -545
- package/skills/spring-boot-engineer/references/web.md +0 -295
- package/skills/sql-pro/SKILL.md +0 -129
- package/skills/sql-pro/references/database-design.md +0 -402
- package/skills/sql-pro/references/dialect-differences.md +0 -419
- package/skills/sql-pro/references/optimization.md +0 -384
- package/skills/sql-pro/references/query-patterns.md +0 -285
- package/skills/sql-pro/references/window-functions.md +0 -328
- package/skills/sre-engineer/SKILL.md +0 -181
- package/skills/sre-engineer/references/automation-toil.md +0 -492
- package/skills/sre-engineer/references/error-budget-policy.md +0 -334
- package/skills/sre-engineer/references/incident-chaos.md +0 -576
- package/skills/sre-engineer/references/monitoring-alerting.md +0 -424
- package/skills/sre-engineer/references/slo-sli-management.md +0 -238
- package/skills/swift-expert/SKILL.md +0 -163
- package/skills/swift-expert/references/async-concurrency.md +0 -360
- package/skills/swift-expert/references/memory-performance.md +0 -377
- package/skills/swift-expert/references/protocol-oriented.md +0 -354
- package/skills/swift-expert/references/swiftui-patterns.md +0 -291
- package/skills/swift-expert/references/testing-patterns.md +0 -399
- package/skills/systematic-debugging/CREATION-LOG.md +0 -119
- package/skills/systematic-debugging/SKILL.md +0 -296
- package/skills/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/skills/systematic-debugging/condition-based-waiting.md +0 -115
- package/skills/systematic-debugging/defense-in-depth.md +0 -122
- package/skills/systematic-debugging/find-polluter.sh +0 -63
- package/skills/systematic-debugging/root-cause-tracing.md +0 -169
- package/skills/systematic-debugging/test-academic.md +0 -14
- package/skills/systematic-debugging/test-pressure-1.md +0 -58
- package/skills/systematic-debugging/test-pressure-2.md +0 -68
- package/skills/systematic-debugging/test-pressure-3.md +0 -69
- package/skills/tdd-guide/assets/sample_coverage_report.lcov +0 -56
- package/skills/terraform-engineer/SKILL.md +0 -143
- package/skills/terraform-engineer/references/best-practices.md +0 -583
- package/skills/terraform-engineer/references/module-patterns.md +0 -297
- package/skills/terraform-engineer/references/providers.md +0 -452
- package/skills/terraform-engineer/references/state-management.md +0 -371
- package/skills/terraform-engineer/references/testing.md +0 -486
- package/skills/test-master/SKILL.md +0 -94
- package/skills/test-master/references/automation-frameworks.md +0 -294
- package/skills/test-master/references/e2e-testing.md +0 -128
- package/skills/test-master/references/integration-testing.md +0 -120
- package/skills/test-master/references/performance-testing.md +0 -118
- package/skills/test-master/references/qa-methodology.md +0 -247
- package/skills/test-master/references/security-testing.md +0 -127
- package/skills/test-master/references/tdd-iron-laws.md +0 -174
- package/skills/test-master/references/test-reports.md +0 -104
- package/skills/test-master/references/testing-anti-patterns.md +0 -231
- package/skills/test-master/references/unit-testing.md +0 -113
- package/skills/typescript-pro/SKILL.md +0 -145
- package/skills/typescript-pro/references/advanced-types.md +0 -259
- package/skills/typescript-pro/references/configuration.md +0 -445
- package/skills/typescript-pro/references/patterns.md +0 -484
- package/skills/typescript-pro/references/type-guards.md +0 -352
- package/skills/typescript-pro/references/utility-types.md +0 -329
- package/skills/using-git-worktrees/SKILL.md +0 -218
- package/skills/verification-before-completion/SKILL.md +0 -139
- package/skills/vue-expert/SKILL.md +0 -98
- package/skills/vue-expert/references/build-tooling.md +0 -480
- package/skills/vue-expert/references/components.md +0 -448
- package/skills/vue-expert/references/composition-api.md +0 -299
- package/skills/vue-expert/references/mobile-hybrid.md +0 -636
- package/skills/vue-expert/references/nuxt.md +0 -669
- package/skills/vue-expert/references/state-management.md +0 -449
- package/skills/vue-expert/references/typescript.md +0 -584
- package/skills/vue-expert-js/SKILL.md +0 -167
- package/skills/vue-expert-js/references/component-architecture.md +0 -219
- package/skills/vue-expert-js/references/composables-patterns.md +0 -183
- package/skills/vue-expert-js/references/jsdoc-typing.md +0 -535
- package/skills/vue-expert-js/references/state-management.md +0 -249
- package/skills/vue-expert-js/references/testing-patterns.md +0 -237
- package/skills/websocket-engineer/SKILL.md +0 -168
- package/skills/websocket-engineer/references/alternatives.md +0 -391
- package/skills/websocket-engineer/references/patterns.md +0 -400
- package/skills/websocket-engineer/references/protocol.md +0 -195
- package/skills/websocket-engineer/references/scaling.md +0 -333
- package/skills/websocket-engineer/references/security.md +0 -474
- package/skills/writing-plans/SKILL.md +0 -151
- package/skills/writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/skills/writing-skills/SKILL.md +0 -655
- package/skills/writing-skills/anthropic-best-practices.md +0 -1150
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/skills/writing-skills/persuasion-principles.md +0 -187
- package/skills/writing-skills/render-graphs.js +0 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +0 -384
- /package/skills/{design-commands → frontend/design-commands}/design.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/handoff.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/prototype.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/spec.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/style.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/SKILL.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/references/frontend_best_practices.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/references/nextjs_optimization_guide.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/references/react_patterns.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/scripts/bundle_analyzer.py +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/scripts/component_generator.py +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/scripts/frontend_scaffolder.py +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/SKILL.md +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/charts.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/colors.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/icons.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/landing.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/products.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/react-performance.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/astro.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/flutter.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/html-tailwind.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/jetpack-compose.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/nextjs.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/nuxt-ui.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/nuxtjs.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/react-native.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/react.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/shadcn.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/svelte.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/swiftui.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/vue.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/styles.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/typography.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/ui-reasoning.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/ux-guidelines.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/web-interface.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/scripts/core.py +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/scripts/design_system.py +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/scripts/search.py +0 -0
- /package/skills/{competitive-analysis → product/competitive-analysis}/SKILL.md +0 -0
- /package/skills/{meeting-notes → product/meeting-notes}/SKILL.md +0 -0
- /package/skills/{prd-template → product/prd-template}/SKILL.md +0 -0
- /package/skills/{stakeholder-update → product/stakeholder-update}/SKILL.md +0 -0
- /package/skills/{user-research-synthesis → product/user-research-synthesis}/SKILL.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/README.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/SKILL.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/references/qa_best_practices.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/references/test_automation_patterns.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/references/testing_strategies.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/scripts/coverage_analyzer.py +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/scripts/e2e_test_scaffolder.py +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/scripts/test_suite_generator.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/HOW_TO_USE.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/README.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/SKILL.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/assets/expected_output.json +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/assets/sample_input_python.json +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/assets/sample_input_typescript.json +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/references/ci-integration.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/references/framework-guide.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/references/tdd-best-practices.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/coverage_analyzer.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/fixture_generator.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/format_detector.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/framework_adapter.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/metrics_calculator.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/output_formatter.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/tdd_workflow.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/test_generator.py +0 -0
- /package/skills/{brainstorming → workflow/brainstorming}/scripts/frame-template.html +0 -0
- /package/skills/{brainstorming → workflow/brainstorming}/scripts/server.cjs +0 -0
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
# Minimal APIs
|
|
2
|
-
|
|
3
|
-
## Basic Endpoint Patterns
|
|
4
|
-
|
|
5
|
-
```csharp
|
|
6
|
-
using Microsoft.AspNetCore.Mvc;
|
|
7
|
-
|
|
8
|
-
var builder = WebApplication.CreateBuilder(args);
|
|
9
|
-
|
|
10
|
-
// Add services
|
|
11
|
-
builder.Services.AddEndpointsApiExplorer();
|
|
12
|
-
builder.Services.AddSwaggerGen();
|
|
13
|
-
|
|
14
|
-
var app = builder.Build();
|
|
15
|
-
|
|
16
|
-
// Configure middleware
|
|
17
|
-
if (app.Environment.IsDevelopment())
|
|
18
|
-
{
|
|
19
|
-
app.UseSwagger();
|
|
20
|
-
app.UseSwaggerUI();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
app.UseHttpsRedirection();
|
|
24
|
-
|
|
25
|
-
// Simple GET endpoint
|
|
26
|
-
app.MapGet("/api/products", async (IProductService service) =>
|
|
27
|
-
{
|
|
28
|
-
var products = await service.GetAllAsync();
|
|
29
|
-
return Results.Ok(products);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
// GET with route parameter
|
|
33
|
-
app.MapGet("/api/products/{id:int}", async (int id, IProductService service) =>
|
|
34
|
-
{
|
|
35
|
-
var product = await service.GetByIdAsync(id);
|
|
36
|
-
return product is not null
|
|
37
|
-
? Results.Ok(product)
|
|
38
|
-
: Results.NotFound();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
// POST with validation
|
|
42
|
-
app.MapPost("/api/products", async (
|
|
43
|
-
[FromBody] CreateProductRequest request,
|
|
44
|
-
IProductService service) =>
|
|
45
|
-
{
|
|
46
|
-
var product = await service.CreateAsync(request);
|
|
47
|
-
return Results.Created($"/api/products/{product.Id}", product);
|
|
48
|
-
})
|
|
49
|
-
.WithName("CreateProduct")
|
|
50
|
-
.Produces<ProductResponse>(StatusCodes.Status201Created)
|
|
51
|
-
.ProducesValidationProblem();
|
|
52
|
-
|
|
53
|
-
// PUT endpoint
|
|
54
|
-
app.MapPut("/api/products/{id:int}", async (
|
|
55
|
-
int id,
|
|
56
|
-
[FromBody] UpdateProductRequest request,
|
|
57
|
-
IProductService service) =>
|
|
58
|
-
{
|
|
59
|
-
var success = await service.UpdateAsync(id, request);
|
|
60
|
-
return success ? Results.NoContent() : Results.NotFound();
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
// DELETE endpoint
|
|
64
|
-
app.MapDelete("/api/products/{id:int}", async (int id, IProductService service) =>
|
|
65
|
-
{
|
|
66
|
-
await service.DeleteAsync(id);
|
|
67
|
-
return Results.NoContent();
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
app.Run();
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Route Groups
|
|
74
|
-
|
|
75
|
-
```csharp
|
|
76
|
-
var app = builder.Build();
|
|
77
|
-
|
|
78
|
-
var api = app.MapGroup("/api")
|
|
79
|
-
.WithOpenApi()
|
|
80
|
-
.RequireAuthorization();
|
|
81
|
-
|
|
82
|
-
var products = api.MapGroup("/products")
|
|
83
|
-
.WithTags("Products");
|
|
84
|
-
|
|
85
|
-
products.MapGet("/", GetAllProducts);
|
|
86
|
-
products.MapGet("/{id:int}", GetProductById);
|
|
87
|
-
products.MapPost("/", CreateProduct);
|
|
88
|
-
products.MapPut("/{id:int}", UpdateProduct);
|
|
89
|
-
products.MapDelete("/{id:int}", DeleteProduct);
|
|
90
|
-
|
|
91
|
-
static async Task<IResult> GetAllProducts(IProductService service)
|
|
92
|
-
{
|
|
93
|
-
var products = await service.GetAllAsync();
|
|
94
|
-
return Results.Ok(products);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
static async Task<IResult> GetProductById(int id, IProductService service)
|
|
98
|
-
{
|
|
99
|
-
var product = await service.GetByIdAsync(id);
|
|
100
|
-
return product is not null ? Results.Ok(product) : Results.NotFound();
|
|
101
|
-
}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Filters and Validation
|
|
105
|
-
|
|
106
|
-
```csharp
|
|
107
|
-
using FluentValidation;
|
|
108
|
-
|
|
109
|
-
// Request DTO with validation
|
|
110
|
-
public record CreateProductRequest(
|
|
111
|
-
string Name,
|
|
112
|
-
string Description,
|
|
113
|
-
decimal Price,
|
|
114
|
-
int CategoryId
|
|
115
|
-
);
|
|
116
|
-
|
|
117
|
-
public class CreateProductValidator : AbstractValidator<CreateProductRequest>
|
|
118
|
-
{
|
|
119
|
-
public CreateProductValidator()
|
|
120
|
-
{
|
|
121
|
-
RuleFor(x => x.Name)
|
|
122
|
-
.NotEmpty()
|
|
123
|
-
.MaximumLength(100);
|
|
124
|
-
|
|
125
|
-
RuleFor(x => x.Price)
|
|
126
|
-
.GreaterThan(0)
|
|
127
|
-
.LessThan(1000000);
|
|
128
|
-
|
|
129
|
-
RuleFor(x => x.CategoryId)
|
|
130
|
-
.GreaterThan(0);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// Endpoint filter for validation
|
|
135
|
-
public class ValidationFilter<T> : IEndpointFilter where T : class
|
|
136
|
-
{
|
|
137
|
-
private readonly IValidator<T> _validator;
|
|
138
|
-
|
|
139
|
-
public ValidationFilter(IValidator<T> validator)
|
|
140
|
-
{
|
|
141
|
-
_validator = validator;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
public async ValueTask<object?> InvokeAsync(
|
|
145
|
-
EndpointFilterInvocationContext context,
|
|
146
|
-
EndpointFilterDelegate next)
|
|
147
|
-
{
|
|
148
|
-
var request = context.Arguments.OfType<T>().FirstOrDefault();
|
|
149
|
-
if (request is null)
|
|
150
|
-
{
|
|
151
|
-
return Results.BadRequest("Invalid request");
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
var validationResult = await _validator.ValidateAsync(request);
|
|
155
|
-
if (!validationResult.IsValid)
|
|
156
|
-
{
|
|
157
|
-
return Results.ValidationProblem(
|
|
158
|
-
validationResult.ToDictionary());
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return await next(context);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Register and use
|
|
166
|
-
builder.Services.AddValidatorsFromAssemblyContaining<Program>();
|
|
167
|
-
|
|
168
|
-
app.MapPost("/api/products", CreateProduct)
|
|
169
|
-
.AddEndpointFilter<ValidationFilter<CreateProductRequest>>();
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Dependency Injection
|
|
173
|
-
|
|
174
|
-
```csharp
|
|
175
|
-
// Service registration
|
|
176
|
-
builder.Services.AddScoped<IProductService, ProductService>();
|
|
177
|
-
builder.Services.AddScoped<IProductRepository, ProductRepository>();
|
|
178
|
-
|
|
179
|
-
// Multiple parameter binding
|
|
180
|
-
app.MapPost("/api/orders", async (
|
|
181
|
-
CreateOrderRequest request,
|
|
182
|
-
IOrderService orderService,
|
|
183
|
-
IEmailService emailService,
|
|
184
|
-
ILogger<Program> logger,
|
|
185
|
-
CancellationToken ct) =>
|
|
186
|
-
{
|
|
187
|
-
logger.LogInformation("Creating order for {CustomerId}", request.CustomerId);
|
|
188
|
-
|
|
189
|
-
var order = await orderService.CreateAsync(request, ct);
|
|
190
|
-
await emailService.SendOrderConfirmationAsync(order.Id, ct);
|
|
191
|
-
|
|
192
|
-
return Results.Created($"/api/orders/{order.Id}", order);
|
|
193
|
-
});
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Response Patterns
|
|
197
|
-
|
|
198
|
-
```csharp
|
|
199
|
-
// Typed responses
|
|
200
|
-
public record ProductResponse(
|
|
201
|
-
int Id,
|
|
202
|
-
string Name,
|
|
203
|
-
string Description,
|
|
204
|
-
decimal Price,
|
|
205
|
-
string CategoryName
|
|
206
|
-
);
|
|
207
|
-
|
|
208
|
-
// Results.Ok with typed response
|
|
209
|
-
app.MapGet("/api/products/{id:int}", async (int id, IProductService service) =>
|
|
210
|
-
{
|
|
211
|
-
var product = await service.GetByIdAsync(id);
|
|
212
|
-
return product is not null
|
|
213
|
-
? Results.Ok(product)
|
|
214
|
-
: Results.NotFound(new { Message = "Product not found" });
|
|
215
|
-
})
|
|
216
|
-
.Produces<ProductResponse>(StatusCodes.Status200OK)
|
|
217
|
-
.Produces(StatusCodes.Status404NotFound);
|
|
218
|
-
|
|
219
|
-
// Custom result type
|
|
220
|
-
public class PagedResult<T>
|
|
221
|
-
{
|
|
222
|
-
public required List<T> Items { get; init; }
|
|
223
|
-
public required int TotalCount { get; init; }
|
|
224
|
-
public required int Page { get; init; }
|
|
225
|
-
public required int PageSize { get; init; }
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
app.MapGet("/api/products", async (
|
|
229
|
-
[AsParameters] PaginationParams pagination,
|
|
230
|
-
IProductService service) =>
|
|
231
|
-
{
|
|
232
|
-
var result = await service.GetPagedAsync(
|
|
233
|
-
pagination.Page,
|
|
234
|
-
pagination.PageSize);
|
|
235
|
-
return Results.Ok(result);
|
|
236
|
-
})
|
|
237
|
-
.Produces<PagedResult<ProductResponse>>();
|
|
238
|
-
|
|
239
|
-
public record PaginationParams(int Page = 1, int PageSize = 10);
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Error Handling
|
|
243
|
-
|
|
244
|
-
```csharp
|
|
245
|
-
// Global exception handler
|
|
246
|
-
app.UseExceptionHandler(exceptionHandlerApp =>
|
|
247
|
-
{
|
|
248
|
-
exceptionHandlerApp.Run(async context =>
|
|
249
|
-
{
|
|
250
|
-
var exceptionHandlerFeature =
|
|
251
|
-
context.Features.Get<IExceptionHandlerFeature>();
|
|
252
|
-
var exception = exceptionHandlerFeature?.Error;
|
|
253
|
-
|
|
254
|
-
var problemDetails = new ProblemDetails
|
|
255
|
-
{
|
|
256
|
-
Status = StatusCodes.Status500InternalServerError,
|
|
257
|
-
Title = "An error occurred",
|
|
258
|
-
Detail = exception?.Message
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
context.Response.StatusCode = StatusCodes.Status500InternalServerError;
|
|
262
|
-
await context.Response.WriteAsJsonAsync(problemDetails);
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
// Custom endpoint filter for error handling
|
|
267
|
-
public class ErrorHandlingFilter : IEndpointFilter
|
|
268
|
-
{
|
|
269
|
-
private readonly ILogger<ErrorHandlingFilter> _logger;
|
|
270
|
-
|
|
271
|
-
public ErrorHandlingFilter(ILogger<ErrorHandlingFilter> logger)
|
|
272
|
-
{
|
|
273
|
-
_logger = logger;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
public async ValueTask<object?> InvokeAsync(
|
|
277
|
-
EndpointFilterInvocationContext context,
|
|
278
|
-
EndpointFilterDelegate next)
|
|
279
|
-
{
|
|
280
|
-
try
|
|
281
|
-
{
|
|
282
|
-
return await next(context);
|
|
283
|
-
}
|
|
284
|
-
catch (ValidationException ex)
|
|
285
|
-
{
|
|
286
|
-
_logger.LogWarning(ex, "Validation failed");
|
|
287
|
-
return Results.ValidationProblem(ex.Errors.ToDictionary(
|
|
288
|
-
e => e.PropertyName,
|
|
289
|
-
e => new[] { e.ErrorMessage }
|
|
290
|
-
));
|
|
291
|
-
}
|
|
292
|
-
catch (NotFoundException ex)
|
|
293
|
-
{
|
|
294
|
-
_logger.LogWarning(ex, "Resource not found");
|
|
295
|
-
return Results.NotFound(new { Message = ex.Message });
|
|
296
|
-
}
|
|
297
|
-
catch (Exception ex)
|
|
298
|
-
{
|
|
299
|
-
_logger.LogError(ex, "Unhandled exception");
|
|
300
|
-
return Results.Problem("An unexpected error occurred");
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
## Quick Reference
|
|
307
|
-
|
|
308
|
-
| Pattern | Usage |
|
|
309
|
-
|---------|-------|
|
|
310
|
-
| `Results.Ok(data)` | 200 with response body |
|
|
311
|
-
| `Results.Created(uri, data)` | 201 with location header |
|
|
312
|
-
| `Results.NoContent()` | 204 no response body |
|
|
313
|
-
| `Results.BadRequest()` | 400 validation error |
|
|
314
|
-
| `Results.NotFound()` | 404 resource not found |
|
|
315
|
-
| `Results.Unauthorized()` | 401 authentication required |
|
|
316
|
-
| `Results.Forbid()` | 403 authorization failed |
|
|
317
|
-
| `app.MapGroup()` | Group related endpoints |
|
|
318
|
-
| `.WithTags()` | OpenAPI tag grouping |
|
|
319
|
-
| `.Produces<T>()` | Document response type |
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: entropy-management
|
|
3
|
-
description: 定期维护代码库健康度。扫描架构漂移、过期文档、低质量代码,防止技术债积累。应在完成若干任务后或怀疑代码库退化时触发。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 熵管理(Garbage Collection)
|
|
7
|
-
|
|
8
|
-
## 概述
|
|
9
|
-
|
|
10
|
-
AI Agent 会复制仓库中已有的模式——包括不好的模式。随着时间推移,这不可避免地导致漂移。
|
|
11
|
-
手动清理不可持续。熵管理将清理系统化,定期执行,像垃圾回收一样防止技术债积累。
|
|
12
|
-
|
|
13
|
-
**核心原则**:技术债是高利贷——持续小额偿还远优于积累后大规模清理。
|
|
14
|
-
|
|
15
|
-
## 铁律
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
发现的问题不能只修一次——必须同时编码为约束,防止再次发生。
|
|
19
|
-
每次熵管理运行结束后,必须更新质量评分和技术债追踪。
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 触发条件
|
|
23
|
-
|
|
24
|
-
- 完成 5 个以上任务后(定期维护)
|
|
25
|
-
- `code-reviewer` 审查中反复出现同类问题(模式漂移信号)
|
|
26
|
-
- 用户主动要求代码库健康检查
|
|
27
|
-
- 怀疑文档与代码不一致
|
|
28
|
-
- 新成员加入前(确保仓库状态良好)
|
|
29
|
-
|
|
30
|
-
## 执行流程
|
|
31
|
-
|
|
32
|
-
### 第一阶段:自动化传感器扫描
|
|
33
|
-
|
|
34
|
-
运行 Harness 传感器套件收集机器可检测的问题:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
node scripts/hooks/dispatcher.cjs stop
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
记录所有 `[FAIL]` 和 `[WARN]` 项。
|
|
41
|
-
|
|
42
|
-
### 第二阶段:推理型扫描
|
|
43
|
-
|
|
44
|
-
自动化传感器无法覆盖的维度,需要人工/Agent 推理检查:
|
|
45
|
-
|
|
46
|
-
#### 2.1 文档-代码一致性
|
|
47
|
-
|
|
48
|
-
| 检查项 | 方法 |
|
|
49
|
-
|--------|------|
|
|
50
|
-
| CLAUDE.md 引用路径是否有效 | 逐条验证文件/目录存在 |
|
|
51
|
-
| docs/ 文档描述是否匹配实际行为 | 抽样对比 |
|
|
52
|
-
| SKILL.md 中的流程是否被实际遵循 | 回顾近期任务记录 |
|
|
53
|
-
| 模板是否与当前实践一致 | 对比模板与近期产出 |
|
|
54
|
-
|
|
55
|
-
#### 2.2 架构漂移检测
|
|
56
|
-
|
|
57
|
-
| 检查项 | 方法 |
|
|
58
|
-
|--------|------|
|
|
59
|
-
| 是否有文件放在错误目录 | 检查目录约定是否被遵守 |
|
|
60
|
-
| 是否有重复/冗余文件 | 搜索相似文件名和内容 |
|
|
61
|
-
| 技能包结构是否一致 | 抽样检查 SKILL.md 格式 |
|
|
62
|
-
| 协作产物是否在正确位置 | 检查 .orchestration/<session>/ 结构 |
|
|
63
|
-
|
|
64
|
-
#### 2.3 质量回归检测
|
|
65
|
-
|
|
66
|
-
| 检查项 | 方法 |
|
|
67
|
-
|--------|------|
|
|
68
|
-
| 近期审查中的高频问题 | 分析 .orchestration/<session>/code-reviewer/ |
|
|
69
|
-
| 是否有被跳过的工作流阶段 | 检查产物完整性 |
|
|
70
|
-
| 是否有"沉默的传感器"(从不报错) | 评估传感器有效性 |
|
|
71
|
-
|
|
72
|
-
### 第三阶段:修复与编码
|
|
73
|
-
|
|
74
|
-
对发现的问题分类处理:
|
|
75
|
-
|
|
76
|
-
| 问题类型 | 处理方式 |
|
|
77
|
-
|---------|---------|
|
|
78
|
-
| 可快速修复的具体问题 | 立即修复(文档更新、文件移动等) |
|
|
79
|
-
| 需要编码为约束的重复模式 | 在 `scripts/hooks/checks/` 加 check,让违规自动触发 [FAIL] |
|
|
80
|
-
| 需要架构讨论的系统性问题 | 与用户讨论;动手前先达成共识 |
|
|
81
|
-
|
|
82
|
-
### 第四阶段:沉淀与追踪
|
|
83
|
-
|
|
84
|
-
把本次发现和处理沉淀到下列位置(按相关性挑,不必每次都全做):
|
|
85
|
-
|
|
86
|
-
- 反复出现的违规模式 → 在 `scripts/hooks/checks/` 加自动化 check
|
|
87
|
-
- 团队级架构决策 / 新约束 → 写进 `docs/PROJECT_CONTEXT.md` 或 `docs/ARCHITECTURE.md`
|
|
88
|
-
- 跨会话需要记得的代码模式 → 写进 `docs/rules/<topic>.md` 或 `docs/red-flags.md`
|
|
89
|
-
- 用户当前活跃状态 / 个人偏好 → 让 Claude 写进原生 memory(`~/.claude/projects/<slug>/memory/`,自动加载)
|
|
90
|
-
- 新增的危险信号 → 加入 `docs/red-flags.md`
|
|
91
|
-
- 新增的强制规则 → 加入 `docs/rules/<topic>.md`
|
|
92
|
-
|
|
93
|
-
## 产出清单
|
|
94
|
-
|
|
95
|
-
每次熵管理运行后,应产出:
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
✅ dispatcher 扫描结果(node scripts/hooks/dispatcher.cjs stop)
|
|
99
|
-
✅ 推理型扫描发现清单
|
|
100
|
-
✅ 修复的问题列表
|
|
101
|
-
✅ 新增的约束 / check / 规则文档(如有)
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Red Flags — 停下来
|
|
105
|
-
|
|
106
|
-
| 信号 | 行动 |
|
|
107
|
-
|------|------|
|
|
108
|
-
| 传感器全部通过但直觉上代码库有问题 | 传感器覆盖不足,加新 check |
|
|
109
|
-
| 修复一个漂移又发现三个 | 可能是架构问题,先与用户讨论再动 |
|
|
110
|
-
| 反复出现同类问题但没有沉淀为约束 | 必须在 `scripts/hooks/checks/` 加自动检测 |
|
|
111
|
-
|
|
112
|
-
## 关联技能
|
|
113
|
-
|
|
114
|
-
- **verification-before-completion** — 修复后验证
|
|
115
|
-
- **systematic-debugging** — 深入调查发现的问题
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: executing-plans
|
|
3
|
-
description: Use when you have a written implementation plan to execute in a separate session with review checkpoints
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Executing Plans
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
Load plan, review critically, execute all tasks, report when complete.
|
|
11
|
-
|
|
12
|
-
**Announce at start:** "I'm using the executing-plans skill to implement this plan."
|
|
13
|
-
|
|
14
|
-
**Note:** When subagents are available (Claude Code / Codex), prefer dispatching per `docs/rules/agents.md` over inline execution — fresh context per task and two-stage review yield higher-quality output. Use this skill when subagent dispatch is unavailable or batched checkpoint execution is preferred.
|
|
15
|
-
|
|
16
|
-
## The Process
|
|
17
|
-
|
|
18
|
-
### Step 1: Load and Review Plan
|
|
19
|
-
1. Read plan file
|
|
20
|
-
2. Review critically - identify any questions or concerns about the plan
|
|
21
|
-
3. If concerns: Raise them with your human partner before starting
|
|
22
|
-
4. If no concerns: Create TodoWrite and proceed
|
|
23
|
-
|
|
24
|
-
### Step 2: Execute Tasks
|
|
25
|
-
|
|
26
|
-
For each task:
|
|
27
|
-
1. Mark as in_progress
|
|
28
|
-
2. Follow each step exactly (plan has bite-sized steps)
|
|
29
|
-
3. Run verifications as specified
|
|
30
|
-
4. Mark as completed
|
|
31
|
-
|
|
32
|
-
### Step 3: Complete Development
|
|
33
|
-
|
|
34
|
-
After all tasks complete and verified:
|
|
35
|
-
- Announce: "I'm using the finishing-a-development-branch skill to complete this work."
|
|
36
|
-
- **REQUIRED SUB-SKILL:** Use superpowers:finishing-a-development-branch
|
|
37
|
-
- Follow that skill to verify tests, present options, execute choice
|
|
38
|
-
|
|
39
|
-
## When to Stop and Ask for Help
|
|
40
|
-
|
|
41
|
-
**STOP executing immediately when:**
|
|
42
|
-
- Hit a blocker (missing dependency, test fails, instruction unclear)
|
|
43
|
-
- Plan has critical gaps preventing starting
|
|
44
|
-
- You don't understand an instruction
|
|
45
|
-
- Verification fails repeatedly
|
|
46
|
-
|
|
47
|
-
**Ask for clarification rather than guessing.**
|
|
48
|
-
|
|
49
|
-
## When to Revisit Earlier Steps
|
|
50
|
-
|
|
51
|
-
**Return to Review (Step 1) when:**
|
|
52
|
-
- Partner updates the plan based on your feedback
|
|
53
|
-
- Fundamental approach needs rethinking
|
|
54
|
-
|
|
55
|
-
**Don't force through blockers** - stop and ask.
|
|
56
|
-
|
|
57
|
-
## Remember
|
|
58
|
-
- Review plan critically first
|
|
59
|
-
- Follow plan steps exactly
|
|
60
|
-
- Don't skip verifications
|
|
61
|
-
- Reference skills when plan says to
|
|
62
|
-
- Stop when blocked, don't guess
|
|
63
|
-
- Never start implementation on main/master branch without explicit user consent
|
|
64
|
-
|
|
65
|
-
## Integration
|
|
66
|
-
|
|
67
|
-
**Required workflow skills:**
|
|
68
|
-
- **superpowers:using-git-worktrees** - REQUIRED: Set up isolated workspace before starting
|
|
69
|
-
- **superpowers:writing-plans** - Creates the plan this skill executes
|
|
70
|
-
- **superpowers:finishing-a-development-branch** - Complete development after all tasks
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: fastapi-expert
|
|
3
|
-
description: "Use when building high-performance async Python APIs with FastAPI and Pydantic V2. Invoke to create REST endpoints, define Pydantic models, implement authentication flows, set up async SQLAlchemy database operations, add JWT authentication, build WebSocket endpoints, or generate OpenAPI documentation. Trigger terms: FastAPI, Pydantic, async Python, Python API, REST API Python, SQLAlchemy async, JWT authentication, OpenAPI, Swagger Python."
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: https://github.com/Jeffallan
|
|
7
|
-
version: "1.1.0"
|
|
8
|
-
domain: backend
|
|
9
|
-
triggers: FastAPI, Pydantic, async Python, Python API, REST API Python, SQLAlchemy async, JWT authentication, OpenAPI, Swagger Python
|
|
10
|
-
role: specialist
|
|
11
|
-
scope: implementation
|
|
12
|
-
output-format: code
|
|
13
|
-
related-skills: fullstack-guardian, django-expert, test-master
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# FastAPI Expert
|
|
17
|
-
|
|
18
|
-
Deep expertise in async Python, Pydantic V2, and production-grade API development with FastAPI.
|
|
19
|
-
|
|
20
|
-
## When to Use This Skill
|
|
21
|
-
|
|
22
|
-
- Building REST APIs with FastAPI
|
|
23
|
-
- Implementing Pydantic V2 validation schemas
|
|
24
|
-
- Setting up async database operations
|
|
25
|
-
- Implementing JWT authentication/authorization
|
|
26
|
-
- Creating WebSocket endpoints
|
|
27
|
-
- Optimizing API performance
|
|
28
|
-
|
|
29
|
-
## Core Workflow
|
|
30
|
-
|
|
31
|
-
1. **Analyze requirements** — Identify endpoints, data models, auth needs
|
|
32
|
-
2. **Design schemas** — Create Pydantic V2 models for validation
|
|
33
|
-
3. **Implement** — Write async endpoints with proper dependency injection
|
|
34
|
-
4. **Secure** — Add authentication, authorization, rate limiting
|
|
35
|
-
5. **Test** — Write async tests with pytest and httpx; run `pytest` after each endpoint group and verify OpenAPI docs at `/docs`
|
|
36
|
-
|
|
37
|
-
> **Checkpoint after each step:** confirm schemas validate correctly, endpoints return expected HTTP status codes, and `/docs` reflects the intended API surface before proceeding.
|
|
38
|
-
|
|
39
|
-
## Minimal Complete Example
|
|
40
|
-
|
|
41
|
-
Schema + endpoint + dependency injection in one cohesive unit:
|
|
42
|
-
|
|
43
|
-
```python
|
|
44
|
-
# schemas.py
|
|
45
|
-
from pydantic import BaseModel, EmailStr, field_validator, model_config
|
|
46
|
-
|
|
47
|
-
class UserCreate(BaseModel):
|
|
48
|
-
model_config = model_config(str_strip_whitespace=True)
|
|
49
|
-
|
|
50
|
-
email: EmailStr
|
|
51
|
-
password: str
|
|
52
|
-
name: str | None = None
|
|
53
|
-
|
|
54
|
-
@field_validator("password")
|
|
55
|
-
@classmethod
|
|
56
|
-
def password_strength(cls, v: str) -> str:
|
|
57
|
-
if len(v) < 8:
|
|
58
|
-
raise ValueError("Password must be at least 8 characters")
|
|
59
|
-
return v
|
|
60
|
-
|
|
61
|
-
class UserResponse(BaseModel):
|
|
62
|
-
model_config = model_config(from_attributes=True)
|
|
63
|
-
|
|
64
|
-
id: int
|
|
65
|
-
email: EmailStr
|
|
66
|
-
name: str | None = None
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
```python
|
|
70
|
-
# routers/users.py
|
|
71
|
-
from fastapi import APIRouter, Depends, HTTPException, status
|
|
72
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
73
|
-
from typing import Annotated
|
|
74
|
-
|
|
75
|
-
from app.database import get_db
|
|
76
|
-
from app.schemas import UserCreate, UserResponse
|
|
77
|
-
from app import crud
|
|
78
|
-
|
|
79
|
-
router = APIRouter(prefix="/users", tags=["users"])
|
|
80
|
-
|
|
81
|
-
DbDep = Annotated[AsyncSession, Depends(get_db)]
|
|
82
|
-
|
|
83
|
-
@router.post("/", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
|
|
84
|
-
async def create_user(payload: UserCreate, db: DbDep) -> UserResponse:
|
|
85
|
-
existing = await crud.get_user_by_email(db, payload.email)
|
|
86
|
-
if existing:
|
|
87
|
-
raise HTTPException(status_code=status.HTTP_409_CONFLICT, detail="Email already registered")
|
|
88
|
-
return await crud.create_user(db, payload)
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
```python
|
|
92
|
-
# crud.py
|
|
93
|
-
from sqlalchemy import select
|
|
94
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
95
|
-
from app.models import User
|
|
96
|
-
from app.schemas import UserCreate
|
|
97
|
-
from app.security import hash_password
|
|
98
|
-
|
|
99
|
-
async def get_user_by_email(db: AsyncSession, email: str) -> User | None:
|
|
100
|
-
result = await db.execute(select(User).where(User.email == email))
|
|
101
|
-
return result.scalar_one_or_none()
|
|
102
|
-
|
|
103
|
-
async def create_user(db: AsyncSession, payload: UserCreate) -> User:
|
|
104
|
-
user = User(email=payload.email, hashed_password=hash_password(payload.password), name=payload.name)
|
|
105
|
-
db.add(user)
|
|
106
|
-
await db.commit()
|
|
107
|
-
await db.refresh(user)
|
|
108
|
-
return user
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## JWT Authentication Snippet
|
|
112
|
-
|
|
113
|
-
```python
|
|
114
|
-
# security.py
|
|
115
|
-
from datetime import datetime, timedelta, timezone
|
|
116
|
-
from jose import JWTError, jwt
|
|
117
|
-
from fastapi import Depends, HTTPException, status
|
|
118
|
-
from fastapi.security import OAuth2PasswordBearer
|
|
119
|
-
from typing import Annotated
|
|
120
|
-
|
|
121
|
-
SECRET_KEY = "read-from-env" # use os.environ / settings
|
|
122
|
-
ALGORITHM = "HS256"
|
|
123
|
-
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/token")
|
|
124
|
-
|
|
125
|
-
def create_access_token(subject: str, expires_delta: timedelta = timedelta(minutes=30)) -> str:
|
|
126
|
-
payload = {"sub": subject, "exp": datetime.now(timezone.utc) + expires_delta}
|
|
127
|
-
return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM)
|
|
128
|
-
|
|
129
|
-
async def get_current_user(token: Annotated[str, Depends(oauth2_scheme)]) -> str:
|
|
130
|
-
try:
|
|
131
|
-
data = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
|
|
132
|
-
subject: str | None = data.get("sub")
|
|
133
|
-
if subject is None:
|
|
134
|
-
raise ValueError
|
|
135
|
-
return subject
|
|
136
|
-
except (JWTError, ValueError):
|
|
137
|
-
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid credentials")
|
|
138
|
-
|
|
139
|
-
CurrentUser = Annotated[str, Depends(get_current_user)]
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Reference Guide
|
|
143
|
-
|
|
144
|
-
Load detailed guidance based on context:
|
|
145
|
-
|
|
146
|
-
| Topic | Reference | Load When |
|
|
147
|
-
|-------|-----------|-----------|
|
|
148
|
-
| Pydantic V2 | `references/pydantic-v2.md` | Creating schemas, validation, model_config |
|
|
149
|
-
| SQLAlchemy | `references/async-sqlalchemy.md` | Async database, models, CRUD operations |
|
|
150
|
-
| Endpoints | `references/endpoints-routing.md` | APIRouter, dependencies, routing |
|
|
151
|
-
| Authentication | `references/authentication.md` | JWT, OAuth2, get_current_user |
|
|
152
|
-
| Testing | `references/testing-async.md` | pytest-asyncio, httpx, fixtures |
|
|
153
|
-
| Django Migration | `references/migration-from-django.md` | Migrating from Django/DRF to FastAPI |
|
|
154
|
-
|
|
155
|
-
## Constraints
|
|
156
|
-
|
|
157
|
-
### MUST DO
|
|
158
|
-
- Use type hints everywhere (FastAPI requires them)
|
|
159
|
-
- Use Pydantic V2 syntax (`field_validator`, `model_validator`, `model_config`)
|
|
160
|
-
- Use `Annotated` pattern for dependency injection
|
|
161
|
-
- Use async/await for all I/O operations
|
|
162
|
-
- Use `X | None` instead of `Optional[X]`
|
|
163
|
-
- Return proper HTTP status codes
|
|
164
|
-
- Document endpoints (auto-generated OpenAPI)
|
|
165
|
-
|
|
166
|
-
### MUST NOT DO
|
|
167
|
-
- Use synchronous database operations
|
|
168
|
-
- Skip Pydantic validation
|
|
169
|
-
- Store passwords in plain text
|
|
170
|
-
- Expose sensitive data in responses
|
|
171
|
-
- Use Pydantic V1 syntax (`@validator`, `class Config`)
|
|
172
|
-
- Mix sync and async code improperly
|
|
173
|
-
- Hardcode configuration values
|
|
174
|
-
|
|
175
|
-
## Output Templates
|
|
176
|
-
|
|
177
|
-
When implementing FastAPI features, provide:
|
|
178
|
-
1. Schema file (Pydantic models)
|
|
179
|
-
2. Endpoint file (router with endpoints)
|
|
180
|
-
3. CRUD operations if database involved
|
|
181
|
-
4. Brief explanation of key decisions
|
|
182
|
-
|
|
183
|
-
## Knowledge Reference
|
|
184
|
-
|
|
185
|
-
FastAPI, Pydantic V2, async SQLAlchemy, Alembic migrations, JWT/OAuth2, pytest-asyncio, httpx, BackgroundTasks, WebSockets, dependency injection, OpenAPI/Swagger
|