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
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-watch
|
|
3
|
+
description: "Use when working on security-sensitive code to catch secrets, eval(), innerHTML, and other dangerous patterns before they're written. Activate with /security-watch for real-time security scanning."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Security Watch Mode
|
|
8
|
+
|
|
9
|
+
When activated, scans every file write for common security anti-patterns and blocks dangerous code from being committed.
|
|
10
|
+
|
|
11
|
+
## What It Does
|
|
12
|
+
|
|
13
|
+
Flags or blocks writes containing:
|
|
14
|
+
- **Secrets**: API keys, passwords, tokens, private keys in source code
|
|
15
|
+
- **Dangerous functions**: `eval()`, `Function()`, `innerHTML`, `dangerouslySetInnerHTML`
|
|
16
|
+
- **Injection vectors**: Unsanitized template literals in SQL/shell commands
|
|
17
|
+
- **Insecure config**: `http://` URLs, disabled TLS verification, `*` CORS origins
|
|
18
|
+
|
|
19
|
+
## Activation
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/security-watch
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Hook Configuration
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"hooks": {
|
|
30
|
+
"PreToolUse": [
|
|
31
|
+
{
|
|
32
|
+
"matcher": "Write|Edit",
|
|
33
|
+
"hook": ".claude/skills/security-watch/scripts/scan-security.sh"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Detection Patterns
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
#!/bin/bash
|
|
44
|
+
# scan-security.sh
|
|
45
|
+
CONTENT="$1"
|
|
46
|
+
ISSUES=0
|
|
47
|
+
|
|
48
|
+
# Secrets detection
|
|
49
|
+
SECRET_PATTERNS=(
|
|
50
|
+
'AKIA[0-9A-Z]{16}' # AWS Access Key
|
|
51
|
+
'sk-[a-zA-Z0-9]{48}' # OpenAI API Key
|
|
52
|
+
'ghp_[a-zA-Z0-9]{36}' # GitHub Personal Token
|
|
53
|
+
'password\s*[:=]\s*["\x27][^"\x27]+' # Hardcoded passwords
|
|
54
|
+
'BEGIN (RSA |EC )?PRIVATE KEY' # Private keys
|
|
55
|
+
'sk_live_[a-zA-Z0-9]+' # Stripe secret key
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
for pattern in "${SECRET_PATTERNS[@]}"; do
|
|
59
|
+
if echo "$CONTENT" | grep -qP "$pattern"; then
|
|
60
|
+
echo "BLOCKED: Potential secret detected matching pattern: $pattern"
|
|
61
|
+
ISSUES=$((ISSUES + 1))
|
|
62
|
+
fi
|
|
63
|
+
done
|
|
64
|
+
|
|
65
|
+
# Dangerous functions
|
|
66
|
+
DANGER_PATTERNS=(
|
|
67
|
+
'\beval\s*\('
|
|
68
|
+
'\bFunction\s*\('
|
|
69
|
+
'\.innerHTML\s*='
|
|
70
|
+
'dangerouslySetInnerHTML'
|
|
71
|
+
'child_process.*exec\('
|
|
72
|
+
'\$\{.*\}.*(?:SELECT|INSERT|UPDATE|DELETE)'
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
for pattern in "${DANGER_PATTERNS[@]}"; do
|
|
76
|
+
if echo "$CONTENT" | grep -qP "$pattern"; then
|
|
77
|
+
echo "WARNING: Dangerous pattern detected: $pattern"
|
|
78
|
+
ISSUES=$((ISSUES + 1))
|
|
79
|
+
fi
|
|
80
|
+
done
|
|
81
|
+
|
|
82
|
+
if [ $ISSUES -gt 0 ]; then
|
|
83
|
+
echo "Found $ISSUES security issues. Review before proceeding."
|
|
84
|
+
exit 1
|
|
85
|
+
fi
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Gotchas
|
|
89
|
+
|
|
90
|
+
- False positives on test fixtures that intentionally contain patterns like `eval()` — use `// security-watch:ignore` comment
|
|
91
|
+
- Base64-encoded secrets won't be caught — this scans for plaintext patterns only
|
|
92
|
+
- Template literal injection detection has false positives on safe string interpolation — review warnings carefully
|
|
93
|
+
- This is a first line of defense, not a replacement for proper security review
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# scan-security.sh — Security Watch hook
|
|
3
|
+
# Scans file content for security anti-patterns before writes.
|
|
4
|
+
# Called by PreToolUse hook on Write/Edit.
|
|
5
|
+
|
|
6
|
+
CONTENT="$1"
|
|
7
|
+
ISSUES=0
|
|
8
|
+
|
|
9
|
+
if [ -z "$CONTENT" ]; then
|
|
10
|
+
CONTENT=$(cat)
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# Secret patterns
|
|
14
|
+
for pattern in 'AKIA[0-9A-Z]{16}' 'sk-[a-zA-Z0-9]{48}' 'ghp_[a-zA-Z0-9]{36}' 'BEGIN (RSA |EC )?PRIVATE KEY' 'sk_live_[a-zA-Z0-9]+'; do
|
|
15
|
+
if echo "$CONTENT" | grep -qP "$pattern" 2>/dev/null; then
|
|
16
|
+
echo "BLOCKED: Potential secret detected (pattern: $pattern)"
|
|
17
|
+
ISSUES=$((ISSUES + 1))
|
|
18
|
+
fi
|
|
19
|
+
done
|
|
20
|
+
|
|
21
|
+
# Hardcoded password patterns
|
|
22
|
+
if echo "$CONTENT" | grep -qP 'password\s*[:=]\s*["\x27][^"\x27]{3,}' 2>/dev/null; then
|
|
23
|
+
echo "BLOCKED: Possible hardcoded password detected"
|
|
24
|
+
ISSUES=$((ISSUES + 1))
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# Dangerous function patterns
|
|
28
|
+
for pattern in '\beval\s*\(' '\bFunction\s*\(' '\.innerHTML\s*=' 'dangerouslySetInnerHTML'; do
|
|
29
|
+
if echo "$CONTENT" | grep -qP "$pattern" 2>/dev/null; then
|
|
30
|
+
echo "WARNING: Dangerous pattern: $pattern"
|
|
31
|
+
ISSUES=$((ISSUES + 1))
|
|
32
|
+
fi
|
|
33
|
+
done
|
|
34
|
+
|
|
35
|
+
# SQL injection risk
|
|
36
|
+
if echo "$CONTENT" | grep -qP '\$\{.*\}.*(SELECT|INSERT|UPDATE|DELETE|DROP)' 2>/dev/null; then
|
|
37
|
+
echo "WARNING: Possible SQL injection — template literal in SQL query"
|
|
38
|
+
ISSUES=$((ISSUES + 1))
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
if [ $ISSUES -gt 0 ]; then
|
|
42
|
+
echo "Found $ISSUES security issue(s). Review before proceeding."
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
exit 0
|
|
@@ -16,7 +16,6 @@ validation:
|
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
17
|
validator_path: scripts/validate-config.json
|
|
18
18
|
eval_path: evals/shift-left-testing.yaml
|
|
19
|
-
|
|
20
19
|
---
|
|
21
20
|
|
|
22
21
|
# Shift-Left Testing
|
|
@@ -24,21 +23,15 @@ validation:
|
|
|
24
23
|
<default_to_action>
|
|
25
24
|
When implementing early testing practices:
|
|
26
25
|
1. VALIDATE requirements before coding (testability, BDD scenarios)
|
|
27
|
-
2. WRITE tests before implementation (TDD
|
|
26
|
+
2. WRITE tests before implementation (TDD)
|
|
28
27
|
3. AUTOMATE in CI pipeline (every commit triggers tests)
|
|
29
|
-
4.
|
|
30
|
-
5. FIX defects immediately - never let them accumulate
|
|
28
|
+
4. FIX defects immediately - never let them accumulate
|
|
31
29
|
|
|
32
30
|
**Quick Shift-Left Levels:**
|
|
33
31
|
- Level 1: Unit tests with each PR (developer responsibility)
|
|
34
32
|
- Level 2: TDD practice (tests before code)
|
|
35
33
|
- Level 3: BDD/Example mapping in refinement (requirements testing)
|
|
36
34
|
- Level 4: Risk analysis in design (architecture testing)
|
|
37
|
-
|
|
38
|
-
**Critical Success Factors:**
|
|
39
|
-
- Defects found in requirements cost 1x; in production cost 100x
|
|
40
|
-
- Every commit must run automated tests
|
|
41
|
-
- Quality is built in, not tested in
|
|
42
35
|
</default_to_action>
|
|
43
36
|
|
|
44
37
|
## Quick Reference Card
|
|
@@ -49,24 +42,6 @@ When implementing early testing practices:
|
|
|
49
42
|
- Starting TDD practice
|
|
50
43
|
- Improving requirements quality
|
|
51
44
|
|
|
52
|
-
### Cost of Defects by Phase
|
|
53
|
-
| Phase | Relative Cost | Example |
|
|
54
|
-
|-------|--------------|---------|
|
|
55
|
-
| Requirements | 1x | Fix doc: 30 min |
|
|
56
|
-
| Design | 5x | Redesign: few hours |
|
|
57
|
-
| Development | 10x | Code fix: 1 day |
|
|
58
|
-
| Testing | 20x | Fix + retest: 2 days |
|
|
59
|
-
| Production | 100x | Hotfix + rollback + investigation |
|
|
60
|
-
|
|
61
|
-
### Test Pyramid
|
|
62
|
-
```
|
|
63
|
-
/\ E2E (10%) - Critical user journeys
|
|
64
|
-
/ \
|
|
65
|
-
/ \ Integration (20%) - Component interactions
|
|
66
|
-
/ \
|
|
67
|
-
/________\ Unit (70%) - Fast, isolated, comprehensive
|
|
68
|
-
```
|
|
69
|
-
|
|
70
45
|
### Shift-Left Levels
|
|
71
46
|
| Level | Practice | When |
|
|
72
47
|
|-------|----------|------|
|
|
@@ -104,65 +79,6 @@ jobs:
|
|
|
104
79
|
|
|
105
80
|
---
|
|
106
81
|
|
|
107
|
-
## Level 2: TDD Practice
|
|
108
|
-
|
|
109
|
-
```javascript
|
|
110
|
-
// Red: Write failing test first
|
|
111
|
-
test('calculates discount for orders over $100', () => {
|
|
112
|
-
const order = new Order([{ price: 150 }]);
|
|
113
|
-
expect(order.discount).toBe(15); // 10% off
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// Green: Minimal implementation
|
|
117
|
-
class Order {
|
|
118
|
-
get discount() {
|
|
119
|
-
return this.total > 100 ? this.total * 0.1 : 0;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Refactor: Improve while keeping green
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Level 3: BDD in Refinement
|
|
129
|
-
|
|
130
|
-
```gherkin
|
|
131
|
-
# Example mapping before coding
|
|
132
|
-
Feature: Loyalty Discount
|
|
133
|
-
Scenario: Gold member gets 15% discount
|
|
134
|
-
Given a customer with "gold" membership
|
|
135
|
-
When they checkout with $200 in cart
|
|
136
|
-
Then discount applied is $30
|
|
137
|
-
And order total is $170
|
|
138
|
-
|
|
139
|
-
Scenario: New customer gets no discount
|
|
140
|
-
Given a customer with no membership
|
|
141
|
-
When they checkout with $200 in cart
|
|
142
|
-
Then no discount is applied
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## Level 4: Risk Analysis in Design
|
|
148
|
-
|
|
149
|
-
```typescript
|
|
150
|
-
// During architecture review
|
|
151
|
-
await Task("Risk Analysis", {
|
|
152
|
-
phase: 'design',
|
|
153
|
-
component: 'payment-service',
|
|
154
|
-
questions: [
|
|
155
|
-
'What happens when payment gateway times out?',
|
|
156
|
-
'How do we handle duplicate submissions?',
|
|
157
|
-
'What if inventory changed during checkout?'
|
|
158
|
-
]
|
|
159
|
-
}, "qe-requirements-validator");
|
|
160
|
-
|
|
161
|
-
// Output: Testability requirements, failure mode tests
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
82
|
## Agent-Assisted Shift-Left
|
|
167
83
|
|
|
168
84
|
```typescript
|
|
@@ -226,6 +142,18 @@ const shiftLeftFleet = await FleetManager.coordinate({
|
|
|
226
142
|
|
|
227
143
|
## Remember
|
|
228
144
|
|
|
229
|
-
**Earlier = Cheaper.** Requirements defects cost 1x; production defects cost 100x. Test pyramid: 70% unit, 20% integration, 10% E2E. Every commit runs tests. TDD builds quality in.
|
|
230
|
-
|
|
231
145
|
**With Agents:** Agents validate requirements testability, generate tests from specs, and select optimal regression suites. Use agents to implement shift-left practices consistently.
|
|
146
|
+
|
|
147
|
+
## Skill Composition
|
|
148
|
+
|
|
149
|
+
- **TDD practice** → Use `/tdd-london-chicago` for specific TDD guidance
|
|
150
|
+
- **Generate tests** → Use `/qe-test-generation` for AI-powered test generation
|
|
151
|
+
- **CI/CD quality** → Use `/cicd-pipeline-qe-orchestrator` for pipeline setup
|
|
152
|
+
|
|
153
|
+
## Gotchas
|
|
154
|
+
|
|
155
|
+
- "Shift left" doesn't mean "only test left" — production monitoring (shift right) is still needed
|
|
156
|
+
- Agent generates tests before understanding requirements — tests for wrong behavior are worse than no tests
|
|
157
|
+
- CI pipeline tests that take >10 minutes kill the feedback loop — keep commit-stage tests under 5 minutes
|
|
158
|
+
- TDD discipline degrades when agent writes test+code simultaneously — enforce Red phase separation
|
|
159
|
+
- Shifting left without lightweight environments just shifts the bottleneck — fix environments first
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-stats
|
|
3
|
+
description: "Use when reviewing which QE skills are being used, finding undertriggering skills, or analyzing skill effectiveness. Shows usage patterns and recommendations."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill Usage Statistics
|
|
8
|
+
|
|
9
|
+
View QE skill usage patterns to identify popular skills, undertriggering skills, and optimization opportunities.
|
|
10
|
+
|
|
11
|
+
## Activation
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/skill-stats
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What It Reports
|
|
18
|
+
|
|
19
|
+
1. **Most Used Skills** — Top 10 skills by invocation count
|
|
20
|
+
2. **Undertriggering Skills** — Skills with good descriptions but low usage
|
|
21
|
+
3. **Never Used Skills** — Skills that have never been triggered
|
|
22
|
+
4. **Trigger Method** — How skills are activated (explicit /command vs auto-selected)
|
|
23
|
+
5. **Recommendations** — Skills to improve, merge, or deprecate
|
|
24
|
+
|
|
25
|
+
## Usage Log Format
|
|
26
|
+
|
|
27
|
+
Skill invocations are logged to `${CLAUDE_PLUGIN_DATA}/skill-usage.log`:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
2026-03-18T10:30:00Z|security-testing|explicit|/security-testing
|
|
31
|
+
2026-03-18T10:45:00Z|qe-test-generation|auto|model-selected
|
|
32
|
+
2026-03-18T11:00:00Z|mutation-testing|explicit|/mutation-testing
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Hook Configuration
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"hooks": {
|
|
40
|
+
"PreToolUse": [
|
|
41
|
+
{
|
|
42
|
+
"matcher": "Skill",
|
|
43
|
+
"hook": ".claude/skills/skill-stats/scripts/log-usage.sh"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Analysis Script
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
#!/bin/bash
|
|
54
|
+
# analyze-usage.sh
|
|
55
|
+
LOG="${CLAUDE_PLUGIN_DATA:-$HOME/.claude/plugin-data}/skill-usage.log"
|
|
56
|
+
|
|
57
|
+
if [ ! -f "$LOG" ]; then
|
|
58
|
+
echo "No usage data yet. Skills will be logged as they are used."
|
|
59
|
+
exit 0
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "=== Skill Usage Report ==="
|
|
63
|
+
echo ""
|
|
64
|
+
echo "Top 10 Most Used:"
|
|
65
|
+
cut -d'|' -f2 "$LOG" | sort | uniq -c | sort -rn | head -10
|
|
66
|
+
echo ""
|
|
67
|
+
echo "Trigger Method Breakdown:"
|
|
68
|
+
cut -d'|' -f3 "$LOG" | sort | uniq -c | sort -rn
|
|
69
|
+
echo ""
|
|
70
|
+
echo "Skills Used in Last 7 Days:"
|
|
71
|
+
WEEK_AGO=$(date -d '7 days ago' +%Y-%m-%dT%H:%M:%S 2>/dev/null || date -v-7d +%Y-%m-%dT%H:%M:%S)
|
|
72
|
+
awk -F'|' -v since="$WEEK_AGO" '$1 >= since' "$LOG" | cut -d'|' -f2 | sort | uniq -c | sort -rn
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Gotchas
|
|
76
|
+
|
|
77
|
+
- Log file grows unbounded — rotate periodically with `tail -n 1000 $LOG > $LOG.tmp && mv $LOG.tmp $LOG`
|
|
78
|
+
- Auto-selected skills may not always be the best match — review undertriggering skills for description improvements
|
|
79
|
+
- Usage count alone doesn't indicate quality — a skill used 100x but failing 50% needs fixing, not celebrating
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strict-tdd
|
|
3
|
+
description: "Use when enforcing TDD discipline — blocks writing production code unless a failing test exists first. Activate with /strict-tdd to enable session-scoped Red-Green-Refactor guardrail."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strict TDD Mode
|
|
8
|
+
|
|
9
|
+
When activated, this skill registers a session-scoped hook that enforces Red-Green-Refactor discipline.
|
|
10
|
+
|
|
11
|
+
## What It Does
|
|
12
|
+
|
|
13
|
+
Blocks writes to `src/` (production code) unless:
|
|
14
|
+
1. A test file exists that covers the target module
|
|
15
|
+
2. That test has at least one failing assertion (Red phase confirmed)
|
|
16
|
+
|
|
17
|
+
This prevents the common agent failure of writing test + implementation simultaneously.
|
|
18
|
+
|
|
19
|
+
## Activation
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/strict-tdd
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Remains active for the current session only.
|
|
26
|
+
|
|
27
|
+
## Hook Configuration
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"hooks": {
|
|
32
|
+
"PreToolUse": [
|
|
33
|
+
{
|
|
34
|
+
"matcher": "Write|Edit",
|
|
35
|
+
"hook": ".claude/skills/strict-tdd/scripts/enforce-red-phase.sh",
|
|
36
|
+
"condition": "file matches src/**/*.{ts,js} AND NOT src/**/*.test.{ts,js}"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Enforcement Logic
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
#!/bin/bash
|
|
47
|
+
# enforce-red-phase.sh
|
|
48
|
+
# Called before any Write/Edit to src/ files
|
|
49
|
+
|
|
50
|
+
TARGET_FILE="$1"
|
|
51
|
+
TEST_FILE="${TARGET_FILE%.ts}.test.ts"
|
|
52
|
+
|
|
53
|
+
if [ ! -f "$TEST_FILE" ]; then
|
|
54
|
+
echo "BLOCKED: No test file found at $TEST_FILE"
|
|
55
|
+
echo "Write a failing test first (Red phase), then implement."
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# Check if tests are currently failing (Red phase)
|
|
60
|
+
npx jest "$TEST_FILE" --passWithNoTests 2>/dev/null
|
|
61
|
+
if [ $? -eq 0 ]; then
|
|
62
|
+
echo "WARNING: Tests are passing. Are you in Green/Refactor phase?"
|
|
63
|
+
echo "If adding new behavior, write a failing test first."
|
|
64
|
+
fi
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Gotchas
|
|
68
|
+
|
|
69
|
+
- Only blocks src/ files — test files and config files are always writable
|
|
70
|
+
- During Refactor phase, tests should still pass — this is expected, don't treat as violation
|
|
71
|
+
- If test runner isn't installed, hook will error — ensure jest/vitest is available
|
|
72
|
+
- Agent may try to write to a different path to bypass — the hook should match all production code paths
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# enforce-red-phase.sh — Strict TDD hook
|
|
3
|
+
# Blocks writes to src/ unless a corresponding test file exists and has failing tests.
|
|
4
|
+
# Called by PreToolUse hook on Write/Edit to src/**/*.{ts,js}
|
|
5
|
+
|
|
6
|
+
TARGET_FILE="$1"
|
|
7
|
+
|
|
8
|
+
# Skip non-source files
|
|
9
|
+
if [[ ! "$TARGET_FILE" =~ ^src/ ]] || [[ "$TARGET_FILE" =~ \.(test|spec)\.(ts|js|tsx|jsx)$ ]]; then
|
|
10
|
+
exit 0
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# Derive test file path
|
|
14
|
+
TEST_FILE="${TARGET_FILE%.ts}.test.ts"
|
|
15
|
+
if [ ! -f "$TEST_FILE" ]; then
|
|
16
|
+
TEST_FILE="${TARGET_FILE%.js}.test.js"
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
if [ ! -f "$TEST_FILE" ]; then
|
|
20
|
+
echo "BLOCKED: No test file found for $TARGET_FILE"
|
|
21
|
+
echo "Expected: ${TARGET_FILE%.ts}.test.ts"
|
|
22
|
+
echo "Write a failing test first (Red phase), then implement."
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# Check if tests are currently passing (should be failing in Red phase)
|
|
27
|
+
npx jest "$TEST_FILE" --passWithNoTests --silent 2>/dev/null
|
|
28
|
+
TEST_EXIT=$?
|
|
29
|
+
|
|
30
|
+
if [ $TEST_EXIT -eq 0 ]; then
|
|
31
|
+
echo "WARNING: Tests in $TEST_FILE are all passing."
|
|
32
|
+
echo "If adding new behavior, write a failing test first (Red phase)."
|
|
33
|
+
echo "If in Green/Refactor phase, this is expected — proceed."
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
exit 0
|
|
@@ -15,7 +15,6 @@ trust_tier: 2
|
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
17
|
validator_path: scripts/validate-config.json
|
|
18
|
-
|
|
19
18
|
---
|
|
20
19
|
|
|
21
20
|
# Test-Driven Development: London & Chicago Schools
|
|
@@ -247,3 +246,11 @@ const tddFleet = await FleetManager.coordinate({
|
|
|
247
246
|
Neither is "right." Choose based on context. Mix as needed. Goal: well-designed, tested code.
|
|
248
247
|
|
|
249
248
|
**With Agents:** Agents excel at generating tests, validating green phase, and suggesting refactorings. Use agents to maintain TDD discipline while humans focus on design decisions.
|
|
249
|
+
|
|
250
|
+
## Gotchas
|
|
251
|
+
|
|
252
|
+
- Agent skips Red phase and writes test + implementation together — enforce "test must fail first" by running test before writing code
|
|
253
|
+
- London school over-mocking creates brittle tests that break on any refactor — mock at architectural boundaries, not every function
|
|
254
|
+
- Chicago school tests become slow as integration scope grows — keep test boundaries tight
|
|
255
|
+
- Agent defaults to jest.mock() for everything — prefer dependency injection for testability
|
|
256
|
+
- Refactor phase is where agent cuts corners most — verify no behavior changes by checking test output is identical
|
|
@@ -16,30 +16,22 @@ validation:
|
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
17
|
validator_path: scripts/validate-config.json
|
|
18
18
|
eval_path: evals/test-automation-strategy.yaml
|
|
19
|
-
|
|
20
19
|
---
|
|
21
20
|
|
|
22
21
|
# Test Automation Strategy
|
|
23
22
|
|
|
24
23
|
<default_to_action>
|
|
25
24
|
When designing or improving test automation:
|
|
26
|
-
1.
|
|
27
|
-
2.
|
|
28
|
-
3.
|
|
29
|
-
4.
|
|
30
|
-
5. MANAGE flaky tests: Quarantine, fix, or delete - never ignore
|
|
25
|
+
1. DETECT anti-patterns: Ice cream cone? Slow suite? Flaky tests?
|
|
26
|
+
2. USE patterns: Page Object Model, Builder pattern, Factory pattern
|
|
27
|
+
3. INTEGRATE in CI/CD: Every commit runs tests, fail fast
|
|
28
|
+
4. MANAGE flaky tests: Quarantine, fix, or delete - never ignore
|
|
31
29
|
|
|
32
30
|
**Quick Anti-Pattern Detection:**
|
|
33
31
|
- Ice cream cone (many E2E, few unit) → Invert to pyramid
|
|
34
32
|
- Slow tests (> 10 min suite) → Parallelize, mock external deps
|
|
35
33
|
- Flaky tests → Fix timing, isolate data, or quarantine
|
|
36
|
-
- Test duplication → Share fixtures, use page objects
|
|
37
34
|
- Brittle selectors → Use data-testid, semantic locators
|
|
38
|
-
|
|
39
|
-
**Critical Success Factors:**
|
|
40
|
-
- Fast feedback is the goal (< 10 min full suite)
|
|
41
|
-
- Automation supports testing, doesn't replace judgment
|
|
42
|
-
- Invest in test infrastructure like production code
|
|
43
35
|
</default_to_action>
|
|
44
36
|
|
|
45
37
|
## Quick Reference Card
|
|
@@ -50,23 +42,7 @@ When designing or improving test automation:
|
|
|
50
42
|
- Reducing flaky test burden
|
|
51
43
|
- Optimizing CI/CD pipeline speed
|
|
52
44
|
|
|
53
|
-
###
|
|
54
|
-
| Layer | % | Speed | Isolation | Examples |
|
|
55
|
-
|-------|---|-------|-----------|----------|
|
|
56
|
-
| **Unit** | 70% | < 1ms | Complete | Pure functions, logic |
|
|
57
|
-
| **Integration** | 20% | < 1s | Partial | API, database |
|
|
58
|
-
| **E2E** | 10% | < 30s | None | User journeys |
|
|
59
|
-
|
|
60
|
-
### F.I.R.S.T. Principles
|
|
61
|
-
| Principle | Meaning | How |
|
|
62
|
-
|-----------|---------|-----|
|
|
63
|
-
| **F**ast | Quick execution | Mock external deps |
|
|
64
|
-
| **I**solated | No shared state | Fresh fixtures per test |
|
|
65
|
-
| **R**epeatable | Same result every time | No random data |
|
|
66
|
-
| **S**elf-validating | Clear pass/fail | Assert, don't print |
|
|
67
|
-
| **T**imely | Written with code | TDD, not after |
|
|
68
|
-
|
|
69
|
-
### Anti-Patterns
|
|
45
|
+
### Anti-Patterns to Detect
|
|
70
46
|
| Problem | Symptom | Fix |
|
|
71
47
|
|---------|---------|-----|
|
|
72
48
|
| Ice cream cone | 80% E2E, 10% unit | Invert pyramid |
|
|
@@ -77,40 +53,6 @@ When designing or improving test automation:
|
|
|
77
53
|
|
|
78
54
|
---
|
|
79
55
|
|
|
80
|
-
## Page Object Model
|
|
81
|
-
|
|
82
|
-
```javascript
|
|
83
|
-
// pages/LoginPage.js
|
|
84
|
-
class LoginPage {
|
|
85
|
-
constructor(page) {
|
|
86
|
-
this.page = page;
|
|
87
|
-
this.emailInput = '[data-testid="email"]';
|
|
88
|
-
this.passwordInput = '[data-testid="password"]';
|
|
89
|
-
this.submitButton = '[data-testid="submit"]';
|
|
90
|
-
this.errorMessage = '[data-testid="error"]';
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async login(email, password) {
|
|
94
|
-
await this.page.fill(this.emailInput, email);
|
|
95
|
-
await this.page.fill(this.passwordInput, password);
|
|
96
|
-
await this.page.click(this.submitButton);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
async getError() {
|
|
100
|
-
return this.page.textContent(this.errorMessage);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Test uses page object
|
|
105
|
-
test('shows error for invalid credentials', async ({ page }) => {
|
|
106
|
-
const loginPage = new LoginPage(page);
|
|
107
|
-
await loginPage.login('bad@email.com', 'wrong');
|
|
108
|
-
expect(await loginPage.getError()).toBe('Invalid credentials');
|
|
109
|
-
});
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
56
|
## CI/CD Integration
|
|
115
57
|
|
|
116
58
|
```yaml
|
|
@@ -231,6 +173,12 @@ const automationFleet = await FleetManager.coordinate({
|
|
|
231
173
|
|
|
232
174
|
## Remember
|
|
233
175
|
|
|
234
|
-
**Pyramid: 70% unit, 20% integration, 10% E2E.** F.I.R.S.T. principles for every test. Page Object Model for E2E. Parallelize for speed. Quarantine flaky tests - never ignore them. Treat test code like production code.
|
|
235
|
-
|
|
236
176
|
**With Agents:** Agents generate pyramid-compliant tests, detect flaky patterns, optimize execution time, and maintain test infrastructure. Use agents to scale automation quality.
|
|
177
|
+
|
|
178
|
+
## Gotchas
|
|
179
|
+
|
|
180
|
+
- Agent generates 80% E2E tests and 20% unit tests (inverted pyramid) — explicitly enforce 70/20/10 ratio
|
|
181
|
+
- Page Object Model tests become brittle when selectors change — prefer data-testid attributes over CSS selectors
|
|
182
|
+
- Flaky tests quarantined but never fixed is technical debt — set a 2-week SLA to fix or delete
|
|
183
|
+
- Agent treats test code as second-class — test code needs the same review standards as production code
|
|
184
|
+
- Parallel test execution requires test isolation — shared state between tests causes non-deterministic failures
|