aigroup-workflow 2.1.2 → 2.2.1
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 +8 -6
- package/manifests/install-modules.json +223 -133
- package/package.json +39 -39
- package/scripts/hooks/checks/orchestration-artifacts.cjs +28 -23
- package/scripts/hooks/checks/workflow-state.cjs +4 -5
- package/scripts/orchestration/lib/orchestrator.cjs +353 -92
- package/scripts/orchestration/lib/validate.cjs +145 -0
- package/scripts/orchestration/session.cjs +100 -33
- 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
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
# Systematic Debugging
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
> **NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST.**
|
|
8
|
+
|
|
9
|
+
Jumping to fixes without understanding causes creates more bugs. Systematic debugging prevents the "fix one thing, break two more" cycle.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## The Four Mandatory Phases
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
17
|
+
│ SYSTEMATIC DEBUGGING │
|
|
18
|
+
├─────────────────────────────────────────────────────────────┤
|
|
19
|
+
│ Phase 1: ROOT CAUSE INVESTIGATION │
|
|
20
|
+
│ ├── Read error messages thoroughly │
|
|
21
|
+
│ ├── Reproduce reliably with documented steps │
|
|
22
|
+
│ ├── Examine recent changes │
|
|
23
|
+
│ └── Trace data flow backward │
|
|
24
|
+
├─────────────────────────────────────────────────────────────┤
|
|
25
|
+
│ Phase 2: PATTERN ANALYSIS │
|
|
26
|
+
│ ├── Find similar working implementations │
|
|
27
|
+
│ ├── Study reference implementations completely │
|
|
28
|
+
│ └── Document all differences │
|
|
29
|
+
├─────────────────────────────────────────────────────────────┤
|
|
30
|
+
│ Phase 3: HYPOTHESIS TESTING │
|
|
31
|
+
│ ├── Form specific, written hypothesis │
|
|
32
|
+
│ ├── Test with minimal, isolated changes │
|
|
33
|
+
│ └── One variable at a time │
|
|
34
|
+
├─────────────────────────────────────────────────────────────┤
|
|
35
|
+
│ Phase 4: IMPLEMENTATION │
|
|
36
|
+
│ ├── Create failing test case │
|
|
37
|
+
│ ├── Implement single fix addressing root cause │
|
|
38
|
+
│ └── Verify no new breakage │
|
|
39
|
+
└─────────────────────────────────────────────────────────────┘
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Phase 1: Root Cause Investigation
|
|
45
|
+
|
|
46
|
+
**Objective:** Understand exactly what is failing and why before attempting any fix.
|
|
47
|
+
|
|
48
|
+
### Step 1.1: Read Error Messages Thoroughly
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Don't just read the first line
|
|
52
|
+
TypeError: Cannot read property 'map' of undefined
|
|
53
|
+
at UserList.render (UserList.tsx:24)
|
|
54
|
+
at renderWithHooks (react-dom.js:14985)
|
|
55
|
+
at mountIndeterminateComponent (react-dom.js:17811)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Key questions:**
|
|
59
|
+
- What exact operation failed?
|
|
60
|
+
- Where in the code (file, line)?
|
|
61
|
+
- What was the call stack?
|
|
62
|
+
- Are there multiple errors or just one?
|
|
63
|
+
|
|
64
|
+
### Step 1.2: Reproduce Reliably
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
## Reproduction Steps
|
|
68
|
+
1. Navigate to /users
|
|
69
|
+
2. Click "Load More" button
|
|
70
|
+
3. Wait for loading spinner
|
|
71
|
+
4. **ERROR: "Cannot read property 'map' of undefined"**
|
|
72
|
+
|
|
73
|
+
## Environment
|
|
74
|
+
- Browser: Chrome 120
|
|
75
|
+
- User: Admin role
|
|
76
|
+
- Data state: 50+ users in database
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Requirement:** Document exact steps that reproduce the bug 100% of the time.
|
|
80
|
+
|
|
81
|
+
### Step 1.3: Examine Recent Changes
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# What changed recently?
|
|
85
|
+
git log --oneline -10
|
|
86
|
+
|
|
87
|
+
# What specifically changed in the failing file?
|
|
88
|
+
git log -p UserList.tsx
|
|
89
|
+
|
|
90
|
+
# When did this start failing?
|
|
91
|
+
git bisect start
|
|
92
|
+
git bisect bad HEAD
|
|
93
|
+
git bisect good v1.2.0
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Step 1.4: Trace Data Flow Backward
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
// Error happens here:
|
|
100
|
+
users.map(u => u.name) // users is undefined
|
|
101
|
+
|
|
102
|
+
// Trace backward:
|
|
103
|
+
// Where does 'users' come from?
|
|
104
|
+
const users = props.users;
|
|
105
|
+
|
|
106
|
+
// Where do props come from?
|
|
107
|
+
<UserList users={data.users} />
|
|
108
|
+
|
|
109
|
+
// Where does data come from?
|
|
110
|
+
const { data } = useQuery(GET_USERS);
|
|
111
|
+
|
|
112
|
+
// ROOT CAUSE: Query returns { users: null } when loading
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Step 1.5: Add Diagnostic Instrumentation
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// Add temporary logging at boundaries
|
|
119
|
+
console.log('[UserList] props:', JSON.stringify(props));
|
|
120
|
+
console.log('[UserList] users type:', typeof props.users);
|
|
121
|
+
console.log('[UserList] users value:', props.users);
|
|
122
|
+
|
|
123
|
+
// Check at data source
|
|
124
|
+
console.log('[API] Response:', response);
|
|
125
|
+
console.log('[API] Response.data:', response.data);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Phase 2: Pattern Analysis
|
|
131
|
+
|
|
132
|
+
**Objective:** Find working examples to understand what correct behavior looks like.
|
|
133
|
+
|
|
134
|
+
### Step 2.1: Locate Similar Working Implementations
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Find similar components that work correctly
|
|
138
|
+
grep -r "useQuery" src/components/ --include="*.tsx"
|
|
139
|
+
|
|
140
|
+
# Find how other lists handle loading states
|
|
141
|
+
grep -r "loading" src/components/*List* --include="*.tsx"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Step 2.2: Study Reference Implementations Completely
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
// WORKING: ProductList.tsx
|
|
148
|
+
function ProductList({ products, loading }) {
|
|
149
|
+
if (loading) return <Spinner />;
|
|
150
|
+
if (!products) return null; // ← Handles undefined case
|
|
151
|
+
|
|
152
|
+
return products.map(p => <ProductItem key={p.id} {...p} />);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// BROKEN: UserList.tsx
|
|
156
|
+
function UserList({ users, loading }) {
|
|
157
|
+
if (loading) return <Spinner />;
|
|
158
|
+
// Missing: !users check
|
|
159
|
+
|
|
160
|
+
return users.map(u => <UserItem key={u.id} {...u} />); // 💥 Crashes
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Step 2.3: Document All Differences
|
|
165
|
+
|
|
166
|
+
| Aspect | Working (ProductList) | Broken (UserList) |
|
|
167
|
+
|--------|----------------------|-------------------|
|
|
168
|
+
| Null check | `if (!products)` | Missing |
|
|
169
|
+
| Default value | `products ?? []` | None |
|
|
170
|
+
| Loading handled | Before render | Before render |
|
|
171
|
+
| Error handled | Returns ErrorState | Missing |
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Phase 3: Hypothesis Testing
|
|
176
|
+
|
|
177
|
+
**Objective:** Verify your understanding with controlled experiments.
|
|
178
|
+
|
|
179
|
+
### Step 3.1: Form Specific, Written Hypothesis
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
## Hypothesis #1
|
|
183
|
+
**Statement:** The crash occurs because `users` is undefined when the
|
|
184
|
+
query is complete but returns no data.
|
|
185
|
+
|
|
186
|
+
**Prediction:** Adding a null check before `.map()` will prevent the crash.
|
|
187
|
+
|
|
188
|
+
**Test:** Add `if (!users) return null;` before the map call.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Step 3.2: Test with Minimal Changes
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// Change ONLY one thing
|
|
195
|
+
function UserList({ users, loading }) {
|
|
196
|
+
if (loading) return <Spinner />;
|
|
197
|
+
if (!users) return null; // ← Single change
|
|
198
|
+
|
|
199
|
+
return users.map(u => <UserItem key={u.id} {...u} />);
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Step 3.3: One Variable at a Time
|
|
204
|
+
|
|
205
|
+
```markdown
|
|
206
|
+
## Test Results
|
|
207
|
+
|
|
208
|
+
| Hypothesis | Change | Result | Conclusion |
|
|
209
|
+
|------------|--------|--------|------------|
|
|
210
|
+
| #1: Null check | Add `if (!users)` | ✓ Pass | Confirmed |
|
|
211
|
+
|
|
212
|
+
Do NOT test multiple hypotheses simultaneously.
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Phase 4: Implementation
|
|
218
|
+
|
|
219
|
+
**Objective:** Fix the bug permanently with proper safeguards.
|
|
220
|
+
|
|
221
|
+
### Step 4.1: Create Failing Test Case First
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
describe('UserList', () => {
|
|
225
|
+
it('should handle undefined users gracefully', () => {
|
|
226
|
+
// This test should FAIL before the fix
|
|
227
|
+
const { container } = render(<UserList users={undefined} loading={false} />);
|
|
228
|
+
expect(container).not.toThrow();
|
|
229
|
+
expect(screen.queryByRole('list')).not.toBeInTheDocument();
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Step 4.2: Implement Single Fix
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
function UserList({ users, loading }: UserListProps) {
|
|
238
|
+
if (loading) return <Spinner />;
|
|
239
|
+
if (!users || users.length === 0) {
|
|
240
|
+
return <EmptyState message="No users found" />;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return (
|
|
244
|
+
<ul role="list">
|
|
245
|
+
{users.map(u => <UserItem key={u.id} {...u} />)}
|
|
246
|
+
</ul>
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Step 4.3: Verify No New Breakage
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
# Run full test suite
|
|
255
|
+
npm test
|
|
256
|
+
|
|
257
|
+
# Run specific component tests
|
|
258
|
+
npm test UserList
|
|
259
|
+
|
|
260
|
+
# Run integration tests
|
|
261
|
+
npm run test:integration
|
|
262
|
+
|
|
263
|
+
# Verify in browser
|
|
264
|
+
# 1. Normal case: 50 users
|
|
265
|
+
# 2. Empty case: 0 users
|
|
266
|
+
# 3. Loading case: spinner shows
|
|
267
|
+
# 4. Error case: error message shows
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## The Three-Fix Threshold
|
|
273
|
+
|
|
274
|
+
> **After 3 failed fix attempts → STOP.**
|
|
275
|
+
|
|
276
|
+
Three failures in different locations signals architectural problems, not isolated bugs.
|
|
277
|
+
|
|
278
|
+
### What Three Failures Means
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
Fix Attempt 1: Added null check → New error in child component
|
|
282
|
+
Fix Attempt 2: Fixed child component → New error in parent
|
|
283
|
+
Fix Attempt 3: Fixed parent → Original error returns
|
|
284
|
+
↓
|
|
285
|
+
STOP. QUESTION ARCHITECTURE.
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### At the Threshold, Do This
|
|
289
|
+
|
|
290
|
+
1. **Stop fixing symptoms**
|
|
291
|
+
2. **Document the pattern** of failures
|
|
292
|
+
3. **Identify architectural assumptions** being violated
|
|
293
|
+
4. **Propose structural change** rather than patch
|
|
294
|
+
5. **Discuss with team** before proceeding
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Red Flags Requiring Process Reset
|
|
299
|
+
|
|
300
|
+
When you notice these, stop and restart from Phase 1:
|
|
301
|
+
|
|
302
|
+
| Red Flag | Why It's Wrong |
|
|
303
|
+
|----------|----------------|
|
|
304
|
+
| Proposing solutions before tracing data flow | Guessing, not debugging |
|
|
305
|
+
| Making multiple simultaneous changes | Can't identify which change worked |
|
|
306
|
+
| Skipping test creation | Bug will recur |
|
|
307
|
+
| "Let's try this and see if it works" | Shotgun debugging |
|
|
308
|
+
| Fixing without understanding the cause | Band-aid, not cure |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Decision Flowchart
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
┌──────────────────┐
|
|
316
|
+
│ Bug Reported │
|
|
317
|
+
└────────┬─────────┘
|
|
318
|
+
│
|
|
319
|
+
┌──────────────▼──────────────┐
|
|
320
|
+
│ Can you reproduce it? │
|
|
321
|
+
└──────────────┬──────────────┘
|
|
322
|
+
No │ Yes
|
|
323
|
+
┌────────────────┴────────────────┐
|
|
324
|
+
▼ ▼
|
|
325
|
+
┌───────────────┐ ┌─────────────────┐
|
|
326
|
+
│ Get more info │ │ Trace data flow │
|
|
327
|
+
└───────────────┘ └────────┬────────┘
|
|
328
|
+
│
|
|
329
|
+
┌──────────────▼──────────────┐
|
|
330
|
+
│ Do you understand the cause? │
|
|
331
|
+
└──────────────┬──────────────┘
|
|
332
|
+
No │ Yes
|
|
333
|
+
┌────────────────────────┴─────────┐
|
|
334
|
+
▼ ▼
|
|
335
|
+
┌───────────────┐ ┌─────────────────┐
|
|
336
|
+
│ Study working │ │ Write hypothesis│
|
|
337
|
+
│ examples │ └────────┬────────┘
|
|
338
|
+
└───────────────┘ │
|
|
339
|
+
┌───────▼───────┐
|
|
340
|
+
│ Write test │
|
|
341
|
+
└───────┬───────┘
|
|
342
|
+
│
|
|
343
|
+
┌───────▼───────┐
|
|
344
|
+
│ Implement │
|
|
345
|
+
└───────┬───────┘
|
|
346
|
+
│
|
|
347
|
+
┌──────────────────▼──────────────────┐
|
|
348
|
+
│ Does test pass? │
|
|
349
|
+
└──────────────────┬──────────────────┘
|
|
350
|
+
No │ Yes
|
|
351
|
+
┌────────────────────────┴──────────┐
|
|
352
|
+
▼ ▼
|
|
353
|
+
┌───────────────┐ ┌─────────────────┐
|
|
354
|
+
│ Attempt < 3? │ │ Done │
|
|
355
|
+
└───────┬───────┘ └─────────────────┘
|
|
356
|
+
No │ Yes
|
|
357
|
+
┌───────────────┴─────────────────┐
|
|
358
|
+
▼ ▼
|
|
359
|
+
┌───────────────────┐ ┌─────────────────────┐
|
|
360
|
+
│ Question │ │ Return to Phase 1 │
|
|
361
|
+
│ architecture │ └─────────────────────┘
|
|
362
|
+
└───────────────────┘
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
*Content adapted from [obra/superpowers](https://github.com/obra/superpowers) by Jesse Vincent (@obra), MIT License.*
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-forge
|
|
3
|
+
description: Conducts structured requirements workshops to produce feature specifications, user stories, EARS-format functional requirements, acceptance criteria, and implementation checklists. Use when defining new features, gathering requirements, or writing specifications. Invoke for feature definition, requirements gathering, user stories, EARS format specs, PRDs, acceptance criteria, or requirement matrices.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: https://github.com/Jeffallan
|
|
7
|
+
version: "1.1.0"
|
|
8
|
+
domain: workflow
|
|
9
|
+
triggers: requirements, specification, feature definition, user stories, EARS, planning
|
|
10
|
+
role: specialist
|
|
11
|
+
scope: design
|
|
12
|
+
output-format: document
|
|
13
|
+
related-skills: fullstack-guardian, spec-miner, test-master
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Feature Forge
|
|
17
|
+
|
|
18
|
+
Requirements specialist conducting structured workshops to define comprehensive feature specifications.
|
|
19
|
+
|
|
20
|
+
## Role Definition
|
|
21
|
+
|
|
22
|
+
Operate with two perspectives:
|
|
23
|
+
- **PM Hat**: Focused on user value, business goals, success metrics
|
|
24
|
+
- **Dev Hat**: Focused on technical feasibility, security, performance, edge cases
|
|
25
|
+
|
|
26
|
+
## When to Use This Skill
|
|
27
|
+
|
|
28
|
+
- Defining new features from scratch
|
|
29
|
+
- Gathering comprehensive requirements
|
|
30
|
+
- Writing specifications in EARS format
|
|
31
|
+
- Creating acceptance criteria
|
|
32
|
+
- Planning implementation TODO lists
|
|
33
|
+
|
|
34
|
+
## Core Workflow
|
|
35
|
+
|
|
36
|
+
1. **Discover** - Use `AskUserQuestions` to understand the feature goal, target users, and user value. Present structured choices where possible (e.g., user types, priority level).
|
|
37
|
+
2. **Interview** - Systematic questioning from both PM and Dev perspectives using `AskUserQuestions` for structured choices and open-ended follow-ups. Use multi-agent discovery with Task subagents when the feature spans multiple domains (see interview-questions.md for guidance).
|
|
38
|
+
3. **Document** - Write EARS-format requirements
|
|
39
|
+
4. **Validate** - Use `AskUserQuestions` to review acceptance criteria with stakeholder, presenting key trade-offs as structured choices
|
|
40
|
+
5. **Plan** - Create implementation checklist
|
|
41
|
+
|
|
42
|
+
## Reference Guide
|
|
43
|
+
|
|
44
|
+
Load detailed guidance based on context:
|
|
45
|
+
|
|
46
|
+
| Topic | Reference | Load When |
|
|
47
|
+
|-------|-----------|-----------|
|
|
48
|
+
| EARS Syntax | `references/ears-syntax.md` | Writing functional requirements |
|
|
49
|
+
| Interview Questions | `references/interview-questions.md` | Gathering requirements |
|
|
50
|
+
| Specification Template | `references/specification-template.md` | Writing final spec document |
|
|
51
|
+
| Acceptance Criteria | `references/acceptance-criteria.md` | Given/When/Then format |
|
|
52
|
+
| Pre-Discovery Subagents | `references/pre-discovery-subagents.md` | Multi-domain features needing front-loaded context |
|
|
53
|
+
|
|
54
|
+
## Constraints
|
|
55
|
+
|
|
56
|
+
### MUST DO
|
|
57
|
+
- Use `AskUserQuestions` tool for structured elicitation (priority, scope, format choices)
|
|
58
|
+
- Use open-ended questions only when choices cannot be predetermined
|
|
59
|
+
- Conduct thorough interview before writing spec
|
|
60
|
+
- Use EARS format for all functional requirements
|
|
61
|
+
- Include non-functional requirements (performance, security)
|
|
62
|
+
- Provide testable acceptance criteria
|
|
63
|
+
- Include implementation TODO checklist
|
|
64
|
+
- Ask for clarification on ambiguous requirements
|
|
65
|
+
|
|
66
|
+
### MUST NOT DO
|
|
67
|
+
- Output interview questions as plain text when `AskUserQuestions` can provide structured options
|
|
68
|
+
- Generate spec without conducting interview
|
|
69
|
+
- Accept vague requirements ("make it fast")
|
|
70
|
+
- Skip security considerations
|
|
71
|
+
- Forget error handling requirements
|
|
72
|
+
- Write untestable acceptance criteria
|
|
73
|
+
|
|
74
|
+
## Output Templates
|
|
75
|
+
|
|
76
|
+
The final specification must include:
|
|
77
|
+
1. Overview and user value
|
|
78
|
+
2. Functional requirements (EARS format)
|
|
79
|
+
3. Non-functional requirements
|
|
80
|
+
4. Acceptance criteria (Given/When/Then)
|
|
81
|
+
5. Error handling table
|
|
82
|
+
6. Implementation TODO checklist
|
|
83
|
+
|
|
84
|
+
**Inline EARS format examples** (load `references/ears-syntax.md` for full syntax):
|
|
85
|
+
```
|
|
86
|
+
When <trigger>, the <system> shall <response>.
|
|
87
|
+
Where <feature> is active, the <system> shall <behaviour>.
|
|
88
|
+
The <system> shall <action> within <measure>.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Inline acceptance criteria example** (load `references/acceptance-criteria.md` for full format):
|
|
92
|
+
```
|
|
93
|
+
Given a registered user is on the login page,
|
|
94
|
+
When they submit valid credentials,
|
|
95
|
+
Then they are redirected to the dashboard within 2 seconds.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Save as: `specs/{feature_name}.spec.md`
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Acceptance Criteria
|
|
2
|
+
|
|
3
|
+
## Given-When-Then Format
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
### AC-001: [Scenario Name]
|
|
7
|
+
Given [context/precondition]
|
|
8
|
+
When [action taken]
|
|
9
|
+
Then [expected result]
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Examples by Type
|
|
13
|
+
|
|
14
|
+
### Happy Path
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
### AC-001: Successful Login
|
|
18
|
+
Given a registered user with valid credentials
|
|
19
|
+
When they submit the login form
|
|
20
|
+
Then they are redirected to the dashboard
|
|
21
|
+
And a success message is displayed
|
|
22
|
+
And their session is created
|
|
23
|
+
|
|
24
|
+
### AC-002: Add Item to Cart
|
|
25
|
+
Given a logged-in user viewing a product
|
|
26
|
+
When they click "Add to Cart"
|
|
27
|
+
Then the item appears in their cart
|
|
28
|
+
And the cart badge updates with the count
|
|
29
|
+
And a confirmation toast is shown
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Error Cases
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
### AC-003: Invalid Login
|
|
36
|
+
Given a user with incorrect password
|
|
37
|
+
When they submit the login form
|
|
38
|
+
Then an error message "Invalid credentials" is displayed
|
|
39
|
+
And the password field is cleared
|
|
40
|
+
And they remain on the login page
|
|
41
|
+
|
|
42
|
+
### AC-004: Duplicate Email Registration
|
|
43
|
+
Given an email already exists in the system
|
|
44
|
+
When a new user tries to register with that email
|
|
45
|
+
Then an error message "Email already registered" is displayed
|
|
46
|
+
And the form is not submitted
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Edge Cases
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
### AC-005: Empty Cart Checkout
|
|
53
|
+
Given a user with an empty cart
|
|
54
|
+
When they navigate to checkout
|
|
55
|
+
Then they see "Your cart is empty" message
|
|
56
|
+
And a "Continue Shopping" button is displayed
|
|
57
|
+
|
|
58
|
+
### AC-006: Session Expiry
|
|
59
|
+
Given a user whose session has expired
|
|
60
|
+
When they try to perform any authenticated action
|
|
61
|
+
Then they are redirected to login
|
|
62
|
+
And a message "Session expired, please log in again" is shown
|
|
63
|
+
And their intended action is preserved for after login
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Authorization
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
### AC-007: Admin-Only Access
|
|
70
|
+
Given a regular user (non-admin)
|
|
71
|
+
When they try to access /admin/users
|
|
72
|
+
Then they receive a 403 Forbidden response
|
|
73
|
+
And are redirected to the home page
|
|
74
|
+
And an "Access denied" message is shown
|
|
75
|
+
|
|
76
|
+
### AC-008: Own Resource Only
|
|
77
|
+
Given a user viewing another user's profile
|
|
78
|
+
When they try to edit the profile
|
|
79
|
+
Then the edit button is not visible
|
|
80
|
+
And direct URL access returns 403
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## INVEST Criteria
|
|
84
|
+
|
|
85
|
+
Good acceptance criteria follow INVEST:
|
|
86
|
+
|
|
87
|
+
| Criterion | Description | Check |
|
|
88
|
+
|-----------|-------------|-------|
|
|
89
|
+
| **I**ndependent | Can be tested alone | No dependencies on other ACs |
|
|
90
|
+
| **N**egotiable | Details can be discussed | Not over-specified |
|
|
91
|
+
| **V**aluable | Delivers user value | Ties to requirement |
|
|
92
|
+
| **E**stimable | Effort can be estimated | Clear scope |
|
|
93
|
+
| **S**mall | Testable in one session | Not too broad |
|
|
94
|
+
| **T**estable | Pass/fail is clear | Objective criteria |
|
|
95
|
+
|
|
96
|
+
## Quick Reference
|
|
97
|
+
|
|
98
|
+
| Scenario Type | Given | When | Then |
|
|
99
|
+
|---------------|-------|------|------|
|
|
100
|
+
| Happy path | Valid state | Valid action | Success result |
|
|
101
|
+
| Error | Invalid state/input | Action | Error message |
|
|
102
|
+
| Edge case | Boundary condition | Action | Graceful handling |
|
|
103
|
+
| Authorization | User role | Protected action | Appropriate access |
|
|
104
|
+
| Concurrency | Multiple actors | Simultaneous action | Consistent state |
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# EARS Syntax
|
|
2
|
+
|
|
3
|
+
## EARS Format
|
|
4
|
+
|
|
5
|
+
Easy Approach to Requirements Syntax for clear, unambiguous requirements.
|
|
6
|
+
|
|
7
|
+
### Basic Pattern
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
While <precondition>, when <trigger>, the system shall <response>.
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Pattern Types
|
|
14
|
+
|
|
15
|
+
**Ubiquitous (Always True)**
|
|
16
|
+
```
|
|
17
|
+
The system shall [action].
|
|
18
|
+
```
|
|
19
|
+
Example: The system shall encrypt all passwords using bcrypt.
|
|
20
|
+
|
|
21
|
+
**Event-Driven**
|
|
22
|
+
```
|
|
23
|
+
When [trigger], the system shall [action].
|
|
24
|
+
```
|
|
25
|
+
Example: When the user clicks "Submit", the system shall save the form data.
|
|
26
|
+
|
|
27
|
+
**State-Driven**
|
|
28
|
+
```
|
|
29
|
+
While [state], the system shall [action].
|
|
30
|
+
```
|
|
31
|
+
Example: While the user is logged in, the system shall display the dashboard.
|
|
32
|
+
|
|
33
|
+
**Conditional (Most Common)**
|
|
34
|
+
```
|
|
35
|
+
While [state], when [trigger], the system shall [action].
|
|
36
|
+
```
|
|
37
|
+
Example: While the cart contains items, when the user clicks "Checkout", the system shall navigate to the payment page.
|
|
38
|
+
|
|
39
|
+
**Optional**
|
|
40
|
+
```
|
|
41
|
+
Where [feature enabled], the system shall [action].
|
|
42
|
+
```
|
|
43
|
+
Example: Where two-factor authentication is enabled, the system shall require a verification code.
|
|
44
|
+
|
|
45
|
+
## Examples by Domain
|
|
46
|
+
|
|
47
|
+
### Authentication
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
**FR-AUTH-001**: Login
|
|
51
|
+
While credentials are valid, when POST /auth/login is called,
|
|
52
|
+
the system shall return JWT access token (15min) and refresh token (7d).
|
|
53
|
+
|
|
54
|
+
**FR-AUTH-002**: Invalid Login
|
|
55
|
+
When invalid credentials are provided,
|
|
56
|
+
the system shall return 401 and increment failed login counter.
|
|
57
|
+
|
|
58
|
+
**FR-AUTH-003**: Account Lockout
|
|
59
|
+
While failed login count exceeds 5, when login is attempted,
|
|
60
|
+
the system shall reject the attempt and require password reset.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### E-commerce
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
**FR-CART-001**: Add to Cart
|
|
67
|
+
While user is logged in, when they click "Add to Cart",
|
|
68
|
+
the system shall add the item and update the cart badge count.
|
|
69
|
+
|
|
70
|
+
**FR-CART-002**: Apply Coupon
|
|
71
|
+
While the cart contains items, when a valid coupon code is applied,
|
|
72
|
+
the system shall reduce the total by the discount amount.
|
|
73
|
+
|
|
74
|
+
**FR-ORDER-001**: Checkout
|
|
75
|
+
While payment method is valid, when user confirms order,
|
|
76
|
+
the system shall create order, charge payment, and send confirmation email.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Data Management
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
**FR-EXPORT-001**: CSV Export
|
|
83
|
+
While user has data access permission, when they click "Export",
|
|
84
|
+
the system shall generate a CSV file and initiate download.
|
|
85
|
+
|
|
86
|
+
**FR-DELETE-001**: Soft Delete
|
|
87
|
+
When a resource is deleted,
|
|
88
|
+
the system shall set deleted_at timestamp instead of removing the record.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Quick Reference
|
|
92
|
+
|
|
93
|
+
| Type | Structure | Use When |
|
|
94
|
+
|------|-----------|----------|
|
|
95
|
+
| Ubiquitous | shall [action] | Always applies |
|
|
96
|
+
| Event | When [X], shall | On trigger |
|
|
97
|
+
| State | While [X], shall | Continuous state |
|
|
98
|
+
| Conditional | While [X], when [Y], shall | State + trigger |
|
|
99
|
+
| Optional | Where [X], shall | Feature flag |
|