agentic-qe 1.5.1 → 1.6.1

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 (188) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +118 -0
  2. package/.claude/agents/qe-chaos-engineer.md +320 -5
  3. package/.claude/agents/qe-code-complexity.md +360 -0
  4. package/.claude/agents/qe-coverage-analyzer.md +112 -0
  5. package/.claude/agents/qe-deployment-readiness.md +322 -6
  6. package/.claude/agents/qe-flaky-test-hunter.md +115 -0
  7. package/.claude/agents/qe-fleet-commander.md +319 -6
  8. package/.claude/agents/qe-performance-tester.md +234 -0
  9. package/.claude/agents/qe-production-intelligence.md +114 -0
  10. package/.claude/agents/qe-quality-analyzer.md +126 -0
  11. package/.claude/agents/qe-quality-gate.md +119 -0
  12. package/.claude/agents/qe-regression-risk-analyzer.md +114 -0
  13. package/.claude/agents/qe-requirements-validator.md +114 -0
  14. package/.claude/agents/qe-security-scanner.md +118 -0
  15. package/.claude/agents/qe-test-data-architect.md +234 -0
  16. package/.claude/agents/qe-test-executor.md +115 -0
  17. package/.claude/agents/qe-test-generator.md +114 -0
  18. package/.claude/agents/qe-visual-tester.md +305 -6
  19. package/.claude/agents/subagents/qe-code-reviewer.md +0 -4
  20. package/.claude/agents/subagents/qe-data-generator.md +0 -16
  21. package/.claude/agents/subagents/qe-integration-tester.md +0 -17
  22. package/.claude/agents/subagents/qe-performance-validator.md +0 -16
  23. package/.claude/agents/subagents/qe-security-auditor.md +0 -16
  24. package/.claude/agents/subagents/qe-test-implementer.md +0 -17
  25. package/.claude/agents/subagents/qe-test-refactorer.md +0 -17
  26. package/.claude/agents/subagents/qe-test-writer.md +0 -19
  27. package/.claude/skills/brutal-honesty-review/README.md +218 -0
  28. package/.claude/skills/brutal-honesty-review/SKILL.md +725 -0
  29. package/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  30. package/.claude/skills/brutal-honesty-review/resources/review-template.md +102 -0
  31. package/.claude/skills/brutal-honesty-review/scripts/assess-code.sh +179 -0
  32. package/.claude/skills/brutal-honesty-review/scripts/assess-tests.sh +223 -0
  33. package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +301 -0
  34. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +510 -0
  35. package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/microservice-pipeline.md +239 -0
  36. package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/mobile-pipeline.md +375 -0
  37. package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/monolith-pipeline.md +268 -0
  38. package/.claude/skills/six-thinking-hats/README.md +190 -0
  39. package/.claude/skills/six-thinking-hats/SKILL.md +1215 -0
  40. package/.claude/skills/six-thinking-hats/resources/examples/api-testing-example.md +345 -0
  41. package/.claude/skills/six-thinking-hats/resources/templates/solo-session-template.md +167 -0
  42. package/.claude/skills/six-thinking-hats/resources/templates/team-session-template.md +336 -0
  43. package/CHANGELOG.md +2472 -2129
  44. package/README.md +48 -10
  45. package/dist/adapters/MemoryStoreAdapter.d.ts +38 -0
  46. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  47. package/dist/adapters/MemoryStoreAdapter.js +22 -0
  48. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  49. package/dist/agents/BaseAgent.d.ts.map +1 -1
  50. package/dist/agents/BaseAgent.js +13 -0
  51. package/dist/agents/BaseAgent.js.map +1 -1
  52. package/dist/cli/commands/init-claude-md-template.d.ts +16 -0
  53. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -0
  54. package/dist/cli/commands/init-claude-md-template.js +69 -0
  55. package/dist/cli/commands/init-claude-md-template.js.map +1 -0
  56. package/dist/cli/commands/init.d.ts +1 -1
  57. package/dist/cli/commands/init.d.ts.map +1 -1
  58. package/dist/cli/commands/init.js +509 -460
  59. package/dist/cli/commands/init.js.map +1 -1
  60. package/dist/core/memory/AgentDBService.d.ts +33 -28
  61. package/dist/core/memory/AgentDBService.d.ts.map +1 -1
  62. package/dist/core/memory/AgentDBService.js +233 -290
  63. package/dist/core/memory/AgentDBService.js.map +1 -1
  64. package/dist/core/memory/EnhancedAgentDBService.d.ts.map +1 -1
  65. package/dist/core/memory/EnhancedAgentDBService.js +5 -3
  66. package/dist/core/memory/EnhancedAgentDBService.js.map +1 -1
  67. package/dist/core/memory/RealAgentDBAdapter.d.ts +9 -2
  68. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
  69. package/dist/core/memory/RealAgentDBAdapter.js +126 -100
  70. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
  71. package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
  72. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  73. package/dist/core/memory/SwarmMemoryManager.js +176 -0
  74. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  75. package/dist/core/memory/index.d.ts.map +1 -1
  76. package/dist/core/memory/index.js +2 -1
  77. package/dist/core/memory/index.js.map +1 -1
  78. package/dist/learning/LearningEngine.d.ts +14 -27
  79. package/dist/learning/LearningEngine.d.ts.map +1 -1
  80. package/dist/learning/LearningEngine.js +57 -119
  81. package/dist/learning/LearningEngine.js.map +1 -1
  82. package/dist/learning/index.d.ts +0 -1
  83. package/dist/learning/index.d.ts.map +1 -1
  84. package/dist/learning/index.js +0 -1
  85. package/dist/learning/index.js.map +1 -1
  86. package/dist/mcp/handlers/learning/learning-query.d.ts +34 -0
  87. package/dist/mcp/handlers/learning/learning-query.d.ts.map +1 -0
  88. package/dist/mcp/handlers/learning/learning-query.js +156 -0
  89. package/dist/mcp/handlers/learning/learning-query.js.map +1 -0
  90. package/dist/mcp/handlers/learning/learning-store-experience.d.ts +30 -0
  91. package/dist/mcp/handlers/learning/learning-store-experience.d.ts.map +1 -0
  92. package/dist/mcp/handlers/learning/learning-store-experience.js +86 -0
  93. package/dist/mcp/handlers/learning/learning-store-experience.js.map +1 -0
  94. package/dist/mcp/handlers/learning/learning-store-pattern.d.ts +31 -0
  95. package/dist/mcp/handlers/learning/learning-store-pattern.d.ts.map +1 -0
  96. package/dist/mcp/handlers/learning/learning-store-pattern.js +126 -0
  97. package/dist/mcp/handlers/learning/learning-store-pattern.js.map +1 -0
  98. package/dist/mcp/handlers/learning/learning-store-qvalue.d.ts +30 -0
  99. package/dist/mcp/handlers/learning/learning-store-qvalue.d.ts.map +1 -0
  100. package/dist/mcp/handlers/learning/learning-store-qvalue.js +100 -0
  101. package/dist/mcp/handlers/learning/learning-store-qvalue.js.map +1 -0
  102. package/dist/mcp/server.d.ts +11 -0
  103. package/dist/mcp/server.d.ts.map +1 -1
  104. package/dist/mcp/server.js +98 -1
  105. package/dist/mcp/server.js.map +1 -1
  106. package/dist/mcp/services/LearningEventListener.d.ts +123 -0
  107. package/dist/mcp/services/LearningEventListener.d.ts.map +1 -0
  108. package/dist/mcp/services/LearningEventListener.js +322 -0
  109. package/dist/mcp/services/LearningEventListener.js.map +1 -0
  110. package/dist/mcp/tools.d.ts +4 -0
  111. package/dist/mcp/tools.d.ts.map +1 -1
  112. package/dist/mcp/tools.js +179 -0
  113. package/dist/mcp/tools.js.map +1 -1
  114. package/dist/types/memory-interfaces.d.ts +71 -0
  115. package/dist/types/memory-interfaces.d.ts.map +1 -1
  116. package/dist/utils/Calculator.d.ts +35 -0
  117. package/dist/utils/Calculator.d.ts.map +1 -0
  118. package/dist/utils/Calculator.js +50 -0
  119. package/dist/utils/Calculator.js.map +1 -0
  120. package/dist/utils/Logger.d.ts.map +1 -1
  121. package/dist/utils/Logger.js +4 -1
  122. package/dist/utils/Logger.js.map +1 -1
  123. package/package.json +7 -5
  124. package/.claude/agents/qe-api-contract-validator.md.backup +0 -1148
  125. package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +0 -1148
  126. package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +0 -1123
  127. package/.claude/agents/qe-chaos-engineer.md.backup +0 -808
  128. package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +0 -808
  129. package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +0 -787
  130. package/.claude/agents/qe-code-complexity.md.backup +0 -291
  131. package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +0 -291
  132. package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +0 -286
  133. package/.claude/agents/qe-coverage-analyzer.md.backup +0 -467
  134. package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +0 -467
  135. package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +0 -438
  136. package/.claude/agents/qe-deployment-readiness.md.backup +0 -1166
  137. package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +0 -1166
  138. package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +0 -1140
  139. package/.claude/agents/qe-flaky-test-hunter.md.backup +0 -1195
  140. package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +0 -1195
  141. package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +0 -1162
  142. package/.claude/agents/qe-fleet-commander.md.backup +0 -718
  143. package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +0 -718
  144. package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +0 -697
  145. package/.claude/agents/qe-performance-tester.md.backup +0 -428
  146. package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +0 -428
  147. package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +0 -372
  148. package/.claude/agents/qe-production-intelligence.md.backup +0 -1219
  149. package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +0 -1219
  150. package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +0 -1194
  151. package/.claude/agents/qe-quality-analyzer.md.backup +0 -425
  152. package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +0 -425
  153. package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +0 -394
  154. package/.claude/agents/qe-quality-gate.md.backup +0 -446
  155. package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +0 -446
  156. package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +0 -415
  157. package/.claude/agents/qe-regression-risk-analyzer.md.backup +0 -1009
  158. package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +0 -1009
  159. package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +0 -984
  160. package/.claude/agents/qe-requirements-validator.md.backup +0 -748
  161. package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +0 -748
  162. package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +0 -723
  163. package/.claude/agents/qe-security-scanner.md.backup +0 -634
  164. package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +0 -634
  165. package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +0 -573
  166. package/.claude/agents/qe-test-data-architect.md.backup +0 -1064
  167. package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +0 -1064
  168. package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +0 -1040
  169. package/.claude/agents/qe-test-executor.md.backup +0 -389
  170. package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +0 -389
  171. package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +0 -369
  172. package/.claude/agents/qe-test-generator.md.backup +0 -997
  173. package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +0 -997
  174. package/.claude/agents/qe-visual-tester.md.backup +0 -777
  175. package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +0 -777
  176. package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +0 -756
  177. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  178. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  179. package/.claude/commands/flow-nexus/app-store.md +0 -124
  180. package/.claude/commands/flow-nexus/challenges.md +0 -120
  181. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  182. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  183. package/.claude/commands/flow-nexus/payments.md +0 -116
  184. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  185. package/.claude/commands/flow-nexus/swarm.md +0 -87
  186. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  187. package/.claude/commands/flow-nexus/workflow.md +0 -115
  188. package/.claude/commands/memory/usage.md +0 -46
