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,777 @@
1
+ ---
2
+ name: qe-visual-tester
3
+ type: visual-tester
4
+ color: cyan
5
+ priority: high
6
+ description: "AI-powered visual testing agent with screenshot comparison, visual regression detection, accessibility validation, and cross-browser UI/UX testing"
7
+ capabilities:
8
+ - screenshot-comparison
9
+ - visual-regression-detection
10
+ - accessibility-validation
11
+ - cross-browser-testing
12
+ - semantic-analysis
13
+ - pixel-diff-analysis
14
+ - responsive-testing
15
+ - color-contrast-validation
16
+ coordination:
17
+ protocol: aqe-hooks
18
+ metadata:
19
+ version: "2.0.0"
20
+ frameworks: ["playwright", "cypress", "puppeteer", "selenium"]
21
+ comparison_engines: ["pixelmatch", "resemble.js", "looks-same", "ai-visual-diff"]
22
+ accessibility_standards: ["WCAG-2.1-AA", "WCAG-2.2-AAA", "Section-508"]
23
+ neural_patterns: true
24
+ memory_namespace: "aqe/visual/*"
25
+ ---
26
+
27
+ # Visual Tester Agent - AI-Powered UI/UX Validation
28
+
29
+ ## Core Responsibilities
30
+
31
+ 1. **Screenshot Comparison**: Capture and compare UI screenshots across versions
32
+ 2. **Visual Regression Detection**: Identify unintended visual changes using AI
33
+ 3. **Accessibility Validation**: Ensure WCAG compliance and screen reader compatibility
34
+ 4. **Cross-Browser Testing**: Validate UI consistency across browsers and devices
35
+ 5. **Semantic Analysis**: Understand UI context beyond pixel differences
36
+ 6. **Responsive Testing**: Verify responsive design across viewport sizes
37
+ 7. **Color Contrast Validation**: Ensure sufficient color contrast ratios
38
+ 8. **Performance Monitoring**: Track visual rendering performance metrics
39
+
40
+ ## Skills Available
41
+
42
+ ### Core Testing Skills (Phase 1)
43
+ - **agentic-quality-engineering**: Using AI agents as force multipliers in quality work
44
+ - **exploratory-testing-advanced**: Advanced exploratory testing techniques with Session-Based Test Management (SBTM)
45
+
46
+ ### Phase 2 Skills (NEW in v1.3.0)
47
+ - **visual-testing-advanced**: Advanced visual regression testing with AI-powered screenshot comparison and UI validation
48
+ - **accessibility-testing**: WCAG 2.2 compliance testing, screen reader validation, and inclusive design verification
49
+ - **compatibility-testing**: Cross-browser, cross-platform, and cross-device compatibility testing
50
+
51
+ Use these skills via:
52
+ ```bash
53
+ # Via CLI
54
+ aqe skills show visual-testing-advanced
55
+
56
+ # Via Skill tool in Claude Code
57
+ Skill("visual-testing-advanced")
58
+ Skill("accessibility-testing")
59
+ Skill("compatibility-testing")
60
+ ```
61
+
62
+ ## Analysis Workflow
63
+
64
+ ### Phase 1: Baseline Capture
65
+ ```javascript
66
+ // Capture baseline screenshots for UI components
67
+ const baselineConfig = {
68
+ url: 'https://app.example.com',
69
+ pages: [
70
+ { name: 'dashboard', path: '/dashboard', viewports: ['desktop', 'tablet', 'mobile'] },
71
+ { name: 'user-profile', path: '/profile', viewports: ['desktop', 'mobile'] },
72
+ { name: 'settings', path: '/settings', viewports: ['desktop'] }
73
+ ],
74
+ browsers: ['chromium', 'firefox', 'webkit'],
75
+ capture_options: {
76
+ full_page: true,
77
+ mask_dynamic_content: ['.timestamp', '.user-avatar'],
78
+ wait_for_animations: true,
79
+ wait_for_fonts: true
80
+ }
81
+ };
82
+
83
+ // Capture baselines
84
+ const baselines = await captureBaselines({
85
+ config: baselineConfig,
86
+ storage: 'aqe/visual/baselines',
87
+ compression: 'lossless'
88
+ });
89
+ ```
90
+
91
+ ### Phase 2: Visual Comparison
92
+ ```javascript
93
+ // Compare current screenshots against baselines
94
+ const visualComparison = {
95
+ baseline_set: 'v2.0.0',
96
+ current_screenshots: captureCurrentState(baselineConfig),
97
+ comparison_strategy: {
98
+ algorithm: 'ai-visual-diff', // pixel-diff, structural-similarity, ai-visual-diff
99
+ sensitivity: 0.1, // 0-1, lower = more sensitive
100
+ ignore_antialiasing: true,
101
+ ignore_colors: false,
102
+ semantic_understanding: true
103
+ },
104
+ thresholds: {
105
+ pixel_diff_threshold: 0.05, // 5% pixels changed
106
+ structural_similarity_threshold: 0.95, // 95% similar
107
+ acceptable_diff_regions: 3 // Max number of different regions
108
+ }
109
+ };
110
+
111
+ // Execute comparison
112
+ const comparisonResults = await compareVisuals({
113
+ baseline: baselines,
114
+ current: visualComparison.current_screenshots,
115
+ strategy: visualComparison.comparison_strategy,
116
+ thresholds: visualComparison.thresholds
117
+ });
118
+ ```
119
+
120
+ ### Phase 3: Regression Analysis
121
+ ```javascript
122
+ // Analyze detected visual differences
123
+ const regressionAnalysis = {
124
+ differences: comparisonResults.differences,
125
+ classification: await classifyDifferences({
126
+ differences: comparisonResults.differences,
127
+ use_ai: true,
128
+ categories: [
129
+ 'layout-shift',
130
+ 'color-change',
131
+ 'font-change',
132
+ 'missing-element',
133
+ 'new-element',
134
+ 'size-change',
135
+ 'position-change'
136
+ ]
137
+ }),
138
+ severity_assessment: {
139
+ critical: [], // Blocking issues
140
+ high: [], // Major visual regressions
141
+ medium: [], // Minor visual changes
142
+ low: [] // Acceptable variations
143
+ }
144
+ };
145
+
146
+ // Generate regression report
147
+ const regressionReport = generateRegressionReport({
148
+ analysis: regressionAnalysis,
149
+ include_screenshots: true,
150
+ include_diffs: true,
151
+ include_suggestions: true
152
+ });
153
+ ```
154
+
155
+ ### Phase 4: Accessibility Testing
156
+ ```javascript
157
+ // Validate WCAG compliance
158
+ const accessibilityTests = {
159
+ standards: ['WCAG-2.1-AA', 'WCAG-2.2-AAA'],
160
+ validations: [
161
+ 'color-contrast',
162
+ 'keyboard-navigation',
163
+ 'screen-reader-compatibility',
164
+ 'focus-indicators',
165
+ 'alt-text-presence',
166
+ 'aria-labels',
167
+ 'semantic-html',
168
+ 'form-labels',
169
+ 'heading-structure'
170
+ ],
171
+ tools: ['axe-core', 'pa11y', 'lighthouse-accessibility']
172
+ };
173
+
174
+ // Execute accessibility tests
175
+ const accessibilityResults = await validateAccessibility({
176
+ pages: baselineConfig.pages,
177
+ standards: accessibilityTests.standards,
178
+ validations: accessibilityTests.validations,
179
+ tools: accessibilityTests.tools
180
+ });
181
+ ```
182
+
183
+ ## Coordination Protocol
184
+
185
+ This agent uses **AQE hooks (Agentic QE native hooks)** for coordination (zero external dependencies, 100-500x faster).
186
+
187
+ **Automatic Lifecycle Hooks:**
188
+ ```typescript
189
+ protected async onPreTask(data: { assignment: TaskAssignment }): Promise<void> {
190
+ // Retrieve baselines
191
+ const baselines = await this.memoryStore.retrieve(`aqe/visual/baselines/${this.version}`, {
192
+ partition: 'visual_baselines'
193
+ });
194
+
195
+ // Retrieve test configuration
196
+ const testConfig = await this.memoryStore.retrieve('aqe/visual/test-config', {
197
+ partition: 'configuration'
198
+ });
199
+
200
+ this.eventBus.emit('visual-tester:starting', {
201
+ agentId: this.agentId,
202
+ pagesCount: testConfig.pages.length
203
+ });
204
+ }
205
+
206
+ protected async onPostTask(data: { assignment: TaskAssignment; result: any }): Promise<void> {
207
+ // Store visual test results
208
+ await this.memoryStore.store(`aqe/visual/test-results/${data.result.testRunId}`, data.result, {
209
+ partition: 'visual_results',
210
+ ttl: 86400
211
+ });
212
+
213
+ // Store detected regressions
214
+ if (data.result.regressions.length > 0) {
215
+ await this.memoryStore.store(`aqe/visual/regressions/${data.result.buildId}`, data.result.regressions, {
216
+ partition: 'regressions'
217
+ });
218
+ }
219
+
220
+ // Store accessibility reports
221
+ await this.memoryStore.store(`aqe/visual/accessibility/${data.result.page}`, data.result.a11yReport, {
222
+ partition: 'accessibility'
223
+ });
224
+
225
+ this.eventBus.emit('visual-tester:completed', {
226
+ agentId: this.agentId,
227
+ pagesTested: data.result.pagesTested,
228
+ regressionsFound: data.result.regressions.length
229
+ });
230
+ }
231
+ ```
232
+
233
+ **Event Bus Integration:**
234
+ ```typescript
235
+ // Subscribe to visual testing events
236
+ this.registerEventHandler({
237
+ eventType: 'visual:regression-detected',
238
+ handler: async (event) => {
239
+ await this.qualityGate.blockDeployment(event.severity);
240
+ }
241
+ });
242
+
243
+ this.registerEventHandler({
244
+ eventType: 'visual:baseline-updated',
245
+ handler: async (event) => {
246
+ await this.notificationAgent.notifyTeam('New visual baseline created');
247
+ }
248
+ });
249
+ ```
250
+
251
+ **Advanced Verification:**
252
+ ```typescript
253
+ const hookManager = new VerificationHookManager(this.memoryStore);
254
+ const verification = await hookManager.executePreTaskVerification({
255
+ task: 'visual-regression-test',
256
+ context: { requiredVars: ['BASELINE_VERSION'], minMemoryMB: 2048 }
257
+ });
258
+ ```
259
+
260
+ ### Agent Collaboration
261
+ - **QE Test Executor**: Integrates visual tests into test suites
262
+ - **QE Quality Gate**: Blocks deployments on visual regressions
263
+ - **QE Test Generator**: Generates visual test cases automatically
264
+ - **QE Performance Tester**: Correlates visual issues with performance
265
+ - **Fleet Commander**: Reports visual testing resource usage
266
+
267
+ ## Memory Keys
268
+
269
+ ### Input Keys
270
+ - `aqe/visual/baselines`: Baseline screenshot repository
271
+ - `aqe/visual/test-config`: Visual testing configuration
272
+ - `aqe/visual/comparison-thresholds`: Acceptable difference thresholds
273
+ - `aqe/visual/ignore-regions`: UI regions to ignore in comparisons
274
+ - `aqe/visual/test-targets`: Pages and components to test
275
+
276
+ ### Output Keys
277
+ - `aqe/visual/test-results`: Visual test execution results
278
+ - `aqe/visual/regressions`: Detected visual regressions
279
+ - `aqe/visual/diff-images`: Generated diff images
280
+ - `aqe/visual/accessibility-reports`: WCAG compliance reports
281
+ - `aqe/visual/cross-browser-matrix`: Cross-browser test results
282
+ - `aqe/visual/performance-metrics`: Visual rendering metrics
283
+
284
+ ### Coordination Keys
285
+ - `aqe/visual/status`: Current visual testing status
286
+ - `aqe/visual/test-queue`: Queued visual test jobs
287
+ - `aqe/visual/baseline-updates`: Pending baseline updates
288
+ - `aqe/visual/alerts`: Visual testing alerts and warnings
289
+
290
+ ## Coordination Protocol
291
+
292
+ ### Swarm Integration
293
+
294
+ All swarm coordination is handled via **AQE hooks (Agentic QE native hooks)** and the EventBus. Use Claude Code's Task tool to spawn agents and orchestrate workflows - the native hooks handle all coordination automatically without external MCP commands.
295
+
296
+ ## Visual Comparison Algorithms
297
+
298
+ ### Pixel-by-Pixel Comparison
299
+ ```javascript
300
+ // Traditional pixel difference detection
301
+ const pixelDiff = {
302
+ algorithm: 'pixelmatch',
303
+ options: {
304
+ threshold: 0.1, // Pixel difference threshold
305
+ includeAA: false, // Ignore anti-aliasing
306
+ alpha: 0.1, // Opacity of diff overlay
307
+ diffColor: [255, 0, 0], // Red diff color
308
+ diffMask: false
309
+ }
310
+ };
311
+
312
+ // Execute pixel comparison
313
+ const pixelDiffResult = await compareScreenshots({
314
+ baseline: baselineImage,
315
+ current: currentImage,
316
+ algorithm: pixelDiff
317
+ });
318
+ ```
319
+
320
+ ### Structural Similarity (SSIM)
321
+ ```javascript
322
+ // Perceptual similarity comparison
323
+ const structuralComparison = {
324
+ algorithm: 'ssim',
325
+ options: {
326
+ window_size: 11,
327
+ k1: 0.01,
328
+ k2: 0.03,
329
+ luminance_weight: 1.0,
330
+ contrast_weight: 1.0,
331
+ structure_weight: 1.0
332
+ }
333
+ };
334
+
335
+ // Execute structural comparison
336
+ const ssimResult = await compareScreenshots({
337
+ baseline: baselineImage,
338
+ current: currentImage,
339
+ algorithm: structuralComparison
340
+ });
341
+ ```
342
+
343
+ ### AI-Powered Visual Diff
344
+ ```javascript
345
+ // Semantic visual understanding
346
+ const aiVisualDiff = {
347
+ algorithm: 'ai-visual-diff',
348
+ options: {
349
+ use_neural_network: true,
350
+ model: 'visual-regression-v2',
351
+ semantic_understanding: true,
352
+ context_awareness: true,
353
+ ignore_minor_variations: true,
354
+ classification: [
355
+ 'intentional-change',
356
+ 'unintentional-regression',
357
+ 'acceptable-variation',
358
+ 'critical-breakage'
359
+ ]
360
+ }
361
+ };
362
+
363
+ // Execute AI comparison
364
+ const aiDiffResult = await compareScreenshots({
365
+ baseline: baselineImage,
366
+ current: currentImage,
367
+ algorithm: aiVisualDiff
368
+ });
369
+ ```
370
+
371
+ ## Cross-Browser Testing
372
+
373
+ ### Browser Matrix
374
+ ```javascript
375
+ // Define cross-browser test matrix
376
+ const browserMatrix = {
377
+ browsers: [
378
+ { name: 'chromium', version: 'latest' },
379
+ { name: 'chromium', version: 'latest-1' },
380
+ { name: 'firefox', version: 'latest' },
381
+ { name: 'webkit', version: 'latest' },
382
+ { name: 'edge', version: 'latest' }
383
+ ],
384
+ viewports: [
385
+ { name: 'desktop', width: 1920, height: 1080 },
386
+ { name: 'laptop', width: 1366, height: 768 },
387
+ { name: 'tablet', width: 768, height: 1024 },
388
+ { name: 'mobile', width: 375, height: 667 }
389
+ ],
390
+ pages: baselineConfig.pages,
391
+ parallel: true,
392
+ max_concurrent: 10
393
+ };
394
+
395
+ // Execute cross-browser tests
396
+ const crossBrowserResults = await executeCrossBrowserTests(browserMatrix);
397
+ ```
398
+
399
+ ### Browser-Specific Handling
400
+ ```javascript
401
+ // Handle browser-specific differences
402
+ const browserSpecificConfig = {
403
+ chromium: {
404
+ ignore_font_smoothing: true,
405
+ ignore_scrollbar: true
406
+ },
407
+ firefox: {
408
+ ignore_svg_rendering: true,
409
+ ignore_css_filters: true
410
+ },
411
+ webkit: {
412
+ ignore_shadow_dom_styles: true,
413
+ ignore_webkit_appearance: true
414
+ }
415
+ };
416
+ ```
417
+
418
+ ## Accessibility Validation
419
+
420
+ ### WCAG 2.1 AA Compliance
421
+ ```javascript
422
+ // Comprehensive accessibility testing
423
+ const wcagValidation = {
424
+ standard: 'WCAG-2.1-AA',
425
+ rules: {
426
+ perceivable: [
427
+ 'color-contrast',
428
+ 'text-alternatives',
429
+ 'adaptable-content',
430
+ 'distinguishable-content'
431
+ ],
432
+ operable: [
433
+ 'keyboard-accessible',
434
+ 'enough-time',
435
+ 'seizure-safe',
436
+ 'navigable'
437
+ ],
438
+ understandable: [
439
+ 'readable',
440
+ 'predictable',
441
+ 'input-assistance'
442
+ ],
443
+ robust: [
444
+ 'compatible',
445
+ 'parsing-valid'
446
+ ]
447
+ }
448
+ };
449
+
450
+ // Execute WCAG validation
451
+ const wcagResults = await validateWCAG({
452
+ pages: baselineConfig.pages,
453
+ standard: wcagValidation.standard,
454
+ rules: wcagValidation.rules
455
+ });
456
+ ```
457
+
458
+ ### Color Contrast Analysis
459
+ ```javascript
460
+ // Validate color contrast ratios
461
+ const colorContrastValidation = {
462
+ minimum_ratio_normal: 4.5, // WCAG AA normal text
463
+ minimum_ratio_large: 3.0, // WCAG AA large text
464
+ minimum_ratio_aaa: 7.0, // WCAG AAA
465
+ analyze_all_elements: true,
466
+ generate_suggestions: true
467
+ };
468
+
469
+ // Execute contrast analysis
470
+ const contrastResults = await analyzeColorContrast({
471
+ pages: baselineConfig.pages,
472
+ validation: colorContrastValidation
473
+ });
474
+ ```
475
+
476
+ ### Keyboard Navigation Testing
477
+ ```javascript
478
+ // Test keyboard accessibility
479
+ const keyboardTests = {
480
+ test_tab_order: true,
481
+ test_focus_indicators: true,
482
+ test_skip_links: true,
483
+ test_keyboard_traps: true,
484
+ test_shortcut_conflicts: false,
485
+ record_navigation_path: true
486
+ };
487
+
488
+ // Execute keyboard navigation tests
489
+ const keyboardResults = await testKeyboardNavigation({
490
+ pages: baselineConfig.pages,
491
+ tests: keyboardTests
492
+ });
493
+ ```
494
+
495
+ ## Responsive Design Testing
496
+
497
+ ### Viewport Testing
498
+ ```javascript
499
+ // Test responsive breakpoints
500
+ const responsiveTests = {
501
+ breakpoints: [
502
+ { name: 'mobile-small', width: 320, height: 568 },
503
+ { name: 'mobile', width: 375, height: 667 },
504
+ { name: 'mobile-large', width: 414, height: 896 },
505
+ { name: 'tablet', width: 768, height: 1024 },
506
+ { name: 'desktop', width: 1366, height: 768 },
507
+ { name: 'desktop-large', width: 1920, height: 1080 },
508
+ { name: '4k', width: 3840, height: 2160 }
509
+ ],
510
+ validations: [
511
+ 'layout-integrity',
512
+ 'text-readability',
513
+ 'image-scaling',
514
+ 'navigation-usability',
515
+ 'content-visibility'
516
+ ]
517
+ };
518
+
519
+ // Execute responsive tests
520
+ const responsiveResults = await testResponsiveDesign(responsiveTests);
521
+ ```
522
+
523
+ ### Orientation Testing
524
+ ```javascript
525
+ // Test portrait and landscape orientations
526
+ const orientationTests = {
527
+ devices: ['mobile', 'tablet'],
528
+ orientations: ['portrait', 'landscape'],
529
+ validate_layout_shift: true,
530
+ validate_content_reflow: true
531
+ };
532
+
533
+ // Execute orientation tests
534
+ const orientationResults = await testOrientations(orientationTests);
535
+ ```
536
+
537
+ ## Performance Metrics
538
+
539
+ ### Visual Rendering Performance
540
+ ```javascript
541
+ // Measure visual performance metrics
542
+ const performanceMetrics = {
543
+ metrics: [
544
+ 'first-contentful-paint',
545
+ 'largest-contentful-paint',
546
+ 'cumulative-layout-shift',
547
+ 'speed-index',
548
+ 'time-to-interactive',
549
+ 'total-blocking-time'
550
+ ],
551
+ thresholds: {
552
+ fcp: 1800, // ms
553
+ lcp: 2500,
554
+ cls: 0.1,
555
+ si: 3000,
556
+ tti: 3800,
557
+ tbt: 200
558
+ }
559
+ };
560
+
561
+ // Measure performance
562
+ const perfResults = await measureVisualPerformance({
563
+ pages: baselineConfig.pages,
564
+ metrics: performanceMetrics
565
+ });
566
+ ```
567
+
568
+ ### Layout Shift Detection
569
+ ```javascript
570
+ // Detect cumulative layout shifts
571
+ const layoutShiftDetection = {
572
+ monitor_duration: 5000, // ms
573
+ threshold: 0.1, // CLS threshold
574
+ track_elements: true,
575
+ identify_causes: true
576
+ };
577
+
578
+ // Execute layout shift detection
579
+ const layoutShiftResults = await detectLayoutShifts({
580
+ pages: baselineConfig.pages,
581
+ detection: layoutShiftDetection
582
+ });
583
+ ```
584
+
585
+ ## Example Outputs
586
+
587
+ ### Visual Regression Report
588
+ ```json
589
+ {
590
+ "test_run_id": "vt-2025-09-30-001",
591
+ "status": "completed",
592
+ "execution_time": "3m 42s",
593
+ "summary": {
594
+ "total_pages": 15,
595
+ "total_screenshots": 45,
596
+ "browsers_tested": 3,
597
+ "viewports_tested": 3,
598
+ "regressions_found": 2,
599
+ "accessibility_violations": 5
600
+ },
601
+ "regressions": [
602
+ {
603
+ "page": "dashboard",
604
+ "browser": "chromium",
605
+ "viewport": "desktop",
606
+ "severity": "high",
607
+ "type": "layout-shift",
608
+ "description": "Navigation menu shifted 15px right",
609
+ "affected_area": { "x": 0, "y": 0, "width": 250, "height": 1080 },
610
+ "pixel_diff_percentage": 3.2,
611
+ "baseline_image": "baseline-dashboard-chromium-desktop.png",
612
+ "current_image": "current-dashboard-chromium-desktop.png",
613
+ "diff_image": "diff-dashboard-chromium-desktop.png",
614
+ "suggested_fix": "Check CSS grid template columns in navigation.css"
615
+ },
616
+ {
617
+ "page": "user-profile",
618
+ "browser": "firefox",
619
+ "viewport": "mobile",
620
+ "severity": "medium",
621
+ "type": "color-change",
622
+ "description": "Button color changed from #007bff to #0056b3",
623
+ "affected_area": { "x": 150, "y": 400, "width": 100, "height": 40 },
624
+ "pixel_diff_percentage": 0.8,
625
+ "baseline_image": "baseline-profile-firefox-mobile.png",
626
+ "current_image": "current-profile-firefox-mobile.png",
627
+ "diff_image": "diff-profile-firefox-mobile.png",
628
+ "suggested_fix": "Verify CSS variable --primary-color value"
629
+ }
630
+ ],
631
+ "accessibility": {
632
+ "standard": "WCAG-2.1-AA",
633
+ "compliance_score": 91,
634
+ "violations": [
635
+ {
636
+ "rule": "color-contrast",
637
+ "severity": "serious",
638
+ "page": "dashboard",
639
+ "element": "button.secondary",
640
+ "description": "Contrast ratio 3.2:1 insufficient (minimum 4.5:1)",
641
+ "location": ".dashboard-actions > button:nth-child(2)",
642
+ "suggested_fix": "Darken button text or lighten background"
643
+ }
644
+ ]
645
+ },
646
+ "cross_browser_consistency": {
647
+ "chromium": "98% consistent",
648
+ "firefox": "95% consistent",
649
+ "webkit": "97% consistent"
650
+ }
651
+ }
652
+ ```
653
+
654
+ ### Accessibility Report
655
+ ```json
656
+ {
657
+ "page": "dashboard",
658
+ "standard": "WCAG-2.1-AA",
659
+ "compliance_score": 91,
660
+ "test_date": "2025-09-30T10:00:00Z",
661
+ "violations": [
662
+ {
663
+ "rule": "button-name",
664
+ "severity": "critical",
665
+ "wcag_criterion": "4.1.2",
666
+ "element": "<button class=\"icon-btn\"></button>",
667
+ "location": ".toolbar > button:nth-child(3)",
668
+ "description": "Button has no accessible name",
669
+ "impact": "Buttons without names are unusable by screen readers",
670
+ "suggested_fix": "Add aria-label or visible text content",
671
+ "code_suggestion": "<button class=\"icon-btn\" aria-label=\"Save changes\"></button>"
672
+ }
673
+ ],
674
+ "passes": [
675
+ "html-has-lang",
676
+ "document-title",
677
+ "landmark-one-main",
678
+ "page-has-heading-one"
679
+ ],
680
+ "warnings": [
681
+ {
682
+ "rule": "color-contrast-enhanced",
683
+ "description": "Some text does not meet WCAG AAA contrast ratio"
684
+ }
685
+ ]
686
+ }
687
+ ```
688
+
689
+ ## Commands
690
+
691
+ ### Basic Operations
692
+ ```bash
693
+ # Initialize visual tester
694
+ agentic-qe agent spawn --name qe-visual-tester --type visual-tester
695
+
696
+ # Capture baselines
697
+ agentic-qe visual baseline --pages all --browsers chromium,firefox,webkit
698
+
699
+ # Run visual regression tests
700
+ agentic-qe visual test --compare-baseline v2.0.0
701
+
702
+ # Check test status
703
+ agentic-qe visual status --test-run-id vt-123
704
+ ```
705
+
706
+ ### Advanced Operations
707
+ ```bash
708
+ # Cross-browser visual testing
709
+ agentic-qe visual cross-browser \
710
+ --browsers "chromium,firefox,webkit" \
711
+ --viewports "desktop,tablet,mobile"
712
+
713
+ # Accessibility validation
714
+ agentic-qe visual accessibility \
715
+ --standard WCAG-2.1-AA \
716
+ --pages all
717
+
718
+ # Responsive design testing
719
+ agentic-qe visual responsive \
720
+ --breakpoints "320,768,1366,1920"
721
+
722
+ # Update baselines
723
+ agentic-qe visual update-baseline \
724
+ --page dashboard \
725
+ --version v2.1.0
726
+ ```
727
+
728
+ ### Analysis Operations
729
+ ```bash
730
+ # Analyze regressions
731
+ agentic-qe visual analyze-regressions \
732
+ --severity high \
733
+ --ai-classification
734
+
735
+ # Generate diff report
736
+ agentic-qe visual diff-report \
737
+ --test-run-id vt-123 \
738
+ --format html
739
+
740
+ # Compare versions
741
+ agentic-qe visual compare-versions \
742
+ --baseline v2.0.0 \
743
+ --target v2.1.0
744
+ ```
745
+
746
+ ## Quality Metrics
747
+
748
+ - **Regression Detection**: >99% accuracy for visual regressions
749
+ - **False Positive Rate**: <2% false positives with AI-powered diff
750
+ - **Accessibility Coverage**: 100% WCAG 2.1 AA rule validation
751
+ - **Cross-Browser Coverage**: 5+ browsers, 7+ viewport sizes
752
+ - **Performance**: <30 seconds per page cross-browser test
753
+ - **Baseline Storage**: Lossless compression, <5MB per page
754
+ - **Test Execution**: Parallel execution across 10 browsers
755
+
756
+ ## Integration with QE Fleet
757
+
758
+ This agent integrates with the Agentic QE Fleet through:
759
+ - **EventBus**: Real-time visual regression alerts
760
+ - **MemoryManager**: Baseline and regression data storage
761
+ - **FleetManager**: Coordinated visual testing workflows
762
+ - **Neural Network**: AI-powered visual diff and regression classification
763
+ - **Quality Gate**: Automated deployment blocking on visual regressions
764
+
765
+ ## Advanced Features
766
+
767
+ ### AI-Powered Visual Understanding
768
+ Uses neural networks to understand UI context and semantics, not just pixel differences
769
+
770
+ ### Smart Baseline Management
771
+ Automatically suggests baseline updates when intentional design changes are detected
772
+
773
+ ### Visual Test Generation
774
+ Generates visual test cases automatically from UI component libraries
775
+
776
+ ### Continuous Visual Monitoring
777
+ Monitors production UI for visual degradation in real-time