agentic-qe 1.0.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 (528) hide show
  1. package/.claude/agents/analysis/code-analyzer.md +209 -0
  2. package/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  3. package/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  4. package/.claude/agents/base-template-generator.md +42 -0
  5. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  6. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  7. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  8. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  9. package/.claude/agents/consensus/quorum-manager.md +823 -0
  10. package/.claude/agents/consensus/raft-manager.md +63 -0
  11. package/.claude/agents/consensus/security-manager.md +622 -0
  12. package/.claude/agents/core/coder.md +266 -0
  13. package/.claude/agents/core/planner.md +168 -0
  14. package/.claude/agents/core/researcher.md +190 -0
  15. package/.claude/agents/core/reviewer.md +326 -0
  16. package/.claude/agents/core/tester.md +319 -0
  17. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  18. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  19. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  20. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  21. package/.claude/agents/flow-nexus/app-store.md +88 -0
  22. package/.claude/agents/flow-nexus/authentication.md +69 -0
  23. package/.claude/agents/flow-nexus/challenges.md +81 -0
  24. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  25. package/.claude/agents/flow-nexus/payments.md +83 -0
  26. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  27. package/.claude/agents/flow-nexus/swarm.md +76 -0
  28. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  29. package/.claude/agents/flow-nexus/workflow.md +84 -0
  30. package/.claude/agents/github/code-review-swarm.md +538 -0
  31. package/.claude/agents/github/github-modes.md +173 -0
  32. package/.claude/agents/github/issue-tracker.md +319 -0
  33. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  34. package/.claude/agents/github/pr-manager.md +191 -0
  35. package/.claude/agents/github/project-board-sync.md +509 -0
  36. package/.claude/agents/github/release-manager.md +367 -0
  37. package/.claude/agents/github/release-swarm.md +583 -0
  38. package/.claude/agents/github/repo-architect.md +398 -0
  39. package/.claude/agents/github/swarm-issue.md +573 -0
  40. package/.claude/agents/github/swarm-pr.md +428 -0
  41. package/.claude/agents/github/sync-coordinator.md +452 -0
  42. package/.claude/agents/github/workflow-automation.md +635 -0
  43. package/.claude/agents/goal/code-goal-planner.md +446 -0
  44. package/.claude/agents/goal/goal-planner.md +168 -0
  45. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +130 -0
  46. package/.claude/agents/hive-mind/queen-coordinator.md +203 -0
  47. package/.claude/agents/hive-mind/scout-explorer.md +242 -0
  48. package/.claude/agents/hive-mind/swarm-memory-manager.md +193 -0
  49. package/.claude/agents/hive-mind/worker-specialist.md +217 -0
  50. package/.claude/agents/neural/safla-neural.md +74 -0
  51. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  52. package/.claude/agents/optimization/load-balancer.md +431 -0
  53. package/.claude/agents/optimization/performance-monitor.md +672 -0
  54. package/.claude/agents/optimization/resource-allocator.md +674 -0
  55. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  56. package/.claude/agents/qe-api-contract-validator.md +1088 -0
  57. package/.claude/agents/qe-chaos-engineer.md +736 -0
  58. package/.claude/agents/qe-coverage-analyzer.md +282 -0
  59. package/.claude/agents/qe-deployment-readiness.md +1109 -0
  60. package/.claude/agents/qe-flaky-test-hunter.md +1121 -0
  61. package/.claude/agents/qe-fleet-commander.md +641 -0
  62. package/.claude/agents/qe-performance-tester.md +354 -0
  63. package/.claude/agents/qe-production-intelligence.md +1162 -0
  64. package/.claude/agents/qe-quality-gate.md +294 -0
  65. package/.claude/agents/qe-regression-risk-analyzer.md +947 -0
  66. package/.claude/agents/qe-requirements-validator.md +691 -0
  67. package/.claude/agents/qe-security-scanner.md +430 -0
  68. package/.claude/agents/qe-test-data-architect.md +1007 -0
  69. package/.claude/agents/qe-test-executor.md +365 -0
  70. package/.claude/agents/qe-test-generator.md +332 -0
  71. package/.claude/agents/qe-visual-tester.md +754 -0
  72. package/.claude/agents/sparc/architecture.md +472 -0
  73. package/.claude/agents/sparc/pseudocode.md +318 -0
  74. package/.claude/agents/sparc/refinement.md +525 -0
  75. package/.claude/agents/sparc/specification.md +276 -0
  76. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  77. package/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  78. package/.claude/agents/swarm/hierarchical-coordinator.md +327 -0
  79. package/.claude/agents/swarm/mesh-coordinator.md +392 -0
  80. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  81. package/.claude/agents/templates/coordinator-swarm-init.md +105 -0
  82. package/.claude/agents/templates/github-pr-manager.md +177 -0
  83. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  84. package/.claude/agents/templates/memory-coordinator.md +187 -0
  85. package/.claude/agents/templates/migration-plan.md +746 -0
  86. package/.claude/agents/templates/orchestrator-task.md +139 -0
  87. package/.claude/agents/templates/performance-analyzer.md +199 -0
  88. package/.claude/agents/templates/sparc-coordinator.md +183 -0
  89. package/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  90. package/.claude/agents/testing/validation/production-validator.md +395 -0
  91. package/.claude/aqe-fleet.json +47 -0
  92. package/.claude/commands/README.md +106 -0
  93. package/.claude/commands/agents/README.md +10 -0
  94. package/.claude/commands/agents/agent-capabilities.md +21 -0
  95. package/.claude/commands/agents/agent-coordination.md +28 -0
  96. package/.claude/commands/agents/agent-spawning.md +28 -0
  97. package/.claude/commands/agents/agent-types.md +26 -0
  98. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  99. package/.claude/commands/analysis/README.md +9 -0
  100. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  101. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  102. package/.claude/commands/analysis/performance-report.md +25 -0
  103. package/.claude/commands/analysis/token-efficiency.md +45 -0
  104. package/.claude/commands/analysis/token-usage.md +25 -0
  105. package/.claude/commands/aqe-analyze.md +344 -0
  106. package/.claude/commands/aqe-benchmark.md +466 -0
  107. package/.claude/commands/aqe-chaos.md +443 -0
  108. package/.claude/commands/aqe-execute.md +322 -0
  109. package/.claude/commands/aqe-fleet-status.md +431 -0
  110. package/.claude/commands/aqe-generate.md +301 -0
  111. package/.claude/commands/aqe-optimize.md +361 -0
  112. package/.claude/commands/aqe-report.md +411 -0
  113. package/.claude/commands/automation/README.md +9 -0
  114. package/.claude/commands/automation/auto-agent.md +122 -0
  115. package/.claude/commands/automation/self-healing.md +106 -0
  116. package/.claude/commands/automation/session-memory.md +90 -0
  117. package/.claude/commands/automation/smart-agents.md +73 -0
  118. package/.claude/commands/automation/smart-spawn.md +25 -0
  119. package/.claude/commands/automation/workflow-select.md +25 -0
  120. package/.claude/commands/coordination/README.md +9 -0
  121. package/.claude/commands/coordination/agent-spawn.md +25 -0
  122. package/.claude/commands/coordination/init.md +44 -0
  123. package/.claude/commands/coordination/orchestrate.md +43 -0
  124. package/.claude/commands/coordination/spawn.md +45 -0
  125. package/.claude/commands/coordination/swarm-init.md +85 -0
  126. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  127. package/.claude/commands/flow-nexus/app-store.md +124 -0
  128. package/.claude/commands/flow-nexus/challenges.md +120 -0
  129. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  130. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  131. package/.claude/commands/flow-nexus/payments.md +116 -0
  132. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  133. package/.claude/commands/flow-nexus/swarm.md +87 -0
  134. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  135. package/.claude/commands/flow-nexus/workflow.md +115 -0
  136. package/.claude/commands/github/README.md +11 -0
  137. package/.claude/commands/github/code-review-swarm.md +514 -0
  138. package/.claude/commands/github/code-review.md +25 -0
  139. package/.claude/commands/github/github-modes.md +147 -0
  140. package/.claude/commands/github/github-swarm.md +121 -0
  141. package/.claude/commands/github/issue-tracker.md +292 -0
  142. package/.claude/commands/github/issue-triage.md +25 -0
  143. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  144. package/.claude/commands/github/pr-enhance.md +26 -0
  145. package/.claude/commands/github/pr-manager.md +170 -0
  146. package/.claude/commands/github/project-board-sync.md +471 -0
  147. package/.claude/commands/github/release-manager.md +338 -0
  148. package/.claude/commands/github/release-swarm.md +544 -0
  149. package/.claude/commands/github/repo-analyze.md +25 -0
  150. package/.claude/commands/github/repo-architect.md +367 -0
  151. package/.claude/commands/github/swarm-issue.md +482 -0
  152. package/.claude/commands/github/swarm-pr.md +285 -0
  153. package/.claude/commands/github/sync-coordinator.md +301 -0
  154. package/.claude/commands/github/workflow-automation.md +442 -0
  155. package/.claude/commands/hive-mind/README.md +17 -0
  156. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  157. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  158. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  159. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  160. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  161. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  162. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  163. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  164. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  165. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  166. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  167. package/.claude/commands/hooks/README.md +11 -0
  168. package/.claude/commands/hooks/overview.md +132 -0
  169. package/.claude/commands/hooks/post-edit.md +117 -0
  170. package/.claude/commands/hooks/post-task.md +112 -0
  171. package/.claude/commands/hooks/pre-edit.md +113 -0
  172. package/.claude/commands/hooks/pre-task.md +111 -0
  173. package/.claude/commands/hooks/session-end.md +118 -0
  174. package/.claude/commands/hooks/setup.md +103 -0
  175. package/.claude/commands/memory/README.md +9 -0
  176. package/.claude/commands/memory/memory-persist.md +25 -0
  177. package/.claude/commands/memory/memory-search.md +25 -0
  178. package/.claude/commands/memory/memory-usage.md +25 -0
  179. package/.claude/commands/memory/neural.md +47 -0
  180. package/.claude/commands/memory/usage.md +46 -0
  181. package/.claude/commands/monitoring/README.md +9 -0
  182. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  183. package/.claude/commands/monitoring/agents.md +44 -0
  184. package/.claude/commands/monitoring/real-time-view.md +25 -0
  185. package/.claude/commands/monitoring/status.md +46 -0
  186. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  187. package/.claude/commands/optimization/README.md +9 -0
  188. package/.claude/commands/optimization/auto-topology.md +62 -0
  189. package/.claude/commands/optimization/cache-manage.md +25 -0
  190. package/.claude/commands/optimization/parallel-execute.md +25 -0
  191. package/.claude/commands/optimization/parallel-execution.md +50 -0
  192. package/.claude/commands/optimization/topology-optimize.md +25 -0
  193. package/.claude/commands/pair/commands.md +546 -0
  194. package/.claude/commands/pair/config.md +510 -0
  195. package/.claude/commands/pair/examples.md +512 -0
  196. package/.claude/commands/pair/modes.md +348 -0
  197. package/.claude/commands/pair/session.md +407 -0
  198. package/.claude/commands/pair/start.md +209 -0
  199. package/.claude/commands/sparc/analyzer.md +52 -0
  200. package/.claude/commands/sparc/architect.md +53 -0
  201. package/.claude/commands/sparc/batch-executor.md +54 -0
  202. package/.claude/commands/sparc/coder.md +54 -0
  203. package/.claude/commands/sparc/debugger.md +54 -0
  204. package/.claude/commands/sparc/designer.md +53 -0
  205. package/.claude/commands/sparc/documenter.md +54 -0
  206. package/.claude/commands/sparc/innovator.md +54 -0
  207. package/.claude/commands/sparc/memory-manager.md +54 -0
  208. package/.claude/commands/sparc/optimizer.md +54 -0
  209. package/.claude/commands/sparc/orchestrator.md +132 -0
  210. package/.claude/commands/sparc/researcher.md +54 -0
  211. package/.claude/commands/sparc/reviewer.md +54 -0
  212. package/.claude/commands/sparc/sparc-modes.md +174 -0
  213. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  214. package/.claude/commands/sparc/tdd.md +54 -0
  215. package/.claude/commands/sparc/tester.md +54 -0
  216. package/.claude/commands/sparc/workflow-manager.md +54 -0
  217. package/.claude/commands/stream-chain/pipeline.md +121 -0
  218. package/.claude/commands/stream-chain/run.md +70 -0
  219. package/.claude/commands/swarm/README.md +15 -0
  220. package/.claude/commands/swarm/analysis.md +95 -0
  221. package/.claude/commands/swarm/development.md +96 -0
  222. package/.claude/commands/swarm/examples.md +168 -0
  223. package/.claude/commands/swarm/maintenance.md +102 -0
  224. package/.claude/commands/swarm/optimization.md +117 -0
  225. package/.claude/commands/swarm/research.md +136 -0
  226. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  227. package/.claude/commands/swarm/swarm-background.md +8 -0
  228. package/.claude/commands/swarm/swarm-init.md +19 -0
  229. package/.claude/commands/swarm/swarm-modes.md +8 -0
  230. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  231. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  232. package/.claude/commands/swarm/swarm-status.md +8 -0
  233. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  234. package/.claude/commands/swarm/swarm.md +27 -0
  235. package/.claude/commands/swarm/testing.md +131 -0
  236. package/.claude/commands/training/README.md +9 -0
  237. package/.claude/commands/training/model-update.md +25 -0
  238. package/.claude/commands/training/neural-patterns.md +74 -0
  239. package/.claude/commands/training/neural-train.md +25 -0
  240. package/.claude/commands/training/pattern-learn.md +25 -0
  241. package/.claude/commands/training/specialization.md +63 -0
  242. package/.claude/commands/truth/start.md +143 -0
  243. package/.claude/commands/verify/check.md +50 -0
  244. package/.claude/commands/verify/start.md +128 -0
  245. package/.claude/commands/workflows/README.md +9 -0
  246. package/.claude/commands/workflows/development.md +78 -0
  247. package/.claude/commands/workflows/research.md +63 -0
  248. package/.claude/commands/workflows/workflow-create.md +25 -0
  249. package/.claude/commands/workflows/workflow-execute.md +25 -0
  250. package/.claude/commands/workflows/workflow-export.md +25 -0
  251. package/.claude/helpers/checkpoint-manager.sh +251 -0
  252. package/.claude/helpers/github-safe.js +106 -0
  253. package/.claude/helpers/github-setup.sh +28 -0
  254. package/.claude/helpers/quick-start.sh +19 -0
  255. package/.claude/helpers/setup-mcp.sh +18 -0
  256. package/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
  257. package/.claude/settings.json +114 -0
  258. package/.claude/settings.local.json +10 -0
  259. package/CONTRIBUTING.md +897 -0
  260. package/LICENSE +21 -0
  261. package/README.md +632 -0
  262. package/bin/aqe +959 -0
  263. package/config/fleet.yaml +50 -0
  264. package/dist/agents/ApiContractValidatorAgent.d.ts +222 -0
  265. package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -0
  266. package/dist/agents/ApiContractValidatorAgent.js +787 -0
  267. package/dist/agents/ApiContractValidatorAgent.js.map +1 -0
  268. package/dist/agents/BaseAgent.d.ts +147 -0
  269. package/dist/agents/BaseAgent.d.ts.map +1 -0
  270. package/dist/agents/BaseAgent.js +374 -0
  271. package/dist/agents/BaseAgent.js.map +1 -0
  272. package/dist/agents/CoverageAnalyzerAgent.d.ts +103 -0
  273. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -0
  274. package/dist/agents/CoverageAnalyzerAgent.js +466 -0
  275. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -0
  276. package/dist/agents/DeploymentReadinessAgent.d.ts +244 -0
  277. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -0
  278. package/dist/agents/DeploymentReadinessAgent.js +974 -0
  279. package/dist/agents/DeploymentReadinessAgent.js.map +1 -0
  280. package/dist/agents/FlakyTestHunterAgent.d.ts +172 -0
  281. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -0
  282. package/dist/agents/FlakyTestHunterAgent.js +867 -0
  283. package/dist/agents/FlakyTestHunterAgent.js.map +1 -0
  284. package/dist/agents/FleetCommanderAgent.d.ts +154 -0
  285. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -0
  286. package/dist/agents/FleetCommanderAgent.js +924 -0
  287. package/dist/agents/FleetCommanderAgent.js.map +1 -0
  288. package/dist/agents/PerformanceTesterAgent.d.ts +194 -0
  289. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -0
  290. package/dist/agents/PerformanceTesterAgent.js +972 -0
  291. package/dist/agents/PerformanceTesterAgent.js.map +1 -0
  292. package/dist/agents/ProductionIntelligenceAgent.d.ts +224 -0
  293. package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -0
  294. package/dist/agents/ProductionIntelligenceAgent.js +856 -0
  295. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -0
  296. package/dist/agents/QualityAnalyzerAgent.d.ts +67 -0
  297. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -0
  298. package/dist/agents/QualityAnalyzerAgent.js +453 -0
  299. package/dist/agents/QualityAnalyzerAgent.js.map +1 -0
  300. package/dist/agents/QualityGateAgent.d.ts +104 -0
  301. package/dist/agents/QualityGateAgent.d.ts.map +1 -0
  302. package/dist/agents/QualityGateAgent.js +522 -0
  303. package/dist/agents/QualityGateAgent.js.map +1 -0
  304. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +274 -0
  305. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -0
  306. package/dist/agents/RegressionRiskAnalyzerAgent.js +1076 -0
  307. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -0
  308. package/dist/agents/RequirementsValidatorAgent.d.ts +195 -0
  309. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -0
  310. package/dist/agents/RequirementsValidatorAgent.js +992 -0
  311. package/dist/agents/RequirementsValidatorAgent.js.map +1 -0
  312. package/dist/agents/SecurityScannerAgent.d.ts +126 -0
  313. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -0
  314. package/dist/agents/SecurityScannerAgent.js +695 -0
  315. package/dist/agents/SecurityScannerAgent.js.map +1 -0
  316. package/dist/agents/TestDataArchitectAgent.d.ts +452 -0
  317. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -0
  318. package/dist/agents/TestDataArchitectAgent.js +1346 -0
  319. package/dist/agents/TestDataArchitectAgent.js.map +1 -0
  320. package/dist/agents/TestExecutorAgent.d.ts +101 -0
  321. package/dist/agents/TestExecutorAgent.d.ts.map +1 -0
  322. package/dist/agents/TestExecutorAgent.js +730 -0
  323. package/dist/agents/TestExecutorAgent.js.map +1 -0
  324. package/dist/agents/TestGeneratorAgent.d.ts +109 -0
  325. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -0
  326. package/dist/agents/TestGeneratorAgent.js +450 -0
  327. package/dist/agents/TestGeneratorAgent.js.map +1 -0
  328. package/dist/agents/index.d.ts +51 -0
  329. package/dist/agents/index.d.ts.map +1 -0
  330. package/dist/agents/index.js +738 -0
  331. package/dist/agents/index.js.map +1 -0
  332. package/dist/cli/commands/analyze.d.ts +32 -0
  333. package/dist/cli/commands/analyze.d.ts.map +1 -0
  334. package/dist/cli/commands/analyze.js +764 -0
  335. package/dist/cli/commands/analyze.js.map +1 -0
  336. package/dist/cli/commands/fleet.d.ts +36 -0
  337. package/dist/cli/commands/fleet.d.ts.map +1 -0
  338. package/dist/cli/commands/fleet.js +745 -0
  339. package/dist/cli/commands/fleet.js.map +1 -0
  340. package/dist/cli/commands/generate.d.ts +24 -0
  341. package/dist/cli/commands/generate.d.ts.map +1 -0
  342. package/dist/cli/commands/generate.js +424 -0
  343. package/dist/cli/commands/generate.js.map +1 -0
  344. package/dist/cli/commands/init.d.ts +17 -0
  345. package/dist/cli/commands/init.d.ts.map +1 -0
  346. package/dist/cli/commands/init.js +570 -0
  347. package/dist/cli/commands/init.js.map +1 -0
  348. package/dist/cli/commands/run.d.ts +25 -0
  349. package/dist/cli/commands/run.d.ts.map +1 -0
  350. package/dist/cli/commands/run.js +558 -0
  351. package/dist/cli/commands/run.js.map +1 -0
  352. package/dist/cli/index-spec.d.ts +3 -0
  353. package/dist/cli/index-spec.d.ts.map +1 -0
  354. package/dist/cli/index-spec.js +154 -0
  355. package/dist/cli/index-spec.js.map +1 -0
  356. package/dist/cli/index-working.d.ts +7 -0
  357. package/dist/cli/index-working.d.ts.map +1 -0
  358. package/dist/cli/index-working.js +470 -0
  359. package/dist/cli/index-working.js.map +1 -0
  360. package/dist/cli/index.d.ts +9 -0
  361. package/dist/cli/index.d.ts.map +1 -0
  362. package/dist/cli/index.js +174 -0
  363. package/dist/cli/index.js.map +1 -0
  364. package/dist/core/Agent.d.ts +189 -0
  365. package/dist/core/Agent.d.ts.map +1 -0
  366. package/dist/core/Agent.js +288 -0
  367. package/dist/core/Agent.js.map +1 -0
  368. package/dist/core/EventBus.d.ts +40 -0
  369. package/dist/core/EventBus.d.ts.map +1 -0
  370. package/dist/core/EventBus.js +114 -0
  371. package/dist/core/EventBus.js.map +1 -0
  372. package/dist/core/FleetManager.d.ts +219 -0
  373. package/dist/core/FleetManager.d.ts.map +1 -0
  374. package/dist/core/FleetManager.js +354 -0
  375. package/dist/core/FleetManager.js.map +1 -0
  376. package/dist/core/MemoryManager.d.ts +119 -0
  377. package/dist/core/MemoryManager.d.ts.map +1 -0
  378. package/dist/core/MemoryManager.js +460 -0
  379. package/dist/core/MemoryManager.js.map +1 -0
  380. package/dist/core/Task.d.ts +264 -0
  381. package/dist/core/Task.d.ts.map +1 -0
  382. package/dist/core/Task.js +397 -0
  383. package/dist/core/Task.js.map +1 -0
  384. package/dist/core/coverage-analyzer.d.ts +50 -0
  385. package/dist/core/coverage-analyzer.d.ts.map +1 -0
  386. package/dist/core/coverage-analyzer.js +146 -0
  387. package/dist/core/coverage-analyzer.js.map +1 -0
  388. package/dist/core/index.d.ts +14 -0
  389. package/dist/core/index.d.ts.map +1 -0
  390. package/dist/core/index.js +20 -0
  391. package/dist/core/index.js.map +1 -0
  392. package/dist/core/quality-gate.d.ts +81 -0
  393. package/dist/core/quality-gate.d.ts.map +1 -0
  394. package/dist/core/quality-gate.js +254 -0
  395. package/dist/core/quality-gate.js.map +1 -0
  396. package/dist/coverage/coverage-collector.d.ts +62 -0
  397. package/dist/coverage/coverage-collector.d.ts.map +1 -0
  398. package/dist/coverage/coverage-collector.js +61 -0
  399. package/dist/coverage/coverage-collector.js.map +1 -0
  400. package/dist/coverage/coverage-reporter.d.ts +42 -0
  401. package/dist/coverage/coverage-reporter.d.ts.map +1 -0
  402. package/dist/coverage/coverage-reporter.js +53 -0
  403. package/dist/coverage/coverage-reporter.js.map +1 -0
  404. package/dist/index.d.ts +89 -0
  405. package/dist/index.d.ts.map +1 -0
  406. package/dist/index.js +142 -0
  407. package/dist/index.js.map +1 -0
  408. package/dist/mcp/handlers/agent-spawn.d.ts +72 -0
  409. package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -0
  410. package/dist/mcp/handlers/agent-spawn.js +255 -0
  411. package/dist/mcp/handlers/agent-spawn.js.map +1 -0
  412. package/dist/mcp/handlers/base-handler.d.ts +53 -0
  413. package/dist/mcp/handlers/base-handler.d.ts.map +1 -0
  414. package/dist/mcp/handlers/base-handler.js +77 -0
  415. package/dist/mcp/handlers/base-handler.js.map +1 -0
  416. package/dist/mcp/handlers/fleet-init.d.ts +55 -0
  417. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -0
  418. package/dist/mcp/handlers/fleet-init.js +149 -0
  419. package/dist/mcp/handlers/fleet-init.js.map +1 -0
  420. package/dist/mcp/handlers/fleet-status.d.ts +103 -0
  421. package/dist/mcp/handlers/fleet-status.d.ts.map +1 -0
  422. package/dist/mcp/handlers/fleet-status.js +244 -0
  423. package/dist/mcp/handlers/fleet-status.js.map +1 -0
  424. package/dist/mcp/handlers/optimize-tests.d.ts +219 -0
  425. package/dist/mcp/handlers/optimize-tests.d.ts.map +1 -0
  426. package/dist/mcp/handlers/optimize-tests.js +532 -0
  427. package/dist/mcp/handlers/optimize-tests.js.map +1 -0
  428. package/dist/mcp/handlers/predict-defects.d.ts +194 -0
  429. package/dist/mcp/handlers/predict-defects.d.ts.map +1 -0
  430. package/dist/mcp/handlers/predict-defects.js +721 -0
  431. package/dist/mcp/handlers/predict-defects.js.map +1 -0
  432. package/dist/mcp/handlers/quality-analyze.d.ts +273 -0
  433. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -0
  434. package/dist/mcp/handlers/quality-analyze.js +702 -0
  435. package/dist/mcp/handlers/quality-analyze.js.map +1 -0
  436. package/dist/mcp/handlers/task-orchestrate.d.ts +152 -0
  437. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -0
  438. package/dist/mcp/handlers/task-orchestrate.js +629 -0
  439. package/dist/mcp/handlers/task-orchestrate.js.map +1 -0
  440. package/dist/mcp/handlers/test-execute.d.ts +132 -0
  441. package/dist/mcp/handlers/test-execute.d.ts.map +1 -0
  442. package/dist/mcp/handlers/test-execute.js +436 -0
  443. package/dist/mcp/handlers/test-execute.js.map +1 -0
  444. package/dist/mcp/handlers/test-generate.d.ts +107 -0
  445. package/dist/mcp/handlers/test-generate.d.ts.map +1 -0
  446. package/dist/mcp/handlers/test-generate.js +437 -0
  447. package/dist/mcp/handlers/test-generate.js.map +1 -0
  448. package/dist/mcp/server.d.ts +99 -0
  449. package/dist/mcp/server.d.ts.map +1 -0
  450. package/dist/mcp/server.js +214 -0
  451. package/dist/mcp/server.js.map +1 -0
  452. package/dist/mcp/services/AgentRegistry.d.ts +191 -0
  453. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -0
  454. package/dist/mcp/services/AgentRegistry.js +403 -0
  455. package/dist/mcp/services/AgentRegistry.js.map +1 -0
  456. package/dist/mcp/services/HookExecutor.d.ts +165 -0
  457. package/dist/mcp/services/HookExecutor.d.ts.map +1 -0
  458. package/dist/mcp/services/HookExecutor.js +327 -0
  459. package/dist/mcp/services/HookExecutor.js.map +1 -0
  460. package/dist/mcp/start.d.ts +7 -0
  461. package/dist/mcp/start.d.ts.map +1 -0
  462. package/dist/mcp/start.js +35 -0
  463. package/dist/mcp/start.js.map +1 -0
  464. package/dist/mcp/tools.d.ts +81 -0
  465. package/dist/mcp/tools.d.ts.map +1 -0
  466. package/dist/mcp/tools.js +471 -0
  467. package/dist/mcp/tools.js.map +1 -0
  468. package/dist/optimization/sublinear-solver.d.ts +72 -0
  469. package/dist/optimization/sublinear-solver.d.ts.map +1 -0
  470. package/dist/optimization/sublinear-solver.js +263 -0
  471. package/dist/optimization/sublinear-solver.js.map +1 -0
  472. package/dist/scripts/verifyComplexity.d.ts +8 -0
  473. package/dist/scripts/verifyComplexity.d.ts.map +1 -0
  474. package/dist/scripts/verifyComplexity.js +56 -0
  475. package/dist/scripts/verifyComplexity.js.map +1 -0
  476. package/dist/types/api-contract.types.d.ts +273 -0
  477. package/dist/types/api-contract.types.d.ts.map +1 -0
  478. package/dist/types/api-contract.types.js +18 -0
  479. package/dist/types/api-contract.types.js.map +1 -0
  480. package/dist/types/errors.d.ts +104 -0
  481. package/dist/types/errors.d.ts.map +1 -0
  482. package/dist/types/errors.js +226 -0
  483. package/dist/types/errors.js.map +1 -0
  484. package/dist/types/events.d.ts +101 -0
  485. package/dist/types/events.d.ts.map +1 -0
  486. package/dist/types/events.js +6 -0
  487. package/dist/types/events.js.map +1 -0
  488. package/dist/types/index.d.ts +570 -0
  489. package/dist/types/index.d.ts.map +1 -0
  490. package/dist/types/index.js +131 -0
  491. package/dist/types/index.js.map +1 -0
  492. package/dist/utils/Config.d.ts +128 -0
  493. package/dist/utils/Config.d.ts.map +1 -0
  494. package/dist/utils/Config.js +232 -0
  495. package/dist/utils/Config.js.map +1 -0
  496. package/dist/utils/Database.d.ts +112 -0
  497. package/dist/utils/Database.d.ts.map +1 -0
  498. package/dist/utils/Database.js +352 -0
  499. package/dist/utils/Database.js.map +1 -0
  500. package/dist/utils/Logger.d.ts +58 -0
  501. package/dist/utils/Logger.d.ts.map +1 -0
  502. package/dist/utils/Logger.js +125 -0
  503. package/dist/utils/Logger.js.map +1 -0
  504. package/dist/utils/index.d.ts +9 -0
  505. package/dist/utils/index.d.ts.map +1 -0
  506. package/dist/utils/index.js +14 -0
  507. package/dist/utils/index.js.map +1 -0
  508. package/dist/utils/sublinear/coverageOptimizer.d.ts +84 -0
  509. package/dist/utils/sublinear/coverageOptimizer.d.ts.map +1 -0
  510. package/dist/utils/sublinear/coverageOptimizer.js +415 -0
  511. package/dist/utils/sublinear/coverageOptimizer.js.map +1 -0
  512. package/dist/utils/sublinear/index.d.ts +50 -0
  513. package/dist/utils/sublinear/index.d.ts.map +1 -0
  514. package/dist/utils/sublinear/index.js +390 -0
  515. package/dist/utils/sublinear/index.js.map +1 -0
  516. package/dist/utils/sublinear/matrixSolver.d.ts +132 -0
  517. package/dist/utils/sublinear/matrixSolver.d.ts.map +1 -0
  518. package/dist/utils/sublinear/matrixSolver.js +642 -0
  519. package/dist/utils/sublinear/matrixSolver.js.map +1 -0
  520. package/dist/utils/sublinear/temporalPredictor.d.ts +195 -0
  521. package/dist/utils/sublinear/temporalPredictor.d.ts.map +1 -0
  522. package/dist/utils/sublinear/temporalPredictor.js +474 -0
  523. package/dist/utils/sublinear/temporalPredictor.js.map +1 -0
  524. package/dist/utils/sublinear/testSelector.d.ts +81 -0
  525. package/dist/utils/sublinear/testSelector.d.ts.map +1 -0
  526. package/dist/utils/sublinear/testSelector.js +303 -0
  527. package/dist/utils/sublinear/testSelector.js.map +1 -0
  528. package/package.json +131 -0
