agentic-qe 1.1.0 → 1.3.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 (567) hide show
  1. package/.claude/agents/qe-coverage-analyzer.md +8 -0
  2. package/.claude/agents/qe-flaky-test-hunter.md +9 -1
  3. package/.claude/agents/qe-test-generator.md +7 -0
  4. package/.claude/agents/reasoning/agent.md +816 -0
  5. package/.claude/agents/reasoning/goal-planner.md +73 -0
  6. package/.claude/settings.json +64 -25
  7. package/.claude/skills/README.md +124 -0
  8. package/.claude/skills/accessibility-testing/SKILL.md +777 -0
  9. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  10. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  11. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  12. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  13. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  14. package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
  15. package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
  16. package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
  17. package/.claude/skills/chaos-engineering-resilience/SKILL.md +109 -0
  18. package/.claude/skills/code-review-quality/SKILL.md +683 -0
  19. package/.claude/skills/compatibility-testing/SKILL.md +101 -0
  20. package/.claude/skills/compliance-testing/SKILL.md +162 -0
  21. package/.claude/skills/consultancy-practices/SKILL.md +540 -0
  22. package/.claude/skills/context-driven-testing/SKILL.md +466 -0
  23. package/.claude/skills/contract-testing/SKILL.md +193 -0
  24. package/.claude/skills/database-testing/SKILL.md +243 -0
  25. package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
  26. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  27. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  28. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  29. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  30. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  31. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  32. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  33. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  34. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  35. package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
  36. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  37. package/.claude/skills/localization-testing/SKILL.md +115 -0
  38. package/.claude/skills/mobile-testing/SKILL.md +548 -0
  39. package/.claude/skills/mutation-testing/SKILL.md +129 -0
  40. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  41. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  42. package/.claude/skills/performance-testing/SKILL.md +662 -0
  43. package/.claude/skills/quality-metrics/SKILL.md +592 -0
  44. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  45. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  46. package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
  47. package/.claude/skills/regression-testing/SKILL.md +1045 -0
  48. package/.claude/skills/risk-based-testing/SKILL.md +721 -0
  49. package/.claude/skills/security-testing/SKILL.md +651 -0
  50. package/.claude/skills/shift-left-testing/SKILL.md +535 -0
  51. package/.claude/skills/shift-right-testing/SKILL.md +591 -0
  52. package/.claude/skills/skill-builder/SKILL.md +910 -0
  53. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  54. package/.claude/skills/stream-chain/SKILL.md +563 -0
  55. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  56. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  57. package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
  58. package/.claude/skills/technical-writing/SKILL.md +235 -0
  59. package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
  60. package/.claude/skills/test-data-management/SKILL.md +1067 -0
  61. package/.claude/skills/test-design-techniques/SKILL.md +160 -0
  62. package/.claude/skills/test-environment-management/SKILL.md +204 -0
  63. package/.claude/skills/test-reporting-analytics/SKILL.md +143 -0
  64. package/.claude/skills/verification-quality/SKILL.md +649 -0
  65. package/.claude/skills/visual-testing-advanced/SKILL.md +148 -0
  66. package/.claude/skills/xp-practices/SKILL.md +671 -0
  67. package/.claude/statusline-command.sh +176 -0
  68. package/CHANGELOG.md +623 -6
  69. package/README.md +101 -5
  70. package/config/improvement-loop.config.ts +323 -0
  71. package/config/neural-agent.config.ts +197 -0
  72. package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
  73. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  74. package/dist/adapters/MemoryStoreAdapter.js +16 -16
  75. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  76. package/dist/agents/BaseAgent.d.ts +69 -0
  77. package/dist/agents/BaseAgent.d.ts.map +1 -1
  78. package/dist/agents/BaseAgent.js +387 -5
  79. package/dist/agents/BaseAgent.js.map +1 -1
  80. package/dist/agents/CoverageAnalyzerAgent.d.ts +13 -2
  81. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  82. package/dist/agents/CoverageAnalyzerAgent.js +112 -12
  83. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  84. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
  85. package/dist/agents/DeploymentReadinessAgent.js +13 -13
  86. package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
  87. package/dist/agents/FlakyTestHunterAgent.d.ts +28 -0
  88. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  89. package/dist/agents/FlakyTestHunterAgent.js +160 -4
  90. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  91. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  92. package/dist/agents/FleetCommanderAgent.js +4 -3
  93. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  94. package/dist/agents/LearningAgent.d.ts +14 -5
  95. package/dist/agents/LearningAgent.d.ts.map +1 -1
  96. package/dist/agents/LearningAgent.js +36 -16
  97. package/dist/agents/LearningAgent.js.map +1 -1
  98. package/dist/agents/NeuralAgentExtension.d.ts +117 -0
  99. package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
  100. package/dist/agents/NeuralAgentExtension.js +288 -0
  101. package/dist/agents/NeuralAgentExtension.js.map +1 -0
  102. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
  103. package/dist/agents/PerformanceTesterAgent.js +11 -9
  104. package/dist/agents/PerformanceTesterAgent.js.map +1 -1
  105. package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
  106. package/dist/agents/ProductionIntelligenceAgent.js +14 -13
  107. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
  108. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  109. package/dist/agents/QualityAnalyzerAgent.js +39 -38
  110. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  111. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  112. package/dist/agents/QualityGateAgent.js +7 -6
  113. package/dist/agents/QualityGateAgent.js.map +1 -1
  114. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
  115. package/dist/agents/RegressionRiskAnalyzerAgent.js +22 -21
  116. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  117. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
  118. package/dist/agents/RequirementsValidatorAgent.js +1 -1
  119. package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
  120. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
  121. package/dist/agents/SecurityScannerAgent.js +8 -7
  122. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  123. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  124. package/dist/agents/TestDataArchitectAgent.js +12 -11
  125. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  126. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  127. package/dist/agents/TestExecutorAgent.js +18 -19
  128. package/dist/agents/TestExecutorAgent.js.map +1 -1
  129. package/dist/agents/TestGeneratorAgent.d.ts +15 -4
  130. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  131. package/dist/agents/TestGeneratorAgent.js +172 -49
  132. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  133. package/dist/agents/index.d.ts.map +1 -1
  134. package/dist/agents/index.js +2 -1
  135. package/dist/agents/index.js.map +1 -1
  136. package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
  137. package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
  138. package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
  139. package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
  140. package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
  141. package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
  142. package/dist/agents/mixins/QUICCapableMixin.js +346 -0
  143. package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
  144. package/dist/cli/commands/agent/benchmark.d.ts.map +1 -1
  145. package/dist/cli/commands/agent/benchmark.js +2 -1
  146. package/dist/cli/commands/agent/benchmark.js.map +1 -1
  147. package/dist/cli/commands/agent/index.d.ts +5 -0
  148. package/dist/cli/commands/agent/index.d.ts.map +1 -1
  149. package/dist/cli/commands/agent/index.js +11 -6
  150. package/dist/cli/commands/agent/index.js.map +1 -1
  151. package/dist/cli/commands/agent/kill.d.ts +13 -0
  152. package/dist/cli/commands/agent/kill.d.ts.map +1 -0
  153. package/dist/cli/commands/agent/kill.js +65 -0
  154. package/dist/cli/commands/agent/kill.js.map +1 -0
  155. package/dist/cli/commands/agent/list.d.ts +19 -0
  156. package/dist/cli/commands/agent/list.d.ts.map +1 -0
  157. package/dist/cli/commands/agent/list.js +92 -0
  158. package/dist/cli/commands/agent/list.js.map +1 -0
  159. package/dist/cli/commands/agent/logs.d.ts +14 -0
  160. package/dist/cli/commands/agent/logs.d.ts.map +1 -0
  161. package/dist/cli/commands/agent/logs.js +77 -0
  162. package/dist/cli/commands/agent/logs.js.map +1 -0
  163. package/dist/cli/commands/agent/metrics.d.ts +21 -0
  164. package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
  165. package/dist/cli/commands/agent/metrics.js +87 -0
  166. package/dist/cli/commands/agent/metrics.js.map +1 -0
  167. package/dist/cli/commands/agent/spawn.d.ts +28 -0
  168. package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
  169. package/dist/cli/commands/agent/spawn.js +84 -0
  170. package/dist/cli/commands/agent/spawn.js.map +1 -0
  171. package/dist/cli/commands/analyze.d.ts.map +1 -1
  172. package/dist/cli/commands/analyze.js +2 -1
  173. package/dist/cli/commands/analyze.js.map +1 -1
  174. package/dist/cli/commands/config/list.d.ts.map +1 -1
  175. package/dist/cli/commands/config/list.js +2 -1
  176. package/dist/cli/commands/config/list.js.map +1 -1
  177. package/dist/cli/commands/config/set.d.ts +7 -0
  178. package/dist/cli/commands/config/set.d.ts.map +1 -1
  179. package/dist/cli/commands/config/set.js +35 -4
  180. package/dist/cli/commands/config/set.js.map +1 -1
  181. package/dist/cli/commands/fleet/logs.d.ts.map +1 -1
  182. package/dist/cli/commands/fleet/logs.js +2 -1
  183. package/dist/cli/commands/fleet/logs.js.map +1 -1
  184. package/dist/cli/commands/fleet/metrics.d.ts.map +1 -1
  185. package/dist/cli/commands/fleet/metrics.js +2 -1
  186. package/dist/cli/commands/fleet/metrics.js.map +1 -1
  187. package/dist/cli/commands/fleet/monitor.d.ts.map +1 -1
  188. package/dist/cli/commands/fleet/monitor.js +7 -5
  189. package/dist/cli/commands/fleet/monitor.js.map +1 -1
  190. package/dist/cli/commands/fleet.d.ts.map +1 -1
  191. package/dist/cli/commands/fleet.js +2 -1
  192. package/dist/cli/commands/fleet.js.map +1 -1
  193. package/dist/cli/commands/generate.d.ts.map +1 -1
  194. package/dist/cli/commands/generate.js +2 -1
  195. package/dist/cli/commands/generate.js.map +1 -1
  196. package/dist/cli/commands/improve/index.d.ts.map +1 -1
  197. package/dist/cli/commands/improve/index.js +12 -11
  198. package/dist/cli/commands/improve/index.js.map +1 -1
  199. package/dist/cli/commands/init.d.ts +24 -0
  200. package/dist/cli/commands/init.d.ts.map +1 -1
  201. package/dist/cli/commands/init.js +503 -11
  202. package/dist/cli/commands/init.js.map +1 -1
  203. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  204. package/dist/cli/commands/learn/index.js +13 -12
  205. package/dist/cli/commands/learn/index.js.map +1 -1
  206. package/dist/cli/commands/monitor/alerts.d.ts.map +1 -1
  207. package/dist/cli/commands/monitor/alerts.js +2 -1
  208. package/dist/cli/commands/monitor/alerts.js.map +1 -1
  209. package/dist/cli/commands/patterns/index.d.ts.map +1 -1
  210. package/dist/cli/commands/patterns/index.js +20 -19
  211. package/dist/cli/commands/patterns/index.js.map +1 -1
  212. package/dist/cli/commands/quality/decision.d.ts.map +1 -1
  213. package/dist/cli/commands/quality/decision.js +9 -7
  214. package/dist/cli/commands/quality/decision.js.map +1 -1
  215. package/dist/cli/commands/quality/gate.d.ts.map +1 -1
  216. package/dist/cli/commands/quality/gate.js +10 -8
  217. package/dist/cli/commands/quality/gate.js.map +1 -1
  218. package/dist/cli/commands/quality/policy.d.ts.map +1 -1
  219. package/dist/cli/commands/quality/policy.js +10 -8
  220. package/dist/cli/commands/quality/policy.js.map +1 -1
  221. package/dist/cli/commands/quality/risk.d.ts.map +1 -1
  222. package/dist/cli/commands/quality/risk.js +5 -3
  223. package/dist/cli/commands/quality/risk.js.map +1 -1
  224. package/dist/cli/commands/quality/validate.d.ts.map +1 -1
  225. package/dist/cli/commands/quality/validate.js +10 -8
  226. package/dist/cli/commands/quality/validate.js.map +1 -1
  227. package/dist/cli/commands/quantization.d.ts +6 -0
  228. package/dist/cli/commands/quantization.d.ts.map +1 -0
  229. package/dist/cli/commands/quantization.js +188 -0
  230. package/dist/cli/commands/quantization.js.map +1 -0
  231. package/dist/cli/commands/routing/index.d.ts +0 -6
  232. package/dist/cli/commands/routing/index.d.ts.map +1 -1
  233. package/dist/cli/commands/routing/index.js +17 -16
  234. package/dist/cli/commands/routing/index.js.map +1 -1
  235. package/dist/cli/commands/run.d.ts.map +1 -1
  236. package/dist/cli/commands/run.js +2 -1
  237. package/dist/cli/commands/run.js.map +1 -1
  238. package/dist/cli/commands/skills/index.d.ts +51 -0
  239. package/dist/cli/commands/skills/index.d.ts.map +1 -0
  240. package/dist/cli/commands/skills/index.js +365 -0
  241. package/dist/cli/commands/skills/index.js.map +1 -0
  242. package/dist/cli/commands/test/debug.d.ts.map +1 -1
  243. package/dist/cli/commands/test/debug.js +2 -1
  244. package/dist/cli/commands/test/debug.js.map +1 -1
  245. package/dist/cli/commands/test/mutate.d.ts.map +1 -1
  246. package/dist/cli/commands/test/mutate.js +2 -1
  247. package/dist/cli/commands/test/mutate.js.map +1 -1
  248. package/dist/cli/commands/test/parallel.d.ts.map +1 -1
  249. package/dist/cli/commands/test/parallel.js +6 -4
  250. package/dist/cli/commands/test/parallel.js.map +1 -1
  251. package/dist/cli/commands/test/profile.d.ts.map +1 -1
  252. package/dist/cli/commands/test/profile.js +3 -2
  253. package/dist/cli/commands/test/profile.js.map +1 -1
  254. package/dist/cli/commands/test/queue.d.ts.map +1 -1
  255. package/dist/cli/commands/test/queue.js +2 -1
  256. package/dist/cli/commands/test/queue.js.map +1 -1
  257. package/dist/cli/commands/test/retry.d.ts.map +1 -1
  258. package/dist/cli/commands/test/retry.js +6 -4
  259. package/dist/cli/commands/test/retry.js.map +1 -1
  260. package/dist/cli/commands/test/trace.d.ts.map +1 -1
  261. package/dist/cli/commands/test/trace.js +2 -1
  262. package/dist/cli/commands/test/trace.js.map +1 -1
  263. package/dist/cli/commands/test/watch.d.ts.map +1 -1
  264. package/dist/cli/commands/test/watch.js +3 -2
  265. package/dist/cli/commands/test/watch.js.map +1 -1
  266. package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
  267. package/dist/cli/commands/workflow/cancel.js +2 -1
  268. package/dist/cli/commands/workflow/cancel.js.map +1 -1
  269. package/dist/cli/index-working.js +9 -8
  270. package/dist/cli/index-working.js.map +1 -1
  271. package/dist/cli/index.js +97 -1
  272. package/dist/cli/index.js.map +1 -1
  273. package/dist/core/EventBus.d.ts +38 -0
  274. package/dist/core/EventBus.d.ts.map +1 -1
  275. package/dist/core/EventBus.js +176 -31
  276. package/dist/core/EventBus.js.map +1 -1
  277. package/dist/core/FleetManager.d.ts +35 -1
  278. package/dist/core/FleetManager.d.ts.map +1 -1
  279. package/dist/core/FleetManager.js +121 -45
  280. package/dist/core/FleetManager.js.map +1 -1
  281. package/dist/core/MemoryManager.d.ts +19 -1
  282. package/dist/core/MemoryManager.d.ts.map +1 -1
  283. package/dist/core/MemoryManager.js +25 -1
  284. package/dist/core/MemoryManager.js.map +1 -1
  285. package/dist/core/coordination/OODACoordination.d.ts.map +1 -1
  286. package/dist/core/coordination/OODACoordination.js +2 -1
  287. package/dist/core/coordination/OODACoordination.js.map +1 -1
  288. package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
  289. package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
  290. package/dist/core/embeddings/EmbeddingCache.js +239 -0
  291. package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
  292. package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
  293. package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  294. package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
  295. package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
  296. package/dist/core/embeddings/index.d.ts +15 -0
  297. package/dist/core/embeddings/index.d.ts.map +1 -0
  298. package/dist/core/embeddings/index.js +22 -0
  299. package/dist/core/embeddings/index.js.map +1 -0
  300. package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
  301. package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
  302. package/dist/core/memory/AgentDBIntegration.js +75 -0
  303. package/dist/core/memory/AgentDBIntegration.js.map +1 -0
  304. package/dist/core/memory/AgentDBManager.d.ts +200 -0
  305. package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
  306. package/dist/core/memory/AgentDBManager.js +246 -0
  307. package/dist/core/memory/AgentDBManager.js.map +1 -0
  308. package/dist/core/memory/AgentDBService.d.ts +160 -0
  309. package/dist/core/memory/AgentDBService.d.ts.map +1 -0
  310. package/dist/core/memory/AgentDBService.js +450 -0
  311. package/dist/core/memory/AgentDBService.js.map +1 -0
  312. package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
  313. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
  314. package/dist/core/memory/RealAgentDBAdapter.js +231 -0
  315. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
  316. package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
  317. package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
  318. package/dist/core/memory/ReasoningBankAdapter.js +77 -0
  319. package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
  320. package/dist/core/memory/SwarmMemoryManager.d.ts +75 -3
  321. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  322. package/dist/core/memory/SwarmMemoryManager.js +240 -55
  323. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  324. package/dist/core/memory/index.d.ts +4 -0
  325. package/dist/core/memory/index.d.ts.map +1 -1
  326. package/dist/core/memory/index.js +9 -1
  327. package/dist/core/memory/index.js.map +1 -1
  328. package/dist/core/neural/NeuralTrainer.d.ts +137 -0
  329. package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
  330. package/dist/core/neural/NeuralTrainer.js +544 -0
  331. package/dist/core/neural/NeuralTrainer.js.map +1 -0
  332. package/dist/core/neural/index.d.ts +8 -0
  333. package/dist/core/neural/index.d.ts.map +1 -0
  334. package/dist/core/neural/index.js +24 -0
  335. package/dist/core/neural/index.js.map +1 -0
  336. package/dist/core/neural/types.d.ts +216 -0
  337. package/dist/core/neural/types.d.ts.map +1 -0
  338. package/dist/core/neural/types.js +8 -0
  339. package/dist/core/neural/types.js.map +1 -0
  340. package/dist/core/quantization/QuantizationManager.d.ts +83 -0
  341. package/dist/core/quantization/QuantizationManager.d.ts.map +1 -0
  342. package/dist/core/quantization/QuantizationManager.js +264 -0
  343. package/dist/core/quantization/QuantizationManager.js.map +1 -0
  344. package/dist/core/quantization/index.d.ts +5 -0
  345. package/dist/core/quantization/index.d.ts.map +1 -0
  346. package/dist/core/quantization/index.js +9 -0
  347. package/dist/core/quantization/index.js.map +1 -0
  348. package/dist/core/security/CertificateValidator.d.ts +130 -0
  349. package/dist/core/security/CertificateValidator.d.ts.map +1 -0
  350. package/dist/core/security/CertificateValidator.js +376 -0
  351. package/dist/core/security/CertificateValidator.js.map +1 -0
  352. package/dist/core/transport/QUICTransport.d.ts +62 -0
  353. package/dist/core/transport/QUICTransport.d.ts.map +1 -0
  354. package/dist/core/transport/QUICTransport.js +381 -0
  355. package/dist/core/transport/QUICTransport.js.map +1 -0
  356. package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
  357. package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
  358. package/dist/core/transport/SecureQUICTransport.js +253 -0
  359. package/dist/core/transport/SecureQUICTransport.js.map +1 -0
  360. package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
  361. package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
  362. package/dist/learning/AdvancedFeatureExtractor.js +423 -0
  363. package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
  364. package/dist/learning/FlakyPredictionModel.d.ts +11 -1
  365. package/dist/learning/FlakyPredictionModel.d.ts.map +1 -1
  366. package/dist/learning/FlakyPredictionModel.js +82 -35
  367. package/dist/learning/FlakyPredictionModel.js.map +1 -1
  368. package/dist/learning/FlakyTestDetector.d.ts +9 -0
  369. package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
  370. package/dist/learning/FlakyTestDetector.js +28 -6
  371. package/dist/learning/FlakyTestDetector.js.map +1 -1
  372. package/dist/learning/ImprovementLoop.d.ts +16 -2
  373. package/dist/learning/ImprovementLoop.d.ts.map +1 -1
  374. package/dist/learning/ImprovementLoop.js +67 -8
  375. package/dist/learning/ImprovementLoop.js.map +1 -1
  376. package/dist/learning/ImprovementWorker.d.ts +83 -0
  377. package/dist/learning/ImprovementWorker.d.ts.map +1 -0
  378. package/dist/learning/ImprovementWorker.js +164 -0
  379. package/dist/learning/ImprovementWorker.js.map +1 -0
  380. package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
  381. package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
  382. package/dist/learning/NeuralPatternMatcher.js +702 -0
  383. package/dist/learning/NeuralPatternMatcher.js.map +1 -0
  384. package/dist/learning/NeuralTrainer.d.ts +209 -0
  385. package/dist/learning/NeuralTrainer.d.ts.map +1 -0
  386. package/dist/learning/NeuralTrainer.js +478 -0
  387. package/dist/learning/NeuralTrainer.js.map +1 -0
  388. package/dist/learning/index.d.ts +13 -7
  389. package/dist/learning/index.d.ts.map +1 -1
  390. package/dist/learning/index.js +27 -11
  391. package/dist/learning/index.js.map +1 -1
  392. package/dist/learning/types.d.ts +1 -0
  393. package/dist/learning/types.d.ts.map +1 -1
  394. package/dist/learning/types.js +16 -0
  395. package/dist/learning/types.js.map +1 -1
  396. package/dist/mcp/MCPToolRegistry.d.ts +34 -0
  397. package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
  398. package/dist/mcp/MCPToolRegistry.js +48 -0
  399. package/dist/mcp/MCPToolRegistry.js.map +1 -0
  400. package/dist/mcp/handlers/advanced/mutation-test-execute.d.ts +3 -3
  401. package/dist/mcp/handlers/advanced/mutation-test-execute.d.ts.map +1 -1
  402. package/dist/mcp/handlers/advanced/mutation-test-execute.js +5 -4
  403. package/dist/mcp/handlers/advanced/mutation-test-execute.js.map +1 -1
  404. package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -1
  405. package/dist/mcp/handlers/agent-spawn.js +2 -1
  406. package/dist/mcp/handlers/agent-spawn.js.map +1 -1
  407. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts.map +1 -1
  408. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js +9 -8
  409. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js.map +1 -1
  410. package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts.map +1 -1
  411. package/dist/mcp/handlers/analysis/coverageGapsDetect.js +6 -5
  412. package/dist/mcp/handlers/analysis/coverageGapsDetect.js.map +1 -1
  413. package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.d.ts.map +1 -1
  414. package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.js +5 -4
  415. package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.js.map +1 -1
  416. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +1 -1
  417. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +8 -7
  418. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +1 -1
  419. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts.map +1 -1
  420. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js +7 -6
  421. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js.map +1 -1
  422. package/dist/mcp/handlers/analysis/securityScanComprehensive.d.ts.map +1 -1
  423. package/dist/mcp/handlers/analysis/securityScanComprehensive.js +18 -21
  424. package/dist/mcp/handlers/analysis/securityScanComprehensive.js.map +1 -1
  425. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  426. package/dist/mcp/handlers/base-handler.js +2 -9
  427. package/dist/mcp/handlers/base-handler.js.map +1 -1
  428. package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
  429. package/dist/mcp/handlers/chaos/chaos-inject-failure.js +4 -3
  430. package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
  431. package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
  432. package/dist/mcp/handlers/chaos/chaos-inject-latency.js +6 -5
  433. package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
  434. package/dist/mcp/handlers/coordination/event-emit.d.ts.map +1 -1
  435. package/dist/mcp/handlers/coordination/event-emit.js +2 -1
  436. package/dist/mcp/handlers/coordination/event-emit.js.map +1 -1
  437. package/dist/mcp/handlers/coordination/event-subscribe.d.ts.map +1 -1
  438. package/dist/mcp/handlers/coordination/event-subscribe.js +2 -1
  439. package/dist/mcp/handlers/coordination/event-subscribe.js.map +1 -1
  440. package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts.map +1 -1
  441. package/dist/mcp/handlers/coordination/workflow-checkpoint.js +2 -1
  442. package/dist/mcp/handlers/coordination/workflow-checkpoint.js.map +1 -1
  443. package/dist/mcp/handlers/coordination/workflow-create.d.ts.map +1 -1
  444. package/dist/mcp/handlers/coordination/workflow-create.js +2 -1
  445. package/dist/mcp/handlers/coordination/workflow-create.js.map +1 -1
  446. package/dist/mcp/handlers/coordination/workflow-execute.d.ts.map +1 -1
  447. package/dist/mcp/handlers/coordination/workflow-execute.js +2 -1
  448. package/dist/mcp/handlers/coordination/workflow-execute.js.map +1 -1
  449. package/dist/mcp/handlers/coordination/workflow-resume.d.ts.map +1 -1
  450. package/dist/mcp/handlers/coordination/workflow-resume.js +2 -1
  451. package/dist/mcp/handlers/coordination/workflow-resume.js.map +1 -1
  452. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
  453. package/dist/mcp/handlers/fleet-init.js +2 -1
  454. package/dist/mcp/handlers/fleet-init.js.map +1 -1
  455. package/dist/mcp/handlers/fleet-status.d.ts.map +1 -1
  456. package/dist/mcp/handlers/fleet-status.js +31 -30
  457. package/dist/mcp/handlers/fleet-status.js.map +1 -1
  458. package/dist/mcp/handlers/integration/dependency-check.d.ts.map +1 -1
  459. package/dist/mcp/handlers/integration/dependency-check.js +3 -2
  460. package/dist/mcp/handlers/integration/dependency-check.js.map +1 -1
  461. package/dist/mcp/handlers/integration/integration-test-orchestrate.d.ts.map +1 -1
  462. package/dist/mcp/handlers/integration/integration-test-orchestrate.js +2 -1
  463. package/dist/mcp/handlers/integration/integration-test-orchestrate.js.map +1 -1
  464. package/dist/mcp/handlers/optimize-tests.d.ts.map +1 -1
  465. package/dist/mcp/handlers/optimize-tests.js +33 -32
  466. package/dist/mcp/handlers/optimize-tests.js.map +1 -1
  467. package/dist/mcp/handlers/predict-defects.d.ts.map +1 -1
  468. package/dist/mcp/handlers/predict-defects.js +46 -45
  469. package/dist/mcp/handlers/predict-defects.js.map +1 -1
  470. package/dist/mcp/handlers/prediction/deployment-readiness-check.d.ts.map +1 -1
  471. package/dist/mcp/handlers/prediction/deployment-readiness-check.js +24 -23
  472. package/dist/mcp/handlers/prediction/deployment-readiness-check.js.map +1 -1
  473. package/dist/mcp/handlers/prediction/predict-defects-ai.d.ts.map +1 -1
  474. package/dist/mcp/handlers/prediction/predict-defects-ai.js +10 -9
  475. package/dist/mcp/handlers/prediction/predict-defects-ai.js.map +1 -1
  476. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +1 -1
  477. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +10 -9
  478. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +1 -1
  479. package/dist/mcp/handlers/prediction/visual-test-regression.d.ts.map +1 -1
  480. package/dist/mcp/handlers/prediction/visual-test-regression.js +7 -6
  481. package/dist/mcp/handlers/prediction/visual-test-regression.js.map +1 -1
  482. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -1
  483. package/dist/mcp/handlers/quality-analyze.js +53 -52
  484. package/dist/mcp/handlers/quality-analyze.js.map +1 -1
  485. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  486. package/dist/mcp/handlers/task-orchestrate.js +19 -18
  487. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  488. package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
  489. package/dist/mcp/handlers/test/test-execute-parallel.js +7 -6
  490. package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
  491. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  492. package/dist/mcp/handlers/test/test-generate-enhanced.js +2 -1
  493. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  494. package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts.map +1 -1
  495. package/dist/mcp/handlers/test/test-optimize-sublinear.js +3 -2
  496. package/dist/mcp/handlers/test/test-optimize-sublinear.js.map +1 -1
  497. package/dist/mcp/handlers/test-execute.d.ts.map +1 -1
  498. package/dist/mcp/handlers/test-execute.js +11 -10
  499. package/dist/mcp/handlers/test-execute.js.map +1 -1
  500. package/dist/mcp/handlers/test-generate.d.ts.map +1 -1
  501. package/dist/mcp/handlers/test-generate.js +4 -3
  502. package/dist/mcp/handlers/test-generate.js.map +1 -1
  503. package/dist/mcp/server.d.ts +4 -4
  504. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  505. package/dist/mcp/services/AgentRegistry.js +9 -2
  506. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  507. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -1
  508. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +10 -9
  509. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -1
  510. package/dist/mcp/streaming/StreamingMCPTool.d.ts.map +1 -1
  511. package/dist/mcp/streaming/StreamingMCPTool.js +2 -1
  512. package/dist/mcp/streaming/StreamingMCPTool.js.map +1 -1
  513. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -1
  514. package/dist/mcp/streaming/TestExecuteStreamHandler.js +6 -5
  515. package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -1
  516. package/dist/reasoning/TestTemplateCreator.d.ts +10 -2
  517. package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -1
  518. package/dist/reasoning/TestTemplateCreator.js +81 -21
  519. package/dist/reasoning/TestTemplateCreator.js.map +1 -1
  520. package/dist/transport/QUICTransport.d.ts +340 -0
  521. package/dist/transport/QUICTransport.d.ts.map +1 -0
  522. package/dist/transport/QUICTransport.js +814 -0
  523. package/dist/transport/QUICTransport.js.map +1 -0
  524. package/dist/transport/UDPTransport.d.ts +348 -0
  525. package/dist/transport/UDPTransport.d.ts.map +1 -0
  526. package/dist/transport/UDPTransport.js +820 -0
  527. package/dist/transport/UDPTransport.js.map +1 -0
  528. package/dist/types/errors.d.ts +1 -1
  529. package/dist/types/index.d.ts +37 -0
  530. package/dist/types/index.d.ts.map +1 -1
  531. package/dist/types/index.js +2 -0
  532. package/dist/types/index.js.map +1 -1
  533. package/dist/types/pattern.types.d.ts +39 -3
  534. package/dist/types/pattern.types.d.ts.map +1 -1
  535. package/dist/types/quic.d.ts +339 -0
  536. package/dist/types/quic.d.ts.map +1 -0
  537. package/dist/types/quic.js +48 -0
  538. package/dist/types/quic.js.map +1 -0
  539. package/dist/utils/Config.js +3 -3
  540. package/dist/utils/Config.js.map +1 -1
  541. package/dist/utils/Database.d.ts +14 -0
  542. package/dist/utils/Database.d.ts.map +1 -1
  543. package/dist/utils/Database.js +51 -4
  544. package/dist/utils/Database.js.map +1 -1
  545. package/dist/utils/Logger.d.ts.map +1 -1
  546. package/dist/utils/Logger.js +111 -26
  547. package/dist/utils/Logger.js.map +1 -1
  548. package/dist/utils/ProcessExit.d.ts +23 -0
  549. package/dist/utils/ProcessExit.d.ts.map +1 -0
  550. package/dist/utils/ProcessExit.js +40 -0
  551. package/dist/utils/ProcessExit.js.map +1 -0
  552. package/dist/utils/SecureRandom.d.ts +171 -0
  553. package/dist/utils/SecureRandom.d.ts.map +1 -0
  554. package/dist/utils/SecureRandom.js +229 -0
  555. package/dist/utils/SecureRandom.js.map +1 -0
  556. package/dist/utils/SecureUrlValidator.d.ts +167 -0
  557. package/dist/utils/SecureUrlValidator.d.ts.map +1 -0
  558. package/dist/utils/SecureUrlValidator.js +306 -0
  559. package/dist/utils/SecureUrlValidator.js.map +1 -0
  560. package/dist/utils/SecureValidation.d.ts +131 -0
  561. package/dist/utils/SecureValidation.d.ts.map +1 -0
  562. package/dist/utils/SecureValidation.js +265 -0
  563. package/dist/utils/SecureValidation.js.map +1 -0
  564. package/dist/utils/validation.d.ts.map +1 -1
  565. package/dist/utils/validation.js +5 -4
  566. package/dist/utils/validation.js.map +1 -1
  567. package/package.json +31 -8
