agentic-qe 3.7.9 → 3.7.11
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/skills/.validation/README.md +111 -111
- package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
- package/.claude/skills/.validation/examples/performance-testing-output.example.json +252 -252
- package/.claude/skills/.validation/examples/security-testing-output.example.json +413 -413
- package/.claude/skills/.validation/examples/testability-scoring-output.example.json +350 -350
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +462 -462
- package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
- package/.claude/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
- package/.claude/skills/.validation/schemas/skill-output.template.json +610 -610
- package/.claude/skills/.validation/skill-validation-mcp-integration.md +250 -250
- package/.claude/skills/.validation/templates/eval.template.yaml +366 -366
- package/.claude/skills/.validation/templates/schemas/output.json +145 -145
- package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
- package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
- package/.claude/skills/.validation/test-data/invalid-output.json +5 -5
- package/.claude/skills/.validation/test-data/minimal-output.json +9 -9
- package/.claude/skills/.validation/test-data/sample-output.json +73 -73
- package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
- package/.claude/skills/a11y-ally/schemas/output.json +549 -549
- package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
- package/.claude/skills/accessibility-testing/schemas/output.json +776 -776
- package/.claude/skills/accessibility-testing/test-data/sample-output.json +191 -191
- package/.claude/skills/agentic-quality-engineering/schemas/output.json +577 -577
- package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
- package/.claude/skills/api-testing-patterns/schemas/output.json +845 -845
- package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
- package/.claude/skills/brutal-honesty-review/schemas/output.json +291 -291
- package/.claude/skills/bug-reporting-excellence/schemas/output.json +288 -288
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
- package/.claude/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
- package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
- package/.claude/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
- package/.claude/skills/code-review-quality/schemas/output.json +264 -264
- package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
- package/.claude/skills/compatibility-testing/schemas/output.json +551 -551
- package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
- package/.claude/skills/compliance-testing/schemas/output.json +845 -845
- package/.claude/skills/consultancy-practices/schemas/output.json +282 -282
- package/.claude/skills/contract-testing/evals/contract-testing.yaml +748 -748
- package/.claude/skills/contract-testing/schemas/output.json +638 -638
- package/.claude/skills/database-testing/evals/database-testing.yaml +968 -968
- package/.claude/skills/database-testing/schemas/output.json +1446 -1446
- package/.claude/skills/debug-loop/SKILL.md +61 -61
- package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -735
- package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
- package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -74
- package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
- package/.claude/skills/iterative-loop/SKILL.md +371 -371
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +544 -544
- package/.claude/skills/localization-testing/schemas/output.json +325 -325
- package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -798
- package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
- package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -58
- package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
- package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
- package/.claude/skills/mobile-testing/schemas/output.json +318 -318
- package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
- package/.claude/skills/mutation-testing/schemas/output.json +707 -707
- package/.claude/skills/mutation-testing/test-data/sample-output.json +295 -295
- package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
- package/.claude/skills/n8n-expression-testing/schemas/output.json +369 -369
- package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
- package/.claude/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
- package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
- package/.claude/skills/n8n-security-testing/schemas/output.json +293 -293
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
- package/.claude/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
- package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
- package/.claude/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
- package/.claude/skills/observability-testing-patterns/SKILL.md +930 -930
- package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
- package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -58
- package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
- package/.claude/skills/pentest-validation/SKILL.md +268 -268
- package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
- package/.claude/skills/pentest-validation/schemas/output.json +281 -281
- package/.claude/skills/performance-analysis/evals/performance-analysis.yaml +144 -144
- package/.claude/skills/performance-analysis/schemas/output.json +588 -588
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +772 -772
- package/.claude/skills/performance-testing/schemas/output.json +1184 -1184
- package/.claude/skills/pr-review/SKILL.md +61 -61
- package/.claude/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
- package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
- package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
- package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
- package/.claude/skills/qcsd-development-swarm/SKILL.md +2154 -2154
- package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
- package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -72
- package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
- package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
- package/.claude/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
- package/.claude/skills/qcsd-production-swarm/SKILL.md +2781 -2781
- package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
- package/.claude/skills/qcsd-production-swarm/schemas/output.json +505 -505
- package/.claude/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
- package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
- package/.claude/skills/qe-chaos-resilience/schemas/output.json +314 -314
- package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
- package/.claude/skills/qe-code-intelligence/schemas/output.json +315 -315
- package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
- package/.claude/skills/qe-contract-testing/schemas/output.json +295 -295
- package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
- package/.claude/skills/qe-coverage-analysis/schemas/output.json +286 -286
- package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
- package/.claude/skills/qe-defect-intelligence/schemas/output.json +283 -283
- package/.claude/skills/qe-iterative-loop/schemas/output.json +264 -264
- package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
- package/.claude/skills/qe-learning-optimization/schemas/output.json +288 -288
- package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
- package/.claude/skills/qe-quality-assessment/schemas/output.json +550 -550
- package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
- package/.claude/skills/qe-requirements-validation/schemas/output.json +587 -587
- package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
- package/.claude/skills/qe-security-compliance/schemas/output.json +498 -498
- package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
- package/.claude/skills/qe-test-execution/schemas/output.json +529 -529
- package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
- package/.claude/skills/qe-test-generation/schemas/output.json +439 -439
- package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
- package/.claude/skills/qe-visual-accessibility/schemas/output.json +491 -491
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
- package/.claude/skills/quality-metrics/schemas/output.json +403 -403
- package/.claude/skills/refactoring-patterns/schemas/output.json +475 -475
- package/.claude/skills/regression-testing/evals/regression-testing.yaml +504 -504
- package/.claude/skills/regression-testing/schemas/output.json +311 -311
- package/.claude/skills/release/SKILL.md +347 -347
- package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
- package/.claude/skills/risk-based-testing/schemas/output.json +480 -480
- package/.claude/skills/security-testing/evals/security-testing.yaml +789 -789
- package/.claude/skills/security-testing/schemas/output.json +879 -879
- package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
- package/.claude/skills/security-visual-testing/schemas/output.json +486 -486
- package/.claude/skills/sfdipot-product-factors/SKILL.md +239 -239
- package/.claude/skills/sherlock-review/schemas/output.json +297 -297
- package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
- package/.claude/skills/shift-left-testing/schemas/output.json +459 -459
- package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
- package/.claude/skills/shift-right-testing/schemas/output.json +418 -418
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/tdd-london-chicago/schemas/output.json +444 -444
- package/.claude/skills/technical-writing/schemas/output.json +268 -268
- package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
- package/.claude/skills/test-automation-strategy/schemas/output.json +444 -444
- package/.claude/skills/test-data-management/evals/test-data-management.yaml +504 -504
- package/.claude/skills/test-data-management/schemas/output.json +284 -284
- package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
- package/.claude/skills/test-design-techniques/schemas/output.json +295 -295
- package/.claude/skills/test-environment-management/schemas/output.json +310 -310
- package/.claude/skills/test-idea-rewriting/SKILL.md +229 -229
- package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
- package/.claude/skills/test-reporting-analytics/schemas/output.json +329 -329
- package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
- package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -84
- package/.claude/skills/testability-scoring/schemas/output.json +606 -606
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
- package/.claude/skills/verification-quality/evals/verification-quality.yaml +150 -150
- package/.claude/skills/verification-quality/schemas/output.json +432 -432
- package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
- package/.claude/skills/visual-testing-advanced/schemas/output.json +294 -294
- package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
- package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -150
- package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
- package/CHANGELOG.md +36 -0
- package/README.md +171 -901
- package/assets/agents/v3/helpers/quality-criteria/evidence-classification.md +116 -116
- package/assets/agents/v3/helpers/quality-criteria/htsm-categories.md +139 -139
- package/assets/governance/constitution.md +202 -202
- package/assets/governance/shards/chaos-resilience.shard.md +221 -221
- package/assets/governance/shards/code-intelligence.shard.md +178 -178
- package/assets/governance/shards/contract-testing.shard.md +206 -206
- package/assets/governance/shards/coverage-analysis.shard.md +146 -146
- package/assets/governance/shards/defect-intelligence.shard.md +182 -182
- package/assets/governance/shards/learning-optimization.shard.md +248 -248
- package/assets/governance/shards/quality-assessment.shard.md +165 -165
- package/assets/governance/shards/requirements-validation.shard.md +177 -177
- package/assets/governance/shards/security-compliance.shard.md +196 -196
- package/assets/governance/shards/test-execution.shard.md +156 -156
- package/assets/governance/shards/test-generation.shard.md +128 -128
- package/assets/governance/shards/visual-accessibility.shard.md +209 -209
- package/assets/hooks/cross-phase-memory.yaml +253 -253
- package/assets/patterns/adr-051-booster-patterns.json +78 -78
- package/assets/patterns/adr-051-embedding-patterns.json +147 -147
- package/assets/patterns/adr-051-integration-summary.json +62 -62
- package/assets/patterns/adr-051-reasoning-patterns.json +166 -166
- package/assets/patterns/adr-051-router-patterns.json +113 -113
- package/assets/patterns/index.json +136 -136
- package/assets/skills/.validation/README.md +111 -111
- package/assets/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
- package/assets/skills/.validation/examples/performance-testing-output.example.json +252 -252
- package/assets/skills/.validation/examples/security-testing-output.example.json +413 -413
- package/assets/skills/.validation/examples/testability-scoring-output.example.json +350 -350
- package/assets/skills/.validation/schemas/skill-eval.schema.json +462 -462
- package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
- package/assets/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
- package/assets/skills/.validation/schemas/skill-output.template.json +610 -610
- package/assets/skills/.validation/skill-validation-mcp-integration.md +250 -250
- package/assets/skills/.validation/templates/eval.template.yaml +366 -366
- package/assets/skills/.validation/templates/schemas/output.json +145 -145
- package/assets/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
- package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
- package/assets/skills/.validation/test-data/invalid-output.json +5 -5
- package/assets/skills/.validation/test-data/minimal-output.json +9 -9
- package/assets/skills/.validation/test-data/sample-output.json +73 -73
- package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
- package/assets/skills/a11y-ally/schemas/output.json +549 -549
- package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
- package/assets/skills/accessibility-testing/schemas/output.json +776 -776
- package/assets/skills/accessibility-testing/test-data/sample-output.json +191 -191
- package/assets/skills/agentic-quality-engineering/schemas/output.json +577 -577
- package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
- package/assets/skills/api-testing-patterns/schemas/output.json +845 -845
- package/assets/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
- package/assets/skills/brutal-honesty-review/schemas/output.json +291 -291
- package/assets/skills/bug-reporting-excellence/schemas/output.json +288 -288
- package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
- package/assets/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
- package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
- package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
- package/assets/skills/code-review-quality/schemas/output.json +264 -264
- package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
- package/assets/skills/compatibility-testing/schemas/output.json +551 -551
- package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
- package/assets/skills/compliance-testing/schemas/output.json +845 -845
- package/assets/skills/consultancy-practices/schemas/output.json +282 -282
- package/assets/skills/contract-testing/evals/contract-testing.yaml +748 -748
- package/assets/skills/contract-testing/schemas/output.json +638 -638
- package/assets/skills/database-testing/evals/database-testing.yaml +968 -968
- package/assets/skills/database-testing/schemas/output.json +1446 -1446
- package/assets/skills/debug-loop/SKILL.md +61 -61
- package/assets/skills/enterprise-integration-testing/SKILL.md +735 -735
- package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
- package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -74
- package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
- package/assets/skills/localization-testing/evals/localization-testing.yaml +544 -544
- package/assets/skills/localization-testing/schemas/output.json +325 -325
- package/assets/skills/middleware-testing-patterns/SKILL.md +798 -798
- package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
- package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -58
- package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
- package/assets/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
- package/assets/skills/mobile-testing/schemas/output.json +318 -318
- package/assets/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
- package/assets/skills/mutation-testing/schemas/output.json +707 -707
- package/assets/skills/mutation-testing/test-data/sample-output.json +295 -295
- package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
- package/assets/skills/n8n-expression-testing/schemas/output.json +369 -369
- package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
- package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
- package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
- package/assets/skills/n8n-security-testing/schemas/output.json +293 -293
- package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
- package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
- package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
- package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
- package/assets/skills/observability-testing-patterns/SKILL.md +930 -930
- package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
- package/assets/skills/observability-testing-patterns/schemas/output.json +58 -58
- package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
- package/assets/skills/pentest-validation/SKILL.md +268 -268
- package/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
- package/assets/skills/pentest-validation/schemas/output.json +281 -281
- package/assets/skills/performance-testing/evals/performance-testing.yaml +772 -772
- package/assets/skills/performance-testing/schemas/output.json +1184 -1184
- package/assets/skills/pr-review/SKILL.md +61 -61
- package/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
- package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
- package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
- package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
- package/assets/skills/qcsd-development-swarm/SKILL.md +2154 -2154
- package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
- package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -72
- package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
- package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
- package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
- package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -2781
- package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
- package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -505
- package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
- package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
- package/assets/skills/qe-chaos-resilience/schemas/output.json +314 -314
- package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
- package/assets/skills/qe-code-intelligence/schemas/output.json +315 -315
- package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
- package/assets/skills/qe-contract-testing/schemas/output.json +295 -295
- package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
- package/assets/skills/qe-coverage-analysis/schemas/output.json +286 -286
- package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
- package/assets/skills/qe-defect-intelligence/schemas/output.json +283 -283
- package/assets/skills/qe-iterative-loop/schemas/output.json +264 -264
- package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
- package/assets/skills/qe-learning-optimization/schemas/output.json +288 -288
- package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
- package/assets/skills/qe-quality-assessment/schemas/output.json +550 -550
- package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
- package/assets/skills/qe-requirements-validation/schemas/output.json +587 -587
- package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
- package/assets/skills/qe-security-compliance/schemas/output.json +498 -498
- package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
- package/assets/skills/qe-test-execution/schemas/output.json +529 -529
- package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
- package/assets/skills/qe-test-generation/schemas/output.json +439 -439
- package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
- package/assets/skills/qe-visual-accessibility/schemas/output.json +491 -491
- package/assets/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
- package/assets/skills/quality-metrics/schemas/output.json +403 -403
- package/assets/skills/refactoring-patterns/schemas/output.json +475 -475
- package/assets/skills/regression-testing/evals/regression-testing.yaml +504 -504
- package/assets/skills/regression-testing/schemas/output.json +311 -311
- package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
- package/assets/skills/risk-based-testing/schemas/output.json +480 -480
- package/assets/skills/security-testing/evals/security-testing.yaml +789 -789
- package/assets/skills/security-testing/schemas/output.json +879 -879
- package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
- package/assets/skills/security-visual-testing/schemas/output.json +486 -486
- package/assets/skills/sfdipot-product-factors/SKILL.md +239 -239
- package/assets/skills/sherlock-review/schemas/output.json +297 -297
- package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
- package/assets/skills/shift-left-testing/schemas/output.json +459 -459
- package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
- package/assets/skills/shift-right-testing/schemas/output.json +418 -418
- package/assets/skills/tdd-london-chicago/schemas/output.json +444 -444
- package/assets/skills/technical-writing/schemas/output.json +268 -268
- package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
- package/assets/skills/test-automation-strategy/schemas/output.json +444 -444
- package/assets/skills/test-data-management/evals/test-data-management.yaml +504 -504
- package/assets/skills/test-data-management/schemas/output.json +284 -284
- package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
- package/assets/skills/test-design-techniques/schemas/output.json +295 -295
- package/assets/skills/test-environment-management/schemas/output.json +310 -310
- package/assets/skills/test-idea-rewriting/SKILL.md +229 -229
- package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
- package/assets/skills/test-reporting-analytics/schemas/output.json +329 -329
- package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
- package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -84
- package/assets/skills/testability-scoring/schemas/output.json +606 -606
- package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
- package/assets/skills/verification-quality/evals/verification-quality.yaml +150 -150
- package/assets/skills/verification-quality/schemas/output.json +432 -432
- package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
- package/assets/skills/visual-testing-advanced/schemas/output.json +294 -294
- package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
- package/assets/skills/wms-testing-patterns/schemas/output.json +150 -150
- package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
- package/assets/templates/validation-summary.json +56 -56
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts +1 -0
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts.map +1 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.js +16 -3
- package/dist/agents/claim-verifier/verifiers/output-verifier.js.map +1 -1
- package/dist/cli/bundle.js +488 -75
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +11 -9
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/governance/adversarial-defense-integration.d.ts +29 -0
- package/dist/governance/adversarial-defense-integration.d.ts.map +1 -1
- package/dist/governance/adversarial-defense-integration.js +85 -1
- package/dist/governance/adversarial-defense-integration.js.map +1 -1
- package/dist/governance/continue-gate-integration.d.ts +7 -5
- package/dist/governance/continue-gate-integration.d.ts.map +1 -1
- package/dist/governance/continue-gate-integration.js +72 -15
- package/dist/governance/continue-gate-integration.js.map +1 -1
- package/dist/governance/deterministic-gateway-integration.d.ts +5 -0
- package/dist/governance/deterministic-gateway-integration.d.ts.map +1 -1
- package/dist/governance/deterministic-gateway-integration.js +35 -1
- package/dist/governance/deterministic-gateway-integration.js.map +1 -1
- package/dist/governance/evolution-pipeline-integration.d.ts +5 -0
- package/dist/governance/evolution-pipeline-integration.d.ts.map +1 -1
- package/dist/governance/evolution-pipeline-integration.js +57 -1
- package/dist/governance/evolution-pipeline-integration.js.map +1 -1
- package/dist/governance/memory-write-gate-integration.d.ts +6 -3
- package/dist/governance/memory-write-gate-integration.d.ts.map +1 -1
- package/dist/governance/memory-write-gate-integration.js +48 -10
- package/dist/governance/memory-write-gate-integration.js.map +1 -1
- package/dist/governance/proof-envelope-integration.d.ts +1 -0
- package/dist/governance/proof-envelope-integration.d.ts.map +1 -1
- package/dist/governance/proof-envelope-integration.js +37 -0
- package/dist/governance/proof-envelope-integration.js.map +1 -1
- package/dist/governance/shard-retriever-integration.d.ts +10 -0
- package/dist/governance/shard-retriever-integration.d.ts.map +1 -1
- package/dist/governance/shard-retriever-integration.js +50 -1
- package/dist/governance/shard-retriever-integration.js.map +1 -1
- package/dist/governance/trust-accumulator-integration.d.ts +5 -0
- package/dist/governance/trust-accumulator-integration.d.ts.map +1 -1
- package/dist/governance/trust-accumulator-integration.js +35 -2
- package/dist/governance/trust-accumulator-integration.js.map +1 -1
- package/dist/init/phases/10-workers.js +2 -2
- package/dist/init/phases/10-workers.js.map +1 -1
- package/dist/mcp/bundle.js +478 -62
- package/dist/mcp/protocol-server.js +2 -2
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +1 -0
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/shared/language-detector.js +1 -1
- package/dist/shared/language-detector.js.map +1 -1
- package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -1
- package/dist/shared/parsers/multi-language-parser.js +55 -16
- package/dist/shared/parsers/multi-language-parser.js.map +1 -1
- package/dist/shared/sql-safety.d.ts.map +1 -1
- package/dist/shared/sql-safety.js +7 -1
- package/dist/shared/sql-safety.js.map +1 -1
- package/package.json +6 -2
- package/scripts/prepare-assets.sh +8 -0
|
@@ -1,748 +1,748 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# AQE Contract Testing Skill Evaluation Test Suite v1.0.0
|
|
3
|
-
# Per ADR-056 - Trust Tier 3 Validation
|
|
4
|
-
# =============================================================================
|
|
5
|
-
#
|
|
6
|
-
# This evaluation suite validates the contract-testing skill behavior:
|
|
7
|
-
# - Consumer-driven contract testing (Pact)
|
|
8
|
-
# - Provider verification
|
|
9
|
-
# - Breaking change detection
|
|
10
|
-
# - Semantic versioning recommendations
|
|
11
|
-
# - Spring Cloud Contract support
|
|
12
|
-
# - canIDeploy decision logic
|
|
13
|
-
# - Mock generation from contracts
|
|
14
|
-
#
|
|
15
|
-
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
16
|
-
# Runner: scripts/run-skill-eval.ts
|
|
17
|
-
#
|
|
18
|
-
# =============================================================================
|
|
19
|
-
|
|
20
|
-
skill: contract-testing
|
|
21
|
-
version: 1.0.0
|
|
22
|
-
description: >
|
|
23
|
-
Comprehensive evaluation suite for the contract-testing skill.
|
|
24
|
-
Tests consumer-driven contracts, provider verification, breaking change
|
|
25
|
-
detection, versioning recommendations, and CI/CD integration patterns
|
|
26
|
-
across multiple models.
|
|
27
|
-
|
|
28
|
-
# =============================================================================
|
|
29
|
-
# Multi-Model Configuration
|
|
30
|
-
# =============================================================================
|
|
31
|
-
|
|
32
|
-
models_to_test:
|
|
33
|
-
- claude-sonnet-4 # Primary model (high accuracy expected)
|
|
34
|
-
- claude-3-haiku # Fast model (minimum quality bar)
|
|
35
|
-
- gpt-4o # Cross-vendor validation
|
|
36
|
-
|
|
37
|
-
# =============================================================================
|
|
38
|
-
# MCP Integration Configuration
|
|
39
|
-
# =============================================================================
|
|
40
|
-
|
|
41
|
-
mcp_integration:
|
|
42
|
-
enabled: true
|
|
43
|
-
namespace: skill-validation
|
|
44
|
-
|
|
45
|
-
query_patterns: true
|
|
46
|
-
track_outcomes: true
|
|
47
|
-
store_patterns: true
|
|
48
|
-
share_learning: true
|
|
49
|
-
update_quality_gate: true
|
|
50
|
-
|
|
51
|
-
target_agents:
|
|
52
|
-
- qe-learning-coordinator
|
|
53
|
-
- qe-queen-coordinator
|
|
54
|
-
- qe-api-contract-validator
|
|
55
|
-
|
|
56
|
-
# =============================================================================
|
|
57
|
-
# ReasoningBank Learning Configuration
|
|
58
|
-
# =============================================================================
|
|
59
|
-
|
|
60
|
-
learning:
|
|
61
|
-
store_success_patterns: true
|
|
62
|
-
store_failure_patterns: true
|
|
63
|
-
pattern_ttl_days: 90
|
|
64
|
-
min_confidence_to_store: 0.7
|
|
65
|
-
cross_model_comparison: true
|
|
66
|
-
|
|
67
|
-
# =============================================================================
|
|
68
|
-
# Result Format Configuration
|
|
69
|
-
# =============================================================================
|
|
70
|
-
|
|
71
|
-
result_format:
|
|
72
|
-
json_output: true
|
|
73
|
-
markdown_report: true
|
|
74
|
-
include_raw_output: false
|
|
75
|
-
include_timing: true
|
|
76
|
-
include_token_usage: true
|
|
77
|
-
|
|
78
|
-
# =============================================================================
|
|
79
|
-
# Environment Setup
|
|
80
|
-
# =============================================================================
|
|
81
|
-
|
|
82
|
-
setup:
|
|
83
|
-
required_tools:
|
|
84
|
-
- jq
|
|
85
|
-
environment_variables:
|
|
86
|
-
AQE_VALIDATION_MODE: "eval"
|
|
87
|
-
fixtures:
|
|
88
|
-
- name: sample_pact_file
|
|
89
|
-
path: fixtures/pact-sample.json
|
|
90
|
-
content: |
|
|
91
|
-
{
|
|
92
|
-
"consumer": { "name": "CheckoutUI" },
|
|
93
|
-
"provider": { "name": "OrderService" },
|
|
94
|
-
"interactions": [
|
|
95
|
-
{
|
|
96
|
-
"description": "a request to create an order",
|
|
97
|
-
"providerState": "products exist",
|
|
98
|
-
"request": {
|
|
99
|
-
"method": "POST",
|
|
100
|
-
"path": "/orders",
|
|
101
|
-
"headers": { "Content-Type": "application/json" },
|
|
102
|
-
"body": { "productId": "abc-123", "quantity": 2 }
|
|
103
|
-
},
|
|
104
|
-
"response": {
|
|
105
|
-
"status": 201,
|
|
106
|
-
"headers": { "Content-Type": "application/json" },
|
|
107
|
-
"body": {
|
|
108
|
-
"orderId": "order-456",
|
|
109
|
-
"total": 19.99
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
],
|
|
114
|
-
"metadata": {
|
|
115
|
-
"pactSpecification": { "version": "4.0" }
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
- name: sample_openapi_v1
|
|
119
|
-
path: fixtures/openapi-v1.yaml
|
|
120
|
-
content: |
|
|
121
|
-
openapi: "3.0.3"
|
|
122
|
-
info:
|
|
123
|
-
title: Order API
|
|
124
|
-
version: "1.0.0"
|
|
125
|
-
paths:
|
|
126
|
-
/orders:
|
|
127
|
-
post:
|
|
128
|
-
operationId: createOrder
|
|
129
|
-
requestBody:
|
|
130
|
-
content:
|
|
131
|
-
application/json:
|
|
132
|
-
schema:
|
|
133
|
-
$ref: '#/components/schemas/CreateOrderRequest'
|
|
134
|
-
responses:
|
|
135
|
-
"201":
|
|
136
|
-
description: Order created
|
|
137
|
-
content:
|
|
138
|
-
application/json:
|
|
139
|
-
schema:
|
|
140
|
-
$ref: '#/components/schemas/Order'
|
|
141
|
-
components:
|
|
142
|
-
schemas:
|
|
143
|
-
CreateOrderRequest:
|
|
144
|
-
type: object
|
|
145
|
-
required: [productId, quantity]
|
|
146
|
-
properties:
|
|
147
|
-
productId:
|
|
148
|
-
type: string
|
|
149
|
-
quantity:
|
|
150
|
-
type: integer
|
|
151
|
-
Order:
|
|
152
|
-
type: object
|
|
153
|
-
properties:
|
|
154
|
-
orderId:
|
|
155
|
-
type: string
|
|
156
|
-
total:
|
|
157
|
-
type: number
|
|
158
|
-
discount:
|
|
159
|
-
type: number
|
|
160
|
-
- name: sample_openapi_v2
|
|
161
|
-
path: fixtures/openapi-v2.yaml
|
|
162
|
-
content: |
|
|
163
|
-
openapi: "3.0.3"
|
|
164
|
-
info:
|
|
165
|
-
title: Order API
|
|
166
|
-
version: "2.0.0"
|
|
167
|
-
paths:
|
|
168
|
-
/orders:
|
|
169
|
-
post:
|
|
170
|
-
operationId: createOrder
|
|
171
|
-
requestBody:
|
|
172
|
-
content:
|
|
173
|
-
application/json:
|
|
174
|
-
schema:
|
|
175
|
-
$ref: '#/components/schemas/CreateOrderRequest'
|
|
176
|
-
responses:
|
|
177
|
-
"201":
|
|
178
|
-
description: Order created
|
|
179
|
-
content:
|
|
180
|
-
application/json:
|
|
181
|
-
schema:
|
|
182
|
-
$ref: '#/components/schemas/Order'
|
|
183
|
-
components:
|
|
184
|
-
schemas:
|
|
185
|
-
CreateOrderRequest:
|
|
186
|
-
type: object
|
|
187
|
-
required: [productId, quantity, customerId]
|
|
188
|
-
properties:
|
|
189
|
-
productId:
|
|
190
|
-
type: string
|
|
191
|
-
quantity:
|
|
192
|
-
type: integer
|
|
193
|
-
customerId:
|
|
194
|
-
type: string
|
|
195
|
-
Order:
|
|
196
|
-
type: object
|
|
197
|
-
properties:
|
|
198
|
-
orderId:
|
|
199
|
-
type: string
|
|
200
|
-
total:
|
|
201
|
-
type: string
|
|
202
|
-
|
|
203
|
-
# =============================================================================
|
|
204
|
-
# Test Cases
|
|
205
|
-
# =============================================================================
|
|
206
|
-
|
|
207
|
-
test_cases:
|
|
208
|
-
# -------------------------------------------------------------------------
|
|
209
|
-
# Consumer Contract Generation Tests
|
|
210
|
-
# -------------------------------------------------------------------------
|
|
211
|
-
|
|
212
|
-
- id: tc001_consumer_contract_generation
|
|
213
|
-
description: "Skill generates consumer contract from API interaction"
|
|
214
|
-
category: consumer
|
|
215
|
-
priority: critical
|
|
216
|
-
|
|
217
|
-
input:
|
|
218
|
-
prompt: |
|
|
219
|
-
Generate a Pact consumer contract for the following API interaction:
|
|
220
|
-
- Consumer: web-app
|
|
221
|
-
- Provider: user-service
|
|
222
|
-
- Interaction: GET /users/{id} returns user details
|
|
223
|
-
- Expected response: { "id": "123", "name": "John", "email": "john@example.com" }
|
|
224
|
-
context:
|
|
225
|
-
contractType: consumer-driven
|
|
226
|
-
framework: pact
|
|
227
|
-
|
|
228
|
-
expected_output:
|
|
229
|
-
must_contain:
|
|
230
|
-
- "consumer"
|
|
231
|
-
- "provider"
|
|
232
|
-
- "web-app"
|
|
233
|
-
- "user-service"
|
|
234
|
-
- "GET"
|
|
235
|
-
- "users"
|
|
236
|
-
must_not_contain:
|
|
237
|
-
- "error"
|
|
238
|
-
- "unable"
|
|
239
|
-
- "TODO"
|
|
240
|
-
|
|
241
|
-
validation:
|
|
242
|
-
schema_check: true
|
|
243
|
-
keyword_match_threshold: 0.8
|
|
244
|
-
reasoning_quality_min: 0.7
|
|
245
|
-
|
|
246
|
-
- id: tc002_pact_matchers
|
|
247
|
-
description: "Skill correctly uses Pact matchers for flexible contracts"
|
|
248
|
-
category: consumer
|
|
249
|
-
priority: high
|
|
250
|
-
|
|
251
|
-
input:
|
|
252
|
-
prompt: |
|
|
253
|
-
Create a Pact contract with flexible matching for:
|
|
254
|
-
- Any string for orderId (should match any string pattern)
|
|
255
|
-
- Any positive number for total
|
|
256
|
-
- Array of items where each has id and name
|
|
257
|
-
context:
|
|
258
|
-
framework: pact
|
|
259
|
-
pactVersion: "4.0"
|
|
260
|
-
|
|
261
|
-
expected_output:
|
|
262
|
-
must_contain:
|
|
263
|
-
- "matching"
|
|
264
|
-
- "type"
|
|
265
|
-
must_match_regex:
|
|
266
|
-
- "(?i)(like|regex|matcher|type.*match)"
|
|
267
|
-
|
|
268
|
-
validation:
|
|
269
|
-
schema_check: true
|
|
270
|
-
keyword_match_threshold: 0.7
|
|
271
|
-
|
|
272
|
-
# -------------------------------------------------------------------------
|
|
273
|
-
# Provider Verification Tests
|
|
274
|
-
# -------------------------------------------------------------------------
|
|
275
|
-
|
|
276
|
-
- id: tc003_provider_verification
|
|
277
|
-
description: "Skill verifies provider against consumer contracts"
|
|
278
|
-
category: provider
|
|
279
|
-
priority: critical
|
|
280
|
-
|
|
281
|
-
input:
|
|
282
|
-
prompt: |
|
|
283
|
-
Verify the user-service provider against all consumer contracts:
|
|
284
|
-
- Consumers: web-app (v1.2.0), mobile-app (v2.0.1), admin-portal (v1.0.0)
|
|
285
|
-
- Provider version: 3.1.0
|
|
286
|
-
- Pact Broker URL: https://pact-broker.example.com
|
|
287
|
-
context:
|
|
288
|
-
contractType: consumer-driven
|
|
289
|
-
framework: pact
|
|
290
|
-
|
|
291
|
-
expected_output:
|
|
292
|
-
must_contain:
|
|
293
|
-
- "verification"
|
|
294
|
-
- "provider"
|
|
295
|
-
- "consumer"
|
|
296
|
-
- "user-service"
|
|
297
|
-
must_match_regex:
|
|
298
|
-
- "(?i)(pass|fail|verify)"
|
|
299
|
-
|
|
300
|
-
validation:
|
|
301
|
-
schema_check: true
|
|
302
|
-
keyword_match_threshold: 0.8
|
|
303
|
-
reasoning_quality_min: 0.8
|
|
304
|
-
|
|
305
|
-
- id: tc004_provider_states
|
|
306
|
-
description: "Skill handles provider states correctly"
|
|
307
|
-
category: provider
|
|
308
|
-
priority: high
|
|
309
|
-
|
|
310
|
-
input:
|
|
311
|
-
prompt: |
|
|
312
|
-
Create provider state handlers for the following contract:
|
|
313
|
-
- State 1: "user 123 exists" - need to seed user with id 123
|
|
314
|
-
- State 2: "no users exist" - need to clear database
|
|
315
|
-
- State 3: "user has orders" - need user and associated orders
|
|
316
|
-
context:
|
|
317
|
-
framework: pact
|
|
318
|
-
language: javascript
|
|
319
|
-
|
|
320
|
-
expected_output:
|
|
321
|
-
must_contain:
|
|
322
|
-
- "state"
|
|
323
|
-
- "handler"
|
|
324
|
-
- "user"
|
|
325
|
-
must_match_regex:
|
|
326
|
-
- "(?i)(setup|teardown|before|seed|clear)"
|
|
327
|
-
|
|
328
|
-
validation:
|
|
329
|
-
schema_check: true
|
|
330
|
-
keyword_match_threshold: 0.7
|
|
331
|
-
|
|
332
|
-
# -------------------------------------------------------------------------
|
|
333
|
-
# Breaking Change Detection Tests
|
|
334
|
-
# -------------------------------------------------------------------------
|
|
335
|
-
|
|
336
|
-
- id: tc005_breaking_change_removed_field
|
|
337
|
-
description: "Skill detects breaking change when field is removed"
|
|
338
|
-
category: breaking_change
|
|
339
|
-
priority: critical
|
|
340
|
-
|
|
341
|
-
input:
|
|
342
|
-
prompt: |
|
|
343
|
-
Compare these two API versions and identify breaking changes:
|
|
344
|
-
|
|
345
|
-
V1 Response:
|
|
346
|
-
{
|
|
347
|
-
"orderId": "123",
|
|
348
|
-
"total": 99.99,
|
|
349
|
-
"discount": 10.00,
|
|
350
|
-
"items": []
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
V2 Response:
|
|
354
|
-
{
|
|
355
|
-
"orderId": "123",
|
|
356
|
-
"total": "99.99",
|
|
357
|
-
"items": []
|
|
358
|
-
}
|
|
359
|
-
context:
|
|
360
|
-
detectBreaking: true
|
|
361
|
-
|
|
362
|
-
expected_output:
|
|
363
|
-
must_contain:
|
|
364
|
-
- "breaking"
|
|
365
|
-
- "removed"
|
|
366
|
-
- "discount"
|
|
367
|
-
- "type"
|
|
368
|
-
must_match_regex:
|
|
369
|
-
- "(?i)(breaking.*change|removed.*field|type.*change)"
|
|
370
|
-
|
|
371
|
-
validation:
|
|
372
|
-
schema_check: true
|
|
373
|
-
keyword_match_threshold: 0.9
|
|
374
|
-
grading_rubric:
|
|
375
|
-
completeness: 0.4
|
|
376
|
-
accuracy: 0.4
|
|
377
|
-
actionability: 0.2
|
|
378
|
-
|
|
379
|
-
- id: tc006_breaking_change_type_change
|
|
380
|
-
description: "Skill detects type change as breaking"
|
|
381
|
-
category: breaking_change
|
|
382
|
-
priority: critical
|
|
383
|
-
|
|
384
|
-
input:
|
|
385
|
-
prompt: |
|
|
386
|
-
Is changing a field from number to string a breaking change?
|
|
387
|
-
Example: "total: 99.99" changed to "total: '99.99'"
|
|
388
|
-
What consumers might be affected?
|
|
389
|
-
context:
|
|
390
|
-
detectBreaking: true
|
|
391
|
-
|
|
392
|
-
expected_output:
|
|
393
|
-
must_contain:
|
|
394
|
-
- "breaking"
|
|
395
|
-
- "type"
|
|
396
|
-
- "number"
|
|
397
|
-
- "string"
|
|
398
|
-
must_match_regex:
|
|
399
|
-
- "(?i)(breaking|incompatible|consumer.*impact)"
|
|
400
|
-
|
|
401
|
-
validation:
|
|
402
|
-
schema_check: true
|
|
403
|
-
keyword_match_threshold: 0.8
|
|
404
|
-
|
|
405
|
-
- id: tc007_non_breaking_change
|
|
406
|
-
description: "Skill correctly identifies non-breaking changes"
|
|
407
|
-
category: breaking_change
|
|
408
|
-
priority: high
|
|
409
|
-
|
|
410
|
-
input:
|
|
411
|
-
prompt: |
|
|
412
|
-
Are these changes breaking or non-breaking?
|
|
413
|
-
1. Adding a new optional field "createdAt"
|
|
414
|
-
2. Adding a new endpoint GET /orders/history
|
|
415
|
-
3. Adding a new enum value "PENDING_APPROVAL" to status field
|
|
416
|
-
context:
|
|
417
|
-
detectBreaking: true
|
|
418
|
-
|
|
419
|
-
expected_output:
|
|
420
|
-
must_contain:
|
|
421
|
-
- "non-breaking"
|
|
422
|
-
- "optional"
|
|
423
|
-
- "add"
|
|
424
|
-
must_not_contain:
|
|
425
|
-
- "breaking change"
|
|
426
|
-
- "incompatible"
|
|
427
|
-
|
|
428
|
-
validation:
|
|
429
|
-
schema_check: true
|
|
430
|
-
keyword_match_threshold: 0.7
|
|
431
|
-
|
|
432
|
-
# -------------------------------------------------------------------------
|
|
433
|
-
# Semantic Versioning Tests
|
|
434
|
-
# -------------------------------------------------------------------------
|
|
435
|
-
|
|
436
|
-
- id: tc008_semver_major_bump
|
|
437
|
-
description: "Skill recommends major version bump for breaking changes"
|
|
438
|
-
category: versioning
|
|
439
|
-
priority: high
|
|
440
|
-
|
|
441
|
-
input:
|
|
442
|
-
prompt: |
|
|
443
|
-
Current API version: 1.5.3
|
|
444
|
-
Changes detected:
|
|
445
|
-
- Removed field "legacyId" from User response
|
|
446
|
-
- Changed "createdAt" from string to timestamp
|
|
447
|
-
|
|
448
|
-
What version should we release?
|
|
449
|
-
context:
|
|
450
|
-
currentVersion: "1.5.3"
|
|
451
|
-
calculateSemver: true
|
|
452
|
-
|
|
453
|
-
expected_output:
|
|
454
|
-
must_contain:
|
|
455
|
-
- "2.0.0"
|
|
456
|
-
- "major"
|
|
457
|
-
- "breaking"
|
|
458
|
-
must_not_contain:
|
|
459
|
-
- "1.5.4"
|
|
460
|
-
- "1.6.0"
|
|
461
|
-
- "patch"
|
|
462
|
-
|
|
463
|
-
validation:
|
|
464
|
-
schema_check: true
|
|
465
|
-
keyword_match_threshold: 0.9
|
|
466
|
-
|
|
467
|
-
- id: tc009_semver_minor_bump
|
|
468
|
-
description: "Skill recommends minor version bump for new features"
|
|
469
|
-
category: versioning
|
|
470
|
-
priority: high
|
|
471
|
-
|
|
472
|
-
input:
|
|
473
|
-
prompt: |
|
|
474
|
-
Current API version: 2.3.1
|
|
475
|
-
Changes:
|
|
476
|
-
- Added new endpoint GET /orders/summary
|
|
477
|
-
- Added optional field "metadata" to Order response
|
|
478
|
-
|
|
479
|
-
Recommend the next version.
|
|
480
|
-
context:
|
|
481
|
-
currentVersion: "2.3.1"
|
|
482
|
-
calculateSemver: true
|
|
483
|
-
|
|
484
|
-
expected_output:
|
|
485
|
-
must_contain:
|
|
486
|
-
- "2.4.0"
|
|
487
|
-
- "minor"
|
|
488
|
-
must_not_contain:
|
|
489
|
-
- "3.0.0"
|
|
490
|
-
- "major"
|
|
491
|
-
- "breaking"
|
|
492
|
-
|
|
493
|
-
validation:
|
|
494
|
-
schema_check: true
|
|
495
|
-
keyword_match_threshold: 0.8
|
|
496
|
-
|
|
497
|
-
# -------------------------------------------------------------------------
|
|
498
|
-
# canIDeploy Tests
|
|
499
|
-
# -------------------------------------------------------------------------
|
|
500
|
-
|
|
501
|
-
- id: tc010_can_i_deploy_yes
|
|
502
|
-
description: "Skill correctly determines deployment is safe"
|
|
503
|
-
category: deployment
|
|
504
|
-
priority: critical
|
|
505
|
-
|
|
506
|
-
input:
|
|
507
|
-
prompt: |
|
|
508
|
-
Provider: order-service v2.1.0
|
|
509
|
-
Consumer contracts verified:
|
|
510
|
-
- web-app v1.5.0: PASSED (12/12 interactions)
|
|
511
|
-
- mobile-app v2.0.1: PASSED (8/8 interactions)
|
|
512
|
-
- admin-portal v1.0.0: PASSED (5/5 interactions)
|
|
513
|
-
|
|
514
|
-
Can I deploy order-service to production?
|
|
515
|
-
context:
|
|
516
|
-
canIDeploy: true
|
|
517
|
-
|
|
518
|
-
expected_output:
|
|
519
|
-
must_contain:
|
|
520
|
-
- "deploy"
|
|
521
|
-
- "pass"
|
|
522
|
-
- "safe"
|
|
523
|
-
must_match_regex:
|
|
524
|
-
- "(?i)(can.*deploy|safe.*deploy|yes)"
|
|
525
|
-
|
|
526
|
-
validation:
|
|
527
|
-
schema_check: true
|
|
528
|
-
keyword_match_threshold: 0.8
|
|
529
|
-
|
|
530
|
-
- id: tc011_can_i_deploy_no
|
|
531
|
-
description: "Skill correctly blocks deployment when contracts fail"
|
|
532
|
-
category: deployment
|
|
533
|
-
priority: critical
|
|
534
|
-
|
|
535
|
-
input:
|
|
536
|
-
prompt: |
|
|
537
|
-
Provider: payment-service v3.0.0
|
|
538
|
-
Consumer contracts verified:
|
|
539
|
-
- checkout-ui v2.1.0: PASSED (10/10)
|
|
540
|
-
- mobile-app v1.9.0: FAILED (7/8 - missing field)
|
|
541
|
-
- reporting-service v1.0.0: PASSED (3/3)
|
|
542
|
-
|
|
543
|
-
Can I deploy payment-service to production?
|
|
544
|
-
context:
|
|
545
|
-
canIDeploy: true
|
|
546
|
-
|
|
547
|
-
expected_output:
|
|
548
|
-
must_contain:
|
|
549
|
-
- "cannot"
|
|
550
|
-
- "deploy"
|
|
551
|
-
- "fail"
|
|
552
|
-
- "mobile-app"
|
|
553
|
-
must_match_regex:
|
|
554
|
-
- "(?i)(cannot.*deploy|do.*not.*deploy|block|fail)"
|
|
555
|
-
|
|
556
|
-
validation:
|
|
557
|
-
schema_check: true
|
|
558
|
-
keyword_match_threshold: 0.9
|
|
559
|
-
|
|
560
|
-
# -------------------------------------------------------------------------
|
|
561
|
-
# Spring Cloud Contract Tests
|
|
562
|
-
# -------------------------------------------------------------------------
|
|
563
|
-
|
|
564
|
-
- id: tc012_spring_cloud_contract
|
|
565
|
-
description: "Skill generates Spring Cloud Contract DSL"
|
|
566
|
-
category: spring_cloud
|
|
567
|
-
priority: medium
|
|
568
|
-
|
|
569
|
-
input:
|
|
570
|
-
prompt: |
|
|
571
|
-
Generate a Spring Cloud Contract for:
|
|
572
|
-
- Request: POST /api/users with body { "name": "John", "email": "john@test.com" }
|
|
573
|
-
- Response: 201 with body { "id": "generated-uuid", "name": "John" }
|
|
574
|
-
|
|
575
|
-
Use Groovy DSL format.
|
|
576
|
-
context:
|
|
577
|
-
framework: spring-cloud-contract
|
|
578
|
-
language: groovy
|
|
579
|
-
|
|
580
|
-
expected_output:
|
|
581
|
-
must_contain:
|
|
582
|
-
- "Contract"
|
|
583
|
-
- "request"
|
|
584
|
-
- "response"
|
|
585
|
-
- "POST"
|
|
586
|
-
- "201"
|
|
587
|
-
must_match_regex:
|
|
588
|
-
- "(?i)(contract|dsl|groovy)"
|
|
589
|
-
|
|
590
|
-
validation:
|
|
591
|
-
schema_check: true
|
|
592
|
-
keyword_match_threshold: 0.7
|
|
593
|
-
|
|
594
|
-
# -------------------------------------------------------------------------
|
|
595
|
-
# Mock Generation Tests
|
|
596
|
-
# -------------------------------------------------------------------------
|
|
597
|
-
|
|
598
|
-
- id: tc013_mock_generation
|
|
599
|
-
description: "Skill generates mock from contract for development"
|
|
600
|
-
category: mock
|
|
601
|
-
priority: high
|
|
602
|
-
|
|
603
|
-
input:
|
|
604
|
-
prompt: |
|
|
605
|
-
Generate a WireMock stub from this Pact interaction:
|
|
606
|
-
|
|
607
|
-
Request: GET /api/users/123
|
|
608
|
-
Response: 200 with { "id": "123", "name": "John", "status": "active" }
|
|
609
|
-
|
|
610
|
-
Include matching rules for flexible stub.
|
|
611
|
-
context:
|
|
612
|
-
mockType: wiremock
|
|
613
|
-
|
|
614
|
-
expected_output:
|
|
615
|
-
must_contain:
|
|
616
|
-
- "stub"
|
|
617
|
-
- "request"
|
|
618
|
-
- "response"
|
|
619
|
-
- "200"
|
|
620
|
-
must_match_regex:
|
|
621
|
-
- "(?i)(wiremock|stub|mapping|mock)"
|
|
622
|
-
|
|
623
|
-
validation:
|
|
624
|
-
schema_check: true
|
|
625
|
-
keyword_match_threshold: 0.7
|
|
626
|
-
|
|
627
|
-
# -------------------------------------------------------------------------
|
|
628
|
-
# Pact Broker Integration Tests
|
|
629
|
-
# -------------------------------------------------------------------------
|
|
630
|
-
|
|
631
|
-
- id: tc014_pact_broker_publish
|
|
632
|
-
description: "Skill explains Pact Broker publishing workflow"
|
|
633
|
-
category: broker
|
|
634
|
-
priority: medium
|
|
635
|
-
|
|
636
|
-
input:
|
|
637
|
-
prompt: |
|
|
638
|
-
How do I publish consumer Pact files to a Pact Broker?
|
|
639
|
-
What tags and versions should I use?
|
|
640
|
-
CI/CD integration best practices?
|
|
641
|
-
context:
|
|
642
|
-
framework: pact
|
|
643
|
-
environment: ci
|
|
644
|
-
|
|
645
|
-
expected_output:
|
|
646
|
-
must_contain:
|
|
647
|
-
- "publish"
|
|
648
|
-
- "broker"
|
|
649
|
-
- "version"
|
|
650
|
-
- "tag"
|
|
651
|
-
must_match_regex:
|
|
652
|
-
- "(?i)(pact.*broker|publish|ci.*cd)"
|
|
653
|
-
|
|
654
|
-
validation:
|
|
655
|
-
schema_check: true
|
|
656
|
-
keyword_match_threshold: 0.7
|
|
657
|
-
|
|
658
|
-
# -------------------------------------------------------------------------
|
|
659
|
-
# Edge Cases
|
|
660
|
-
# -------------------------------------------------------------------------
|
|
661
|
-
|
|
662
|
-
- id: tc015_no_contracts
|
|
663
|
-
description: "Skill handles case with no contracts gracefully"
|
|
664
|
-
category: edge_cases
|
|
665
|
-
priority: medium
|
|
666
|
-
|
|
667
|
-
input:
|
|
668
|
-
prompt: |
|
|
669
|
-
I have a new service with no consumers yet.
|
|
670
|
-
How should I set up contract testing?
|
|
671
|
-
context:
|
|
672
|
-
contractType: consumer-driven
|
|
673
|
-
|
|
674
|
-
expected_output:
|
|
675
|
-
must_contain:
|
|
676
|
-
- "consumer"
|
|
677
|
-
- "contract"
|
|
678
|
-
must_not_contain:
|
|
679
|
-
- "error"
|
|
680
|
-
- "impossible"
|
|
681
|
-
|
|
682
|
-
validation:
|
|
683
|
-
schema_check: true
|
|
684
|
-
allow_partial: true
|
|
685
|
-
|
|
686
|
-
- id: tc016_multiple_provider_versions
|
|
687
|
-
description: "Skill handles multiple provider versions correctly"
|
|
688
|
-
category: edge_cases
|
|
689
|
-
priority: medium
|
|
690
|
-
|
|
691
|
-
input:
|
|
692
|
-
prompt: |
|
|
693
|
-
Our provider has multiple versions in production:
|
|
694
|
-
- v1.x used by legacy consumers
|
|
695
|
-
- v2.x used by new consumers
|
|
696
|
-
|
|
697
|
-
How do we handle contract testing for both?
|
|
698
|
-
context:
|
|
699
|
-
multiVersion: true
|
|
700
|
-
|
|
701
|
-
expected_output:
|
|
702
|
-
must_contain:
|
|
703
|
-
- "version"
|
|
704
|
-
- "consumer"
|
|
705
|
-
- "provider"
|
|
706
|
-
must_match_regex:
|
|
707
|
-
- "(?i)(versioning|backward.*compatible|support)"
|
|
708
|
-
|
|
709
|
-
validation:
|
|
710
|
-
schema_check: true
|
|
711
|
-
|
|
712
|
-
timeout_ms: 60000
|
|
713
|
-
|
|
714
|
-
# =============================================================================
|
|
715
|
-
# Success Criteria
|
|
716
|
-
# =============================================================================
|
|
717
|
-
|
|
718
|
-
success_criteria:
|
|
719
|
-
# Minimum percentage of tests that must pass
|
|
720
|
-
pass_rate: 0.90
|
|
721
|
-
|
|
722
|
-
# Critical tests must have 100% pass rate
|
|
723
|
-
critical_pass_rate: 1.0
|
|
724
|
-
|
|
725
|
-
# Average reasoning quality across all tests
|
|
726
|
-
avg_reasoning_quality: 0.7
|
|
727
|
-
|
|
728
|
-
# Maximum time for entire suite (5 minutes)
|
|
729
|
-
max_execution_time_ms: 300000
|
|
730
|
-
|
|
731
|
-
# Maximum variance between different models (15%)
|
|
732
|
-
cross_model_variance: 0.15
|
|
733
|
-
|
|
734
|
-
# =============================================================================
|
|
735
|
-
# Metadata
|
|
736
|
-
# =============================================================================
|
|
737
|
-
|
|
738
|
-
metadata:
|
|
739
|
-
author: "@agentic-qe"
|
|
740
|
-
created: "2026-02-02"
|
|
741
|
-
last_updated: "2026-02-02"
|
|
742
|
-
coverage_target: >
|
|
743
|
-
Contract testing patterns including consumer-driven contracts (Pact),
|
|
744
|
-
provider verification, breaking change detection, semantic versioning,
|
|
745
|
-
canIDeploy decisions, Spring Cloud Contract, and mock generation.
|
|
746
|
-
Tests 16 scenarios across 9 categories.
|
|
747
|
-
adr_reference: "ADR-056"
|
|
748
|
-
trust_tier: 3
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# AQE Contract Testing Skill Evaluation Test Suite v1.0.0
|
|
3
|
+
# Per ADR-056 - Trust Tier 3 Validation
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# This evaluation suite validates the contract-testing skill behavior:
|
|
7
|
+
# - Consumer-driven contract testing (Pact)
|
|
8
|
+
# - Provider verification
|
|
9
|
+
# - Breaking change detection
|
|
10
|
+
# - Semantic versioning recommendations
|
|
11
|
+
# - Spring Cloud Contract support
|
|
12
|
+
# - canIDeploy decision logic
|
|
13
|
+
# - Mock generation from contracts
|
|
14
|
+
#
|
|
15
|
+
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
16
|
+
# Runner: scripts/run-skill-eval.ts
|
|
17
|
+
#
|
|
18
|
+
# =============================================================================
|
|
19
|
+
|
|
20
|
+
skill: contract-testing
|
|
21
|
+
version: 1.0.0
|
|
22
|
+
description: >
|
|
23
|
+
Comprehensive evaluation suite for the contract-testing skill.
|
|
24
|
+
Tests consumer-driven contracts, provider verification, breaking change
|
|
25
|
+
detection, versioning recommendations, and CI/CD integration patterns
|
|
26
|
+
across multiple models.
|
|
27
|
+
|
|
28
|
+
# =============================================================================
|
|
29
|
+
# Multi-Model Configuration
|
|
30
|
+
# =============================================================================
|
|
31
|
+
|
|
32
|
+
models_to_test:
|
|
33
|
+
- claude-sonnet-4 # Primary model (high accuracy expected)
|
|
34
|
+
- claude-3-haiku # Fast model (minimum quality bar)
|
|
35
|
+
- gpt-4o # Cross-vendor validation
|
|
36
|
+
|
|
37
|
+
# =============================================================================
|
|
38
|
+
# MCP Integration Configuration
|
|
39
|
+
# =============================================================================
|
|
40
|
+
|
|
41
|
+
mcp_integration:
|
|
42
|
+
enabled: true
|
|
43
|
+
namespace: skill-validation
|
|
44
|
+
|
|
45
|
+
query_patterns: true
|
|
46
|
+
track_outcomes: true
|
|
47
|
+
store_patterns: true
|
|
48
|
+
share_learning: true
|
|
49
|
+
update_quality_gate: true
|
|
50
|
+
|
|
51
|
+
target_agents:
|
|
52
|
+
- qe-learning-coordinator
|
|
53
|
+
- qe-queen-coordinator
|
|
54
|
+
- qe-api-contract-validator
|
|
55
|
+
|
|
56
|
+
# =============================================================================
|
|
57
|
+
# ReasoningBank Learning Configuration
|
|
58
|
+
# =============================================================================
|
|
59
|
+
|
|
60
|
+
learning:
|
|
61
|
+
store_success_patterns: true
|
|
62
|
+
store_failure_patterns: true
|
|
63
|
+
pattern_ttl_days: 90
|
|
64
|
+
min_confidence_to_store: 0.7
|
|
65
|
+
cross_model_comparison: true
|
|
66
|
+
|
|
67
|
+
# =============================================================================
|
|
68
|
+
# Result Format Configuration
|
|
69
|
+
# =============================================================================
|
|
70
|
+
|
|
71
|
+
result_format:
|
|
72
|
+
json_output: true
|
|
73
|
+
markdown_report: true
|
|
74
|
+
include_raw_output: false
|
|
75
|
+
include_timing: true
|
|
76
|
+
include_token_usage: true
|
|
77
|
+
|
|
78
|
+
# =============================================================================
|
|
79
|
+
# Environment Setup
|
|
80
|
+
# =============================================================================
|
|
81
|
+
|
|
82
|
+
setup:
|
|
83
|
+
required_tools:
|
|
84
|
+
- jq
|
|
85
|
+
environment_variables:
|
|
86
|
+
AQE_VALIDATION_MODE: "eval"
|
|
87
|
+
fixtures:
|
|
88
|
+
- name: sample_pact_file
|
|
89
|
+
path: fixtures/pact-sample.json
|
|
90
|
+
content: |
|
|
91
|
+
{
|
|
92
|
+
"consumer": { "name": "CheckoutUI" },
|
|
93
|
+
"provider": { "name": "OrderService" },
|
|
94
|
+
"interactions": [
|
|
95
|
+
{
|
|
96
|
+
"description": "a request to create an order",
|
|
97
|
+
"providerState": "products exist",
|
|
98
|
+
"request": {
|
|
99
|
+
"method": "POST",
|
|
100
|
+
"path": "/orders",
|
|
101
|
+
"headers": { "Content-Type": "application/json" },
|
|
102
|
+
"body": { "productId": "abc-123", "quantity": 2 }
|
|
103
|
+
},
|
|
104
|
+
"response": {
|
|
105
|
+
"status": 201,
|
|
106
|
+
"headers": { "Content-Type": "application/json" },
|
|
107
|
+
"body": {
|
|
108
|
+
"orderId": "order-456",
|
|
109
|
+
"total": 19.99
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"metadata": {
|
|
115
|
+
"pactSpecification": { "version": "4.0" }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
- name: sample_openapi_v1
|
|
119
|
+
path: fixtures/openapi-v1.yaml
|
|
120
|
+
content: |
|
|
121
|
+
openapi: "3.0.3"
|
|
122
|
+
info:
|
|
123
|
+
title: Order API
|
|
124
|
+
version: "1.0.0"
|
|
125
|
+
paths:
|
|
126
|
+
/orders:
|
|
127
|
+
post:
|
|
128
|
+
operationId: createOrder
|
|
129
|
+
requestBody:
|
|
130
|
+
content:
|
|
131
|
+
application/json:
|
|
132
|
+
schema:
|
|
133
|
+
$ref: '#/components/schemas/CreateOrderRequest'
|
|
134
|
+
responses:
|
|
135
|
+
"201":
|
|
136
|
+
description: Order created
|
|
137
|
+
content:
|
|
138
|
+
application/json:
|
|
139
|
+
schema:
|
|
140
|
+
$ref: '#/components/schemas/Order'
|
|
141
|
+
components:
|
|
142
|
+
schemas:
|
|
143
|
+
CreateOrderRequest:
|
|
144
|
+
type: object
|
|
145
|
+
required: [productId, quantity]
|
|
146
|
+
properties:
|
|
147
|
+
productId:
|
|
148
|
+
type: string
|
|
149
|
+
quantity:
|
|
150
|
+
type: integer
|
|
151
|
+
Order:
|
|
152
|
+
type: object
|
|
153
|
+
properties:
|
|
154
|
+
orderId:
|
|
155
|
+
type: string
|
|
156
|
+
total:
|
|
157
|
+
type: number
|
|
158
|
+
discount:
|
|
159
|
+
type: number
|
|
160
|
+
- name: sample_openapi_v2
|
|
161
|
+
path: fixtures/openapi-v2.yaml
|
|
162
|
+
content: |
|
|
163
|
+
openapi: "3.0.3"
|
|
164
|
+
info:
|
|
165
|
+
title: Order API
|
|
166
|
+
version: "2.0.0"
|
|
167
|
+
paths:
|
|
168
|
+
/orders:
|
|
169
|
+
post:
|
|
170
|
+
operationId: createOrder
|
|
171
|
+
requestBody:
|
|
172
|
+
content:
|
|
173
|
+
application/json:
|
|
174
|
+
schema:
|
|
175
|
+
$ref: '#/components/schemas/CreateOrderRequest'
|
|
176
|
+
responses:
|
|
177
|
+
"201":
|
|
178
|
+
description: Order created
|
|
179
|
+
content:
|
|
180
|
+
application/json:
|
|
181
|
+
schema:
|
|
182
|
+
$ref: '#/components/schemas/Order'
|
|
183
|
+
components:
|
|
184
|
+
schemas:
|
|
185
|
+
CreateOrderRequest:
|
|
186
|
+
type: object
|
|
187
|
+
required: [productId, quantity, customerId]
|
|
188
|
+
properties:
|
|
189
|
+
productId:
|
|
190
|
+
type: string
|
|
191
|
+
quantity:
|
|
192
|
+
type: integer
|
|
193
|
+
customerId:
|
|
194
|
+
type: string
|
|
195
|
+
Order:
|
|
196
|
+
type: object
|
|
197
|
+
properties:
|
|
198
|
+
orderId:
|
|
199
|
+
type: string
|
|
200
|
+
total:
|
|
201
|
+
type: string
|
|
202
|
+
|
|
203
|
+
# =============================================================================
|
|
204
|
+
# Test Cases
|
|
205
|
+
# =============================================================================
|
|
206
|
+
|
|
207
|
+
test_cases:
|
|
208
|
+
# -------------------------------------------------------------------------
|
|
209
|
+
# Consumer Contract Generation Tests
|
|
210
|
+
# -------------------------------------------------------------------------
|
|
211
|
+
|
|
212
|
+
- id: tc001_consumer_contract_generation
|
|
213
|
+
description: "Skill generates consumer contract from API interaction"
|
|
214
|
+
category: consumer
|
|
215
|
+
priority: critical
|
|
216
|
+
|
|
217
|
+
input:
|
|
218
|
+
prompt: |
|
|
219
|
+
Generate a Pact consumer contract for the following API interaction:
|
|
220
|
+
- Consumer: web-app
|
|
221
|
+
- Provider: user-service
|
|
222
|
+
- Interaction: GET /users/{id} returns user details
|
|
223
|
+
- Expected response: { "id": "123", "name": "John", "email": "john@example.com" }
|
|
224
|
+
context:
|
|
225
|
+
contractType: consumer-driven
|
|
226
|
+
framework: pact
|
|
227
|
+
|
|
228
|
+
expected_output:
|
|
229
|
+
must_contain:
|
|
230
|
+
- "consumer"
|
|
231
|
+
- "provider"
|
|
232
|
+
- "web-app"
|
|
233
|
+
- "user-service"
|
|
234
|
+
- "GET"
|
|
235
|
+
- "users"
|
|
236
|
+
must_not_contain:
|
|
237
|
+
- "error"
|
|
238
|
+
- "unable"
|
|
239
|
+
- "TODO"
|
|
240
|
+
|
|
241
|
+
validation:
|
|
242
|
+
schema_check: true
|
|
243
|
+
keyword_match_threshold: 0.8
|
|
244
|
+
reasoning_quality_min: 0.7
|
|
245
|
+
|
|
246
|
+
- id: tc002_pact_matchers
|
|
247
|
+
description: "Skill correctly uses Pact matchers for flexible contracts"
|
|
248
|
+
category: consumer
|
|
249
|
+
priority: high
|
|
250
|
+
|
|
251
|
+
input:
|
|
252
|
+
prompt: |
|
|
253
|
+
Create a Pact contract with flexible matching for:
|
|
254
|
+
- Any string for orderId (should match any string pattern)
|
|
255
|
+
- Any positive number for total
|
|
256
|
+
- Array of items where each has id and name
|
|
257
|
+
context:
|
|
258
|
+
framework: pact
|
|
259
|
+
pactVersion: "4.0"
|
|
260
|
+
|
|
261
|
+
expected_output:
|
|
262
|
+
must_contain:
|
|
263
|
+
- "matching"
|
|
264
|
+
- "type"
|
|
265
|
+
must_match_regex:
|
|
266
|
+
- "(?i)(like|regex|matcher|type.*match)"
|
|
267
|
+
|
|
268
|
+
validation:
|
|
269
|
+
schema_check: true
|
|
270
|
+
keyword_match_threshold: 0.7
|
|
271
|
+
|
|
272
|
+
# -------------------------------------------------------------------------
|
|
273
|
+
# Provider Verification Tests
|
|
274
|
+
# -------------------------------------------------------------------------
|
|
275
|
+
|
|
276
|
+
- id: tc003_provider_verification
|
|
277
|
+
description: "Skill verifies provider against consumer contracts"
|
|
278
|
+
category: provider
|
|
279
|
+
priority: critical
|
|
280
|
+
|
|
281
|
+
input:
|
|
282
|
+
prompt: |
|
|
283
|
+
Verify the user-service provider against all consumer contracts:
|
|
284
|
+
- Consumers: web-app (v1.2.0), mobile-app (v2.0.1), admin-portal (v1.0.0)
|
|
285
|
+
- Provider version: 3.1.0
|
|
286
|
+
- Pact Broker URL: https://pact-broker.example.com
|
|
287
|
+
context:
|
|
288
|
+
contractType: consumer-driven
|
|
289
|
+
framework: pact
|
|
290
|
+
|
|
291
|
+
expected_output:
|
|
292
|
+
must_contain:
|
|
293
|
+
- "verification"
|
|
294
|
+
- "provider"
|
|
295
|
+
- "consumer"
|
|
296
|
+
- "user-service"
|
|
297
|
+
must_match_regex:
|
|
298
|
+
- "(?i)(pass|fail|verify)"
|
|
299
|
+
|
|
300
|
+
validation:
|
|
301
|
+
schema_check: true
|
|
302
|
+
keyword_match_threshold: 0.8
|
|
303
|
+
reasoning_quality_min: 0.8
|
|
304
|
+
|
|
305
|
+
- id: tc004_provider_states
|
|
306
|
+
description: "Skill handles provider states correctly"
|
|
307
|
+
category: provider
|
|
308
|
+
priority: high
|
|
309
|
+
|
|
310
|
+
input:
|
|
311
|
+
prompt: |
|
|
312
|
+
Create provider state handlers for the following contract:
|
|
313
|
+
- State 1: "user 123 exists" - need to seed user with id 123
|
|
314
|
+
- State 2: "no users exist" - need to clear database
|
|
315
|
+
- State 3: "user has orders" - need user and associated orders
|
|
316
|
+
context:
|
|
317
|
+
framework: pact
|
|
318
|
+
language: javascript
|
|
319
|
+
|
|
320
|
+
expected_output:
|
|
321
|
+
must_contain:
|
|
322
|
+
- "state"
|
|
323
|
+
- "handler"
|
|
324
|
+
- "user"
|
|
325
|
+
must_match_regex:
|
|
326
|
+
- "(?i)(setup|teardown|before|seed|clear)"
|
|
327
|
+
|
|
328
|
+
validation:
|
|
329
|
+
schema_check: true
|
|
330
|
+
keyword_match_threshold: 0.7
|
|
331
|
+
|
|
332
|
+
# -------------------------------------------------------------------------
|
|
333
|
+
# Breaking Change Detection Tests
|
|
334
|
+
# -------------------------------------------------------------------------
|
|
335
|
+
|
|
336
|
+
- id: tc005_breaking_change_removed_field
|
|
337
|
+
description: "Skill detects breaking change when field is removed"
|
|
338
|
+
category: breaking_change
|
|
339
|
+
priority: critical
|
|
340
|
+
|
|
341
|
+
input:
|
|
342
|
+
prompt: |
|
|
343
|
+
Compare these two API versions and identify breaking changes:
|
|
344
|
+
|
|
345
|
+
V1 Response:
|
|
346
|
+
{
|
|
347
|
+
"orderId": "123",
|
|
348
|
+
"total": 99.99,
|
|
349
|
+
"discount": 10.00,
|
|
350
|
+
"items": []
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
V2 Response:
|
|
354
|
+
{
|
|
355
|
+
"orderId": "123",
|
|
356
|
+
"total": "99.99",
|
|
357
|
+
"items": []
|
|
358
|
+
}
|
|
359
|
+
context:
|
|
360
|
+
detectBreaking: true
|
|
361
|
+
|
|
362
|
+
expected_output:
|
|
363
|
+
must_contain:
|
|
364
|
+
- "breaking"
|
|
365
|
+
- "removed"
|
|
366
|
+
- "discount"
|
|
367
|
+
- "type"
|
|
368
|
+
must_match_regex:
|
|
369
|
+
- "(?i)(breaking.*change|removed.*field|type.*change)"
|
|
370
|
+
|
|
371
|
+
validation:
|
|
372
|
+
schema_check: true
|
|
373
|
+
keyword_match_threshold: 0.9
|
|
374
|
+
grading_rubric:
|
|
375
|
+
completeness: 0.4
|
|
376
|
+
accuracy: 0.4
|
|
377
|
+
actionability: 0.2
|
|
378
|
+
|
|
379
|
+
- id: tc006_breaking_change_type_change
|
|
380
|
+
description: "Skill detects type change as breaking"
|
|
381
|
+
category: breaking_change
|
|
382
|
+
priority: critical
|
|
383
|
+
|
|
384
|
+
input:
|
|
385
|
+
prompt: |
|
|
386
|
+
Is changing a field from number to string a breaking change?
|
|
387
|
+
Example: "total: 99.99" changed to "total: '99.99'"
|
|
388
|
+
What consumers might be affected?
|
|
389
|
+
context:
|
|
390
|
+
detectBreaking: true
|
|
391
|
+
|
|
392
|
+
expected_output:
|
|
393
|
+
must_contain:
|
|
394
|
+
- "breaking"
|
|
395
|
+
- "type"
|
|
396
|
+
- "number"
|
|
397
|
+
- "string"
|
|
398
|
+
must_match_regex:
|
|
399
|
+
- "(?i)(breaking|incompatible|consumer.*impact)"
|
|
400
|
+
|
|
401
|
+
validation:
|
|
402
|
+
schema_check: true
|
|
403
|
+
keyword_match_threshold: 0.8
|
|
404
|
+
|
|
405
|
+
- id: tc007_non_breaking_change
|
|
406
|
+
description: "Skill correctly identifies non-breaking changes"
|
|
407
|
+
category: breaking_change
|
|
408
|
+
priority: high
|
|
409
|
+
|
|
410
|
+
input:
|
|
411
|
+
prompt: |
|
|
412
|
+
Are these changes breaking or non-breaking?
|
|
413
|
+
1. Adding a new optional field "createdAt"
|
|
414
|
+
2. Adding a new endpoint GET /orders/history
|
|
415
|
+
3. Adding a new enum value "PENDING_APPROVAL" to status field
|
|
416
|
+
context:
|
|
417
|
+
detectBreaking: true
|
|
418
|
+
|
|
419
|
+
expected_output:
|
|
420
|
+
must_contain:
|
|
421
|
+
- "non-breaking"
|
|
422
|
+
- "optional"
|
|
423
|
+
- "add"
|
|
424
|
+
must_not_contain:
|
|
425
|
+
- "breaking change"
|
|
426
|
+
- "incompatible"
|
|
427
|
+
|
|
428
|
+
validation:
|
|
429
|
+
schema_check: true
|
|
430
|
+
keyword_match_threshold: 0.7
|
|
431
|
+
|
|
432
|
+
# -------------------------------------------------------------------------
|
|
433
|
+
# Semantic Versioning Tests
|
|
434
|
+
# -------------------------------------------------------------------------
|
|
435
|
+
|
|
436
|
+
- id: tc008_semver_major_bump
|
|
437
|
+
description: "Skill recommends major version bump for breaking changes"
|
|
438
|
+
category: versioning
|
|
439
|
+
priority: high
|
|
440
|
+
|
|
441
|
+
input:
|
|
442
|
+
prompt: |
|
|
443
|
+
Current API version: 1.5.3
|
|
444
|
+
Changes detected:
|
|
445
|
+
- Removed field "legacyId" from User response
|
|
446
|
+
- Changed "createdAt" from string to timestamp
|
|
447
|
+
|
|
448
|
+
What version should we release?
|
|
449
|
+
context:
|
|
450
|
+
currentVersion: "1.5.3"
|
|
451
|
+
calculateSemver: true
|
|
452
|
+
|
|
453
|
+
expected_output:
|
|
454
|
+
must_contain:
|
|
455
|
+
- "2.0.0"
|
|
456
|
+
- "major"
|
|
457
|
+
- "breaking"
|
|
458
|
+
must_not_contain:
|
|
459
|
+
- "1.5.4"
|
|
460
|
+
- "1.6.0"
|
|
461
|
+
- "patch"
|
|
462
|
+
|
|
463
|
+
validation:
|
|
464
|
+
schema_check: true
|
|
465
|
+
keyword_match_threshold: 0.9
|
|
466
|
+
|
|
467
|
+
- id: tc009_semver_minor_bump
|
|
468
|
+
description: "Skill recommends minor version bump for new features"
|
|
469
|
+
category: versioning
|
|
470
|
+
priority: high
|
|
471
|
+
|
|
472
|
+
input:
|
|
473
|
+
prompt: |
|
|
474
|
+
Current API version: 2.3.1
|
|
475
|
+
Changes:
|
|
476
|
+
- Added new endpoint GET /orders/summary
|
|
477
|
+
- Added optional field "metadata" to Order response
|
|
478
|
+
|
|
479
|
+
Recommend the next version.
|
|
480
|
+
context:
|
|
481
|
+
currentVersion: "2.3.1"
|
|
482
|
+
calculateSemver: true
|
|
483
|
+
|
|
484
|
+
expected_output:
|
|
485
|
+
must_contain:
|
|
486
|
+
- "2.4.0"
|
|
487
|
+
- "minor"
|
|
488
|
+
must_not_contain:
|
|
489
|
+
- "3.0.0"
|
|
490
|
+
- "major"
|
|
491
|
+
- "breaking"
|
|
492
|
+
|
|
493
|
+
validation:
|
|
494
|
+
schema_check: true
|
|
495
|
+
keyword_match_threshold: 0.8
|
|
496
|
+
|
|
497
|
+
# -------------------------------------------------------------------------
|
|
498
|
+
# canIDeploy Tests
|
|
499
|
+
# -------------------------------------------------------------------------
|
|
500
|
+
|
|
501
|
+
- id: tc010_can_i_deploy_yes
|
|
502
|
+
description: "Skill correctly determines deployment is safe"
|
|
503
|
+
category: deployment
|
|
504
|
+
priority: critical
|
|
505
|
+
|
|
506
|
+
input:
|
|
507
|
+
prompt: |
|
|
508
|
+
Provider: order-service v2.1.0
|
|
509
|
+
Consumer contracts verified:
|
|
510
|
+
- web-app v1.5.0: PASSED (12/12 interactions)
|
|
511
|
+
- mobile-app v2.0.1: PASSED (8/8 interactions)
|
|
512
|
+
- admin-portal v1.0.0: PASSED (5/5 interactions)
|
|
513
|
+
|
|
514
|
+
Can I deploy order-service to production?
|
|
515
|
+
context:
|
|
516
|
+
canIDeploy: true
|
|
517
|
+
|
|
518
|
+
expected_output:
|
|
519
|
+
must_contain:
|
|
520
|
+
- "deploy"
|
|
521
|
+
- "pass"
|
|
522
|
+
- "safe"
|
|
523
|
+
must_match_regex:
|
|
524
|
+
- "(?i)(can.*deploy|safe.*deploy|yes)"
|
|
525
|
+
|
|
526
|
+
validation:
|
|
527
|
+
schema_check: true
|
|
528
|
+
keyword_match_threshold: 0.8
|
|
529
|
+
|
|
530
|
+
- id: tc011_can_i_deploy_no
|
|
531
|
+
description: "Skill correctly blocks deployment when contracts fail"
|
|
532
|
+
category: deployment
|
|
533
|
+
priority: critical
|
|
534
|
+
|
|
535
|
+
input:
|
|
536
|
+
prompt: |
|
|
537
|
+
Provider: payment-service v3.0.0
|
|
538
|
+
Consumer contracts verified:
|
|
539
|
+
- checkout-ui v2.1.0: PASSED (10/10)
|
|
540
|
+
- mobile-app v1.9.0: FAILED (7/8 - missing field)
|
|
541
|
+
- reporting-service v1.0.0: PASSED (3/3)
|
|
542
|
+
|
|
543
|
+
Can I deploy payment-service to production?
|
|
544
|
+
context:
|
|
545
|
+
canIDeploy: true
|
|
546
|
+
|
|
547
|
+
expected_output:
|
|
548
|
+
must_contain:
|
|
549
|
+
- "cannot"
|
|
550
|
+
- "deploy"
|
|
551
|
+
- "fail"
|
|
552
|
+
- "mobile-app"
|
|
553
|
+
must_match_regex:
|
|
554
|
+
- "(?i)(cannot.*deploy|do.*not.*deploy|block|fail)"
|
|
555
|
+
|
|
556
|
+
validation:
|
|
557
|
+
schema_check: true
|
|
558
|
+
keyword_match_threshold: 0.9
|
|
559
|
+
|
|
560
|
+
# -------------------------------------------------------------------------
|
|
561
|
+
# Spring Cloud Contract Tests
|
|
562
|
+
# -------------------------------------------------------------------------
|
|
563
|
+
|
|
564
|
+
- id: tc012_spring_cloud_contract
|
|
565
|
+
description: "Skill generates Spring Cloud Contract DSL"
|
|
566
|
+
category: spring_cloud
|
|
567
|
+
priority: medium
|
|
568
|
+
|
|
569
|
+
input:
|
|
570
|
+
prompt: |
|
|
571
|
+
Generate a Spring Cloud Contract for:
|
|
572
|
+
- Request: POST /api/users with body { "name": "John", "email": "john@test.com" }
|
|
573
|
+
- Response: 201 with body { "id": "generated-uuid", "name": "John" }
|
|
574
|
+
|
|
575
|
+
Use Groovy DSL format.
|
|
576
|
+
context:
|
|
577
|
+
framework: spring-cloud-contract
|
|
578
|
+
language: groovy
|
|
579
|
+
|
|
580
|
+
expected_output:
|
|
581
|
+
must_contain:
|
|
582
|
+
- "Contract"
|
|
583
|
+
- "request"
|
|
584
|
+
- "response"
|
|
585
|
+
- "POST"
|
|
586
|
+
- "201"
|
|
587
|
+
must_match_regex:
|
|
588
|
+
- "(?i)(contract|dsl|groovy)"
|
|
589
|
+
|
|
590
|
+
validation:
|
|
591
|
+
schema_check: true
|
|
592
|
+
keyword_match_threshold: 0.7
|
|
593
|
+
|
|
594
|
+
# -------------------------------------------------------------------------
|
|
595
|
+
# Mock Generation Tests
|
|
596
|
+
# -------------------------------------------------------------------------
|
|
597
|
+
|
|
598
|
+
- id: tc013_mock_generation
|
|
599
|
+
description: "Skill generates mock from contract for development"
|
|
600
|
+
category: mock
|
|
601
|
+
priority: high
|
|
602
|
+
|
|
603
|
+
input:
|
|
604
|
+
prompt: |
|
|
605
|
+
Generate a WireMock stub from this Pact interaction:
|
|
606
|
+
|
|
607
|
+
Request: GET /api/users/123
|
|
608
|
+
Response: 200 with { "id": "123", "name": "John", "status": "active" }
|
|
609
|
+
|
|
610
|
+
Include matching rules for flexible stub.
|
|
611
|
+
context:
|
|
612
|
+
mockType: wiremock
|
|
613
|
+
|
|
614
|
+
expected_output:
|
|
615
|
+
must_contain:
|
|
616
|
+
- "stub"
|
|
617
|
+
- "request"
|
|
618
|
+
- "response"
|
|
619
|
+
- "200"
|
|
620
|
+
must_match_regex:
|
|
621
|
+
- "(?i)(wiremock|stub|mapping|mock)"
|
|
622
|
+
|
|
623
|
+
validation:
|
|
624
|
+
schema_check: true
|
|
625
|
+
keyword_match_threshold: 0.7
|
|
626
|
+
|
|
627
|
+
# -------------------------------------------------------------------------
|
|
628
|
+
# Pact Broker Integration Tests
|
|
629
|
+
# -------------------------------------------------------------------------
|
|
630
|
+
|
|
631
|
+
- id: tc014_pact_broker_publish
|
|
632
|
+
description: "Skill explains Pact Broker publishing workflow"
|
|
633
|
+
category: broker
|
|
634
|
+
priority: medium
|
|
635
|
+
|
|
636
|
+
input:
|
|
637
|
+
prompt: |
|
|
638
|
+
How do I publish consumer Pact files to a Pact Broker?
|
|
639
|
+
What tags and versions should I use?
|
|
640
|
+
CI/CD integration best practices?
|
|
641
|
+
context:
|
|
642
|
+
framework: pact
|
|
643
|
+
environment: ci
|
|
644
|
+
|
|
645
|
+
expected_output:
|
|
646
|
+
must_contain:
|
|
647
|
+
- "publish"
|
|
648
|
+
- "broker"
|
|
649
|
+
- "version"
|
|
650
|
+
- "tag"
|
|
651
|
+
must_match_regex:
|
|
652
|
+
- "(?i)(pact.*broker|publish|ci.*cd)"
|
|
653
|
+
|
|
654
|
+
validation:
|
|
655
|
+
schema_check: true
|
|
656
|
+
keyword_match_threshold: 0.7
|
|
657
|
+
|
|
658
|
+
# -------------------------------------------------------------------------
|
|
659
|
+
# Edge Cases
|
|
660
|
+
# -------------------------------------------------------------------------
|
|
661
|
+
|
|
662
|
+
- id: tc015_no_contracts
|
|
663
|
+
description: "Skill handles case with no contracts gracefully"
|
|
664
|
+
category: edge_cases
|
|
665
|
+
priority: medium
|
|
666
|
+
|
|
667
|
+
input:
|
|
668
|
+
prompt: |
|
|
669
|
+
I have a new service with no consumers yet.
|
|
670
|
+
How should I set up contract testing?
|
|
671
|
+
context:
|
|
672
|
+
contractType: consumer-driven
|
|
673
|
+
|
|
674
|
+
expected_output:
|
|
675
|
+
must_contain:
|
|
676
|
+
- "consumer"
|
|
677
|
+
- "contract"
|
|
678
|
+
must_not_contain:
|
|
679
|
+
- "error"
|
|
680
|
+
- "impossible"
|
|
681
|
+
|
|
682
|
+
validation:
|
|
683
|
+
schema_check: true
|
|
684
|
+
allow_partial: true
|
|
685
|
+
|
|
686
|
+
- id: tc016_multiple_provider_versions
|
|
687
|
+
description: "Skill handles multiple provider versions correctly"
|
|
688
|
+
category: edge_cases
|
|
689
|
+
priority: medium
|
|
690
|
+
|
|
691
|
+
input:
|
|
692
|
+
prompt: |
|
|
693
|
+
Our provider has multiple versions in production:
|
|
694
|
+
- v1.x used by legacy consumers
|
|
695
|
+
- v2.x used by new consumers
|
|
696
|
+
|
|
697
|
+
How do we handle contract testing for both?
|
|
698
|
+
context:
|
|
699
|
+
multiVersion: true
|
|
700
|
+
|
|
701
|
+
expected_output:
|
|
702
|
+
must_contain:
|
|
703
|
+
- "version"
|
|
704
|
+
- "consumer"
|
|
705
|
+
- "provider"
|
|
706
|
+
must_match_regex:
|
|
707
|
+
- "(?i)(versioning|backward.*compatible|support)"
|
|
708
|
+
|
|
709
|
+
validation:
|
|
710
|
+
schema_check: true
|
|
711
|
+
|
|
712
|
+
timeout_ms: 60000
|
|
713
|
+
|
|
714
|
+
# =============================================================================
|
|
715
|
+
# Success Criteria
|
|
716
|
+
# =============================================================================
|
|
717
|
+
|
|
718
|
+
success_criteria:
|
|
719
|
+
# Minimum percentage of tests that must pass
|
|
720
|
+
pass_rate: 0.90
|
|
721
|
+
|
|
722
|
+
# Critical tests must have 100% pass rate
|
|
723
|
+
critical_pass_rate: 1.0
|
|
724
|
+
|
|
725
|
+
# Average reasoning quality across all tests
|
|
726
|
+
avg_reasoning_quality: 0.7
|
|
727
|
+
|
|
728
|
+
# Maximum time for entire suite (5 minutes)
|
|
729
|
+
max_execution_time_ms: 300000
|
|
730
|
+
|
|
731
|
+
# Maximum variance between different models (15%)
|
|
732
|
+
cross_model_variance: 0.15
|
|
733
|
+
|
|
734
|
+
# =============================================================================
|
|
735
|
+
# Metadata
|
|
736
|
+
# =============================================================================
|
|
737
|
+
|
|
738
|
+
metadata:
|
|
739
|
+
author: "@agentic-qe"
|
|
740
|
+
created: "2026-02-02"
|
|
741
|
+
last_updated: "2026-02-02"
|
|
742
|
+
coverage_target: >
|
|
743
|
+
Contract testing patterns including consumer-driven contracts (Pact),
|
|
744
|
+
provider verification, breaking change detection, semantic versioning,
|
|
745
|
+
canIDeploy decisions, Spring Cloud Contract, and mock generation.
|
|
746
|
+
Tests 16 scenarios across 9 categories.
|
|
747
|
+
adr_reference: "ADR-056"
|
|
748
|
+
trust_tier: 3
|