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
|
@@ -47,57 +47,6 @@ When validating cross-browser/platform compatibility:
|
|
|
47
47
|
- Launching in new markets
|
|
48
48
|
- Responsive design validation
|
|
49
49
|
|
|
50
|
-
### Browser Matrix
|
|
51
|
-
| Browser | Versions | Priority |
|
|
52
|
-
|---------|----------|----------|
|
|
53
|
-
| **Chrome** | Latest, N-1 | High |
|
|
54
|
-
| **Firefox** | Latest, N-1 | High |
|
|
55
|
-
| **Safari** | Latest, N-1 | High |
|
|
56
|
-
| **Edge** | Latest | Medium |
|
|
57
|
-
| **Mobile Safari** | iOS latest | High |
|
|
58
|
-
| **Mobile Chrome** | Android latest | High |
|
|
59
|
-
|
|
60
|
-
### Screen Breakpoints
|
|
61
|
-
| Category | Width Range |
|
|
62
|
-
|----------|-------------|
|
|
63
|
-
| **Mobile** | 320px - 480px |
|
|
64
|
-
| **Tablet** | 481px - 768px |
|
|
65
|
-
| **Desktop** | 769px - 1920px+ |
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Responsive Design Testing
|
|
70
|
-
|
|
71
|
-
```javascript
|
|
72
|
-
import { test, expect } from '@playwright/test';
|
|
73
|
-
|
|
74
|
-
const devices = [
|
|
75
|
-
{ name: 'iPhone 12', width: 390, height: 844 },
|
|
76
|
-
{ name: 'iPad', width: 768, height: 1024 },
|
|
77
|
-
{ name: 'Desktop', width: 1920, height: 1080 }
|
|
78
|
-
];
|
|
79
|
-
|
|
80
|
-
for (const device of devices) {
|
|
81
|
-
test(`layout on ${device.name}`, async ({ page }) => {
|
|
82
|
-
await page.setViewportSize({
|
|
83
|
-
width: device.width,
|
|
84
|
-
height: device.height
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
await page.goto('https://example.com');
|
|
88
|
-
|
|
89
|
-
const nav = await page.locator('nav');
|
|
90
|
-
if (device.width < 768) {
|
|
91
|
-
// Mobile: hamburger menu
|
|
92
|
-
expect(await nav.locator('.hamburger')).toBeVisible();
|
|
93
|
-
} else {
|
|
94
|
-
// Desktop: full menu
|
|
95
|
-
expect(await nav.locator('.menu-items')).toBeVisible();
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
50
|
---
|
|
102
51
|
|
|
103
52
|
## Cross-Browser with Playwright
|
|
@@ -202,8 +151,6 @@ const compatFleet = await FleetManager.coordinate({
|
|
|
202
151
|
|
|
203
152
|
## Remember
|
|
204
153
|
|
|
205
|
-
**Test where users are, not where you develop.** Developers use latest Chrome on high-end machines. Users access from older browsers, low-end devices, and slow networks.
|
|
206
|
-
|
|
207
154
|
**Cover 95%+ of your user base.** Use analytics to identify actual browser/device usage. Don't waste time on browsers nobody uses.
|
|
208
155
|
|
|
209
|
-
**With Agents:** Agents orchestrate parallel cross-browser testing across cloud platforms
|
|
156
|
+
**With Agents:** Agents orchestrate parallel cross-browser testing across cloud platforms. `qe-visual-tester` catches visual inconsistencies across platforms automatically.
|
|
@@ -11,7 +11,6 @@ last_optimized: 2025-12-02
|
|
|
11
11
|
dependencies: []
|
|
12
12
|
quick_reference_card: true
|
|
13
13
|
tags: [compliance, gdpr, hipaa, pci-dss, ccpa, soc2, privacy, audit]
|
|
14
|
-
|
|
15
14
|
# ADR-056 Validation Stack Configuration
|
|
16
15
|
trust_tier: 3
|
|
17
16
|
validation:
|
|
@@ -230,3 +229,11 @@ const complianceFleet = await FleetManager.coordinate({
|
|
|
230
229
|
**Audit trail everything.** Every access to sensitive data, every consent, every deletion must be logged with timestamps and user IDs.
|
|
231
230
|
|
|
232
231
|
**With Agents:** Agents validate compliance requirements continuously, detect violations early, and generate audit-ready reports. Catch compliance issues in development, not in audits.
|
|
232
|
+
|
|
233
|
+
## Gotchas
|
|
234
|
+
|
|
235
|
+
- Agent checks GDPR consent flow but misses data retention — always verify deletion/anonymization actually works
|
|
236
|
+
- Compliance reports with "100% compliant" are suspicious — no real system is fully compliant, verify each claim
|
|
237
|
+
- Agent may test US regulations only — explicitly specify jurisdiction (EU, CA, etc.) for correct requirements
|
|
238
|
+
- PII in test data is itself a compliance violation — never use production PII, use synthetic generators
|
|
239
|
+
- Audit trail gaps are invisible until audit time — verify logging exists for EVERY data access, not just writes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./config-schema.json",
|
|
3
|
+
"_description": "Compliance Testing configuration. Auto-created on first run. Edit to customize.",
|
|
4
|
+
"regulations": [],
|
|
5
|
+
"scope": null,
|
|
6
|
+
"options": {
|
|
7
|
+
"dataClassification": null,
|
|
8
|
+
"retentionPolicyDays": null,
|
|
9
|
+
"auditLogRequired": true,
|
|
10
|
+
"piiScanEnabled": true
|
|
11
|
+
},
|
|
12
|
+
"_setupPrompt": "If regulations is empty, ask: 'Which regulations apply to this project? (gdpr/ccpa/hipaa/soc2/pci-dss — comma-separated)'. If scope is null, ask: 'What is the compliance scope? (full-app/api-only/data-layer/specific-module)'."
|
|
13
|
+
}
|
|
@@ -14,7 +14,6 @@ tags: [consulting, advisory, client-engagement, quality-assessment, transformati
|
|
|
14
14
|
trust_tier: 1
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
|
-
|
|
18
17
|
---
|
|
19
18
|
|
|
20
19
|
# Consultancy Practices
|
|
@@ -41,28 +40,9 @@ When consulting on quality:
|
|
|
41
40
|
|
|
42
41
|
## Quick Reference Card
|
|
43
42
|
|
|
44
|
-
### The Consulting Process
|
|
45
|
-
|
|
46
|
-
| Phase | Duration | Goal | Deliverable |
|
|
47
|
-
|-------|----------|------|-------------|
|
|
48
|
-
| **Discovery** | Week 1-2 | Understand context | Interview notes, observations |
|
|
49
|
-
| **Analysis** | Week 2-3 | Identify root causes | Impact/effort matrix |
|
|
50
|
-
| **Recommendations** | Week 3-4 | Present findings | Report with roadmap |
|
|
51
|
-
| **Implementation** | Month 2-6+ | Execute changes | Working system, trained team |
|
|
52
|
-
| **Transition** | Final month | Ensure self-sufficiency | Handover docs |
|
|
53
|
-
|
|
54
|
-
### Impact/Effort Matrix
|
|
55
|
-
|
|
56
|
-
| Priority | What | Action |
|
|
57
|
-
|----------|------|--------|
|
|
58
|
-
| High Impact, Low Effort | Quick wins | Do first |
|
|
59
|
-
| High Impact, High Effort | Major initiatives | Plan carefully |
|
|
60
|
-
| Low Impact, Low Effort | Nice-to-haves | If time permits |
|
|
61
|
-
| Low Impact, High Effort | Distractions | Skip |
|
|
62
|
-
|
|
63
43
|
---
|
|
64
44
|
|
|
65
|
-
## Common Patterns
|
|
45
|
+
## Common Patterns (What Clients Say vs. What They Mean)
|
|
66
46
|
|
|
67
47
|
### "We Need Test Automation"
|
|
68
48
|
|
|
@@ -111,18 +91,6 @@ When consulting on quality:
|
|
|
111
91
|
|
|
112
92
|
---
|
|
113
93
|
|
|
114
|
-
## Anti-Patterns
|
|
115
|
-
|
|
116
|
-
| Anti-Pattern | Problem | Better |
|
|
117
|
-
|--------------|---------|--------|
|
|
118
|
-
| **Cookie-Cutter** | Same solution everywhere | Context-specific recommendations |
|
|
119
|
-
| **Tool Pusher** | Recommend expensive tools | Tools that solve actual problems |
|
|
120
|
-
| **Process Nazi** | Impose rigid process | Lightweight, fits their culture |
|
|
121
|
-
| **Permanent Fixture** | Never leave, create dependency | Work toward them not needing you |
|
|
122
|
-
| **Blame Game** | Point fingers at people | Fix systems, not blame people |
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
94
|
## Difficult Situations
|
|
127
95
|
|
|
128
96
|
**"We already tried that"**
|
|
@@ -13,7 +13,6 @@ quick_reference_card: true
|
|
|
13
13
|
tags: [context-driven, rst, exploratory, heuristics, oracles, skilled-testing]
|
|
14
14
|
trust_tier: 0
|
|
15
15
|
validation:
|
|
16
|
-
|
|
17
16
|
---
|
|
18
17
|
|
|
19
18
|
# Context-Driven Testing
|
|
@@ -46,23 +45,6 @@ When making testing decisions or adapting approaches:
|
|
|
46
45
|
- Adapting approach to specific constraints
|
|
47
46
|
- Exploratory testing sessions
|
|
48
47
|
|
|
49
|
-
### Seven Context-Driven Principles
|
|
50
|
-
1. Value of any practice depends on its context
|
|
51
|
-
2. Good practices in context, no universal best practices
|
|
52
|
-
3. People working together are most important
|
|
53
|
-
4. Projects unfold in unpredictable ways
|
|
54
|
-
5. Product is a solution - if problem not solved, product fails
|
|
55
|
-
6. Good testing is challenging intellectual work
|
|
56
|
-
7. Judgment and skill determine right things at right times
|
|
57
|
-
|
|
58
|
-
### Context Factors
|
|
59
|
-
| Factor | Questions |
|
|
60
|
-
|--------|-----------|
|
|
61
|
-
| **Project** | Business goal? User needs? Failure impact? |
|
|
62
|
-
| **Constraints** | Timeline? Budget? Team skills? Legacy? |
|
|
63
|
-
| **Risk** | Safety-critical? Regulated? High volume? |
|
|
64
|
-
| **Technical** | Stack quirks? Integrations? Observability? |
|
|
65
|
-
|
|
66
48
|
### RST Heuristics
|
|
67
49
|
| Heuristic | Application |
|
|
68
50
|
|-----------|-------------|
|
|
@@ -98,26 +80,6 @@ When making testing decisions or adapting approaches:
|
|
|
98
80
|
|
|
99
81
|
---
|
|
100
82
|
|
|
101
|
-
## Investigation vs. Checking
|
|
102
|
-
|
|
103
|
-
| Checking | Testing (Investigation) |
|
|
104
|
-
|----------|------------------------|
|
|
105
|
-
| Did API return 200? | Does API meet user needs? |
|
|
106
|
-
| Does button work? | What happens under load? |
|
|
107
|
-
| Match the spec? | Does it solve the problem? |
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Red Flags: Not Context-Driven
|
|
112
|
-
|
|
113
|
-
- Follow process "because that's how it's done"
|
|
114
|
-
- Can't explain *why* you're doing something
|
|
115
|
-
- Measure test cases executed, not problems found
|
|
116
|
-
- Test plan could apply to any project
|
|
117
|
-
- Stop thinking once you have a script
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
83
|
## Agent-Assisted Context-Driven Testing
|
|
122
84
|
|
|
123
85
|
```typescript
|
|
@@ -192,8 +154,4 @@ const contextFleet = await FleetManager.coordinate({
|
|
|
192
154
|
|
|
193
155
|
## Remember
|
|
194
156
|
|
|
195
|
-
**Context drives decisions.** No universal best practices. Skilled testers make informed decisions based on specific goals, constraints, and risks.
|
|
196
|
-
|
|
197
|
-
You're not a test script executor. You're a skilled investigator helping teams build better products.
|
|
198
|
-
|
|
199
157
|
**With Agents:** Agents analyze context, adapt strategies, and learn what works in your situation. Use agents to scale context-driven thinking while maintaining human judgment for critical decisions.
|
|
@@ -213,6 +213,10 @@ const contractFleet = await FleetManager.coordinate({
|
|
|
213
213
|
|
|
214
214
|
---
|
|
215
215
|
|
|
216
|
+
## Agent CLI & Advanced Patterns
|
|
217
|
+
|
|
218
|
+
For v3 agent-specific commands (`aqe contract ...`), GraphQL contracts, event contracts, and Pact Broker integration, see [references/agent-commands.md](references/agent-commands.md).
|
|
219
|
+
|
|
216
220
|
## Related Skills
|
|
217
221
|
- [api-testing-patterns](../api-testing-patterns/) - API testing strategies
|
|
218
222
|
- [shift-left-testing](../shift-left-testing/) - Early contract validation
|
|
@@ -225,3 +229,11 @@ const contractFleet = await FleetManager.coordinate({
|
|
|
225
229
|
**Consumers own the contract.** They define what they need; providers must fulfill it. Breaking changes require major version bumps and coordination. CI/CD blocks deploys that break contracts. Use Pact for consumer-driven, OpenAPI for API-first.
|
|
226
230
|
|
|
227
231
|
**With Agents:** Agents validate contracts, detect breaking changes with semver recommendations, and generate migration guides. Use agents to maintain contract compliance at scale.
|
|
232
|
+
|
|
233
|
+
## Gotchas
|
|
234
|
+
|
|
235
|
+
- Pact broker URL must be configured before running — agent will generate tests that silently skip verification without it
|
|
236
|
+
- Consumer tests pass locally but fail in CI when provider states aren't set up — always verify both sides
|
|
237
|
+
- Adding a required field to a response is a BREAKING change even though provider tests pass — consumer didn't expect it
|
|
238
|
+
- Agent may generate contracts from API docs instead of actual consumer usage — contracts must reflect real consumer needs
|
|
239
|
+
- GraphQL contract testing requires schema stitching awareness — fragments may reference types from other services
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./config-schema.json",
|
|
3
|
+
"_description": "Contract Testing configuration. Auto-created on first run. Edit to customize.",
|
|
4
|
+
"broker_url": null,
|
|
5
|
+
"consumer_name": null,
|
|
6
|
+
"provider_name": null,
|
|
7
|
+
"options": {
|
|
8
|
+
"publishVerificationResults": true,
|
|
9
|
+
"enablePending": true,
|
|
10
|
+
"includeWipPactsSince": null
|
|
11
|
+
},
|
|
12
|
+
"_setupPrompt": "If broker_url is null, ask: 'What is your Pact Broker URL? (or \"local\" for file-based)'. If consumer_name is null, ask: 'What is the consumer service name?'. If provider_name is null, ask: 'What is the provider service name?'"
|
|
13
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Contract Testing — Agent CLI Commands & Advanced Patterns
|
|
2
|
+
|
|
3
|
+
Merged from `qe-contract-testing`. Use these when working with v3 agent-specific contract capabilities.
|
|
4
|
+
|
|
5
|
+
## AQE CLI Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Generate contract from API spec
|
|
9
|
+
aqe contract generate --api openapi.yaml --output contracts/
|
|
10
|
+
|
|
11
|
+
# Verify provider against contracts
|
|
12
|
+
aqe contract verify --provider http://localhost:3000 --contracts contracts/
|
|
13
|
+
|
|
14
|
+
# Check breaking changes between versions
|
|
15
|
+
aqe contract breaking --old api-v1.yaml --new api-v2.yaml
|
|
16
|
+
|
|
17
|
+
# Test GraphQL schema
|
|
18
|
+
aqe contract graphql --schema schema.graphql --operations queries/
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Agent Workflow
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Contract generation
|
|
25
|
+
Task("Generate API contracts", `
|
|
26
|
+
Analyze the REST API and generate consumer contracts:
|
|
27
|
+
- Parse OpenAPI specification
|
|
28
|
+
- Identify critical endpoints
|
|
29
|
+
- Generate Pact contracts
|
|
30
|
+
- Include example requests/responses
|
|
31
|
+
Output to contracts/ directory.
|
|
32
|
+
`, "qe-api-contract")
|
|
33
|
+
|
|
34
|
+
// Breaking change detection
|
|
35
|
+
Task("Check API compatibility", `
|
|
36
|
+
Compare API v2.0 against v1.0:
|
|
37
|
+
- Detect removed endpoints
|
|
38
|
+
- Check parameter changes
|
|
39
|
+
- Verify response schema changes
|
|
40
|
+
- Identify deprecations
|
|
41
|
+
Report breaking vs non-breaking changes.
|
|
42
|
+
`, "qe-api-compatibility")
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## GraphQL Contract Testing
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
await graphqlTester.testContracts({
|
|
49
|
+
schema: 'schema.graphql',
|
|
50
|
+
operations: 'queries/**/*.graphql',
|
|
51
|
+
validation: {
|
|
52
|
+
queryValidity: true,
|
|
53
|
+
responseShapes: true,
|
|
54
|
+
nullability: true,
|
|
55
|
+
deprecations: true
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Event Contract Testing
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
await contractTester.eventContracts({
|
|
64
|
+
schema: 'events/schemas/',
|
|
65
|
+
events: {
|
|
66
|
+
'user.created': {
|
|
67
|
+
schema: 'UserCreatedEvent.json',
|
|
68
|
+
examples: ['examples/user-created.json']
|
|
69
|
+
},
|
|
70
|
+
'order.completed': {
|
|
71
|
+
schema: 'OrderCompletedEvent.json',
|
|
72
|
+
examples: ['examples/order-completed.json']
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
compatibility: 'backward'
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Contract Report Interface
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
interface ContractReport {
|
|
83
|
+
summary: { contracts: number; passed: number; failed: number; warnings: number };
|
|
84
|
+
consumers: { name: string; contracts: ContractResult[]; compatibility: 'compatible' | 'breaking' | 'unknown' }[];
|
|
85
|
+
breakingChanges: { type: string; location: string; description: string; impact: 'high' | 'medium' | 'low'; migration: string }[];
|
|
86
|
+
deprecations: { item: string; deprecatedIn: string; removeIn: string; replacement: string }[];
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Pact Broker Integration
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
await contractTester.withBroker({
|
|
94
|
+
brokerUrl: 'https://pact-broker.example.com',
|
|
95
|
+
auth: { token: process.env.PACT_TOKEN },
|
|
96
|
+
operations: { publish: true, canIDeploy: true, webhooks: true }
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Coordination
|
|
101
|
+
|
|
102
|
+
**Primary Agents**: qe-api-contract, qe-api-compatibility, qe-graphql-tester
|
|
103
|
+
**Coordinator**: qe-contract-coordinator
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Provider States Reference
|
|
2
|
+
|
|
3
|
+
Provider states define the preconditions that must exist on the provider for a contract interaction to succeed.
|
|
4
|
+
|
|
5
|
+
## Pattern: State Setup
|
|
6
|
+
```javascript
|
|
7
|
+
// provider-states.js
|
|
8
|
+
const states = {
|
|
9
|
+
'a user exists': async () => {
|
|
10
|
+
await db.users.create({ id: 1, name: 'Test User', email: 'test@example.com' });
|
|
11
|
+
},
|
|
12
|
+
'no users exist': async () => {
|
|
13
|
+
await db.users.deleteAll();
|
|
14
|
+
},
|
|
15
|
+
'user 1 has 3 orders': async () => {
|
|
16
|
+
await db.users.create({ id: 1, name: 'Test User' });
|
|
17
|
+
await db.orders.bulkCreate([
|
|
18
|
+
{ userId: 1, status: 'shipped' },
|
|
19
|
+
{ userId: 1, status: 'pending' },
|
|
20
|
+
{ userId: 1, status: 'delivered' }
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Common Mistakes
|
|
27
|
+
1. **State not cleaned up** — use transactions or truncate after each test
|
|
28
|
+
2. **Hardcoded IDs** — use factories or fixtures that generate consistent IDs
|
|
29
|
+
3. **Missing state** — provider test passes without state setup (no data = no error)
|
|
30
|
+
4. **Overly specific states** — "user John with email john@..." couples to consumer
|
|
31
|
+
|
|
32
|
+
## Pact Broker Webhook Setup
|
|
33
|
+
```bash
|
|
34
|
+
# Verify provider when consumer publishes new contract
|
|
35
|
+
curl -X POST ${PACT_BROKER_URL}/webhooks \
|
|
36
|
+
-H "Content-Type: application/json" \
|
|
37
|
+
-d '{
|
|
38
|
+
"events": [{ "name": "contract_content_changed" }],
|
|
39
|
+
"request": {
|
|
40
|
+
"method": "POST",
|
|
41
|
+
"url": "${CI_TRIGGER_URL}",
|
|
42
|
+
"body": { "pact_url": "${pactbroker.pactUrl}" }
|
|
43
|
+
}
|
|
44
|
+
}'
|
|
45
|
+
```
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coverage-drop-investigator
|
|
3
|
+
description: "Use when test coverage has dropped and you need to find which changes caused it and what tests to add. Traces coverage regressions to specific commits and files."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Coverage Drop Investigator
|
|
8
|
+
|
|
9
|
+
Runbook-style skill for investigating coverage regressions. Identifies which changes caused coverage to drop and recommends targeted tests.
|
|
10
|
+
|
|
11
|
+
## Activation
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/coverage-drop-investigator
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Investigation Flow
|
|
18
|
+
|
|
19
|
+
### Step 1: Measure Current Coverage
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Generate coverage report
|
|
23
|
+
npx jest --coverage --coverageReporters=json-summary
|
|
24
|
+
|
|
25
|
+
# View summary
|
|
26
|
+
cat coverage/coverage-summary.json | jq '.total'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Step 2: Find When Coverage Dropped
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Compare coverage with main branch
|
|
33
|
+
git stash && npx jest --coverage --coverageReporters=json-summary
|
|
34
|
+
mv coverage/coverage-summary.json coverage/baseline.json
|
|
35
|
+
git stash pop && npx jest --coverage --coverageReporters=json-summary
|
|
36
|
+
|
|
37
|
+
# Compare
|
|
38
|
+
jq -s '.[0].total.statements.pct as $baseline | .[1].total.statements.pct as $current | {baseline: $baseline, current: $current, delta: ($current - $baseline)}' coverage/baseline.json coverage/coverage-summary.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Step 3: Identify Uncovered Files
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Find files with lowest coverage
|
|
45
|
+
cat coverage/coverage-summary.json | jq 'to_entries | map(select(.key != "total")) | sort_by(.value.statements.pct) | .[0:10] | .[] | {file: .key, statements: .value.statements.pct, branches: .value.branches.pct}'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Step 4: Map to Recent Changes
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Find recently changed files with low coverage
|
|
52
|
+
git diff --name-only main...HEAD | while read file; do
|
|
53
|
+
jq --arg f "$file" '.[$f] // empty | {file: $f, statements: .statements.pct}' coverage/coverage-summary.json
|
|
54
|
+
done
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Step 5: Recommend Tests
|
|
58
|
+
|
|
59
|
+
For each uncovered file, identify:
|
|
60
|
+
1. **Uncovered functions** — need new test cases
|
|
61
|
+
2. **Uncovered branches** — need conditional test cases (if/else paths)
|
|
62
|
+
3. **Uncovered lines** — may indicate dead code or missing edge cases
|
|
63
|
+
|
|
64
|
+
### Step 6: Report
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
## Coverage Drop Report
|
|
68
|
+
- **Current**: {{current_pct}}%
|
|
69
|
+
- **Baseline (main)**: {{baseline_pct}}%
|
|
70
|
+
- **Delta**: {{delta}}%
|
|
71
|
+
- **Files causing drop**:
|
|
72
|
+
| File | Coverage | Changed Lines | Tests Needed |
|
|
73
|
+
|------|----------|--------------|-------------|
|
|
74
|
+
| {{file}} | {{pct}}% | {{lines}} | {{count}} |
|
|
75
|
+
- **Recommended action**: {{write_tests / accept_drop / mark_as_excluded}}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Composition
|
|
79
|
+
|
|
80
|
+
After investigation:
|
|
81
|
+
- **`/qe-test-generation`** — generate tests for uncovered files
|
|
82
|
+
- **`/mutation-testing`** — verify existing tests actually catch bugs
|
|
83
|
+
- **`/coverage-guard`** — prevent future drops
|
|
84
|
+
|
|
85
|
+
## Gotchas
|
|
86
|
+
|
|
87
|
+
- Coverage can drop because NEW code was added without tests, not because tests were removed
|
|
88
|
+
- 100% coverage is not always the goal — focus on critical paths, not getters/setters
|
|
89
|
+
- Branch coverage drops are more concerning than line coverage drops — branches indicate logic paths
|
|
90
|
+
- Coverage tools may count generated code or type definitions — exclude with coveragePathIgnorePatterns
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coverage-guard
|
|
3
|
+
description: "Use when you want to prevent coverage regressions during development. Activate with /coverage-guard to warn when coverage drops below threshold after code changes."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Coverage Guard Mode
|
|
8
|
+
|
|
9
|
+
When activated, checks coverage after test runs and warns if it drops below the configured threshold.
|
|
10
|
+
|
|
11
|
+
## What It Does
|
|
12
|
+
|
|
13
|
+
After any test execution (via Bash tool), compares coverage to the threshold in config.json. Warns (doesn't block) if coverage decreased.
|
|
14
|
+
|
|
15
|
+
## Activation
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/coverage-guard
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Configuration
|
|
22
|
+
|
|
23
|
+
Edit `config.json` in this skill directory to set thresholds:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"thresholds": {
|
|
28
|
+
"statements": 80,
|
|
29
|
+
"branches": 70,
|
|
30
|
+
"functions": 75,
|
|
31
|
+
"lines": 80
|
|
32
|
+
},
|
|
33
|
+
"coverageCommand": "npx jest --coverage --coverageReporters=json-summary",
|
|
34
|
+
"coverageFile": "coverage/coverage-summary.json"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Hook Configuration
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"hooks": {
|
|
43
|
+
"PostToolUse": [
|
|
44
|
+
{
|
|
45
|
+
"matcher": "Bash",
|
|
46
|
+
"hook": ".claude/skills/coverage-guard/scripts/check-coverage.sh",
|
|
47
|
+
"condition": "command contains 'jest' OR command contains 'vitest' OR command contains 'npm test'"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Enforcement Logic
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
#!/bin/bash
|
|
58
|
+
# check-coverage.sh
|
|
59
|
+
COVERAGE_FILE="coverage/coverage-summary.json"
|
|
60
|
+
THRESHOLD=80
|
|
61
|
+
|
|
62
|
+
if [ -f "$COVERAGE_FILE" ]; then
|
|
63
|
+
STATEMENTS=$(jq '.total.statements.pct' "$COVERAGE_FILE")
|
|
64
|
+
BRANCHES=$(jq '.total.branches.pct' "$COVERAGE_FILE")
|
|
65
|
+
|
|
66
|
+
if (( $(echo "$STATEMENTS < $THRESHOLD" | bc -l) )); then
|
|
67
|
+
echo "WARNING: Statement coverage ($STATEMENTS%) below threshold ($THRESHOLD%)"
|
|
68
|
+
echo "Coverage dropped — check which files lost coverage."
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
if (( $(echo "$BRANCHES < 70" | bc -l) )); then
|
|
72
|
+
echo "WARNING: Branch coverage ($BRANCHES%) below 70%"
|
|
73
|
+
fi
|
|
74
|
+
fi
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Gotchas
|
|
78
|
+
|
|
79
|
+
- Coverage check runs AFTER the test command — if tests crash, no coverage report is generated
|
|
80
|
+
- Coverage-summary.json must be configured as a reporter — default Jest config may not include it
|
|
81
|
+
- Threshold comparisons use floating point — `79.999%` will trigger below `80%` threshold
|
|
82
|
+
- Branch coverage is typically 10-15% lower than line coverage — set thresholds accordingly
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# check-coverage.sh — Coverage Guard hook
|
|
3
|
+
# Checks coverage after test runs and warns if below threshold.
|
|
4
|
+
# Called by PostToolUse hook on Bash commands containing jest/vitest/npm test
|
|
5
|
+
|
|
6
|
+
COVERAGE_FILE="coverage/coverage-summary.json"
|
|
7
|
+
THRESHOLD=${COVERAGE_THRESHOLD:-80}
|
|
8
|
+
BRANCH_THRESHOLD=${BRANCH_COVERAGE_THRESHOLD:-70}
|
|
9
|
+
|
|
10
|
+
if [ ! -f "$COVERAGE_FILE" ]; then
|
|
11
|
+
# No coverage report generated — skip silently
|
|
12
|
+
exit 0
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# Extract coverage percentages
|
|
16
|
+
STATEMENTS=$(node -e "console.log(require('./$COVERAGE_FILE').total.statements.pct)" 2>/dev/null)
|
|
17
|
+
BRANCHES=$(node -e "console.log(require('./$COVERAGE_FILE').total.branches.pct)" 2>/dev/null)
|
|
18
|
+
FUNCTIONS=$(node -e "console.log(require('./$COVERAGE_FILE').total.functions.pct)" 2>/dev/null)
|
|
19
|
+
|
|
20
|
+
if [ -z "$STATEMENTS" ]; then
|
|
21
|
+
exit 0
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
EXIT_CODE=0
|
|
25
|
+
|
|
26
|
+
# Check statement coverage
|
|
27
|
+
if [ "$(echo "$STATEMENTS < $THRESHOLD" | bc -l 2>/dev/null)" = "1" ]; then
|
|
28
|
+
echo "WARNING: Statement coverage (${STATEMENTS}%) below threshold (${THRESHOLD}%)"
|
|
29
|
+
EXIT_CODE=1
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# Check branch coverage
|
|
33
|
+
if [ -n "$BRANCHES" ] && [ "$(echo "$BRANCHES < $BRANCH_THRESHOLD" | bc -l 2>/dev/null)" = "1" ]; then
|
|
34
|
+
echo "WARNING: Branch coverage (${BRANCHES}%) below threshold (${BRANCH_THRESHOLD}%)"
|
|
35
|
+
EXIT_CODE=1
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
if [ $EXIT_CODE -eq 0 ]; then
|
|
39
|
+
echo "Coverage OK: statements=${STATEMENTS}%, branches=${BRANCHES}%, functions=${FUNCTIONS}%"
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
exit $EXIT_CODE
|
|
@@ -58,14 +58,6 @@ When testing database operations:
|
|
|
58
58
|
| **Transaction** | ACID properties | Concurrent access |
|
|
59
59
|
| **Performance** | Query speed | Optimization |
|
|
60
60
|
|
|
61
|
-
### ACID Properties
|
|
62
|
-
| Property | Test Focus |
|
|
63
|
-
|----------|------------|
|
|
64
|
-
| **Atomicity** | All or nothing (rollback on error) |
|
|
65
|
-
| **Consistency** | Constraints always valid |
|
|
66
|
-
| **Isolation** | Concurrent transactions don't interfere |
|
|
67
|
-
| **Durability** | Committed data persists |
|
|
68
|
-
|
|
69
61
|
---
|
|
70
62
|
|
|
71
63
|
## Schema Testing
|
|
@@ -242,8 +234,6 @@ const dbFleet = await FleetManager.coordinate({
|
|
|
242
234
|
|
|
243
235
|
## Remember
|
|
244
236
|
|
|
245
|
-
**Database bugs are catastrophic.** Data loss is unrecoverable. Corruption spreads silently. Performance issues compound.
|
|
246
|
-
|
|
247
237
|
**Test migrations before production:** Forward works, rollback works, data preserved, performance acceptable. Never deploy untested migrations.
|
|
248
238
|
|
|
249
239
|
**With Agents:** `qe-test-data-architect` generates realistic test data with referential integrity. `qe-test-executor` validates migrations automatically in CI/CD.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debug-loop
|
|
3
|
-
description:
|
|
3
|
+
description: "Use when debugging a failing test or runtime error with hypothesis-driven investigation, autonomous command validation, and systematic root cause elimination."
|
|
4
4
|
trust_tier: 0
|
|
5
5
|
domain: debugging
|
|
6
6
|
---
|