agentic-qe 1.4.3 → 1.5.0

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.
Files changed (410) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +133 -27
  2. package/.claude/agents/qe-api-contract-validator.md.backup +1148 -0
  3. package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +1148 -0
  4. package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +1123 -0
  5. package/.claude/agents/qe-chaos-engineer.md +142 -23
  6. package/.claude/agents/qe-chaos-engineer.md.backup +808 -0
  7. package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +808 -0
  8. package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +787 -0
  9. package/.claude/agents/qe-code-complexity.md +111 -23
  10. package/.claude/agents/qe-code-complexity.md.backup +291 -0
  11. package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +291 -0
  12. package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +286 -0
  13. package/.claude/agents/qe-coverage-analyzer.md +306 -30
  14. package/.claude/agents/qe-coverage-analyzer.md.backup +467 -0
  15. package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +467 -0
  16. package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +438 -0
  17. package/.claude/agents/qe-deployment-readiness.md +84 -28
  18. package/.claude/agents/qe-deployment-readiness.md.backup +1166 -0
  19. package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +1166 -0
  20. package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +1140 -0
  21. package/.claude/agents/qe-flaky-test-hunter.md +277 -35
  22. package/.claude/agents/qe-flaky-test-hunter.md.backup +1195 -0
  23. package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +1195 -0
  24. package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +1162 -0
  25. package/.claude/agents/qe-fleet-commander.md +126 -23
  26. package/.claude/agents/qe-fleet-commander.md.backup +718 -0
  27. package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +718 -0
  28. package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +697 -0
  29. package/.claude/agents/qe-performance-tester.md +314 -57
  30. package/.claude/agents/qe-performance-tester.md.backup +428 -0
  31. package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +428 -0
  32. package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +372 -0
  33. package/.claude/agents/qe-production-intelligence.md +126 -27
  34. package/.claude/agents/qe-production-intelligence.md.backup +1219 -0
  35. package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +1219 -0
  36. package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +1194 -0
  37. package/.claude/agents/qe-quality-analyzer.md +127 -32
  38. package/.claude/agents/qe-quality-analyzer.md.backup +425 -0
  39. package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +425 -0
  40. package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +394 -0
  41. package/.claude/agents/qe-quality-gate.md +148 -33
  42. package/.claude/agents/qe-quality-gate.md.backup +446 -0
  43. package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +446 -0
  44. package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +415 -0
  45. package/.claude/agents/qe-regression-risk-analyzer.md +78 -27
  46. package/.claude/agents/qe-regression-risk-analyzer.md.backup +1009 -0
  47. package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +1009 -0
  48. package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +984 -0
  49. package/.claude/agents/qe-requirements-validator.md +131 -27
  50. package/.claude/agents/qe-requirements-validator.md.backup +748 -0
  51. package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +748 -0
  52. package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +723 -0
  53. package/.claude/agents/qe-security-scanner.md +137 -62
  54. package/.claude/agents/qe-security-scanner.md.backup +634 -0
  55. package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +634 -0
  56. package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +573 -0
  57. package/.claude/agents/qe-test-data-architect.md +129 -26
  58. package/.claude/agents/qe-test-data-architect.md.backup +1064 -0
  59. package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +1064 -0
  60. package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +1040 -0
  61. package/.claude/agents/qe-test-executor.md +165 -21
  62. package/.claude/agents/qe-test-executor.md.backup +389 -0
  63. package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +389 -0
  64. package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +369 -0
  65. package/.claude/agents/qe-test-generator.md +379 -34
  66. package/.claude/agents/qe-test-generator.md.backup +997 -0
  67. package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +997 -0
  68. package/.claude/agents/qe-visual-tester.md +236 -23
  69. package/.claude/agents/qe-visual-tester.md.backup +777 -0
  70. package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +777 -0
  71. package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +756 -0
  72. package/.claude/agents/subagents/qe-code-reviewer.md +59 -0
  73. package/.claude/agents/subagents/qe-data-generator.md +60 -0
  74. package/.claude/agents/subagents/qe-integration-tester.md +77 -0
  75. package/.claude/agents/subagents/qe-performance-validator.md +55 -0
  76. package/.claude/agents/subagents/qe-security-auditor.md +51 -0
  77. package/.claude/agents/subagents/qe-test-implementer.md +371 -0
  78. package/.claude/agents/subagents/qe-test-refactorer.md +510 -0
  79. package/.claude/agents/subagents/qe-test-writer.md +603 -0
  80. package/.claude/skills/accessibility-testing/SKILL.md +764 -777
  81. package/.claude/skills/agentic-quality-engineering/SKILL.md +0 -6
  82. package/.claude/skills/api-testing-patterns/SKILL.md +0 -12
  83. package/.claude/skills/bug-reporting-excellence/SKILL.md +0 -6
  84. package/.claude/skills/chaos-engineering-resilience/SKILL.md +0 -6
  85. package/.claude/skills/code-review-quality/SKILL.md +0 -6
  86. package/.claude/skills/compatibility-testing/SKILL.md +0 -6
  87. package/.claude/skills/compliance-testing/SKILL.md +0 -6
  88. package/.claude/skills/consultancy-practices/SKILL.md +0 -6
  89. package/.claude/skills/context-driven-testing/SKILL.md +0 -6
  90. package/.claude/skills/contract-testing/SKILL.md +0 -6
  91. package/.claude/skills/database-testing/SKILL.md +0 -6
  92. package/.claude/skills/exploratory-testing-advanced/SKILL.md +0 -6
  93. package/.claude/skills/holistic-testing-pact/SKILL.md +0 -6
  94. package/.claude/skills/localization-testing/SKILL.md +0 -6
  95. package/.claude/skills/mobile-testing/SKILL.md +535 -548
  96. package/.claude/skills/mutation-testing/SKILL.md +0 -6
  97. package/.claude/skills/performance-testing/SKILL.md +0 -6
  98. package/.claude/skills/quality-metrics/SKILL.md +0 -12
  99. package/.claude/skills/refactoring-patterns/SKILL.md +0 -6
  100. package/.claude/skills/regression-testing/SKILL.md +1033 -1045
  101. package/.claude/skills/risk-based-testing/SKILL.md +0 -12
  102. package/.claude/skills/security-testing/SKILL.md +0 -6
  103. package/.claude/skills/shift-left-testing/SKILL.md +529 -535
  104. package/.claude/skills/shift-right-testing/SKILL.md +585 -591
  105. package/.claude/skills/tdd-london-chicago/SKILL.md +0 -6
  106. package/.claude/skills/technical-writing/SKILL.md +0 -6
  107. package/.claude/skills/test-automation-strategy/SKILL.md +0 -6
  108. package/.claude/skills/test-data-management/SKILL.md +1054 -1067
  109. package/.claude/skills/test-design-techniques/SKILL.md +0 -6
  110. package/.claude/skills/test-environment-management/SKILL.md +0 -6
  111. package/.claude/skills/test-reporting-analytics/SKILL.md +0 -6
  112. package/.claude/skills/visual-testing-advanced/SKILL.md +0 -6
  113. package/.claude/skills/xp-practices/SKILL.md +0 -6
  114. package/CHANGELOG.md +504 -0
  115. package/README.md +24 -16
  116. package/dist/cli/commands/init.d.ts +4 -0
  117. package/dist/cli/commands/init.d.ts.map +1 -1
  118. package/dist/cli/commands/init.js +97 -44
  119. package/dist/cli/commands/init.js.map +1 -1
  120. package/dist/core/FleetManager.d.ts.map +1 -1
  121. package/dist/core/FleetManager.js +17 -5
  122. package/dist/core/FleetManager.js.map +1 -1
  123. package/dist/core/MemoryManager.d.ts +27 -0
  124. package/dist/core/MemoryManager.d.ts.map +1 -1
  125. package/dist/core/MemoryManager.js +69 -4
  126. package/dist/core/MemoryManager.js.map +1 -1
  127. package/dist/core/PatternDatabaseAdapter.d.ts.map +1 -1
  128. package/dist/core/PatternDatabaseAdapter.js +14 -4
  129. package/dist/core/PatternDatabaseAdapter.js.map +1 -1
  130. package/dist/learning/LearningEngine.d.ts.map +1 -1
  131. package/dist/learning/LearningEngine.js +18 -4
  132. package/dist/learning/LearningEngine.js.map +1 -1
  133. package/dist/mcp/handlers/coordination/index.d.ts +14 -14
  134. package/dist/mcp/handlers/coordination/index.d.ts.map +1 -1
  135. package/dist/mcp/handlers/coordination/index.js +14 -14
  136. package/dist/mcp/handlers/coordination/index.js.map +1 -1
  137. package/dist/mcp/handlers/coordination/task-status.d.ts.map +1 -1
  138. package/dist/mcp/handlers/coordination/task-status.js +3 -5
  139. package/dist/mcp/handlers/coordination/task-status.js.map +1 -1
  140. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  141. package/dist/mcp/handlers/phase2/Phase2Tools.js +39 -10
  142. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  143. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +63 -0
  144. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -0
  145. package/dist/mcp/handlers/phase3/Phase3DomainTools.js +885 -0
  146. package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -0
  147. package/dist/mcp/handlers/phase3/index.d.ts +6 -0
  148. package/dist/mcp/handlers/phase3/index.d.ts.map +1 -0
  149. package/dist/mcp/handlers/phase3/index.js +10 -0
  150. package/dist/mcp/handlers/phase3/index.js.map +1 -0
  151. package/dist/mcp/handlers/prediction/index.d.ts +10 -10
  152. package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
  153. package/dist/mcp/handlers/prediction/index.js +10 -10
  154. package/dist/mcp/handlers/prediction/index.js.map +1 -1
  155. package/dist/mcp/handlers/security/check-authz.d.ts +152 -0
  156. package/dist/mcp/handlers/security/check-authz.d.ts.map +1 -0
  157. package/dist/mcp/handlers/security/check-authz.js +434 -0
  158. package/dist/mcp/handlers/security/check-authz.js.map +1 -0
  159. package/dist/mcp/handlers/security/generate-report.d.ts +156 -0
  160. package/dist/mcp/handlers/security/generate-report.d.ts.map +1 -0
  161. package/dist/mcp/handlers/security/generate-report.js +469 -0
  162. package/dist/mcp/handlers/security/generate-report.js.map +1 -0
  163. package/dist/mcp/handlers/security/index.d.ts +80 -0
  164. package/dist/mcp/handlers/security/index.d.ts.map +1 -0
  165. package/dist/mcp/handlers/security/index.js +91 -0
  166. package/dist/mcp/handlers/security/index.js.map +1 -0
  167. package/dist/mcp/handlers/security/scan-comprehensive.d.ts +66 -0
  168. package/dist/mcp/handlers/security/scan-comprehensive.d.ts.map +1 -0
  169. package/dist/mcp/handlers/security/scan-comprehensive.js +296 -0
  170. package/dist/mcp/handlers/security/scan-comprehensive.js.map +1 -0
  171. package/dist/mcp/handlers/security/scan-dependencies.d.ts +148 -0
  172. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +1 -0
  173. package/dist/mcp/handlers/security/scan-dependencies.js +354 -0
  174. package/dist/mcp/handlers/security/scan-dependencies.js.map +1 -0
  175. package/dist/mcp/handlers/security/validate-auth.d.ts +128 -0
  176. package/dist/mcp/handlers/security/validate-auth.d.ts.map +1 -0
  177. package/dist/mcp/handlers/security/validate-auth.js +294 -0
  178. package/dist/mcp/handlers/security/validate-auth.js.map +1 -0
  179. package/dist/mcp/handlers/task-orchestrate.d.ts +21 -1
  180. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  181. package/dist/mcp/handlers/task-orchestrate.js +32 -2
  182. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  183. package/dist/mcp/handlers/test/generate-integration-tests.d.ts +95 -0
  184. package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -0
  185. package/dist/mcp/handlers/test/generate-integration-tests.js +286 -0
  186. package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -0
  187. package/dist/mcp/handlers/test/generate-unit-tests.d.ts +89 -0
  188. package/dist/mcp/handlers/test/generate-unit-tests.d.ts.map +1 -0
  189. package/dist/mcp/handlers/test/generate-unit-tests.js +273 -0
  190. package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -0
  191. package/dist/mcp/handlers/test/optimize-test-suite.d.ts +97 -0
  192. package/dist/mcp/handlers/test/optimize-test-suite.d.ts.map +1 -0
  193. package/dist/mcp/handlers/test/optimize-test-suite.js +282 -0
  194. package/dist/mcp/handlers/test/optimize-test-suite.js.map +1 -0
  195. package/dist/mcp/server.d.ts.map +1 -1
  196. package/dist/mcp/server.js +212 -1
  197. package/dist/mcp/server.js.map +1 -1
  198. package/dist/mcp/tools/deprecated.d.ts +1390 -0
  199. package/dist/mcp/tools/deprecated.d.ts.map +1 -0
  200. package/dist/mcp/tools/deprecated.js +859 -0
  201. package/dist/mcp/tools/deprecated.js.map +1 -0
  202. package/dist/mcp/tools/qe/api-contract/index.d.ts +138 -0
  203. package/dist/mcp/tools/qe/api-contract/index.d.ts.map +1 -0
  204. package/dist/mcp/tools/qe/api-contract/index.js +572 -0
  205. package/dist/mcp/tools/qe/api-contract/index.js.map +1 -0
  206. package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts +110 -0
  207. package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts.map +1 -0
  208. package/dist/mcp/tools/qe/code-quality/analyze-complexity.js +381 -0
  209. package/dist/mcp/tools/qe/code-quality/analyze-complexity.js.map +1 -0
  210. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts +115 -0
  211. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts.map +1 -0
  212. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js +461 -0
  213. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js.map +1 -0
  214. package/dist/mcp/tools/qe/code-quality/index.d.ts +12 -0
  215. package/dist/mcp/tools/qe/code-quality/index.d.ts.map +1 -0
  216. package/dist/mcp/tools/qe/code-quality/index.js +30 -0
  217. package/dist/mcp/tools/qe/code-quality/index.js.map +1 -0
  218. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts +58 -0
  219. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts.map +1 -0
  220. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js +172 -0
  221. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js.map +1 -0
  222. package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts +73 -0
  223. package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts.map +1 -0
  224. package/dist/mcp/tools/qe/coverage/calculate-trends.js +240 -0
  225. package/dist/mcp/tools/qe/coverage/calculate-trends.js.map +1 -0
  226. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts +38 -0
  227. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts.map +1 -0
  228. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js +204 -0
  229. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js.map +1 -0
  230. package/dist/mcp/tools/qe/coverage/index.d.ts +12 -0
  231. package/dist/mcp/tools/qe/coverage/index.d.ts.map +1 -0
  232. package/dist/mcp/tools/qe/coverage/index.js +23 -0
  233. package/dist/mcp/tools/qe/coverage/index.js.map +1 -0
  234. package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts +46 -0
  235. package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts.map +1 -0
  236. package/dist/mcp/tools/qe/coverage/recommend-tests.js +248 -0
  237. package/dist/mcp/tools/qe/coverage/recommend-tests.js.map +1 -0
  238. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts +179 -0
  239. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts.map +1 -0
  240. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js +554 -0
  241. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js.map +1 -0
  242. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts +172 -0
  243. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts.map +1 -0
  244. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js +498 -0
  245. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js.map +1 -0
  246. package/dist/mcp/tools/qe/flaky-detection/index.d.ts +35 -0
  247. package/dist/mcp/tools/qe/flaky-detection/index.d.ts.map +1 -0
  248. package/dist/mcp/tools/qe/flaky-detection/index.js +66 -0
  249. package/dist/mcp/tools/qe/flaky-detection/index.js.map +1 -0
  250. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts +159 -0
  251. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts.map +1 -0
  252. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js +462 -0
  253. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js.map +1 -0
  254. package/dist/mcp/tools/qe/fleet/index.d.ts +422 -0
  255. package/dist/mcp/tools/qe/fleet/index.d.ts.map +1 -0
  256. package/dist/mcp/tools/qe/fleet/index.js +652 -0
  257. package/dist/mcp/tools/qe/fleet/index.js.map +1 -0
  258. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts +180 -0
  259. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts.map +1 -0
  260. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js +347 -0
  261. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js.map +1 -0
  262. package/dist/mcp/tools/qe/performance/generate-report.d.ts +146 -0
  263. package/dist/mcp/tools/qe/performance/generate-report.d.ts.map +1 -0
  264. package/dist/mcp/tools/qe/performance/generate-report.js +354 -0
  265. package/dist/mcp/tools/qe/performance/generate-report.js.map +1 -0
  266. package/dist/mcp/tools/qe/performance/index.d.ts +13 -0
  267. package/dist/mcp/tools/qe/performance/index.d.ts.map +1 -0
  268. package/dist/mcp/tools/qe/performance/index.js +24 -0
  269. package/dist/mcp/tools/qe/performance/index.js.map +1 -0
  270. package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts +120 -0
  271. package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts.map +1 -0
  272. package/dist/mcp/tools/qe/performance/monitor-realtime.js +215 -0
  273. package/dist/mcp/tools/qe/performance/monitor-realtime.js.map +1 -0
  274. package/dist/mcp/tools/qe/performance/run-benchmark.d.ts +68 -0
  275. package/dist/mcp/tools/qe/performance/run-benchmark.d.ts.map +1 -0
  276. package/dist/mcp/tools/qe/performance/run-benchmark.js +120 -0
  277. package/dist/mcp/tools/qe/performance/run-benchmark.js.map +1 -0
  278. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts +239 -0
  279. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts.map +1 -0
  280. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js +671 -0
  281. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js.map +1 -0
  282. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +219 -0
  283. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -0
  284. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +732 -0
  285. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -0
  286. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts +447 -0
  287. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts.map +1 -0
  288. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js +551 -0
  289. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js.map +1 -0
  290. package/dist/mcp/tools/qe/quality-gates/index.d.ts +40 -0
  291. package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -0
  292. package/dist/mcp/tools/qe/quality-gates/index.js +56 -0
  293. package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -0
  294. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts +226 -0
  295. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts.map +1 -0
  296. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js +603 -0
  297. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js.map +1 -0
  298. package/dist/mcp/tools/qe/regression/analyze-risk.d.ts +212 -0
  299. package/dist/mcp/tools/qe/regression/analyze-risk.d.ts.map +1 -0
  300. package/dist/mcp/tools/qe/regression/analyze-risk.js +617 -0
  301. package/dist/mcp/tools/qe/regression/analyze-risk.js.map +1 -0
  302. package/dist/mcp/tools/qe/regression/index.d.ts +36 -0
  303. package/dist/mcp/tools/qe/regression/index.d.ts.map +1 -0
  304. package/dist/mcp/tools/qe/regression/index.js +63 -0
  305. package/dist/mcp/tools/qe/regression/index.js.map +1 -0
  306. package/dist/mcp/tools/qe/regression/select-tests.d.ts +241 -0
  307. package/dist/mcp/tools/qe/regression/select-tests.d.ts.map +1 -0
  308. package/dist/mcp/tools/qe/regression/select-tests.js +601 -0
  309. package/dist/mcp/tools/qe/regression/select-tests.js.map +1 -0
  310. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts +134 -0
  311. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts.map +1 -0
  312. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js +737 -0
  313. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js.map +1 -0
  314. package/dist/mcp/tools/qe/requirements/index.d.ts +40 -0
  315. package/dist/mcp/tools/qe/requirements/index.d.ts.map +1 -0
  316. package/dist/mcp/tools/qe/requirements/index.js +84 -0
  317. package/dist/mcp/tools/qe/requirements/index.js.map +1 -0
  318. package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts +196 -0
  319. package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts.map +1 -0
  320. package/dist/mcp/tools/qe/requirements/validate-requirements.js +740 -0
  321. package/dist/mcp/tools/qe/requirements/validate-requirements.js.map +1 -0
  322. package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts +300 -0
  323. package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts.map +1 -0
  324. package/dist/mcp/tools/qe/security/detect-vulnerabilities.js +492 -0
  325. package/dist/mcp/tools/qe/security/detect-vulnerabilities.js.map +1 -0
  326. package/dist/mcp/tools/qe/security/index.d.ts +34 -0
  327. package/dist/mcp/tools/qe/security/index.d.ts.map +1 -0
  328. package/dist/mcp/tools/qe/security/index.js +44 -0
  329. package/dist/mcp/tools/qe/security/index.js.map +1 -0
  330. package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts +240 -0
  331. package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts.map +1 -0
  332. package/dist/mcp/tools/qe/security/scan-comprehensive.js +535 -0
  333. package/dist/mcp/tools/qe/security/scan-comprehensive.js.map +1 -0
  334. package/dist/mcp/tools/qe/security/validate-compliance.d.ts +299 -0
  335. package/dist/mcp/tools/qe/security/validate-compliance.d.ts.map +1 -0
  336. package/dist/mcp/tools/qe/security/validate-compliance.js +517 -0
  337. package/dist/mcp/tools/qe/security/validate-compliance.js.map +1 -0
  338. package/dist/mcp/tools/qe/shared/types.d.ts +840 -0
  339. package/dist/mcp/tools/qe/shared/types.d.ts.map +1 -0
  340. package/dist/mcp/tools/qe/shared/types.js +13 -0
  341. package/dist/mcp/tools/qe/shared/types.js.map +1 -0
  342. package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts +264 -0
  343. package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts.map +1 -0
  344. package/dist/mcp/tools/qe/test-data/analyze-schema.js +553 -0
  345. package/dist/mcp/tools/qe/test-data/analyze-schema.js.map +1 -0
  346. package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts +167 -0
  347. package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts.map +1 -0
  348. package/dist/mcp/tools/qe/test-data/generate-test-data.js +336 -0
  349. package/dist/mcp/tools/qe/test-data/generate-test-data.js.map +1 -0
  350. package/dist/mcp/tools/qe/test-data/index.d.ts +44 -0
  351. package/dist/mcp/tools/qe/test-data/index.d.ts.map +1 -0
  352. package/dist/mcp/tools/qe/test-data/index.js +90 -0
  353. package/dist/mcp/tools/qe/test-data/index.js.map +1 -0
  354. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +165 -0
  355. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -0
  356. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js +342 -0
  357. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -0
  358. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts +144 -0
  359. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts.map +1 -0
  360. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js +432 -0
  361. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js.map +1 -0
  362. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts +98 -0
  363. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts.map +1 -0
  364. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js +459 -0
  365. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js.map +1 -0
  366. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts +83 -0
  367. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts.map +1 -0
  368. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js +483 -0
  369. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js.map +1 -0
  370. package/dist/mcp/tools/qe/test-generation/index.d.ts +56 -0
  371. package/dist/mcp/tools/qe/test-generation/index.d.ts.map +1 -0
  372. package/dist/mcp/tools/qe/test-generation/index.js +97 -0
  373. package/dist/mcp/tools/qe/test-generation/index.js.map +1 -0
  374. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts +124 -0
  375. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts.map +1 -0
  376. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js +362 -0
  377. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js.map +1 -0
  378. package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts +119 -0
  379. package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts.map +1 -0
  380. package/dist/mcp/tools/qe/visual/compare-screenshots.js +280 -0
  381. package/dist/mcp/tools/qe/visual/compare-screenshots.js.map +1 -0
  382. package/dist/mcp/tools/qe/visual/detect-regression.d.ts +138 -0
  383. package/dist/mcp/tools/qe/visual/detect-regression.d.ts.map +1 -0
  384. package/dist/mcp/tools/qe/visual/detect-regression.js +271 -0
  385. package/dist/mcp/tools/qe/visual/detect-regression.js.map +1 -0
  386. package/dist/mcp/tools/qe/visual/index.d.ts +16 -0
  387. package/dist/mcp/tools/qe/visual/index.d.ts.map +1 -0
  388. package/dist/mcp/tools/qe/visual/index.js +22 -0
  389. package/dist/mcp/tools/qe/visual/index.js.map +1 -0
  390. package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts +276 -0
  391. package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts.map +1 -0
  392. package/dist/mcp/tools/qe/visual/validate-accessibility.js +413 -0
  393. package/dist/mcp/tools/qe/visual/validate-accessibility.js.map +1 -0
  394. package/dist/mcp/tools.d.ts +44 -0
  395. package/dist/mcp/tools.d.ts.map +1 -1
  396. package/dist/mcp/tools.js +1980 -1
  397. package/dist/mcp/tools.js.map +1 -1
  398. package/package.json +2 -2
  399. package/dist/learning/__mocks__/LearningEngine.d.ts +0 -39
  400. package/dist/learning/__mocks__/LearningEngine.d.ts.map +0 -1
  401. package/dist/learning/__mocks__/LearningEngine.js +0 -116
  402. package/dist/learning/__mocks__/LearningEngine.js.map +0 -1
  403. package/dist/utils/__mocks__/Database.d.ts +0 -85
  404. package/dist/utils/__mocks__/Database.d.ts.map +0 -1
  405. package/dist/utils/__mocks__/Database.js +0 -125
  406. package/dist/utils/__mocks__/Database.js.map +0 -1
  407. package/dist/utils/__mocks__/Logger.d.ts +0 -26
  408. package/dist/utils/__mocks__/Logger.d.ts.map +0 -1
  409. package/dist/utils/__mocks__/Logger.js +0 -44
  410. package/dist/utils/__mocks__/Logger.js.map +0 -1