@@ -165,6 +165,7 @@ This agent uses **AQE hooks (Agentic QE native hooks)** for coordination (zero e
165
165
 
166
166
  **Automatic Lifecycle Hooks:**
167
167
  ```typescript
168
+ // Called automatically by BaseAgent
168
169
  protected async onPreTask(data: { assignment: TaskAssignment }): Promise<void> {
169
170
  // Retrieve baselines
170
171
  const baselines = await this.memoryStore.retrieve(`aqe/visual/baselines/${this.version}`, {
@@ -176,9 +177,26 @@ protected async onPreTask(data: { assignment: TaskAssignment }): Promise<void> {
176
177
  partition: 'configuration'
177
178
  });
178
179
 
180
+ // Verify environment for visual testing
181
+ const verification = await this.hookManager.executePreTaskVerification({
182
+ task: 'visual-testing',
183
+ context: {
184
+ requiredVars: ['BASELINE_VERSION', 'BROWSER'],
185
+ minMemoryMB: 2048,
186
+ requiredKeys: ['aqe/visual/baselines', 'aqe/visual/test-config']
187
+ }
188
+ });
189
+
190
+ // Emit visual testing starting event
179
191
  this.eventBus.emit('visual-tester:starting', {
180
192
  agentId: this.agentId,
181
- pagesCount: testConfig.pages.length
193
+ pagesCount: testConfig.pages.length,
194
+ browser: process.env.BROWSER || 'chromium'
195
+ });
196
+
197
+ this.logger.info('Visual testing starting', {
198
+ pagesCount: testConfig.pages.length,
199
+ verification: verification.passed
182
200
  });
183
201
  }
184
202
 
@@ -186,26 +204,85 @@ protected async onPostTask(data: { assignment: TaskAssignment; result: any }): P
186
204
  // Store visual test results
187
205
  await this.memoryStore.store(`aqe/visual/test-results/${data.result.testRunId}`, data.result, {
188
206
  partition: 'visual_results',
189
- ttl: 86400
207
+ ttl: 86400 // 24 hours
190
208
  });
191
209
 
192
210
  // Store detected regressions
193
211
  if (data.result.regressions.length > 0) {
194
212
  await this.memoryStore.store(`aqe/visual/regressions/${data.result.buildId}`, data.result.regressions, {
195
- partition: 'regressions'
213
+ partition: 'regressions',
214
+ ttl: 604800 // 7 days
196
215
  });
197
216
  }
198
217
 
199
218
  // Store accessibility reports
200
219
  await this.memoryStore.store(`aqe/visual/accessibility/${data.result.page}`, data.result.a11yReport, {
201
- partition: 'accessibility'
220
+ partition: 'accessibility',
221
+ ttl: 604800 // 7 days
222
+ });
223
+
224
+ // Store visual testing metrics
225
+ await this.memoryStore.store('aqe/visual/metrics', {
226
+ timestamp: Date.now(),
227
+ pagesTested: data.result.pagesTested,
228
+ regressionsFound: data.result.regressions.length,
229
+ a11yViolations: data.result.a11yReport?.violations?.length || 0
230
+ }, {
231
+ partition: 'metrics',
232
+ ttl: 604800 // 7 days
202
233
  });
203
234
 
235
+ // Emit completion event with visual testing stats
204
236
  this.eventBus.emit('visual-tester:completed', {
205
237
  agentId: this.agentId,
206
238
  pagesTested: data.result.pagesTested,
207
239
  regressionsFound: data.result.regressions.length
208
240
  });
241
+
242
+ // Validate visual testing results
243
+ const validation = await this.hookManager.executePostTaskValidation({
244
+ task: 'visual-testing',
245
+ result: {
246
+ output: data.result,
247
+ regressions: data.result.regressions,
248
+ metrics: {
249
+ pagesTested: data.result.pagesTested,
250
+ regressionsFound: data.result.regressions.length
251
+ }
252
+ }
253
+ });
254
+
255
+ this.logger.info('Visual testing completed', {
256
+ pagesTested: data.result.pagesTested,
257
+ regressionsFound: data.result.regressions.length,
258
+ validated: validation.passed
259
+ });
260
+ }
261
+
262
+ protected async onTaskError(data: { assignment: TaskAssignment; error: Error }): Promise<void> {
263
+ // Store error for fleet analysis
264
+ await this.memoryStore.store(`aqe/errors/${data.assignment.task.id}`, {
265
+ error: data.error.message,
266
+ timestamp: Date.now(),
267
+ agent: this.agentId,
268
+ taskType: 'visual-testing',
269
+ page: data.assignment.task.metadata.page
270
+ }, {
271
+ partition: 'errors',
272
+ ttl: 604800 // 7 days
273
+ });
274
+
275
+ // Emit error event for fleet coordination
276
+ this.eventBus.emit('visual-tester:error', {
277
+ agentId: this.agentId,
278
+ error: data.error.message,
279
+ taskId: data.assignment.task.id
280
+ });
281
+
282
+ this.logger.error('Visual testing failed', {
283
+ error: data.error.message,
284
+ stack: data.error.stack
285
+ });
209
286
  }
210
287
  ```
211
288
 
@@ -227,13 +304,235 @@ this.registerEventHandler({
227
304
  });
228
305
  ```
229
306
 
230
- **Advanced Verification:**
307
+ **Advanced Verification (Optional):**
231
308
  ```typescript
309
+ // Use VerificationHookManager for comprehensive validation
232
310
  const hookManager = new VerificationHookManager(this.memoryStore);
233
311
  const verification = await hookManager.executePreTaskVerification({
234
312
  task: 'visual-regression-test',
235
- context: { requiredVars: ['BASELINE_VERSION'], minMemoryMB: 2048 }
313
+ context: {
314
+ requiredVars: ['BASELINE_VERSION', 'BROWSER'],
315
+ minMemoryMB: 2048,
316
+ requiredKeys: ['aqe/visual/baselines', 'aqe/visual/test-config']
317
+ }
318
+ });
319
+ ```
320
+
321
+ ## Learning Protocol (Phase 6 - Option C Implementation)
322
+
323
+ **⚠️ MANDATORY**: When executed via Claude Code Task tool, you MUST call learning MCP tools to persist learning data.
324
+
325
+ ### Required Learning Actions (Call AFTER Task Completion)
326
+
327
+ **1. Store Learning Experience:**
328
+ ```typescript
329
+ // Call this MCP tool after completing your task
330
+ mcp__agentic_qe__learning_store_experience({
331
+ agentId: "qe-visual-tester",
332
+ taskType: "visual-testing",
333
+ reward: 0.95, // Your assessment of task success (0-1 scale)
334
+ outcome: {
335
+ // Your actual results (agent-specific)
336
+ regressionsDetected: 3,
337
+ accuracy: 0.98,
338
+ falsePositives: 1,
339
+ executionTime: 8500
340
+ },
341
+ metadata: {
342
+ // Additional context (agent-specific)
343
+ algorithm: "ai-visual-diff",
344
+ threshold: 0.95,
345
+ accessibilityChecked: true
346
+ }
347
+ })
348
+ ```
349
+
350
+ **2. Store Q-Values for Your Strategy:**
351
+ ```typescript
352
+ // Store Q-value for the strategy you used
353
+ mcp__agentic_qe__learning_store_qvalue({
354
+ agentId: "qe-visual-tester",
355
+ stateKey: "visual-testing-state",
356
+ actionKey: "ai-screenshot-comparison",
357
+ qValue: 0.85, // Expected value of this approach (based on results)
358
+ metadata: {
359
+ // Strategy details (agent-specific)
360
+ comparisonStrategy: "ai-visual-diff",
361
+ accuracy: 0.98,
362
+ sensitivity: 0.95
363
+ }
364
+ })
365
+ ```
366
+
367
+ **3. Store Successful Patterns:**
368
+ ```typescript
369
+ // If you discovered a useful pattern, store it
370
+ mcp__agentic_qe__learning_store_pattern({
371
+ agentId: "qe-visual-tester",
372
+ pattern: "AI-powered visual diff with 95% threshold detects regressions with <2% false positives",
373
+ confidence: 0.95, // How confident you are (0-1)
374
+ domain: "visual-regression",
375
+ metadata: {
376
+ // Pattern context (agent-specific)
377
+ visualPatterns: ["layout-shift", "color-change", "element-missing"],
378
+ detectionAccuracy: 0.98
379
+ }
380
+ })
381
+ ```
382
+
383
+ ### Learning Query (Use at Task Start)
384
+
385
+ **Before starting your task**, query for past learnings:
386
+
387
+ ```typescript
388
+ // Query for successful experiences
389
+ const pastLearnings = await mcp__agentic_qe__learning_query({
390
+ agentId: "qe-visual-tester",
391
+ taskType: "visual-testing",
392
+ minReward: 0.8, // Only get successful experiences
393
+ queryType: "all",
394
+ limit: 10
236
395
  });
396
+
397
+ // Use the insights to optimize your current approach
398
+ if (pastLearnings.success && pastLearnings.data) {
399
+ const { experiences, qValues, patterns } = pastLearnings.data;
400
+
401
+ // Find best-performing strategy
402
+ const bestStrategy = qValues
403
+ .filter(qv => qv.state_key === "visual-testing-state")
404
+ .sort((a, b) => b.q_value - a.q_value)[0];
405
+
406
+ console.log(`Using learned best strategy: ${bestStrategy.action_key} (Q-value: ${bestStrategy.q_value})`);
407
+
408
+ // Check for relevant patterns
409
+ const relevantPatterns = patterns
410
+ .filter(p => p.domain === "visual-regression")
411
+ .sort((a, b) => b.confidence * b.success_rate - a.confidence * a.success_rate);
412
+
413
+ if (relevantPatterns.length > 0) {
414
+ console.log(`Applying pattern: ${relevantPatterns[0].pattern}`);
415
+ }
416
+ }
417
+ ```
418
+
419
+ ### Success Criteria for Learning
420
+
421
+ **Reward Assessment (0-1 scale):**
422
+ - **1.0**: Perfect execution (100% regressions detected, 0 false positives, <10s)
423
+ - **0.9**: Excellent (99%+ detected, <1% false positives, <20s)
424
+ - **0.7**: Good (95%+ detected, <5% false positives, <40s)
425
+ - **0.5**: Acceptable (90%+ detected, completed successfully)
426
+ - **<0.5**: Needs improvement (Missed regressions, many false positives)
427
+
428
+ **When to Call Learning Tools:**
429
+ - ✅ **ALWAYS** after completing main task
430
+ - ✅ **ALWAYS** after detecting significant findings
431
+ - ✅ **ALWAYS** after generating recommendations
432
+ - ✅ When discovering new effective strategies
433
+ - ✅ When achieving exceptional performance metrics
434
+
435
+ ## Learning Integration (Phase 6)
436
+
437
+ This agent integrates with the **Learning Engine** to continuously improve visual regression detection and reduce false positives.
438
+
439
+ ### Learning Protocol
440
+
441
+ ```typescript
442
+ import { LearningEngine } from '@/learning/LearningEngine';
443
+
444
+ // Initialize learning engine
445
+ const learningEngine = new LearningEngine({
446
+ agentId: 'qe-visual-tester',
447
+ taskType: 'visual-testing',
448
+ domain: 'visual-testing',
449
+ learningRate: 0.01,
450
+ epsilon: 0.1,
451
+ discountFactor: 0.95
452
+ });
453
+
454
+ await learningEngine.initialize();
455
+
456
+ // Record visual testing episode
457
+ await learningEngine.recordEpisode({
458
+ state: {
459
+ page: 'dashboard',
460
+ browser: 'chromium',
461
+ viewport: 'desktop',
462
+ baselineVersion: 'v2.0.0'
463
+ },
464
+ action: {
465
+ comparisonAlgorithm: 'ai-visual-diff',
466
+ threshold: 0.95,
467
+ ignoreRegions: ['timestamp', 'user-avatar']
468
+ },
469
+ reward: visualRegressionConfirmed ? 1.0 : (falsePositive ? -0.5 : 0.5),
470
+ nextState: {
471
+ regressionsDetected: 2,
472
+ falsePositives: 0,
473
+ missedRegressions: 0
474
+ }
475
+ });
476
+
477
+ // Learn from visual testing outcomes
478
+ await learningEngine.learn();
479
+
480
+ // Get learned visual comparison settings
481
+ const prediction = await learningEngine.predict({
482
+ page: 'dashboard',
483
+ browser: 'chromium',
484
+ viewport: 'desktop'
485
+ });
486
+ ```
487
+
488
+ ### Reward Function
489
+
490
+ ```typescript
491
+ function calculateVisualTestingReward(outcome: VisualTestOutcome): number {
492
+ let reward = 0;
493
+
494
+ // Reward for detecting actual regressions
495
+ reward += outcome.truePositives * 1.0;
496
+
497
+ // Penalty for false positives (wasted effort)
498
+ reward -= outcome.falsePositives * 0.5;
499
+
500
+ // Large penalty for missing regressions (false negatives)
501
+ reward -= outcome.falseNegatives * 2.0;
502
+
503
+ // Reward for correct negative (no regression correctly identified)
504
+ reward += outcome.trueNegatives * 0.2;
505
+
506
+ // Bonus for high accuracy
507
+ const accuracy = (outcome.truePositives + outcome.trueNegatives) /
508
+ (outcome.truePositives + outcome.trueNegatives +
509
+ outcome.falsePositives + outcome.falseNegatives);
510
+ if (accuracy > 0.95) {
511
+ reward += 0.5;
512
+ }
513
+
514
+ return reward;
515
+ }
516
+ ```
517
+
518
+ ### Learning Metrics
519
+
520
+ Track learning progress:
521
+ - **Detection Accuracy**: Percentage of correctly identified regressions
522
+ - **False Positive Rate**: Incorrectly flagged differences
523
+ - **False Negative Rate**: Missed visual regressions
524
+ - **Algorithm Selection**: Optimal comparison algorithm for each page type
525
+ - **Threshold Optimization**: Learned thresholds per page/browser combination
526
+
527
+ ```bash
528
+ # View learning metrics
529
+ aqe learn status --agent qe-visual-tester
530
+
531
+ # Export learning history
532
+ aqe learn export --agent qe-visual-tester --format json
533
+
534
+ # Analyze detection accuracy
535
+ aqe learn analyze --agent qe-visual-tester --metric accuracy
237
536
  ```
238
537
 
239
538
  ### Agent Collaboration
@@ -1,9 +1,5 @@
1
1
  ---
2
2
  name: qe-code-reviewer
3
- role: specialized-subagent
4
- parent: qe-test-generator
5
- specialization: quality-validation
6
- phase: review
7
3
  description: "Enforce quality standards, linting, complexity, and security"
8
4
  ---
9
5
 
@@ -1,22 +1,6 @@
1
1
  ---
2
2
  name: qe-data-generator
3
- role: specialized-subagent
4
- parent_agent: qe-test-data-architect
5
- phase: GENERATION
6
- color: green
7
- priority: medium
8
3
  description: "Generates realistic test data for various scenarios"
9
- capabilities:
10
- - data-generation
11
- - faker-integration
12
- - constraint-satisfaction
13
- - edge-case-generation
14
- coordination:
15
- protocol: aqe-hooks
16
- parent_delegation: true
17
- metadata:
18
- version: "1.0.0"
19
- parent_agents: ["qe-test-data-architect"]
20
4
  ---
21
5
 
22
6
  # Data Generator Subagent
@@ -1,23 +1,6 @@
1
1
  ---
2
2
  name: qe-integration-tester
3
- role: specialized-subagent
4
- parent_agent: qe-test-executor
5
- phase: INTEGRATION
6
- color: cyan
7
- priority: high
8
3
  description: "Specialized subagent for integration testing - validates component interactions and system integration"
9
- capabilities:
10
- - integration-testing
11
- - api-testing
12
- - database-testing
13
- - service-integration
14
- coordination:
15
- protocol: aqe-hooks
16
- parent_delegation: true
17
- metadata:
18
- version: "1.0.0"
19
- test_type: "integration"
20
- parent_agents: ["qe-test-executor", "qe-api-contract-validator"]
21
4
  ---
22
5
 
23
6
  # Integration Tester Subagent
@@ -1,22 +1,6 @@
1
1
  ---
2
2
  name: qe-performance-validator
3
- role: specialized-subagent
4
- parent_agent: qe-performance-tester
5
- phase: VALIDATION
6
- color: orange
7
- priority: high
8
3
  description: "Validates performance metrics against SLAs and benchmarks"
9
- capabilities:
10
- - performance-validation
11
- - sla-checking
12
- - benchmark-comparison
13
- - threshold-enforcement
14
- coordination:
15
- protocol: aqe-hooks
16
- parent_delegation: true
17
- metadata:
18
- version: "1.0.0"
19
- parent_agents: ["qe-performance-tester"]
20
4
  ---
21
5
 
22
6
  # Performance Validator Subagent
@@ -1,22 +1,6 @@
1
1
  ---
2
2
  name: qe-security-auditor
3
- role: specialized-subagent
4
- parent_agent: qe-security-scanner
5
- phase: AUDIT
6
- color: red
7
- priority: critical
8
3
  description: "Audits code for security vulnerabilities and compliance"
9
- capabilities:
10
- - security-audit
11
- - vulnerability-detection
12
- - compliance-checking
13
- - threat-modeling
14
- coordination:
15
- protocol: aqe-hooks
16
- parent_delegation: true
17
- metadata:
18
- version: "1.0.0"
19
- parent_agents: ["qe-security-scanner"]
20
4
  ---
21
5
 
22
6
  # Security Auditor Subagent
@@ -1,23 +1,6 @@
1
1
  ---
2
2
  name: qe-test-implementer
3
- role: specialized-subagent
4
- parent_agent: qe-test-generator
5
- phase: GREEN
6
- color: green
7
- priority: critical
8
3
  description: "Specialized subagent for making tests pass in TDD GREEN phase - implements minimal code to satisfy test requirements"
9
- capabilities:
10
- - minimal-implementation
11
- - test-driven-coding
12
- - incremental-development
13
- - test-validation
14
- coordination:
15
- protocol: aqe-hooks
16
- parent_delegation: true
17
- metadata:
18
- version: "1.0.0"
19
- tdd_phase: "GREEN"
20
- parent_agents: ["qe-test-generator", "qe-code-reviewer"]
21
4
  ---
22
5
 
23
6
  # Test Implementer Subagent - TDD GREEN Phase
@@ -1,23 +1,6 @@
1
1
  ---
2
2
  name: qe-test-refactorer
3
- role: specialized-subagent
4
- parent_agent: qe-test-generator
5
- phase: REFACTOR
6
- color: blue
7
- priority: high
8
3
  description: "Specialized subagent for refactoring code in TDD REFACTOR phase - improves code quality while maintaining passing tests"
9
- capabilities:
10
- - code-refactoring
11
- - quality-improvement
12
- - design-patterns
13
- - continuous-testing
14
- coordination:
15
- protocol: aqe-hooks
16
- parent_delegation: true
17
- metadata:
18
- version: "1.0.0"
19
- tdd_phase: "REFACTOR"
20
- parent_agents: ["qe-test-generator", "qe-code-reviewer"]
21
4
  ---
22
5
 
23
6
  # Test Refactorer Subagent - TDD REFACTOR Phase
@@ -1,25 +1,6 @@
1
1
  ---
2
2
  name: qe-test-writer
3
- role: specialized-subagent
4
- parent_agent: qe-test-generator
5
- phase: RED
6
- color: red
7
- priority: critical
8
3
  description: "Specialized subagent for writing failing tests in TDD RED phase - generates comprehensive test cases that define expected behavior before implementation"
9
- capabilities:
10
- - failing-test-generation
11
- - behavior-specification
12
- - test-case-design
13
- - assertion-definition
14
- - boundary-analysis
15
- coordination:
16
- protocol: aqe-hooks
17
- parent_delegation: true
18
- metadata:
19
- version: "1.0.0"
20
- tdd_phase: "RED"
21
- frameworks: ["jest", "mocha", "vitest", "playwright"]
22
- parent_agents: ["qe-test-generator", "qe-quality-gate"]
23
4
  ---
24
5
 
25
6
  # Test Writer Subagent - TDD RED Phase