aigroup-workflow 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/fix-build.md +10 -5
- package/.claude/commands/init-project.md +13 -8
- package/.claude/commands/plan.md +15 -8
- package/.claude/commands/review.md +12 -6
- package/.claude/commands/tdd.md +11 -5
- package/.claude/commands/workflow-start.md +20 -11
- package/.claude/settings.json +28 -0
- package/.codex/agents/architect.toml +207 -0
- package/.codex/agents/build-error-resolver.toml +110 -0
- package/.codex/agents/code-reviewer.toml +233 -0
- package/.codex/agents/doc-updater.toml +103 -0
- package/.codex/agents/e2e-runner.toml +103 -0
- package/.codex/agents/get-current-datetime.toml +23 -0
- package/.codex/agents/init-architect.toml +181 -0
- package/.codex/agents/planner.toml +208 -0
- package/.codex/agents/refactor-cleaner.toml +81 -0
- package/.codex/agents/rust-reviewer.toml +90 -0
- package/.codex/agents/security-reviewer.toml +104 -0
- package/.codex/agents/tdd-guide.toml +87 -0
- package/AGENTS.md +2 -2
- package/CLAUDE.md +23 -1
- package/LICENSE +20 -20
- package/README.md +333 -333
- package/agents/a11y-architect.md +141 -141
- package/agents/architect.md +211 -211
- package/agents/build-error-resolver.md +114 -114
- package/agents/chief-of-staff.md +151 -151
- package/agents/code-architect.md +71 -71
- package/agents/code-explorer.md +69 -69
- package/agents/code-reviewer.md +237 -237
- package/agents/code-simplifier.md +47 -47
- package/agents/comment-analyzer.md +45 -45
- package/agents/conversation-analyzer.md +52 -52
- package/agents/cpp-build-resolver.md +90 -90
- package/agents/cpp-reviewer.md +72 -72
- package/agents/csharp-reviewer.md +101 -101
- package/agents/dart-build-resolver.md +201 -201
- package/agents/database-reviewer.md +91 -91
- package/agents/doc-updater.md +107 -107
- package/agents/docs-lookup.md +68 -68
- package/agents/e2e-runner.md +107 -107
- package/agents/flutter-reviewer.md +243 -243
- package/agents/gan-evaluator.md +209 -209
- package/agents/gan-generator.md +131 -131
- package/agents/gan-planner.md +99 -99
- package/agents/get-current-datetime.md +26 -26
- package/agents/go-build-resolver.md +94 -94
- package/agents/go-reviewer.md +76 -76
- package/agents/harness-optimizer.md +35 -35
- package/agents/healthcare-reviewer.md +83 -83
- package/agents/java-build-resolver.md +153 -153
- package/agents/java-reviewer.md +92 -92
- package/agents/kotlin-build-resolver.md +118 -118
- package/agents/kotlin-reviewer.md +159 -159
- package/agents/loop-operator.md +36 -36
- package/agents/opensource-forker.md +198 -198
- package/agents/opensource-packager.md +249 -249
- package/agents/opensource-sanitizer.md +188 -188
- package/agents/performance-optimizer.md +446 -446
- package/agents/planner.md +212 -212
- package/agents/pr-test-analyzer.md +45 -45
- package/agents/python-reviewer.md +98 -98
- package/agents/pytorch-build-resolver.md +120 -120
- package/agents/refactor-cleaner.md +85 -85
- package/agents/rust-build-resolver.md +148 -148
- package/agents/rust-reviewer.md +94 -94
- package/agents/security-reviewer.md +108 -108
- package/agents/seo-specialist.md +59 -59
- package/agents/silent-failure-hunter.md +50 -50
- package/agents/tdd-guide.md +91 -91
- package/agents/type-design-analyzer.md +41 -41
- package/agents/typescript-reviewer.md +112 -112
- package/cli/commands/update.mjs +1 -1
- package/cli/utils/scaffold.mjs +53 -0
- package/docs/rules/agents.md +166 -50
- package/docs/rules/cpp/coding-style.md +44 -44
- package/docs/rules/cpp/hooks.md +39 -39
- package/docs/rules/cpp/patterns.md +51 -51
- package/docs/rules/cpp/security.md +51 -51
- package/docs/rules/cpp/testing.md +44 -44
- package/docs/rules/csharp/coding-style.md +72 -72
- package/docs/rules/csharp/hooks.md +25 -25
- package/docs/rules/csharp/patterns.md +50 -50
- package/docs/rules/csharp/security.md +58 -58
- package/docs/rules/csharp/testing.md +46 -46
- package/docs/rules/dart/coding-style.md +159 -159
- package/docs/rules/dart/hooks.md +66 -66
- package/docs/rules/dart/patterns.md +261 -261
- package/docs/rules/dart/security.md +135 -135
- package/docs/rules/dart/testing.md +215 -215
- package/docs/rules/golang/coding-style.md +32 -32
- package/docs/rules/golang/hooks.md +17 -17
- package/docs/rules/golang/patterns.md +45 -45
- package/docs/rules/golang/security.md +34 -34
- package/docs/rules/golang/testing.md +31 -31
- package/docs/rules/java/coding-style.md +114 -114
- package/docs/rules/java/hooks.md +18 -18
- package/docs/rules/java/patterns.md +146 -146
- package/docs/rules/java/security.md +100 -100
- package/docs/rules/java/testing.md +131 -131
- package/docs/rules/kotlin/coding-style.md +86 -86
- package/docs/rules/kotlin/hooks.md +17 -17
- package/docs/rules/kotlin/patterns.md +146 -146
- package/docs/rules/kotlin/security.md +82 -82
- package/docs/rules/kotlin/testing.md +128 -128
- package/docs/rules/perl/coding-style.md +46 -46
- package/docs/rules/perl/hooks.md +22 -22
- package/docs/rules/perl/patterns.md +76 -76
- package/docs/rules/perl/security.md +69 -69
- package/docs/rules/perl/testing.md +54 -54
- package/docs/rules/php/coding-style.md +40 -40
- package/docs/rules/php/hooks.md +24 -24
- package/docs/rules/php/patterns.md +33 -33
- package/docs/rules/php/security.md +37 -37
- package/docs/rules/php/testing.md +39 -39
- package/docs/rules/python/coding-style.md +42 -42
- package/docs/rules/python/hooks.md +19 -19
- package/docs/rules/python/patterns.md +39 -39
- package/docs/rules/python/security.md +30 -30
- package/docs/rules/python/testing.md +38 -38
- package/docs/rules/rust/coding-style.md +151 -151
- package/docs/rules/rust/hooks.md +16 -16
- package/docs/rules/rust/patterns.md +168 -168
- package/docs/rules/rust/security.md +141 -141
- package/docs/rules/rust/testing.md +154 -154
- package/docs/rules/swift/coding-style.md +47 -47
- package/docs/rules/swift/hooks.md +20 -20
- package/docs/rules/swift/patterns.md +66 -66
- package/docs/rules/swift/security.md +33 -33
- package/docs/rules/swift/testing.md +45 -45
- package/docs/rules/typescript/coding-style.md +199 -199
- package/docs/rules/typescript/hooks.md +22 -22
- package/docs/rules/typescript/patterns.md +52 -52
- package/docs/rules/typescript/security.md +28 -28
- package/docs/rules/typescript/testing.md +18 -18
- package/docs/rules/web/coding-style.md +96 -96
- package/docs/rules/web/design-quality.md +62 -62
- package/docs/rules/web/hooks.md +120 -120
- package/docs/rules/web/patterns.md +79 -79
- package/docs/rules/web/performance.md +64 -64
- package/docs/rules/web/security.md +57 -57
- package/docs/rules/web/testing.md +55 -55
- package/docs/templates/README.md +36 -36
- package/docs/templates/ai-project-final.md +124 -124
- package/docs/templates/ai-project.md +105 -105
- package/docs/templates/api.md +157 -157
- package/docs/templates/bug.md +62 -62
- package/docs/templates/code-review.md +87 -87
- package/docs/templates/generic.md +116 -116
- package/docs/templates/implementation-plan.md +1 -1
- package/docs/templates/meeting.md +68 -68
- package/docs/templates/prd.md +98 -98
- package/docs/templates/ui.md +134 -134
- package/docs/workflow-pipeline.md +11 -10
- package/package.json +40 -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 +344 -117
- package/scripts/orchestration/lib/validate.cjs +145 -0
- package/scripts/orchestration/session.cjs +88 -44
- package/skills/SUPERPOWERS-LICENSE +21 -21
- package/skills/ai-ml/fine-tuning-expert/SKILL.md +162 -162
- package/skills/ai-ml/fine-tuning-expert/references/dataset-preparation.md +540 -540
- package/skills/ai-ml/fine-tuning-expert/references/deployment-optimization.md +673 -673
- package/skills/ai-ml/fine-tuning-expert/references/evaluation-metrics.md +597 -597
- package/skills/ai-ml/fine-tuning-expert/references/hyperparameter-tuning.md +565 -565
- package/skills/ai-ml/fine-tuning-expert/references/lora-peft.md +347 -347
- package/skills/ai-ml/ml-pipeline/SKILL.md +159 -159
- package/skills/ai-ml/ml-pipeline/references/experiment-tracking.md +833 -833
- package/skills/ai-ml/ml-pipeline/references/feature-engineering.md +631 -631
- package/skills/ai-ml/ml-pipeline/references/model-validation.md +978 -978
- package/skills/ai-ml/ml-pipeline/references/pipeline-orchestration.md +907 -907
- package/skills/ai-ml/ml-pipeline/references/training-pipelines.md +782 -782
- package/skills/ai-ml/rag-architect/SKILL.md +194 -194
- package/skills/ai-ml/rag-architect/references/chunking-strategies.md +878 -878
- package/skills/ai-ml/rag-architect/references/embedding-models.md +561 -561
- package/skills/ai-ml/rag-architect/references/rag-evaluation.md +833 -833
- package/skills/ai-ml/rag-architect/references/retrieval-optimization.md +795 -795
- package/skills/ai-ml/rag-architect/references/vector-databases.md +589 -589
- package/skills/ai-ml/spark-engineer/SKILL.md +148 -148
- package/skills/ai-ml/spark-engineer/references/partitioning-caching.md +543 -543
- package/skills/ai-ml/spark-engineer/references/performance-tuning.md +544 -544
- package/skills/ai-ml/spark-engineer/references/rdd-operations.md +599 -599
- package/skills/ai-ml/spark-engineer/references/spark-sql-dataframes.md +474 -474
- package/skills/ai-ml/spark-engineer/references/streaming-patterns.md +786 -786
- package/skills/backend/api-designer/SKILL.md +217 -217
- package/skills/backend/api-designer/references/error-handling.md +541 -541
- package/skills/backend/api-designer/references/openapi.md +824 -824
- package/skills/backend/api-designer/references/pagination.md +494 -494
- package/skills/backend/api-designer/references/rest-patterns.md +335 -335
- package/skills/backend/api-designer/references/versioning.md +391 -391
- package/skills/backend/architecture-designer/SKILL.md +117 -117
- package/skills/backend/architecture-designer/references/adr-template.md +116 -116
- package/skills/backend/architecture-designer/references/architecture-patterns.md +111 -111
- package/skills/backend/architecture-designer/references/database-selection.md +102 -102
- package/skills/backend/architecture-designer/references/nfr-checklist.md +112 -112
- package/skills/backend/architecture-designer/references/system-design.md +100 -100
- package/skills/backend/code-documenter/SKILL.md +147 -147
- package/skills/backend/code-documenter/references/api-docs-fastapi-django.md +166 -166
- package/skills/backend/code-documenter/references/api-docs-nestjs-express.md +220 -220
- package/skills/backend/code-documenter/references/coverage-reports.md +125 -125
- package/skills/backend/code-documenter/references/documentation-systems.md +333 -333
- package/skills/backend/code-documenter/references/interactive-api-docs.md +531 -531
- package/skills/backend/code-documenter/references/python-docstrings.md +121 -121
- package/skills/backend/code-documenter/references/typescript-jsdoc.md +145 -145
- package/skills/backend/code-documenter/references/user-guides-tutorials.md +530 -530
- package/skills/backend/debugging-wizard/SKILL.md +105 -105
- package/skills/backend/debugging-wizard/references/common-patterns.md +132 -132
- package/skills/backend/debugging-wizard/references/debugging-tools.md +140 -140
- package/skills/backend/debugging-wizard/references/quick-fixes.md +177 -177
- package/skills/backend/debugging-wizard/references/strategies.md +142 -142
- package/skills/backend/debugging-wizard/references/systematic-debugging.md +367 -367
- package/skills/backend/feature-forge/SKILL.md +98 -98
- package/skills/backend/feature-forge/references/acceptance-criteria.md +104 -104
- package/skills/backend/feature-forge/references/ears-syntax.md +99 -99
- package/skills/backend/feature-forge/references/interview-questions.md +150 -150
- package/skills/backend/feature-forge/references/pre-discovery-subagents.md +54 -54
- package/skills/backend/feature-forge/references/specification-template.md +103 -103
- package/skills/backend/fullstack-guardian/SKILL.md +105 -105
- package/skills/backend/fullstack-guardian/references/api-design-standards.md +307 -307
- package/skills/backend/fullstack-guardian/references/architecture-decisions.md +350 -350
- package/skills/backend/fullstack-guardian/references/backend-patterns.md +237 -237
- package/skills/backend/fullstack-guardian/references/common-patterns.md +134 -134
- package/skills/backend/fullstack-guardian/references/deliverables-checklist.md +354 -354
- package/skills/backend/fullstack-guardian/references/design-template.md +91 -91
- package/skills/backend/fullstack-guardian/references/error-handling.md +135 -135
- package/skills/backend/fullstack-guardian/references/frontend-patterns.md +340 -340
- package/skills/backend/fullstack-guardian/references/integration-patterns.md +333 -333
- package/skills/backend/fullstack-guardian/references/security-checklist.md +106 -106
- package/skills/backend/graphql-architect/SKILL.md +146 -146
- package/skills/backend/graphql-architect/references/federation.md +418 -418
- package/skills/backend/graphql-architect/references/migration-from-rest.md +1141 -1141
- package/skills/backend/graphql-architect/references/resolvers.md +425 -425
- package/skills/backend/graphql-architect/references/schema-design.md +393 -393
- package/skills/backend/graphql-architect/references/security.md +569 -569
- package/skills/backend/graphql-architect/references/subscriptions.md +510 -510
- package/skills/backend/legacy-modernizer/SKILL.md +137 -137
- package/skills/backend/legacy-modernizer/references/legacy-testing.md +381 -381
- package/skills/backend/legacy-modernizer/references/migration-strategies.md +423 -423
- package/skills/backend/legacy-modernizer/references/refactoring-patterns.md +395 -395
- package/skills/backend/legacy-modernizer/references/strangler-fig-pattern.md +281 -281
- package/skills/backend/legacy-modernizer/references/system-assessment.md +487 -487
- package/skills/backend/microservices-architect/SKILL.md +164 -164
- package/skills/backend/microservices-architect/references/communication.md +499 -499
- package/skills/backend/microservices-architect/references/data.md +721 -721
- package/skills/backend/microservices-architect/references/decomposition.md +344 -344
- package/skills/backend/microservices-architect/references/observability.md +805 -805
- package/skills/backend/microservices-architect/references/patterns.md +603 -603
- package/skills/database/database-optimizer/SKILL.md +147 -147
- package/skills/database/database-optimizer/references/index-strategies.md +331 -331
- package/skills/database/database-optimizer/references/monitoring-analysis.md +501 -501
- package/skills/database/database-optimizer/references/mysql-tuning.md +452 -452
- package/skills/database/database-optimizer/references/postgresql-tuning.md +413 -413
- package/skills/database/database-optimizer/references/query-optimization.md +251 -251
- package/skills/database/postgres-pro/SKILL.md +152 -152
- package/skills/database/postgres-pro/references/extensions.md +404 -404
- package/skills/database/postgres-pro/references/jsonb.md +321 -321
- package/skills/database/postgres-pro/references/maintenance.md +481 -481
- package/skills/database/postgres-pro/references/performance.md +265 -265
- package/skills/database/postgres-pro/references/replication.md +446 -446
- package/skills/database/sql-pro/SKILL.md +129 -129
- package/skills/database/sql-pro/references/database-design.md +402 -402
- package/skills/database/sql-pro/references/dialect-differences.md +419 -419
- package/skills/database/sql-pro/references/optimization.md +384 -384
- package/skills/database/sql-pro/references/query-patterns.md +285 -285
- package/skills/database/sql-pro/references/window-functions.md +328 -328
- package/skills/dotnet/csharp-developer/SKILL.md +125 -125
- package/skills/dotnet/csharp-developer/references/aspnet-core.md +394 -394
- package/skills/dotnet/csharp-developer/references/blazor.md +553 -553
- package/skills/dotnet/csharp-developer/references/entity-framework.md +409 -409
- package/skills/dotnet/csharp-developer/references/modern-csharp.md +248 -248
- package/skills/dotnet/csharp-developer/references/performance.md +498 -498
- package/skills/dotnet/dotnet-core-expert/SKILL.md +138 -138
- package/skills/dotnet/dotnet-core-expert/references/authentication.md +546 -546
- package/skills/dotnet/dotnet-core-expert/references/clean-architecture.md +455 -455
- package/skills/dotnet/dotnet-core-expert/references/cloud-native.md +548 -548
- package/skills/dotnet/dotnet-core-expert/references/entity-framework.md +440 -440
- package/skills/dotnet/dotnet-core-expert/references/minimal-apis.md +319 -319
- package/skills/frontend/angular-architect/SKILL.md +152 -152
- package/skills/frontend/angular-architect/references/components.md +297 -297
- package/skills/frontend/angular-architect/references/ngrx.md +401 -401
- package/skills/frontend/angular-architect/references/routing.md +361 -361
- package/skills/frontend/angular-architect/references/rxjs.md +319 -319
- package/skills/frontend/angular-architect/references/testing.md +405 -405
- package/skills/frontend/design-commands/design.md +91 -91
- package/skills/frontend/design-commands/handoff.md +97 -97
- package/skills/frontend/design-commands/prototype.md +120 -120
- package/skills/frontend/design-commands/spec.md +160 -160
- package/skills/frontend/design-commands/style.md +78 -78
- package/skills/frontend/flutter-expert/SKILL.md +138 -138
- package/skills/frontend/flutter-expert/references/bloc-state.md +259 -259
- package/skills/frontend/flutter-expert/references/gorouter-navigation.md +119 -119
- package/skills/frontend/flutter-expert/references/performance.md +99 -99
- package/skills/frontend/flutter-expert/references/project-structure.md +118 -118
- package/skills/frontend/flutter-expert/references/riverpod-state.md +130 -130
- package/skills/frontend/flutter-expert/references/widget-patterns.md +123 -123
- package/skills/frontend/nextjs-developer/SKILL.md +143 -143
- package/skills/frontend/nextjs-developer/references/app-router.md +311 -311
- package/skills/frontend/nextjs-developer/references/data-fetching.md +482 -482
- package/skills/frontend/nextjs-developer/references/deployment.md +545 -545
- package/skills/frontend/nextjs-developer/references/server-actions.md +462 -462
- package/skills/frontend/nextjs-developer/references/server-components.md +384 -384
- package/skills/frontend/react-expert/SKILL.md +149 -149
- package/skills/frontend/react-expert/references/hooks-patterns.md +162 -162
- package/skills/frontend/react-expert/references/migration-class-to-modern.md +1119 -1119
- package/skills/frontend/react-expert/references/performance.md +168 -168
- package/skills/frontend/react-expert/references/react-19-features.md +174 -174
- package/skills/frontend/react-expert/references/server-components.md +143 -143
- package/skills/frontend/react-expert/references/state-management.md +171 -171
- package/skills/frontend/react-expert/references/testing-react.md +174 -174
- package/skills/frontend/react-native-expert/SKILL.md +185 -185
- package/skills/frontend/react-native-expert/references/expo-router.md +187 -187
- package/skills/frontend/react-native-expert/references/list-optimization.md +204 -204
- package/skills/frontend/react-native-expert/references/platform-handling.md +188 -188
- package/skills/frontend/react-native-expert/references/project-structure.md +171 -171
- package/skills/frontend/react-native-expert/references/storage-hooks.md +173 -173
- package/skills/frontend/senior-frontend/SKILL.md +477 -477
- package/skills/frontend/senior-frontend/references/frontend_best_practices.md +806 -806
- package/skills/frontend/senior-frontend/references/nextjs_optimization_guide.md +724 -724
- package/skills/frontend/senior-frontend/references/react_patterns.md +746 -746
- package/skills/frontend/senior-frontend/scripts/bundle_analyzer.py +407 -407
- package/skills/frontend/senior-frontend/scripts/component_generator.py +329 -329
- package/skills/frontend/senior-frontend/scripts/frontend_scaffolder.py +1005 -1005
- package/skills/frontend/ui-ux-pro-max/SKILL.md +386 -386
- package/skills/frontend/ui-ux-pro-max/data/charts.csv +26 -26
- package/skills/frontend/ui-ux-pro-max/data/colors.csv +97 -97
- package/skills/frontend/ui-ux-pro-max/data/icons.csv +101 -101
- package/skills/frontend/ui-ux-pro-max/data/landing.csv +31 -31
- package/skills/frontend/ui-ux-pro-max/data/products.csv +96 -96
- package/skills/frontend/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/skills/frontend/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/skills/frontend/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/skills/frontend/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/skills/frontend/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/skills/frontend/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/skills/frontend/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/skills/frontend/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/skills/frontend/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/skills/frontend/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/skills/frontend/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/skills/frontend/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/skills/frontend/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/skills/frontend/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/skills/frontend/ui-ux-pro-max/data/styles.csv +68 -68
- package/skills/frontend/ui-ux-pro-max/data/typography.csv +57 -57
- package/skills/frontend/ui-ux-pro-max/data/ui-reasoning.csv +101 -101
- package/skills/frontend/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/skills/frontend/ui-ux-pro-max/data/web-interface.csv +31 -31
- package/skills/frontend/ui-ux-pro-max/scripts/core.py +253 -253
- package/skills/frontend/ui-ux-pro-max/scripts/design_system.py +1067 -1067
- package/skills/frontend/ui-ux-pro-max/scripts/search.py +114 -114
- package/skills/frontend/vue-expert/SKILL.md +98 -98
- package/skills/frontend/vue-expert/references/build-tooling.md +480 -480
- package/skills/frontend/vue-expert/references/components.md +448 -448
- package/skills/frontend/vue-expert/references/composition-api.md +299 -299
- package/skills/frontend/vue-expert/references/mobile-hybrid.md +636 -636
- package/skills/frontend/vue-expert/references/nuxt.md +669 -669
- package/skills/frontend/vue-expert/references/state-management.md +449 -449
- package/skills/frontend/vue-expert/references/typescript.md +584 -584
- package/skills/frontend/vue-expert-js/SKILL.md +167 -167
- package/skills/frontend/vue-expert-js/references/component-architecture.md +219 -219
- package/skills/frontend/vue-expert-js/references/composables-patterns.md +183 -183
- package/skills/frontend/vue-expert-js/references/jsdoc-typing.md +535 -535
- package/skills/frontend/vue-expert-js/references/state-management.md +249 -249
- package/skills/frontend/vue-expert-js/references/testing-patterns.md +237 -237
- package/skills/go-rust-cpp/cpp-pro/SKILL.md +115 -115
- package/skills/go-rust-cpp/cpp-pro/references/build-tooling.md +440 -440
- package/skills/go-rust-cpp/cpp-pro/references/concurrency.md +437 -437
- package/skills/go-rust-cpp/cpp-pro/references/memory-performance.md +397 -397
- package/skills/go-rust-cpp/cpp-pro/references/modern-cpp.md +304 -304
- package/skills/go-rust-cpp/cpp-pro/references/templates.md +357 -357
- package/skills/go-rust-cpp/golang-pro/SKILL.md +122 -122
- package/skills/go-rust-cpp/golang-pro/references/concurrency.md +329 -329
- package/skills/go-rust-cpp/golang-pro/references/generics.md +442 -442
- package/skills/go-rust-cpp/golang-pro/references/interfaces.md +432 -432
- package/skills/go-rust-cpp/golang-pro/references/project-structure.md +477 -477
- package/skills/go-rust-cpp/golang-pro/references/testing.md +451 -451
- package/skills/go-rust-cpp/rust-engineer/SKILL.md +167 -167
- package/skills/go-rust-cpp/rust-engineer/references/async.md +458 -458
- package/skills/go-rust-cpp/rust-engineer/references/error-handling.md +334 -334
- package/skills/go-rust-cpp/rust-engineer/references/ownership.md +278 -278
- package/skills/go-rust-cpp/rust-engineer/references/testing.md +470 -470
- package/skills/go-rust-cpp/rust-engineer/references/traits.md +413 -413
- package/skills/infra/cli-developer/SKILL.md +113 -113
- package/skills/infra/cli-developer/references/design-patterns.md +221 -221
- package/skills/infra/cli-developer/references/go-cli.md +540 -540
- package/skills/infra/cli-developer/references/node-cli.md +383 -383
- package/skills/infra/cli-developer/references/python-cli.md +422 -422
- package/skills/infra/cli-developer/references/ux-patterns.md +448 -448
- package/skills/infra/cloud-architect/SKILL.md +216 -216
- package/skills/infra/cloud-architect/references/aws.md +394 -394
- package/skills/infra/cloud-architect/references/azure.md +562 -562
- package/skills/infra/cloud-architect/references/cost.md +582 -582
- package/skills/infra/cloud-architect/references/gcp.md +633 -633
- package/skills/infra/cloud-architect/references/multi-cloud.md +483 -483
- package/skills/infra/devops-engineer/SKILL.md +144 -144
- package/skills/infra/devops-engineer/references/deployment-strategies.md +241 -241
- package/skills/infra/devops-engineer/references/docker-patterns.md +113 -113
- package/skills/infra/devops-engineer/references/github-actions.md +139 -139
- package/skills/infra/devops-engineer/references/incident-response.md +331 -331
- package/skills/infra/devops-engineer/references/kubernetes.md +154 -154
- package/skills/infra/devops-engineer/references/platform-engineering.md +417 -417
- package/skills/infra/devops-engineer/references/release-automation.md +527 -527
- package/skills/infra/devops-engineer/references/terraform-iac.md +141 -141
- package/skills/infra/kubernetes-specialist/SKILL.md +241 -241
- package/skills/infra/kubernetes-specialist/references/configuration.md +452 -452
- package/skills/infra/kubernetes-specialist/references/cost-optimization.md +458 -458
- package/skills/infra/kubernetes-specialist/references/custom-operators.md +563 -563
- package/skills/infra/kubernetes-specialist/references/gitops.md +530 -530
- package/skills/infra/kubernetes-specialist/references/helm-charts.md +912 -912
- package/skills/infra/kubernetes-specialist/references/multi-cluster.md +507 -507
- package/skills/infra/kubernetes-specialist/references/networking.md +447 -447
- package/skills/infra/kubernetes-specialist/references/service-mesh.md +459 -459
- package/skills/infra/kubernetes-specialist/references/storage.md +535 -535
- package/skills/infra/kubernetes-specialist/references/troubleshooting.md +414 -414
- package/skills/infra/kubernetes-specialist/references/workloads.md +377 -377
- package/skills/infra/mcp-developer/SKILL.md +143 -143
- package/skills/infra/mcp-developer/references/protocol.md +244 -244
- package/skills/infra/mcp-developer/references/python-sdk.md +367 -367
- package/skills/infra/mcp-developer/references/resources.md +554 -554
- package/skills/infra/mcp-developer/references/tools.md +480 -480
- package/skills/infra/mcp-developer/references/typescript-sdk.md +350 -350
- package/skills/infra/monitoring-expert/SKILL.md +176 -176
- package/skills/infra/monitoring-expert/references/alerting-rules.md +141 -141
- package/skills/infra/monitoring-expert/references/application-profiling.md +331 -331
- package/skills/infra/monitoring-expert/references/capacity-planning.md +344 -344
- package/skills/infra/monitoring-expert/references/dashboards.md +126 -126
- package/skills/infra/monitoring-expert/references/opentelemetry.md +123 -123
- package/skills/infra/monitoring-expert/references/performance-testing.md +269 -269
- package/skills/infra/monitoring-expert/references/prometheus-metrics.md +136 -136
- package/skills/infra/monitoring-expert/references/structured-logging.md +142 -142
- package/skills/infra/sre-engineer/SKILL.md +181 -181
- package/skills/infra/sre-engineer/references/automation-toil.md +492 -492
- package/skills/infra/sre-engineer/references/error-budget-policy.md +334 -334
- package/skills/infra/sre-engineer/references/incident-chaos.md +576 -576
- package/skills/infra/sre-engineer/references/monitoring-alerting.md +424 -424
- package/skills/infra/sre-engineer/references/slo-sli-management.md +238 -238
- package/skills/infra/terraform-engineer/SKILL.md +143 -143
- package/skills/infra/terraform-engineer/references/best-practices.md +583 -583
- package/skills/infra/terraform-engineer/references/module-patterns.md +297 -297
- package/skills/infra/terraform-engineer/references/providers.md +452 -452
- package/skills/infra/terraform-engineer/references/state-management.md +371 -371
- package/skills/infra/terraform-engineer/references/testing.md +486 -486
- package/skills/infra/websocket-engineer/SKILL.md +168 -168
- package/skills/infra/websocket-engineer/references/alternatives.md +391 -391
- package/skills/infra/websocket-engineer/references/patterns.md +400 -400
- package/skills/infra/websocket-engineer/references/protocol.md +195 -195
- package/skills/infra/websocket-engineer/references/scaling.md +333 -333
- package/skills/infra/websocket-engineer/references/security.md +474 -474
- package/skills/java/java-architect/SKILL.md +132 -132
- package/skills/java/java-architect/references/jpa-optimization.md +393 -393
- package/skills/java/java-architect/references/reactive-webflux.md +356 -356
- package/skills/java/java-architect/references/spring-boot-setup.md +269 -269
- package/skills/java/java-architect/references/spring-security.md +445 -445
- package/skills/java/java-architect/references/testing-patterns.md +500 -500
- package/skills/java/kotlin-specialist/SKILL.md +147 -147
- package/skills/java/kotlin-specialist/references/android-compose.md +419 -419
- package/skills/java/kotlin-specialist/references/coroutines-flow.md +276 -276
- package/skills/java/kotlin-specialist/references/dsl-idioms.md +421 -421
- package/skills/java/kotlin-specialist/references/ktor-server.md +426 -426
- package/skills/java/kotlin-specialist/references/multiplatform-kmp.md +380 -380
- package/skills/java/spring-boot-engineer/SKILL.md +195 -195
- package/skills/java/spring-boot-engineer/references/cloud.md +498 -498
- package/skills/java/spring-boot-engineer/references/data.md +381 -381
- package/skills/java/spring-boot-engineer/references/security.md +459 -459
- package/skills/java/spring-boot-engineer/references/testing.md +545 -545
- package/skills/java/spring-boot-engineer/references/web.md +295 -295
- package/skills/javascript/javascript-pro/SKILL.md +132 -132
- package/skills/javascript/javascript-pro/references/async-patterns.md +334 -334
- package/skills/javascript/javascript-pro/references/browser-apis.md +398 -398
- package/skills/javascript/javascript-pro/references/modern-syntax.md +272 -272
- package/skills/javascript/javascript-pro/references/modules.md +357 -357
- package/skills/javascript/javascript-pro/references/node-essentials.md +471 -471
- package/skills/javascript/nestjs-expert/SKILL.md +206 -206
- package/skills/javascript/nestjs-expert/references/authentication.md +166 -166
- package/skills/javascript/nestjs-expert/references/controllers-routing.md +111 -111
- package/skills/javascript/nestjs-expert/references/dtos-validation.md +153 -153
- package/skills/javascript/nestjs-expert/references/migration-from-express.md +1237 -1237
- package/skills/javascript/nestjs-expert/references/services-di.md +140 -140
- package/skills/javascript/nestjs-expert/references/testing-patterns.md +186 -186
- package/skills/javascript/typescript-pro/SKILL.md +145 -145
- package/skills/javascript/typescript-pro/references/advanced-types.md +259 -259
- package/skills/javascript/typescript-pro/references/configuration.md +445 -445
- package/skills/javascript/typescript-pro/references/patterns.md +484 -484
- package/skills/javascript/typescript-pro/references/type-guards.md +352 -352
- package/skills/javascript/typescript-pro/references/utility-types.md +329 -329
- package/skills/php/laravel-specialist/SKILL.md +262 -262
- package/skills/php/laravel-specialist/references/eloquent.md +351 -351
- package/skills/php/laravel-specialist/references/livewire.md +512 -512
- package/skills/php/laravel-specialist/references/queues.md +423 -423
- package/skills/php/laravel-specialist/references/routing.md +362 -362
- package/skills/php/laravel-specialist/references/testing.md +522 -522
- package/skills/php/php-pro/SKILL.md +206 -206
- package/skills/php/php-pro/references/async-patterns.md +412 -412
- package/skills/php/php-pro/references/laravel-patterns.md +377 -377
- package/skills/php/php-pro/references/modern-php-features.md +323 -323
- package/skills/php/php-pro/references/symfony-patterns.md +466 -466
- package/skills/php/php-pro/references/testing-quality.md +466 -466
- package/skills/product/competitive-analysis/SKILL.md +257 -257
- package/skills/product/meeting-notes/SKILL.md +266 -266
- package/skills/product/prd-template/SKILL.md +150 -150
- package/skills/product/stakeholder-update/SKILL.md +225 -225
- package/skills/product/user-research-synthesis/SKILL.md +235 -235
- package/skills/python/django-expert/SKILL.md +162 -162
- package/skills/python/django-expert/references/authentication.md +145 -145
- package/skills/python/django-expert/references/drf-serializers.md +148 -148
- package/skills/python/django-expert/references/models-orm.md +151 -151
- package/skills/python/django-expert/references/testing-django.md +204 -204
- package/skills/python/django-expert/references/viewsets-views.md +153 -153
- package/skills/python/fastapi-expert/SKILL.md +185 -185
- package/skills/python/fastapi-expert/references/async-sqlalchemy.md +146 -146
- package/skills/python/fastapi-expert/references/authentication.md +159 -159
- package/skills/python/fastapi-expert/references/endpoints-routing.md +142 -142
- package/skills/python/fastapi-expert/references/migration-from-django.md +996 -996
- package/skills/python/fastapi-expert/references/pydantic-v2.md +135 -135
- package/skills/python/fastapi-expert/references/testing-async.md +159 -159
- package/skills/python/pandas-pro/SKILL.md +178 -178
- package/skills/python/pandas-pro/references/aggregation-groupby.md +545 -545
- package/skills/python/pandas-pro/references/data-cleaning.md +500 -500
- package/skills/python/pandas-pro/references/dataframe-operations.md +420 -420
- package/skills/python/pandas-pro/references/merging-joining.md +596 -596
- package/skills/python/pandas-pro/references/performance-optimization.md +597 -597
- package/skills/python/python-pro/SKILL.md +177 -177
- package/skills/python/python-pro/references/async-patterns.md +356 -356
- package/skills/python/python-pro/references/packaging.md +460 -460
- package/skills/python/python-pro/references/standard-library.md +378 -378
- package/skills/python/python-pro/references/testing.md +404 -404
- package/skills/python/python-pro/references/type-system.md +290 -290
- package/skills/quality/chaos-engineer/SKILL.md +182 -182
- package/skills/quality/chaos-engineer/references/chaos-tools.md +511 -511
- package/skills/quality/chaos-engineer/references/experiment-design.md +229 -229
- package/skills/quality/chaos-engineer/references/game-days.md +434 -434
- package/skills/quality/chaos-engineer/references/infrastructure-chaos.md +348 -348
- package/skills/quality/chaos-engineer/references/kubernetes-chaos.md +432 -432
- package/skills/quality/code-reviewer/SKILL.md +119 -119
- package/skills/quality/code-reviewer/references/common-issues.md +142 -142
- package/skills/quality/code-reviewer/references/feedback-examples.md +144 -144
- package/skills/quality/code-reviewer/references/receiving-feedback.md +238 -238
- package/skills/quality/code-reviewer/references/report-template.md +109 -109
- package/skills/quality/code-reviewer/references/review-checklist.md +88 -88
- package/skills/quality/code-reviewer/references/spec-compliance-review.md +258 -258
- package/skills/quality/playwright-expert/SKILL.md +169 -169
- package/skills/quality/playwright-expert/references/api-mocking.md +140 -140
- package/skills/quality/playwright-expert/references/configuration.md +155 -155
- package/skills/quality/playwright-expert/references/debugging-flaky.md +150 -150
- package/skills/quality/playwright-expert/references/page-object-model.md +152 -152
- package/skills/quality/playwright-expert/references/selectors-locators.md +119 -119
- package/skills/quality/secure-code-guardian/SKILL.md +191 -191
- package/skills/quality/secure-code-guardian/references/authentication.md +136 -136
- package/skills/quality/secure-code-guardian/references/input-validation.md +146 -146
- package/skills/quality/secure-code-guardian/references/owasp-prevention.md +135 -135
- package/skills/quality/secure-code-guardian/references/security-headers.md +133 -133
- package/skills/quality/secure-code-guardian/references/xss-csrf.md +157 -157
- package/skills/quality/security-reviewer/SKILL.md +103 -103
- package/skills/quality/security-reviewer/references/infrastructure-security.md +268 -268
- package/skills/quality/security-reviewer/references/penetration-testing.md +268 -268
- package/skills/quality/security-reviewer/references/report-template.md +170 -170
- package/skills/quality/security-reviewer/references/sast-tools.md +117 -117
- package/skills/quality/security-reviewer/references/secret-scanning.md +125 -125
- package/skills/quality/security-reviewer/references/vulnerability-patterns.md +152 -152
- package/skills/quality/senior-qa/README.md +196 -196
- package/skills/quality/senior-qa/SKILL.md +399 -399
- package/skills/quality/senior-qa/references/qa_best_practices.md +964 -964
- package/skills/quality/senior-qa/references/test_automation_patterns.md +1009 -1009
- package/skills/quality/senior-qa/references/testing_strategies.md +649 -649
- package/skills/quality/senior-qa/scripts/coverage_analyzer.py +836 -836
- package/skills/quality/senior-qa/scripts/e2e_test_scaffolder.py +820 -820
- package/skills/quality/senior-qa/scripts/test_suite_generator.py +605 -605
- package/skills/quality/tdd-guide/HOW_TO_USE.md +313 -313
- package/skills/quality/tdd-guide/README.md +680 -680
- package/skills/quality/tdd-guide/SKILL.md +122 -122
- package/skills/quality/tdd-guide/assets/expected_output.json +77 -77
- package/skills/quality/tdd-guide/assets/sample_input_python.json +39 -39
- package/skills/quality/tdd-guide/assets/sample_input_typescript.json +36 -36
- package/skills/quality/tdd-guide/references/ci-integration.md +195 -195
- package/skills/quality/tdd-guide/references/framework-guide.md +206 -206
- package/skills/quality/tdd-guide/references/tdd-best-practices.md +128 -128
- package/skills/quality/tdd-guide/scripts/coverage_analyzer.py +434 -434
- package/skills/quality/tdd-guide/scripts/fixture_generator.py +440 -440
- package/skills/quality/tdd-guide/scripts/format_detector.py +384 -384
- package/skills/quality/tdd-guide/scripts/framework_adapter.py +428 -428
- package/skills/quality/tdd-guide/scripts/metrics_calculator.py +456 -456
- package/skills/quality/tdd-guide/scripts/output_formatter.py +354 -354
- package/skills/quality/tdd-guide/scripts/tdd_workflow.py +474 -474
- package/skills/quality/tdd-guide/scripts/test_generator.py +438 -438
- package/skills/quality/test-master/SKILL.md +94 -94
- package/skills/quality/test-master/references/automation-frameworks.md +294 -294
- package/skills/quality/test-master/references/e2e-testing.md +128 -128
- package/skills/quality/test-master/references/integration-testing.md +120 -120
- package/skills/quality/test-master/references/performance-testing.md +118 -118
- package/skills/quality/test-master/references/qa-methodology.md +247 -247
- package/skills/quality/test-master/references/security-testing.md +127 -127
- package/skills/quality/test-master/references/tdd-iron-laws.md +174 -174
- package/skills/quality/test-master/references/test-reports.md +104 -104
- package/skills/quality/test-master/references/testing-anti-patterns.md +231 -231
- package/skills/quality/test-master/references/unit-testing.md +113 -113
- package/skills/ruby/rails-expert/SKILL.md +154 -154
- package/skills/ruby/rails-expert/references/active-record.md +244 -244
- package/skills/ruby/rails-expert/references/api-development.md +401 -401
- package/skills/ruby/rails-expert/references/background-jobs.md +272 -272
- package/skills/ruby/rails-expert/references/hotwire-turbo.md +228 -228
- package/skills/ruby/rails-expert/references/rspec-testing.md +367 -367
- package/skills/swift/swift-expert/SKILL.md +163 -163
- package/skills/swift/swift-expert/references/async-concurrency.md +360 -360
- package/skills/swift/swift-expert/references/memory-performance.md +377 -377
- package/skills/swift/swift-expert/references/protocol-oriented.md +354 -354
- package/skills/swift/swift-expert/references/swiftui-patterns.md +291 -291
- package/skills/swift/swift-expert/references/testing-patterns.md +399 -399
- package/skills/workflow/brainstorming/SKILL.md +164 -164
- package/skills/workflow/brainstorming/scripts/frame-template.html +214 -214
- package/skills/workflow/brainstorming/scripts/helper.js +88 -88
- package/skills/workflow/brainstorming/scripts/server.cjs +354 -354
- package/skills/workflow/brainstorming/scripts/start-server.sh +148 -148
- package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -56
- package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -49
- package/skills/workflow/brainstorming/visual-companion.md +287 -287
- package/skills/workflow/documentation/SKILL.md +45 -45
- package/skills/workflow/entropy-management/SKILL.md +115 -115
- package/skills/workflow/executing-plans/SKILL.md +70 -70
- package/skills/workflow/finishing-a-development-branch/SKILL.md +200 -200
- package/skills/workflow/receiving-code-review/SKILL.md +213 -213
- package/skills/workflow/requesting-code-review/SKILL.md +105 -105
- package/skills/workflow/requesting-code-review/code-reviewer.md +146 -146
- package/skills/workflow/requirement-engineering/SKILL.md +111 -111
- package/skills/workflow/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/workflow/systematic-debugging/SKILL.md +296 -296
- package/skills/workflow/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/workflow/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/workflow/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/workflow/systematic-debugging/find-polluter.sh +63 -63
- package/skills/workflow/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/workflow/systematic-debugging/test-academic.md +14 -14
- package/skills/workflow/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/workflow/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/workflow/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/workflow/using-git-worktrees/SKILL.md +218 -218
- package/skills/workflow/verification-before-completion/SKILL.md +139 -139
- package/skills/workflow/writing-plans/SKILL.md +151 -151
- package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -49
- package/skills/workflow/writing-skills/SKILL.md +655 -655
- package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -1150
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
- package/skills/workflow/writing-skills/persuasion-principles.md +187 -187
- package/skills/workflow/writing-skills/render-graphs.js +168 -168
- package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -384
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tdd-guide
|
|
3
|
-
description: Test-driven development workflow with test generation, coverage analysis, and multi-framework support
|
|
4
|
-
source: SkillsMP技能市场 - TDD测试驱动开发指南
|
|
5
|
-
author: aiGroup团队定制
|
|
6
|
-
version: v1.0
|
|
7
|
-
license: MIT
|
|
8
|
-
triggers:
|
|
9
|
-
- generate tests
|
|
10
|
-
- analyze coverage
|
|
11
|
-
- TDD workflow
|
|
12
|
-
- red green refactor
|
|
13
|
-
- Jest tests
|
|
14
|
-
- Pytest tests
|
|
15
|
-
- JUnit tests
|
|
16
|
-
- coverage report
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
# TDD Guide
|
|
20
|
-
|
|
21
|
-
Test-driven development skill for generating tests, analyzing coverage, and guiding red-green-refactor workflows across Jest, Pytest, JUnit, and Vitest.
|
|
22
|
-
|
|
23
|
-
## Table of Contents
|
|
24
|
-
|
|
25
|
-
- [Capabilities](#capabilities)
|
|
26
|
-
- [Workflows](#workflows)
|
|
27
|
-
- [Tools](#tools)
|
|
28
|
-
- [Input Requirements](#input-requirements)
|
|
29
|
-
- [Limitations](#limitations)
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Capabilities
|
|
34
|
-
|
|
35
|
-
| Capability | Description |
|
|
36
|
-
|------------|-------------|
|
|
37
|
-
| Test Generation | Convert requirements or code into test cases with proper structure |
|
|
38
|
-
| Coverage Analysis | Parse LCOV/JSON/XML reports, identify gaps, prioritize fixes |
|
|
39
|
-
| TDD Workflow | Guide red-green-refactor cycles with validation |
|
|
40
|
-
| Framework Adapters | Generate tests for Jest, Pytest, JUnit, Vitest, Mocha |
|
|
41
|
-
| Quality Scoring | Assess test isolation, assertions, naming, detect test smells |
|
|
42
|
-
| Fixture Generation | Create realistic test data, mocks, and factories |
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Workflows
|
|
47
|
-
|
|
48
|
-
### Generate Tests from Code
|
|
49
|
-
|
|
50
|
-
1. Provide source code (TypeScript, JavaScript, Python, Java)
|
|
51
|
-
2. Specify target framework (Jest, Pytest, JUnit, Vitest)
|
|
52
|
-
3. Run `test_generator.py` with requirements
|
|
53
|
-
4. Review generated test stubs
|
|
54
|
-
5. **Validation:** Tests compile and cover happy path, error cases, edge cases
|
|
55
|
-
|
|
56
|
-
### Analyze Coverage Gaps
|
|
57
|
-
|
|
58
|
-
1. Generate coverage report from test runner (`npm test -- --coverage`)
|
|
59
|
-
2. Run `coverage_analyzer.py` on LCOV/JSON/XML report
|
|
60
|
-
3. Review prioritized gaps (P0/P1/P2)
|
|
61
|
-
4. Generate missing tests for uncovered paths
|
|
62
|
-
5. **Validation:** Coverage meets target threshold (typically 80%+)
|
|
63
|
-
|
|
64
|
-
### TDD New Feature
|
|
65
|
-
|
|
66
|
-
1. Write failing test first (RED)
|
|
67
|
-
2. Run `tdd_workflow.py --phase red` to validate
|
|
68
|
-
3. Implement minimal code to pass (GREEN)
|
|
69
|
-
4. Run `tdd_workflow.py --phase green` to validate
|
|
70
|
-
5. Refactor while keeping tests green (REFACTOR)
|
|
71
|
-
6. **Validation:** All tests pass after each cycle
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Tools
|
|
76
|
-
|
|
77
|
-
| Tool | Purpose | Usage |
|
|
78
|
-
|------|---------|-------|
|
|
79
|
-
| `test_generator.py` | Generate test cases from code/requirements | `python scripts/test_generator.py --input source.py --framework pytest` |
|
|
80
|
-
| `coverage_analyzer.py` | Parse and analyze coverage reports | `python scripts/coverage_analyzer.py --report lcov.info --threshold 80` |
|
|
81
|
-
| `tdd_workflow.py` | Guide red-green-refactor cycles | `python scripts/tdd_workflow.py --phase red --test test_auth.py` |
|
|
82
|
-
| `framework_adapter.py` | Convert tests between frameworks | `python scripts/framework_adapter.py --from jest --to pytest` |
|
|
83
|
-
| `fixture_generator.py` | Generate test data and mocks | `python scripts/fixture_generator.py --entity User --count 5` |
|
|
84
|
-
| `metrics_calculator.py` | Calculate test quality metrics | `python scripts/metrics_calculator.py --tests tests/` |
|
|
85
|
-
| `format_detector.py` | Detect language and framework | `python scripts/format_detector.py --file source.ts` |
|
|
86
|
-
| `output_formatter.py` | Format output for CLI/desktop/CI | `python scripts/output_formatter.py --format markdown` |
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Input Requirements
|
|
91
|
-
|
|
92
|
-
**For Test Generation:**
|
|
93
|
-
- Source code (file path or pasted content)
|
|
94
|
-
- Target framework (Jest, Pytest, JUnit, Vitest)
|
|
95
|
-
- Coverage scope (unit, integration, edge cases)
|
|
96
|
-
|
|
97
|
-
**For Coverage Analysis:**
|
|
98
|
-
- Coverage report file (LCOV, JSON, or XML format)
|
|
99
|
-
- Optional: Source code for context
|
|
100
|
-
- Optional: Target threshold percentage
|
|
101
|
-
|
|
102
|
-
**For TDD Workflow:**
|
|
103
|
-
- Feature requirements or user story
|
|
104
|
-
- Current phase (RED, GREEN, REFACTOR)
|
|
105
|
-
- Test code and implementation status
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Limitations
|
|
110
|
-
|
|
111
|
-
| Scope | Details |
|
|
112
|
-
|-------|---------|
|
|
113
|
-
| Unit test focus | Integration and E2E tests require different patterns |
|
|
114
|
-
| Static analysis | Cannot execute tests or measure runtime behavior |
|
|
115
|
-
| Language support | Best for TypeScript, JavaScript, Python, Java |
|
|
116
|
-
| Report formats | LCOV, JSON, XML only; other formats need conversion |
|
|
117
|
-
| Generated tests | Provide scaffolding; require human review for complex logic |
|
|
118
|
-
|
|
119
|
-
**When to use other tools:**
|
|
120
|
-
- E2E testing: Playwright, Cypress, Selenium
|
|
121
|
-
- Performance testing: k6, JMeter, Locust
|
|
122
|
-
- Security testing: OWASP ZAP, Burp Suite
|
|
1
|
+
---
|
|
2
|
+
name: tdd-guide
|
|
3
|
+
description: Test-driven development workflow with test generation, coverage analysis, and multi-framework support
|
|
4
|
+
source: SkillsMP技能市场 - TDD测试驱动开发指南
|
|
5
|
+
author: aiGroup团队定制
|
|
6
|
+
version: v1.0
|
|
7
|
+
license: MIT
|
|
8
|
+
triggers:
|
|
9
|
+
- generate tests
|
|
10
|
+
- analyze coverage
|
|
11
|
+
- TDD workflow
|
|
12
|
+
- red green refactor
|
|
13
|
+
- Jest tests
|
|
14
|
+
- Pytest tests
|
|
15
|
+
- JUnit tests
|
|
16
|
+
- coverage report
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# TDD Guide
|
|
20
|
+
|
|
21
|
+
Test-driven development skill for generating tests, analyzing coverage, and guiding red-green-refactor workflows across Jest, Pytest, JUnit, and Vitest.
|
|
22
|
+
|
|
23
|
+
## Table of Contents
|
|
24
|
+
|
|
25
|
+
- [Capabilities](#capabilities)
|
|
26
|
+
- [Workflows](#workflows)
|
|
27
|
+
- [Tools](#tools)
|
|
28
|
+
- [Input Requirements](#input-requirements)
|
|
29
|
+
- [Limitations](#limitations)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Capabilities
|
|
34
|
+
|
|
35
|
+
| Capability | Description |
|
|
36
|
+
|------------|-------------|
|
|
37
|
+
| Test Generation | Convert requirements or code into test cases with proper structure |
|
|
38
|
+
| Coverage Analysis | Parse LCOV/JSON/XML reports, identify gaps, prioritize fixes |
|
|
39
|
+
| TDD Workflow | Guide red-green-refactor cycles with validation |
|
|
40
|
+
| Framework Adapters | Generate tests for Jest, Pytest, JUnit, Vitest, Mocha |
|
|
41
|
+
| Quality Scoring | Assess test isolation, assertions, naming, detect test smells |
|
|
42
|
+
| Fixture Generation | Create realistic test data, mocks, and factories |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Workflows
|
|
47
|
+
|
|
48
|
+
### Generate Tests from Code
|
|
49
|
+
|
|
50
|
+
1. Provide source code (TypeScript, JavaScript, Python, Java)
|
|
51
|
+
2. Specify target framework (Jest, Pytest, JUnit, Vitest)
|
|
52
|
+
3. Run `test_generator.py` with requirements
|
|
53
|
+
4. Review generated test stubs
|
|
54
|
+
5. **Validation:** Tests compile and cover happy path, error cases, edge cases
|
|
55
|
+
|
|
56
|
+
### Analyze Coverage Gaps
|
|
57
|
+
|
|
58
|
+
1. Generate coverage report from test runner (`npm test -- --coverage`)
|
|
59
|
+
2. Run `coverage_analyzer.py` on LCOV/JSON/XML report
|
|
60
|
+
3. Review prioritized gaps (P0/P1/P2)
|
|
61
|
+
4. Generate missing tests for uncovered paths
|
|
62
|
+
5. **Validation:** Coverage meets target threshold (typically 80%+)
|
|
63
|
+
|
|
64
|
+
### TDD New Feature
|
|
65
|
+
|
|
66
|
+
1. Write failing test first (RED)
|
|
67
|
+
2. Run `tdd_workflow.py --phase red` to validate
|
|
68
|
+
3. Implement minimal code to pass (GREEN)
|
|
69
|
+
4. Run `tdd_workflow.py --phase green` to validate
|
|
70
|
+
5. Refactor while keeping tests green (REFACTOR)
|
|
71
|
+
6. **Validation:** All tests pass after each cycle
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Tools
|
|
76
|
+
|
|
77
|
+
| Tool | Purpose | Usage |
|
|
78
|
+
|------|---------|-------|
|
|
79
|
+
| `test_generator.py` | Generate test cases from code/requirements | `python scripts/test_generator.py --input source.py --framework pytest` |
|
|
80
|
+
| `coverage_analyzer.py` | Parse and analyze coverage reports | `python scripts/coverage_analyzer.py --report lcov.info --threshold 80` |
|
|
81
|
+
| `tdd_workflow.py` | Guide red-green-refactor cycles | `python scripts/tdd_workflow.py --phase red --test test_auth.py` |
|
|
82
|
+
| `framework_adapter.py` | Convert tests between frameworks | `python scripts/framework_adapter.py --from jest --to pytest` |
|
|
83
|
+
| `fixture_generator.py` | Generate test data and mocks | `python scripts/fixture_generator.py --entity User --count 5` |
|
|
84
|
+
| `metrics_calculator.py` | Calculate test quality metrics | `python scripts/metrics_calculator.py --tests tests/` |
|
|
85
|
+
| `format_detector.py` | Detect language and framework | `python scripts/format_detector.py --file source.ts` |
|
|
86
|
+
| `output_formatter.py` | Format output for CLI/desktop/CI | `python scripts/output_formatter.py --format markdown` |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Input Requirements
|
|
91
|
+
|
|
92
|
+
**For Test Generation:**
|
|
93
|
+
- Source code (file path or pasted content)
|
|
94
|
+
- Target framework (Jest, Pytest, JUnit, Vitest)
|
|
95
|
+
- Coverage scope (unit, integration, edge cases)
|
|
96
|
+
|
|
97
|
+
**For Coverage Analysis:**
|
|
98
|
+
- Coverage report file (LCOV, JSON, or XML format)
|
|
99
|
+
- Optional: Source code for context
|
|
100
|
+
- Optional: Target threshold percentage
|
|
101
|
+
|
|
102
|
+
**For TDD Workflow:**
|
|
103
|
+
- Feature requirements or user story
|
|
104
|
+
- Current phase (RED, GREEN, REFACTOR)
|
|
105
|
+
- Test code and implementation status
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Limitations
|
|
110
|
+
|
|
111
|
+
| Scope | Details |
|
|
112
|
+
|-------|---------|
|
|
113
|
+
| Unit test focus | Integration and E2E tests require different patterns |
|
|
114
|
+
| Static analysis | Cannot execute tests or measure runtime behavior |
|
|
115
|
+
| Language support | Best for TypeScript, JavaScript, Python, Java |
|
|
116
|
+
| Report formats | LCOV, JSON, XML only; other formats need conversion |
|
|
117
|
+
| Generated tests | Provide scaffolding; require human review for complex logic |
|
|
118
|
+
|
|
119
|
+
**When to use other tools:**
|
|
120
|
+
- E2E testing: Playwright, Cypress, Selenium
|
|
121
|
+
- Performance testing: k6, JMeter, Locust
|
|
122
|
+
- Security testing: OWASP ZAP, Burp Suite
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
{
|
|
2
|
-
"test_generation": {
|
|
3
|
-
"generated_tests": [
|
|
4
|
-
{
|
|
5
|
-
"name": "should_validate_password_length_successfully",
|
|
6
|
-
"type": "happy_path",
|
|
7
|
-
"priority": "P0",
|
|
8
|
-
"framework": "jest",
|
|
9
|
-
"code": "it('should validate password with sufficient length', () => {\n const validator = new PasswordValidator();\n const result = validator.validate('Test@123');\n expect(result).toBe(true);\n});"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"name": "should_handle_too_short_password",
|
|
13
|
-
"type": "error_case",
|
|
14
|
-
"priority": "P0",
|
|
15
|
-
"framework": "jest",
|
|
16
|
-
"code": "it('should reject password shorter than 8 characters', () => {\n const validator = new PasswordValidator();\n const result = validator.validate('Test@1');\n expect(result).toBe(false);\n});"
|
|
17
|
-
}
|
|
18
|
-
],
|
|
19
|
-
"test_file": "password-validator.test.ts",
|
|
20
|
-
"total_tests_generated": 8
|
|
21
|
-
},
|
|
22
|
-
"coverage_analysis": {
|
|
23
|
-
"summary": {
|
|
24
|
-
"line_coverage": 100.0,
|
|
25
|
-
"branch_coverage": 100.0,
|
|
26
|
-
"function_coverage": 100.0,
|
|
27
|
-
"total_lines": 20,
|
|
28
|
-
"covered_lines": 20,
|
|
29
|
-
"total_branches": 12,
|
|
30
|
-
"covered_branches": 12
|
|
31
|
-
},
|
|
32
|
-
"gaps": [],
|
|
33
|
-
"assessment": "Excellent coverage - all paths tested"
|
|
34
|
-
},
|
|
35
|
-
"metrics": {
|
|
36
|
-
"complexity": {
|
|
37
|
-
"cyclomatic_complexity": 6,
|
|
38
|
-
"cognitive_complexity": 8,
|
|
39
|
-
"testability_score": 85.0,
|
|
40
|
-
"assessment": "Medium complexity - moderately testable"
|
|
41
|
-
},
|
|
42
|
-
"test_quality": {
|
|
43
|
-
"total_tests": 8,
|
|
44
|
-
"total_assertions": 16,
|
|
45
|
-
"avg_assertions_per_test": 2.0,
|
|
46
|
-
"isolation_score": 95.0,
|
|
47
|
-
"naming_quality": 87.5,
|
|
48
|
-
"quality_score": 88.0,
|
|
49
|
-
"test_smells": []
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"recommendations": [
|
|
53
|
-
{
|
|
54
|
-
"priority": "P1",
|
|
55
|
-
"type": "edge_case_coverage",
|
|
56
|
-
"message": "Consider adding boundary value tests",
|
|
57
|
-
"action": "Add tests for exact boundary conditions (7 vs 8 characters)",
|
|
58
|
-
"impact": "medium"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"priority": "P2",
|
|
62
|
-
"type": "test_organization",
|
|
63
|
-
"message": "Group related tests using describe blocks",
|
|
64
|
-
"action": "Organize tests by feature (length validation, complexity validation)",
|
|
65
|
-
"impact": "low"
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
"tdd_workflow": {
|
|
69
|
-
"current_phase": "GREEN",
|
|
70
|
-
"status": "Tests passing, ready for refactoring",
|
|
71
|
-
"next_steps": [
|
|
72
|
-
"Review code for duplication",
|
|
73
|
-
"Consider extracting validation rules",
|
|
74
|
-
"Commit changes"
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"test_generation": {
|
|
3
|
+
"generated_tests": [
|
|
4
|
+
{
|
|
5
|
+
"name": "should_validate_password_length_successfully",
|
|
6
|
+
"type": "happy_path",
|
|
7
|
+
"priority": "P0",
|
|
8
|
+
"framework": "jest",
|
|
9
|
+
"code": "it('should validate password with sufficient length', () => {\n const validator = new PasswordValidator();\n const result = validator.validate('Test@123');\n expect(result).toBe(true);\n});"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "should_handle_too_short_password",
|
|
13
|
+
"type": "error_case",
|
|
14
|
+
"priority": "P0",
|
|
15
|
+
"framework": "jest",
|
|
16
|
+
"code": "it('should reject password shorter than 8 characters', () => {\n const validator = new PasswordValidator();\n const result = validator.validate('Test@1');\n expect(result).toBe(false);\n});"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"test_file": "password-validator.test.ts",
|
|
20
|
+
"total_tests_generated": 8
|
|
21
|
+
},
|
|
22
|
+
"coverage_analysis": {
|
|
23
|
+
"summary": {
|
|
24
|
+
"line_coverage": 100.0,
|
|
25
|
+
"branch_coverage": 100.0,
|
|
26
|
+
"function_coverage": 100.0,
|
|
27
|
+
"total_lines": 20,
|
|
28
|
+
"covered_lines": 20,
|
|
29
|
+
"total_branches": 12,
|
|
30
|
+
"covered_branches": 12
|
|
31
|
+
},
|
|
32
|
+
"gaps": [],
|
|
33
|
+
"assessment": "Excellent coverage - all paths tested"
|
|
34
|
+
},
|
|
35
|
+
"metrics": {
|
|
36
|
+
"complexity": {
|
|
37
|
+
"cyclomatic_complexity": 6,
|
|
38
|
+
"cognitive_complexity": 8,
|
|
39
|
+
"testability_score": 85.0,
|
|
40
|
+
"assessment": "Medium complexity - moderately testable"
|
|
41
|
+
},
|
|
42
|
+
"test_quality": {
|
|
43
|
+
"total_tests": 8,
|
|
44
|
+
"total_assertions": 16,
|
|
45
|
+
"avg_assertions_per_test": 2.0,
|
|
46
|
+
"isolation_score": 95.0,
|
|
47
|
+
"naming_quality": 87.5,
|
|
48
|
+
"quality_score": 88.0,
|
|
49
|
+
"test_smells": []
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"recommendations": [
|
|
53
|
+
{
|
|
54
|
+
"priority": "P1",
|
|
55
|
+
"type": "edge_case_coverage",
|
|
56
|
+
"message": "Consider adding boundary value tests",
|
|
57
|
+
"action": "Add tests for exact boundary conditions (7 vs 8 characters)",
|
|
58
|
+
"impact": "medium"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"priority": "P2",
|
|
62
|
+
"type": "test_organization",
|
|
63
|
+
"message": "Group related tests using describe blocks",
|
|
64
|
+
"action": "Organize tests by feature (length validation, complexity validation)",
|
|
65
|
+
"impact": "low"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"tdd_workflow": {
|
|
69
|
+
"current_phase": "GREEN",
|
|
70
|
+
"status": "Tests passing, ready for refactoring",
|
|
71
|
+
"next_steps": [
|
|
72
|
+
"Review code for duplication",
|
|
73
|
+
"Consider extracting validation rules",
|
|
74
|
+
"Commit changes"
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "python",
|
|
3
|
-
"framework": "pytest",
|
|
4
|
-
"source_code": "def calculate_discount(price: float, discount_percent: float) -> float:\n \"\"\"Calculate discounted price.\"\"\"\n if price < 0:\n raise ValueError(\"Price cannot be negative\")\n if discount_percent < 0 or discount_percent > 100:\n raise ValueError(\"Discount must be between 0 and 100\")\n \n discount_amount = price * (discount_percent / 100)\n return round(price - discount_amount, 2)",
|
|
5
|
-
"requirements": {
|
|
6
|
-
"user_stories": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Calculate discounted price for valid inputs",
|
|
9
|
-
"action": "calculate_discount",
|
|
10
|
-
"given": ["Price is 100", "Discount is 20%"],
|
|
11
|
-
"when": "Discount is calculated",
|
|
12
|
-
"then": "Return 80.00",
|
|
13
|
-
"error_conditions": [
|
|
14
|
-
{
|
|
15
|
-
"condition": "negative_price",
|
|
16
|
-
"description": "Price is negative",
|
|
17
|
-
"error_type": "ValueError"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"condition": "invalid_discount",
|
|
21
|
-
"description": "Discount is out of range",
|
|
22
|
-
"error_type": "ValueError"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"edge_cases": [
|
|
26
|
-
{
|
|
27
|
-
"scenario": "zero_discount",
|
|
28
|
-
"description": "Discount is 0%"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"scenario": "full_discount",
|
|
32
|
-
"description": "Discount is 100%"
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
"coverage_threshold": 90
|
|
39
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "python",
|
|
3
|
+
"framework": "pytest",
|
|
4
|
+
"source_code": "def calculate_discount(price: float, discount_percent: float) -> float:\n \"\"\"Calculate discounted price.\"\"\"\n if price < 0:\n raise ValueError(\"Price cannot be negative\")\n if discount_percent < 0 or discount_percent > 100:\n raise ValueError(\"Discount must be between 0 and 100\")\n \n discount_amount = price * (discount_percent / 100)\n return round(price - discount_amount, 2)",
|
|
5
|
+
"requirements": {
|
|
6
|
+
"user_stories": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Calculate discounted price for valid inputs",
|
|
9
|
+
"action": "calculate_discount",
|
|
10
|
+
"given": ["Price is 100", "Discount is 20%"],
|
|
11
|
+
"when": "Discount is calculated",
|
|
12
|
+
"then": "Return 80.00",
|
|
13
|
+
"error_conditions": [
|
|
14
|
+
{
|
|
15
|
+
"condition": "negative_price",
|
|
16
|
+
"description": "Price is negative",
|
|
17
|
+
"error_type": "ValueError"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"condition": "invalid_discount",
|
|
21
|
+
"description": "Discount is out of range",
|
|
22
|
+
"error_type": "ValueError"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"edge_cases": [
|
|
26
|
+
{
|
|
27
|
+
"scenario": "zero_discount",
|
|
28
|
+
"description": "Discount is 0%"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"scenario": "full_discount",
|
|
32
|
+
"description": "Discount is 100%"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"coverage_threshold": 90
|
|
39
|
+
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "typescript",
|
|
3
|
-
"framework": "jest",
|
|
4
|
-
"source_code": "export class PasswordValidator {\n validate(password: string): boolean {\n if (password.length < 8) return false;\n if (!/[A-Z]/.test(password)) return false;\n if (!/[a-z]/.test(password)) return false;\n if (!/[0-9]/.test(password)) return false;\n if (!/[!@#$%^&*]/.test(password)) return false;\n return true;\n }\n}",
|
|
5
|
-
"requirements": {
|
|
6
|
-
"user_stories": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Password must be at least 8 characters long",
|
|
9
|
-
"action": "validate_password_length",
|
|
10
|
-
"given": ["User provides password"],
|
|
11
|
-
"when": "Password is validated",
|
|
12
|
-
"then": "Reject if less than 8 characters"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"description": "Password must contain uppercase, lowercase, number, and special character",
|
|
16
|
-
"action": "validate_password_complexity",
|
|
17
|
-
"given": ["User provides password"],
|
|
18
|
-
"when": "Password is validated",
|
|
19
|
-
"then": "Reject if missing any character type"
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
"acceptance_criteria": [
|
|
23
|
-
{
|
|
24
|
-
"id": "AC1",
|
|
25
|
-
"description": "Valid password: 'Test@123'",
|
|
26
|
-
"verification_steps": ["Call validate with 'Test@123'", "Should return true"]
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"id": "AC2",
|
|
30
|
-
"description": "Invalid password: 'test' (too short)",
|
|
31
|
-
"verification_steps": ["Call validate with 'test'", "Should return false"]
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
},
|
|
35
|
-
"coverage_threshold": 80
|
|
36
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "typescript",
|
|
3
|
+
"framework": "jest",
|
|
4
|
+
"source_code": "export class PasswordValidator {\n validate(password: string): boolean {\n if (password.length < 8) return false;\n if (!/[A-Z]/.test(password)) return false;\n if (!/[a-z]/.test(password)) return false;\n if (!/[0-9]/.test(password)) return false;\n if (!/[!@#$%^&*]/.test(password)) return false;\n return true;\n }\n}",
|
|
5
|
+
"requirements": {
|
|
6
|
+
"user_stories": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Password must be at least 8 characters long",
|
|
9
|
+
"action": "validate_password_length",
|
|
10
|
+
"given": ["User provides password"],
|
|
11
|
+
"when": "Password is validated",
|
|
12
|
+
"then": "Reject if less than 8 characters"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"description": "Password must contain uppercase, lowercase, number, and special character",
|
|
16
|
+
"action": "validate_password_complexity",
|
|
17
|
+
"given": ["User provides password"],
|
|
18
|
+
"when": "Password is validated",
|
|
19
|
+
"then": "Reject if missing any character type"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"acceptance_criteria": [
|
|
23
|
+
{
|
|
24
|
+
"id": "AC1",
|
|
25
|
+
"description": "Valid password: 'Test@123'",
|
|
26
|
+
"verification_steps": ["Call validate with 'Test@123'", "Should return true"]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "AC2",
|
|
30
|
+
"description": "Invalid password: 'test' (too short)",
|
|
31
|
+
"verification_steps": ["Call validate with 'test'", "Should return false"]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"coverage_threshold": 80
|
|
36
|
+
}
|