agentic-qe 3.6.1 → 3.6.3

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 (517) hide show
  1. package/.claude/agents/v3/qe-accessibility-auditor.md +14 -9
  2. package/.claude/agents/v3/qe-bdd-generator.md +14 -9
  3. package/.claude/agents/v3/qe-chaos-engineer.md +15 -10
  4. package/.claude/agents/v3/qe-code-complexity.md +14 -9
  5. package/.claude/agents/v3/qe-code-intelligence.md +14 -9
  6. package/.claude/agents/v3/qe-contract-validator.md +14 -9
  7. package/.claude/agents/v3/qe-coverage-specialist.md +14 -9
  8. package/.claude/agents/v3/qe-defect-predictor.md +14 -9
  9. package/.claude/agents/v3/qe-dependency-mapper.md +14 -9
  10. package/.claude/agents/v3/qe-deployment-advisor.md +14 -9
  11. package/.claude/agents/v3/qe-flaky-hunter.md +14 -9
  12. package/.claude/agents/v3/qe-fleet-commander.md +14 -9
  13. package/.claude/agents/v3/qe-gap-detector.md +14 -9
  14. package/.claude/agents/v3/qe-graphql-tester.md +14 -9
  15. package/.claude/agents/v3/qe-impact-analyzer.md +14 -9
  16. package/.claude/agents/v3/qe-kg-builder.md +14 -9
  17. package/.claude/agents/v3/qe-load-tester.md +14 -9
  18. package/.claude/agents/v3/qe-message-broker-tester.md +15 -10
  19. package/.claude/agents/v3/qe-metrics-optimizer.md +14 -9
  20. package/.claude/agents/v3/qe-middleware-validator.md +15 -10
  21. package/.claude/agents/v3/qe-mutation-tester.md +14 -9
  22. package/.claude/agents/v3/qe-odata-contract-tester.md +17 -12
  23. package/.claude/agents/v3/qe-performance-tester.md +14 -9
  24. package/.claude/agents/v3/qe-product-factors-assessor.md +19 -0
  25. package/.claude/agents/v3/qe-property-tester.md +14 -9
  26. package/.claude/agents/v3/qe-quality-criteria-recommender.md +2 -2
  27. package/.claude/agents/v3/qe-qx-partner.md +101 -14
  28. package/.claude/agents/v3/qe-regression-analyzer.md +14 -9
  29. package/.claude/agents/v3/qe-requirements-validator.md +14 -9
  30. package/.claude/agents/v3/qe-responsive-tester.md +14 -9
  31. package/.claude/agents/v3/qe-retry-handler.md +14 -9
  32. package/.claude/agents/v3/qe-risk-assessor.md +14 -9
  33. package/.claude/agents/v3/qe-root-cause-analyzer.md +14 -9
  34. package/.claude/agents/v3/qe-sap-idoc-tester.md +16 -11
  35. package/.claude/agents/v3/qe-sap-rfc-tester.md +15 -10
  36. package/.claude/agents/v3/qe-security-auditor.md +18 -9
  37. package/.claude/agents/v3/qe-security-scanner.md +15 -10
  38. package/.claude/agents/v3/qe-soap-tester.md +15 -10
  39. package/.claude/agents/v3/qe-sod-analyzer.md +17 -12
  40. package/.claude/agents/v3/qe-test-architect.md +14 -9
  41. package/.claude/agents/v3/qe-transfer-specialist.md +14 -9
  42. package/.claude/agents/v3/subagents/qe-code-reviewer.md +14 -9
  43. package/.claude/agents/v3/subagents/qe-integration-reviewer.md +14 -9
  44. package/.claude/agents/v3/subagents/qe-performance-reviewer.md +14 -9
  45. package/.claude/agents/v3/subagents/qe-security-reviewer.md +14 -9
  46. package/.claude/agents/v3/subagents/qe-tdd-green.md +14 -9
  47. package/.claude/agents/v3/subagents/qe-tdd-red.md +14 -9
  48. package/.claude/agents/v3/subagents/qe-tdd-refactor.md +14 -9
  49. package/.claude/agents/v3/templates/qx-report-template.html +26 -22
  50. package/.claude/skills/.validation/README.md +2 -2
  51. package/.claude/skills/.validation/skill-validation-mcp-integration.md +1 -1
  52. package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
  53. package/.claude/skills/TRUST-TIERS.md +55 -55
  54. package/.claude/skills/a11y-ally/SKILL.md +1 -1
  55. package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
  56. package/.claude/skills/a11y-ally/scripts/validate-config.json +42 -0
  57. package/.claude/skills/accessibility-testing/SKILL.md +1 -1
  58. package/.claude/skills/accessibility-testing/scripts/validate-config.json +56 -0
  59. package/.claude/skills/api-testing-patterns/SKILL.md +1 -1
  60. package/.claude/skills/api-testing-patterns/scripts/validate-config.json +61 -0
  61. package/.claude/skills/brutal-honesty-review/SKILL.md +1 -1
  62. package/.claude/skills/brutal-honesty-review/scripts/validate-config.json +34 -0
  63. package/.claude/skills/bug-reporting-excellence/SKILL.md +1 -1
  64. package/.claude/skills/bug-reporting-excellence/scripts/validate-config.json +34 -0
  65. package/.claude/skills/chaos-engineering-resilience/SKILL.md +1 -1
  66. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  67. package/.claude/skills/chaos-engineering-resilience/scripts/validate-config.json +47 -0
  68. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +1 -1
  69. package/.claude/skills/cicd-pipeline-qe-orchestrator/scripts/validate-config.json +42 -0
  70. package/.claude/skills/code-review-quality/SKILL.md +1 -1
  71. package/.claude/skills/code-review-quality/scripts/validate-config.json +34 -0
  72. package/.claude/skills/compatibility-testing/SKILL.md +1 -1
  73. package/.claude/skills/compatibility-testing/scripts/validate-config.json +44 -0
  74. package/.claude/skills/compliance-testing/SKILL.md +1 -1
  75. package/.claude/skills/compliance-testing/scripts/validate-config.json +39 -0
  76. package/.claude/skills/contract-testing/SKILL.md +1 -1
  77. package/.claude/skills/contract-testing/scripts/validate-config.json +59 -0
  78. package/.claude/skills/database-testing/SKILL.md +1 -1
  79. package/.claude/skills/database-testing/evals/database-testing.yaml +1 -1
  80. package/.claude/skills/database-testing/scripts/validate-config.json +48 -0
  81. package/.claude/skills/enterprise-integration-testing/SKILL.md +1 -1
  82. package/.claude/skills/localization-testing/SKILL.md +1 -1
  83. package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
  84. package/.claude/skills/localization-testing/scripts/validate-config.json +42 -0
  85. package/.claude/skills/middleware-testing-patterns/SKILL.md +1 -1
  86. package/.claude/skills/mobile-testing/SKILL.md +1 -1
  87. package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
  88. package/.claude/skills/mobile-testing/scripts/validate-config.json +43 -0
  89. package/.claude/skills/mutation-testing/SKILL.md +1 -1
  90. package/.claude/skills/mutation-testing/scripts/validate-config.json +44 -0
  91. package/.claude/skills/n8n-expression-testing/SKILL.md +1 -1
  92. package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
  93. package/.claude/skills/n8n-expression-testing/scripts/validate-config.json +39 -0
  94. package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +1 -1
  95. package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
  96. package/.claude/skills/n8n-integration-testing-patterns/scripts/validate-config.json +34 -0
  97. package/.claude/skills/n8n-security-testing/SKILL.md +1 -1
  98. package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
  99. package/.claude/skills/n8n-security-testing/scripts/validate-config.json +34 -0
  100. package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +1 -1
  101. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  102. package/.claude/skills/n8n-trigger-testing-strategies/scripts/validate-config.json +34 -0
  103. package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +1 -1
  104. package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
  105. package/.claude/skills/n8n-workflow-testing-fundamentals/scripts/validate-config.json +35 -0
  106. package/.claude/skills/observability-testing-patterns/SKILL.md +1 -1
  107. package/.claude/skills/pentest-validation/SKILL.md +1 -1
  108. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
  109. package/.claude/skills/pentest-validation/scripts/validate-config.json +12 -0
  110. package/.claude/skills/performance-analysis/SKILL.md +1 -1
  111. package/.claude/skills/performance-analysis/scripts/validate-config.json +36 -0
  112. package/.claude/skills/performance-testing/SKILL.md +1 -1
  113. package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
  114. package/.claude/skills/performance-testing/scripts/validate-config.json +55 -0
  115. package/.claude/skills/qcsd-cicd-swarm/SKILL.md +1 -1
  116. package/.claude/skills/qcsd-development-swarm/SKILL.md +1 -1
  117. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1 -1
  118. package/.claude/skills/qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  119. package/.claude/skills/qcsd-refinement-swarm/SKILL.md +1 -1
  120. package/.claude/skills/qcsd-refinement-swarm/scripts/validate-config.json +25 -0
  121. package/.claude/skills/qe-chaos-resilience/SKILL.md +1 -1
  122. package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
  123. package/.claude/skills/qe-chaos-resilience/scripts/validate-config.json +43 -0
  124. package/.claude/skills/qe-code-intelligence/SKILL.md +1 -1
  125. package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
  126. package/.claude/skills/qe-code-intelligence/scripts/validate-config.json +41 -0
  127. package/.claude/skills/qe-contract-testing/SKILL.md +1 -1
  128. package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +1 -1
  129. package/.claude/skills/qe-contract-testing/scripts/validate-config.json +42 -0
  130. package/.claude/skills/qe-coverage-analysis/SKILL.md +1 -1
  131. package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
  132. package/.claude/skills/qe-coverage-analysis/scripts/validate-config.json +42 -0
  133. package/.claude/skills/qe-defect-intelligence/SKILL.md +1 -1
  134. package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
  135. package/.claude/skills/qe-defect-intelligence/scripts/validate-config.json +40 -0
  136. package/.claude/skills/qe-iterative-loop/SKILL.md +1 -1
  137. package/.claude/skills/qe-iterative-loop/scripts/validate-config.json +40 -0
  138. package/.claude/skills/qe-learning-optimization/SKILL.md +1 -1
  139. package/.claude/skills/qe-learning-optimization/scripts/validate-config.json +25 -0
  140. package/.claude/skills/qe-quality-assessment/SKILL.md +1 -1
  141. package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
  142. package/.claude/skills/qe-quality-assessment/scripts/validate-config.json +47 -0
  143. package/.claude/skills/qe-requirements-validation/SKILL.md +1 -1
  144. package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
  145. package/.claude/skills/qe-requirements-validation/scripts/validate-config.json +37 -0
  146. package/.claude/skills/qe-security-compliance/SKILL.md +1 -1
  147. package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +1 -1
  148. package/.claude/skills/qe-security-compliance/scripts/validate-config.json +41 -0
  149. package/.claude/skills/qe-test-execution/SKILL.md +1 -1
  150. package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
  151. package/.claude/skills/qe-test-execution/scripts/validate-config.json +37 -0
  152. package/.claude/skills/qe-test-generation/SKILL.md +1 -1
  153. package/.claude/skills/qe-test-generation/scripts/validate-config.json +25 -0
  154. package/.claude/skills/qe-visual-accessibility/SKILL.md +1 -1
  155. package/.claude/skills/qe-visual-accessibility/scripts/validate-config.json +25 -0
  156. package/.claude/skills/quality-metrics/SKILL.md +1 -1
  157. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  158. package/.claude/skills/quality-metrics/scripts/validate-config.json +43 -0
  159. package/.claude/skills/refactoring-patterns/SKILL.md +1 -1
  160. package/.claude/skills/refactoring-patterns/scripts/validate-config.json +35 -0
  161. package/.claude/skills/regression-testing/SKILL.md +1 -1
  162. package/.claude/skills/regression-testing/evals/regression-testing.yaml +1 -1
  163. package/.claude/skills/regression-testing/scripts/validate-config.json +50 -0
  164. package/.claude/skills/risk-based-testing/SKILL.md +1 -1
  165. package/.claude/skills/risk-based-testing/scripts/validate-config.json +25 -0
  166. package/.claude/skills/security-testing/SKILL.md +1 -1
  167. package/.claude/skills/security-testing/evals/security-testing.yaml +1 -1
  168. package/.claude/skills/security-testing/scripts/validate-config.json +45 -0
  169. package/.claude/skills/security-visual-testing/SKILL.md +1 -1
  170. package/.claude/skills/security-visual-testing/scripts/validate-config.json +45 -0
  171. package/.claude/skills/sherlock-review/SKILL.md +1 -1
  172. package/.claude/skills/sherlock-review/scripts/validate-config.json +35 -0
  173. package/.claude/skills/shift-left-testing/SKILL.md +1 -1
  174. package/.claude/skills/shift-left-testing/scripts/validate-config.json +25 -0
  175. package/.claude/skills/shift-right-testing/SKILL.md +1 -1
  176. package/.claude/skills/shift-right-testing/scripts/validate-config.json +25 -0
  177. package/.claude/skills/skill-builder/SKILL.md +2 -2
  178. package/.claude/skills/skills-manifest.json +1 -1
  179. package/.claude/skills/tdd-london-chicago/SKILL.md +1 -1
  180. package/.claude/skills/tdd-london-chicago/scripts/validate-config.json +43 -0
  181. package/.claude/skills/test-automation-strategy/SKILL.md +1 -1
  182. package/.claude/skills/test-automation-strategy/scripts/validate-config.json +39 -0
  183. package/.claude/skills/test-data-management/SKILL.md +1 -1
  184. package/.claude/skills/test-data-management/evals/test-data-management.yaml +1 -1
  185. package/.claude/skills/test-data-management/scripts/validate-config.json +41 -0
  186. package/.claude/skills/test-design-techniques/SKILL.md +1 -1
  187. package/.claude/skills/test-design-techniques/scripts/validate-config.json +36 -0
  188. package/.claude/skills/test-reporting-analytics/SKILL.md +1 -1
  189. package/.claude/skills/test-reporting-analytics/scripts/validate-config.json +36 -0
  190. package/.claude/skills/testability-scoring/SKILL.md +1 -1
  191. package/.claude/skills/testability-scoring/scripts/validate-config.json +42 -0
  192. package/.claude/skills/trust-tier-manifest.json +106 -106
  193. package/.claude/skills/verification-quality/scripts/validate-config.json +36 -0
  194. package/.claude/skills/visual-testing-advanced/SKILL.md +1 -1
  195. package/.claude/skills/visual-testing-advanced/scripts/validate-config.json +38 -0
  196. package/.claude/skills/wms-testing-patterns/SKILL.md +1 -1
  197. package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -0
  198. package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -0
  199. package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -0
  200. package/README.md +20 -20
  201. package/package.json +6 -6
  202. package/scripts/cloud-db-config.json +1 -1
  203. package/scripts/migrate-validators.cjs +171 -0
  204. package/scripts/postinstall.cjs +57 -0
  205. package/scripts/preinstall.cjs +28 -8
  206. package/scripts/test-schema-validation.js +2 -2
  207. package/scripts/update-skill-manifest.ts +3 -3
  208. package/scripts/validate-skill.cjs +384 -0
  209. package/scripts/validate-tier3.cjs +61 -0
  210. package/scripts/validator-lib.cjs +274 -0
  211. package/v3/CHANGELOG.md +32 -0
  212. package/v3/assets/agents/v3/qe-product-factors-assessor.md +19 -0
  213. package/v3/assets/agents/v3/qe-quality-criteria-recommender.md +2 -2
  214. package/v3/assets/agents/v3/qe-qx-partner.md +27 -0
  215. package/v3/assets/skills/.validation/README.md +1 -1
  216. package/v3/assets/skills/.validation/skill-validation-mcp-integration.md +1 -1
  217. package/v3/assets/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
  218. package/v3/assets/skills/accessibility-testing/SKILL.md +1 -1
  219. package/v3/assets/skills/accessibility-testing/scripts/validate-config.json +56 -0
  220. package/v3/assets/skills/api-testing-patterns/SKILL.md +1 -1
  221. package/v3/assets/skills/api-testing-patterns/scripts/validate-config.json +61 -0
  222. package/v3/assets/skills/bug-reporting-excellence/SKILL.md +1 -1
  223. package/v3/assets/skills/bug-reporting-excellence/scripts/validate-config.json +34 -0
  224. package/v3/assets/skills/chaos-engineering-resilience/SKILL.md +1 -1
  225. package/v3/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  226. package/v3/assets/skills/chaos-engineering-resilience/scripts/validate-config.json +47 -0
  227. package/v3/assets/skills/code-review-quality/SKILL.md +1 -1
  228. package/v3/assets/skills/code-review-quality/scripts/validate-config.json +34 -0
  229. package/v3/assets/skills/compatibility-testing/SKILL.md +1 -1
  230. package/v3/assets/skills/compatibility-testing/scripts/validate-config.json +44 -0
  231. package/v3/assets/skills/compliance-testing/SKILL.md +1 -1
  232. package/v3/assets/skills/compliance-testing/scripts/validate-config.json +39 -0
  233. package/v3/assets/skills/contract-testing/SKILL.md +1 -1
  234. package/v3/assets/skills/contract-testing/scripts/validate-config.json +59 -0
  235. package/v3/assets/skills/database-testing/SKILL.md +1 -1
  236. package/v3/assets/skills/database-testing/evals/database-testing.yaml +1 -1
  237. package/v3/assets/skills/database-testing/scripts/validate-config.json +48 -0
  238. package/v3/assets/skills/enterprise-integration-testing/SKILL.md +1 -1
  239. package/v3/assets/skills/localization-testing/SKILL.md +1 -1
  240. package/v3/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
  241. package/v3/assets/skills/localization-testing/scripts/validate-config.json +42 -0
  242. package/v3/assets/skills/middleware-testing-patterns/SKILL.md +1 -1
  243. package/v3/assets/skills/mobile-testing/SKILL.md +1 -1
  244. package/v3/assets/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
  245. package/v3/assets/skills/mobile-testing/scripts/validate-config.json +43 -0
  246. package/v3/assets/skills/mutation-testing/SKILL.md +1 -1
  247. package/v3/assets/skills/mutation-testing/scripts/validate-config.json +44 -0
  248. package/v3/assets/skills/observability-testing-patterns/SKILL.md +1 -1
  249. package/v3/assets/skills/pentest-validation/SKILL.md +1 -1
  250. package/v3/assets/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
  251. package/v3/assets/skills/performance-testing/SKILL.md +1 -1
  252. package/v3/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
  253. package/v3/assets/skills/performance-testing/scripts/validate-config.json +55 -0
  254. package/v3/assets/skills/qcsd-cicd-swarm/SKILL.md +1 -1
  255. package/v3/assets/skills/qcsd-development-swarm/SKILL.md +1 -1
  256. package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +1 -1
  257. package/v3/assets/skills/qcsd-refinement-swarm/SKILL.md +1 -1
  258. package/v3/assets/skills/qe-chaos-resilience/SKILL.md +1 -1
  259. package/v3/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
  260. package/v3/assets/skills/qe-chaos-resilience/scripts/validate-config.json +43 -0
  261. package/v3/assets/skills/qe-code-intelligence/SKILL.md +1 -1
  262. package/v3/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
  263. package/v3/assets/skills/qe-code-intelligence/scripts/validate-config.json +41 -0
  264. package/v3/assets/skills/qe-contract-testing/SKILL.md +1 -1
  265. package/v3/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +1 -1
  266. package/v3/assets/skills/qe-contract-testing/scripts/validate-config.json +42 -0
  267. package/v3/assets/skills/qe-coverage-analysis/SKILL.md +1 -1
  268. package/v3/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
  269. package/v3/assets/skills/qe-coverage-analysis/scripts/validate-config.json +42 -0
  270. package/v3/assets/skills/qe-defect-intelligence/SKILL.md +1 -1
  271. package/v3/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
  272. package/v3/assets/skills/qe-defect-intelligence/scripts/validate-config.json +40 -0
  273. package/v3/assets/skills/qe-iterative-loop/SKILL.md +1 -1
  274. package/v3/assets/skills/qe-iterative-loop/scripts/validate-config.json +40 -0
  275. package/v3/assets/skills/qe-learning-optimization/SKILL.md +1 -1
  276. package/v3/assets/skills/qe-learning-optimization/scripts/validate-config.json +25 -0
  277. package/v3/assets/skills/qe-quality-assessment/SKILL.md +1 -1
  278. package/v3/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
  279. package/v3/assets/skills/qe-quality-assessment/scripts/validate-config.json +47 -0
  280. package/v3/assets/skills/qe-requirements-validation/SKILL.md +1 -1
  281. package/v3/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
  282. package/v3/assets/skills/qe-requirements-validation/scripts/validate-config.json +37 -0
  283. package/v3/assets/skills/qe-security-compliance/SKILL.md +1 -1
  284. package/v3/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +1 -1
  285. package/v3/assets/skills/qe-security-compliance/scripts/validate-config.json +41 -0
  286. package/v3/assets/skills/qe-test-execution/SKILL.md +1 -1
  287. package/v3/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
  288. package/v3/assets/skills/qe-test-execution/scripts/validate-config.json +37 -0
  289. package/v3/assets/skills/qe-test-generation/SKILL.md +1 -1
  290. package/v3/assets/skills/qe-test-generation/scripts/validate-config.json +25 -0
  291. package/v3/assets/skills/qe-visual-accessibility/SKILL.md +1 -1
  292. package/v3/assets/skills/qe-visual-accessibility/scripts/validate-config.json +25 -0
  293. package/v3/assets/skills/quality-metrics/SKILL.md +1 -1
  294. package/v3/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  295. package/v3/assets/skills/quality-metrics/scripts/validate-config.json +43 -0
  296. package/v3/assets/skills/refactoring-patterns/SKILL.md +1 -1
  297. package/v3/assets/skills/refactoring-patterns/scripts/validate-config.json +35 -0
  298. package/v3/assets/skills/regression-testing/SKILL.md +1 -1
  299. package/v3/assets/skills/regression-testing/evals/regression-testing.yaml +1 -1
  300. package/v3/assets/skills/regression-testing/scripts/validate-config.json +50 -0
  301. package/v3/assets/skills/risk-based-testing/SKILL.md +1 -1
  302. package/v3/assets/skills/risk-based-testing/scripts/validate-config.json +25 -0
  303. package/v3/assets/skills/security-testing/SKILL.md +1 -1
  304. package/v3/assets/skills/security-testing/evals/security-testing.yaml +1 -1
  305. package/v3/assets/skills/security-testing/scripts/validate-config.json +45 -0
  306. package/v3/assets/skills/security-visual-testing/SKILL.md +1 -1
  307. package/v3/assets/skills/shift-left-testing/SKILL.md +1 -1
  308. package/v3/assets/skills/shift-left-testing/scripts/validate-config.json +25 -0
  309. package/v3/assets/skills/shift-right-testing/SKILL.md +1 -1
  310. package/v3/assets/skills/shift-right-testing/scripts/validate-config.json +25 -0
  311. package/v3/assets/skills/tdd-london-chicago/SKILL.md +1 -1
  312. package/v3/assets/skills/tdd-london-chicago/scripts/validate-config.json +43 -0
  313. package/v3/assets/skills/test-automation-strategy/SKILL.md +1 -1
  314. package/v3/assets/skills/test-automation-strategy/scripts/validate-config.json +39 -0
  315. package/v3/assets/skills/test-data-management/SKILL.md +1 -1
  316. package/v3/assets/skills/test-data-management/evals/test-data-management.yaml +1 -1
  317. package/v3/assets/skills/test-data-management/scripts/validate-config.json +41 -0
  318. package/v3/assets/skills/test-design-techniques/SKILL.md +1 -1
  319. package/v3/assets/skills/test-design-techniques/scripts/validate-config.json +36 -0
  320. package/v3/assets/skills/test-reporting-analytics/SKILL.md +1 -1
  321. package/v3/assets/skills/test-reporting-analytics/scripts/validate-config.json +36 -0
  322. package/v3/assets/skills/verification-quality/SKILL.md +0 -6
  323. package/v3/assets/skills/verification-quality/scripts/validate-config.json +36 -0
  324. package/v3/assets/skills/visual-testing-advanced/SKILL.md +1 -1
  325. package/v3/assets/skills/visual-testing-advanced/scripts/validate-config.json +38 -0
  326. package/v3/assets/skills/wms-testing-patterns/SKILL.md +1 -1
  327. package/v3/dist/adapters/claude-flow/model-router-bridge.js +3 -3
  328. package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -1
  329. package/v3/dist/adapters/claude-flow/pretrain-bridge.js +4 -4
  330. package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -1
  331. package/v3/dist/adapters/claude-flow/trajectory-bridge.js +4 -4
  332. package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -1
  333. package/v3/dist/cli/bundle.js +172 -159
  334. package/v3/dist/cli/commands/claude-flow-setup.js +3 -3
  335. package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -1
  336. package/v3/dist/cli/commands/completions.d.ts.map +1 -1
  337. package/v3/dist/cli/commands/completions.js +2 -1
  338. package/v3/dist/cli/commands/completions.js.map +1 -1
  339. package/v3/dist/cli/commands/hooks.js +8 -8
  340. package/v3/dist/cli/commands/hooks.js.map +1 -1
  341. package/v3/dist/cli/completions/index.d.ts.map +1 -1
  342. package/v3/dist/cli/completions/index.js +4 -3
  343. package/v3/dist/cli/completions/index.js.map +1 -1
  344. package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.js +5 -5
  345. package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.js.map +1 -1
  346. package/v3/dist/domains/requirements-validation/services/quality-criteria/quality-criteria-service.js +1 -1
  347. package/v3/dist/domains/requirements-validation/services/quality-criteria/quality-criteria-service.js.map +1 -1
  348. package/v3/dist/init/agents-installer.d.ts +5 -1
  349. package/v3/dist/init/agents-installer.d.ts.map +1 -1
  350. package/v3/dist/init/agents-installer.js +13 -5
  351. package/v3/dist/init/agents-installer.js.map +1 -1
  352. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -1
  353. package/v3/dist/init/enhancements/claude-flow-adapter.js +15 -12
  354. package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -1
  355. package/v3/dist/init/enhancements/detector.js +2 -2
  356. package/v3/dist/init/enhancements/detector.js.map +1 -1
  357. package/v3/dist/init/init-wizard.d.ts.map +1 -1
  358. package/v3/dist/init/init-wizard.js +17 -33
  359. package/v3/dist/init/init-wizard.js.map +1 -1
  360. package/v3/dist/init/phases/07-hooks.js +9 -9
  361. package/v3/dist/init/phases/07-hooks.js.map +1 -1
  362. package/v3/dist/init/phases/10-workers.d.ts.map +1 -1
  363. package/v3/dist/init/phases/10-workers.js +74 -85
  364. package/v3/dist/init/phases/10-workers.js.map +1 -1
  365. package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
  366. package/v3/dist/init/phases/12-verification.js +13 -1
  367. package/v3/dist/init/phases/12-verification.js.map +1 -1
  368. package/v3/dist/kernel/hybrid-backend.d.ts.map +1 -1
  369. package/v3/dist/kernel/hybrid-backend.js +4 -1
  370. package/v3/dist/kernel/hybrid-backend.js.map +1 -1
  371. package/v3/dist/kernel/memory-backend.d.ts.map +1 -1
  372. package/v3/dist/kernel/memory-backend.js +3 -0
  373. package/v3/dist/kernel/memory-backend.js.map +1 -1
  374. package/v3/dist/mcp/bundle.js +1340 -19
  375. package/v3/dist/mcp/tools/index.d.ts +2 -1
  376. package/v3/dist/mcp/tools/index.d.ts.map +1 -1
  377. package/v3/dist/mcp/tools/index.js +5 -1
  378. package/v3/dist/mcp/tools/index.js.map +1 -1
  379. package/v3/dist/mcp/tools/qx-analysis/analyze.d.ts +33 -0
  380. package/v3/dist/mcp/tools/qx-analysis/analyze.d.ts.map +1 -0
  381. package/v3/dist/mcp/tools/qx-analysis/analyze.js +679 -0
  382. package/v3/dist/mcp/tools/qx-analysis/analyze.js.map +1 -0
  383. package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.d.ts +38 -0
  384. package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.d.ts.map +1 -0
  385. package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.js +458 -0
  386. package/v3/dist/mcp/tools/qx-analysis/heuristics-engine.js.map +1 -0
  387. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.d.ts +16 -0
  388. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.d.ts.map +1 -0
  389. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.js +175 -0
  390. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.js.map +1 -0
  391. package/v3/dist/mcp/tools/qx-analysis/index.d.ts +27 -0
  392. package/v3/dist/mcp/tools/qx-analysis/index.d.ts.map +1 -0
  393. package/v3/dist/mcp/tools/qx-analysis/index.js +34 -0
  394. package/v3/dist/mcp/tools/qx-analysis/index.js.map +1 -0
  395. package/v3/dist/mcp/tools/qx-analysis/oracle-detector.d.ts +22 -0
  396. package/v3/dist/mcp/tools/qx-analysis/oracle-detector.d.ts.map +1 -0
  397. package/v3/dist/mcp/tools/qx-analysis/oracle-detector.js +194 -0
  398. package/v3/dist/mcp/tools/qx-analysis/oracle-detector.js.map +1 -0
  399. package/v3/dist/mcp/tools/qx-analysis/types.d.ts +278 -0
  400. package/v3/dist/mcp/tools/qx-analysis/types.d.ts.map +1 -0
  401. package/v3/dist/mcp/tools/qx-analysis/types.js +46 -0
  402. package/v3/dist/mcp/tools/qx-analysis/types.js.map +1 -0
  403. package/v3/dist/mcp/tools/registry.d.ts +1 -0
  404. package/v3/dist/mcp/tools/registry.d.ts.map +1 -1
  405. package/v3/dist/mcp/tools/registry.js +5 -0
  406. package/v3/dist/mcp/tools/registry.js.map +1 -1
  407. package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -1
  408. package/v3/dist/sync/cloud/tunnel-manager.js +11 -0
  409. package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -1
  410. package/v3/package.json +5 -5
  411. package/.claude/skills/.validation/templates/validate.template.sh +0 -1060
  412. package/.claude/skills/.validation/templates/validator-lib.sh +0 -1031
  413. package/.claude/skills/a11y-ally/scripts/validate.sh +0 -690
  414. package/.claude/skills/accessibility-testing/scripts/validate.sh +0 -943
  415. package/.claude/skills/api-testing-patterns/scripts/validate.sh +0 -931
  416. package/.claude/skills/brutal-honesty-review/scripts/validate.sh +0 -130
  417. package/.claude/skills/bug-reporting-excellence/scripts/validate.sh +0 -108
  418. package/.claude/skills/chaos-engineering-resilience/scripts/validate.sh +0 -1107
  419. package/.claude/skills/cicd-pipeline-qe-orchestrator/scripts/validate.sh +0 -310
  420. package/.claude/skills/code-review-quality/scripts/validate.sh +0 -113
  421. package/.claude/skills/compatibility-testing/scripts/validate.sh +0 -605
  422. package/.claude/skills/compliance-testing/scripts/validate.sh +0 -888
  423. package/.claude/skills/contract-testing/scripts/validate.sh +0 -1033
  424. package/.claude/skills/database-testing/scripts/validate.sh +0 -1099
  425. package/.claude/skills/localization-testing/scripts/validate.sh +0 -131
  426. package/.claude/skills/mobile-testing/scripts/validate.sh +0 -127
  427. package/.claude/skills/mutation-testing/scripts/validate.sh +0 -992
  428. package/.claude/skills/n8n-expression-testing/scripts/validate.sh +0 -162
  429. package/.claude/skills/n8n-integration-testing-patterns/scripts/validate.sh +0 -104
  430. package/.claude/skills/n8n-security-testing/scripts/validate.sh +0 -120
  431. package/.claude/skills/n8n-trigger-testing-strategies/scripts/validate.sh +0 -121
  432. package/.claude/skills/n8n-workflow-testing-fundamentals/scripts/validate.sh +0 -126
  433. package/.claude/skills/pentest-validation/scripts/validate.sh +0 -402
  434. package/.claude/skills/performance-analysis/scripts/validate.sh +0 -63
  435. package/.claude/skills/performance-testing/scripts/validate.sh +0 -1090
  436. package/.claude/skills/qcsd-ideation-swarm/scripts/validate.sh +0 -56
  437. package/.claude/skills/qcsd-refinement-swarm/scripts/validate.sh +0 -56
  438. package/.claude/skills/qe-chaos-resilience/scripts/validate.sh +0 -401
  439. package/.claude/skills/qe-code-intelligence/scripts/validate.sh +0 -408
  440. package/.claude/skills/qe-contract-testing/scripts/validate.sh +0 -421
  441. package/.claude/skills/qe-coverage-analysis/scripts/validate.sh +0 -453
  442. package/.claude/skills/qe-defect-intelligence/scripts/validate.sh +0 -466
  443. package/.claude/skills/qe-iterative-loop/scripts/validate.sh +0 -474
  444. package/.claude/skills/qe-learning-optimization/scripts/validate.sh +0 -56
  445. package/.claude/skills/qe-quality-assessment/scripts/validate.sh +0 -352
  446. package/.claude/skills/qe-requirements-validation/scripts/validate.sh +0 -275
  447. package/.claude/skills/qe-security-compliance/scripts/validate.sh +0 -305
  448. package/.claude/skills/qe-test-execution/scripts/validate.sh +0 -323
  449. package/.claude/skills/qe-test-generation/scripts/validate.sh +0 -56
  450. package/.claude/skills/qe-visual-accessibility/scripts/validate.sh +0 -56
  451. package/.claude/skills/quality-metrics/scripts/validate.sh +0 -434
  452. package/.claude/skills/refactoring-patterns/scripts/validate.sh +0 -241
  453. package/.claude/skills/regression-testing/scripts/validate.sh +0 -130
  454. package/.claude/skills/risk-based-testing/scripts/validate.sh +0 -56
  455. package/.claude/skills/security-testing/scripts/validate.sh +0 -967
  456. package/.claude/skills/security-visual-testing/scripts/validate.sh +0 -748
  457. package/.claude/skills/sherlock-review/scripts/validate.sh +0 -115
  458. package/.claude/skills/shift-left-testing/scripts/validate.sh +0 -56
  459. package/.claude/skills/shift-right-testing/scripts/validate.sh +0 -56
  460. package/.claude/skills/tdd-london-chicago/scripts/validate.sh +0 -214
  461. package/.claude/skills/test-automation-strategy/scripts/validate.sh +0 -195
  462. package/.claude/skills/test-data-management/scripts/validate.sh +0 -137
  463. package/.claude/skills/test-design-techniques/scripts/validate.sh +0 -91
  464. package/.claude/skills/test-reporting-analytics/scripts/validate.sh +0 -77
  465. package/.claude/skills/testability-scoring/scripts/validate.sh +0 -891
  466. package/.claude/skills/verification-quality/scripts/validate.sh +0 -77
  467. package/.claude/skills/visual-testing-advanced/scripts/validate.sh +0 -77
  468. package/v3/assets/skills/.validation/templates/validate.template.sh +0 -1060
  469. package/v3/assets/skills/.validation/templates/validator-lib.sh +0 -1031
  470. package/v3/assets/skills/accessibility-testing/scripts/validate.sh +0 -943
  471. package/v3/assets/skills/api-testing-patterns/scripts/validate.sh +0 -931
  472. package/v3/assets/skills/aqe-v2-v3-migration/skill.md +0 -326
  473. package/v3/assets/skills/bug-reporting-excellence/scripts/validate.sh +0 -108
  474. package/v3/assets/skills/chaos-engineering-resilience/scripts/validate.sh +0 -1107
  475. package/v3/assets/skills/code-review-quality/scripts/validate.sh +0 -113
  476. package/v3/assets/skills/compatibility-testing/scripts/validate.sh +0 -605
  477. package/v3/assets/skills/compliance-testing/scripts/validate.sh +0 -888
  478. package/v3/assets/skills/contract-testing/scripts/validate.sh +0 -1033
  479. package/v3/assets/skills/database-testing/scripts/validate.sh +0 -1099
  480. package/v3/assets/skills/localization-testing/scripts/validate.sh +0 -131
  481. package/v3/assets/skills/mobile-testing/scripts/validate.sh +0 -127
  482. package/v3/assets/skills/mutation-testing/scripts/validate.sh +0 -992
  483. package/v3/assets/skills/n8n-expression-testing/scripts/validate.sh +0 -162
  484. package/v3/assets/skills/n8n-integration-testing-patterns/scripts/validate.sh +0 -104
  485. package/v3/assets/skills/n8n-security-testing/scripts/validate.sh +0 -120
  486. package/v3/assets/skills/n8n-trigger-testing-strategies/scripts/validate.sh +0 -121
  487. package/v3/assets/skills/n8n-workflow-testing-fundamentals/scripts/validate.sh +0 -126
  488. package/v3/assets/skills/pentest-validation/scripts/validate.sh +0 -402
  489. package/v3/assets/skills/performance-testing/scripts/validate.sh +0 -1090
  490. package/v3/assets/skills/qe-chaos-resilience/scripts/validate.sh +0 -401
  491. package/v3/assets/skills/qe-code-intelligence/scripts/validate.sh +0 -408
  492. package/v3/assets/skills/qe-contract-testing/scripts/validate.sh +0 -421
  493. package/v3/assets/skills/qe-coverage-analysis/scripts/validate.sh +0 -453
  494. package/v3/assets/skills/qe-defect-intelligence/scripts/validate.sh +0 -466
  495. package/v3/assets/skills/qe-iterative-loop/scripts/validate.sh +0 -474
  496. package/v3/assets/skills/qe-learning-optimization/scripts/validate.sh +0 -56
  497. package/v3/assets/skills/qe-quality-assessment/scripts/validate.sh +0 -352
  498. package/v3/assets/skills/qe-requirements-validation/scripts/validate.sh +0 -275
  499. package/v3/assets/skills/qe-security-compliance/scripts/validate.sh +0 -305
  500. package/v3/assets/skills/qe-test-execution/scripts/validate.sh +0 -323
  501. package/v3/assets/skills/qe-test-generation/scripts/validate.sh +0 -56
  502. package/v3/assets/skills/qe-visual-accessibility/scripts/validate.sh +0 -56
  503. package/v3/assets/skills/quality-metrics/scripts/validate.sh +0 -434
  504. package/v3/assets/skills/refactoring-patterns/scripts/validate.sh +0 -241
  505. package/v3/assets/skills/regression-testing/scripts/validate.sh +0 -130
  506. package/v3/assets/skills/risk-based-testing/scripts/validate.sh +0 -56
  507. package/v3/assets/skills/security-testing/scripts/validate.sh +0 -967
  508. package/v3/assets/skills/security-visual-testing/scripts/validate.sh +0 -748
  509. package/v3/assets/skills/shift-left-testing/scripts/validate.sh +0 -56
  510. package/v3/assets/skills/shift-right-testing/scripts/validate.sh +0 -56
  511. package/v3/assets/skills/tdd-london-chicago/scripts/validate.sh +0 -214
  512. package/v3/assets/skills/test-automation-strategy/scripts/validate.sh +0 -195
  513. package/v3/assets/skills/test-data-management/scripts/validate.sh +0 -137
  514. package/v3/assets/skills/test-design-techniques/scripts/validate.sh +0 -91
  515. package/v3/assets/skills/test-reporting-analytics/scripts/validate.sh +0 -77
  516. package/v3/assets/skills/verification-quality/scripts/validate.sh +0 -77
  517. package/v3/assets/skills/visual-testing-advanced/scripts/validate.sh +0 -77
