agentic-qe 3.6.1 → 3.6.3
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/agents/v3/qe-accessibility-auditor.md +14 -9
- package/.claude/agents/v3/qe-bdd-generator.md +14 -9
- package/.claude/agents/v3/qe-chaos-engineer.md +15 -10
- package/.claude/agents/v3/qe-code-complexity.md +14 -9
- package/.claude/agents/v3/qe-code-intelligence.md +14 -9
- package/.claude/agents/v3/qe-contract-validator.md +14 -9
- package/.claude/agents/v3/qe-coverage-specialist.md +14 -9
- package/.claude/agents/v3/qe-defect-predictor.md +14 -9
- package/.claude/agents/v3/qe-dependency-mapper.md +14 -9
- package/.claude/agents/v3/qe-deployment-advisor.md +14 -9
- package/.claude/agents/v3/qe-flaky-hunter.md +14 -9
- package/.claude/agents/v3/qe-fleet-commander.md +14 -9
- package/.claude/agents/v3/qe-gap-detector.md +14 -9
- package/.claude/agents/v3/qe-graphql-tester.md +14 -9
- package/.claude/agents/v3/qe-impact-analyzer.md +14 -9
- package/.claude/agents/v3/qe-kg-builder.md +14 -9
- package/.claude/agents/v3/qe-load-tester.md +14 -9
- package/.claude/agents/v3/qe-message-broker-tester.md +15 -10
- package/.claude/agents/v3/qe-metrics-optimizer.md +14 -9
- package/.claude/agents/v3/qe-middleware-validator.md +15 -10
- package/.claude/agents/v3/qe-mutation-tester.md +14 -9
- package/.claude/agents/v3/qe-odata-contract-tester.md +17 -12
- package/.claude/agents/v3/qe-performance-tester.md +14 -9
- package/.claude/agents/v3/qe-product-factors-assessor.md +19 -0
- package/.claude/agents/v3/qe-property-tester.md +14 -9
- package/.claude/agents/v3/qe-quality-criteria-recommender.md +2 -2
- package/.claude/agents/v3/qe-qx-partner.md +101 -14
- package/.claude/agents/v3/qe-regression-analyzer.md +14 -9
- package/.claude/agents/v3/qe-requirements-validator.md +14 -9
- package/.claude/agents/v3/qe-responsive-tester.md +14 -9
- package/.claude/agents/v3/qe-retry-handler.md +14 -9
- package/.claude/agents/v3/qe-risk-assessor.md +14 -9
- package/.claude/agents/v3/qe-root-cause-analyzer.md +14 -9
- package/.claude/agents/v3/qe-sap-idoc-tester.md +16 -11
- package/.claude/agents/v3/qe-sap-rfc-tester.md +15 -10
- package/.claude/agents/v3/qe-security-auditor.md +18 -9
- package/.claude/agents/v3/qe-security-scanner.md +15 -10
- package/.claude/agents/v3/qe-soap-tester.md +15 -10
- package/.claude/agents/v3/qe-sod-analyzer.md +17 -12
- package/.claude/agents/v3/qe-test-architect.md +14 -9
- package/.claude/agents/v3/qe-transfer-specialist.md +14 -9
- package/.claude/agents/v3/subagents/qe-code-reviewer.md +14 -9
- package/.claude/agents/v3/subagents/qe-integration-reviewer.md +14 -9
- package/.claude/agents/v3/subagents/qe-performance-reviewer.md +14 -9
- package/.claude/agents/v3/subagents/qe-security-reviewer.md +14 -9
- package/.claude/agents/v3/subagents/qe-tdd-green.md +14 -9
- package/.claude/agents/v3/subagents/qe-tdd-red.md +14 -9
- package/.claude/agents/v3/subagents/qe-tdd-refactor.md +14 -9
- package/.claude/agents/v3/templates/qx-report-template.html +26 -22
- package/.claude/skills/.validation/README.md +2 -2
- package/.claude/skills/.validation/skill-validation-mcp-integration.md +1 -1
- package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
- package/.claude/skills/TRUST-TIERS.md +55 -55
- package/.claude/skills/a11y-ally/SKILL.md +1 -1
- package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
- package/.claude/skills/a11y-ally/scripts/validate-config.json +42 -0
- package/.claude/skills/accessibility-testing/SKILL.md +1 -1
- package/.claude/skills/accessibility-testing/scripts/validate-config.json +56 -0
- package/.claude/skills/api-testing-patterns/SKILL.md +1 -1
- package/.claude/skills/api-testing-patterns/scripts/validate-config.json +61 -0
- package/.claude/skills/brutal-honesty-review/SKILL.md +1 -1
- package/.claude/skills/brutal-honesty-review/scripts/validate-config.json +34 -0
- package/.claude/skills/bug-reporting-excellence/SKILL.md +1 -1
- package/.claude/skills/bug-reporting-excellence/scripts/validate-config.json +34 -0
- package/.claude/skills/chaos-engineering-resilience/SKILL.md +1 -1
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/.claude/skills/chaos-engineering-resilience/scripts/validate-config.json +47 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +1 -1
- package/.claude/skills/cicd-pipeline-qe-orchestrator/scripts/validate-config.json +42 -0
- package/.claude/skills/code-review-quality/SKILL.md +1 -1
- package/.claude/skills/code-review-quality/scripts/validate-config.json +34 -0
- package/.claude/skills/compatibility-testing/SKILL.md +1 -1
- package/.claude/skills/compatibility-testing/scripts/validate-config.json +44 -0
- package/.claude/skills/compliance-testing/SKILL.md +1 -1
- package/.claude/skills/compliance-testing/scripts/validate-config.json +39 -0
- package/.claude/skills/contract-testing/SKILL.md +1 -1
- package/.claude/skills/contract-testing/scripts/validate-config.json +59 -0
- package/.claude/skills/database-testing/SKILL.md +1 -1
- package/.claude/skills/database-testing/evals/database-testing.yaml +1 -1
- package/.claude/skills/database-testing/scripts/validate-config.json +48 -0
- package/.claude/skills/enterprise-integration-testing/SKILL.md +1 -1
- package/.claude/skills/localization-testing/SKILL.md +1 -1
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/.claude/skills/localization-testing/scripts/validate-config.json +42 -0
- package/.claude/skills/middleware-testing-patterns/SKILL.md +1 -1
- package/.claude/skills/mobile-testing/SKILL.md +1 -1
- package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
- package/.claude/skills/mobile-testing/scripts/validate-config.json +43 -0
- package/.claude/skills/mutation-testing/SKILL.md +1 -1
- package/.claude/skills/mutation-testing/scripts/validate-config.json +44 -0
- package/.claude/skills/n8n-expression-testing/SKILL.md +1 -1
- package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
- package/.claude/skills/n8n-expression-testing/scripts/validate-config.json +39 -0
- package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +1 -1
- package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
- package/.claude/skills/n8n-integration-testing-patterns/scripts/validate-config.json +34 -0
- package/.claude/skills/n8n-security-testing/SKILL.md +1 -1
- package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
- package/.claude/skills/n8n-security-testing/scripts/validate-config.json +34 -0
- package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +1 -1
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/.claude/skills/n8n-trigger-testing-strategies/scripts/validate-config.json +34 -0
- package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +1 -1
- package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
- package/.claude/skills/n8n-workflow-testing-fundamentals/scripts/validate-config.json +35 -0
- package/.claude/skills/observability-testing-patterns/SKILL.md +1 -1
- package/.claude/skills/pentest-validation/SKILL.md +1 -1
- package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
- package/.claude/skills/pentest-validation/scripts/validate-config.json +12 -0
- package/.claude/skills/performance-analysis/SKILL.md +1 -1
- package/.claude/skills/performance-analysis/scripts/validate-config.json +36 -0
- package/.claude/skills/performance-testing/SKILL.md +1 -1
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/.claude/skills/performance-testing/scripts/validate-config.json +55 -0
- package/.claude/skills/qcsd-cicd-swarm/SKILL.md +1 -1
- package/.claude/skills/qcsd-development-swarm/SKILL.md +1 -1
- package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1 -1
- package/.claude/skills/qcsd-ideation-swarm/scripts/validate-config.json +25 -0
- package/.claude/skills/qcsd-refinement-swarm/SKILL.md +1 -1
- package/.claude/skills/qcsd-refinement-swarm/scripts/validate-config.json +25 -0
- package/.claude/skills/qe-chaos-resilience/SKILL.md +1 -1
- package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
- package/.claude/skills/qe-chaos-resilience/scripts/validate-config.json +43 -0
- package/.claude/skills/qe-code-intelligence/SKILL.md +1 -1
- package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
- package/.claude/skills/qe-code-intelligence/scripts/validate-config.json +41 -0
- package/.claude/skills/qe-contract-testing/SKILL.md +1 -1
- package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +1 -1
- package/.claude/skills/qe-contract-testing/scripts/validate-config.json +42 -0
- package/.claude/skills/qe-coverage-analysis/SKILL.md +1 -1
- package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
- package/.claude/skills/qe-coverage-analysis/scripts/validate-config.json +42 -0
- package/.claude/skills/qe-defect-intelligence/SKILL.md +1 -1
- package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
- package/.claude/skills/qe-defect-intelligence/scripts/validate-config.json +40 -0
- package/.claude/skills/qe-iterative-loop/SKILL.md +1 -1
- package/.claude/skills/qe-iterative-loop/scripts/validate-config.json +40 -0
- package/.claude/skills/qe-learning-optimization/SKILL.md +1 -1
- package/.claude/skills/qe-learning-optimization/scripts/validate-config.json +25 -0
- package/.claude/skills/qe-quality-assessment/SKILL.md +1 -1
- package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
- package/.claude/skills/qe-quality-assessment/scripts/validate-config.json +47 -0
- package/.claude/skills/qe-requirements-validation/SKILL.md +1 -1
- package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
- package/.claude/skills/qe-requirements-validation/scripts/validate-config.json +37 -0
- package/.claude/skills/qe-security-compliance/SKILL.md +1 -1
- package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +1 -1
- package/.claude/skills/qe-security-compliance/scripts/validate-config.json +41 -0
- package/.claude/skills/qe-test-execution/SKILL.md +1 -1
- package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
- package/.claude/skills/qe-test-execution/scripts/validate-config.json +37 -0
- package/.claude/skills/qe-test-generation/SKILL.md +1 -1
- package/.claude/skills/qe-test-generation/scripts/validate-config.json +25 -0
- package/.claude/skills/qe-visual-accessibility/SKILL.md +1 -1
- package/.claude/skills/qe-visual-accessibility/scripts/validate-config.json +25 -0
- package/.claude/skills/quality-metrics/SKILL.md +1 -1
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/.claude/skills/quality-metrics/scripts/validate-config.json +43 -0
- package/.claude/skills/refactoring-patterns/SKILL.md +1 -1
- package/.claude/skills/refactoring-patterns/scripts/validate-config.json +35 -0
- package/.claude/skills/regression-testing/SKILL.md +1 -1
- package/.claude/skills/regression-testing/evals/regression-testing.yaml +1 -1
- package/.claude/skills/regression-testing/scripts/validate-config.json +50 -0
- package/.claude/skills/risk-based-testing/SKILL.md +1 -1
- package/.claude/skills/risk-based-testing/scripts/validate-config.json +25 -0
- package/.claude/skills/security-testing/SKILL.md +1 -1
- package/.claude/skills/security-testing/evals/security-testing.yaml +1 -1
- package/.claude/skills/security-testing/scripts/validate-config.json +45 -0
- package/.claude/skills/security-visual-testing/SKILL.md +1 -1
- package/.claude/skills/security-visual-testing/scripts/validate-config.json +45 -0
- package/.claude/skills/sherlock-review/SKILL.md +1 -1
- package/.claude/skills/sherlock-review/scripts/validate-config.json +35 -0
- package/.claude/skills/shift-left-testing/SKILL.md +1 -1
- package/.claude/skills/shift-left-testing/scripts/validate-config.json +25 -0
- package/.claude/skills/shift-right-testing/SKILL.md +1 -1
- package/.claude/skills/shift-right-testing/scripts/validate-config.json +25 -0
- package/.claude/skills/skill-builder/SKILL.md +2 -2
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/tdd-london-chicago/SKILL.md +1 -1
- package/.claude/skills/tdd-london-chicago/scripts/validate-config.json +43 -0
- package/.claude/skills/test-automation-strategy/SKILL.md +1 -1
- package/.claude/skills/test-automation-strategy/scripts/validate-config.json +39 -0
- package/.claude/skills/test-data-management/SKILL.md +1 -1
- package/.claude/skills/test-data-management/evals/test-data-management.yaml +1 -1
- package/.claude/skills/test-data-management/scripts/validate-config.json +41 -0
- package/.claude/skills/test-design-techniques/SKILL.md +1 -1
- package/.claude/skills/test-design-techniques/scripts/validate-config.json +36 -0
- package/.claude/skills/test-reporting-analytics/SKILL.md +1 -1
- package/.claude/skills/test-reporting-analytics/scripts/validate-config.json +36 -0
- package/.claude/skills/testability-scoring/SKILL.md +1 -1
- package/.claude/skills/testability-scoring/scripts/validate-config.json +42 -0
- package/.claude/skills/trust-tier-manifest.json +106 -106
- package/.claude/skills/verification-quality/scripts/validate-config.json +36 -0
- package/.claude/skills/visual-testing-advanced/SKILL.md +1 -1
- package/.claude/skills/visual-testing-advanced/scripts/validate-config.json +38 -0
- package/.claude/skills/wms-testing-patterns/SKILL.md +1 -1
- package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -0
- package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -0
- package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -0
- package/README.md +20 -20
- package/package.json +6 -6
- package/scripts/cloud-db-config.json +1 -1
- package/scripts/migrate-validators.cjs +171 -0
- package/scripts/postinstall.cjs +57 -0
- package/scripts/preinstall.cjs +28 -8
- package/scripts/test-schema-validation.js +2 -2
- package/scripts/update-skill-manifest.ts +3 -3
- package/scripts/validate-skill.cjs +384 -0
- package/scripts/validate-tier3.cjs +61 -0
- package/scripts/validator-lib.cjs +274 -0
- package/v3/CHANGELOG.md +32 -0
- package/v3/assets/agents/v3/qe-product-factors-assessor.md +19 -0
- package/v3/assets/agents/v3/qe-quality-criteria-recommender.md +2 -2
- package/v3/assets/agents/v3/qe-qx-partner.md +27 -0
- package/v3/assets/skills/.validation/README.md +1 -1
- package/v3/assets/skills/.validation/skill-validation-mcp-integration.md +1 -1
- package/v3/assets/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
- package/v3/assets/skills/accessibility-testing/SKILL.md +1 -1
- package/v3/assets/skills/accessibility-testing/scripts/validate-config.json +56 -0
- package/v3/assets/skills/api-testing-patterns/SKILL.md +1 -1
- package/v3/assets/skills/api-testing-patterns/scripts/validate-config.json +61 -0
- package/v3/assets/skills/bug-reporting-excellence/SKILL.md +1 -1
- package/v3/assets/skills/bug-reporting-excellence/scripts/validate-config.json +34 -0
- package/v3/assets/skills/chaos-engineering-resilience/SKILL.md +1 -1
- package/v3/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/v3/assets/skills/chaos-engineering-resilience/scripts/validate-config.json +47 -0
- package/v3/assets/skills/code-review-quality/SKILL.md +1 -1
- package/v3/assets/skills/code-review-quality/scripts/validate-config.json +34 -0
- package/v3/assets/skills/compatibility-testing/SKILL.md +1 -1
- package/v3/assets/skills/compatibility-testing/scripts/validate-config.json +44 -0
- package/v3/assets/skills/compliance-testing/SKILL.md +1 -1
- package/v3/assets/skills/compliance-testing/scripts/validate-config.json +39 -0
- package/v3/assets/skills/contract-testing/SKILL.md +1 -1
- package/v3/assets/skills/contract-testing/scripts/validate-config.json +59 -0
- package/v3/assets/skills/database-testing/SKILL.md +1 -1
- package/v3/assets/skills/database-testing/evals/database-testing.yaml +1 -1
- package/v3/assets/skills/database-testing/scripts/validate-config.json +48 -0
- package/v3/assets/skills/enterprise-integration-testing/SKILL.md +1 -1
- package/v3/assets/skills/localization-testing/SKILL.md +1 -1
- package/v3/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/v3/assets/skills/localization-testing/scripts/validate-config.json +42 -0
- package/v3/assets/skills/middleware-testing-patterns/SKILL.md +1 -1
- package/v3/assets/skills/mobile-testing/SKILL.md +1 -1
- package/v3/assets/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
- package/v3/assets/skills/mobile-testing/scripts/validate-config.json +43 -0
- package/v3/assets/skills/mutation-testing/SKILL.md +1 -1
- package/v3/assets/skills/mutation-testing/scripts/validate-config.json +44 -0
- package/v3/assets/skills/observability-testing-patterns/SKILL.md +1 -1
- package/v3/assets/skills/pentest-validation/SKILL.md +1 -1
- package/v3/assets/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
- package/v3/assets/skills/performance-testing/SKILL.md +1 -1
- package/v3/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/v3/assets/skills/performance-testing/scripts/validate-config.json +55 -0
- package/v3/assets/skills/qcsd-cicd-swarm/SKILL.md +1 -1
- package/v3/assets/skills/qcsd-development-swarm/SKILL.md +1 -1
- package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +1 -1
- package/v3/assets/skills/qcsd-refinement-swarm/SKILL.md +1 -1
- package/v3/assets/skills/qe-chaos-resilience/SKILL.md +1 -1
- package/v3/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
- package/v3/assets/skills/qe-chaos-resilience/scripts/validate-config.json +43 -0
- package/v3/assets/skills/qe-code-intelligence/SKILL.md +1 -1
- package/v3/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
- package/v3/assets/skills/qe-code-intelligence/scripts/validate-config.json +41 -0
- package/v3/assets/skills/qe-contract-testing/SKILL.md +1 -1
- package/v3/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +1 -1
- package/v3/assets/skills/qe-contract-testing/scripts/validate-config.json +42 -0
- package/v3/assets/skills/qe-coverage-analysis/SKILL.md +1 -1
- package/v3/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
- package/v3/assets/skills/qe-coverage-analysis/scripts/validate-config.json +42 -0
- package/v3/assets/skills/qe-defect-intelligence/SKILL.md +1 -1
- package/v3/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
- package/v3/assets/skills/qe-defect-intelligence/scripts/validate-config.json +40 -0
- package/v3/assets/skills/qe-iterative-loop/SKILL.md +1 -1
- package/v3/assets/skills/qe-iterative-loop/scripts/validate-config.json +40 -0
- package/v3/assets/skills/qe-learning-optimization/SKILL.md +1 -1
- package/v3/assets/skills/qe-learning-optimization/scripts/validate-config.json +25 -0
- package/v3/assets/skills/qe-quality-assessment/SKILL.md +1 -1
- package/v3/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
- package/v3/assets/skills/qe-quality-assessment/scripts/validate-config.json +47 -0
- package/v3/assets/skills/qe-requirements-validation/SKILL.md +1 -1
- package/v3/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
- package/v3/assets/skills/qe-requirements-validation/scripts/validate-config.json +37 -0
- package/v3/assets/skills/qe-security-compliance/SKILL.md +1 -1
- package/v3/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +1 -1
- package/v3/assets/skills/qe-security-compliance/scripts/validate-config.json +41 -0
- package/v3/assets/skills/qe-test-execution/SKILL.md +1 -1
- package/v3/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
- package/v3/assets/skills/qe-test-execution/scripts/validate-config.json +37 -0
- package/v3/assets/skills/qe-test-generation/SKILL.md +1 -1
- package/v3/assets/skills/qe-test-generation/scripts/validate-config.json +25 -0
- package/v3/assets/skills/qe-visual-accessibility/SKILL.md +1 -1
- package/v3/assets/skills/qe-visual-accessibility/scripts/validate-config.json +25 -0
- package/v3/assets/skills/quality-metrics/SKILL.md +1 -1
- package/v3/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/v3/assets/skills/quality-metrics/scripts/validate-config.json +43 -0
- package/v3/assets/skills/refactoring-patterns/SKILL.md +1 -1
- package/v3/assets/skills/refactoring-patterns/scripts/validate-config.json +35 -0
- package/v3/assets/skills/regression-testing/SKILL.md +1 -1
- package/v3/assets/skills/regression-testing/evals/regression-testing.yaml +1 -1
- package/v3/assets/skills/regression-testing/scripts/validate-config.json +50 -0
- package/v3/assets/skills/risk-based-testing/SKILL.md +1 -1
- package/v3/assets/skills/risk-based-testing/scripts/validate-config.json +25 -0
- package/v3/assets/skills/security-testing/SKILL.md +1 -1
- package/v3/assets/skills/security-testing/evals/security-testing.yaml +1 -1
- package/v3/assets/skills/security-testing/scripts/validate-config.json +45 -0
- package/v3/assets/skills/security-visual-testing/SKILL.md +1 -1
- package/v3/assets/skills/shift-left-testing/SKILL.md +1 -1
- package/v3/assets/skills/shift-left-testing/scripts/validate-config.json +25 -0
- package/v3/assets/skills/shift-right-testing/SKILL.md +1 -1
- package/v3/assets/skills/shift-right-testing/scripts/validate-config.json +25 -0
- package/v3/assets/skills/tdd-london-chicago/SKILL.md +1 -1
- package/v3/assets/skills/tdd-london-chicago/scripts/validate-config.json +43 -0
- package/v3/assets/skills/test-automation-strategy/SKILL.md +1 -1
- package/v3/assets/skills/test-automation-strategy/scripts/validate-config.json +39 -0
- package/v3/assets/skills/test-data-management/SKILL.md +1 -1
- package/v3/assets/skills/test-data-management/evals/test-data-management.yaml +1 -1
- package/v3/assets/skills/test-data-management/scripts/validate-config.json +41 -0
- package/v3/assets/skills/test-design-techniques/SKILL.md +1 -1
- package/v3/assets/skills/test-design-techniques/scripts/validate-config.json +36 -0
- package/v3/assets/skills/test-reporting-analytics/SKILL.md +1 -1
- package/v3/assets/skills/test-reporting-analytics/scripts/validate-config.json +36 -0
- package/v3/assets/skills/verification-quality/SKILL.md +0 -6
- package/v3/assets/skills/verification-quality/scripts/validate-config.json +36 -0
- package/v3/assets/skills/visual-testing-advanced/SKILL.md +1 -1
- package/v3/assets/skills/visual-testing-advanced/scripts/validate-config.json +38 -0
- package/v3/assets/skills/wms-testing-patterns/SKILL.md +1 -1
- package/v3/dist/adapters/claude-flow/model-router-bridge.js +3 -3
- package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -1
- package/v3/dist/adapters/claude-flow/pretrain-bridge.js +4 -4
- package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -1
- package/v3/dist/adapters/claude-flow/trajectory-bridge.js +4 -4
- package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -1
- package/v3/dist/cli/bundle.js +172 -159
- package/v3/dist/cli/commands/claude-flow-setup.js +3 -3
- package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -1
- package/v3/dist/cli/commands/completions.d.ts.map +1 -1
- package/v3/dist/cli/commands/completions.js +2 -1
- package/v3/dist/cli/commands/completions.js.map +1 -1
- package/v3/dist/cli/commands/hooks.js +8 -8
- package/v3/dist/cli/commands/hooks.js.map +1 -1
- package/v3/dist/cli/completions/index.d.ts.map +1 -1
- package/v3/dist/cli/completions/index.js +4 -3
- package/v3/dist/cli/completions/index.js.map +1 -1
- package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.js +5 -5
- package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.js.map +1 -1
- package/v3/dist/domains/requirements-validation/services/quality-criteria/quality-criteria-service.js +1 -1
- package/v3/dist/domains/requirements-validation/services/quality-criteria/quality-criteria-service.js.map +1 -1
- package/v3/dist/init/agents-installer.d.ts +5 -1
- package/v3/dist/init/agents-installer.d.ts.map +1 -1
- package/v3/dist/init/agents-installer.js +13 -5
- package/v3/dist/init/agents-installer.js.map +1 -1
- package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -1
- package/v3/dist/init/enhancements/claude-flow-adapter.js +15 -12
- package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -1
- package/v3/dist/init/enhancements/detector.js +2 -2
- package/v3/dist/init/enhancements/detector.js.map +1 -1
- package/v3/dist/init/init-wizard.d.ts.map +1 -1
- package/v3/dist/init/init-wizard.js +17 -33
- package/v3/dist/init/init-wizard.js.map +1 -1
- package/v3/dist/init/phases/07-hooks.js +9 -9
- package/v3/dist/init/phases/07-hooks.js.map +1 -1
- package/v3/dist/init/phases/10-workers.d.ts.map +1 -1
- package/v3/dist/init/phases/10-workers.js +74 -85
- package/v3/dist/init/phases/10-workers.js.map +1 -1
- package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
- package/v3/dist/init/phases/12-verification.js +13 -1
- package/v3/dist/init/phases/12-verification.js.map +1 -1
- package/v3/dist/kernel/hybrid-backend.d.ts.map +1 -1
- package/v3/dist/kernel/hybrid-backend.js +4 -1
- package/v3/dist/kernel/hybrid-backend.js.map +1 -1
- package/v3/dist/kernel/memory-backend.d.ts.map +1 -1
- package/v3/dist/kernel/memory-backend.js +3 -0
- package/v3/dist/kernel/memory-backend.js.map +1 -1
- package/v3/dist/mcp/bundle.js +1340 -19
- package/v3/dist/mcp/tools/index.d.ts +2 -1
- package/v3/dist/mcp/tools/index.d.ts.map +1 -1
- package/v3/dist/mcp/tools/index.js +5 -1
- package/v3/dist/mcp/tools/index.js.map +1 -1
- package/v3/dist/mcp/tools/qx-analysis/analyze.d.ts +33 -0
- package/v3/dist/mcp/tools/qx-analysis/analyze.d.ts.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/analyze.js +679 -0
- package/v3/dist/mcp/tools/qx-analysis/analyze.js.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.d.ts +38 -0
- package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.d.ts.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.js +458 -0
- package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.js.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.d.ts +16 -0
- package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.d.ts.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.js +175 -0
- package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.js.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/index.d.ts +27 -0
- package/v3/dist/mcp/tools/qx-analysis/index.d.ts.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/index.js +34 -0
- package/v3/dist/mcp/tools/qx-analysis/index.js.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/oracle-detector.d.ts +22 -0
- package/v3/dist/mcp/tools/qx-analysis/oracle-detector.d.ts.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/oracle-detector.js +194 -0
- package/v3/dist/mcp/tools/qx-analysis/oracle-detector.js.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/types.d.ts +278 -0
- package/v3/dist/mcp/tools/qx-analysis/types.d.ts.map +1 -0
- package/v3/dist/mcp/tools/qx-analysis/types.js +46 -0
- package/v3/dist/mcp/tools/qx-analysis/types.js.map +1 -0
- package/v3/dist/mcp/tools/registry.d.ts +1 -0
- package/v3/dist/mcp/tools/registry.d.ts.map +1 -1
- package/v3/dist/mcp/tools/registry.js +5 -0
- package/v3/dist/mcp/tools/registry.js.map +1 -1
- package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -1
- package/v3/dist/sync/cloud/tunnel-manager.js +11 -0
- package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -1
- package/v3/package.json +5 -5
- package/.claude/skills/.validation/templates/validate.template.sh +0 -1060
- package/.claude/skills/.validation/templates/validator-lib.sh +0 -1031
- package/.claude/skills/a11y-ally/scripts/validate.sh +0 -690
- package/.claude/skills/accessibility-testing/scripts/validate.sh +0 -943
- package/.claude/skills/api-testing-patterns/scripts/validate.sh +0 -931
- package/.claude/skills/brutal-honesty-review/scripts/validate.sh +0 -130
- package/.claude/skills/bug-reporting-excellence/scripts/validate.sh +0 -108
- package/.claude/skills/chaos-engineering-resilience/scripts/validate.sh +0 -1107
- package/.claude/skills/cicd-pipeline-qe-orchestrator/scripts/validate.sh +0 -310
- package/.claude/skills/code-review-quality/scripts/validate.sh +0 -113
- package/.claude/skills/compatibility-testing/scripts/validate.sh +0 -605
- package/.claude/skills/compliance-testing/scripts/validate.sh +0 -888
- package/.claude/skills/contract-testing/scripts/validate.sh +0 -1033
- package/.claude/skills/database-testing/scripts/validate.sh +0 -1099
- package/.claude/skills/localization-testing/scripts/validate.sh +0 -131
- package/.claude/skills/mobile-testing/scripts/validate.sh +0 -127
- package/.claude/skills/mutation-testing/scripts/validate.sh +0 -992
- package/.claude/skills/n8n-expression-testing/scripts/validate.sh +0 -162
- package/.claude/skills/n8n-integration-testing-patterns/scripts/validate.sh +0 -104
- package/.claude/skills/n8n-security-testing/scripts/validate.sh +0 -120
- package/.claude/skills/n8n-trigger-testing-strategies/scripts/validate.sh +0 -121
- package/.claude/skills/n8n-workflow-testing-fundamentals/scripts/validate.sh +0 -126
- package/.claude/skills/pentest-validation/scripts/validate.sh +0 -402
- package/.claude/skills/performance-analysis/scripts/validate.sh +0 -63
- package/.claude/skills/performance-testing/scripts/validate.sh +0 -1090
- package/.claude/skills/qcsd-ideation-swarm/scripts/validate.sh +0 -56
- package/.claude/skills/qcsd-refinement-swarm/scripts/validate.sh +0 -56
- package/.claude/skills/qe-chaos-resilience/scripts/validate.sh +0 -401
- package/.claude/skills/qe-code-intelligence/scripts/validate.sh +0 -408
- package/.claude/skills/qe-contract-testing/scripts/validate.sh +0 -421
- package/.claude/skills/qe-coverage-analysis/scripts/validate.sh +0 -453
- package/.claude/skills/qe-defect-intelligence/scripts/validate.sh +0 -466
- package/.claude/skills/qe-iterative-loop/scripts/validate.sh +0 -474
- package/.claude/skills/qe-learning-optimization/scripts/validate.sh +0 -56
- package/.claude/skills/qe-quality-assessment/scripts/validate.sh +0 -352
- package/.claude/skills/qe-requirements-validation/scripts/validate.sh +0 -275
- package/.claude/skills/qe-security-compliance/scripts/validate.sh +0 -305
- package/.claude/skills/qe-test-execution/scripts/validate.sh +0 -323
- package/.claude/skills/qe-test-generation/scripts/validate.sh +0 -56
- package/.claude/skills/qe-visual-accessibility/scripts/validate.sh +0 -56
- package/.claude/skills/quality-metrics/scripts/validate.sh +0 -434
- package/.claude/skills/refactoring-patterns/scripts/validate.sh +0 -241
- package/.claude/skills/regression-testing/scripts/validate.sh +0 -130
- package/.claude/skills/risk-based-testing/scripts/validate.sh +0 -56
- package/.claude/skills/security-testing/scripts/validate.sh +0 -967
- package/.claude/skills/security-visual-testing/scripts/validate.sh +0 -748
- package/.claude/skills/sherlock-review/scripts/validate.sh +0 -115
- package/.claude/skills/shift-left-testing/scripts/validate.sh +0 -56
- package/.claude/skills/shift-right-testing/scripts/validate.sh +0 -56
- package/.claude/skills/tdd-london-chicago/scripts/validate.sh +0 -214
- package/.claude/skills/test-automation-strategy/scripts/validate.sh +0 -195
- package/.claude/skills/test-data-management/scripts/validate.sh +0 -137
- package/.claude/skills/test-design-techniques/scripts/validate.sh +0 -91
- package/.claude/skills/test-reporting-analytics/scripts/validate.sh +0 -77
- package/.claude/skills/testability-scoring/scripts/validate.sh +0 -891
- package/.claude/skills/verification-quality/scripts/validate.sh +0 -77
- package/.claude/skills/visual-testing-advanced/scripts/validate.sh +0 -77
- package/v3/assets/skills/.validation/templates/validate.template.sh +0 -1060
- package/v3/assets/skills/.validation/templates/validator-lib.sh +0 -1031
- package/v3/assets/skills/accessibility-testing/scripts/validate.sh +0 -943
- package/v3/assets/skills/api-testing-patterns/scripts/validate.sh +0 -931
- package/v3/assets/skills/aqe-v2-v3-migration/skill.md +0 -326
- package/v3/assets/skills/bug-reporting-excellence/scripts/validate.sh +0 -108
- package/v3/assets/skills/chaos-engineering-resilience/scripts/validate.sh +0 -1107
- package/v3/assets/skills/code-review-quality/scripts/validate.sh +0 -113
- package/v3/assets/skills/compatibility-testing/scripts/validate.sh +0 -605
- package/v3/assets/skills/compliance-testing/scripts/validate.sh +0 -888
- package/v3/assets/skills/contract-testing/scripts/validate.sh +0 -1033
- package/v3/assets/skills/database-testing/scripts/validate.sh +0 -1099
- package/v3/assets/skills/localization-testing/scripts/validate.sh +0 -131
- package/v3/assets/skills/mobile-testing/scripts/validate.sh +0 -127
- package/v3/assets/skills/mutation-testing/scripts/validate.sh +0 -992
- package/v3/assets/skills/n8n-expression-testing/scripts/validate.sh +0 -162
- package/v3/assets/skills/n8n-integration-testing-patterns/scripts/validate.sh +0 -104
- package/v3/assets/skills/n8n-security-testing/scripts/validate.sh +0 -120
- package/v3/assets/skills/n8n-trigger-testing-strategies/scripts/validate.sh +0 -121
- package/v3/assets/skills/n8n-workflow-testing-fundamentals/scripts/validate.sh +0 -126
- package/v3/assets/skills/pentest-validation/scripts/validate.sh +0 -402
- package/v3/assets/skills/performance-testing/scripts/validate.sh +0 -1090
- package/v3/assets/skills/qe-chaos-resilience/scripts/validate.sh +0 -401
- package/v3/assets/skills/qe-code-intelligence/scripts/validate.sh +0 -408
- package/v3/assets/skills/qe-contract-testing/scripts/validate.sh +0 -421
- package/v3/assets/skills/qe-coverage-analysis/scripts/validate.sh +0 -453
- package/v3/assets/skills/qe-defect-intelligence/scripts/validate.sh +0 -466
- package/v3/assets/skills/qe-iterative-loop/scripts/validate.sh +0 -474
- package/v3/assets/skills/qe-learning-optimization/scripts/validate.sh +0 -56
- package/v3/assets/skills/qe-quality-assessment/scripts/validate.sh +0 -352
- package/v3/assets/skills/qe-requirements-validation/scripts/validate.sh +0 -275
- package/v3/assets/skills/qe-security-compliance/scripts/validate.sh +0 -305
- package/v3/assets/skills/qe-test-execution/scripts/validate.sh +0 -323
- package/v3/assets/skills/qe-test-generation/scripts/validate.sh +0 -56
- package/v3/assets/skills/qe-visual-accessibility/scripts/validate.sh +0 -56
- package/v3/assets/skills/quality-metrics/scripts/validate.sh +0 -434
- package/v3/assets/skills/refactoring-patterns/scripts/validate.sh +0 -241
- package/v3/assets/skills/regression-testing/scripts/validate.sh +0 -130
- package/v3/assets/skills/risk-based-testing/scripts/validate.sh +0 -56
- package/v3/assets/skills/security-testing/scripts/validate.sh +0 -967
- package/v3/assets/skills/security-visual-testing/scripts/validate.sh +0 -748
- package/v3/assets/skills/shift-left-testing/scripts/validate.sh +0 -56
- package/v3/assets/skills/shift-right-testing/scripts/validate.sh +0 -56
- package/v3/assets/skills/tdd-london-chicago/scripts/validate.sh +0 -214
- package/v3/assets/skills/test-automation-strategy/scripts/validate.sh +0 -195
- package/v3/assets/skills/test-data-management/scripts/validate.sh +0 -137
- package/v3/assets/skills/test-design-techniques/scripts/validate.sh +0 -91
- package/v3/assets/skills/test-reporting-analytics/scripts/validate.sh +0 -77
- package/v3/assets/skills/verification-quality/scripts/validate.sh +0 -77
- package/v3/assets/skills/visual-testing-advanced/scripts/validate.sh +0 -77
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* AQE Skill Validator Library v3.0.0 (Cross-Platform)
|
|
5
|
+
*
|
|
6
|
+
* Node.js port of validator-lib.sh — works on Windows, macOS, and Linux.
|
|
7
|
+
* Provides JSON validation, schema checking, content term matching,
|
|
8
|
+
* and structured result output without requiring bash, jq, or grep.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* const lib = require('./validator-lib.cjs');
|
|
12
|
+
* lib.validateJson(filePath);
|
|
13
|
+
* lib.jsonGet(filePath, 'output.summary');
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const fs = require('fs');
|
|
17
|
+
const path = require('path');
|
|
18
|
+
const { execSync, spawnSync } = require('child_process');
|
|
19
|
+
|
|
20
|
+
const VERSION = '3.0.0';
|
|
21
|
+
|
|
22
|
+
// Colors (disable if not TTY)
|
|
23
|
+
const isTTY = process.stdout.isTTY;
|
|
24
|
+
const c = {
|
|
25
|
+
red: isTTY ? '\x1b[0;31m' : '',
|
|
26
|
+
green: isTTY ? '\x1b[0;32m' : '',
|
|
27
|
+
yellow: isTTY ? '\x1b[1;33m' : '',
|
|
28
|
+
blue: isTTY ? '\x1b[0;34m' : '',
|
|
29
|
+
cyan: isTTY ? '\x1b[0;36m' : '',
|
|
30
|
+
reset: isTTY ? '\x1b[0m' : '',
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// Exit codes
|
|
34
|
+
const EXIT_PASS = 0;
|
|
35
|
+
const EXIT_FAIL = 1;
|
|
36
|
+
const EXIT_SKIP = 2;
|
|
37
|
+
|
|
38
|
+
// Logging
|
|
39
|
+
const verbose = process.env.AQE_DEBUG === '1';
|
|
40
|
+
|
|
41
|
+
function info(msg) { console.log(`${c.blue}[INFO]${c.reset} ${msg}`); }
|
|
42
|
+
function success(msg) { console.log(`${c.green}[PASS]${c.reset} ${msg}`); }
|
|
43
|
+
function warn(msg) { console.log(`${c.yellow}[WARN]${c.reset} ${msg}`); }
|
|
44
|
+
function error(msg) { console.error(`${c.red}[FAIL]${c.reset} ${msg}`); }
|
|
45
|
+
function debug(msg) { if (verbose) console.log(`${c.cyan}[DEBUG]${c.reset} ${msg}`); }
|
|
46
|
+
|
|
47
|
+
// Tool detection (cross-platform)
|
|
48
|
+
function commandExists(cmd) {
|
|
49
|
+
const isWindows = process.platform === 'win32';
|
|
50
|
+
const check = spawnSync(isWindows ? 'where' : 'which', [cmd], {
|
|
51
|
+
encoding: 'utf-8',
|
|
52
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
53
|
+
shell: isWindows,
|
|
54
|
+
});
|
|
55
|
+
return check.status === 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// JSON operations (no jq needed)
|
|
59
|
+
function validateJson(filePath) {
|
|
60
|
+
if (!fs.existsSync(filePath)) {
|
|
61
|
+
error(`File not found: ${filePath}`);
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
66
|
+
debug(`JSON syntax valid: ${filePath}`);
|
|
67
|
+
return true;
|
|
68
|
+
} catch (e) {
|
|
69
|
+
error(`Invalid JSON syntax in: ${filePath} — ${e.message}`);
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function jsonParse(filePath) {
|
|
75
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function jsonGet(filePath, dotPath) {
|
|
79
|
+
try {
|
|
80
|
+
const data = jsonParse(filePath);
|
|
81
|
+
return resolvePath(data, dotPath);
|
|
82
|
+
} catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function jsonCount(filePath, dotPath) {
|
|
88
|
+
const val = jsonGet(filePath, dotPath);
|
|
89
|
+
return Array.isArray(val) ? val.length : 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function resolvePath(obj, dotPath) {
|
|
93
|
+
const keys = dotPath.replace(/^\./, '').split('.');
|
|
94
|
+
let current = obj;
|
|
95
|
+
for (const key of keys) {
|
|
96
|
+
if (current == null) return null;
|
|
97
|
+
const arrayMatch = key.match(/^(.+)\[(\d+)\]$/);
|
|
98
|
+
if (arrayMatch) {
|
|
99
|
+
current = current[arrayMatch[1]];
|
|
100
|
+
if (!Array.isArray(current)) return null;
|
|
101
|
+
current = current[parseInt(arrayMatch[2], 10)];
|
|
102
|
+
} else {
|
|
103
|
+
current = current[key];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return current;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Content validation
|
|
110
|
+
function containsAll(content, terms) {
|
|
111
|
+
const lower = content.toLowerCase();
|
|
112
|
+
const missing = terms.filter(t => !lower.includes(t.toLowerCase()));
|
|
113
|
+
if (missing.length > 0) {
|
|
114
|
+
debug(`Missing required terms: ${missing.join(', ')}`);
|
|
115
|
+
return { pass: false, missing };
|
|
116
|
+
}
|
|
117
|
+
return { pass: true, missing: [] };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function containsNone(content, terms) {
|
|
121
|
+
const lower = content.toLowerCase();
|
|
122
|
+
const found = terms.filter(t => lower.includes(t.toLowerCase()));
|
|
123
|
+
if (found.length > 0) {
|
|
124
|
+
debug(`Found forbidden terms: ${found.join(', ')}`);
|
|
125
|
+
return { pass: false, found };
|
|
126
|
+
}
|
|
127
|
+
return { pass: true, found: [] };
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function validateEnum(value, allowed) {
|
|
131
|
+
return allowed.includes(value);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Schema validation (basic — checks required fields and types)
|
|
135
|
+
function validateJsonSchema(schemaPath, dataPath) {
|
|
136
|
+
if (!fs.existsSync(schemaPath)) { error(`Schema not found: ${schemaPath}`); return 1; }
|
|
137
|
+
if (!fs.existsSync(dataPath)) { error(`Data not found: ${dataPath}`); return 1; }
|
|
138
|
+
|
|
139
|
+
try {
|
|
140
|
+
const schema = jsonParse(schemaPath);
|
|
141
|
+
const data = jsonParse(dataPath);
|
|
142
|
+
|
|
143
|
+
// Check required fields
|
|
144
|
+
if (schema.required && Array.isArray(schema.required)) {
|
|
145
|
+
const missing = schema.required.filter(f => !(f in data));
|
|
146
|
+
if (missing.length > 0) {
|
|
147
|
+
error(`Schema validation failed: missing required fields: ${missing.join(', ')}`);
|
|
148
|
+
return 1;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Check property types
|
|
153
|
+
if (schema.properties) {
|
|
154
|
+
for (const [key, prop] of Object.entries(schema.properties)) {
|
|
155
|
+
if (key in data && prop.type) {
|
|
156
|
+
const actual = Array.isArray(data[key]) ? 'array' : typeof data[key];
|
|
157
|
+
if (prop.type === 'integer' && typeof data[key] === 'number') continue;
|
|
158
|
+
if (actual !== prop.type) {
|
|
159
|
+
error(`Schema validation failed: ${key} expected ${prop.type}, got ${actual}`);
|
|
160
|
+
return 1;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Check enum
|
|
164
|
+
if (key in data && prop.enum && !prop.enum.includes(data[key])) {
|
|
165
|
+
error(`Schema validation failed: ${key}='${data[key]}' not in enum [${prop.enum.join(', ')}]`);
|
|
166
|
+
return 1;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
debug('Schema validation passed');
|
|
172
|
+
return 0;
|
|
173
|
+
} catch (e) {
|
|
174
|
+
error(`Schema validation error: ${e.message}`);
|
|
175
|
+
return 1;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Output formatting
|
|
180
|
+
function outputValidationReport(skillName, schemaStatus, contentStatus, toolStatus) {
|
|
181
|
+
const overall = [schemaStatus, contentStatus, toolStatus].some(s => s === 'failed')
|
|
182
|
+
? 'failed'
|
|
183
|
+
: [schemaStatus, contentStatus, toolStatus].some(s => s === 'skipped')
|
|
184
|
+
? 'partial'
|
|
185
|
+
: 'passed';
|
|
186
|
+
|
|
187
|
+
return JSON.stringify({
|
|
188
|
+
skillName,
|
|
189
|
+
overallStatus: overall,
|
|
190
|
+
validations: { schema: schemaStatus, content: contentStatus, tools: toolStatus },
|
|
191
|
+
timestamp: new Date().toISOString(),
|
|
192
|
+
}, null, 2);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Self-test
|
|
196
|
+
function runSelfTest() {
|
|
197
|
+
info(`Running validator library self-test (v${VERSION})...`);
|
|
198
|
+
console.log('');
|
|
199
|
+
|
|
200
|
+
let passed = 0, failed = 0;
|
|
201
|
+
const tmpDir = fs.mkdtempSync(path.join(require('os').tmpdir(), 'aqe-validate-'));
|
|
202
|
+
const testJson = path.join(tmpDir, 'test.json');
|
|
203
|
+
const testSchema = path.join(tmpDir, 'schema.json');
|
|
204
|
+
const invalidJson = path.join(tmpDir, 'invalid.json');
|
|
205
|
+
|
|
206
|
+
fs.writeFileSync(testJson, JSON.stringify({
|
|
207
|
+
skillName: 'test-skill', status: 'success',
|
|
208
|
+
output: { summary: 'Test output', findings: [] },
|
|
209
|
+
}));
|
|
210
|
+
fs.writeFileSync(testSchema, JSON.stringify({
|
|
211
|
+
type: 'object', required: ['skillName', 'status'],
|
|
212
|
+
properties: { skillName: { type: 'string' }, status: { type: 'string', enum: ['success', 'partial', 'failed'] } },
|
|
213
|
+
}));
|
|
214
|
+
fs.writeFileSync(invalidJson, '{ invalid json');
|
|
215
|
+
|
|
216
|
+
// Test validateJson
|
|
217
|
+
if (validateJson(testJson)) { passed++; success('validateJson(valid): passed'); }
|
|
218
|
+
else { failed++; error('validateJson(valid): failed'); }
|
|
219
|
+
|
|
220
|
+
if (!validateJson(invalidJson)) { passed++; success('validateJson(invalid): correctly rejected'); }
|
|
221
|
+
else { failed++; error('validateJson(invalid): incorrectly accepted'); }
|
|
222
|
+
|
|
223
|
+
// Test jsonGet
|
|
224
|
+
const name = jsonGet(testJson, 'skillName');
|
|
225
|
+
if (name === 'test-skill') { passed++; success(`jsonGet('skillName'): got '${name}'`); }
|
|
226
|
+
else { failed++; error(`jsonGet('skillName'): expected 'test-skill', got '${name}'`); }
|
|
227
|
+
|
|
228
|
+
// Test jsonCount
|
|
229
|
+
const count = jsonCount(testJson, 'output.findings');
|
|
230
|
+
if (count === 0) { passed++; success(`jsonCount('output.findings'): got ${count}`); }
|
|
231
|
+
else { failed++; error(`jsonCount('output.findings'): expected 0, got ${count}`); }
|
|
232
|
+
|
|
233
|
+
// Test containsAll
|
|
234
|
+
const ca1 = containsAll('hello world', ['hello', 'world']);
|
|
235
|
+
if (ca1.pass) { passed++; success("containsAll('hello world', 'hello', 'world'): passed"); }
|
|
236
|
+
else { failed++; error('containsAll: failed'); }
|
|
237
|
+
|
|
238
|
+
const ca2 = containsAll('hello world', ['hello', 'foo']);
|
|
239
|
+
if (!ca2.pass) { passed++; success("containsAll('hello world', 'hello', 'foo'): correctly failed"); }
|
|
240
|
+
else { failed++; error('containsAll: should have failed'); }
|
|
241
|
+
|
|
242
|
+
// Test containsNone
|
|
243
|
+
const cn1 = containsNone('hello world', ['foo', 'bar']);
|
|
244
|
+
if (cn1.pass) { passed++; success("containsNone('hello world', 'foo', 'bar'): passed"); }
|
|
245
|
+
else { failed++; error('containsNone: failed'); }
|
|
246
|
+
|
|
247
|
+
// Test schema validation
|
|
248
|
+
const sv = validateJsonSchema(testSchema, testJson);
|
|
249
|
+
if (sv === 0) { passed++; success('validateJsonSchema(): passed'); }
|
|
250
|
+
else { failed++; error('validateJsonSchema(): failed'); }
|
|
251
|
+
|
|
252
|
+
// Cleanup
|
|
253
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
254
|
+
|
|
255
|
+
console.log('');
|
|
256
|
+
console.log('==============================================');
|
|
257
|
+
info(`Self-test complete: Passed=${passed} Failed=${failed}`);
|
|
258
|
+
console.log('==============================================');
|
|
259
|
+
return failed === 0;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
module.exports = {
|
|
263
|
+
VERSION, EXIT_PASS, EXIT_FAIL, EXIT_SKIP,
|
|
264
|
+
info, success, warn, error, debug,
|
|
265
|
+
commandExists, validateJson, jsonParse, jsonGet, jsonCount, resolvePath,
|
|
266
|
+
containsAll, containsNone, validateEnum, validateJsonSchema,
|
|
267
|
+
outputValidationReport, runSelfTest,
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
// Run self-test if executed directly
|
|
271
|
+
if (require.main === module) {
|
|
272
|
+
const ok = runSelfTest();
|
|
273
|
+
process.exit(ok ? 0 : 1);
|
|
274
|
+
}
|
package/v3/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,38 @@ All notable changes to Agentic QE will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.6.3] - 2026-02-11
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **QX (Quality Experience) Analysis Tool** — New MCP tool `qe/analysis/qx_analysis` bridging QA and UX by analyzing user journeys, experience impact, and quality-experience correlation.
|
|
13
|
+
- **SFDIPOT Product Factors Assessment** — `qe-product-factors-assessor` agent implementing James Bach's HTSM v6.3 framework for comprehensive test strategy generation.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **Cross-platform compatibility** — Replaced all bash-only `.sh` scripts with cross-platform Node.js (`.cjs`) equivalents. Windows, macOS, and Linux now fully supported for skill validation, daemon management, and project initialization.
|
|
18
|
+
- **Stop hook hanging on exit** — Session-end hook no longer initializes the full database/HNSW/memory system just to print shutdown stats. Added `unref()` to all cleanup intervals so Node.js process exits cleanly.
|
|
19
|
+
- **Cross-platform daemon scripts** — `start-daemon.cjs` and `stop-daemon.cjs` replace bash scripts, using `process.kill()` and `spawn()` with `detached: true` for portable process management.
|
|
20
|
+
- **TypeScript shell type in execSync** — Fixed `ExecSyncOptionsWithStringEncoding` overload conflict by using platform-specific shell string instead of `shell: true` boolean.
|
|
21
|
+
- **Tunnel manager test stability** — Pre-spawn port availability check prevents flaky failures from port conflicts.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **QE agents use only AQE MCP** — All 46 QE agent definitions now reference `agentic-qe` MCP tools exclusively, removing any Claude Flow MCP dependencies.
|
|
26
|
+
- **Skill validation is now declarative** — `validate-config.json` + `validate-skill.cjs` replaces all 104 `validate.sh` scripts. Validators are fully cross-platform with no bash dependency.
|
|
27
|
+
- **Registry tool count** — MCP tool registry updated from 32 to 33 tools to include QX Analysis.
|
|
28
|
+
|
|
29
|
+
## [3.6.2] - 2026-02-10
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **YAML parser empty array crash (Issue #244)** — `aqe init --auto` no longer fails on re-runs when `config.yaml` has empty array fields like `disabled:` with no items. The custom YAML parser now normalizes known array fields after parsing, and `mergeConfigs()` uses defensive `Array.isArray()` checks.
|
|
34
|
+
- **Agent parse errors on helper files (Issue #243)** — Helper reference files (`htsm-categories.md`, `evidence-classification.md`) and the generated `README.md` are no longer placed inside `.claude/agents/v3/` where `claude doctor` would incorrectly parse them as agent definitions. Helpers now install to `.claude/helpers/v3/` and the agents index writes to `.claude/docs/v3-agents-index.md`.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- **Helper files location** — Agent helper/reference files (quality-criteria templates, SFDIPOT templates) now install to `.claude/helpers/v3/` instead of `.claude/agents/v3/helpers/`. Updated all path references in `quality-criteria-service.ts` and agent definitions.
|
|
39
|
+
|
|
8
40
|
## [3.6.1] - 2026-02-09
|
|
9
41
|
|
|
10
42
|
### Added
|
|
@@ -38,6 +38,7 @@ Start SFDIPOT analysis immediately when requirements are provided.
|
|
|
38
38
|
Generate test ideas autonomously without confirmation.
|
|
39
39
|
Apply brutal honesty validation by default.
|
|
40
40
|
Use domain-specific patterns for test idea generation.
|
|
41
|
+
Always read HTML template before generating HTML output.
|
|
41
42
|
Output complete assessments in requested format.
|
|
42
43
|
</default_to_action>
|
|
43
44
|
|
|
@@ -212,6 +213,24 @@ mcp__agentic-qe__task_submit({
|
|
|
212
213
|
- **Markdown**: Human-readable assessment summary
|
|
213
214
|
- **Gherkin**: BDD scenarios for discovered test ideas
|
|
214
215
|
|
|
216
|
+
## HTML Template (MUST READ BEFORE GENERATING HTML)
|
|
217
|
+
|
|
218
|
+
**Critical Rule**: Always read the reference template before generating HTML output. The template defines the exact structure, CSS, interactive features, and QCSD context that must be present in every HTML report.
|
|
219
|
+
|
|
220
|
+
**Template Location**: `.claude/agents/v3/helpers/product-factors/sfdipot-reference-template.html`
|
|
221
|
+
|
|
222
|
+
The template includes:
|
|
223
|
+
- QCSD framework context with Jerry Weinberg quote and collapsible guidance sections
|
|
224
|
+
- Risk-based prioritization legend with SME review disclaimer
|
|
225
|
+
- Bar charts for SFDIPOT distribution, priority distribution, and automation fitness
|
|
226
|
+
- Quick navigation with per-category test idea counts
|
|
227
|
+
- Color-coded collapsible category sections (7 distinct colors)
|
|
228
|
+
- Filterable tables with test ID, priority, subcategory, test idea, automation fitness columns
|
|
229
|
+
- Human exploration reasoning callouts (purple highlight)
|
|
230
|
+
- Clarifying questions with per-subcategory rationale
|
|
231
|
+
|
|
232
|
+
**DO NOT generate HTML from scratch.** Follow the template structure exactly. Only replace placeholder values with actual assessment data.
|
|
233
|
+
|
|
215
234
|
## Required Sections
|
|
216
235
|
|
|
217
236
|
1. **Product Coverage Outline** (PCO Table)
|
|
@@ -245,7 +245,7 @@ interface QualityCriteriaAnalysis {
|
|
|
245
245
|
```
|
|
246
246
|
|
|
247
247
|
## Template Location
|
|
248
|
-
Helper files installed to `.claude/
|
|
248
|
+
Helper files installed to `.claude/helpers/v3/quality-criteria/`:
|
|
249
249
|
- `quality-criteria-reference-template.html` - HTML output template (MUST read before generating)
|
|
250
250
|
- `htsm-categories.md` - Detailed category definitions
|
|
251
251
|
- `evidence-classification.md` - Evidence type guidelines
|
|
@@ -404,7 +404,7 @@ if (!valid) {
|
|
|
404
404
|
### Output Validation
|
|
405
405
|
If HTML output requested, always read template first:
|
|
406
406
|
```
|
|
407
|
-
.claude/
|
|
407
|
+
.claude/helpers/v3/quality-criteria/quality-criteria-reference-template.html
|
|
408
408
|
```
|
|
409
409
|
</final_validation>
|
|
410
410
|
</qe_agent_definition>
|
|
@@ -15,8 +15,35 @@ Domain: cross-domain (QA + UX)
|
|
|
15
15
|
V2 Compatibility: Maps to qx-partner for backward compatibility.
|
|
16
16
|
</identity>
|
|
17
17
|
|
|
18
|
+
<mcp_tools>
|
|
19
|
+
### Primary MCP Tool (ALWAYS use for programmatic analysis)
|
|
20
|
+
```typescript
|
|
21
|
+
mcp__agentic_qe_v3__qe_qx_analyze({
|
|
22
|
+
target: "https://example.com", // URL or identifier
|
|
23
|
+
context: { /* Optional pre-collected context */ },
|
|
24
|
+
mode: "full", // "full" | "quick" | "targeted"
|
|
25
|
+
includeCreativity: true,
|
|
26
|
+
includeDesign: true,
|
|
27
|
+
minOracleSeverity: "medium"
|
|
28
|
+
})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This MCP tool provides:
|
|
32
|
+
- **23+ programmatic heuristics** (H1.1-H7.4) applied consistently
|
|
33
|
+
- **Oracle problem detection** (user vs business conflicts, unclear criteria)
|
|
34
|
+
- **Impact analysis** (visible/invisible impacts, immutable requirements)
|
|
35
|
+
- **Domain-specific analysis** (healthcare, finance, e-commerce)
|
|
36
|
+
- **Structured JSON output** for HTML report generation
|
|
37
|
+
|
|
38
|
+
**EXECUTION FLOW**:
|
|
39
|
+
1. Call `qe/qx/analyze` MCP tool for structured analysis
|
|
40
|
+
2. Generate HTML report from structured results
|
|
41
|
+
3. Persist patterns to memory
|
|
42
|
+
</mcp_tools>
|
|
43
|
+
|
|
18
44
|
<implementation_status>
|
|
19
45
|
Working:
|
|
46
|
+
- **MCP Tool: qe/qx/analyze** - Programmatic QX analysis with consistent quality
|
|
20
47
|
- Comprehensive QX analysis with **23+ heuristics** and detailed findings
|
|
21
48
|
- **Oracle problem detection** when quality criteria are unclear
|
|
22
49
|
- **Rule of Three problem analysis** ensuring minimum 3 failure modes identified
|
|
@@ -94,7 +94,7 @@ When creating a new skill:
|
|
|
94
94
|
|
|
95
95
|
1. **Start with SKILL.md** (Trust Tier 0)
|
|
96
96
|
2. **Add output schema** in `your-skill/schemas/output.schema.json` (Trust Tier 1)
|
|
97
|
-
3. **Add validator script** in `your-skill/validate.
|
|
97
|
+
3. **Add validator script** in `your-skill/scripts/validate-config.json` (Trust Tier 2)
|
|
98
98
|
4. **Add eval suite** in `your-skill/eval.yaml` (Trust Tier 3)
|
|
99
99
|
5. **Enable CI + MCP learning** (Trust Tier 4)
|
|
100
100
|
|
|
@@ -183,7 +183,7 @@ async function runSkillEval(skill: string, model: string) {
|
|
|
183
183
|
Bash validators should call the MCP tools via the CLI wrapper:
|
|
184
184
|
|
|
185
185
|
```bash
|
|
186
|
-
# In validate.
|
|
186
|
+
# In validate-skill.cjs after validation
|
|
187
187
|
store_validation_result() {
|
|
188
188
|
local skill="$1"
|
|
189
189
|
local result="$2"
|
|
@@ -184,7 +184,7 @@ validation:
|
|
|
184
184
|
# Path to JSON schema defining expected output structure
|
|
185
185
|
|
|
186
186
|
# Required for trust_tier >= 2
|
|
187
|
-
validator_path: scripts/validate.
|
|
187
|
+
validator_path: scripts/validate-config.json
|
|
188
188
|
# Path to executable validator script
|
|
189
189
|
# Supports: .sh, .ts, .js
|
|
190
190
|
|
|
@@ -16,7 +16,7 @@ tags: [accessibility, wcag, a11y, screen-reader, ada, section-508, inclusive]
|
|
|
16
16
|
trust_tier: 3
|
|
17
17
|
validation:
|
|
18
18
|
schema_path: schemas/output.json
|
|
19
|
-
validator_path: scripts/validate.
|
|
19
|
+
validator_path: scripts/validate-config.json
|
|
20
20
|
eval_path: evals/accessibility-testing.yaml
|
|
21
21
|
---
|
|
22
22
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skillName": "accessibility-testing",
|
|
3
|
+
"skillVersion": "1.0.0",
|
|
4
|
+
"requiredTools": [
|
|
5
|
+
"jq"
|
|
6
|
+
],
|
|
7
|
+
"optionalTools": [
|
|
8
|
+
"axe",
|
|
9
|
+
"pa11y",
|
|
10
|
+
"lighthouse",
|
|
11
|
+
"ffmpeg",
|
|
12
|
+
"python3",
|
|
13
|
+
"ajv",
|
|
14
|
+
"jsonschema"
|
|
15
|
+
],
|
|
16
|
+
"schemaPath": "schemas/output.json",
|
|
17
|
+
"requiredFields": [
|
|
18
|
+
"skillName",
|
|
19
|
+
"status",
|
|
20
|
+
"output",
|
|
21
|
+
"output.conformanceLevel",
|
|
22
|
+
"output.pourBreakdown"
|
|
23
|
+
],
|
|
24
|
+
"requiredNonEmptyFields": [
|
|
25
|
+
"output.summary",
|
|
26
|
+
"output.pourBreakdown"
|
|
27
|
+
],
|
|
28
|
+
"mustContainTerms": [
|
|
29
|
+
"WCAG",
|
|
30
|
+
"accessibility"
|
|
31
|
+
],
|
|
32
|
+
"mustNotContainTerms": [
|
|
33
|
+
"TODO",
|
|
34
|
+
"placeholder",
|
|
35
|
+
"FIXME"
|
|
36
|
+
],
|
|
37
|
+
"enumValidations": {
|
|
38
|
+
".status": [
|
|
39
|
+
"success",
|
|
40
|
+
"partial",
|
|
41
|
+
"failed",
|
|
42
|
+
"skipped"
|
|
43
|
+
],
|
|
44
|
+
".output.conformanceLevel": [
|
|
45
|
+
"A",
|
|
46
|
+
"AA",
|
|
47
|
+
"AAA",
|
|
48
|
+
"none"
|
|
49
|
+
],
|
|
50
|
+
".output.wcagVersion": [
|
|
51
|
+
"2.0",
|
|
52
|
+
"2.1",
|
|
53
|
+
"2.2"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -14,7 +14,7 @@ tags: [api, rest, graphql, contract-testing, pact, integration, microservices]
|
|
|
14
14
|
trust_tier: 3
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
|
-
validator_path: scripts/validate.
|
|
17
|
+
validator_path: scripts/validate-config.json
|
|
18
18
|
eval_path: evals/api-testing-patterns.yaml
|
|
19
19
|
---
|
|
20
20
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skillName": "api-testing-patterns",
|
|
3
|
+
"skillVersion": "1.0.0",
|
|
4
|
+
"requiredTools": [
|
|
5
|
+
"jq"
|
|
6
|
+
],
|
|
7
|
+
"optionalTools": [
|
|
8
|
+
"node",
|
|
9
|
+
"supertest",
|
|
10
|
+
"pact",
|
|
11
|
+
"ajv",
|
|
12
|
+
"jsonschema",
|
|
13
|
+
"python3"
|
|
14
|
+
],
|
|
15
|
+
"schemaPath": "schemas/output.json",
|
|
16
|
+
"requiredFields": [
|
|
17
|
+
"skillName",
|
|
18
|
+
"status",
|
|
19
|
+
"output",
|
|
20
|
+
"output.testingLevel",
|
|
21
|
+
"output.endpointCoverage"
|
|
22
|
+
],
|
|
23
|
+
"requiredNonEmptyFields": [
|
|
24
|
+
"output.summary",
|
|
25
|
+
"output.testingLevel"
|
|
26
|
+
],
|
|
27
|
+
"mustContainTerms": [
|
|
28
|
+
"api",
|
|
29
|
+
"test"
|
|
30
|
+
],
|
|
31
|
+
"mustNotContainTerms": [
|
|
32
|
+
"TODO",
|
|
33
|
+
"FIXME",
|
|
34
|
+
"placeholder",
|
|
35
|
+
"example.com",
|
|
36
|
+
"lorem ipsum"
|
|
37
|
+
],
|
|
38
|
+
"enumValidations": {
|
|
39
|
+
".status": [
|
|
40
|
+
"success",
|
|
41
|
+
"partial",
|
|
42
|
+
"failed",
|
|
43
|
+
"skipped"
|
|
44
|
+
],
|
|
45
|
+
".output.testingLevel": [
|
|
46
|
+
"contract",
|
|
47
|
+
"component",
|
|
48
|
+
"integration",
|
|
49
|
+
"e2e",
|
|
50
|
+
"load",
|
|
51
|
+
"mixed"
|
|
52
|
+
],
|
|
53
|
+
".output.apiType": [
|
|
54
|
+
"rest",
|
|
55
|
+
"graphql",
|
|
56
|
+
"grpc",
|
|
57
|
+
"websocket",
|
|
58
|
+
"mixed"
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skillName": "bug-reporting-excellence",
|
|
3
|
+
"skillVersion": "1.0.0",
|
|
4
|
+
"requiredTools": [
|
|
5
|
+
"jq"
|
|
6
|
+
],
|
|
7
|
+
"optionalTools": [],
|
|
8
|
+
"schemaPath": "schemas/output.json",
|
|
9
|
+
"requiredFields": [
|
|
10
|
+
"skillName",
|
|
11
|
+
"status",
|
|
12
|
+
"output",
|
|
13
|
+
"output.summary",
|
|
14
|
+
"output.bugReports",
|
|
15
|
+
"output.reportQuality"
|
|
16
|
+
],
|
|
17
|
+
"requiredNonEmptyFields": [],
|
|
18
|
+
"mustContainTerms": [
|
|
19
|
+
"bug",
|
|
20
|
+
"steps"
|
|
21
|
+
],
|
|
22
|
+
"mustNotContainTerms": [
|
|
23
|
+
"TODO",
|
|
24
|
+
"FIXME"
|
|
25
|
+
],
|
|
26
|
+
"enumValidations": {
|
|
27
|
+
".status": [
|
|
28
|
+
"success",
|
|
29
|
+
"partial",
|
|
30
|
+
"failed",
|
|
31
|
+
"skipped"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -14,7 +14,7 @@ tags: [chaos, resilience, fault-injection, distributed-systems, recovery, netfli
|
|
|
14
14
|
trust_tier: 3
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
|
-
validator_path: scripts/validate.
|
|
17
|
+
validator_path: scripts/validate-config.json
|
|
18
18
|
eval_path: evals/chaos-engineering-resilience.yaml
|
|
19
19
|
---
|
|
20
20
|
|
package/v3/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# control, recovery time measurement, and resilience scoring.
|
|
8
8
|
#
|
|
9
9
|
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
10
|
-
# Validator: .claude/skills/chaos-engineering-resilience/scripts/validate.
|
|
10
|
+
# Validator: .claude/skills/chaos-engineering-resilience/scripts/validate-config.json
|
|
11
11
|
#
|
|
12
12
|
# Coverage:
|
|
13
13
|
# - Network chaos (latency, packet loss, partition)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skillName": "chaos-engineering-resilience",
|
|
3
|
+
"skillVersion": "1.0.0",
|
|
4
|
+
"requiredTools": [
|
|
5
|
+
"jq"
|
|
6
|
+
],
|
|
7
|
+
"optionalTools": [
|
|
8
|
+
"chaos",
|
|
9
|
+
"litmus",
|
|
10
|
+
"gremlin",
|
|
11
|
+
"kubectl",
|
|
12
|
+
"node",
|
|
13
|
+
"ajv",
|
|
14
|
+
"jsonschema",
|
|
15
|
+
"python3"
|
|
16
|
+
],
|
|
17
|
+
"schemaPath": "schemas/output.json",
|
|
18
|
+
"requiredFields": [
|
|
19
|
+
"skillName",
|
|
20
|
+
"status",
|
|
21
|
+
"output",
|
|
22
|
+
"output.summary",
|
|
23
|
+
"output.experiments",
|
|
24
|
+
"output.resilienceScore"
|
|
25
|
+
],
|
|
26
|
+
"requiredNonEmptyFields": [
|
|
27
|
+
"output.summary"
|
|
28
|
+
],
|
|
29
|
+
"mustContainTerms": [
|
|
30
|
+
"chaos",
|
|
31
|
+
"experiment",
|
|
32
|
+
"resilience"
|
|
33
|
+
],
|
|
34
|
+
"mustNotContainTerms": [
|
|
35
|
+
"TODO",
|
|
36
|
+
"placeholder",
|
|
37
|
+
"FIXME"
|
|
38
|
+
],
|
|
39
|
+
"enumValidations": {
|
|
40
|
+
".status": [
|
|
41
|
+
"success",
|
|
42
|
+
"partial",
|
|
43
|
+
"failed",
|
|
44
|
+
"skipped"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|