@@ -0,0 +1,466 @@
1
+ ---
2
+ name: context-driven-testing
3
+ description: Apply context-driven testing principles where practices are chosen based on project context, not universal "best practices". Use when making testing decisions, questioning dogma, or adapting approaches to specific project needs.
4
+ version: 1.0.0
5
+ category: testing
6
+ tags: [context-driven, exploratory-testing, rapid-software-testing, test-strategy, risk-based, session-based]
7
+ difficulty: advanced
8
+ estimated_time: 45-60 minutes
9
+ author: user
10
+ ---
11
+
12
+ # Context-Driven Testing
13
+
14
+ ## Core Principle
15
+
16
+ **There are no "best practices" that work everywhere. There are only good practices in context.**
17
+
18
+ Context-driven testing means: skilled testers making informed decisions based on their specific project's goals, constraints, and risks.
19
+
20
+ ## The Seven Basic Principles (Context-Driven School)
21
+
22
+ 1. **The value of any practice depends on its context**
23
+ 2. **There are good practices in context, but no best practices**
24
+ 3. **People, working together, are the most important part of any project's context**
25
+ 4. **Projects unfold over time in ways that are often not predictable**
26
+ 5. **The product is a solution. If the problem isn't solved, the product doesn't work**
27
+ 6. **Good software testing is a challenging intellectual process**
28
+ 7. **Only through judgment and skill, exercised cooperatively throughout the project, are we able to do the right things at the right times to effectively test our products**
29
+
30
+ ## What This Means in Practice
31
+
32
+ ### Question Everything
33
+
34
+ **Someone says:** "We need 100% code coverage."
35
+ **You ask:** "Why? What risk does that address? What's the cost? What about production monitoring?"
36
+
37
+ **Someone says:** "Everyone does test automation first."
38
+ **You ask:** "Do they have our constraints? Our risks? Our team skills? What problem are we actually solving?"
39
+
40
+ ### Understand Your Mission
41
+
42
+ **Bad mission:** "Execute all test cases"
43
+ **Good mission:** "Find important problems fast enough to matter"
44
+
45
+ **Bad mission:** "Achieve 80% automation coverage"
46
+ **Good mission:** "Give stakeholders confidence to release while managing risk"
47
+
48
+ ### Testing is Investigation
49
+
50
+ You're not checking if the software matches a spec. You're investigating whether it solves the problem it's supposed to solve, and whether it creates new problems.
51
+
52
+ **Checking:** Did this API return status 200?
53
+ **Testing:** Does this API actually meet user needs? What happens under load? With bad data? When dependencies fail?
54
+
55
+ ## Rapid Software Testing (RST) Techniques
56
+
57
+ ### Exploratory Testing
58
+
59
+ **Session-based approach:**
60
+ 1. Charter: What are we investigating? (45-90 min session)
61
+ 2. Explore: Use the software, vary inputs, observe behavior
62
+ 3. Note: Document findings in real-time
63
+ 4. Debrief: What did we learn? What's next?
64
+
65
+ **Example charter:**
66
+ "Explore checkout flow to discover issues with payment processing, focusing on edge cases and error handling."
67
+
68
+ **Not:** "Click through checkout following this 47-step script."
69
+
70
+ ### Heuristics for Test Design
71
+
72
+ **SFDIPOT** - Quality criteria
73
+ - **S**tructure: Is it properly composed?
74
+ - **F**unction: Does it do what it's supposed to?
75
+ - **D**ata: Does it handle data correctly?
76
+ - **I**nterfaces: How does it interact with other components?
77
+ - **P**latform: Does it work in its environment?
78
+ - **O**perations: How well can it be used and managed?
79
+ - **T**ime: Does it handle timing issues?
80
+
81
+ **CRUSSPIC STMP** - Test techniques
82
+ - **C**reate, **R**ead, **U**pdate, **S**earch, **S**ort, **P**rint, **I**mport, **C**onfirm
83
+ - **S**tatus, **T**ourism, **M**odeling, **P**atterns
84
+
85
+ ### Oracles (How to Recognize Problems)
86
+
87
+ **Consistency oracles:**
88
+ - Consistent with product history
89
+ - Consistent with similar products
90
+ - Consistent with user expectations
91
+ - Consistent with documentation
92
+
93
+ **Example:**
94
+ The save button works in 5 screens but fails on the 6th. Inconsistency suggests a problem.
95
+
96
+ **Comparability oracle:**
97
+ Compare behavior across browsers, devices, user roles, data sets.
98
+
99
+ **Inference oracle:**
100
+ If X is true, we can infer Y should also be true.
101
+
102
+ ### Touring Heuristic
103
+
104
+ Explore the application like a tourist in different districts:
105
+
106
+ **Business District Tour:** Critical business functions
107
+ **Historical Tour:** Legacy features, old bugs
108
+ **Bad Neighborhood Tour:** Where problems cluster
109
+ **Tourist Tour:** What a new user sees first
110
+ **Museum Tour:** Help documentation and examples
111
+ **Intellectual Tour:** Complex features requiring thought
112
+
113
+ ## Context Analysis
114
+
115
+ Before choosing testing approach, analyze:
116
+
117
+ ### 1. Project Context
118
+ - What's the business goal?
119
+ - Who are the users and what do they care about?
120
+ - What happens if we fail?
121
+ - What's the competitive landscape?
122
+
123
+ ### 2. Constraints
124
+ - Timeline (ship next week vs. next quarter)
125
+ - Budget (startup vs. enterprise)
126
+ - Skills (junior team vs. experts)
127
+ - Legacy (greenfield vs. 10-year codebase)
128
+
129
+ ### 3. Risk Profile
130
+ - Safety-critical (medical device) vs. low stakes (internal tool)
131
+ - Regulatory requirements vs. no compliance burden
132
+ - High transaction volume vs. occasional use
133
+ - Public-facing vs. internal only
134
+
135
+ ### 4. Technical Context
136
+ - Technology stack and its quirks
137
+ - Integration points and dependencies
138
+ - Production environment complexity
139
+ - Monitoring and observability maturity
140
+
141
+ ## Making Context-Driven Decisions
142
+
143
+ ### Example 1: Test Automation Level
144
+
145
+ **Startup context:**
146
+ - Small team, rapid changes, unclear product-market fit
147
+ - **Decision:** Light automation on critical paths, heavy exploratory testing
148
+ - **Rationale:** Requirements change too fast for extensive automation
149
+
150
+ **Established product context:**
151
+ - Stable features, regulatory requirements, large team
152
+ - **Decision:** Comprehensive automated regression suite
153
+ - **Rationale:** Stability allows automation investment to pay off
154
+
155
+ ### Example 2: Documentation
156
+
157
+ **Highly regulated context:**
158
+ - FDA/medical device requirements
159
+ - **Decision:** Detailed test protocols, traceability matrices
160
+ - **Rationale:** Regulatory compliance isn't optional
161
+
162
+ **Fast-paced startup:**
163
+ - Minimal compliance needs
164
+ - **Decision:** Lightweight session notes, risk logs
165
+ - **Rationale:** Bureaucracy slows down more than it helps
166
+
167
+ ## Common Misconceptions
168
+
169
+ **"Context-driven means no process."**
170
+ False. It means choosing processes that fit your context, not blindly following standards.
171
+
172
+ **"Context-driven means no automation."**
173
+ False. It means automating what makes sense in your context, not achieving arbitrary coverage goals.
174
+
175
+ **"Context-driven means no documentation."**
176
+ False. It means documenting what's valuable in your context, not creating docs no one reads.
177
+
178
+ **"Context-driven means testing is unstructured."**
179
+ False. Skilled exploratory testing is highly structured thinking, just not scripted.
180
+
181
+ ## Skills Required
182
+
183
+ Context-driven testing isn't a shortcut. It requires:
184
+
185
+ ### Technical Skills
186
+ - Understanding architecture and code
187
+ - Ability to use testing tools effectively
188
+ - Debug issues when found
189
+ - Understand what's possible and what's hard
190
+
191
+ ### Domain Knowledge
192
+ - Understand the business problem
193
+ - Know the users and their goals
194
+ - Recognize what matters vs. what's trivial
195
+
196
+ ### Testing Craft
197
+ - Heuristics and oracles
198
+ - Test design techniques
199
+ - Risk analysis
200
+ - Bug investigation
201
+
202
+ ### Social Skills
203
+ - Communicate findings clearly
204
+ - Navigate organizational politics
205
+ - Collaborate with diverse stakeholders
206
+ - Say "I don't know" when you don't
207
+
208
+ ## Red Flags: You're Not Being Context-Driven
209
+
210
+ - You follow a process "because that's how it's done"
211
+ - You can't explain *why* you're doing something
212
+ - You measure test cases executed instead of problems found
213
+ - You treat testing as checking against requirements only
214
+ - You don't talk to users or stakeholders
215
+ - Your test plan could apply to any project
216
+ - You stop thinking once you have a script
217
+
218
+ ## Questions to Ask Constantly
219
+
220
+ **"What problem am I solving?"**
221
+ Not "What does the process say to do?" but "What actual problem needs solving?"
222
+
223
+ **"Who cares about this?"**
224
+ If no one cares, maybe it doesn't matter.
225
+
226
+ **"What's the risk if I'm wrong?"**
227
+ High risk = more rigor. Low risk = lighter touch.
228
+
229
+ **"What's the cost of this activity?"**
230
+ Time spent here can't be spent elsewhere. Worth it?
231
+
232
+ **"Is there a better way?"**
233
+ Given my actual constraints, not ideal conditions.
234
+
235
+ ## Practical Tips
236
+
237
+ ### 1. Start with Risk Assessment
238
+ List features. For each, ask:
239
+ - How likely is it to fail?
240
+ - How bad if it fails?
241
+ - How hard to test?
242
+
243
+ Focus on high-risk areas.
244
+
245
+ ### 2. Time-box Exploration
246
+ You can explore forever. Set limits:
247
+ - 2 hours exploring checkout
248
+ - 30 minutes investigating error handling
249
+ - 15 minutes with each browser
250
+
251
+ ### 3. Document Discoveries, Not Plans
252
+ Don't write test cases you'll execute later. Document what you learned as you test.
253
+
254
+ **Test case:** "Enter invalid email, verify error message"
255
+ **Discovery:** "Payment API returns 500 instead of 400 for malformed email, no user-visible error. Investigated logs: gateway expects specific format. Bug filed."
256
+
257
+ ### 4. Talk to Humans
258
+ - Developers (how it's built, what worried them)
259
+ - Users (what they actually do)
260
+ - Support (common problems)
261
+ - Product (business priorities)
262
+
263
+ ### 5. Pair with Others
264
+ - Pair testing sessions uncover more than solo work
265
+ - Different perspectives = different bugs found
266
+ - Teaching others clarifies your own thinking
267
+
268
+ ## When to Use Scripted Tests
269
+
270
+ Context-driven doesn't mean "never script." Use scripts when:
271
+
272
+ - Compliance requires documented test procedures
273
+ - Testing is truly repetitive (regression after each deploy)
274
+ - Training new team members on how to test
275
+ - Need to precisely reproduce an issue
276
+
277
+ But even then, leave room for exploration around the scripts.
278
+
279
+ ## Evolution with Experience
280
+
281
+ **Novice:** Needs structure, follows steps, can't adapt yet
282
+ **Competent:** Understands tradeoffs, makes informed choices
283
+ **Expert:** Intuitively adjusts approach, sees patterns others miss
284
+
285
+ Context-driven testing requires competence. Invest in skill development.
286
+
287
+ ## Resources
288
+
289
+ **Books:**
290
+ - **Lessons Learned in Software Testing** by Kaner, Bach, Pettichord
291
+ - **Explore It!** by Elisabeth Hendrickson
292
+ - **Perfect Software and Other Illusions About Testing** by Gerald Weinberg
293
+
294
+ **Courses:**
295
+ - Rapid Software Testing (RST) by James Bach and Michael Bolton
296
+
297
+ **Communities:**
298
+ - Association for Software Testing (AST)
299
+ - Ministry of Testing community
300
+
301
+ ## Using with QE Agents
302
+
303
+ ### Context-Aware Agent Selection
304
+
305
+ **qe-fleet-commander** analyzes context and selects appropriate agents:
306
+ ```typescript
307
+ // Agent analyzes project context
308
+ const contextAnalysis = await agent.analyzeContext({
309
+ project: 'e-commerce-platform',
310
+ stage: 'startup',
311
+ team: 'small',
312
+ constraints: ['timeline: tight', 'budget: limited'],
313
+ risks: ['high-transaction-volume', 'payment-security']
314
+ });
315
+
316
+ // Recommends agents based on context:
317
+ // - qe-security-scanner (critical risk)
318
+ // - qe-performance-tester (high volume)
319
+ // - Skip: qe-visual-tester (low priority in startup context)
320
+ ```
321
+
322
+ ### Adaptive Testing Strategy
323
+
324
+ Agents adjust their approach based on context:
325
+ ```typescript
326
+ // Startup context: Fast exploratory testing
327
+ await qe-test-generator.generate({
328
+ context: 'startup',
329
+ focus: 'critical-paths-only',
330
+ depth: 'smoke-tests',
331
+ automation: 'minimal'
332
+ });
333
+
334
+ // Regulated industry: Comprehensive documentation
335
+ await qe-test-generator.generate({
336
+ context: 'medical-device',
337
+ focus: 'comprehensive-coverage',
338
+ depth: 'extensive',
339
+ automation: 'extensive',
340
+ documentation: 'full-traceability'
341
+ });
342
+ ```
343
+
344
+ ### Context-Driven Risk Assessment
345
+
346
+ **qe-regression-risk-analyzer** applies context to risk scoring:
347
+ ```typescript
348
+ // Agent weights risk factors based on context
349
+ const riskAnalysis = await agent.analyzeWithContext({
350
+ feature: 'payment-processing',
351
+ context: {
352
+ industry: 'fintech', // High regulatory risk
353
+ userBase: 'enterprise', // High reputational risk
354
+ maturity: 'early-stage' // Higher technical risk
355
+ }
356
+ });
357
+
358
+ // Risk score adjusted by context:
359
+ // - Same feature in different context = different risk level
360
+ // - fintech payment: CRITICAL
361
+ // - internal tool payment: MEDIUM
362
+ ```
363
+
364
+ ### Human-Agent Collaborative Investigation
365
+
366
+ ```typescript
367
+ // Agent assists in exploratory testing (context-driven approach)
368
+ const session = await qe-flaky-test-hunter.exploreWithHuman({
369
+ charter: 'Investigate auth edge cases',
370
+ humanRole: 'navigator', // Human guides strategy
371
+ agentRole: 'executor', // Agent executes variations
372
+ style: 'rapid-software-testing'
373
+ });
374
+
375
+ // Agent generates variations, human recognizes problems
376
+ // Combined: Human judgment + Agent thoroughness
377
+ ```
378
+
379
+ ### Context-Specific Agent Behavior
380
+
381
+ ```typescript
382
+ // Agent adapts questioning style based on context
383
+ await qe-requirements-validator.validate({
384
+ requirements: userStories,
385
+ context: 'safety-critical', // Medical device
386
+ rigor: 'strict', // Question everything
387
+ documentation: 'mandatory'
388
+ });
389
+
390
+ // vs.
391
+
392
+ await qe-requirements-validator.validate({
393
+ requirements: userStories,
394
+ context: 'prototype', // Early MVP
395
+ rigor: 'lightweight', // Accept ambiguity
396
+ documentation: 'minimal'
397
+ });
398
+ ```
399
+
400
+ ### Fleet Coordination with Context Awareness
401
+
402
+ ```typescript
403
+ // Agents coordinate based on project context
404
+ const contextFleet = await FleetManager.coordinate({
405
+ strategy: 'context-driven',
406
+ context: {
407
+ type: 'greenfield-saas',
408
+ stage: 'growth',
409
+ compliance: 'gdpr-only'
410
+ },
411
+ agents: [
412
+ 'qe-test-generator', // Balanced automation
413
+ 'qe-security-scanner', // GDPR focus
414
+ 'qe-performance-tester', // Scalability critical
415
+ 'qe-flaky-test-hunter' // Maintain velocity
416
+ ],
417
+ exclude: [
418
+ 'qe-visual-tester', // Not priority
419
+ 'qe-requirements-validator' // Too heavyweight
420
+ ]
421
+ });
422
+ ```
423
+
424
+ ### Agent Learning from Context
425
+
426
+ ```typescript
427
+ // Agents learn what works in your specific context
428
+ await qe-quality-analyzer.learnFromContext({
429
+ timeframe: '90d',
430
+ analyze: [
431
+ 'which-tests-found-most-bugs',
432
+ 'which-approaches-caught-regressions',
433
+ 'what-metrics-predicted-quality'
434
+ ]
435
+ });
436
+
437
+ // Agent adapts recommendations to your context
438
+ // "In your context: exploratory testing finds 3x more critical bugs than scripted"
439
+ // "Automation ROI is low for features changed >2x/week"
440
+ ```
441
+
442
+ ---
443
+
444
+ ## Related Skills
445
+
446
+ **Core Quality Practices:**
447
+ - [agentic-quality-engineering](../agentic-quality-engineering/) - Context-driven agent selection
448
+ - [holistic-testing-pact](../holistic-testing-pact/) - Adapt holistic model to context
449
+
450
+ **Testing Approaches:**
451
+ - [risk-based-testing](../risk-based-testing/) - Context affects risk assessment
452
+ - [exploratory-testing-advanced](../exploratory-testing-advanced/) - RST techniques
453
+ - [test-automation-strategy](../test-automation-strategy/) - Context determines automation approach
454
+
455
+ **Development Practices:**
456
+ - [xp-practices](../xp-practices/) - Context-driven XP adoption
457
+
458
+ ---
459
+
460
+ ## Final Thought
461
+
462
+ Context-driven testing is intellectually demanding. It requires constant thinking, learning, and adaptation. That's also what makes it effective and fulfilling.
463
+
464
+ You're not a test script executor. You're a skilled investigator helping teams build better products.
465
+
466
+ **With Agents**: Agents enhance context-driven testing by analyzing context, adapting strategies, and learning what works in your specific situation. Use agents to scale context-driven thinking across the team while maintaining human judgment for critical decisions.
@@ -0,0 +1,193 @@
1
+ ---
2
+ name: contract-testing
3
+ description: Consumer-driven contract testing for microservices using Pact, schema validation, API versioning, and backward compatibility testing. Use when testing API contracts, preventing breaking changes, or coordinating distributed teams.
4
+ version: 1.0.0
5
+ category: specialized-testing
6
+ tags: [contract-testing, pact, microservices, api-versioning, consumer-driven, schema-validation]
7
+ difficulty: advanced
8
+ estimated_time: 90 minutes
9
+ author: agentic-qe
10
+ ---
11
+
12
+ # Contract Testing
13
+
14
+ ## Core Principle
15
+
16
+ **Microservices fail when API contracts break.**
17
+
18
+ Contract testing validates that providers (APIs) fulfill contracts expected by consumers (clients). Prevents breaking changes that cause production failures in distributed systems.
19
+
20
+ ## What is Contract Testing?
21
+
22
+ **Contract:** Agreement between API provider and consumer about request/response structure.
23
+
24
+ **Traditional Testing Problems:**
25
+ ```
26
+ Consumer Team: "We need user.id as integer"
27
+ Provider Team: "We changed it to UUID string"
28
+ → Production failure! No one noticed until deployed.
29
+ ```
30
+
31
+ **Contract Testing Solution:**
32
+ ```
33
+ 1. Consumer defines expected contract
34
+ 2. Provider validates against contract
35
+ 3. Breaking changes caught before deployment
36
+ ```
37
+
38
+ ## Consumer-Driven Contracts (Pact)
39
+
40
+ **Install Pact:**
41
+ ```bash
42
+ npm install --save-dev @pact-foundation/pact
43
+ ```
44
+
45
+ **Consumer Test (defines contract):**
46
+ ```javascript
47
+ import { PactV3 } from '@pact-foundation/pact';
48
+
49
+ const provider = new PactV3({
50
+ consumer: 'UserWebApp',
51
+ provider: 'UserAPI'
52
+ });
53
+
54
+ test('get user by id', async () => {
55
+ // Define expected interaction
56
+ await provider
57
+ .given('user 123 exists')
58
+ .uponReceiving('a request for user 123')
59
+ .withRequest({
60
+ method: 'GET',
61
+ path: '/users/123'
62
+ })
63
+ .willRespondWith({
64
+ status: 200,
65
+ headers: { 'Content-Type': 'application/json' },
66
+ body: {
67
+ id: 123,
68
+ email: 'user@example.com',
69
+ name: 'John Doe'
70
+ }
71
+ });
72
+
73
+ // Execute test
74
+ await provider.executeTest(async (mockServer) => {
75
+ const api = new UserAPI(mockServer.url);
76
+ const user = await api.getUser(123);
77
+
78
+ expect(user.id).toBe(123);
79
+ expect(user.email).toBe('user@example.com');
80
+ });
81
+ });
82
+
83
+ // Generates pact contract file
84
+ ```
85
+
86
+ **Provider Verification:**
87
+ ```javascript
88
+ import { Verifier } from '@pact-foundation/pact';
89
+
90
+ test('provider honors all consumer contracts', async () => {
91
+ const verifier = new Verifier({
92
+ provider: 'UserAPI',
93
+ providerBaseUrl: 'http://localhost:3000',
94
+
95
+ // Load contracts from Pact Broker
96
+ pactBrokerUrl: 'https://pact-broker.example.com',
97
+ pactBrokerToken: process.env.PACT_BROKER_TOKEN,
98
+
99
+ // Or load local contracts
100
+ pactUrls: ['./pacts/UserWebApp-UserAPI.json'],
101
+
102
+ // Provider states
103
+ stateHandlers: {
104
+ 'user 123 exists': async () => {
105
+ await db.users.create({ id: 123, email: 'user@example.com', name: 'John Doe' });
106
+ }
107
+ }
108
+ });
109
+
110
+ await verifier.verifyProvider();
111
+ // Fails if provider doesn't match consumer expectations
112
+ });
113
+ ```
114
+
115
+ ## Schema Validation
116
+
117
+ **JSON Schema Contract:**
118
+ ```javascript
119
+ const userSchema = {
120
+ type: 'object',
121
+ required: ['id', 'email'],
122
+ properties: {
123
+ id: { type: 'integer' },
124
+ email: { type: 'string', format: 'email' },
125
+ name: { type: 'string' },
126
+ createdAt: { type: 'string', format: 'date-time' }
127
+ }
128
+ };
129
+
130
+ test('API response matches schema', async () => {
131
+ const response = await fetch('/api/users/123');
132
+ const user = await response.json();
133
+
134
+ const validator = new Ajv();
135
+ const valid = validator.validate(userSchema, user);
136
+
137
+ expect(valid).toBe(true);
138
+ expect(validator.errors).toBeNull();
139
+ });
140
+ ```
141
+
142
+ ## API Versioning Testing
143
+
144
+ **Test backward compatibility:**
145
+ ```javascript
146
+ test('v2 API is backward compatible with v1', async () => {
147
+ // v1 client
148
+ const v1Response = await fetch('/api/v1/users/123');
149
+ const v1User = await v1Response.json();
150
+
151
+ // v2 client
152
+ const v2Response = await fetch('/api/v2/users/123');
153
+ const v2User = await v2Response.json();
154
+
155
+ // v2 must include all v1 fields
156
+ expect(v2User).toMatchObject(v1User);
157
+
158
+ // v2 can have additional fields
159
+ expect(v2User.newField).toBeDefined();
160
+ });
161
+
162
+ test('deprecated fields still present', async () => {
163
+ const response = await fetch('/api/v2/users/123');
164
+ const user = await response.json();
165
+
166
+ // Deprecated field still works (with warning header)
167
+ expect(user.oldField).toBeDefined();
168
+ expect(response.headers.get('Deprecation')).toBeTruthy();
169
+ });
170
+ ```
171
+
172
+ ## Related Skills
173
+
174
+ - [api-testing-patterns](../api-testing-patterns/) - API testing strategies
175
+ - [regression-testing](../regression-testing/) - Contract regression
176
+ - [agentic-quality-engineering](../agentic-quality-engineering/)
177
+
178
+ ## Remember
179
+
180
+ **Breaking API changes break production.**
181
+
182
+ - Microservices depend on each other
183
+ - Changes propagate across services
184
+ - Integration tests miss distributed issues
185
+ - Contract testing catches breaks early
186
+
187
+ **Consumer-driven prevents surprises:**
188
+ - Consumers define expectations
189
+ - Providers validate before deployment
190
+ - Breaking changes caught in CI
191
+ - Safe, independent deployments
192
+
193
+ **With Agents:** `qe-api-contract-validator` automatically validates contracts, detects breaking changes, and ensures backward compatibility across all API versions.