@@ -223,6 +223,9 @@ var init_memory_backend = __esm({
223
223
  cleanupInterval;
224
224
  async initialize() {
225
225
  this.cleanupInterval = setInterval(() => this.cleanup(), MEMORY_CONSTANTS.CLEANUP_INTERVAL_MS);
226
+ if (this.cleanupInterval.unref) {
227
+ this.cleanupInterval.unref();
228
+ }
226
229
  }
227
230
  async dispose() {
228
231
  if (this.cleanupInterval) {
@@ -11898,6 +11901,9 @@ var HybridMemoryBackend = class {
11898
11901
  () => this.cleanup(),
11899
11902
  this.config.cleanupInterval
11900
11903
  );
11904
+ if (this.cleanupInterval.unref) {
11905
+ this.cleanupInterval.unref();
11906
+ }
11901
11907
  this.initialized = true;
11902
11908
  console.log(`[HybridBackend] Initialized with unified memory: ${this.unifiedMemory.getDbPath()}`);
11903
11909
  }
@@ -63815,7 +63821,7 @@ function checkTestRunners(projectPath) {
63815
63821
  function countVitestTests(projectPath, config) {
63816
63822
  try {
63817
63823
  const output = execSync5(
63818
- "npx vitest list --reporter=json 2>/dev/null",
63824
+ "npx vitest list --reporter=json",
63819
63825
  {
63820
63826
  cwd: projectPath,
63821
63827
  encoding: "utf-8",
@@ -63875,7 +63881,7 @@ function countTestsRecursive(tests) {
63875
63881
  function countJestTests(projectPath, config) {
63876
63882
  try {
63877
63883
  const output = execSync5(
63878
- "npx jest --listTests 2>/dev/null",
63884
+ "npx jest --listTests",
63879
63885
  {
63880
63886
  cwd: projectPath,
63881
63887
  encoding: "utf-8",
@@ -63901,7 +63907,7 @@ function countJestTests(projectPath, config) {
63901
63907
  function countCargoTests(projectPath, config) {
63902
63908
  try {
63903
63909
  const output = execSync5(
63904
- 'cargo test --list 2>/dev/null || echo ""',
63910
+ "cargo test --list",
63905
63911
  {
63906
63912
  cwd: projectPath,
63907
63913
  encoding: "utf-8",
@@ -63935,7 +63941,7 @@ function countCargoTests(projectPath, config) {
63935
63941
  function countPytestTests(projectPath, config) {
63936
63942
  try {
63937
63943
  const output = execSync5(
63938
- 'pytest --collect-only -q 2>/dev/null || echo ""',
63944
+ "pytest --collect-only -q",
63939
63945
  {
63940
63946
  cwd: projectPath,
63941
63947
  encoding: "utf-8",
@@ -63976,7 +63982,7 @@ function countPytestTests(projectPath, config) {
63976
63982
  function countGoTests(projectPath, config) {
63977
63983
  try {
63978
63984
  const output = execSync5(
63979
- 'go test -list ".*" ./... 2>/dev/null || echo ""',
63985
+ 'go test -list ".*" ./...',
63980
63986
  {
63981
63987
  cwd: projectPath,
63982
63988
  encoding: "utf-8",
@@ -111993,7 +111999,7 @@ var ALL_DOMAINS2 = [
111993
111999
  "enterprise-integration"
111994
112000
  ];
111995
112001
  function getAQEVersion() {
111996
- return true ? "3.6.1" : "3.0.0";
112002
+ return true ? "3.6.3" : "3.0.0";
111997
112003
  }
111998
112004
  function createDefaultConfig(projectName, projectRoot) {
111999
112005
  return {
@@ -113620,10 +113626,12 @@ var AgentsInstaller = class {
113620
113626
  }
113621
113627
  /**
113622
113628
  * Copy helpers directory (agent-specific reference files, templates, scripts)
113629
+ * Installed to .claude/helpers/v3/ (NOT .claude/agents/v3/helpers/) to avoid
113630
+ * claude doctor parsing .md helper files as agent definitions (Issue #243).
113623
113631
  */
113624
- async copyHelpersDirectory(targetAgentsDir) {
113632
+ async copyHelpersDirectory(_targetAgentsDir) {
113625
113633
  const sourceHelpersDir = join18(this.sourceAgentsDir, "helpers");
113626
- const targetHelpersDir = join18(targetAgentsDir, "helpers");
113634
+ const targetHelpersDir = join18(this.projectRoot, ".claude", "helpers", "v3");
113627
113635
  if (existsSync16(sourceHelpersDir)) {
113628
113636
  this.copyDirectoryRecursive(sourceHelpersDir, targetHelpersDir);
113629
113637
  }
@@ -113716,9 +113724,11 @@ var AgentsInstaller = class {
113716
113724
  return domainMap[key];
113717
113725
  }
113718
113726
  /**
113719
- * Create an agents index file for easy reference
113727
+ * Create an agents index file for easy reference.
113728
+ * Written to .claude/docs/ instead of .claude/agents/v3/ to avoid
113729
+ * claude doctor parsing it as an agent definition (Issue #243).
113720
113730
  */
113721
- async createAgentsIndex(agentsDir, installed) {
113731
+ async createAgentsIndex(_agentsDir, installed) {
113722
113732
  const qeAgents = installed.filter((a37) => a37.type === "v3-qe");
113723
113733
  const subagents = installed.filter((a37) => a37.type === "v3-subagent");
113724
113734
  const byDomain = /* @__PURE__ */ new Map();
@@ -113773,7 +113783,11 @@ ${subagents.map((a37) => `- **${a37.name}**${a37.description ? `: ${a37.descript
113773
113783
 
113774
113784
  *Generated by AQE v3 init on ${(/* @__PURE__ */ new Date()).toISOString()}*
113775
113785
  `;
113776
- writeFileSync3(join18(agentsDir, "README.md"), indexContent, "utf-8");
113786
+ const docsDir = join18(this.projectRoot, ".claude", "docs");
113787
+ if (!existsSync16(docsDir)) {
113788
+ mkdirSync6(docsDir, { recursive: true });
113789
+ }
113790
+ writeFileSync3(join18(docsDir, "v3-agents-index.md"), indexContent, "utf-8");
113777
113791
  }
113778
113792
  };
113779
113793
  function createAgentsInstaller(options) {
@@ -115033,7 +115047,7 @@ Ensure the directory is writable and has sufficient disk space.`
115033
115047
  hooks: [
115034
115048
  {
115035
115049
  type: "command",
115036
- command: '[ -n "$TOOL_INPUT_file_path" ] && aqe hooks pre-edit --file "$TOOL_INPUT_file_path" 2>/dev/null || true',
115050
+ command: 'aqe hooks pre-edit --file "$TOOL_INPUT_file_path"',
115037
115051
  timeout: 5e3,
115038
115052
  continueOnError: true
115039
115053
  }
@@ -115044,7 +115058,7 @@ Ensure the directory is writable and has sufficient disk space.`
115044
115058
  hooks: [
115045
115059
  {
115046
115060
  type: "command",
115047
- command: '[ -n "$TOOL_INPUT_command" ] && aqe hooks pre-command --command "$TOOL_INPUT_command" 2>/dev/null || true',
115061
+ command: 'aqe hooks pre-command --command "$TOOL_INPUT_command"',
115048
115062
  timeout: 5e3,
115049
115063
  continueOnError: true
115050
115064
  }
@@ -115055,7 +115069,7 @@ Ensure the directory is writable and has sufficient disk space.`
115055
115069
  hooks: [
115056
115070
  {
115057
115071
  type: "command",
115058
- command: '[ -n "$TOOL_INPUT_prompt" ] && aqe hooks pre-task --task-id "task-$(date +%s)" --description "$TOOL_INPUT_prompt" 2>/dev/null || true',
115072
+ command: 'aqe hooks pre-task --description "$TOOL_INPUT_prompt"',
115059
115073
  timeout: 5e3,
115060
115074
  continueOnError: true
115061
115075
  }
@@ -115069,7 +115083,7 @@ Ensure the directory is writable and has sufficient disk space.`
115069
115083
  hooks: [
115070
115084
  {
115071
115085
  type: "command",
115072
- command: '[ -n "$TOOL_INPUT_file_path" ] && aqe hooks post-edit --file "$TOOL_INPUT_file_path" --success "${TOOL_SUCCESS:-true}" 2>/dev/null || true',
115086
+ command: 'aqe hooks post-edit --file "$TOOL_INPUT_file_path" --success "$TOOL_SUCCESS"',
115073
115087
  timeout: 5e3,
115074
115088
  continueOnError: true
115075
115089
  }
@@ -115080,7 +115094,7 @@ Ensure the directory is writable and has sufficient disk space.`
115080
115094
  hooks: [
115081
115095
  {
115082
115096
  type: "command",
115083
- command: '[ -n "$TOOL_INPUT_command" ] && aqe hooks post-command --command "$TOOL_INPUT_command" --success "${TOOL_SUCCESS:-true}" 2>/dev/null || true',
115097
+ command: 'aqe hooks post-command --command "$TOOL_INPUT_command" --success "$TOOL_SUCCESS"',
115084
115098
  timeout: 5e3,
115085
115099
  continueOnError: true
115086
115100
  }
@@ -115091,7 +115105,7 @@ Ensure the directory is writable and has sufficient disk space.`
115091
115105
  hooks: [
115092
115106
  {
115093
115107
  type: "command",
115094
- command: '[ -n "$TOOL_RESULT_agent_id" ] && aqe hooks post-task --task-id "$TOOL_RESULT_agent_id" --success "${TOOL_SUCCESS:-true}" 2>/dev/null || true',
115108
+ command: 'aqe hooks post-task --task-id "$TOOL_RESULT_agent_id" --success "$TOOL_SUCCESS"',
115095
115109
  timeout: 5e3,
115096
115110
  continueOnError: true
115097
115111
  }
@@ -115104,7 +115118,7 @@ Ensure the directory is writable and has sufficient disk space.`
115104
115118
  hooks: [
115105
115119
  {
115106
115120
  type: "command",
115107
- command: '[ -n "$PROMPT" ] && aqe hooks route --task "$PROMPT" 2>/dev/null || true',
115121
+ command: 'aqe hooks route --task "$PROMPT"',
115108
115122
  timeout: 5e3,
115109
115123
  continueOnError: true
115110
115124
  }
@@ -115117,7 +115131,7 @@ Ensure the directory is writable and has sufficient disk space.`
115117
115131
  hooks: [
115118
115132
  {
115119
115133
  type: "command",
115120
- command: '[ -n "$SESSION_ID" ] && aqe hooks session-start --session-id "$SESSION_ID" 2>/dev/null || true',
115134
+ command: 'aqe hooks session-start --session-id "$SESSION_ID"',
115121
115135
  timeout: 1e4,
115122
115136
  continueOnError: true
115123
115137
  }
@@ -115129,7 +115143,7 @@ Ensure the directory is writable and has sufficient disk space.`
115129
115143
  hooks: [
115130
115144
  {
115131
115145
  type: "command",
115132
- command: "aqe hooks session-end --save-state 2>/dev/null || true",
115146
+ command: "aqe hooks session-end --save-state",
115133
115147
  timeout: 5e3,
115134
115148
  continueOnError: true
115135
115149
  }
@@ -115584,31 +115598,15 @@ aqe init --auto
115584
115598
  };
115585
115599
  writeFileSync5(workerConfigPath, JSON.stringify(workerConfig, null, 2), "utf-8");
115586
115600
  }
115587
- const daemonScriptPath = join20(workersDir, "start-daemon.sh");
115588
- const daemonScript = `#!/bin/bash
115589
- # AQE v3 Worker Daemon Startup Script
115590
- # Generated by aqe init
115601
+ const daemonScriptPath = join20(workersDir, "start-daemon.cjs");
115602
+ const daemonScript = `#!/usr/bin/env node
115603
+ // AQE v3 Worker Daemon Startup Script (cross-platform)
115604
+ // Generated by aqe init
115591
115605
 
115592
- PROJECT_ROOT="${this.projectRoot}"
115593
- WORKERS_DIR="$PROJECT_ROOT/.agentic-qe/workers"
115594
- PID_FILE="$WORKERS_DIR/daemon.pid"
115595
-
115596
- # Check if already running
115597
- if [ -f "$PID_FILE" ]; then
115598
- PID=$(cat "$PID_FILE")
115599
- if kill -0 "$PID" 2>/dev/null; then
115600
- echo "Daemon already running (PID: $PID)"
115601
- exit 0
115602
- fi
115603
- fi
115604
-
115605
- # Start daemon (AQE v3 native - no claude-flow dependency)
115606
- # TODO: Implement aqe daemon command for background workers
115607
- # For now, hooks work via CLI without daemon
115608
- echo "AQE v3 hooks work via CLI commands (no daemon required)"
115609
- echo "Use: npx aqe hooks session-start"
115606
+ console.log("AQE v3 hooks work via CLI commands (no daemon required)");
115607
+ console.log("Use: npx aqe hooks session-start");
115610
115608
  `;
115611
- writeFileSync5(daemonScriptPath, daemonScript, { mode: 493 });
115609
+ writeFileSync5(daemonScriptPath, daemonScript);
115612
115610
  return config.workers.enabled.length;
115613
115611
  }
115614
115612
  /**
@@ -116424,7 +116422,7 @@ var HooksPhase = class extends BasePhase {
116424
116422
  hooks: [
116425
116423
  {
116426
116424
  type: "command",
116427
- command: '[ -n "$TOOL_INPUT_file_path" ] && npx agentic-qe hooks pre-edit --file "$TOOL_INPUT_file_path" --json 2>/dev/null || true',
116425
+ command: 'npx agentic-qe hooks pre-edit --file "$TOOL_INPUT_file_path" --json',
116428
116426
  timeout: 5e3,
116429
116427
  continueOnError: true
116430
116428
  }
@@ -116435,7 +116433,7 @@ var HooksPhase = class extends BasePhase {
116435
116433
  hooks: [
116436
116434
  {
116437
116435
  type: "command",
116438
- command: '[ -n "$TOOL_INPUT_command" ] && npx agentic-qe hooks pre-command --command "$TOOL_INPUT_command" --json 2>/dev/null || true',
116436
+ command: 'npx agentic-qe hooks pre-command --command "$TOOL_INPUT_command" --json',
116439
116437
  timeout: 5e3,
116440
116438
  continueOnError: true
116441
116439
  }
@@ -116446,7 +116444,7 @@ var HooksPhase = class extends BasePhase {
116446
116444
  hooks: [
116447
116445
  {
116448
116446
  type: "command",
116449
- command: '[ -n "$TOOL_INPUT_prompt" ] && npx agentic-qe hooks pre-task --task-id "task-$(date +%s)" --description "$TOOL_INPUT_prompt" --json 2>/dev/null || true',
116447
+ command: 'npx agentic-qe hooks pre-task --description "$TOOL_INPUT_prompt" --json',
116450
116448
  timeout: 5e3,
116451
116449
  continueOnError: true
116452
116450
  }
@@ -116459,7 +116457,7 @@ var HooksPhase = class extends BasePhase {
116459
116457
  hooks: [
116460
116458
  {
116461
116459
  type: "command",
116462
- command: '[ -n "$TOOL_INPUT_file_path" ] && npx agentic-qe hooks post-edit --file "$TOOL_INPUT_file_path" --success "${TOOL_SUCCESS:-true}" --json 2>/dev/null || true',
116460
+ command: 'npx agentic-qe hooks post-edit --file "$TOOL_INPUT_file_path" --success "$TOOL_SUCCESS" --json',
116463
116461
  timeout: 5e3,
116464
116462
  continueOnError: true
116465
116463
  }
@@ -116470,7 +116468,7 @@ var HooksPhase = class extends BasePhase {
116470
116468
  hooks: [
116471
116469
  {
116472
116470
  type: "command",
116473
- command: '[ -n "$TOOL_INPUT_command" ] && npx agentic-qe hooks post-command --command "$TOOL_INPUT_command" --success "${TOOL_SUCCESS:-true}" --json 2>/dev/null || true',
116471
+ command: 'npx agentic-qe hooks post-command --command "$TOOL_INPUT_command" --success "$TOOL_SUCCESS" --json',
116474
116472
  timeout: 5e3,
116475
116473
  continueOnError: true
116476
116474
  }
@@ -116481,7 +116479,7 @@ var HooksPhase = class extends BasePhase {
116481
116479
  hooks: [
116482
116480
  {
116483
116481
  type: "command",
116484
- command: '[ -n "$TOOL_RESULT_agent_id" ] && npx agentic-qe hooks post-task --task-id "$TOOL_RESULT_agent_id" --success "${TOOL_SUCCESS:-true}" --json 2>/dev/null || true',
116482
+ command: 'npx agentic-qe hooks post-task --task-id "$TOOL_RESULT_agent_id" --success "$TOOL_SUCCESS" --json',
116485
116483
  timeout: 5e3,
116486
116484
  continueOnError: true
116487
116485
  }
@@ -116493,7 +116491,7 @@ var HooksPhase = class extends BasePhase {
116493
116491
  hooks: [
116494
116492
  {
116495
116493
  type: "command",
116496
- command: '[ -n "$PROMPT" ] && npx agentic-qe hooks route --task "$PROMPT" --json 2>/dev/null || true',
116494
+ command: 'npx agentic-qe hooks route --task "$PROMPT" --json',
116497
116495
  timeout: 5e3,
116498
116496
  continueOnError: true
116499
116497
  }
@@ -116505,7 +116503,7 @@ var HooksPhase = class extends BasePhase {
116505
116503
  hooks: [
116506
116504
  {
116507
116505
  type: "command",
116508
- command: '[ -n "$SESSION_ID" ] && npx agentic-qe hooks session-start --session-id "$SESSION_ID" --json 2>/dev/null || true',
116506
+ command: 'npx agentic-qe hooks session-start --session-id "$SESSION_ID" --json',
116509
116507
  timeout: 1e4,
116510
116508
  continueOnError: true
116511
116509
  }
@@ -116517,7 +116515,7 @@ var HooksPhase = class extends BasePhase {
116517
116515
  hooks: [
116518
116516
  {
116519
116517
  type: "command",
116520
- command: "npx agentic-qe hooks session-end --save-state --json 2>/dev/null || true",
116518
+ command: "npx agentic-qe hooks session-end --save-state --json",
116521
116519
  timeout: 5e3,
116522
116520
  continueOnError: true
116523
116521
  }
@@ -116794,102 +116792,91 @@ var WorkersPhase = class extends BasePhase {
116794
116792
  };
116795
116793
  writeFileSync9(workerConfigPath, JSON.stringify(workerConfig, null, 2), "utf-8");
116796
116794
  }
116797
- const daemonScriptPath = join28(workersDir, "start-daemon.sh");
116798
- const daemonScript = `#!/bin/bash
116799
- # AQE v3 Worker Daemon Startup Script
116800
- # Generated by aqe init
116801
- # Starts the MCP server with background workers enabled
116802
-
116803
- # Get directory where this script is located
116804
- SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
116805
- # Navigate up from .agentic-qe/workers to project root
116806
- PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
116807
- WORKERS_DIR="$PROJECT_ROOT/.agentic-qe/workers"
116808
- PID_FILE="$WORKERS_DIR/daemon.pid"
116809
- LOG_FILE="$WORKERS_DIR/daemon.log"
116810
-
116811
- # Check if already running
116812
- if [ -f "$PID_FILE" ]; then
116813
- PID=$(cat "$PID_FILE")
116814
- if kill -0 "$PID" 2>/dev/null; then
116815
- echo "Daemon already running (PID: $PID)"
116816
- exit 0
116817
- fi
116818
- fi
116819
-
116820
- echo "[$(date)] Starting AQE v3 Worker Daemon..." >> "$LOG_FILE"
116821
-
116822
- # Set environment for learning and workers
116823
- export AQE_PROJECT_ROOT="$PROJECT_ROOT"
116824
- export AQE_LEARNING_ENABLED=true
116825
- export AQE_WORKERS_ENABLED=true
116826
- export AQE_HTTP_PORT=0
116827
-
116828
- # Find the best way to run aqe-mcp
116829
- MCP_CMD=""
116830
- if [ -f "$PROJECT_ROOT/node_modules/.bin/aqe-mcp" ]; then
116831
- MCP_CMD="$PROJECT_ROOT/node_modules/.bin/aqe-mcp"
116832
- elif [ -f "$PROJECT_ROOT/node_modules/agentic-qe/v3/dist/mcp/bundle.js" ]; then
116833
- MCP_CMD="node $PROJECT_ROOT/node_modules/agentic-qe/v3/dist/mcp/bundle.js"
116834
- elif [ -f "$PROJECT_ROOT/node_modules/.bin/aqe" ]; then
116835
- # Use aqe CLI with mcp subcommand
116836
- MCP_CMD="$PROJECT_ROOT/node_modules/.bin/aqe mcp"
116837
- elif command -v aqe-mcp &> /dev/null; then
116838
- MCP_CMD="aqe-mcp"
116839
- elif command -v aqe &> /dev/null; then
116840
- # Use global aqe CLI with mcp subcommand
116841
- MCP_CMD="aqe mcp"
116842
- else
116843
- # Fallback to npx - aqe CLI has mcp subcommand
116844
- MCP_CMD="npx --yes agentic-qe mcp"
116845
- fi
116846
-
116847
- echo "[$(date)] Using MCP command: $MCP_CMD" >> "$LOG_FILE"
116848
-
116849
- # Start the MCP server with workers
116850
- cd "$PROJECT_ROOT"
116851
- nohup $MCP_CMD >> "$LOG_FILE" 2>&1 &
116852
- DAEMON_PID=$!
116853
-
116854
- # Save PID
116855
- echo $DAEMON_PID > "$PID_FILE"
116856
- echo "[$(date)] Daemon started with PID: $DAEMON_PID" >> "$LOG_FILE"
116857
-
116858
- echo "AQE v3 Worker Daemon started (PID: $DAEMON_PID)"
116859
- echo "Log file: $LOG_FILE"
116860
- echo ""
116861
- echo "To stop: kill $DAEMON_PID"
116862
- echo "To view logs: tail -f $LOG_FILE"
116863
- `;
116864
- writeFileSync9(daemonScriptPath, daemonScript, { mode: 493 });
116865
- const stopScriptPath = join28(workersDir, "stop-daemon.sh");
116866
- const stopScript = `#!/bin/bash
116867
- # AQE v3 Worker Daemon Stop Script
116868
- # Generated by aqe init
116795
+ const daemonScriptPath = join28(workersDir, "start-daemon.cjs");
116796
+ const daemonScript = `#!/usr/bin/env node
116797
+ // AQE v3 Worker Daemon Startup Script (cross-platform)
116798
+ // Generated by aqe init
116799
+ // Starts the MCP server with background workers enabled
116800
+
116801
+ const { existsSync, readFileSync, writeFileSync, appendFileSync } = require('fs');
116802
+ const { join } = require('path');
116803
+ const { spawn } = require('child_process');
116869
116804
 
116870
- # Get directory where this script is located
116871
- SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
116872
- # Navigate up from .agentic-qe/workers to project root
116873
- PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
116874
- WORKERS_DIR="$PROJECT_ROOT/.agentic-qe/workers"
116875
- PID_FILE="$WORKERS_DIR/daemon.pid"
116876
-
116877
- if [ -f "$PID_FILE" ]; then
116878
- PID=$(cat "$PID_FILE")
116879
- if kill -0 "$PID" 2>/dev/null; then
116880
- echo "Stopping daemon (PID: $PID)..."
116881
- kill "$PID"
116882
- rm -f "$PID_FILE"
116883
- echo "Daemon stopped"
116884
- else
116885
- echo "Daemon not running (stale PID file)"
116886
- rm -f "$PID_FILE"
116887
- fi
116888
- else
116889
- echo "No PID file found - daemon may not be running"
116890
- fi
116805
+ const projectRoot = join(__dirname, '..', '..');
116806
+ const workersDir = join(projectRoot, '.agentic-qe', 'workers');
116807
+ const pidFile = join(workersDir, 'daemon.pid');
116808
+ const logFile = join(workersDir, 'daemon.log');
116809
+
116810
+ // Check if already running
116811
+ if (existsSync(pidFile)) {
116812
+ const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
116813
+ try { process.kill(pid, 0); console.log('Daemon already running (PID: ' + pid + ')'); process.exit(0); } catch {}
116814
+ }
116815
+
116816
+ const ts = new Date().toISOString();
116817
+ appendFileSync(logFile, '[' + ts + '] Starting AQE v3 Worker Daemon...\\n');
116818
+
116819
+ // Find the best way to run aqe-mcp
116820
+ const candidates = [
116821
+ join(projectRoot, 'node_modules', '.bin', 'aqe-mcp'),
116822
+ join(projectRoot, 'node_modules', 'agentic-qe', 'v3', 'dist', 'mcp', 'bundle.js'),
116823
+ ];
116824
+
116825
+ let mcpCmd, mcpArgs;
116826
+ const binCandidate = candidates.find(c => existsSync(c));
116827
+
116828
+ if (binCandidate && binCandidate.endsWith('bundle.js')) {
116829
+ mcpCmd = process.execPath;
116830
+ mcpArgs = [binCandidate];
116831
+ } else if (binCandidate) {
116832
+ mcpCmd = binCandidate;
116833
+ mcpArgs = [];
116834
+ } else {
116835
+ mcpCmd = process.platform === 'win32' ? 'npx.cmd' : 'npx';
116836
+ mcpArgs = ['--yes', 'agentic-qe', 'mcp'];
116837
+ }
116838
+
116839
+ appendFileSync(logFile, '[' + ts + '] Using: ' + mcpCmd + ' ' + mcpArgs.join(' ') + '\\n');
116840
+
116841
+ const env = { ...process.env, AQE_PROJECT_ROOT: projectRoot, AQE_LEARNING_ENABLED: 'true', AQE_WORKERS_ENABLED: 'true', AQE_HTTP_PORT: '0' };
116842
+ const child = spawn(mcpCmd, mcpArgs, { cwd: projectRoot, env, detached: true, stdio: ['ignore', 'pipe', 'pipe'] });
116843
+ child.stdout.on('data', d => appendFileSync(logFile, d));
116844
+ child.stderr.on('data', d => appendFileSync(logFile, d));
116845
+ child.unref();
116846
+
116847
+ writeFileSync(pidFile, String(child.pid));
116848
+ appendFileSync(logFile, '[' + ts + '] Daemon started with PID: ' + child.pid + '\\n');
116849
+ console.log('AQE v3 Worker Daemon started (PID: ' + child.pid + ')');
116850
+ console.log('Log file: ' + logFile);
116851
+ console.log('To stop: node ' + join(workersDir, 'stop-daemon.cjs'));
116891
116852
  `;
116892
- writeFileSync9(stopScriptPath, stopScript, { mode: 493 });
116853
+ writeFileSync9(daemonScriptPath, daemonScript);
116854
+ const stopScriptPath = join28(workersDir, "stop-daemon.cjs");
116855
+ const stopScript = `#!/usr/bin/env node
116856
+ // AQE v3 Worker Daemon Stop Script (cross-platform)
116857
+ // Generated by aqe init
116858
+
116859
+ const { existsSync, readFileSync, unlinkSync } = require('fs');
116860
+ const { join } = require('path');
116861
+
116862
+ const workersDir = join(__dirname);
116863
+ const pidFile = join(workersDir, 'daemon.pid');
116864
+
116865
+ if (!existsSync(pidFile)) { console.log('No PID file found - daemon may not be running'); process.exit(0); }
116866
+
116867
+ const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
116868
+ try {
116869
+ process.kill(pid, 0); // Check if alive
116870
+ console.log('Stopping daemon (PID: ' + pid + ')...');
116871
+ process.kill(pid, 'SIGTERM');
116872
+ try { unlinkSync(pidFile); } catch {}
116873
+ console.log('Daemon stopped');
116874
+ } catch {
116875
+ console.log('Daemon not running (stale PID file)');
116876
+ try { unlinkSync(pidFile); } catch {}
116877
+ }
116878
+ `;
116879
+ writeFileSync9(stopScriptPath, stopScript);
116893
116880
  context2.services.log(` Workers dir: ${workersDir}`);
116894
116881
  context2.services.log(` Workers: ${config.workers.enabled.join(", ")}`);
116895
116882
  let daemonStarted = false;
@@ -117355,6 +117342,17 @@ var VerificationPhase = class extends BasePhase {
117355
117342
  section[currentSubSection].push(arrayMatch[1]);
117356
117343
  }
117357
117344
  }
117345
+ const arrayFields = [
117346
+ ["domains", "enabled"],
117347
+ ["domains", "disabled"],
117348
+ ["workers", "enabled"]
117349
+ ];
117350
+ for (const [section, field] of arrayFields) {
117351
+ const sec = result[section];
117352
+ if (sec && field in sec && !Array.isArray(sec[field])) {
117353
+ sec[field] = [];
117354
+ }
117355
+ }
117358
117356
  return result;
117359
117357
  } catch {
117360
117358
  return null;
@@ -117384,7 +117382,9 @@ var VerificationPhase = class extends BasePhase {
117384
117382
  for (const domain of newDomains) {
117385
117383
  existingDomains.add(domain);
117386
117384
  }
117387
- const disabledDomains = new Set(existing.domains?.disabled || []);
117385
+ const disabledDomains = new Set(
117386
+ Array.isArray(existing.domains?.disabled) ? existing.domains.disabled : []
117387
+ );
117388
117388
  newConfig.domains.enabled = Array.from(existingDomains).filter((d74) => !disabledDomains.has(d74));
117389
117389
  }
117390
117390
  if (existing.domains?.disabled && Array.isArray(existing.domains.disabled)) {
@@ -117906,7 +117906,7 @@ async function detectClaudeFlow(projectRoot, debug) {
117906
117906
  }
117907
117907
  }
117908
117908
  try {
117909
- const result = execSync6("npx @claude-flow/cli@latest --version 2>/dev/null", {
117909
+ const result = execSync6("npx @claude-flow/cli@latest --version", {
117910
117910
  encoding: "utf-8",
117911
117911
  timeout: 1e4,
117912
117912
  cwd: projectRoot
@@ -117947,7 +117947,7 @@ async function detectFeatures(projectRoot) {
117947
117947
  ];
117948
117948
  for (const check of featureChecks) {
117949
117949
  try {
117950
- execSync6(`npx @claude-flow/cli@latest ${check.command} 2>/dev/null`, {
117950
+ execSync6(`npx @claude-flow/cli@latest ${check.command}`, {
117951
117951
  encoding: "utf-8",
117952
117952
  timeout: 5e3,
117953
117953
  cwd: projectRoot
@@ -118023,7 +118023,7 @@ function updateMCPConfig(projectRoot) {
118023
118023
  async function runPretrainAnalysis(projectRoot, debug) {
118024
118024
  try {
118025
118025
  if (debug) console.log("[ClaudeFlow] Running pretrain analysis...");
118026
- execSync6("npx @claude-flow/cli@latest hooks pretrain --depth medium 2>/dev/null", {
118026
+ execSync6("npx @claude-flow/cli@latest hooks pretrain --depth medium", {
118027
118027
  encoding: "utf-8",
118028
118028
  timeout: 12e4,
118029
118029
  // 2 minutes
@@ -123160,24 +123160,25 @@ function detectShell() {
123160
123160
  detected: true
123161
123161
  };
123162
123162
  }
123163
+ const homeDir = process.env.HOME || process.env.USERPROFILE || "";
123163
123164
  if (shell.includes("bash")) {
123164
123165
  return {
123165
123166
  name: "bash",
123166
- configFile: `${process.env.HOME}/.bashrc`,
123167
+ configFile: `${homeDir}/.bashrc`,
123167
123168
  detected: true
123168
123169
  };
123169
123170
  }
123170
123171
  if (shell.includes("zsh")) {
123171
123172
  return {
123172
123173
  name: "zsh",
123173
- configFile: `${process.env.HOME}/.zshrc`,
123174
+ configFile: `${homeDir}/.zshrc`,
123174
123175
  detected: true
123175
123176
  };
123176
123177
  }
123177
123178
  if (shell.includes("fish")) {
123178
123179
  return {
123179
123180
  name: "fish",
123180
- configFile: `${process.env.HOME}/.config/fish/completions/aqe.fish`,
123181
+ configFile: `${homeDir}/.config/fish/completions/aqe.fish`,
123181
123182
  detected: true
123182
123183
  };
123183
123184
  }
@@ -123270,7 +123271,8 @@ Installing completions for ${shellInfo.name}...
123270
123271
  `));
123271
123272
  const script = generateCompletion(shellInfo.name);
123272
123273
  if (shellInfo.name === "fish") {
123273
- const fishCompletionsDir = `${process.env.HOME}/.config/fish/completions`;
123274
+ const homeDir = process.env.HOME || process.env.USERPROFILE || "";
123275
+ const fishCompletionsDir = path23.join(homeDir, ".config", "fish", "completions");
123274
123276
  try {
123275
123277
  fs21.mkdirSync(fishCompletionsDir, { recursive: true });
123276
123278
  const completionFile = path23.join(fishCompletionsDir, "aqe.fish");
@@ -130544,6 +130546,16 @@ var IAPTunnelManager = class {
130544
130546
  console.log("[TunnelManager] Tunnel already running");
130545
130547
  return this.connection;
130546
130548
  }
130549
+ const alreadyListening = await this.checkPort("localhost", this.config.tunnelPort);
130550
+ if (alreadyListening) {
130551
+ console.log(`[TunnelManager] External tunnel detected on port ${this.config.tunnelPort}, reusing`);
130552
+ this.connection = {
130553
+ host: "localhost",
130554
+ port: this.config.tunnelPort,
130555
+ startedAt: /* @__PURE__ */ new Date()
130556
+ };
130557
+ return this.connection;
130558
+ }
130547
130559
  return new Promise((resolve14, reject) => {
130548
130560
  const args = [
130549
130561
  "compute",
@@ -136543,10 +136555,11 @@ Registered: ${events.length}/${Object.keys(QE_HOOK_EVENTS).length}`)
136543
136555
  try {
136544
136556
  const sessionId = state.sessionId || "unknown";
136545
136557
  let stats = null;
136546
- try {
136547
- const { reasoningBank } = await getHooksSystem();
136548
- stats = await reasoningBank.getStats();
136549
- } catch {
136558
+ if (state.initialized && state.reasoningBank) {
136559
+ try {
136560
+ stats = await state.reasoningBank.getStats();
136561
+ } catch {
136562
+ }
136550
136563
  }
136551
136564
  if (options.json) {
136552
136565
  printJson({
@@ -138420,7 +138433,7 @@ async function cleanupAndExit(code = 0) {
138420
138433
  process.exit(code);
138421
138434
  }
138422
138435
  var program = new Command18();
138423
- var VERSION = true ? "3.6.1" : "0.0.0-dev";
138436
+ var VERSION = true ? "3.6.3" : "0.0.0-dev";
138424
138437
  program.name("aqe").description("Agentic QE - Domain-Driven Quality Engineering").version(VERSION);
138425
138438
  var registry = createCommandRegistry(context, cleanupAndExit, ensureInitialized);
138426
138439
  registry.registerAll(program);
@@ -44,7 +44,7 @@ async function detectClaudeFlow(projectRoot, debug) {
44
44
  }
45
45
  // Method 2: Check for CLI availability
46
46
  try {
47
- const result = execSync('npx @claude-flow/cli@latest --version 2>/dev/null', {
47
+ const result = execSync('npx @claude-flow/cli@latest --version', {
48
48
  encoding: 'utf-8',
49
49
  timeout: 10000,
50
50
  cwd: projectRoot,
@@ -96,7 +96,7 @@ async function detectFeatures(projectRoot) {
96
96
  ];
97
97
  for (const check of featureChecks) {
98
98
  try {
99
- execSync(`npx @claude-flow/cli@latest ${check.command} 2>/dev/null`, {
99
+ execSync(`npx @claude-flow/cli@latest ${check.command}`, {
100
100
  encoding: 'utf-8',
101
101
  timeout: 5000,
102
102
  cwd: projectRoot,
@@ -192,7 +192,7 @@ async function runPretrainAnalysis(projectRoot, debug) {
192
192
  try {
193
193
  if (debug)
194
194
  console.log('[ClaudeFlow] Running pretrain analysis...');
195
- execSync('npx @claude-flow/cli@latest hooks pretrain --depth medium 2>/dev/null', {
195
+ execSync('npx @claude-flow/cli@latest hooks pretrain --depth medium', {
196
196
  encoding: 'utf-8',
197
197
  timeout: 120000, // 2 minutes
198
198
  cwd: projectRoot,