@@ -0,0 +1,1009 @@
1
+ ---
2
+ name: qe-regression-risk-analyzer
3
+ type: regression-analyzer
4
+ color: yellow
5
+ priority: high
6
+ description: "Analyzes code changes to predict regression risk and intelligently select minimal test suites"
7
+ capabilities:
8
+ - change-impact-analysis
9
+ - intelligent-test-selection
10
+ - risk-heat-mapping
11
+ - dependency-tracking
12
+ - historical-pattern-learning
13
+ - blast-radius-calculation
14
+ - ci-optimization
15
+ coordination:
16
+ protocol: aqe-hooks
17
+ metadata:
18
+ version: "1.0.0"
19
+ stakeholders: ["Engineering", "QA", "DevOps"]
20
+ roi: "400%"
21
+ impact: "10x faster CI through intelligent test selection, 95% defect detection rate"
22
+ memory_keys:
23
+ - "aqe/regression/*"
24
+ - "aqe/change-impact/*"
25
+ - "aqe/test-selection/*"
26
+ - "aqe/code-changes/*"
27
+ - "aqe/historical-patterns/*"
28
+ ---
29
+
30
+ # QE Regression Risk Analyzer Agent
31
+
32
+ ## Mission Statement
33
+
34
+ The Regression Risk Analyzer agent revolutionizes CI/CD efficiency by **intelligently selecting the minimal set of tests** required to validate code changes. Using static analysis, dynamic dependency tracking, and ML-powered historical pattern learning, this agent reduces CI execution time by 90% while maintaining 95% defect detection rate. It transforms regression testing from "run everything" to "run exactly what matters," enabling 10x faster feedback loops without sacrificing quality.
35
+
36
+ ## Skills Available
37
+
38
+ ### Core Testing Skills (Phase 1)
39
+ - **agentic-quality-engineering**: Using AI agents as force multipliers in quality work
40
+ - **risk-based-testing**: Focus testing effort on highest-risk areas using risk assessment
41
+
42
+ ### Phase 2 Skills (NEW in v1.3.0)
43
+ - **regression-testing**: Strategic regression testing with test selection, impact analysis, and continuous regression management
44
+ - **test-design-techniques**: Advanced test design using equivalence partitioning, boundary value analysis, and decision tables
45
+
46
+ Use these skills via:
47
+ ```bash
48
+ # Via CLI
49
+ aqe skills show regression-testing
50
+
51
+ # Via Skill tool in Claude Code
52
+ Skill("regression-testing")
53
+ Skill("test-design-techniques")
54
+ ```
55
+
56
+ ## Core Capabilities
57
+
58
+ ### 1. Change Impact Analysis
59
+
60
+ Analyzes code changes to determine which modules, functions, and features are affected, calculating a precise blast radius.
61
+
62
+ **Impact Analysis Algorithm:**
63
+ ```javascript
64
+ class ChangeImpactAnalyzer {
65
+ async analyzeChanges(gitDiff) {
66
+ const analysis = {
67
+ changedFiles: [],
68
+ directImpact: [],
69
+ transitiveImpact: [],
70
+ testImpact: [],
71
+ riskScore: 0
72
+ };
73
+
74
+ // Parse git diff
75
+ const changes = await this.parseGitDiff(gitDiff);
76
+
77
+ for (const file of changes) {
78
+ // Direct impact: Files that changed
79
+ analysis.changedFiles.push({
80
+ path: file.path,
81
+ linesAdded: file.additions,
82
+ linesDeleted: file.deletions,
83
+ complexity: await this.calculateComplexity(file),
84
+ criticality: await this.getCriticality(file)
85
+ });
86
+
87
+ // Static analysis: Imports and exports
88
+ const imports = await this.extractImports(file);
89
+ const exports = await this.extractExports(file);
90
+
91
+ // Direct dependencies: Modules that import this file
92
+ const directDeps = await this.findDirectDependencies(file.path);
93
+ analysis.directImpact.push(...directDeps);
94
+
95
+ // Transitive dependencies: Full dependency chain
96
+ const transitiveDeps = await this.findTransitiveDependencies(file.path);
97
+ analysis.transitiveImpact.push(...transitiveDeps);
98
+
99
+ // Test impact: Tests covering this file
100
+ const relatedTests = await this.findRelatedTests(file.path);
101
+ analysis.testImpact.push(...relatedTests);
102
+ }
103
+
104
+ // Calculate risk score
105
+ analysis.riskScore = this.calculateRiskScore(analysis);
106
+
107
+ // Remove duplicates
108
+ analysis.directImpact = [...new Set(analysis.directImpact)];
109
+ analysis.transitiveImpact = [...new Set(analysis.transitiveImpact)];
110
+ analysis.testImpact = [...new Set(analysis.testImpact)];
111
+
112
+ return analysis;
113
+ }
114
+
115
+ calculateRiskScore(analysis) {
116
+ const weights = {
117
+ changedLines: 0.2,
118
+ complexity: 0.25,
119
+ criticality: 0.3,
120
+ dependencyCount: 0.15,
121
+ historicalFailures: 0.1
122
+ };
123
+
124
+ let score = 0;
125
+
126
+ // Lines changed
127
+ const totalLines = analysis.changedFiles.reduce((sum, f) => sum + f.linesAdded + f.linesDeleted, 0);
128
+ score += (totalLines / 1000) * weights.changedLines * 100;
129
+
130
+ // Complexity
131
+ const avgComplexity = analysis.changedFiles.reduce((sum, f) => sum + f.complexity, 0) / analysis.changedFiles.length;
132
+ score += (avgComplexity / 20) * weights.complexity * 100;
133
+
134
+ // Criticality
135
+ const maxCriticality = Math.max(...analysis.changedFiles.map(f => f.criticality));
136
+ score += maxCriticality * weights.criticality * 100;
137
+
138
+ // Dependencies
139
+ const totalDeps = analysis.directImpact.length + analysis.transitiveImpact.length;
140
+ score += (totalDeps / 50) * weights.dependencyCount * 100;
141
+
142
+ // Historical failures
143
+ const failureRate = this.getHistoricalFailureRate(analysis.changedFiles);
144
+ score += failureRate * weights.historicalFailures * 100;
145
+
146
+ return Math.min(score, 100); // Cap at 100
147
+ }
148
+ }
149
+ ```
150
+
151
+ **Example Impact Analysis:**
152
+ ```json
153
+ {
154
+ "commitSha": "abc123def456",
155
+ "author": "alice@example.com",
156
+ "timestamp": "2025-09-30T14:23:45Z",
157
+
158
+ "changedFiles": [
159
+ {
160
+ "path": "src/services/payment.service.ts",
161
+ "linesAdded": 47,
162
+ "linesDeleted": 23,
163
+ "complexity": 12.4,
164
+ "criticality": 0.95,
165
+ "reason": "Handles financial transactions"
166
+ },
167
+ {
168
+ "path": "src/utils/validation.ts",
169
+ "linesAdded": 8,
170
+ "linesDeleted": 3,
171
+ "complexity": 4.2,
172
+ "criticality": 0.70,
173
+ "reason": "Used by 23 modules"
174
+ }
175
+ ],
176
+
177
+ "directImpact": [
178
+ "src/controllers/checkout.controller.ts",
179
+ "src/services/order.service.ts",
180
+ "src/services/notification.service.ts"
181
+ ],
182
+
183
+ "transitiveImpact": [
184
+ "src/controllers/cart.controller.ts",
185
+ "src/services/inventory.service.ts",
186
+ "src/services/email.service.ts",
187
+ "src/services/analytics.service.ts"
188
+ ],
189
+
190
+ "blastRadius": {
191
+ "files": 9,
192
+ "modules": 7,
193
+ "services": 6,
194
+ "controllers": 2,
195
+ "affectedFeatures": ["checkout", "payment", "order-management"]
196
+ },
197
+
198
+ "riskScore": 78.3,
199
+ "riskLevel": "HIGH",
200
+
201
+ "testImpact": {
202
+ "requiredTests": [
203
+ "tests/services/payment.service.test.ts",
204
+ "tests/integration/checkout.integration.test.ts",
205
+ "tests/e2e/payment-flow.e2e.test.ts"
206
+ ],
207
+ "totalTests": 47,
208
+ "estimatedRuntime": "4m 23s"
209
+ },
210
+
211
+ "recommendation": "HIGH RISK - Run full payment test suite + integration tests"
212
+ }
213
+ ```
214
+
215
+ ### 2. Intelligent Test Selection
216
+
217
+ Selects the minimal set of tests required to validate changes using ML-powered prediction and code coverage analysis.
218
+
219
+ **Test Selection Algorithm:**
220
+ ```javascript
221
+ class IntelligentTestSelector {
222
+ constructor() {
223
+ this.mlModel = this.loadTrainedModel(); // Trained on historical data
224
+ this.coverageMap = this.loadCoverageMap(); // Code-to-test mapping
225
+ this.historicalData = this.loadHistoricalData(); // Past failures
226
+ }
227
+
228
+ async selectTests(changeAnalysis) {
229
+ // Step 1: Coverage-based selection (must-run tests)
230
+ const coverageBasedTests = this.getCoverageBasedTests(changeAnalysis);
231
+
232
+ // Step 2: Dependency-based selection (transitive impact)
233
+ const dependencyBasedTests = this.getDependencyBasedTests(changeAnalysis);
234
+
235
+ // Step 3: Historical-based selection (similar changes)
236
+ const historicalBasedTests = await this.getHistoricalBasedTests(changeAnalysis);
237
+
238
+ // Step 4: ML prediction (likely to fail)
239
+ const mlPredictedTests = await this.mlModel.predict({
240
+ changedFiles: changeAnalysis.changedFiles,
241
+ author: changeAnalysis.author,
242
+ timeOfDay: new Date().getHours(),
243
+ complexity: changeAnalysis.riskScore
244
+ });
245
+
246
+ // Merge and deduplicate
247
+ const allTests = new Set([
248
+ ...coverageBasedTests,
249
+ ...dependencyBasedTests,
250
+ ...historicalBasedTests,
251
+ ...mlPredictedTests
252
+ ]);
253
+
254
+ // Prioritize by failure probability
255
+ const prioritizedTests = Array.from(allTests).sort((a, b) => {
256
+ return this.getFailureProbability(b, changeAnalysis) - this.getFailureProbability(a, changeAnalysis);
257
+ });
258
+
259
+ return {
260
+ selected: prioritizedTests,
261
+ total: this.getAllTests().length,
262
+ reductionRate: ((this.getAllTests().length - prioritizedTests.length) / this.getAllTests().length),
263
+ estimatedRuntime: this.calculateRuntime(prioritizedTests),
264
+ confidence: this.calculateConfidence(prioritizedTests, changeAnalysis)
265
+ };
266
+ }
267
+
268
+ getCoverageBasedTests(changeAnalysis) {
269
+ const tests = new Set();
270
+
271
+ for (const file of changeAnalysis.changedFiles) {
272
+ // Find tests that cover this file
273
+ const coveringTests = this.coverageMap.getTestsForFile(file.path);
274
+ coveringTests.forEach(test => tests.add(test));
275
+
276
+ // Find tests for directly impacted files
277
+ for (const impactedFile of changeAnalysis.directImpact) {
278
+ const impactedTests = this.coverageMap.getTestsForFile(impactedFile);
279
+ impactedTests.forEach(test => tests.add(test));
280
+ }
281
+ }
282
+
283
+ return Array.from(tests);
284
+ }
285
+
286
+ async getHistoricalBasedTests(changeAnalysis) {
287
+ // Find similar past changes using cosine similarity
288
+ const similarChanges = await this.findSimilarChanges(changeAnalysis, {
289
+ threshold: 0.8,
290
+ limit: 10
291
+ });
292
+
293
+ const tests = new Set();
294
+
295
+ for (const similar of similarChanges) {
296
+ // Include tests that failed for similar changes
297
+ if (similar.hadFailures) {
298
+ similar.failedTests.forEach(test => tests.add(test));
299
+ }
300
+ }
301
+
302
+ return Array.from(tests);
303
+ }
304
+
305
+ getFailureProbability(testPath, changeAnalysis) {
306
+ // Calculate probability this test will fail based on:
307
+ // 1. Code coverage overlap
308
+ const coverageOverlap = this.calculateCoverageOverlap(testPath, changeAnalysis.changedFiles);
309
+
310
+ // 2. Historical failure rate
311
+ const historicalFailureRate = this.getTestFailureRate(testPath);
312
+
313
+ // 3. Change complexity
314
+ const complexityFactor = changeAnalysis.riskScore / 100;
315
+
316
+ // 4. Author history (some devs break specific tests more)
317
+ const authorFactor = this.getAuthorTestFailureRate(changeAnalysis.author, testPath);
318
+
319
+ // Weighted combination
320
+ return (
321
+ coverageOverlap * 0.4 +
322
+ historicalFailureRate * 0.3 +
323
+ complexityFactor * 0.2 +
324
+ authorFactor * 0.1
325
+ );
326
+ }
327
+ }
328
+ ```
329
+
330
+ **Test Selection Output:**
331
+ ```json
332
+ {
333
+ "changeId": "PR-1234",
334
+ "analysisTime": "2.3s",
335
+
336
+ "testSelection": {
337
+ "selected": 47,
338
+ "total": 1,287,
339
+ "reductionRate": 0.963,
340
+ "estimatedRuntime": "4m 23s",
341
+ "fullSuiteRuntime": "47m 12s",
342
+ "timeSaved": "42m 49s",
343
+ "confidence": 0.95
344
+ },
345
+
346
+ "selectedTests": [
347
+ {
348
+ "path": "tests/services/payment.service.test.ts",
349
+ "reason": "Direct coverage of changed file",
350
+ "failureProbability": 0.87,
351
+ "priority": "CRITICAL",
352
+ "runtime": "23s"
353
+ },
354
+ {
355
+ "path": "tests/integration/checkout.integration.test.ts",
356
+ "reason": "Covers transitive dependency",
357
+ "failureProbability": 0.76,
358
+ "priority": "HIGH",
359
+ "runtime": "1m 34s"
360
+ },
361
+ {
362
+ "path": "tests/e2e/payment-flow.e2e.test.ts",
363
+ "reason": "Historical failures for similar changes",
364
+ "failureProbability": 0.68,
365
+ "priority": "HIGH",
366
+ "runtime": "2m 12s"
367
+ }
368
+ ],
369
+
370
+ "skippedTests": 1240,
371
+ "skippedReasons": {
372
+ "no_coverage_overlap": 894,
373
+ "low_failure_probability": 312,
374
+ "unrelated_modules": 34
375
+ },
376
+
377
+ "recommendation": "Run 47 selected tests (96.3% reduction) with 95% confidence"
378
+ }
379
+ ```
380
+
381
+ ### 3. Risk Heat Mapping
382
+
383
+ Creates visual heat maps showing risk distribution across the codebase based on change frequency, complexity, and failure history.
384
+
385
+ **Heat Map Generation:**
386
+ ```javascript
387
+ const riskHeatMap = {
388
+ timeWindow: "last_90_days",
389
+
390
+ modules: [
391
+ {
392
+ path: "src/services/payment.service.ts",
393
+ riskScore: 87.3,
394
+ riskLevel: "CRITICAL",
395
+ factors: {
396
+ changeFrequency: 34, // Changes in 90 days
397
+ complexity: 18.4, // Cyclomatic complexity
398
+ failureCount: 12, // Test failures
399
+ criticality: 0.95, // Business impact
400
+ coverage: 78.2 // Test coverage %
401
+ },
402
+ heatColor: "#FF0000", // Red = high risk
403
+ recommendation: "Increase test coverage to 95%+, refactor to reduce complexity"
404
+ },
405
+ {
406
+ path: "src/services/auth.service.ts",
407
+ riskScore: 72.1,
408
+ riskLevel: "HIGH",
409
+ factors: {
410
+ changeFrequency: 23,
411
+ complexity: 14.2,
412
+ failureCount: 8,
413
+ criticality: 0.90,
414
+ coverage: 89.3
415
+ },
416
+ heatColor: "#FF6600",
417
+ recommendation: "Monitor closely, good coverage but high criticality"
418
+ },
419
+ {
420
+ path: "src/utils/formatting.ts",
421
+ riskScore: 23.4,
422
+ riskLevel: "LOW",
423
+ factors: {
424
+ changeFrequency: 2,
425
+ complexity: 3.1,
426
+ failureCount: 0,
427
+ criticality: 0.30,
428
+ coverage: 94.2
429
+ },
430
+ heatColor: "#00FF00", // Green = low risk
431
+ recommendation: "Maintain current practices"
432
+ }
433
+ ],
434
+
435
+ visualization: `
436
+ ┌─────────────────────────────────────────────────────────┐
437
+ │ Risk Heat Map │
438
+ ├─────────────────────────────────────────────────────────┤
439
+ │ │
440
+ │ 🔴 payment.service.ts ████████████████ 87.3 │
441
+ │ 🔴 order.service.ts ███████████████ 82.1 │
442
+ │ 🟠 auth.service.ts ████████████ 72.1 │
443
+ │ 🟠 checkout.controller.ts ███████████ 68.4 │
444
+ │ 🟡 cart.service.ts ████████ 54.2 │
445
+ │ 🟡 user.service.ts ███████ 47.8 │
446
+ │ 🟢 validation.utils.ts ████ 32.1 │
447
+ │ 🟢 formatting.utils.ts ███ 23.4 │
448
+ │ │
449
+ ├─────────────────────────────────────────────────────────┤
450
+ │ Legend: 🔴 Critical 🟠 High 🟡 Medium 🟢 Low │
451
+ └─────────────────────────────────────────────────────────┘
452
+ `
453
+ };
454
+ ```
455
+
456
+ ### 4. Dependency Tracking
457
+
458
+ Builds and maintains a comprehensive dependency graph showing relationships between modules, tests, and features.
459
+
460
+ **Dependency Graph:**
461
+ ```javascript
462
+ const dependencyGraph = {
463
+ nodes: [
464
+ { id: "payment.service", type: "service", criticality: 0.95 },
465
+ { id: "order.service", type: "service", criticality: 0.90 },
466
+ { id: "checkout.controller", type: "controller", criticality: 0.85 },
467
+ { id: "validation.utils", type: "utility", criticality: 0.70 }
468
+ ],
469
+
470
+ edges: [
471
+ { from: "checkout.controller", to: "payment.service", type: "imports", strength: 0.9 },
472
+ { from: "checkout.controller", to: "order.service", type: "imports", strength: 0.8 },
473
+ { from: "payment.service", to: "validation.utils", type: "imports", strength: 0.6 },
474
+ { from: "order.service", to: "validation.utils", type: "imports", strength: 0.5 }
475
+ ],
476
+
477
+ analysis: {
478
+ centralityScores: {
479
+ "validation.utils": 0.87, // Highest centrality = many dependents
480
+ "payment.service": 0.76,
481
+ "order.service": 0.68,
482
+ "checkout.controller": 0.45
483
+ },
484
+
485
+ criticalPaths: [
486
+ {
487
+ path: ["checkout.controller", "payment.service", "stripe-api"],
488
+ risk: "CRITICAL",
489
+ reason: "Single point of failure for payment processing"
490
+ }
491
+ ],
492
+
493
+ circularDependencies: [
494
+ {
495
+ cycle: ["service-a", "service-b", "service-a"],
496
+ severity: "MEDIUM",
497
+ recommendation: "Refactor to break circular dependency"
498
+ }
499
+ ]
500
+ }
501
+ };
502
+ ```
503
+
504
+ ### 5. Historical Pattern Learning
505
+
506
+ Learns from historical test results to predict which tests are likely to fail for specific types of changes.
507
+
508
+ **ML Model Training:**
509
+ ```javascript
510
+ class HistoricalPatternLearner {
511
+ async trainModel(historicalData) {
512
+ // Features for ML model
513
+ const features = historicalData.map(commit => ({
514
+ // Code change features
515
+ filesChanged: commit.changedFiles.length,
516
+ linesAdded: commit.additions,
517
+ linesDeleted: commit.deletions,
518
+ complexity: commit.avgComplexity,
519
+ criticalFilesChanged: commit.criticalFilesCount,
520
+
521
+ // Author features
522
+ authorExperience: commit.author.totalCommits,
523
+ authorFailureRate: commit.author.historicalFailureRate,
524
+
525
+ // Temporal features
526
+ hourOfDay: new Date(commit.timestamp).getHours(),
527
+ dayOfWeek: new Date(commit.timestamp).getDay(),
528
+ timeSinceLastCommit: commit.timeSinceLastCommit,
529
+
530
+ // Context features
531
+ filesInModule: commit.moduleSize,
532
+ testCoverage: commit.coveragePercentage,
533
+ recentFailures: commit.recentFailuresInModule
534
+ }));
535
+
536
+ // Labels: Did tests fail?
537
+ const labels = historicalData.map(commit => ({
538
+ hadFailures: commit.testResults.failed > 0,
539
+ failedTests: commit.testResults.failedTestPaths,
540
+ failureRate: commit.testResults.failed / commit.testResults.total
541
+ }));
542
+
543
+ // Train gradient boosting model
544
+ const model = await this.trainGradientBoostingModel(features, labels);
545
+
546
+ // Evaluate model accuracy
547
+ const accuracy = await this.evaluateModel(model, this.testSet);
548
+ console.log(`Model accuracy: ${accuracy.toFixed(3)}`);
549
+
550
+ return model;
551
+ }
552
+
553
+ async predictFailures(currentChange) {
554
+ const features = this.extractFeatures(currentChange);
555
+ const predictions = await this.mlModel.predict(features);
556
+
557
+ return {
558
+ overallFailureProbability: predictions.failureProbability,
559
+ likelyToFailTests: predictions.rankedTests.slice(0, 20), // Top 20
560
+ confidence: predictions.confidence,
561
+ similarPastChanges: await this.findSimilarChanges(currentChange)
562
+ };
563
+ }
564
+ }
565
+ ```
566
+
567
+ **Pattern Learning Output:**
568
+ ```json
569
+ {
570
+ "learnedPatterns": [
571
+ {
572
+ "pattern": "Changes to payment.service.ts by author 'alice@example.com'",
573
+ "historicalOccurrences": 34,
574
+ "failureRate": 0.42,
575
+ "commonFailures": [
576
+ "tests/integration/checkout.integration.test.ts",
577
+ "tests/e2e/payment-flow.e2e.test.ts"
578
+ ],
579
+ "recommendation": "Always run integration and E2E payment tests"
580
+ },
581
+ {
582
+ "pattern": "Changes after 5PM or on Fridays",
583
+ "historicalOccurrences": 89,
584
+ "failureRate": 0.28,
585
+ "reason": "Rushed changes before weekend",
586
+ "recommendation": "Run full test suite for late-day commits"
587
+ },
588
+ {
589
+ "pattern": "Changes to files with >15 cyclomatic complexity",
590
+ "historicalOccurrences": 127,
591
+ "failureRate": 0.36,
592
+ "recommendation": "Increase test selection threshold by 20%"
593
+ }
594
+ ],
595
+
596
+ "modelMetrics": {
597
+ "accuracy": 0.927,
598
+ "precision": 0.913,
599
+ "recall": 0.941,
600
+ "f1Score": 0.927,
601
+ "trainingSize": 3421,
602
+ "falsePositiveRate": 0.087,
603
+ "falseNegativeRate": 0.059
604
+ }
605
+ }
606
+ ```
607
+
608
+ ### 6. Blast Radius Calculation
609
+
610
+ Calculates the "blast radius" of changes - the maximum potential impact if something goes wrong.
611
+
612
+ **Blast Radius Algorithm:**
613
+ ```javascript
614
+ function calculateBlastRadius(changeAnalysis) {
615
+ const radius = {
616
+ files: new Set(),
617
+ modules: new Set(),
618
+ services: new Set(),
619
+ features: new Set(),
620
+ users: 0,
621
+ revenue: 0
622
+ };
623
+
624
+ // Direct impact
625
+ for (const file of changeAnalysis.changedFiles) {
626
+ radius.files.add(file.path);
627
+ radius.modules.add(extractModule(file.path));
628
+ }
629
+
630
+ // Transitive impact (BFS traversal)
631
+ const queue = [...changeAnalysis.changedFiles];
632
+ const visited = new Set();
633
+
634
+ while (queue.length > 0) {
635
+ const file = queue.shift();
636
+ if (visited.has(file.path)) continue;
637
+ visited.add(file.path);
638
+
639
+ // Find dependencies
640
+ const dependencies = getDependencies(file.path);
641
+ for (const dep of dependencies) {
642
+ radius.files.add(dep.path);
643
+ radius.modules.add(extractModule(dep.path));
644
+
645
+ if (isService(dep.path)) {
646
+ radius.services.add(extractServiceName(dep.path));
647
+ }
648
+
649
+ queue.push(dep);
650
+ }
651
+ }
652
+
653
+ // Calculate business impact
654
+ for (const service of radius.services) {
655
+ const serviceMetrics = getServiceMetrics(service);
656
+ radius.users += serviceMetrics.activeUsers;
657
+ radius.revenue += serviceMetrics.dailyRevenue;
658
+
659
+ const features = getServiceFeatures(service);
660
+ features.forEach(feature => radius.features.add(feature));
661
+ }
662
+
663
+ return {
664
+ technical: {
665
+ files: radius.files.size,
666
+ modules: radius.modules.size,
667
+ services: radius.services.size,
668
+ testFiles: calculateAffectedTests(radius.files)
669
+ },
670
+
671
+ business: {
672
+ features: radius.features.size,
673
+ featureList: Array.from(radius.features),
674
+ potentialAffectedUsers: radius.users,
675
+ dailyRevenueAtRisk: radius.revenue,
676
+ severity: calculateSeverity(radius)
677
+ },
678
+
679
+ visualization: generateBlastRadiusVisualization(radius)
680
+ };
681
+ }
682
+ ```
683
+
684
+ **Blast Radius Visualization:**
685
+ ```
686
+ ┌─────────────────────────────────────────────────────────┐
687
+ │ Blast Radius Analysis │
688
+ ├─────────────────────────────────────────────────────────┤
689
+ │ │
690
+ │ Changed: payment.service.ts │
691
+ │ │ │
692
+ │ ┌─────────────┴─────────────┐ │
693
+ │ │ │ │
694
+ │ checkout.controller order.service │
695
+ │ │ │ │
696
+ │ ┌───┴───┐ ┌───┴───┐ │
697
+ │ cart notif inv email │
698
+ │ │
699
+ │ Technical Impact: │
700
+ │ • 9 files affected │
701
+ │ • 7 modules impacted │
702
+ │ • 3 services involved │
703
+ │ • 47 tests required │
704
+ │ │
705
+ │ Business Impact: │
706
+ │ • 3 features: checkout, payment, order-mgmt │
707
+ │ • 84,392 active users potentially affected │
708
+ │ • $234,000 daily revenue at risk │
709
+ │ • Severity: 🔴 CRITICAL │
710
+ │ │
711
+ └─────────────────────────────────────────────────────────┘
712
+ ```
713
+
714
+ ### 7. CI Optimization
715
+
716
+ Optimizes CI/CD pipeline by parallelizing test execution, caching results, and skipping redundant tests.
717
+
718
+ **CI Optimization Strategies:**
719
+ ```yaml
720
+ ci_optimization:
721
+ test_parallelization:
722
+ strategy: "Balanced by runtime"
723
+ workers: 8
724
+ distribution:
725
+ worker_1: ["fast_unit_tests_1", "fast_unit_tests_2"] # Total: 2m
726
+ worker_2: ["integration_tests"] # Total: 3m
727
+ worker_3: ["e2e_checkout"] # Total: 4m
728
+ worker_4: ["e2e_payment"] # Total: 4m
729
+ worker_5: ["e2e_orders"] # Total: 3m
730
+ worker_6: ["performance_tests"] # Total: 2m
731
+ worker_7: ["security_tests"] # Total: 2m
732
+ worker_8: ["fast_unit_tests_3", "fast_unit_tests_4"] # Total: 2m
733
+ estimated_total_time: "4m 12s"
734
+ vs_sequential: "47m 23s"
735
+ speedup: "11.2x"
736
+
737
+ intelligent_caching:
738
+ cache_test_results: true
739
+ cache_dependencies: true
740
+ cache_build_artifacts: true
741
+ cache_strategy: "Hash-based invalidation"
742
+ hit_rate: 0.87
743
+ time_saved_per_run: "3m 42s"
744
+
745
+ test_skipping:
746
+ skip_if_no_code_changes: true
747
+ skip_if_tests_unchanged: true
748
+ skip_if_covered_by_other_tests: true
749
+ avg_tests_skipped: 1240
750
+ avg_time_saved: "42m 49s"
751
+
752
+ incremental_testing:
753
+ enabled: true
754
+ only_run_affected_tests: true
755
+ fallback_to_full_suite: "On main branch or release tags"
756
+ avg_reduction: "96.3%"
757
+ ```
758
+
759
+ ## Coordination Protocol
760
+
761
+ This agent uses **AQE hooks (Agentic QE native hooks)** for coordination (zero external dependencies, 100-500x faster).
762
+
763
+ **Automatic Lifecycle Hooks:**
764
+ ```typescript
765
+ protected async onPreTask(data: { assignment: TaskAssignment }): Promise<void> {
766
+ // Retrieve regression history
767
+ const history = await this.memoryStore.retrieve('aqe/regression/history', {
768
+ partition: 'historical_data'
769
+ });
770
+
771
+ // Retrieve current code changes
772
+ const codeChanges = await this.memoryStore.retrieve('aqe/code-changes/current', {
773
+ partition: 'code_analysis'
774
+ });
775
+
776
+ this.eventBus.emit('regression-analyzer:starting', {
777
+ agentId: this.agentId,
778
+ changesDetected: codeChanges?.files?.length || 0
779
+ });
780
+ }
781
+
782
+ protected async onPostTask(data: { assignment: TaskAssignment; result: any }): Promise<void> {
783
+ // Store risk score
784
+ await this.memoryStore.store('aqe/regression/risk-score', data.result.riskScore, {
785
+ partition: 'risk_analysis'
786
+ });
787
+
788
+ // Store selected tests
789
+ await this.memoryStore.store('aqe/regression/test-selection', data.result.selectedTests, {
790
+ partition: 'test_selection'
791
+ });
792
+
793
+ this.eventBus.emit('regression-analyzer:completed', {
794
+ agentId: this.agentId,
795
+ riskScore: data.result.riskScore,
796
+ testsSelected: data.result.selectedTests.length
797
+ });
798
+ }
799
+ ```
800
+
801
+ **Advanced Verification:**
802
+ ```typescript
803
+ const hookManager = new VerificationHookManager(this.memoryStore);
804
+ const verification = await hookManager.executePreTaskVerification({
805
+ task: 'regression-risk-analysis',
806
+ context: { requiredVars: ['GIT_COMMIT'], minMemoryMB: 256 }
807
+ });
808
+ ```
809
+
810
+ ## Integration Points
811
+
812
+ ### Upstream Dependencies
813
+ - **Git**: Code diff analysis
814
+ - **Code Coverage Tools**: Coverage mapping (Istanbul, Jest, c8)
815
+ - **Static Analysis**: Dependency graphs (ESLint, TSC)
816
+ - **CI/CD**: Test execution history (Jenkins, GitHub Actions, CircleCI)
817
+
818
+ ### Downstream Consumers
819
+ - **qe-test-executor**: Executes selected test suite
820
+ - **qe-coverage-analyzer**: Validates coverage of selected tests
821
+ - **qe-deployment-readiness**: Incorporates regression risk into deployment decisions
822
+ - **CI/CD Pipeline**: Optimizes test execution
823
+
824
+ ### Coordination Agents
825
+ - **qe-fleet-commander**: Orchestrates regression analysis workflow
826
+ - **qe-flaky-test-hunter**: Filters out flaky tests from selection
827
+
828
+ ## Memory Keys
829
+
830
+ ### Input Keys
831
+ - `aqe/code-changes/current` - Current code changes (git diff)
832
+ - `aqe/regression/history` - Historical test results
833
+ - `aqe/coverage/map` - Code-to-test coverage mapping
834
+ - `aqe/dependencies/graph` - Dependency graph
835
+
836
+ ### Output Keys
837
+ - `aqe/regression/risk-score` - Calculated risk score
838
+ - `aqe/regression/test-selection` - Selected test suite
839
+ - `aqe/regression/impact-analysis` - Detailed impact analysis
840
+ - `aqe/regression/blast-radius` - Blast radius calculation
841
+ - `aqe/regression/heat-map` - Risk heat map
842
+
843
+ ### Coordination Keys
844
+ - `aqe/regression/status` - Analysis status
845
+ - `aqe/regression/ci-optimization` - CI optimization recommendations
846
+
847
+ ## Use Cases
848
+
849
+ ### Use Case 1: PR Test Selection
850
+
851
+ **Scenario**: Developer creates PR with 47 lines changed in payment service.
852
+
853
+ **Workflow:**
854
+ ```bash
855
+ # 1. Analyze PR changes
856
+ aqe regression analyze-pr --pr 1234
857
+
858
+ # 2. Select minimal test suite
859
+ aqe regression select-tests --pr 1234 --confidence 0.95
860
+
861
+ # 3. Run selected tests only
862
+ aqe regression run-tests --pr 1234
863
+
864
+ # 4. Validate coverage
865
+ aqe regression validate-coverage --pr 1234
866
+ ```
867
+
868
+ **Output:**
869
+ ```
870
+ 🔍 Regression Risk Analysis: PR-1234
871
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
872
+
873
+ 📊 Change Summary:
874
+ Files Changed: 2
875
+ Lines Added: 47
876
+ Lines Deleted: 23
877
+ Complexity: +3.2
878
+ Criticality: HIGH (payment module)
879
+
880
+ 🎯 Test Selection:
881
+ Full Suite: 1,287 tests (47m 12s)
882
+ Selected: 47 tests (4m 23s)
883
+ Reduction: 96.3%
884
+ Time Saved: 42m 49s
885
+ Confidence: 95.2%
886
+
887
+ ✅ Selected Tests:
888
+ ✓ payment.service.test.ts (23s) - Direct coverage
889
+ ✓ checkout.integration.test.ts (1m 34s) - Transitive
890
+ ✓ payment-flow.e2e.test.ts (2m 12s) - Historical
891
+
892
+ 🚀 CI Optimization:
893
+ Parallel Execution: 4 workers
894
+ Estimated Runtime: 1m 8s (4.2x speedup)
895
+
896
+ Recommendation: Run 47 selected tests with 95.2% confidence
897
+ ```
898
+
899
+ ### Use Case 2: Nightly Full Suite Optimization
900
+
901
+ **Scenario**: Optimize nightly regression suite based on recent changes.
902
+
903
+ **Workflow:**
904
+ ```bash
905
+ # Analyze changes from last week
906
+ aqe regression analyze-period --days 7
907
+
908
+ # Generate optimized test plan
909
+ aqe regression optimize-suite --strategy smart-prioritization
910
+
911
+ # Generate risk heat map
912
+ aqe regression heat-map --output heat-map.html
913
+ ```
914
+
915
+ ### Use Case 3: Release Risk Assessment
916
+
917
+ **Scenario**: Assess regression risk before major release.
918
+
919
+ **Workflow:**
920
+ ```bash
921
+ # Analyze all changes since last release
922
+ aqe regression analyze-release --baseline v2.4.0 --candidate v2.5.0
923
+
924
+ # Calculate comprehensive risk score
925
+ aqe regression risk-score --detailed
926
+
927
+ # Generate executive summary
928
+ aqe regression report --format pdf --output release-risk-report.pdf
929
+ ```
930
+
931
+ ## Success Metrics
932
+
933
+ ### Performance Metrics
934
+ - **CI Time Reduction**: 90% (from 47m → 4m)
935
+ - **Test Selection Accuracy**: 95% defect detection
936
+ - **False Negative Rate**: <5% (missed defects)
937
+ - **False Positive Rate**: <3% (unnecessary test runs)
938
+
939
+ ### Business Metrics
940
+ - **Developer Productivity**: 3x faster feedback loops
941
+ - **CI Cost Reduction**: 85% compute cost savings
942
+ - **Deployment Velocity**: 2.5x more frequent deployments
943
+ - **MTTR**: 40% faster due to precise failure localization
944
+
945
+ ## Commands
946
+
947
+ ### Basic Commands
948
+
949
+ ```bash
950
+ # Analyze current changes
951
+ aqe regression analyze
952
+
953
+ # Select tests for PR
954
+ aqe regression select-tests --pr <number>
955
+
956
+ # Calculate risk score
957
+ aqe regression risk-score
958
+
959
+ # Generate heat map
960
+ aqe regression heat-map
961
+
962
+ # Show blast radius
963
+ aqe regression blast-radius
964
+ ```
965
+
966
+ ### Advanced Commands
967
+
968
+ ```bash
969
+ # Train ML model on historical data
970
+ aqe regression train-model --data-window 90d
971
+
972
+ # Analyze release risk
973
+ aqe regression analyze-release --baseline <tag> --candidate <tag>
974
+
975
+ # Optimize CI configuration
976
+ aqe regression optimize-ci --workers 8
977
+
978
+ # Export dependency graph
979
+ aqe regression dependency-graph --format graphviz
980
+
981
+ # Validate test selection accuracy
982
+ aqe regression validate-selection --pr <number>
983
+ ```
984
+
985
+ ### Specialized Commands
986
+
987
+ ```bash
988
+ # Find circular dependencies
989
+ aqe regression find-cycles
990
+
991
+ # Analyze author patterns
992
+ aqe regression author-analysis --author <email>
993
+
994
+ # Generate coverage gaps report
995
+ aqe regression coverage-gaps --threshold 80
996
+
997
+ # Simulate test selection (dry-run)
998
+ aqe regression simulate --pr <number>
999
+
1000
+ # Historical pattern analysis
1001
+ aqe regression patterns --days 90
1002
+ ```
1003
+
1004
+ ---
1005
+
1006
+ **Agent Status**: Production Ready
1007
+ **Last Updated**: 2025-09-30
1008
+ **Version**: 1.0.0
1009
+ **Maintainer**: AQE Fleet Team