agentic-qe 3.8.1 → 3.8.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-security-scanner.md +2 -2
- package/.claude/commands/claude-flow-help.md +1 -1
- package/.claude/helpers/github-setup.sh +4 -4
- package/.claude/helpers/post-commit +1 -1
- package/.claude/helpers/pre-commit +1 -1
- package/.claude/helpers/quick-start.sh +4 -4
- package/.claude/helpers/setup-mcp.sh +3 -3
- package/.claude/helpers/statusline-v3.cjs +1 -1
- package/.claude/helpers/validation-pipeline.cjs +625 -0
- package/.claude/skills/README.md +29 -7
- package/.claude/skills/TRUST-TIERS.md +26 -10
- package/.claude/skills/a11y-ally/SKILL.md +10 -2
- package/.claude/skills/accessibility-testing/SKILL.md +2 -1
- package/.claude/skills/agentic-quality-engineering/SKILL.md +1 -2
- package/.claude/skills/api-testing-patterns/SKILL.md +8 -0
- package/.claude/skills/api-testing-patterns/config.json +14 -0
- package/.claude/skills/api-testing-patterns/templates/api-test-scaffold.md +87 -0
- package/.claude/skills/brutal-honesty-review/SKILL.md +0 -1
- package/.claude/skills/bug-reporting-excellence/SKILL.md +14 -1
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +0 -1
- package/.claude/skills/code-review-quality/SKILL.md +14 -1
- package/.claude/skills/compatibility-testing/SKILL.md +1 -54
- package/.claude/skills/compliance-testing/SKILL.md +8 -1
- package/.claude/skills/compliance-testing/config.json +13 -0
- package/.claude/skills/consultancy-practices/SKILL.md +1 -33
- package/.claude/skills/context-driven-testing/SKILL.md +0 -42
- package/.claude/skills/contract-testing/SKILL.md +12 -0
- package/.claude/skills/contract-testing/config.json +13 -0
- package/.claude/skills/contract-testing/references/agent-commands.md +103 -0
- package/.claude/skills/contract-testing/references/provider-states.md +45 -0
- package/.claude/skills/coverage-drop-investigator/SKILL.md +90 -0
- package/.claude/skills/coverage-guard/SKILL.md +82 -0
- package/.claude/skills/coverage-guard/scripts/check-coverage.sh +42 -0
- package/.claude/skills/database-testing/SKILL.md +0 -10
- package/.claude/skills/debug-loop/SKILL.md +1 -1
- package/.claude/skills/e2e-flow-verifier/SKILL.md +78 -0
- package/.claude/skills/enterprise-integration-testing/SKILL.md +1 -1
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +8 -1
- package/.claude/skills/exploratory-testing-advanced/references/heuristic-cheatsheet.md +48 -0
- package/.claude/skills/freeze-tests/SKILL.md +67 -0
- package/.claude/skills/freeze-tests/scripts/block-test-edits.sh +27 -0
- package/.claude/skills/holistic-testing-pact/SKILL.md +0 -1
- package/.claude/skills/iterative-loop/SKILL.md +6 -6
- package/.claude/skills/localization-testing/SKILL.md +0 -18
- package/.claude/skills/mobile-testing/SKILL.md +2 -50
- package/.claude/skills/mutation-testing/SKILL.md +26 -1
- package/.claude/skills/mutation-testing/config.json +14 -0
- package/.claude/skills/mutation-testing/references/mutation-operators.md +38 -0
- package/.claude/skills/mutation-testing/run-history.json +6 -0
- package/.claude/skills/n8n-expression-testing/SKILL.md +0 -1
- package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +0 -1
- package/.claude/skills/n8n-security-testing/SKILL.md +0 -1
- package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +0 -1
- package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +0 -1
- package/.claude/skills/no-skip/SKILL.md +74 -0
- package/.claude/skills/no-skip/scripts/check-skips.sh +28 -0
- package/.claude/skills/pair-programming/SKILL.md +1 -1
- package/.claude/skills/pentest-validation/SKILL.md +2 -3
- package/.claude/skills/performance-testing/SKILL.md +21 -0
- package/.claude/skills/performance-testing/config.json +18 -0
- package/.claude/skills/performance-testing/references/k6-patterns.md +72 -0
- package/.claude/skills/performance-testing/run-history.json +6 -0
- package/.claude/skills/pr-review/SKILL.md +3 -3
- package/.claude/skills/qcsd-cicd-swarm/SKILL.md +1 -2
- package/.claude/skills/qcsd-development-swarm/SKILL.md +1 -2
- package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1 -2
- package/.claude/skills/qcsd-production-swarm/SKILL.md +1 -2
- package/.claude/skills/qcsd-production-swarm/steps/01-flag-detection.md +1 -1
- package/.claude/skills/qcsd-production-swarm/steps/07-learning-persistence.md +2 -2
- package/.claude/skills/qcsd-refinement-swarm/SKILL.md +1 -2
- package/.claude/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +1 -1
- package/.claude/skills/qe-chaos-resilience/SKILL.md +2 -3
- package/.claude/skills/qe-code-intelligence/SKILL.md +9 -2
- package/.claude/skills/qe-coverage-analysis/SKILL.md +28 -2
- package/.claude/skills/qe-coverage-analysis/run-history.json +6 -0
- package/.claude/skills/qe-defect-intelligence/SKILL.md +1 -2
- package/.claude/skills/qe-iterative-loop/SKILL.md +0 -1
- package/.claude/skills/qe-learning-optimization/SKILL.md +1 -2
- package/.claude/skills/qe-quality-assessment/SKILL.md +29 -3
- package/.claude/skills/qe-quality-assessment/run-history.json +6 -0
- package/.claude/skills/qe-requirements-validation/SKILL.md +1 -2
- package/.claude/skills/qe-test-execution/SKILL.md +9 -2
- package/.claude/skills/qe-test-generation/SKILL.md +15 -2
- package/.claude/skills/qe-test-generation/config.json +14 -0
- package/.claude/skills/qe-test-generation/templates/test-scaffold-jest.md +72 -0
- package/.claude/skills/qe-visual-accessibility/SKILL.md +1 -2
- package/.claude/skills/quality-metrics/SKILL.md +3 -78
- package/.claude/skills/refactoring-patterns/SKILL.md +0 -1
- package/.claude/skills/regression-testing/SKILL.md +13 -49
- package/.claude/skills/risk-based-testing/SKILL.md +6 -52
- package/.claude/skills/security-testing/SKILL.md +30 -0
- package/.claude/skills/security-testing/config.json +13 -0
- package/.claude/skills/security-testing/references/compliance-agent-commands.md +131 -0
- package/.claude/skills/security-testing/references/owasp-top-10.md +66 -0
- package/.claude/skills/security-testing/run-history.json +6 -0
- package/.claude/skills/security-testing/templates/security-report.md +44 -0
- package/.claude/skills/security-visual-testing/SKILL.md +0 -1
- package/.claude/skills/security-watch/SKILL.md +93 -0
- package/.claude/skills/security-watch/scripts/scan-security.sh +46 -0
- package/.claude/skills/sherlock-review/SKILL.md +0 -1
- package/.claude/skills/shift-left-testing/SKILL.md +16 -88
- package/.claude/skills/shift-right-testing/SKILL.md +0 -1
- package/.claude/skills/six-thinking-hats/SKILL.md +0 -1
- package/.claude/skills/skill-stats/SKILL.md +79 -0
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/strict-tdd/SKILL.md +72 -0
- package/.claude/skills/strict-tdd/scripts/enforce-red-phase.sh +36 -0
- package/.claude/skills/tdd-london-chicago/SKILL.md +8 -1
- package/.claude/skills/technical-writing/SKILL.md +0 -1
- package/.claude/skills/test-automation-strategy/SKILL.md +13 -65
- package/.claude/skills/test-data-management/SKILL.md +1 -105
- package/.claude/skills/test-design-techniques/SKILL.md +2 -152
- package/.claude/skills/test-environment-management/SKILL.md +0 -48
- package/.claude/skills/test-failure-investigator/SKILL.md +99 -0
- package/.claude/skills/test-metrics-dashboard/SKILL.md +97 -0
- package/.claude/skills/test-reporting-analytics/SKILL.md +0 -1
- package/.claude/skills/trust-tier-manifest.json +135 -61
- package/.claude/skills/validation-pipeline/SKILL.md +5 -6
- package/.claude/skills/verification-quality/SKILL.md +15 -1
- package/.claude/skills/visual-testing-advanced/SKILL.md +0 -1
- package/.claude/skills/xp-practices/SKILL.md +2 -110
- package/.opencode/agents/collective-intelligence-coordinator.yaml +52 -0
- package/.opencode/agents/ddd-domain-expert.yaml +49 -0
- package/.opencode/agents/memory-specialist.yaml +49 -0
- package/.opencode/agents/performance-engineer.yaml +53 -0
- package/.opencode/agents/qe-accessibility-auditor.yaml +118 -0
- package/.opencode/agents/qe-api-contract-validator.yaml +85 -0
- package/.opencode/agents/qe-bdd-generator.yaml +83 -0
- package/.opencode/agents/qe-chaos-engineer.yaml +114 -0
- package/.opencode/agents/qe-code-complexity.yaml +82 -0
- package/.opencode/agents/qe-code-intelligence.yaml +80 -0
- package/.opencode/agents/qe-coverage-analyzer.yaml +75 -0
- package/.opencode/agents/qe-defect-predictor.yaml +81 -0
- package/.opencode/agents/qe-dependency-mapper.yaml +81 -0
- package/.opencode/agents/qe-deployment-advisor.yaml +82 -0
- package/.opencode/agents/qe-devils-advocate.yaml +63 -0
- package/.opencode/agents/qe-flaky-hunter.yaml +116 -0
- package/.opencode/agents/qe-fleet-commander.yaml +83 -0
- package/.opencode/agents/qe-gap-detector.yaml +81 -0
- package/.opencode/agents/qe-graphql-tester.yaml +84 -0
- package/.opencode/agents/qe-impact-analyzer.yaml +81 -0
- package/.opencode/agents/qe-integration-architect.yaml +46 -0
- package/.opencode/agents/qe-integration-tester.yaml +84 -0
- package/.opencode/agents/qe-kg-builder.yaml +75 -0
- package/.opencode/agents/qe-learning-coordinator.yaml +82 -0
- package/.opencode/agents/qe-load-tester.yaml +84 -0
- package/.opencode/agents/qe-message-broker-tester.yaml +94 -0
- package/.opencode/agents/qe-metrics-optimizer.yaml +81 -0
- package/.opencode/agents/qe-middleware-validator.yaml +92 -0
- package/.opencode/agents/qe-mutation-tester.yaml +84 -0
- package/.opencode/agents/qe-odata-contract-tester.yaml +98 -0
- package/.opencode/agents/qe-parallel-executor.yaml +79 -0
- package/.opencode/agents/qe-pattern-learner.yaml +80 -0
- package/.opencode/agents/qe-pentest-validator.yaml +137 -0
- package/.opencode/agents/qe-performance-tester.yaml +83 -0
- package/.opencode/agents/qe-product-factors-assessor.yaml +116 -0
- package/.opencode/agents/qe-property-tester.yaml +82 -0
- package/.opencode/agents/qe-quality-criteria-recommender.yaml +111 -0
- package/.opencode/agents/qe-quality-gate.yaml +80 -0
- package/.opencode/agents/qe-queen-coordinator.yaml +59 -0
- package/.opencode/agents/qe-qx-partner.yaml +75 -0
- package/.opencode/agents/qe-regression-analyzer.yaml +90 -0
- package/.opencode/agents/qe-requirements-validator.yaml +111 -0
- package/.opencode/agents/qe-responsive-tester.yaml +85 -0
- package/.opencode/agents/qe-retry-handler.yaml +82 -0
- package/.opencode/agents/qe-risk-assessor.yaml +81 -0
- package/.opencode/agents/qe-root-cause-analyzer.yaml +82 -0
- package/.opencode/agents/qe-sap-idoc-tester.yaml +104 -0
- package/.opencode/agents/qe-sap-rfc-tester.yaml +94 -0
- package/.opencode/agents/qe-security-auditor.yaml +90 -0
- package/.opencode/agents/qe-security-scanner.yaml +80 -0
- package/.opencode/agents/qe-soap-tester.yaml +93 -0
- package/.opencode/agents/qe-sod-analyzer.yaml +96 -0
- package/.opencode/agents/qe-tdd-specialist.yaml +84 -0
- package/.opencode/agents/qe-test-generator.yaml +78 -0
- package/.opencode/agents/qe-test-idea-rewriter.yaml +88 -0
- package/.opencode/agents/qe-transfer-specialist.yaml +81 -0
- package/.opencode/agents/qe-visual-tester.yaml +82 -0
- package/.opencode/agents/security-architect.yaml +51 -0
- package/.opencode/agents/security-auditor.yaml +50 -0
- package/.opencode/permissions.yaml +74 -0
- package/.opencode/skills/qcsd-cicd-swarm.yaml +45 -0
- package/.opencode/skills/qcsd-development-swarm.yaml +45 -0
- package/.opencode/skills/qcsd-ideation-swarm.yaml +45 -0
- package/.opencode/skills/qcsd-production-swarm.yaml +45 -0
- package/.opencode/skills/qcsd-refinement-swarm.yaml +45 -0
- package/.opencode/skills/qe-a11y-ally.yaml +45 -0
- package/.opencode/skills/qe-accessibility-testing.yaml +45 -0
- package/.opencode/skills/qe-agentic-jujutsu.yaml +45 -0
- package/.opencode/skills/qe-agentic-quality-engineering.yaml +45 -0
- package/.opencode/skills/qe-api-testing-patterns.yaml +45 -0
- package/.opencode/skills/qe-aqe-v2-v3-migration.yaml +45 -0
- package/.opencode/skills/qe-brutal-honesty-review.yaml +45 -0
- package/.opencode/skills/qe-bug-reporting-excellence.yaml +45 -0
- package/.opencode/skills/qe-chaos-engineering-resilience.yaml +30 -0
- package/.opencode/skills/qe-chaos-resilience.yaml +45 -0
- package/.opencode/skills/qe-cicd-pipeline-qe-orchestrator.yaml +45 -0
- package/.opencode/skills/qe-code-intelligence.yaml +45 -0
- package/.opencode/skills/qe-code-review-quality.yaml +45 -0
- package/.opencode/skills/qe-compatibility-testing.yaml +35 -0
- package/.opencode/skills/qe-compliance-testing.yaml +35 -0
- package/.opencode/skills/qe-consultancy-practices.yaml +45 -0
- package/.opencode/skills/qe-context-driven-testing.yaml +45 -0
- package/.opencode/skills/qe-coverage-analysis.yaml +45 -0
- package/.opencode/skills/qe-database-testing.yaml +40 -0
- package/.opencode/skills/qe-debug-loop.yaml +45 -0
- package/.opencode/skills/qe-defect-intelligence.yaml +45 -0
- package/.opencode/skills/qe-enterprise-integration-testing.yaml +45 -0
- package/.opencode/skills/qe-exploratory-testing-advanced.yaml +45 -0
- package/.opencode/skills/qe-github-code-review.yaml +45 -0
- package/.opencode/skills/qe-github-multi-repo.yaml +45 -0
- package/.opencode/skills/qe-github-project-management.yaml +45 -0
- package/.opencode/skills/qe-github-release-management.yaml +45 -0
- package/.opencode/skills/qe-github-workflow-automation.yaml +45 -0
- package/.opencode/skills/qe-holistic-testing-pact.yaml +45 -0
- package/.opencode/skills/qe-iterative-loop.yaml +45 -0
- package/.opencode/skills/qe-learning-optimization.yaml +45 -0
- package/.opencode/skills/qe-localization-testing.yaml +40 -0
- package/.opencode/skills/qe-middleware-testing-patterns.yaml +45 -0
- package/.opencode/skills/qe-mobile-testing.yaml +35 -0
- package/.opencode/skills/qe-mutation-testing.yaml +35 -0
- package/.opencode/skills/qe-n8n-expression-testing.yaml +45 -0
- package/.opencode/skills/qe-n8n-integration-testing-patterns.yaml +45 -0
- package/.opencode/skills/qe-n8n-security-testing.yaml +45 -0
- package/.opencode/skills/qe-n8n-trigger-testing-strategies.yaml +45 -0
- package/.opencode/skills/qe-n8n-workflow-testing-fundamentals.yaml +45 -0
- package/.opencode/skills/qe-observability-testing-patterns.yaml +45 -0
- package/.opencode/skills/qe-pair-programming.yaml +45 -0
- package/.opencode/skills/qe-pentest-validation.yaml +45 -0
- package/.opencode/skills/qe-performance-analysis.yaml +45 -0
- package/.opencode/skills/qe-performance-testing.yaml +45 -0
- package/.opencode/skills/qe-pr-review.yaml +45 -0
- package/.opencode/skills/qe-quality-assessment.yaml +45 -0
- package/.opencode/skills/qe-quality-metrics.yaml +45 -0
- package/.opencode/skills/qe-refactoring-patterns.yaml +40 -0
- package/.opencode/skills/qe-regression-testing.yaml +40 -0
- package/.opencode/skills/qe-release.yaml +45 -0
- package/.opencode/skills/qe-requirements-validation.yaml +45 -0
- package/.opencode/skills/qe-risk-based-testing.yaml +45 -0
- package/.opencode/skills/qe-security-testing.yaml +45 -0
- package/.opencode/skills/qe-security-visual-testing.yaml +45 -0
- package/.opencode/skills/qe-sfdipot-product-factors.yaml +45 -0
- package/.opencode/skills/qe-sherlock-review.yaml +45 -0
- package/.opencode/skills/qe-shift-left-testing.yaml +45 -0
- package/.opencode/skills/qe-shift-right-testing.yaml +45 -0
- package/.opencode/skills/qe-six-thinking-hats.yaml +45 -0
- package/.opencode/skills/qe-skill-builder.yaml +45 -0
- package/.opencode/skills/qe-sparc-methodology.yaml +45 -0
- package/.opencode/skills/qe-stream-chain.yaml +45 -0
- package/.opencode/skills/qe-tdd-london-chicago.yaml +45 -0
- package/.opencode/skills/qe-technical-writing.yaml +45 -0
- package/.opencode/skills/qe-test-automation-strategy.yaml +35 -0
- package/.opencode/skills/qe-test-data-management.yaml +45 -0
- package/.opencode/skills/qe-test-design-techniques.yaml +40 -0
- package/.opencode/skills/qe-test-environment-management.yaml +40 -0
- package/.opencode/skills/qe-test-execution.yaml +45 -0
- package/.opencode/skills/qe-test-generation.yaml +45 -0
- package/.opencode/skills/qe-test-idea-rewriting.yaml +45 -0
- package/.opencode/skills/qe-test-reporting-analytics.yaml +45 -0
- package/.opencode/skills/qe-testability-scoring.yaml +45 -0
- package/.opencode/skills/qe-verification-quality.yaml +45 -0
- package/.opencode/skills/qe-visual-accessibility.yaml +45 -0
- package/.opencode/skills/qe-visual-testing-advanced.yaml +40 -0
- package/.opencode/skills/qe-wms-testing-patterns.yaml +45 -0
- package/.opencode/skills/qe-xp-practices.yaml +45 -0
- package/.opencode/tools/qe-defect-scan.ts +79 -0
- package/.opencode/tools/qe-fleet-status.ts +59 -0
- package/.opencode/tools/qe-full-audit.ts +81 -0
- package/.opencode/tools/qe-learning-report.ts +74 -0
- package/.opencode/tools/qe-test-and-verify.ts +97 -0
- package/CHANGELOG.md +50 -0
- package/README.md +5 -1
- package/assets/agents/v3/qe-security-scanner.md +2 -2
- package/assets/helpers/statusline-v3.cjs +1 -1
- package/assets/helpers/validation-pipeline.cjs +625 -0
- package/assets/skills/README.md +173 -0
- package/assets/skills/TRUST-TIERS.md +174 -0
- package/assets/skills/a11y-ally/SKILL.md +10 -2
- package/assets/skills/accessibility-testing/SKILL.md +2 -1
- package/assets/skills/agentic-quality-engineering/SKILL.md +1 -2
- package/assets/skills/api-testing-patterns/SKILL.md +8 -0
- package/assets/skills/api-testing-patterns/config.json +14 -0
- package/assets/skills/api-testing-patterns/templates/api-test-scaffold.md +87 -0
- package/assets/skills/brutal-honesty-review/SKILL.md +0 -1
- package/assets/skills/bug-reporting-excellence/SKILL.md +14 -1
- package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +0 -1
- package/assets/skills/code-review-quality/SKILL.md +14 -1
- package/assets/skills/compatibility-testing/SKILL.md +1 -54
- package/assets/skills/compliance-testing/SKILL.md +8 -1
- package/assets/skills/compliance-testing/config.json +13 -0
- package/assets/skills/consultancy-practices/SKILL.md +1 -33
- package/assets/skills/context-driven-testing/SKILL.md +0 -42
- package/assets/skills/contract-testing/SKILL.md +12 -0
- package/assets/skills/contract-testing/config.json +13 -0
- package/assets/skills/contract-testing/references/agent-commands.md +103 -0
- package/assets/skills/contract-testing/references/provider-states.md +45 -0
- package/assets/skills/coverage-drop-investigator/SKILL.md +90 -0
- package/assets/skills/coverage-guard/SKILL.md +82 -0
- package/assets/skills/coverage-guard/scripts/check-coverage.sh +42 -0
- package/assets/skills/database-testing/SKILL.md +0 -10
- package/assets/skills/debug-loop/SKILL.md +1 -1
- package/assets/skills/e2e-flow-verifier/SKILL.md +78 -0
- package/assets/skills/enterprise-integration-testing/SKILL.md +1 -1
- package/assets/skills/exploratory-testing-advanced/SKILL.md +8 -1
- package/assets/skills/exploratory-testing-advanced/references/heuristic-cheatsheet.md +48 -0
- package/assets/skills/freeze-tests/SKILL.md +67 -0
- package/assets/skills/freeze-tests/scripts/block-test-edits.sh +27 -0
- package/assets/skills/holistic-testing-pact/SKILL.md +0 -1
- package/assets/skills/localization-testing/SKILL.md +0 -18
- package/assets/skills/mobile-testing/SKILL.md +2 -50
- package/assets/skills/mutation-testing/SKILL.md +26 -1
- package/assets/skills/mutation-testing/config.json +14 -0
- package/assets/skills/mutation-testing/references/mutation-operators.md +38 -0
- package/assets/skills/mutation-testing/run-history.json +6 -0
- package/assets/skills/n8n-expression-testing/SKILL.md +0 -1
- package/assets/skills/n8n-integration-testing-patterns/SKILL.md +0 -1
- package/assets/skills/n8n-security-testing/SKILL.md +0 -1
- package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +0 -1
- package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +0 -1
- package/assets/skills/no-skip/SKILL.md +74 -0
- package/assets/skills/no-skip/scripts/check-skips.sh +28 -0
- package/assets/skills/pair-programming/SKILL.md +1 -1
- package/assets/skills/pentest-validation/SKILL.md +2 -3
- package/assets/skills/performance-testing/SKILL.md +21 -0
- package/assets/skills/performance-testing/config.json +18 -0
- package/assets/skills/performance-testing/references/k6-patterns.md +72 -0
- package/assets/skills/performance-testing/run-history.json +6 -0
- package/assets/skills/pr-review/SKILL.md +3 -3
- package/assets/skills/qcsd-cicd-swarm/SKILL.md +1 -2
- package/assets/skills/qcsd-development-swarm/SKILL.md +1 -2
- package/assets/skills/qcsd-ideation-swarm/SKILL.md +1 -2
- package/assets/skills/qcsd-production-swarm/SKILL.md +1 -2
- package/assets/skills/qcsd-production-swarm/steps/01-flag-detection.md +1 -1
- package/assets/skills/qcsd-production-swarm/steps/07-learning-persistence.md +2 -2
- package/assets/skills/qcsd-refinement-swarm/SKILL.md +1 -2
- package/assets/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +1 -1
- package/assets/skills/qe-chaos-resilience/SKILL.md +2 -3
- package/assets/skills/qe-code-intelligence/SKILL.md +9 -2
- package/assets/skills/qe-coverage-analysis/SKILL.md +28 -2
- package/assets/skills/qe-coverage-analysis/run-history.json +6 -0
- package/assets/skills/qe-defect-intelligence/SKILL.md +1 -2
- package/assets/skills/qe-iterative-loop/SKILL.md +0 -1
- package/assets/skills/qe-learning-optimization/SKILL.md +1 -2
- package/assets/skills/qe-quality-assessment/SKILL.md +29 -3
- package/assets/skills/qe-quality-assessment/run-history.json +6 -0
- package/assets/skills/qe-requirements-validation/SKILL.md +1 -2
- package/assets/skills/qe-test-execution/SKILL.md +9 -2
- package/assets/skills/qe-test-generation/SKILL.md +15 -2
- package/assets/skills/qe-test-generation/config.json +14 -0
- package/assets/skills/qe-test-generation/templates/test-scaffold-jest.md +72 -0
- package/assets/skills/qe-visual-accessibility/SKILL.md +1 -2
- package/assets/skills/quality-metrics/SKILL.md +3 -78
- package/assets/skills/refactoring-patterns/SKILL.md +0 -1
- package/assets/skills/regression-testing/SKILL.md +13 -49
- package/assets/skills/risk-based-testing/SKILL.md +6 -52
- package/assets/skills/security-testing/SKILL.md +30 -0
- package/assets/skills/security-testing/config.json +13 -0
- package/assets/skills/security-testing/references/compliance-agent-commands.md +131 -0
- package/assets/skills/security-testing/references/owasp-top-10.md +66 -0
- package/assets/skills/security-testing/run-history.json +6 -0
- package/assets/skills/security-testing/templates/security-report.md +44 -0
- package/assets/skills/security-visual-testing/SKILL.md +0 -1
- package/assets/skills/security-watch/SKILL.md +93 -0
- package/assets/skills/security-watch/scripts/scan-security.sh +46 -0
- package/assets/skills/sherlock-review/SKILL.md +0 -1
- package/assets/skills/shift-left-testing/SKILL.md +16 -88
- package/assets/skills/shift-right-testing/SKILL.md +0 -1
- package/assets/skills/six-thinking-hats/SKILL.md +0 -1
- package/assets/skills/skill-stats/SKILL.md +79 -0
- package/assets/skills/strict-tdd/SKILL.md +72 -0
- package/assets/skills/strict-tdd/scripts/enforce-red-phase.sh +36 -0
- package/assets/skills/tdd-london-chicago/SKILL.md +8 -1
- package/assets/skills/technical-writing/SKILL.md +0 -1
- package/assets/skills/test-automation-strategy/SKILL.md +13 -65
- package/assets/skills/test-data-management/SKILL.md +1 -105
- package/assets/skills/test-design-techniques/SKILL.md +2 -152
- package/assets/skills/test-environment-management/SKILL.md +0 -48
- package/assets/skills/test-failure-investigator/SKILL.md +99 -0
- package/assets/skills/test-metrics-dashboard/SKILL.md +97 -0
- package/assets/skills/test-reporting-analytics/SKILL.md +0 -1
- package/assets/skills/trust-tier-manifest.json +135 -61
- package/assets/skills/validation-pipeline/SKILL.md +5 -6
- package/assets/skills/verification-quality/SKILL.md +15 -1
- package/assets/skills/visual-testing-advanced/SKILL.md +0 -1
- package/assets/skills/xp-practices/SKILL.md +2 -110
- package/dist/adapters/claude-flow/detect.d.ts +5 -0
- package/dist/adapters/claude-flow/detect.js +38 -18
- package/dist/adapters/claude-flow/model-router-bridge.js +4 -3
- package/dist/adapters/claude-flow/pretrain-bridge.js +5 -4
- package/dist/adapters/claude-flow/trajectory-bridge.js +5 -4
- package/dist/cli/bundle.js +262 -79
- package/dist/cli/commands/claude-flow-setup.js +4 -4
- package/dist/domains/learning-optimization/coordinator.d.ts +6 -1
- package/dist/domains/learning-optimization/coordinator.js +26 -4
- package/dist/domains/learning-optimization/plugin.d.ts +2 -0
- package/dist/domains/learning-optimization/plugin.js +2 -0
- package/dist/governance/adversarial-defense-integration.js +1 -0
- package/dist/governance/continue-gate-integration.d.ts +1 -0
- package/dist/governance/continue-gate-integration.js +1 -0
- package/dist/governance/deterministic-gateway-integration.d.ts +1 -0
- package/dist/governance/deterministic-gateway-integration.js +1 -0
- package/dist/governance/evolution-pipeline-integration.d.ts +1 -0
- package/dist/governance/evolution-pipeline-integration.js +1 -0
- package/dist/governance/memory-write-gate-integration.d.ts +1 -0
- package/dist/governance/memory-write-gate-integration.js +1 -0
- package/dist/governance/proof-envelope-integration.d.ts +1 -0
- package/dist/governance/proof-envelope-integration.js +1 -0
- package/dist/governance/shard-retriever-integration.d.ts +1 -0
- package/dist/governance/shard-retriever-integration.js +1 -0
- package/dist/governance/trust-accumulator-integration.d.ts +1 -0
- package/dist/governance/trust-accumulator-integration.js +1 -0
- package/dist/init/agents-installer.js +28 -1
- package/dist/init/enhancements/claude-flow-adapter.js +15 -2
- package/dist/init/init-wizard-hooks.js +3 -3
- package/dist/init/kiro-installer.js +10 -4
- package/dist/init/opencode-installer.d.ts +13 -1
- package/dist/init/opencode-installer.js +52 -14
- package/dist/init/phases/07-hooks.js +21 -7
- package/dist/init/settings-merge.d.ts +1 -1
- package/dist/init/settings-merge.js +12 -13
- package/dist/init/skills-installer.d.ts +10 -0
- package/dist/init/skills-installer.js +68 -6
- package/dist/integrations/ruvector/sona-persistence.d.ts +6 -0
- package/dist/integrations/ruvector/sona-persistence.js +26 -1
- package/dist/mcp/bundle.js +98 -37
- package/dist/mcp/entry.js +6 -6
- package/dist/migration/agent-compat.js +2 -2
- package/package.json +9 -4
- package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +0 -513
- package/.claude/skills/aqe-v2-v3-migration/skill.md +0 -326
- package/.claude/skills/qe-contract-testing/SKILL.md +0 -224
- package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +0 -513
- package/.claude/skills/qe-contract-testing/schemas/output.json +0 -295
- package/.claude/skills/qe-contract-testing/scripts/validate-config.json +0 -42
- package/.claude/skills/qe-security-compliance/SKILL.md +0 -261
- package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +0 -595
- package/.claude/skills/qe-security-compliance/schemas/output.json +0 -498
- package/.claude/skills/qe-security-compliance/scripts/validate-config.json +0 -41
- package/assets/skills/aqe-v2-v3-migration/schemas/output.json +0 -513
- package/assets/skills/aqe-v2-v3-migration/skill.md +0 -326
- package/assets/skills/qe-contract-testing/SKILL.md +0 -224
- package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +0 -513
- package/assets/skills/qe-contract-testing/schemas/output.json +0 -295
- package/assets/skills/qe-contract-testing/scripts/validate-config.json +0 -42
- package/assets/skills/qe-security-compliance/SKILL.md +0 -261
- package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +0 -595
- package/assets/skills/qe-security-compliance/schemas/output.json +0 -498
- package/assets/skills/qe-security-compliance/scripts/validate-config.json +0 -41
|
@@ -16,29 +16,16 @@ validation:
|
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
17
|
validator_path: scripts/validate-config.json
|
|
18
18
|
eval_path: evals/test-design-techniques.yaml
|
|
19
|
-
|
|
20
19
|
---
|
|
21
20
|
|
|
22
21
|
# Test Design Techniques
|
|
23
22
|
|
|
24
23
|
<default_to_action>
|
|
25
|
-
When designing test cases
|
|
26
|
-
1. APPLY Boundary Value Analysis (test at min, max, edges)
|
|
27
|
-
2. USE Equivalence Partitioning (one test per partition)
|
|
28
|
-
3. CREATE Decision Tables (for complex business rules)
|
|
29
|
-
4. MODEL State Transitions (for stateful behavior)
|
|
30
|
-
5. REDUCE with Pairwise Testing (for combinations)
|
|
31
|
-
|
|
32
|
-
**Quick Design Selection:**
|
|
24
|
+
When designing test cases, select technique by input type:
|
|
33
25
|
- Numeric ranges → BVA + EP
|
|
34
26
|
- Multiple conditions → Decision Tables
|
|
35
27
|
- Workflows → State Transition
|
|
36
|
-
- Many
|
|
37
|
-
|
|
38
|
-
**Critical Success Factors:**
|
|
39
|
-
- Systematic design finds more bugs with fewer tests
|
|
40
|
-
- Random testing is inefficient
|
|
41
|
-
- 40+ years of research backs these techniques
|
|
28
|
+
- Many parameter combinations → Pairwise Testing
|
|
42
29
|
</default_to_action>
|
|
43
30
|
|
|
44
31
|
## Quick Reference Card
|
|
@@ -49,139 +36,6 @@ When designing test cases systematically:
|
|
|
49
36
|
- Complex business rules
|
|
50
37
|
- Reducing test redundancy
|
|
51
38
|
|
|
52
|
-
### Technique Selection Guide
|
|
53
|
-
| Scenario | Technique |
|
|
54
|
-
|----------|-----------|
|
|
55
|
-
| **Numeric input ranges** | BVA + EP |
|
|
56
|
-
| **Multiple conditions** | Decision Tables |
|
|
57
|
-
| **Stateful workflows** | State Transition |
|
|
58
|
-
| **Many parameter combinations** | Pairwise |
|
|
59
|
-
| **All combinations critical** | Full Factorial |
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Boundary Value Analysis (BVA)
|
|
64
|
-
|
|
65
|
-
**Principle:** Bugs cluster at boundaries.
|
|
66
|
-
|
|
67
|
-
**Test at boundaries:**
|
|
68
|
-
- Minimum valid value
|
|
69
|
-
- Just below minimum (invalid)
|
|
70
|
-
- Just above minimum (valid)
|
|
71
|
-
- Maximum valid value
|
|
72
|
-
- Just above maximum (invalid)
|
|
73
|
-
|
|
74
|
-
```javascript
|
|
75
|
-
// Age field: 18-120 valid
|
|
76
|
-
const boundaryTests = [
|
|
77
|
-
{ input: 17, expected: 'invalid' }, // Below min
|
|
78
|
-
{ input: 18, expected: 'valid' }, // Min boundary
|
|
79
|
-
{ input: 19, expected: 'valid' }, // Above min
|
|
80
|
-
{ input: 119, expected: 'valid' }, // Below max
|
|
81
|
-
{ input: 120, expected: 'valid' }, // Max boundary
|
|
82
|
-
{ input: 121, expected: 'invalid' } // Above max
|
|
83
|
-
];
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Equivalence Partitioning (EP)
|
|
89
|
-
|
|
90
|
-
**Principle:** One test per equivalent class.
|
|
91
|
-
|
|
92
|
-
```javascript
|
|
93
|
-
// Discount rules:
|
|
94
|
-
// 1-10: No discount
|
|
95
|
-
// 11-100: 10% discount
|
|
96
|
-
// 101+: 20% discount
|
|
97
|
-
|
|
98
|
-
const partitionTests = [
|
|
99
|
-
{ quantity: -1, expected: 'invalid' }, // Invalid partition
|
|
100
|
-
{ quantity: 5, expected: 0 }, // Partition 1: 1-10
|
|
101
|
-
{ quantity: 50, expected: 0.10 }, // Partition 2: 11-100
|
|
102
|
-
{ quantity: 200, expected: 0.20 } // Partition 3: 101+
|
|
103
|
-
];
|
|
104
|
-
|
|
105
|
-
// 4 tests cover all behavior (vs 200+ if testing every value)
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Decision Tables
|
|
111
|
-
|
|
112
|
-
**Use for:** Complex business rules with multiple conditions.
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
Loan Approval Rules:
|
|
116
|
-
┌──────────────┬───────┬───────┬───────┬───────┬───────┐
|
|
117
|
-
│ Conditions │ R1 │ R2 │ R3 │ R4 │ R5 │
|
|
118
|
-
├──────────────┼───────┼───────┼───────┼───────┼───────┤
|
|
119
|
-
│ Age ≥ 18 │ Yes │ Yes │ Yes │ No │ Yes │
|
|
120
|
-
│ Credit ≥ 700 │ Yes │ Yes │ No │ Yes │ No │
|
|
121
|
-
│ Income ≥ 50k │ Yes │ No │ Yes │ Yes │ Yes │
|
|
122
|
-
├──────────────┼───────┼───────┼───────┼───────┼───────┤
|
|
123
|
-
│ Result │Approve│Approve│Reject │Reject │Reject │
|
|
124
|
-
└──────────────┴───────┴───────┴───────┴───────┴───────┘
|
|
125
|
-
|
|
126
|
-
// 5 tests cover all decision combinations
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## State Transition Testing
|
|
132
|
-
|
|
133
|
-
**Model state changes:**
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
States: Logged Out → Logged In → Premium → Suspended
|
|
137
|
-
|
|
138
|
-
Valid Transitions:
|
|
139
|
-
- Login: Logged Out → Logged In
|
|
140
|
-
- Upgrade: Logged In → Premium
|
|
141
|
-
- Payment Fail: Premium → Suspended
|
|
142
|
-
- Logout: Any → Logged Out
|
|
143
|
-
|
|
144
|
-
Invalid Transitions to Test:
|
|
145
|
-
- Logged Out → Premium (should reject)
|
|
146
|
-
- Suspended → Premium (should reject)
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
```javascript
|
|
150
|
-
test('cannot upgrade without login', async () => {
|
|
151
|
-
const result = await user.upgrade(); // While logged out
|
|
152
|
-
expect(result.error).toBe('Login required');
|
|
153
|
-
});
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Pairwise (Combinatorial) Testing
|
|
159
|
-
|
|
160
|
-
**Problem:** All combinations explode exponentially.
|
|
161
|
-
|
|
162
|
-
```javascript
|
|
163
|
-
// Parameters:
|
|
164
|
-
// Browser: Chrome, Firefox, Safari (3)
|
|
165
|
-
// OS: Windows, Mac, Linux (3)
|
|
166
|
-
// Screen: Desktop, Tablet, Mobile (3)
|
|
167
|
-
|
|
168
|
-
// All combinations: 3 × 3 × 3 = 27 tests
|
|
169
|
-
// Pairwise: 9 tests cover all pairs
|
|
170
|
-
|
|
171
|
-
const pairwiseTests = [
|
|
172
|
-
{ browser: 'Chrome', os: 'Windows', screen: 'Desktop' },
|
|
173
|
-
{ browser: 'Chrome', os: 'Mac', screen: 'Tablet' },
|
|
174
|
-
{ browser: 'Chrome', os: 'Linux', screen: 'Mobile' },
|
|
175
|
-
{ browser: 'Firefox', os: 'Windows', screen: 'Tablet' },
|
|
176
|
-
{ browser: 'Firefox', os: 'Mac', screen: 'Mobile' },
|
|
177
|
-
{ browser: 'Firefox', os: 'Linux', screen: 'Desktop' },
|
|
178
|
-
{ browser: 'Safari', os: 'Windows', screen: 'Mobile' },
|
|
179
|
-
{ browser: 'Safari', os: 'Mac', screen: 'Desktop' },
|
|
180
|
-
{ browser: 'Safari', os: 'Linux', screen: 'Tablet' }
|
|
181
|
-
];
|
|
182
|
-
// Each pair appears at least once
|
|
183
|
-
```
|
|
184
|
-
|
|
185
39
|
---
|
|
186
40
|
|
|
187
41
|
## Agent-Driven Test Design
|
|
@@ -243,8 +97,4 @@ const designFleet = await FleetManager.coordinate({
|
|
|
243
97
|
|
|
244
98
|
## Remember
|
|
245
99
|
|
|
246
|
-
**Systematic design > Random testing.** 40+ years of research shows these techniques find more bugs with fewer tests than ad-hoc approaches.
|
|
247
|
-
|
|
248
|
-
**Combine techniques for comprehensive coverage.** BVA for boundaries, EP for partitions, decision tables for rules, pairwise for combinations.
|
|
249
|
-
|
|
250
100
|
**With Agents:** `qe-test-generator` applies these techniques automatically, generating optimal test suites with maximum coverage and minimum redundancy. Agents identify boundaries, partitions, and combinations from code analysis.
|
|
@@ -14,7 +14,6 @@ tags: [environment, docker, kubernetes, infrastructure, parity, cost-optimizatio
|
|
|
14
14
|
trust_tier: 1
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
|
-
|
|
18
17
|
---
|
|
19
18
|
|
|
20
19
|
# Test Environment Management
|
|
@@ -48,23 +47,6 @@ When managing test environments:
|
|
|
48
47
|
- Reducing test infrastructure costs
|
|
49
48
|
- Ensuring dev/prod parity
|
|
50
49
|
|
|
51
|
-
### Environment Types
|
|
52
|
-
| Type | Purpose | Lifetime |
|
|
53
|
-
|------|---------|----------|
|
|
54
|
-
| **Local** | Fast feedback | Developer session |
|
|
55
|
-
| **CI** | Automated tests | Per build (ephemeral) |
|
|
56
|
-
| **Staging** | Pre-prod validation | Persistent |
|
|
57
|
-
| **Production** | Canary/synthetic | Continuous |
|
|
58
|
-
|
|
59
|
-
### Dev/Prod Parity Checklist
|
|
60
|
-
| Item | Must Match |
|
|
61
|
-
|------|------------|
|
|
62
|
-
| OS | Same version |
|
|
63
|
-
| Database | Same type + version |
|
|
64
|
-
| Dependencies | Same versions |
|
|
65
|
-
| Config | Same structure |
|
|
66
|
-
| Env vars | Same names |
|
|
67
|
-
|
|
68
50
|
---
|
|
69
51
|
|
|
70
52
|
## Docker for Test Environments
|
|
@@ -104,32 +86,6 @@ docker-compose -f docker-compose.test.yml down
|
|
|
104
86
|
|
|
105
87
|
---
|
|
106
88
|
|
|
107
|
-
## Infrastructure as Code
|
|
108
|
-
|
|
109
|
-
```hcl
|
|
110
|
-
# test-environment.tf
|
|
111
|
-
resource "aws_instance" "test_server" {
|
|
112
|
-
ami = "ami-0c55b159cbfafe1f0"
|
|
113
|
-
instance_type = "t3.medium"
|
|
114
|
-
|
|
115
|
-
tags = {
|
|
116
|
-
Name = "test-environment"
|
|
117
|
-
Environment = "test"
|
|
118
|
-
AutoShutdown = "20:00" # Cost optimization
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
resource "aws_rds_instance" "test_db" {
|
|
123
|
-
engine = "postgres"
|
|
124
|
-
engine_version = "15"
|
|
125
|
-
instance_class = "db.t3.micro"
|
|
126
|
-
backup_retention_period = 0 # No backups needed for test
|
|
127
|
-
skip_final_snapshot = true
|
|
128
|
-
}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
89
|
## Service Virtualization
|
|
134
90
|
|
|
135
91
|
```javascript
|
|
@@ -240,8 +196,4 @@ const envFleet = await FleetManager.coordinate({
|
|
|
240
196
|
|
|
241
197
|
## Remember
|
|
242
198
|
|
|
243
|
-
**Environment inconsistency = flaky tests.** "Works on my machine" problems come from: different OS/versions, missing dependencies, configuration differences, data differences.
|
|
244
|
-
|
|
245
|
-
**Infrastructure as Code ensures repeatability.** Version control your environment configurations. Spin up identical environments on demand.
|
|
246
|
-
|
|
247
199
|
**With Agents:** Agents automatically provision test environments matching production, ensure parity, mock external services, and optimize costs with auto-scaling and auto-shutdown.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-failure-investigator
|
|
3
|
+
description: "Use when a test is failing and you need to determine root cause: is it flaky, an environment issue, or a real regression? Traces failure from symptom to fix."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Test Failure Investigator
|
|
8
|
+
|
|
9
|
+
Runbook-style skill for systematic test failure investigation. Given a failing test, determines root cause and recommends action.
|
|
10
|
+
|
|
11
|
+
## Activation
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/test-failure-investigator [test-name-or-file]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Investigation Flow
|
|
18
|
+
|
|
19
|
+
### Step 1: Classify the Failure
|
|
20
|
+
|
|
21
|
+
Run the test 3 times and classify:
|
|
22
|
+
|
|
23
|
+
| Result Pattern | Classification | Action |
|
|
24
|
+
|---------------|---------------|--------|
|
|
25
|
+
| Fails consistently | **Regression** or **Environment** | Continue to Step 2 |
|
|
26
|
+
| Fails intermittently | **Flaky** | Skip to Step 4 |
|
|
27
|
+
| Passes now | **Transient** | Check CI logs, environment diff |
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Run test 3 times
|
|
31
|
+
for i in 1 2 3; do npx jest {{test_file}} 2>&1 | tail -5; echo "--- Run $i ---"; done
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Step 2: Narrow the Scope
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# When did it start failing?
|
|
38
|
+
git log --oneline -20 -- {{related_source_files}}
|
|
39
|
+
|
|
40
|
+
# What changed recently?
|
|
41
|
+
git diff HEAD~5 -- {{related_source_files}}
|
|
42
|
+
|
|
43
|
+
# Does it fail in isolation?
|
|
44
|
+
npx jest {{test_file}} --testNamePattern="{{test_name}}"
|
|
45
|
+
|
|
46
|
+
# Does it fail with other tests?
|
|
47
|
+
npx jest --runInBand # sequential execution
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Step 3: Root Cause Analysis
|
|
51
|
+
|
|
52
|
+
| Symptom | Likely Cause | Investigation |
|
|
53
|
+
|---------|-------------|--------------|
|
|
54
|
+
| Timeout | Network/DB dependency | Check external service availability |
|
|
55
|
+
| Assertion mismatch | Logic change | Compare expected vs actual, check git blame |
|
|
56
|
+
| Import error | Dependency change | Check package.json changes, run `npm ci` |
|
|
57
|
+
| Permission denied | Environment | Check file permissions, Docker volumes |
|
|
58
|
+
| Out of memory | Resource leak | Profile with `--detectOpenHandles` |
|
|
59
|
+
|
|
60
|
+
### Step 4: Flaky Test Investigation
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Run 10 times to confirm flakiness
|
|
64
|
+
for i in $(seq 1 10); do npx jest {{test_file}} --forceExit 2>&1 | grep -E 'PASS|FAIL'; done
|
|
65
|
+
|
|
66
|
+
# Common flaky causes:
|
|
67
|
+
# - Shared state between tests (missing cleanup)
|
|
68
|
+
# - Time-dependent assertions (use fake timers)
|
|
69
|
+
# - Race conditions (missing await)
|
|
70
|
+
# - Port conflicts (use random ports)
|
|
71
|
+
# - Order dependency (run with --randomize)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Step 5: Report
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
## Test Failure Report
|
|
78
|
+
- **Test**: {{test_name}}
|
|
79
|
+
- **File**: {{test_file}}
|
|
80
|
+
- **Classification**: Regression / Flaky / Environment / Transient
|
|
81
|
+
- **Root Cause**: {{description}}
|
|
82
|
+
- **First Failed**: {{commit_hash}} ({{date}})
|
|
83
|
+
- **Fix**: {{recommended_action}}
|
|
84
|
+
- **Verified**: [ ] Fix applied and test passes 3x consecutively
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Composition
|
|
88
|
+
|
|
89
|
+
After investigation, compose with:
|
|
90
|
+
- **`/bug-reporting-excellence`** — if regression found, file a bug report
|
|
91
|
+
- **`/regression-testing`** — if regression, add to regression suite
|
|
92
|
+
- **`/qe-test-execution`** — for re-running tests after fix
|
|
93
|
+
|
|
94
|
+
## Gotchas
|
|
95
|
+
|
|
96
|
+
- Agent may guess at root cause without running the test — always reproduce first
|
|
97
|
+
- "Works on my machine" is not a diagnosis — compare environments (node version, OS, deps)
|
|
98
|
+
- Flaky tests that pass 9/10 times will still be reported as "passing" by CI — run 10+ times
|
|
99
|
+
- Test isolation failures are the #1 cause of flaky tests — check for shared state in beforeAll/afterAll
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-metrics-dashboard
|
|
3
|
+
description: "Use when querying test history, analyzing flakiness rates, tracking MTTR, or building quality trend dashboards from test execution data."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Test Metrics Dashboard
|
|
8
|
+
|
|
9
|
+
Data & Analysis skill for querying test execution history, identifying trends, and surfacing actionable quality metrics.
|
|
10
|
+
|
|
11
|
+
## Activation
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/test-metrics-dashboard
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Key Metrics
|
|
18
|
+
|
|
19
|
+
### Test Health Metrics
|
|
20
|
+
|
|
21
|
+
| Metric | Formula | Target | Alert |
|
|
22
|
+
|--------|---------|--------|-------|
|
|
23
|
+
| **Pass Rate** | Passed / Total | > 95% | < 90% |
|
|
24
|
+
| **Flakiness Rate** | Flaky / Total | < 5% | > 10% |
|
|
25
|
+
| **MTTR** | Avg time from failure to fix | < 4 hours | > 24 hours |
|
|
26
|
+
| **Execution Time** | Total suite duration | < 10 min | > 20 min |
|
|
27
|
+
| **Coverage Delta** | Current - Previous | >= 0% | < -2% |
|
|
28
|
+
|
|
29
|
+
### Data Collection
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Export Jest results to JSON
|
|
33
|
+
npx jest --json --outputFile=test-results/$(date +%Y-%m-%d).json
|
|
34
|
+
|
|
35
|
+
# Parse results for dashboard
|
|
36
|
+
jq '{
|
|
37
|
+
date: .startTime,
|
|
38
|
+
total: .numTotalTests,
|
|
39
|
+
passed: .numPassedTests,
|
|
40
|
+
failed: .numFailedTests,
|
|
41
|
+
duration_ms: (.testResults | map(.endTime - .startTime) | add),
|
|
42
|
+
pass_rate: ((.numPassedTests / .numTotalTests) * 100),
|
|
43
|
+
flaky: [.testResults[] | select(.numPendingTests > 0)] | length
|
|
44
|
+
}' test-results/$(date +%Y-%m-%d).json
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Trend Analysis
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Compare last 5 runs
|
|
51
|
+
for f in $(ls -t test-results/*.json | head -5); do
|
|
52
|
+
jq --arg file "$f" '{
|
|
53
|
+
file: $file,
|
|
54
|
+
pass_rate: ((.numPassedTests / .numTotalTests) * 100 | floor),
|
|
55
|
+
duration_s: ((.testResults | map(.endTime - .startTime) | add) / 1000 | floor)
|
|
56
|
+
}' "$f"
|
|
57
|
+
done
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Top Failing Tests
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Find most frequently failing tests across runs
|
|
64
|
+
for f in test-results/*.json; do
|
|
65
|
+
jq -r '.testResults[] | select(.numFailingTests > 0) | .testFilePath' "$f"
|
|
66
|
+
done | sort | uniq -c | sort -rn | head -10
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Run History
|
|
70
|
+
|
|
71
|
+
Store dashboard data in `${CLAUDE_PLUGIN_DATA}/test-metrics.log`:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
2026-03-18|95.2|4.1|312|82.5|3
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Format: `date|pass_rate|flakiness_rate|duration_s|coverage_pct|failed_count`
|
|
78
|
+
|
|
79
|
+
Read history for trend detection:
|
|
80
|
+
```bash
|
|
81
|
+
# Coverage trending down?
|
|
82
|
+
tail -5 "${CLAUDE_PLUGIN_DATA}/test-metrics.log" | awk -F'|' '{print $5}' | sort -n | head -1
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Composition
|
|
86
|
+
|
|
87
|
+
Feeds into:
|
|
88
|
+
- **`/qe-quality-assessment`** — quality gate decisions based on metrics
|
|
89
|
+
- **`/test-failure-investigator`** — investigate top failing tests
|
|
90
|
+
- **`/coverage-drop-investigator`** — when coverage trends down
|
|
91
|
+
|
|
92
|
+
## Gotchas
|
|
93
|
+
|
|
94
|
+
- Metrics without baselines are meaningless — establish baselines before tracking trends
|
|
95
|
+
- Flakiness rate is underreported — a test that fails 1/100 times still breaks CI weekly
|
|
96
|
+
- Duration trends upward over time as test count grows — set alerts on rate of increase, not absolute value
|
|
97
|
+
- Agent may report metrics from a single run as "trends" — need 5+ data points for meaningful trends
|