agentic-qe 3.7.9 → 3.7.10
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 +14 -0
- package/README.md +169 -900
- 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/cli/bundle.js +54 -31
- 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/init/phases/10-workers.js +2 -2
- package/dist/init/phases/10-workers.js.map +1 -1
- package/dist/mcp/bundle.js +42 -19
- 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/package.json +1 -1
- package/scripts/prepare-assets.sh +8 -0
|
@@ -1,610 +1,610 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://agentic-qe.dev/schemas/skill-output-template.json",
|
|
4
|
-
"title": "AQE Skill Output Template Schema",
|
|
5
|
-
"description": "Template schema for skill output validation. Extend this for specific skills. All validated skills must conform to this base structure.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
|
|
8
|
-
"properties": {
|
|
9
|
-
"skillName": {
|
|
10
|
-
"type": "string",
|
|
11
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
12
|
-
"minLength": 2,
|
|
13
|
-
"maxLength": 64,
|
|
14
|
-
"description": "Name of the skill that produced this output (lowercase, hyphenated)"
|
|
15
|
-
},
|
|
16
|
-
"version": {
|
|
17
|
-
"type": "string",
|
|
18
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$",
|
|
19
|
-
"description": "Semantic version of the skill (MAJOR.MINOR.PATCH with optional prerelease)"
|
|
20
|
-
},
|
|
21
|
-
"timestamp": {
|
|
22
|
-
"type": "string",
|
|
23
|
-
"format": "date-time",
|
|
24
|
-
"description": "ISO 8601 timestamp of output generation"
|
|
25
|
-
},
|
|
26
|
-
"status": {
|
|
27
|
-
"type": "string",
|
|
28
|
-
"enum": ["success", "partial", "failed", "skipped"],
|
|
29
|
-
"description": "Overall execution status: success=all checks passed, partial=some passed, failed=critical failure, skipped=not applicable"
|
|
30
|
-
},
|
|
31
|
-
"trustTier": {
|
|
32
|
-
"type": "integer",
|
|
33
|
-
"minimum": 0,
|
|
34
|
-
"maximum": 3,
|
|
35
|
-
"description": "Trust tier: 0=declarative only, 1=has schema, 2=has validator, 3=has eval suite"
|
|
36
|
-
},
|
|
37
|
-
"output": {
|
|
38
|
-
"type": "object",
|
|
39
|
-
"description": "Skill-specific output data. Extend in skill-specific schema.",
|
|
40
|
-
"required": [],
|
|
41
|
-
"properties": {
|
|
42
|
-
"summary": {
|
|
43
|
-
"type": "string",
|
|
44
|
-
"minLength": 10,
|
|
45
|
-
"maxLength": 2000,
|
|
46
|
-
"description": "Human-readable summary of findings (10-2000 chars)"
|
|
47
|
-
},
|
|
48
|
-
"score": {
|
|
49
|
-
"$ref": "#/$defs/score",
|
|
50
|
-
"description": "Overall score/grade if applicable"
|
|
51
|
-
},
|
|
52
|
-
"findings": {
|
|
53
|
-
"type": "array",
|
|
54
|
-
"items": {
|
|
55
|
-
"$ref": "#/$defs/finding"
|
|
56
|
-
},
|
|
57
|
-
"maxItems": 500,
|
|
58
|
-
"description": "List of findings/issues discovered"
|
|
59
|
-
},
|
|
60
|
-
"recommendations": {
|
|
61
|
-
"type": "array",
|
|
62
|
-
"items": {
|
|
63
|
-
"$ref": "#/$defs/recommendation"
|
|
64
|
-
},
|
|
65
|
-
"maxItems": 100,
|
|
66
|
-
"description": "Actionable recommendations for improvement"
|
|
67
|
-
},
|
|
68
|
-
"metrics": {
|
|
69
|
-
"$ref": "#/$defs/metrics",
|
|
70
|
-
"description": "Quantitative metrics from analysis"
|
|
71
|
-
},
|
|
72
|
-
"artifacts": {
|
|
73
|
-
"type": "array",
|
|
74
|
-
"items": {
|
|
75
|
-
"$ref": "#/$defs/artifact"
|
|
76
|
-
},
|
|
77
|
-
"maxItems": 50,
|
|
78
|
-
"description": "Generated artifacts (reports, files, etc.)"
|
|
79
|
-
},
|
|
80
|
-
"categories": {
|
|
81
|
-
"type": "object",
|
|
82
|
-
"additionalProperties": {
|
|
83
|
-
"$ref": "#/$defs/categoryScore"
|
|
84
|
-
},
|
|
85
|
-
"description": "Breakdown by category (e.g., OWASP categories, testability principles)"
|
|
86
|
-
},
|
|
87
|
-
"timeline": {
|
|
88
|
-
"type": "array",
|
|
89
|
-
"items": {
|
|
90
|
-
"$ref": "#/$defs/timelineEvent"
|
|
91
|
-
},
|
|
92
|
-
"description": "Execution timeline for debugging/auditing"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
"metadata": {
|
|
97
|
-
"type": "object",
|
|
98
|
-
"description": "Execution metadata for debugging, caching, and auditing",
|
|
99
|
-
"properties": {
|
|
100
|
-
"executionTimeMs": {
|
|
101
|
-
"type": "integer",
|
|
102
|
-
"minimum": 0,
|
|
103
|
-
"maximum": 3600000,
|
|
104
|
-
"description": "Execution time in milliseconds (max 1 hour)"
|
|
105
|
-
},
|
|
106
|
-
"toolsUsed": {
|
|
107
|
-
"type": "array",
|
|
108
|
-
"items": {
|
|
109
|
-
"type": "string",
|
|
110
|
-
"pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$"
|
|
111
|
-
},
|
|
112
|
-
"uniqueItems": true,
|
|
113
|
-
"maxItems": 50,
|
|
114
|
-
"description": "Tools/utilities invoked during execution"
|
|
115
|
-
},
|
|
116
|
-
"agentId": {
|
|
117
|
-
"type": "string",
|
|
118
|
-
"pattern": "^qe-[a-z][a-z0-9-]*$",
|
|
119
|
-
"description": "ID of the agent that executed the skill (e.g., qe-security-scanner)"
|
|
120
|
-
},
|
|
121
|
-
"modelUsed": {
|
|
122
|
-
"type": "string",
|
|
123
|
-
"description": "LLM model used for execution (e.g., claude-3.5-sonnet)"
|
|
124
|
-
},
|
|
125
|
-
"inputHash": {
|
|
126
|
-
"type": "string",
|
|
127
|
-
"pattern": "^[a-f0-9]{64}$",
|
|
128
|
-
"description": "SHA-256 hash of input for caching/deduplication"
|
|
129
|
-
},
|
|
130
|
-
"parentTaskId": {
|
|
131
|
-
"type": "string",
|
|
132
|
-
"format": "uuid",
|
|
133
|
-
"description": "UUID of parent task if part of swarm execution"
|
|
134
|
-
},
|
|
135
|
-
"targetUrl": {
|
|
136
|
-
"type": "string",
|
|
137
|
-
"format": "uri",
|
|
138
|
-
"description": "Target URL if applicable"
|
|
139
|
-
},
|
|
140
|
-
"targetPath": {
|
|
141
|
-
"type": "string",
|
|
142
|
-
"description": "Target file/directory path if applicable"
|
|
143
|
-
},
|
|
144
|
-
"environment": {
|
|
145
|
-
"type": "string",
|
|
146
|
-
"enum": ["development", "staging", "production", "ci"],
|
|
147
|
-
"description": "Environment where skill was executed"
|
|
148
|
-
},
|
|
149
|
-
"retryCount": {
|
|
150
|
-
"type": "integer",
|
|
151
|
-
"minimum": 0,
|
|
152
|
-
"maximum": 10,
|
|
153
|
-
"description": "Number of retries before success/failure"
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
|
-
"validation": {
|
|
158
|
-
"type": "object",
|
|
159
|
-
"description": "Self-reported validation status from skill validator",
|
|
160
|
-
"properties": {
|
|
161
|
-
"schemaValid": {
|
|
162
|
-
"type": "boolean",
|
|
163
|
-
"description": "Whether output passes JSON schema validation"
|
|
164
|
-
},
|
|
165
|
-
"contentValid": {
|
|
166
|
-
"type": "boolean",
|
|
167
|
-
"description": "Whether output passes content validation rules"
|
|
168
|
-
},
|
|
169
|
-
"confidence": {
|
|
170
|
-
"type": "number",
|
|
171
|
-
"minimum": 0,
|
|
172
|
-
"maximum": 1,
|
|
173
|
-
"description": "Confidence score for output correctness (0.0-1.0)"
|
|
174
|
-
},
|
|
175
|
-
"warnings": {
|
|
176
|
-
"type": "array",
|
|
177
|
-
"items": {
|
|
178
|
-
"type": "string",
|
|
179
|
-
"maxLength": 500
|
|
180
|
-
},
|
|
181
|
-
"maxItems": 20,
|
|
182
|
-
"description": "Validation warnings (non-fatal issues)"
|
|
183
|
-
},
|
|
184
|
-
"errors": {
|
|
185
|
-
"type": "array",
|
|
186
|
-
"items": {
|
|
187
|
-
"type": "string",
|
|
188
|
-
"maxLength": 500
|
|
189
|
-
},
|
|
190
|
-
"maxItems": 20,
|
|
191
|
-
"description": "Validation errors encountered"
|
|
192
|
-
},
|
|
193
|
-
"validatorVersion": {
|
|
194
|
-
"type": "string",
|
|
195
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
196
|
-
"description": "Version of validator used"
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
},
|
|
200
|
-
"learning": {
|
|
201
|
-
"type": "object",
|
|
202
|
-
"description": "Data for ReasoningBank learning integration",
|
|
203
|
-
"properties": {
|
|
204
|
-
"patternsDetected": {
|
|
205
|
-
"type": "array",
|
|
206
|
-
"items": {
|
|
207
|
-
"type": "string",
|
|
208
|
-
"maxLength": 200
|
|
209
|
-
},
|
|
210
|
-
"maxItems": 20,
|
|
211
|
-
"description": "Pattern names detected during execution"
|
|
212
|
-
},
|
|
213
|
-
"reward": {
|
|
214
|
-
"type": "number",
|
|
215
|
-
"minimum": 0,
|
|
216
|
-
"maximum": 1,
|
|
217
|
-
"description": "Reward signal for reinforcement learning (0.0-1.0)"
|
|
218
|
-
},
|
|
219
|
-
"feedbackLoop": {
|
|
220
|
-
"type": "object",
|
|
221
|
-
"properties": {
|
|
222
|
-
"previousRunId": {
|
|
223
|
-
"type": "string",
|
|
224
|
-
"format": "uuid",
|
|
225
|
-
"description": "ID of previous run for comparison"
|
|
226
|
-
},
|
|
227
|
-
"improvement": {
|
|
228
|
-
"type": "number",
|
|
229
|
-
"minimum": -1,
|
|
230
|
-
"maximum": 1,
|
|
231
|
-
"description": "Improvement over previous run (-1.0 to 1.0)"
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
"description": "Quality feedback loop data"
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
"$defs": {
|
|
240
|
-
"score": {
|
|
241
|
-
"type": "object",
|
|
242
|
-
"description": "Standardized score object",
|
|
243
|
-
"required": ["value", "max"],
|
|
244
|
-
"properties": {
|
|
245
|
-
"value": {
|
|
246
|
-
"type": "number",
|
|
247
|
-
"minimum": 0,
|
|
248
|
-
"description": "Score value"
|
|
249
|
-
},
|
|
250
|
-
"max": {
|
|
251
|
-
"type": "number",
|
|
252
|
-
"minimum": 1,
|
|
253
|
-
"description": "Maximum possible score"
|
|
254
|
-
},
|
|
255
|
-
"grade": {
|
|
256
|
-
"type": "string",
|
|
257
|
-
"pattern": "^[A-F][+-]?$",
|
|
258
|
-
"description": "Letter grade (A, A-, B+, B, etc.)"
|
|
259
|
-
},
|
|
260
|
-
"percentile": {
|
|
261
|
-
"type": "number",
|
|
262
|
-
"minimum": 0,
|
|
263
|
-
"maximum": 100,
|
|
264
|
-
"description": "Percentile ranking if available"
|
|
265
|
-
},
|
|
266
|
-
"trend": {
|
|
267
|
-
"type": "string",
|
|
268
|
-
"enum": ["improving", "stable", "declining", "unknown"],
|
|
269
|
-
"description": "Trend compared to previous assessments"
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
},
|
|
273
|
-
"finding": {
|
|
274
|
-
"type": "object",
|
|
275
|
-
"description": "Individual finding/issue discovered",
|
|
276
|
-
"required": ["id", "title", "severity"],
|
|
277
|
-
"properties": {
|
|
278
|
-
"id": {
|
|
279
|
-
"type": "string",
|
|
280
|
-
"pattern": "^[A-Z]{2,6}-\\d{3,6}$",
|
|
281
|
-
"description": "Unique finding identifier (e.g., SEC-001, A11Y-0042)"
|
|
282
|
-
},
|
|
283
|
-
"title": {
|
|
284
|
-
"type": "string",
|
|
285
|
-
"minLength": 5,
|
|
286
|
-
"maxLength": 200,
|
|
287
|
-
"description": "Finding title (5-200 chars)"
|
|
288
|
-
},
|
|
289
|
-
"description": {
|
|
290
|
-
"type": "string",
|
|
291
|
-
"maxLength": 2000,
|
|
292
|
-
"description": "Detailed description"
|
|
293
|
-
},
|
|
294
|
-
"severity": {
|
|
295
|
-
"type": "string",
|
|
296
|
-
"enum": ["critical", "high", "medium", "low", "info"],
|
|
297
|
-
"description": "Severity: critical=immediate fix, high=fix soon, medium=plan fix, low=nice to have, info=informational"
|
|
298
|
-
},
|
|
299
|
-
"category": {
|
|
300
|
-
"type": "string",
|
|
301
|
-
"maxLength": 100,
|
|
302
|
-
"description": "Finding category (e.g., A01-Broken-Access-Control, WCAG-1.1.1)"
|
|
303
|
-
},
|
|
304
|
-
"location": {
|
|
305
|
-
"$ref": "#/$defs/location",
|
|
306
|
-
"description": "Location of the finding"
|
|
307
|
-
},
|
|
308
|
-
"evidence": {
|
|
309
|
-
"type": "string",
|
|
310
|
-
"maxLength": 5000,
|
|
311
|
-
"description": "Evidence supporting the finding (code snippet, screenshot path, etc.)"
|
|
312
|
-
},
|
|
313
|
-
"cwe": {
|
|
314
|
-
"type": "string",
|
|
315
|
-
"pattern": "^CWE-\\d{1,4}$",
|
|
316
|
-
"description": "CWE identifier (e.g., CWE-79 for XSS)"
|
|
317
|
-
},
|
|
318
|
-
"cvss": {
|
|
319
|
-
"type": "number",
|
|
320
|
-
"minimum": 0,
|
|
321
|
-
"maximum": 10,
|
|
322
|
-
"description": "CVSS v3.1 score (0.0-10.0)"
|
|
323
|
-
},
|
|
324
|
-
"owasp": {
|
|
325
|
-
"type": "string",
|
|
326
|
-
"pattern": "^A\\d{2}:\\d{4}$",
|
|
327
|
-
"description": "OWASP Top 10 category (e.g., A01:2021)"
|
|
328
|
-
},
|
|
329
|
-
"wcag": {
|
|
330
|
-
"type": "string",
|
|
331
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
332
|
-
"description": "WCAG success criterion (e.g., 1.1.1)"
|
|
333
|
-
},
|
|
334
|
-
"remediation": {
|
|
335
|
-
"type": "string",
|
|
336
|
-
"maxLength": 2000,
|
|
337
|
-
"description": "How to fix this finding"
|
|
338
|
-
},
|
|
339
|
-
"falsePositive": {
|
|
340
|
-
"type": "boolean",
|
|
341
|
-
"default": false,
|
|
342
|
-
"description": "Whether this is a potential false positive"
|
|
343
|
-
},
|
|
344
|
-
"confidence": {
|
|
345
|
-
"type": "number",
|
|
346
|
-
"minimum": 0,
|
|
347
|
-
"maximum": 1,
|
|
348
|
-
"description": "Confidence in this finding (0.0-1.0)"
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
},
|
|
352
|
-
"recommendation": {
|
|
353
|
-
"type": "object",
|
|
354
|
-
"description": "Actionable recommendation for improvement",
|
|
355
|
-
"required": ["id", "title", "priority"],
|
|
356
|
-
"properties": {
|
|
357
|
-
"id": {
|
|
358
|
-
"type": "string",
|
|
359
|
-
"pattern": "^REC-\\d{3,6}$",
|
|
360
|
-
"description": "Unique recommendation identifier (e.g., REC-001)"
|
|
361
|
-
},
|
|
362
|
-
"title": {
|
|
363
|
-
"type": "string",
|
|
364
|
-
"minLength": 5,
|
|
365
|
-
"maxLength": 200,
|
|
366
|
-
"description": "Recommendation title"
|
|
367
|
-
},
|
|
368
|
-
"description": {
|
|
369
|
-
"type": "string",
|
|
370
|
-
"maxLength": 2000,
|
|
371
|
-
"description": "Detailed recommendation"
|
|
372
|
-
},
|
|
373
|
-
"priority": {
|
|
374
|
-
"type": "string",
|
|
375
|
-
"enum": ["critical", "high", "medium", "low"],
|
|
376
|
-
"description": "Priority level"
|
|
377
|
-
},
|
|
378
|
-
"effort": {
|
|
379
|
-
"type": "string",
|
|
380
|
-
"enum": ["trivial", "low", "medium", "high", "major"],
|
|
381
|
-
"description": "Estimated effort: trivial=<1hr, low=1-4hr, medium=1-3d, high=1-2wk, major=>2wk"
|
|
382
|
-
},
|
|
383
|
-
"impact": {
|
|
384
|
-
"type": "integer",
|
|
385
|
-
"minimum": 1,
|
|
386
|
-
"maximum": 10,
|
|
387
|
-
"description": "Expected impact score (1-10)"
|
|
388
|
-
},
|
|
389
|
-
"relatedFindings": {
|
|
390
|
-
"type": "array",
|
|
391
|
-
"items": {
|
|
392
|
-
"type": "string",
|
|
393
|
-
"pattern": "^[A-Z]{2,6}-\\d{3,6}$"
|
|
394
|
-
},
|
|
395
|
-
"description": "IDs of related findings"
|
|
396
|
-
},
|
|
397
|
-
"codeExample": {
|
|
398
|
-
"type": "string",
|
|
399
|
-
"maxLength": 5000,
|
|
400
|
-
"description": "Example code for remediation"
|
|
401
|
-
},
|
|
402
|
-
"resources": {
|
|
403
|
-
"type": "array",
|
|
404
|
-
"items": {
|
|
405
|
-
"type": "object",
|
|
406
|
-
"required": ["title", "url"],
|
|
407
|
-
"properties": {
|
|
408
|
-
"title": { "type": "string" },
|
|
409
|
-
"url": { "type": "string", "format": "uri" }
|
|
410
|
-
}
|
|
411
|
-
},
|
|
412
|
-
"maxItems": 10,
|
|
413
|
-
"description": "External resources for learning more"
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
},
|
|
417
|
-
"artifact": {
|
|
418
|
-
"type": "object",
|
|
419
|
-
"description": "Generated artifact (file, report, etc.)",
|
|
420
|
-
"required": ["type", "path"],
|
|
421
|
-
"properties": {
|
|
422
|
-
"type": {
|
|
423
|
-
"type": "string",
|
|
424
|
-
"enum": ["report", "test", "config", "data", "log", "screenshot", "video", "coverage"],
|
|
425
|
-
"description": "Artifact type"
|
|
426
|
-
},
|
|
427
|
-
"path": {
|
|
428
|
-
"type": "string",
|
|
429
|
-
"maxLength": 500,
|
|
430
|
-
"description": "Path to artifact (relative to project root)"
|
|
431
|
-
},
|
|
432
|
-
"format": {
|
|
433
|
-
"type": "string",
|
|
434
|
-
"enum": ["json", "html", "md", "txt", "csv", "xml", "yaml", "png", "jpg", "webm", "mp4"],
|
|
435
|
-
"description": "Artifact format"
|
|
436
|
-
},
|
|
437
|
-
"description": {
|
|
438
|
-
"type": "string",
|
|
439
|
-
"maxLength": 500,
|
|
440
|
-
"description": "Artifact description"
|
|
441
|
-
},
|
|
442
|
-
"sizeBytes": {
|
|
443
|
-
"type": "integer",
|
|
444
|
-
"minimum": 0,
|
|
445
|
-
"description": "File size in bytes"
|
|
446
|
-
},
|
|
447
|
-
"checksum": {
|
|
448
|
-
"type": "string",
|
|
449
|
-
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
450
|
-
"description": "SHA-256 checksum for integrity verification"
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
},
|
|
454
|
-
"location": {
|
|
455
|
-
"type": "object",
|
|
456
|
-
"description": "Location reference for findings",
|
|
457
|
-
"properties": {
|
|
458
|
-
"file": {
|
|
459
|
-
"type": "string",
|
|
460
|
-
"maxLength": 500,
|
|
461
|
-
"description": "File path"
|
|
462
|
-
},
|
|
463
|
-
"line": {
|
|
464
|
-
"type": "integer",
|
|
465
|
-
"minimum": 1,
|
|
466
|
-
"description": "Line number"
|
|
467
|
-
},
|
|
468
|
-
"column": {
|
|
469
|
-
"type": "integer",
|
|
470
|
-
"minimum": 1,
|
|
471
|
-
"description": "Column number"
|
|
472
|
-
},
|
|
473
|
-
"endLine": {
|
|
474
|
-
"type": "integer",
|
|
475
|
-
"minimum": 1,
|
|
476
|
-
"description": "End line number for multi-line findings"
|
|
477
|
-
},
|
|
478
|
-
"endColumn": {
|
|
479
|
-
"type": "integer",
|
|
480
|
-
"minimum": 1,
|
|
481
|
-
"description": "End column number"
|
|
482
|
-
},
|
|
483
|
-
"url": {
|
|
484
|
-
"type": "string",
|
|
485
|
-
"format": "uri",
|
|
486
|
-
"description": "URL if web-based finding"
|
|
487
|
-
},
|
|
488
|
-
"selector": {
|
|
489
|
-
"type": "string",
|
|
490
|
-
"maxLength": 500,
|
|
491
|
-
"description": "CSS selector for DOM element"
|
|
492
|
-
},
|
|
493
|
-
"xpath": {
|
|
494
|
-
"type": "string",
|
|
495
|
-
"maxLength": 500,
|
|
496
|
-
"description": "XPath for DOM element"
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
},
|
|
500
|
-
"metrics": {
|
|
501
|
-
"type": "object",
|
|
502
|
-
"description": "Quantitative metrics from analysis",
|
|
503
|
-
"properties": {
|
|
504
|
-
"total": {
|
|
505
|
-
"type": "integer",
|
|
506
|
-
"minimum": 0,
|
|
507
|
-
"description": "Total items analyzed"
|
|
508
|
-
},
|
|
509
|
-
"passed": {
|
|
510
|
-
"type": "integer",
|
|
511
|
-
"minimum": 0,
|
|
512
|
-
"description": "Items that passed"
|
|
513
|
-
},
|
|
514
|
-
"failed": {
|
|
515
|
-
"type": "integer",
|
|
516
|
-
"minimum": 0,
|
|
517
|
-
"description": "Items that failed"
|
|
518
|
-
},
|
|
519
|
-
"skipped": {
|
|
520
|
-
"type": "integer",
|
|
521
|
-
"minimum": 0,
|
|
522
|
-
"description": "Items skipped"
|
|
523
|
-
},
|
|
524
|
-
"coverage": {
|
|
525
|
-
"type": "number",
|
|
526
|
-
"minimum": 0,
|
|
527
|
-
"maximum": 100,
|
|
528
|
-
"description": "Coverage percentage"
|
|
529
|
-
},
|
|
530
|
-
"duration": {
|
|
531
|
-
"type": "integer",
|
|
532
|
-
"minimum": 0,
|
|
533
|
-
"description": "Duration in milliseconds"
|
|
534
|
-
},
|
|
535
|
-
"custom": {
|
|
536
|
-
"type": "object",
|
|
537
|
-
"additionalProperties": {
|
|
538
|
-
"oneOf": [
|
|
539
|
-
{ "type": "number" },
|
|
540
|
-
{ "type": "string" },
|
|
541
|
-
{ "type": "boolean" }
|
|
542
|
-
]
|
|
543
|
-
},
|
|
544
|
-
"description": "Skill-specific custom metrics"
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
},
|
|
548
|
-
"categoryScore": {
|
|
549
|
-
"type": "object",
|
|
550
|
-
"description": "Score for a specific category",
|
|
551
|
-
"required": ["score"],
|
|
552
|
-
"properties": {
|
|
553
|
-
"score": {
|
|
554
|
-
"type": "number",
|
|
555
|
-
"minimum": 0,
|
|
556
|
-
"maximum": 100,
|
|
557
|
-
"description": "Category score (0-100)"
|
|
558
|
-
},
|
|
559
|
-
"weight": {
|
|
560
|
-
"type": "number",
|
|
561
|
-
"minimum": 0,
|
|
562
|
-
"maximum": 1,
|
|
563
|
-
"description": "Weight in overall score (0.0-1.0)"
|
|
564
|
-
},
|
|
565
|
-
"description": {
|
|
566
|
-
"type": "string",
|
|
567
|
-
"maxLength": 500,
|
|
568
|
-
"description": "Category description"
|
|
569
|
-
},
|
|
570
|
-
"grade": {
|
|
571
|
-
"type": "string",
|
|
572
|
-
"pattern": "^[A-F][+-]?$",
|
|
573
|
-
"description": "Letter grade for this category"
|
|
574
|
-
},
|
|
575
|
-
"findingCount": {
|
|
576
|
-
"type": "integer",
|
|
577
|
-
"minimum": 0,
|
|
578
|
-
"description": "Number of findings in this category"
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
},
|
|
582
|
-
"timelineEvent": {
|
|
583
|
-
"type": "object",
|
|
584
|
-
"description": "Event in execution timeline",
|
|
585
|
-
"required": ["timestamp", "event"],
|
|
586
|
-
"properties": {
|
|
587
|
-
"timestamp": {
|
|
588
|
-
"type": "string",
|
|
589
|
-
"format": "date-time",
|
|
590
|
-
"description": "When the event occurred"
|
|
591
|
-
},
|
|
592
|
-
"event": {
|
|
593
|
-
"type": "string",
|
|
594
|
-
"maxLength": 200,
|
|
595
|
-
"description": "Event description"
|
|
596
|
-
},
|
|
597
|
-
"type": {
|
|
598
|
-
"type": "string",
|
|
599
|
-
"enum": ["start", "checkpoint", "warning", "error", "complete"],
|
|
600
|
-
"description": "Event type"
|
|
601
|
-
},
|
|
602
|
-
"durationMs": {
|
|
603
|
-
"type": "integer",
|
|
604
|
-
"minimum": 0,
|
|
605
|
-
"description": "Duration since previous event"
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentic-qe.dev/schemas/skill-output-template.json",
|
|
4
|
+
"title": "AQE Skill Output Template Schema",
|
|
5
|
+
"description": "Template schema for skill output validation. Extend this for specific skills. All validated skills must conform to this base structure.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"skillName": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
12
|
+
"minLength": 2,
|
|
13
|
+
"maxLength": 64,
|
|
14
|
+
"description": "Name of the skill that produced this output (lowercase, hyphenated)"
|
|
15
|
+
},
|
|
16
|
+
"version": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$",
|
|
19
|
+
"description": "Semantic version of the skill (MAJOR.MINOR.PATCH with optional prerelease)"
|
|
20
|
+
},
|
|
21
|
+
"timestamp": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"format": "date-time",
|
|
24
|
+
"description": "ISO 8601 timestamp of output generation"
|
|
25
|
+
},
|
|
26
|
+
"status": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"enum": ["success", "partial", "failed", "skipped"],
|
|
29
|
+
"description": "Overall execution status: success=all checks passed, partial=some passed, failed=critical failure, skipped=not applicable"
|
|
30
|
+
},
|
|
31
|
+
"trustTier": {
|
|
32
|
+
"type": "integer",
|
|
33
|
+
"minimum": 0,
|
|
34
|
+
"maximum": 3,
|
|
35
|
+
"description": "Trust tier: 0=declarative only, 1=has schema, 2=has validator, 3=has eval suite"
|
|
36
|
+
},
|
|
37
|
+
"output": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"description": "Skill-specific output data. Extend in skill-specific schema.",
|
|
40
|
+
"required": [],
|
|
41
|
+
"properties": {
|
|
42
|
+
"summary": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 10,
|
|
45
|
+
"maxLength": 2000,
|
|
46
|
+
"description": "Human-readable summary of findings (10-2000 chars)"
|
|
47
|
+
},
|
|
48
|
+
"score": {
|
|
49
|
+
"$ref": "#/$defs/score",
|
|
50
|
+
"description": "Overall score/grade if applicable"
|
|
51
|
+
},
|
|
52
|
+
"findings": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"$ref": "#/$defs/finding"
|
|
56
|
+
},
|
|
57
|
+
"maxItems": 500,
|
|
58
|
+
"description": "List of findings/issues discovered"
|
|
59
|
+
},
|
|
60
|
+
"recommendations": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": {
|
|
63
|
+
"$ref": "#/$defs/recommendation"
|
|
64
|
+
},
|
|
65
|
+
"maxItems": 100,
|
|
66
|
+
"description": "Actionable recommendations for improvement"
|
|
67
|
+
},
|
|
68
|
+
"metrics": {
|
|
69
|
+
"$ref": "#/$defs/metrics",
|
|
70
|
+
"description": "Quantitative metrics from analysis"
|
|
71
|
+
},
|
|
72
|
+
"artifacts": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"$ref": "#/$defs/artifact"
|
|
76
|
+
},
|
|
77
|
+
"maxItems": 50,
|
|
78
|
+
"description": "Generated artifacts (reports, files, etc.)"
|
|
79
|
+
},
|
|
80
|
+
"categories": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"additionalProperties": {
|
|
83
|
+
"$ref": "#/$defs/categoryScore"
|
|
84
|
+
},
|
|
85
|
+
"description": "Breakdown by category (e.g., OWASP categories, testability principles)"
|
|
86
|
+
},
|
|
87
|
+
"timeline": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"$ref": "#/$defs/timelineEvent"
|
|
91
|
+
},
|
|
92
|
+
"description": "Execution timeline for debugging/auditing"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"metadata": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"description": "Execution metadata for debugging, caching, and auditing",
|
|
99
|
+
"properties": {
|
|
100
|
+
"executionTimeMs": {
|
|
101
|
+
"type": "integer",
|
|
102
|
+
"minimum": 0,
|
|
103
|
+
"maximum": 3600000,
|
|
104
|
+
"description": "Execution time in milliseconds (max 1 hour)"
|
|
105
|
+
},
|
|
106
|
+
"toolsUsed": {
|
|
107
|
+
"type": "array",
|
|
108
|
+
"items": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$"
|
|
111
|
+
},
|
|
112
|
+
"uniqueItems": true,
|
|
113
|
+
"maxItems": 50,
|
|
114
|
+
"description": "Tools/utilities invoked during execution"
|
|
115
|
+
},
|
|
116
|
+
"agentId": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"pattern": "^qe-[a-z][a-z0-9-]*$",
|
|
119
|
+
"description": "ID of the agent that executed the skill (e.g., qe-security-scanner)"
|
|
120
|
+
},
|
|
121
|
+
"modelUsed": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"description": "LLM model used for execution (e.g., claude-3.5-sonnet)"
|
|
124
|
+
},
|
|
125
|
+
"inputHash": {
|
|
126
|
+
"type": "string",
|
|
127
|
+
"pattern": "^[a-f0-9]{64}$",
|
|
128
|
+
"description": "SHA-256 hash of input for caching/deduplication"
|
|
129
|
+
},
|
|
130
|
+
"parentTaskId": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"format": "uuid",
|
|
133
|
+
"description": "UUID of parent task if part of swarm execution"
|
|
134
|
+
},
|
|
135
|
+
"targetUrl": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"format": "uri",
|
|
138
|
+
"description": "Target URL if applicable"
|
|
139
|
+
},
|
|
140
|
+
"targetPath": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"description": "Target file/directory path if applicable"
|
|
143
|
+
},
|
|
144
|
+
"environment": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"enum": ["development", "staging", "production", "ci"],
|
|
147
|
+
"description": "Environment where skill was executed"
|
|
148
|
+
},
|
|
149
|
+
"retryCount": {
|
|
150
|
+
"type": "integer",
|
|
151
|
+
"minimum": 0,
|
|
152
|
+
"maximum": 10,
|
|
153
|
+
"description": "Number of retries before success/failure"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"validation": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"description": "Self-reported validation status from skill validator",
|
|
160
|
+
"properties": {
|
|
161
|
+
"schemaValid": {
|
|
162
|
+
"type": "boolean",
|
|
163
|
+
"description": "Whether output passes JSON schema validation"
|
|
164
|
+
},
|
|
165
|
+
"contentValid": {
|
|
166
|
+
"type": "boolean",
|
|
167
|
+
"description": "Whether output passes content validation rules"
|
|
168
|
+
},
|
|
169
|
+
"confidence": {
|
|
170
|
+
"type": "number",
|
|
171
|
+
"minimum": 0,
|
|
172
|
+
"maximum": 1,
|
|
173
|
+
"description": "Confidence score for output correctness (0.0-1.0)"
|
|
174
|
+
},
|
|
175
|
+
"warnings": {
|
|
176
|
+
"type": "array",
|
|
177
|
+
"items": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"maxLength": 500
|
|
180
|
+
},
|
|
181
|
+
"maxItems": 20,
|
|
182
|
+
"description": "Validation warnings (non-fatal issues)"
|
|
183
|
+
},
|
|
184
|
+
"errors": {
|
|
185
|
+
"type": "array",
|
|
186
|
+
"items": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"maxLength": 500
|
|
189
|
+
},
|
|
190
|
+
"maxItems": 20,
|
|
191
|
+
"description": "Validation errors encountered"
|
|
192
|
+
},
|
|
193
|
+
"validatorVersion": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
196
|
+
"description": "Version of validator used"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"learning": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"description": "Data for ReasoningBank learning integration",
|
|
203
|
+
"properties": {
|
|
204
|
+
"patternsDetected": {
|
|
205
|
+
"type": "array",
|
|
206
|
+
"items": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"maxLength": 200
|
|
209
|
+
},
|
|
210
|
+
"maxItems": 20,
|
|
211
|
+
"description": "Pattern names detected during execution"
|
|
212
|
+
},
|
|
213
|
+
"reward": {
|
|
214
|
+
"type": "number",
|
|
215
|
+
"minimum": 0,
|
|
216
|
+
"maximum": 1,
|
|
217
|
+
"description": "Reward signal for reinforcement learning (0.0-1.0)"
|
|
218
|
+
},
|
|
219
|
+
"feedbackLoop": {
|
|
220
|
+
"type": "object",
|
|
221
|
+
"properties": {
|
|
222
|
+
"previousRunId": {
|
|
223
|
+
"type": "string",
|
|
224
|
+
"format": "uuid",
|
|
225
|
+
"description": "ID of previous run for comparison"
|
|
226
|
+
},
|
|
227
|
+
"improvement": {
|
|
228
|
+
"type": "number",
|
|
229
|
+
"minimum": -1,
|
|
230
|
+
"maximum": 1,
|
|
231
|
+
"description": "Improvement over previous run (-1.0 to 1.0)"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"description": "Quality feedback loop data"
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"$defs": {
|
|
240
|
+
"score": {
|
|
241
|
+
"type": "object",
|
|
242
|
+
"description": "Standardized score object",
|
|
243
|
+
"required": ["value", "max"],
|
|
244
|
+
"properties": {
|
|
245
|
+
"value": {
|
|
246
|
+
"type": "number",
|
|
247
|
+
"minimum": 0,
|
|
248
|
+
"description": "Score value"
|
|
249
|
+
},
|
|
250
|
+
"max": {
|
|
251
|
+
"type": "number",
|
|
252
|
+
"minimum": 1,
|
|
253
|
+
"description": "Maximum possible score"
|
|
254
|
+
},
|
|
255
|
+
"grade": {
|
|
256
|
+
"type": "string",
|
|
257
|
+
"pattern": "^[A-F][+-]?$",
|
|
258
|
+
"description": "Letter grade (A, A-, B+, B, etc.)"
|
|
259
|
+
},
|
|
260
|
+
"percentile": {
|
|
261
|
+
"type": "number",
|
|
262
|
+
"minimum": 0,
|
|
263
|
+
"maximum": 100,
|
|
264
|
+
"description": "Percentile ranking if available"
|
|
265
|
+
},
|
|
266
|
+
"trend": {
|
|
267
|
+
"type": "string",
|
|
268
|
+
"enum": ["improving", "stable", "declining", "unknown"],
|
|
269
|
+
"description": "Trend compared to previous assessments"
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"finding": {
|
|
274
|
+
"type": "object",
|
|
275
|
+
"description": "Individual finding/issue discovered",
|
|
276
|
+
"required": ["id", "title", "severity"],
|
|
277
|
+
"properties": {
|
|
278
|
+
"id": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"pattern": "^[A-Z]{2,6}-\\d{3,6}$",
|
|
281
|
+
"description": "Unique finding identifier (e.g., SEC-001, A11Y-0042)"
|
|
282
|
+
},
|
|
283
|
+
"title": {
|
|
284
|
+
"type": "string",
|
|
285
|
+
"minLength": 5,
|
|
286
|
+
"maxLength": 200,
|
|
287
|
+
"description": "Finding title (5-200 chars)"
|
|
288
|
+
},
|
|
289
|
+
"description": {
|
|
290
|
+
"type": "string",
|
|
291
|
+
"maxLength": 2000,
|
|
292
|
+
"description": "Detailed description"
|
|
293
|
+
},
|
|
294
|
+
"severity": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"enum": ["critical", "high", "medium", "low", "info"],
|
|
297
|
+
"description": "Severity: critical=immediate fix, high=fix soon, medium=plan fix, low=nice to have, info=informational"
|
|
298
|
+
},
|
|
299
|
+
"category": {
|
|
300
|
+
"type": "string",
|
|
301
|
+
"maxLength": 100,
|
|
302
|
+
"description": "Finding category (e.g., A01-Broken-Access-Control, WCAG-1.1.1)"
|
|
303
|
+
},
|
|
304
|
+
"location": {
|
|
305
|
+
"$ref": "#/$defs/location",
|
|
306
|
+
"description": "Location of the finding"
|
|
307
|
+
},
|
|
308
|
+
"evidence": {
|
|
309
|
+
"type": "string",
|
|
310
|
+
"maxLength": 5000,
|
|
311
|
+
"description": "Evidence supporting the finding (code snippet, screenshot path, etc.)"
|
|
312
|
+
},
|
|
313
|
+
"cwe": {
|
|
314
|
+
"type": "string",
|
|
315
|
+
"pattern": "^CWE-\\d{1,4}$",
|
|
316
|
+
"description": "CWE identifier (e.g., CWE-79 for XSS)"
|
|
317
|
+
},
|
|
318
|
+
"cvss": {
|
|
319
|
+
"type": "number",
|
|
320
|
+
"minimum": 0,
|
|
321
|
+
"maximum": 10,
|
|
322
|
+
"description": "CVSS v3.1 score (0.0-10.0)"
|
|
323
|
+
},
|
|
324
|
+
"owasp": {
|
|
325
|
+
"type": "string",
|
|
326
|
+
"pattern": "^A\\d{2}:\\d{4}$",
|
|
327
|
+
"description": "OWASP Top 10 category (e.g., A01:2021)"
|
|
328
|
+
},
|
|
329
|
+
"wcag": {
|
|
330
|
+
"type": "string",
|
|
331
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
332
|
+
"description": "WCAG success criterion (e.g., 1.1.1)"
|
|
333
|
+
},
|
|
334
|
+
"remediation": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"maxLength": 2000,
|
|
337
|
+
"description": "How to fix this finding"
|
|
338
|
+
},
|
|
339
|
+
"falsePositive": {
|
|
340
|
+
"type": "boolean",
|
|
341
|
+
"default": false,
|
|
342
|
+
"description": "Whether this is a potential false positive"
|
|
343
|
+
},
|
|
344
|
+
"confidence": {
|
|
345
|
+
"type": "number",
|
|
346
|
+
"minimum": 0,
|
|
347
|
+
"maximum": 1,
|
|
348
|
+
"description": "Confidence in this finding (0.0-1.0)"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
"recommendation": {
|
|
353
|
+
"type": "object",
|
|
354
|
+
"description": "Actionable recommendation for improvement",
|
|
355
|
+
"required": ["id", "title", "priority"],
|
|
356
|
+
"properties": {
|
|
357
|
+
"id": {
|
|
358
|
+
"type": "string",
|
|
359
|
+
"pattern": "^REC-\\d{3,6}$",
|
|
360
|
+
"description": "Unique recommendation identifier (e.g., REC-001)"
|
|
361
|
+
},
|
|
362
|
+
"title": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"minLength": 5,
|
|
365
|
+
"maxLength": 200,
|
|
366
|
+
"description": "Recommendation title"
|
|
367
|
+
},
|
|
368
|
+
"description": {
|
|
369
|
+
"type": "string",
|
|
370
|
+
"maxLength": 2000,
|
|
371
|
+
"description": "Detailed recommendation"
|
|
372
|
+
},
|
|
373
|
+
"priority": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"enum": ["critical", "high", "medium", "low"],
|
|
376
|
+
"description": "Priority level"
|
|
377
|
+
},
|
|
378
|
+
"effort": {
|
|
379
|
+
"type": "string",
|
|
380
|
+
"enum": ["trivial", "low", "medium", "high", "major"],
|
|
381
|
+
"description": "Estimated effort: trivial=<1hr, low=1-4hr, medium=1-3d, high=1-2wk, major=>2wk"
|
|
382
|
+
},
|
|
383
|
+
"impact": {
|
|
384
|
+
"type": "integer",
|
|
385
|
+
"minimum": 1,
|
|
386
|
+
"maximum": 10,
|
|
387
|
+
"description": "Expected impact score (1-10)"
|
|
388
|
+
},
|
|
389
|
+
"relatedFindings": {
|
|
390
|
+
"type": "array",
|
|
391
|
+
"items": {
|
|
392
|
+
"type": "string",
|
|
393
|
+
"pattern": "^[A-Z]{2,6}-\\d{3,6}$"
|
|
394
|
+
},
|
|
395
|
+
"description": "IDs of related findings"
|
|
396
|
+
},
|
|
397
|
+
"codeExample": {
|
|
398
|
+
"type": "string",
|
|
399
|
+
"maxLength": 5000,
|
|
400
|
+
"description": "Example code for remediation"
|
|
401
|
+
},
|
|
402
|
+
"resources": {
|
|
403
|
+
"type": "array",
|
|
404
|
+
"items": {
|
|
405
|
+
"type": "object",
|
|
406
|
+
"required": ["title", "url"],
|
|
407
|
+
"properties": {
|
|
408
|
+
"title": { "type": "string" },
|
|
409
|
+
"url": { "type": "string", "format": "uri" }
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"maxItems": 10,
|
|
413
|
+
"description": "External resources for learning more"
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
"artifact": {
|
|
418
|
+
"type": "object",
|
|
419
|
+
"description": "Generated artifact (file, report, etc.)",
|
|
420
|
+
"required": ["type", "path"],
|
|
421
|
+
"properties": {
|
|
422
|
+
"type": {
|
|
423
|
+
"type": "string",
|
|
424
|
+
"enum": ["report", "test", "config", "data", "log", "screenshot", "video", "coverage"],
|
|
425
|
+
"description": "Artifact type"
|
|
426
|
+
},
|
|
427
|
+
"path": {
|
|
428
|
+
"type": "string",
|
|
429
|
+
"maxLength": 500,
|
|
430
|
+
"description": "Path to artifact (relative to project root)"
|
|
431
|
+
},
|
|
432
|
+
"format": {
|
|
433
|
+
"type": "string",
|
|
434
|
+
"enum": ["json", "html", "md", "txt", "csv", "xml", "yaml", "png", "jpg", "webm", "mp4"],
|
|
435
|
+
"description": "Artifact format"
|
|
436
|
+
},
|
|
437
|
+
"description": {
|
|
438
|
+
"type": "string",
|
|
439
|
+
"maxLength": 500,
|
|
440
|
+
"description": "Artifact description"
|
|
441
|
+
},
|
|
442
|
+
"sizeBytes": {
|
|
443
|
+
"type": "integer",
|
|
444
|
+
"minimum": 0,
|
|
445
|
+
"description": "File size in bytes"
|
|
446
|
+
},
|
|
447
|
+
"checksum": {
|
|
448
|
+
"type": "string",
|
|
449
|
+
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
450
|
+
"description": "SHA-256 checksum for integrity verification"
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"location": {
|
|
455
|
+
"type": "object",
|
|
456
|
+
"description": "Location reference for findings",
|
|
457
|
+
"properties": {
|
|
458
|
+
"file": {
|
|
459
|
+
"type": "string",
|
|
460
|
+
"maxLength": 500,
|
|
461
|
+
"description": "File path"
|
|
462
|
+
},
|
|
463
|
+
"line": {
|
|
464
|
+
"type": "integer",
|
|
465
|
+
"minimum": 1,
|
|
466
|
+
"description": "Line number"
|
|
467
|
+
},
|
|
468
|
+
"column": {
|
|
469
|
+
"type": "integer",
|
|
470
|
+
"minimum": 1,
|
|
471
|
+
"description": "Column number"
|
|
472
|
+
},
|
|
473
|
+
"endLine": {
|
|
474
|
+
"type": "integer",
|
|
475
|
+
"minimum": 1,
|
|
476
|
+
"description": "End line number for multi-line findings"
|
|
477
|
+
},
|
|
478
|
+
"endColumn": {
|
|
479
|
+
"type": "integer",
|
|
480
|
+
"minimum": 1,
|
|
481
|
+
"description": "End column number"
|
|
482
|
+
},
|
|
483
|
+
"url": {
|
|
484
|
+
"type": "string",
|
|
485
|
+
"format": "uri",
|
|
486
|
+
"description": "URL if web-based finding"
|
|
487
|
+
},
|
|
488
|
+
"selector": {
|
|
489
|
+
"type": "string",
|
|
490
|
+
"maxLength": 500,
|
|
491
|
+
"description": "CSS selector for DOM element"
|
|
492
|
+
},
|
|
493
|
+
"xpath": {
|
|
494
|
+
"type": "string",
|
|
495
|
+
"maxLength": 500,
|
|
496
|
+
"description": "XPath for DOM element"
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
"metrics": {
|
|
501
|
+
"type": "object",
|
|
502
|
+
"description": "Quantitative metrics from analysis",
|
|
503
|
+
"properties": {
|
|
504
|
+
"total": {
|
|
505
|
+
"type": "integer",
|
|
506
|
+
"minimum": 0,
|
|
507
|
+
"description": "Total items analyzed"
|
|
508
|
+
},
|
|
509
|
+
"passed": {
|
|
510
|
+
"type": "integer",
|
|
511
|
+
"minimum": 0,
|
|
512
|
+
"description": "Items that passed"
|
|
513
|
+
},
|
|
514
|
+
"failed": {
|
|
515
|
+
"type": "integer",
|
|
516
|
+
"minimum": 0,
|
|
517
|
+
"description": "Items that failed"
|
|
518
|
+
},
|
|
519
|
+
"skipped": {
|
|
520
|
+
"type": "integer",
|
|
521
|
+
"minimum": 0,
|
|
522
|
+
"description": "Items skipped"
|
|
523
|
+
},
|
|
524
|
+
"coverage": {
|
|
525
|
+
"type": "number",
|
|
526
|
+
"minimum": 0,
|
|
527
|
+
"maximum": 100,
|
|
528
|
+
"description": "Coverage percentage"
|
|
529
|
+
},
|
|
530
|
+
"duration": {
|
|
531
|
+
"type": "integer",
|
|
532
|
+
"minimum": 0,
|
|
533
|
+
"description": "Duration in milliseconds"
|
|
534
|
+
},
|
|
535
|
+
"custom": {
|
|
536
|
+
"type": "object",
|
|
537
|
+
"additionalProperties": {
|
|
538
|
+
"oneOf": [
|
|
539
|
+
{ "type": "number" },
|
|
540
|
+
{ "type": "string" },
|
|
541
|
+
{ "type": "boolean" }
|
|
542
|
+
]
|
|
543
|
+
},
|
|
544
|
+
"description": "Skill-specific custom metrics"
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
"categoryScore": {
|
|
549
|
+
"type": "object",
|
|
550
|
+
"description": "Score for a specific category",
|
|
551
|
+
"required": ["score"],
|
|
552
|
+
"properties": {
|
|
553
|
+
"score": {
|
|
554
|
+
"type": "number",
|
|
555
|
+
"minimum": 0,
|
|
556
|
+
"maximum": 100,
|
|
557
|
+
"description": "Category score (0-100)"
|
|
558
|
+
},
|
|
559
|
+
"weight": {
|
|
560
|
+
"type": "number",
|
|
561
|
+
"minimum": 0,
|
|
562
|
+
"maximum": 1,
|
|
563
|
+
"description": "Weight in overall score (0.0-1.0)"
|
|
564
|
+
},
|
|
565
|
+
"description": {
|
|
566
|
+
"type": "string",
|
|
567
|
+
"maxLength": 500,
|
|
568
|
+
"description": "Category description"
|
|
569
|
+
},
|
|
570
|
+
"grade": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"pattern": "^[A-F][+-]?$",
|
|
573
|
+
"description": "Letter grade for this category"
|
|
574
|
+
},
|
|
575
|
+
"findingCount": {
|
|
576
|
+
"type": "integer",
|
|
577
|
+
"minimum": 0,
|
|
578
|
+
"description": "Number of findings in this category"
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
"timelineEvent": {
|
|
583
|
+
"type": "object",
|
|
584
|
+
"description": "Event in execution timeline",
|
|
585
|
+
"required": ["timestamp", "event"],
|
|
586
|
+
"properties": {
|
|
587
|
+
"timestamp": {
|
|
588
|
+
"type": "string",
|
|
589
|
+
"format": "date-time",
|
|
590
|
+
"description": "When the event occurred"
|
|
591
|
+
},
|
|
592
|
+
"event": {
|
|
593
|
+
"type": "string",
|
|
594
|
+
"maxLength": 200,
|
|
595
|
+
"description": "Event description"
|
|
596
|
+
},
|
|
597
|
+
"type": {
|
|
598
|
+
"type": "string",
|
|
599
|
+
"enum": ["start", "checkpoint", "warning", "error", "complete"],
|
|
600
|
+
"description": "Event type"
|
|
601
|
+
},
|
|
602
|
+
"durationMs": {
|
|
603
|
+
"type": "integer",
|
|
604
|
+
"minimum": 0,
|
|
605
|
+
"description": "Duration since previous event"
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|