@@ -0,0 +1,897 @@
1
+ # Contributing to Agentic QE
2
+
3
+ Thank you for your interest in contributing to Agentic QE! We're excited to have you join our community of developers building the future of AI-driven quality engineering.
4
+
5
+ This document provides guidelines for contributing to the project. Following these guidelines helps maintain code quality and makes the contribution process smooth for everyone.
6
+
7
+ ## Table of Contents
8
+
9
+ - [Code of Conduct](#code-of-conduct)
10
+ - [How Can I Contribute?](#how-can-i-contribute)
11
+ - [Development Setup](#development-setup)
12
+ - [Coding Standards](#coding-standards)
13
+ - [Commit Message Convention](#commit-message-convention)
14
+ - [Pull Request Process](#pull-request-process)
15
+ - [Testing Guidelines](#testing-guidelines)
16
+ - [Documentation](#documentation)
17
+ - [Community](#community)
18
+
19
+ ## Code of Conduct
20
+
21
+ This project adheres to a Code of Conduct that we expect all contributors to follow. Please read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) before contributing.
22
+
23
+ By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
24
+
25
+ ## How Can I Contribute?
26
+
27
+ ### Reporting Bugs
28
+
29
+ Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
30
+
31
+ - **Clear title and description** - Summarize the issue concisely
32
+ - **Steps to reproduce** - Detailed steps to recreate the bug
33
+ - **Expected vs actual behavior** - What should happen vs what happens
34
+ - **Environment details** - OS, Node.js version, package version
35
+ - **Code samples** - Minimal reproducible example if possible
36
+ - **Screenshots** - If applicable, add visual evidence
37
+
38
+ **Example Bug Report:**
39
+
40
+ ```markdown
41
+ **Bug:** Test generation fails for async functions with try-catch blocks
42
+
43
+ **Environment:**
44
+ - OS: Ubuntu 22.04
45
+ - Node.js: 18.17.0
46
+ - Agentic QE: 1.2.3
47
+
48
+ **Steps to Reproduce:**
49
+ 1. Run `aqe test src/async-handler.ts`
50
+ 2. Observe error in console
51
+
52
+ **Expected:** Tests generated successfully
53
+ **Actual:** TypeError: Cannot read property 'body' of undefined
54
+
55
+ **Code Sample:**
56
+ \`\`\`typescript
57
+ async function fetchData() {
58
+ try {
59
+ const response = await fetch('/api/data');
60
+ return await response.json();
61
+ } catch (error) {
62
+ console.error(error);
63
+ }
64
+ }
65
+ \`\`\`
66
+ ```
67
+
68
+ ### Suggesting Features
69
+
70
+ Feature suggestions are welcome! Please provide:
71
+
72
+ - **Clear use case** - Why is this feature needed?
73
+ - **Proposed solution** - How should it work?
74
+ - **Alternatives considered** - Other approaches you've thought about
75
+ - **Implementation ideas** - Technical approach if you have thoughts
76
+
77
+ **Example Feature Request:**
78
+
79
+ ```markdown
80
+ **Feature:** Visual regression testing agent
81
+
82
+ **Use Case:**
83
+ Teams need to catch UI regressions automatically. Manual visual testing
84
+ is time-consuming and error-prone.
85
+
86
+ **Proposed Solution:**
87
+ Add `qe-visual-tester` agent that:
88
+ - Captures screenshots during test execution
89
+ - Compares against baseline images
90
+ - Highlights visual differences
91
+ - Integrates with existing test suite
92
+
93
+ **Alternatives:**
94
+ - Manual visual testing (current state)
95
+ - Separate visual testing tools (adds complexity)
96
+
97
+ **Implementation Ideas:**
98
+ - Use Playwright for screenshot capture
99
+ - Leverage pixelmatch for image comparison
100
+ - Store baselines in project .visual-baselines/ directory
101
+ ```
102
+
103
+ ### Code Contributions
104
+
105
+ We love code contributions! Here's how to get started:
106
+
107
+ 1. **Fork the repository** on GitHub
108
+ 2. **Clone your fork** locally
109
+ 3. **Create a feature branch** from `main`
110
+ 4. **Make your changes** following coding standards
111
+ 5. **Write or update tests** for your changes
112
+ 6. **Run the test suite** to ensure nothing breaks
113
+ 7. **Commit your changes** using conventional commits
114
+ 8. **Push to your fork** and submit a pull request
115
+
116
+ ### Documentation Improvements
117
+
118
+ Documentation is crucial! You can contribute by:
119
+
120
+ - Fixing typos or clarifying existing docs
121
+ - Adding examples and use cases
122
+ - Writing tutorials or guides
123
+ - Improving API documentation
124
+ - Translating documentation (future)
125
+
126
+ ## Development Setup
127
+
128
+ ### Prerequisites
129
+
130
+ Before contributing to Agentic QE, you must have:
131
+
132
+ #### Required
133
+ - **Claude Code**: Install from [claude.ai/code](https://claude.ai/code) - Required for agent execution
134
+ - **Node.js** >= 18.0.0 (LTS recommended)
135
+ - **npm** >= 9.0.0 or **pnpm** >= 8.0.0
136
+ - **Git** >= 2.30.0
137
+ - **TypeScript** >= 5.0.0 (installed via npm)
138
+
139
+ #### Optional (Advanced Development)
140
+ - **Claude Flow**: For advanced coordination
141
+ ```bash
142
+ npm install -g @claude/flow
143
+ # or
144
+ npx claude-flow@alpha setup
145
+ ```
146
+
147
+ ### Understanding the Agent Execution Model
148
+
149
+ **Important**: Agentic QE agents are NOT standalone Node.js processes. They are:
150
+ - **Claude Code agent definitions** (markdown files in `.claude/agents/`)
151
+ - **Executed via Claude Code's Task tool**: `Task("description", "prompt", "agent-type")`
152
+ - **Integrated via MCP** (Model Context Protocol)
153
+ - **Coordinated through hooks** for cross-agent communication
154
+
155
+ When developing agents, you're creating:
156
+ 1. Agent definition files (`.claude/agents/qe-*.md`)
157
+ 2. TypeScript implementations in `src/agents/`
158
+ 3. MCP handlers in `src/mcp/handlers/`
159
+ 4. Tests in `tests/agents/` and `tests/integration/`
160
+
161
+ ### Installation Steps
162
+
163
+ 1. **Clone the repository:**
164
+
165
+ ```bash
166
+ git clone https://github.com/proffesor-for-testing/agentic-qe-cf.git
167
+ cd agentic-qe-cf/agentic-qe
168
+ ```
169
+
170
+ 2. **Install dependencies:**
171
+
172
+ ```bash
173
+ npm install
174
+ # or
175
+ pnpm install
176
+ ```
177
+
178
+ 3. **Build the project:**
179
+
180
+ ```bash
181
+ npm run build
182
+ ```
183
+
184
+ 4. **Verify installation:**
185
+
186
+ ```bash
187
+ npm run test
188
+ ./bin/aqe --version
189
+ ```
190
+
191
+ ### Running Tests
192
+
193
+ ```bash
194
+ # Run all tests
195
+ npm run test
196
+
197
+ # Run tests in watch mode
198
+ npm run test:watch
199
+
200
+ # Run tests with coverage
201
+ npm run test:coverage
202
+
203
+ # Run specific test file
204
+ npm run test -- tests/agents/TestGeneratorAgent.test.ts
205
+
206
+ # Run integration tests only
207
+ npm run test:integration
208
+ ```
209
+
210
+ ### Development Workflow
211
+
212
+ ```bash
213
+ # Start development mode (watch for changes)
214
+ npm run dev
215
+
216
+ # Run linter
217
+ npm run lint
218
+
219
+ # Fix linting issues automatically
220
+ npm run lint:fix
221
+
222
+ # Type checking
223
+ npm run typecheck
224
+
225
+ # Format code
226
+ npm run format
227
+
228
+ # Run all checks (lint + typecheck + test)
229
+ npm run validate
230
+ ```
231
+
232
+ ## Coding Standards
233
+
234
+ ### TypeScript Style Guide
235
+
236
+ We follow strict TypeScript conventions for type safety and code quality:
237
+
238
+ **Naming Conventions:**
239
+
240
+ ```typescript
241
+ // Classes: PascalCase
242
+ class TestGeneratorAgent { }
243
+
244
+ // Interfaces: PascalCase with 'I' prefix (optional but preferred)
245
+ interface IAgentConfig { }
246
+ interface AgentConfig { } // Also acceptable
247
+
248
+ // Types: PascalCase
249
+ type TestFramework = 'jest' | 'mocha' | 'vitest';
250
+
251
+ // Functions and methods: camelCase
252
+ function generateTests() { }
253
+ async function analyzeCode() { }
254
+
255
+ // Variables and constants: camelCase
256
+ const maxRetries = 3;
257
+ let currentAttempt = 0;
258
+
259
+ // Constants (truly immutable): UPPER_SNAKE_CASE
260
+ const DEFAULT_TIMEOUT = 5000;
261
+ const MAX_AGENTS = 16;
262
+
263
+ // Private class members: prefix with underscore
264
+ class Agent {
265
+ private _internalState: State;
266
+ private _config: Config;
267
+ }
268
+
269
+ // File names: kebab-case
270
+ // test-generator-agent.ts
271
+ // coverage-analyzer.ts
272
+ ```
273
+
274
+ **Code Organization:**
275
+
276
+ ```typescript
277
+ // 1. Imports (grouped and sorted)
278
+ import { readFile } from 'fs/promises';
279
+ import path from 'path';
280
+
281
+ import type { AgentConfig } from '../types';
282
+ import { BaseAgent } from './base-agent';
283
+ import { Logger } from '../utils/logger';
284
+
285
+ // 2. Type definitions and interfaces
286
+ interface GeneratorOptions {
287
+ framework: TestFramework;
288
+ coverage: boolean;
289
+ }
290
+
291
+ // 3. Constants
292
+ const DEFAULT_OPTIONS: GeneratorOptions = {
293
+ framework: 'jest',
294
+ coverage: true,
295
+ };
296
+
297
+ // 4. Class implementation
298
+ export class TestGeneratorAgent extends BaseAgent {
299
+ // Public properties first
300
+ public readonly name = 'TestGenerator';
301
+
302
+ // Private properties
303
+ private _options: GeneratorOptions;
304
+
305
+ // Constructor
306
+ constructor(options?: Partial<GeneratorOptions>) {
307
+ super();
308
+ this._options = { ...DEFAULT_OPTIONS, ...options };
309
+ }
310
+
311
+ // Public methods
312
+ async generate(filePath: string): Promise<string> {
313
+ // Implementation
314
+ }
315
+
316
+ // Private methods
317
+ private async _analyzeFile(path: string): Promise<Analysis> {
318
+ // Implementation
319
+ }
320
+ }
321
+
322
+ // 5. Helper functions (if any)
323
+ function formatTestName(name: string): string {
324
+ return name.replace(/([A-Z])/g, ' $1').trim();
325
+ }
326
+ ```
327
+
328
+ **Best Practices:**
329
+
330
+ ```typescript
331
+ // ✅ DO: Use async/await over promises
332
+ async function fetchData(): Promise<Data> {
333
+ const response = await fetch('/api/data');
334
+ return await response.json();
335
+ }
336
+
337
+ // ❌ DON'T: Use promise chains
338
+ function fetchData(): Promise<Data> {
339
+ return fetch('/api/data')
340
+ .then(response => response.json());
341
+ }
342
+
343
+ // ✅ DO: Use type guards
344
+ function isError(value: unknown): value is Error {
345
+ return value instanceof Error;
346
+ }
347
+
348
+ // ✅ DO: Use optional chaining and nullish coalescing
349
+ const config = userConfig?.timeout ?? DEFAULT_TIMEOUT;
350
+
351
+ // ✅ DO: Prefer readonly for immutable data
352
+ interface Config {
353
+ readonly timeout: number;
354
+ readonly retries: number;
355
+ }
356
+
357
+ // ✅ DO: Use discriminated unions for state
358
+ type AgentState =
359
+ | { status: 'idle' }
360
+ | { status: 'running'; progress: number }
361
+ | { status: 'error'; error: Error };
362
+
363
+ // ✅ DO: Document complex logic
364
+ /**
365
+ * Analyzes test coverage using sublinear algorithms.
366
+ *
367
+ * Implements O(log n) coverage analysis through:
368
+ * 1. Binary search over test execution traces
369
+ * 2. Sparse matrix representation of code paths
370
+ * 3. Probabilistic coverage estimation
371
+ *
372
+ * @param testResults - Array of test execution results
373
+ * @returns Coverage analysis with gap identification
374
+ */
375
+ async function analyzeCoverage(testResults: TestResult[]): Promise<CoverageAnalysis> {
376
+ // Implementation
377
+ }
378
+ ```
379
+
380
+ ### File Size Limits
381
+
382
+ - Keep files under **500 lines** when possible
383
+ - Extract large functions into separate modules
384
+ - Use the single responsibility principle
385
+
386
+ ### Testing Requirements
387
+
388
+ Every contribution must include tests:
389
+
390
+ - **Unit tests** for new functions/classes (required)
391
+ - **Integration tests** for new features (required)
392
+ - **Edge cases** and error conditions (required)
393
+ - Aim for **80%+ code coverage** (enforced)
394
+
395
+ ```typescript
396
+ // Example test structure
397
+ describe('TestGeneratorAgent', () => {
398
+ let agent: TestGeneratorAgent;
399
+
400
+ beforeEach(() => {
401
+ agent = new TestGeneratorAgent();
402
+ });
403
+
404
+ afterEach(() => {
405
+ jest.clearAllMocks();
406
+ });
407
+
408
+ describe('generate', () => {
409
+ it('should generate tests for a simple function', async () => {
410
+ // Arrange
411
+ const filePath = '/path/to/file.ts';
412
+ const expectedTests = expect.stringContaining('describe');
413
+
414
+ // Act
415
+ const result = await agent.generate(filePath);
416
+
417
+ // Assert
418
+ expect(result).toBe(expectedTests);
419
+ });
420
+
421
+ it('should handle async functions', async () => {
422
+ // Test async behavior
423
+ });
424
+
425
+ it('should throw error for invalid file path', async () => {
426
+ // Test error handling
427
+ await expect(agent.generate('/invalid')).rejects.toThrow();
428
+ });
429
+ });
430
+ });
431
+ ```
432
+
433
+ ### Documentation Requirements
434
+
435
+ - **JSDoc comments** for all public APIs
436
+ - **Inline comments** for complex logic
437
+ - **README updates** for new features
438
+ - **Type definitions** with descriptions
439
+
440
+ ```typescript
441
+ /**
442
+ * Base agent class providing core functionality for all AQE agents.
443
+ *
444
+ * All specialized agents (TestGenerator, CoverageAnalyzer, etc.) extend
445
+ * this class to inherit coordination, memory, and lifecycle management.
446
+ *
447
+ * @example
448
+ * ```typescript
449
+ * class CustomAgent extends BaseAgent {
450
+ * constructor() {
451
+ * super({ name: 'CustomAgent', version: '1.0.0' });
452
+ * }
453
+ *
454
+ * async execute() {
455
+ * await this.storeMemory('key', 'value');
456
+ * return { success: true };
457
+ * }
458
+ * }
459
+ * ```
460
+ */
461
+ export abstract class BaseAgent {
462
+ /**
463
+ * Unique identifier for this agent instance.
464
+ * Generated automatically on instantiation.
465
+ */
466
+ readonly id: string;
467
+
468
+ /**
469
+ * Stores data in the shared memory system for cross-agent communication.
470
+ *
471
+ * @param key - Memory key (use 'aqe/agent-name/key' convention)
472
+ * @param value - Data to store (must be JSON-serializable)
473
+ * @throws {MemoryError} If storage fails or quota exceeded
474
+ */
475
+ protected async storeMemory(key: string, value: unknown): Promise<void> {
476
+ // Implementation
477
+ }
478
+ }
479
+ ```
480
+
481
+ ## Commit Message Convention
482
+
483
+ We use [Conventional Commits](https://www.conventionalcommits.org/) for clear, structured commit history.
484
+
485
+ ### Format
486
+
487
+ ```
488
+ <type>(<scope>): <subject>
489
+
490
+ <body>
491
+
492
+ <footer>
493
+ ```
494
+
495
+ ### Types
496
+
497
+ - **feat**: New feature
498
+ - **fix**: Bug fix
499
+ - **docs**: Documentation changes
500
+ - **style**: Code style changes (formatting, semicolons, etc.)
501
+ - **refactor**: Code refactoring without behavior change
502
+ - **perf**: Performance improvements
503
+ - **test**: Adding or updating tests
504
+ - **chore**: Maintenance tasks (dependencies, build, etc.)
505
+ - **ci**: CI/CD changes
506
+ - **revert**: Reverting previous commits
507
+
508
+ ### Scopes
509
+
510
+ Use component names as scopes:
511
+
512
+ - **agent**: Agent-related changes
513
+ - **mcp**: MCP server/handler changes
514
+ - **cli**: CLI command changes
515
+ - **core**: Core framework changes
516
+ - **test**: Test infrastructure changes
517
+
518
+ ### Examples
519
+
520
+ ```bash
521
+ # Feature
522
+ feat(agent): add visual regression testing agent
523
+
524
+ Implements new agent for visual testing with screenshot comparison.
525
+
526
+ - Captures screenshots using Playwright
527
+ - Compares against baseline images
528
+ - Highlights visual differences
529
+ - Integrates with existing test suite
530
+
531
+ Closes #123
532
+
533
+ # Bug fix
534
+ fix(mcp): handle undefined agent configs gracefully
535
+
536
+ Fixes crash when agent config is missing optional fields.
537
+
538
+ Fixes #456
539
+
540
+ # Documentation
541
+ docs(readme): update installation instructions
542
+
543
+ Add prerequisite versions and troubleshooting section.
544
+
545
+ # Refactoring
546
+ refactor(agent): extract common test generation logic
547
+
548
+ Moves shared test generation code to base class to reduce duplication.
549
+
550
+ # Performance
551
+ perf(coverage): optimize O(log n) coverage analysis
552
+
553
+ Implements sparse matrix representation reducing memory usage by 40%.
554
+ ```
555
+
556
+ ### Rules
557
+
558
+ - Use imperative mood ("add feature" not "added feature")
559
+ - Keep subject line under 72 characters
560
+ - Capitalize first letter of subject
561
+ - No period at end of subject
562
+ - Separate subject from body with blank line
563
+ - Wrap body at 72 characters
564
+ - Use body to explain what and why, not how
565
+
566
+ ## Pull Request Process
567
+
568
+ ### Branch Naming
569
+
570
+ Use descriptive branch names with prefixes:
571
+
572
+ ```bash
573
+ # Features
574
+ git checkout -b feat/visual-testing-agent
575
+ git checkout -b feat/add-playwright-integration
576
+
577
+ # Bug fixes
578
+ git checkout -b fix/async-test-generation
579
+ git checkout -b fix/memory-leak-in-analyzer
580
+
581
+ # Documentation
582
+ git checkout -b docs/contributing-guide
583
+ git checkout -b docs/api-reference-update
584
+
585
+ # Refactoring
586
+ git checkout -b refactor/test-generator-cleanup
587
+ ```
588
+
589
+ ### Before Submitting
590
+
591
+ 1. **Update your branch** with latest main:
592
+ ```bash
593
+ git checkout main
594
+ git pull origin main
595
+ git checkout your-branch
596
+ git rebase main
597
+ ```
598
+
599
+ 2. **Run all checks**:
600
+ ```bash
601
+ npm run validate # Runs lint, typecheck, and tests
602
+ npm run test:coverage # Ensure 80%+ coverage
603
+ ```
604
+
605
+ 3. **Update documentation** if needed
606
+
607
+ 4. **Write clear commit messages** following conventions
608
+
609
+ ### Pull Request Template
610
+
611
+ When creating a PR, include:
612
+
613
+ ```markdown
614
+ ## Description
615
+ Brief description of changes and motivation.
616
+
617
+ ## Type of Change
618
+ - [ ] Bug fix (non-breaking change fixing an issue)
619
+ - [ ] New feature (non-breaking change adding functionality)
620
+ - [ ] Breaking change (fix or feature causing existing functionality to change)
621
+ - [ ] Documentation update
622
+
623
+ ## Testing
624
+ - [ ] Unit tests added/updated
625
+ - [ ] Integration tests added/updated
626
+ - [ ] All tests passing locally
627
+ - [ ] Coverage maintained at 80%+
628
+
629
+ ## Checklist
630
+ - [ ] Code follows project style guidelines
631
+ - [ ] Self-review completed
632
+ - [ ] Comments added for complex logic
633
+ - [ ] Documentation updated
634
+ - [ ] No new warnings generated
635
+ - [ ] Dependent changes merged and published
636
+
637
+ ## Related Issues
638
+ Closes #123
639
+ Related to #456
640
+
641
+ ## Screenshots (if applicable)
642
+ Add screenshots for UI changes.
643
+
644
+ ## Additional Context
645
+ Any other relevant information.
646
+ ```
647
+
648
+ ### Review Process
649
+
650
+ 1. **Automated checks** must pass (CI/CD pipeline)
651
+ 2. **At least one maintainer** review required
652
+ 3. **Address feedback** promptly and professionally
653
+ 4. **Squash commits** if requested to maintain clean history
654
+ 5. **Update branch** if main has advanced
655
+
656
+ ### Merge Criteria
657
+
658
+ PRs will be merged when:
659
+
660
+ - ✅ All CI checks pass
661
+ - ✅ Code review approved by maintainer(s)
662
+ - ✅ Test coverage maintained (80%+)
663
+ - ✅ Documentation updated
664
+ - ✅ No merge conflicts
665
+ - ✅ Conventional commits followed
666
+
667
+ ## Testing Guidelines
668
+
669
+ ### Unit Tests
670
+
671
+ Test individual functions and classes in isolation:
672
+
673
+ ```typescript
674
+ // tests/agents/test-generator.test.ts
675
+ import { TestGeneratorAgent } from '../../src/agents/TestGeneratorAgent';
676
+
677
+ describe('TestGeneratorAgent', () => {
678
+ describe('generateTestSuite', () => {
679
+ it('should generate Jest test suite for simple function', async () => {
680
+ const agent = new TestGeneratorAgent({ framework: 'jest' });
681
+ const sourceCode = `
682
+ export function add(a: number, b: number): number {
683
+ return a + b;
684
+ }
685
+ `;
686
+
687
+ const result = await agent.generateTestSuite(sourceCode);
688
+
689
+ expect(result).toContain('describe');
690
+ expect(result).toContain('it(');
691
+ expect(result).toContain('expect');
692
+ });
693
+
694
+ it('should handle edge cases correctly', async () => {
695
+ // Test edge cases
696
+ });
697
+
698
+ it('should throw ValidationError for invalid input', async () => {
699
+ const agent = new TestGeneratorAgent();
700
+
701
+ await expect(agent.generateTestSuite('')).rejects.toThrow(ValidationError);
702
+ });
703
+ });
704
+ });
705
+ ```
706
+
707
+ ### Integration Tests
708
+
709
+ Test component interactions and end-to-end workflows:
710
+
711
+ ```typescript
712
+ // tests/integration/test-generation-flow.test.ts
713
+ describe('Test Generation Flow', () => {
714
+ it('should generate and execute tests for real project', async () => {
715
+ // Arrange
716
+ const projectPath = '/path/to/sample-project';
717
+ const generator = new TestGeneratorAgent();
718
+ const executor = new TestExecutorAgent();
719
+
720
+ // Act - Generate tests
721
+ const tests = await generator.generateForProject(projectPath);
722
+
723
+ // Act - Execute tests
724
+ const results = await executor.execute(tests);
725
+
726
+ // Assert
727
+ expect(results.passed).toBeGreaterThan(0);
728
+ expect(results.coverage).toBeGreaterThanOrEqual(80);
729
+ });
730
+ });
731
+ ```
732
+
733
+ ### Test Organization
734
+
735
+ ```
736
+ tests/
737
+ ├── agents/ # Unit tests for agents
738
+ │ ├── TestGeneratorAgent.test.ts
739
+ │ ├── CoverageAnalyzerAgent.test.ts
740
+ │ └── ...
741
+ ├── mcp/ # Unit tests for MCP handlers
742
+ │ ├── test-generate.test.ts
743
+ │ └── test-execute.test.ts
744
+ ├── integration/ # Integration tests
745
+ │ ├── test-generation-flow.test.ts
746
+ │ ├── coverage-analysis-flow.test.ts
747
+ │ └── ...
748
+ └── fixtures/ # Test fixtures and mocks
749
+ ├── sample-code.ts
750
+ └── mock-data.json
751
+ ```
752
+
753
+ ### Coverage Expectations
754
+
755
+ - **Overall coverage**: 80%+
756
+ - **Critical paths**: 95%+
757
+ - **New code**: 100% (or justify exceptions)
758
+ - **Edge cases**: Well tested
759
+
760
+ Run coverage report:
761
+
762
+ ```bash
763
+ npm run test:coverage
764
+
765
+ # View HTML report
766
+ open coverage/lcov-report/index.html
767
+ ```
768
+
769
+ ### Mocking Best Practices
770
+
771
+ ```typescript
772
+ // Use Jest mocks for external dependencies
773
+ jest.mock('fs/promises', () => ({
774
+ readFile: jest.fn(),
775
+ writeFile: jest.fn(),
776
+ }));
777
+
778
+ // Mock implementations
779
+ const mockReadFile = readFile as jest.MockedFunction<typeof readFile>;
780
+ mockReadFile.mockResolvedValue('file content');
781
+
782
+ // Verify mock calls
783
+ expect(mockReadFile).toHaveBeenCalledWith('/path/to/file', 'utf-8');
784
+ ```
785
+
786
+ ## Documentation
787
+
788
+ ### Code Comments
789
+
790
+ ```typescript
791
+ // ✅ Good: Explains WHY, not what
792
+ // Use binary search because array is pre-sorted by timestamp
793
+ const index = binarySearch(items, timestamp);
794
+
795
+ // ❌ Bad: Explains what code already shows
796
+ // Search the array for the timestamp
797
+ const index = binarySearch(items, timestamp);
798
+
799
+ // ✅ Good: Documents complex algorithm
800
+ /**
801
+ * Implements sublinear coverage analysis using probabilistic sampling.
802
+ *
803
+ * Algorithm complexity: O(log n)
804
+ * Memory usage: O(1) for sparse matrices
805
+ *
806
+ * Trade-offs:
807
+ * - 99.9% accuracy with 0.1% false positive rate
808
+ * - 40% faster than full coverage analysis
809
+ * - Suitable for projects with 10K+ test cases
810
+ */
811
+ ```
812
+
813
+ ### API Documentation
814
+
815
+ Use JSDoc for all public APIs:
816
+
817
+ ```typescript
818
+ /**
819
+ * Analyzes test coverage and identifies gaps using sublinear algorithms.
820
+ *
821
+ * @param options - Configuration options
822
+ * @param options.projectPath - Path to project root
823
+ * @param options.threshold - Minimum coverage threshold (0-100)
824
+ * @param options.algorithms - Sublinear algorithms to use
825
+ * @returns Coverage analysis with gap identification
826
+ * @throws {ValidationError} If project path is invalid
827
+ * @throws {AnalysisError} If coverage analysis fails
828
+ *
829
+ * @example
830
+ * ```typescript
831
+ * const analyzer = new CoverageAnalyzerAgent();
832
+ * const analysis = await analyzer.analyze({
833
+ * projectPath: '/path/to/project',
834
+ * threshold: 80,
835
+ * algorithms: ['binary-search', 'sparse-matrix']
836
+ * });
837
+ *
838
+ * console.log(`Coverage: ${analysis.percentage}%`);
839
+ * console.log(`Gaps: ${analysis.gaps.length}`);
840
+ * ```
841
+ */
842
+ ```
843
+
844
+ ### README Updates
845
+
846
+ When adding features, update relevant README sections:
847
+
848
+ - Installation steps if dependencies change
849
+ - Usage examples for new commands
850
+ - Configuration options for new settings
851
+ - Troubleshooting for common issues
852
+
853
+ ## Community
854
+
855
+ ### Getting Help
856
+
857
+ - **GitHub Discussions**: Ask questions and share ideas
858
+ - **Discord Server**: Real-time chat with maintainers and community
859
+ - **Stack Overflow**: Tag questions with `agentic-qe`
860
+ - **GitHub Issues**: Bug reports and feature requests
861
+
862
+ ### Communication Channels
863
+
864
+ - **GitHub Discussions**: https://github.com/agentic-qe/agentic-qe-cf/discussions
865
+ - **Discord**: [Join our server](#) (link TBD)
866
+ - **Twitter**: [@AgenticQE](#) (link TBD)
867
+ - **Blog**: [blog.agentic-qe.dev](#) (link TBD)
868
+
869
+ ### Recognition
870
+
871
+ We value all contributions! Contributors are recognized in:
872
+
873
+ - **CONTRIBUTORS.md**: All contributors listed
874
+ - **Release notes**: Significant contributions highlighted
875
+ - **GitHub profile**: Contribution graph and badges
876
+ - **Monthly spotlight**: Featured contributors in blog posts
877
+
878
+ ### Mentorship
879
+
880
+ New to open source? We're here to help!
881
+
882
+ - **Good first issues**: Tagged for beginners
883
+ - **Mentorship program**: Pair with experienced contributors
884
+ - **Documentation**: Extensive guides and examples
885
+ - **Code reviews**: Constructive feedback to learn and grow
886
+
887
+ ## Questions?
888
+
889
+ Don't hesitate to ask! Open a discussion or reach out to maintainers. We're here to help and excited to have you contribute to Agentic QE.
890
+
891
+ Thank you for contributing! 🎉
892
+
893
+ ---
894
+
895
+ **License**: By contributing, you agree that your contributions will be licensed under the project's license.
896
+
897
+ **Attribution**: This contributing guide was inspired by open-source best practices from projects like TypeScript, Jest, and Playwright.