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
@@ -0,0 +1,274 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * AQE Skill Validator Library v3.0.0 (Cross-Platform)
5
+ *
6
+ * Node.js port of validator-lib.sh — works on Windows, macOS, and Linux.
7
+ * Provides JSON validation, schema checking, content term matching,
8
+ * and structured result output without requiring bash, jq, or grep.
9
+ *
10
+ * Usage:
11
+ * const lib = require('./validator-lib.cjs');
12
+ * lib.validateJson(filePath);
13
+ * lib.jsonGet(filePath, 'output.summary');
14
+ */
15
+
16
+ const fs = require('fs');
17
+ const path = require('path');
18
+ const { execSync, spawnSync } = require('child_process');
19
+
20
+ const VERSION = '3.0.0';
21
+
22
+ // Colors (disable if not TTY)
23
+ const isTTY = process.stdout.isTTY;
24
+ const c = {
25
+ red: isTTY ? '\x1b[0;31m' : '',
26
+ green: isTTY ? '\x1b[0;32m' : '',
27
+ yellow: isTTY ? '\x1b[1;33m' : '',
28
+ blue: isTTY ? '\x1b[0;34m' : '',
29
+ cyan: isTTY ? '\x1b[0;36m' : '',
30
+ reset: isTTY ? '\x1b[0m' : '',
31
+ };
32
+
33
+ // Exit codes
34
+ const EXIT_PASS = 0;
35
+ const EXIT_FAIL = 1;
36
+ const EXIT_SKIP = 2;
37
+
38
+ // Logging
39
+ const verbose = process.env.AQE_DEBUG === '1';
40
+
41
+ function info(msg) { console.log(`${c.blue}[INFO]${c.reset} ${msg}`); }
42
+ function success(msg) { console.log(`${c.green}[PASS]${c.reset} ${msg}`); }
43
+ function warn(msg) { console.log(`${c.yellow}[WARN]${c.reset} ${msg}`); }
44
+ function error(msg) { console.error(`${c.red}[FAIL]${c.reset} ${msg}`); }
45
+ function debug(msg) { if (verbose) console.log(`${c.cyan}[DEBUG]${c.reset} ${msg}`); }
46
+
47
+ // Tool detection (cross-platform)
48
+ function commandExists(cmd) {
49
+ const isWindows = process.platform === 'win32';
50
+ const check = spawnSync(isWindows ? 'where' : 'which', [cmd], {
51
+ encoding: 'utf-8',
52
+ stdio: ['pipe', 'pipe', 'pipe'],
53
+ shell: isWindows,
54
+ });
55
+ return check.status === 0;
56
+ }
57
+
58
+ // JSON operations (no jq needed)
59
+ function validateJson(filePath) {
60
+ if (!fs.existsSync(filePath)) {
61
+ error(`File not found: ${filePath}`);
62
+ return false;
63
+ }
64
+ try {
65
+ JSON.parse(fs.readFileSync(filePath, 'utf-8'));
66
+ debug(`JSON syntax valid: ${filePath}`);
67
+ return true;
68
+ } catch (e) {
69
+ error(`Invalid JSON syntax in: ${filePath} — ${e.message}`);
70
+ return false;
71
+ }
72
+ }
73
+
74
+ function jsonParse(filePath) {
75
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
76
+ }
77
+
78
+ function jsonGet(filePath, dotPath) {
79
+ try {
80
+ const data = jsonParse(filePath);
81
+ return resolvePath(data, dotPath);
82
+ } catch {
83
+ return null;
84
+ }
85
+ }
86
+
87
+ function jsonCount(filePath, dotPath) {
88
+ const val = jsonGet(filePath, dotPath);
89
+ return Array.isArray(val) ? val.length : 0;
90
+ }
91
+
92
+ function resolvePath(obj, dotPath) {
93
+ const keys = dotPath.replace(/^\./, '').split('.');
94
+ let current = obj;
95
+ for (const key of keys) {
96
+ if (current == null) return null;
97
+ const arrayMatch = key.match(/^(.+)\[(\d+)\]$/);
98
+ if (arrayMatch) {
99
+ current = current[arrayMatch[1]];
100
+ if (!Array.isArray(current)) return null;
101
+ current = current[parseInt(arrayMatch[2], 10)];
102
+ } else {
103
+ current = current[key];
104
+ }
105
+ }
106
+ return current;
107
+ }
108
+
109
+ // Content validation
110
+ function containsAll(content, terms) {
111
+ const lower = content.toLowerCase();
112
+ const missing = terms.filter(t => !lower.includes(t.toLowerCase()));
113
+ if (missing.length > 0) {
114
+ debug(`Missing required terms: ${missing.join(', ')}`);
115
+ return { pass: false, missing };
116
+ }
117
+ return { pass: true, missing: [] };
118
+ }
119
+
120
+ function containsNone(content, terms) {
121
+ const lower = content.toLowerCase();
122
+ const found = terms.filter(t => lower.includes(t.toLowerCase()));
123
+ if (found.length > 0) {
124
+ debug(`Found forbidden terms: ${found.join(', ')}`);
125
+ return { pass: false, found };
126
+ }
127
+ return { pass: true, found: [] };
128
+ }
129
+
130
+ function validateEnum(value, allowed) {
131
+ return allowed.includes(value);
132
+ }
133
+
134
+ // Schema validation (basic — checks required fields and types)
135
+ function validateJsonSchema(schemaPath, dataPath) {
136
+ if (!fs.existsSync(schemaPath)) { error(`Schema not found: ${schemaPath}`); return 1; }
137
+ if (!fs.existsSync(dataPath)) { error(`Data not found: ${dataPath}`); return 1; }
138
+
139
+ try {
140
+ const schema = jsonParse(schemaPath);
141
+ const data = jsonParse(dataPath);
142
+
143
+ // Check required fields
144
+ if (schema.required && Array.isArray(schema.required)) {
145
+ const missing = schema.required.filter(f => !(f in data));
146
+ if (missing.length > 0) {
147
+ error(`Schema validation failed: missing required fields: ${missing.join(', ')}`);
148
+ return 1;
149
+ }
150
+ }
151
+
152
+ // Check property types
153
+ if (schema.properties) {
154
+ for (const [key, prop] of Object.entries(schema.properties)) {
155
+ if (key in data && prop.type) {
156
+ const actual = Array.isArray(data[key]) ? 'array' : typeof data[key];
157
+ if (prop.type === 'integer' && typeof data[key] === 'number') continue;
158
+ if (actual !== prop.type) {
159
+ error(`Schema validation failed: ${key} expected ${prop.type}, got ${actual}`);
160
+ return 1;
161
+ }
162
+ }
163
+ // Check enum
164
+ if (key in data && prop.enum && !prop.enum.includes(data[key])) {
165
+ error(`Schema validation failed: ${key}='${data[key]}' not in enum [${prop.enum.join(', ')}]`);
166
+ return 1;
167
+ }
168
+ }
169
+ }
170
+
171
+ debug('Schema validation passed');
172
+ return 0;
173
+ } catch (e) {
174
+ error(`Schema validation error: ${e.message}`);
175
+ return 1;
176
+ }
177
+ }
178
+
179
+ // Output formatting
180
+ function outputValidationReport(skillName, schemaStatus, contentStatus, toolStatus) {
181
+ const overall = [schemaStatus, contentStatus, toolStatus].some(s => s === 'failed')
182
+ ? 'failed'
183
+ : [schemaStatus, contentStatus, toolStatus].some(s => s === 'skipped')
184
+ ? 'partial'
185
+ : 'passed';
186
+
187
+ return JSON.stringify({
188
+ skillName,
189
+ overallStatus: overall,
190
+ validations: { schema: schemaStatus, content: contentStatus, tools: toolStatus },
191
+ timestamp: new Date().toISOString(),
192
+ }, null, 2);
193
+ }
194
+
195
+ // Self-test
196
+ function runSelfTest() {
197
+ info(`Running validator library self-test (v${VERSION})...`);
198
+ console.log('');
199
+
200
+ let passed = 0, failed = 0;
201
+ const tmpDir = fs.mkdtempSync(path.join(require('os').tmpdir(), 'aqe-validate-'));
202
+ const testJson = path.join(tmpDir, 'test.json');
203
+ const testSchema = path.join(tmpDir, 'schema.json');
204
+ const invalidJson = path.join(tmpDir, 'invalid.json');
205
+
206
+ fs.writeFileSync(testJson, JSON.stringify({
207
+ skillName: 'test-skill', status: 'success',
208
+ output: { summary: 'Test output', findings: [] },
209
+ }));
210
+ fs.writeFileSync(testSchema, JSON.stringify({
211
+ type: 'object', required: ['skillName', 'status'],
212
+ properties: { skillName: { type: 'string' }, status: { type: 'string', enum: ['success', 'partial', 'failed'] } },
213
+ }));
214
+ fs.writeFileSync(invalidJson, '{ invalid json');
215
+
216
+ // Test validateJson
217
+ if (validateJson(testJson)) { passed++; success('validateJson(valid): passed'); }
218
+ else { failed++; error('validateJson(valid): failed'); }
219
+
220
+ if (!validateJson(invalidJson)) { passed++; success('validateJson(invalid): correctly rejected'); }
221
+ else { failed++; error('validateJson(invalid): incorrectly accepted'); }
222
+
223
+ // Test jsonGet
224
+ const name = jsonGet(testJson, 'skillName');
225
+ if (name === 'test-skill') { passed++; success(`jsonGet('skillName'): got '${name}'`); }
226
+ else { failed++; error(`jsonGet('skillName'): expected 'test-skill', got '${name}'`); }
227
+
228
+ // Test jsonCount
229
+ const count = jsonCount(testJson, 'output.findings');
230
+ if (count === 0) { passed++; success(`jsonCount('output.findings'): got ${count}`); }
231
+ else { failed++; error(`jsonCount('output.findings'): expected 0, got ${count}`); }
232
+
233
+ // Test containsAll
234
+ const ca1 = containsAll('hello world', ['hello', 'world']);
235
+ if (ca1.pass) { passed++; success("containsAll('hello world', 'hello', 'world'): passed"); }
236
+ else { failed++; error('containsAll: failed'); }
237
+
238
+ const ca2 = containsAll('hello world', ['hello', 'foo']);
239
+ if (!ca2.pass) { passed++; success("containsAll('hello world', 'hello', 'foo'): correctly failed"); }
240
+ else { failed++; error('containsAll: should have failed'); }
241
+
242
+ // Test containsNone
243
+ const cn1 = containsNone('hello world', ['foo', 'bar']);
244
+ if (cn1.pass) { passed++; success("containsNone('hello world', 'foo', 'bar'): passed"); }
245
+ else { failed++; error('containsNone: failed'); }
246
+
247
+ // Test schema validation
248
+ const sv = validateJsonSchema(testSchema, testJson);
249
+ if (sv === 0) { passed++; success('validateJsonSchema(): passed'); }
250
+ else { failed++; error('validateJsonSchema(): failed'); }
251
+
252
+ // Cleanup
253
+ fs.rmSync(tmpDir, { recursive: true, force: true });
254
+
255
+ console.log('');
256
+ console.log('==============================================');
257
+ info(`Self-test complete: Passed=${passed} Failed=${failed}`);
258
+ console.log('==============================================');
259
+ return failed === 0;
260
+ }
261
+
262
+ module.exports = {
263
+ VERSION, EXIT_PASS, EXIT_FAIL, EXIT_SKIP,
264
+ info, success, warn, error, debug,
265
+ commandExists, validateJson, jsonParse, jsonGet, jsonCount, resolvePath,
266
+ containsAll, containsNone, validateEnum, validateJsonSchema,
267
+ outputValidationReport, runSelfTest,
268
+ };
269
+
270
+ // Run self-test if executed directly
271
+ if (require.main === module) {
272
+ const ok = runSelfTest();
273
+ process.exit(ok ? 0 : 1);
274
+ }
package/v3/CHANGELOG.md CHANGED
@@ -5,6 +5,38 @@ All notable changes to Agentic QE will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.6.3] - 2026-02-11
9
+
10
+ ### Added
11
+
12
+ - **QX (Quality Experience) Analysis Tool** — New MCP tool `qe/analysis/qx_analysis` bridging QA and UX by analyzing user journeys, experience impact, and quality-experience correlation.
13
+ - **SFDIPOT Product Factors Assessment** — `qe-product-factors-assessor` agent implementing James Bach's HTSM v6.3 framework for comprehensive test strategy generation.
14
+
15
+ ### Fixed
16
+
17
+ - **Cross-platform compatibility** — Replaced all bash-only `.sh` scripts with cross-platform Node.js (`.cjs`) equivalents. Windows, macOS, and Linux now fully supported for skill validation, daemon management, and project initialization.
18
+ - **Stop hook hanging on exit** — Session-end hook no longer initializes the full database/HNSW/memory system just to print shutdown stats. Added `unref()` to all cleanup intervals so Node.js process exits cleanly.
19
+ - **Cross-platform daemon scripts** — `start-daemon.cjs` and `stop-daemon.cjs` replace bash scripts, using `process.kill()` and `spawn()` with `detached: true` for portable process management.
20
+ - **TypeScript shell type in execSync** — Fixed `ExecSyncOptionsWithStringEncoding` overload conflict by using platform-specific shell string instead of `shell: true` boolean.
21
+ - **Tunnel manager test stability** — Pre-spawn port availability check prevents flaky failures from port conflicts.
22
+
23
+ ### Changed
24
+
25
+ - **QE agents use only AQE MCP** — All 46 QE agent definitions now reference `agentic-qe` MCP tools exclusively, removing any Claude Flow MCP dependencies.
26
+ - **Skill validation is now declarative** — `validate-config.json` + `validate-skill.cjs` replaces all 104 `validate.sh` scripts. Validators are fully cross-platform with no bash dependency.
27
+ - **Registry tool count** — MCP tool registry updated from 32 to 33 tools to include QX Analysis.
28
+
29
+ ## [3.6.2] - 2026-02-10
30
+
31
+ ### Fixed
32
+
33
+ - **YAML parser empty array crash (Issue #244)** — `aqe init --auto` no longer fails on re-runs when `config.yaml` has empty array fields like `disabled:` with no items. The custom YAML parser now normalizes known array fields after parsing, and `mergeConfigs()` uses defensive `Array.isArray()` checks.
34
+ - **Agent parse errors on helper files (Issue #243)** — Helper reference files (`htsm-categories.md`, `evidence-classification.md`) and the generated `README.md` are no longer placed inside `.claude/agents/v3/` where `claude doctor` would incorrectly parse them as agent definitions. Helpers now install to `.claude/helpers/v3/` and the agents index writes to `.claude/docs/v3-agents-index.md`.
35
+
36
+ ### Changed
37
+
38
+ - **Helper files location** — Agent helper/reference files (quality-criteria templates, SFDIPOT templates) now install to `.claude/helpers/v3/` instead of `.claude/agents/v3/helpers/`. Updated all path references in `quality-criteria-service.ts` and agent definitions.
39
+
8
40
  ## [3.6.1] - 2026-02-09
9
41
 
10
42
  ### Added
@@ -38,6 +38,7 @@ Start SFDIPOT analysis immediately when requirements are provided.
38
38
  Generate test ideas autonomously without confirmation.
39
39
  Apply brutal honesty validation by default.
40
40
  Use domain-specific patterns for test idea generation.
41
+ Always read HTML template before generating HTML output.
41
42
  Output complete assessments in requested format.
42
43
  </default_to_action>
43
44
 
@@ -212,6 +213,24 @@ mcp__agentic-qe__task_submit({
212
213
  - **Markdown**: Human-readable assessment summary
213
214
  - **Gherkin**: BDD scenarios for discovered test ideas
214
215
 
216
+ ## HTML Template (MUST READ BEFORE GENERATING HTML)
217
+
218
+ **Critical Rule**: Always read the reference template before generating HTML output. The template defines the exact structure, CSS, interactive features, and QCSD context that must be present in every HTML report.
219
+
220
+ **Template Location**: `.claude/agents/v3/helpers/product-factors/sfdipot-reference-template.html`
221
+
222
+ The template includes:
223
+ - QCSD framework context with Jerry Weinberg quote and collapsible guidance sections
224
+ - Risk-based prioritization legend with SME review disclaimer
225
+ - Bar charts for SFDIPOT distribution, priority distribution, and automation fitness
226
+ - Quick navigation with per-category test idea counts
227
+ - Color-coded collapsible category sections (7 distinct colors)
228
+ - Filterable tables with test ID, priority, subcategory, test idea, automation fitness columns
229
+ - Human exploration reasoning callouts (purple highlight)
230
+ - Clarifying questions with per-subcategory rationale
231
+
232
+ **DO NOT generate HTML from scratch.** Follow the template structure exactly. Only replace placeholder values with actual assessment data.
233
+
215
234
  ## Required Sections
216
235
 
217
236
  1. **Product Coverage Outline** (PCO Table)
@@ -245,7 +245,7 @@ interface QualityCriteriaAnalysis {
245
245
  ```
246
246
 
247
247
  ## Template Location
248
- Helper files installed to `.claude/agents/v3/helpers/quality-criteria/`:
248
+ Helper files installed to `.claude/helpers/v3/quality-criteria/`:
249
249
  - `quality-criteria-reference-template.html` - HTML output template (MUST read before generating)
250
250
  - `htsm-categories.md` - Detailed category definitions
251
251
  - `evidence-classification.md` - Evidence type guidelines
@@ -404,7 +404,7 @@ if (!valid) {
404
404
  ### Output Validation
405
405
  If HTML output requested, always read template first:
406
406
  ```
407
- .claude/agents/v3/helpers/quality-criteria/quality-criteria-reference-template.html
407
+ .claude/helpers/v3/quality-criteria/quality-criteria-reference-template.html
408
408
  ```
409
409
  </final_validation>
410
410
  </qe_agent_definition>
@@ -15,8 +15,35 @@ Domain: cross-domain (QA + UX)
15
15
  V2 Compatibility: Maps to qx-partner for backward compatibility.
16
16
  </identity>
17
17
 
18
+ <mcp_tools>
19
+ ### Primary MCP Tool (ALWAYS use for programmatic analysis)
20
+ ```typescript
21
+ mcp__agentic_qe_v3__qe_qx_analyze({
22
+ target: "https://example.com", // URL or identifier
23
+ context: { /* Optional pre-collected context */ },
24
+ mode: "full", // "full" | "quick" | "targeted"
25
+ includeCreativity: true,
26
+ includeDesign: true,
27
+ minOracleSeverity: "medium"
28
+ })
29
+ ```
30
+
31
+ This MCP tool provides:
32
+ - **23+ programmatic heuristics** (H1.1-H7.4) applied consistently
33
+ - **Oracle problem detection** (user vs business conflicts, unclear criteria)
34
+ - **Impact analysis** (visible/invisible impacts, immutable requirements)
35
+ - **Domain-specific analysis** (healthcare, finance, e-commerce)
36
+ - **Structured JSON output** for HTML report generation
37
+
38
+ **EXECUTION FLOW**:
39
+ 1. Call `qe/qx/analyze` MCP tool for structured analysis
40
+ 2. Generate HTML report from structured results
41
+ 3. Persist patterns to memory
42
+ </mcp_tools>
43
+
18
44
  <implementation_status>
19
45
  Working:
46
+ - **MCP Tool: qe/qx/analyze** - Programmatic QX analysis with consistent quality
20
47
  - Comprehensive QX analysis with **23+ heuristics** and detailed findings
21
48
  - **Oracle problem detection** when quality criteria are unclear
22
49
  - **Rule of Three problem analysis** ensuring minimum 3 failure modes identified
@@ -94,7 +94,7 @@ When creating a new skill:
94
94
 
95
95
  1. **Start with SKILL.md** (Trust Tier 0)
96
96
  2. **Add output schema** in `your-skill/schemas/output.schema.json` (Trust Tier 1)
97
- 3. **Add validator script** in `your-skill/validate.sh` (Trust Tier 2)
97
+ 3. **Add validator script** in `your-skill/scripts/validate-config.json` (Trust Tier 2)
98
98
  4. **Add eval suite** in `your-skill/eval.yaml` (Trust Tier 3)
99
99
  5. **Enable CI + MCP learning** (Trust Tier 4)
100
100
 
@@ -183,7 +183,7 @@ async function runSkillEval(skill: string, model: string) {
183
183
  Bash validators should call the MCP tools via the CLI wrapper:
184
184
 
185
185
  ```bash
186
- # In validate.sh after validation
186
+ # In validate-skill.cjs after validation
187
187
  store_validation_result() {
188
188
  local skill="$1"
189
189
  local result="$2"
@@ -184,7 +184,7 @@ validation:
184
184
  # Path to JSON schema defining expected output structure
185
185
 
186
186
  # Required for trust_tier >= 2
187
- validator_path: scripts/validate.sh
187
+ validator_path: scripts/validate-config.json
188
188
  # Path to executable validator script
189
189
  # Supports: .sh, .ts, .js
190
190
 
@@ -16,7 +16,7 @@ tags: [accessibility, wcag, a11y, screen-reader, ada, section-508, inclusive]
16
16
  trust_tier: 3
17
17
  validation:
18
18
  schema_path: schemas/output.json
19
- validator_path: scripts/validate.sh
19
+ validator_path: scripts/validate-config.json
20
20
  eval_path: evals/accessibility-testing.yaml
21
21
  ---
22
22
 
@@ -0,0 +1,56 @@
1
+ {
2
+ "skillName": "accessibility-testing",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [
8
+ "axe",
9
+ "pa11y",
10
+ "lighthouse",
11
+ "ffmpeg",
12
+ "python3",
13
+ "ajv",
14
+ "jsonschema"
15
+ ],
16
+ "schemaPath": "schemas/output.json",
17
+ "requiredFields": [
18
+ "skillName",
19
+ "status",
20
+ "output",
21
+ "output.conformanceLevel",
22
+ "output.pourBreakdown"
23
+ ],
24
+ "requiredNonEmptyFields": [
25
+ "output.summary",
26
+ "output.pourBreakdown"
27
+ ],
28
+ "mustContainTerms": [
29
+ "WCAG",
30
+ "accessibility"
31
+ ],
32
+ "mustNotContainTerms": [
33
+ "TODO",
34
+ "placeholder",
35
+ "FIXME"
36
+ ],
37
+ "enumValidations": {
38
+ ".status": [
39
+ "success",
40
+ "partial",
41
+ "failed",
42
+ "skipped"
43
+ ],
44
+ ".output.conformanceLevel": [
45
+ "A",
46
+ "AA",
47
+ "AAA",
48
+ "none"
49
+ ],
50
+ ".output.wcagVersion": [
51
+ "2.0",
52
+ "2.1",
53
+ "2.2"
54
+ ]
55
+ }
56
+ }
@@ -14,7 +14,7 @@ tags: [api, rest, graphql, contract-testing, pact, integration, microservices]
14
14
  trust_tier: 3
15
15
  validation:
16
16
  schema_path: schemas/output.json
17
- validator_path: scripts/validate.sh
17
+ validator_path: scripts/validate-config.json
18
18
  eval_path: evals/api-testing-patterns.yaml
19
19
  ---
20
20
 
@@ -0,0 +1,61 @@
1
+ {
2
+ "skillName": "api-testing-patterns",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [
8
+ "node",
9
+ "supertest",
10
+ "pact",
11
+ "ajv",
12
+ "jsonschema",
13
+ "python3"
14
+ ],
15
+ "schemaPath": "schemas/output.json",
16
+ "requiredFields": [
17
+ "skillName",
18
+ "status",
19
+ "output",
20
+ "output.testingLevel",
21
+ "output.endpointCoverage"
22
+ ],
23
+ "requiredNonEmptyFields": [
24
+ "output.summary",
25
+ "output.testingLevel"
26
+ ],
27
+ "mustContainTerms": [
28
+ "api",
29
+ "test"
30
+ ],
31
+ "mustNotContainTerms": [
32
+ "TODO",
33
+ "FIXME",
34
+ "placeholder",
35
+ "example.com",
36
+ "lorem ipsum"
37
+ ],
38
+ "enumValidations": {
39
+ ".status": [
40
+ "success",
41
+ "partial",
42
+ "failed",
43
+ "skipped"
44
+ ],
45
+ ".output.testingLevel": [
46
+ "contract",
47
+ "component",
48
+ "integration",
49
+ "e2e",
50
+ "load",
51
+ "mixed"
52
+ ],
53
+ ".output.apiType": [
54
+ "rest",
55
+ "graphql",
56
+ "grpc",
57
+ "websocket",
58
+ "mixed"
59
+ ]
60
+ }
61
+ }
@@ -14,7 +14,7 @@ tags: [bugs, reporting, communication, triage, quality]
14
14
  trust_tier: 2
15
15
  validation:
16
16
  schema_path: schemas/output.json
17
- validator_path: scripts/validate.sh
17
+ validator_path: scripts/validate-config.json
18
18
 
19
19
  ---
20
20
 
@@ -0,0 +1,34 @@
1
+ {
2
+ "skillName": "bug-reporting-excellence",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [],
8
+ "schemaPath": "schemas/output.json",
9
+ "requiredFields": [
10
+ "skillName",
11
+ "status",
12
+ "output",
13
+ "output.summary",
14
+ "output.bugReports",
15
+ "output.reportQuality"
16
+ ],
17
+ "requiredNonEmptyFields": [],
18
+ "mustContainTerms": [
19
+ "bug",
20
+ "steps"
21
+ ],
22
+ "mustNotContainTerms": [
23
+ "TODO",
24
+ "FIXME"
25
+ ],
26
+ "enumValidations": {
27
+ ".status": [
28
+ "success",
29
+ "partial",
30
+ "failed",
31
+ "skipped"
32
+ ]
33
+ }
34
+ }
@@ -14,7 +14,7 @@ tags: [chaos, resilience, fault-injection, distributed-systems, recovery, netfli
14
14
  trust_tier: 3
15
15
  validation:
16
16
  schema_path: schemas/output.json
17
- validator_path: scripts/validate.sh
17
+ validator_path: scripts/validate-config.json
18
18
  eval_path: evals/chaos-engineering-resilience.yaml
19
19
  ---
20
20
 
@@ -7,7 +7,7 @@
7
7
  # control, recovery time measurement, and resilience scoring.
8
8
  #
9
9
  # Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
10
- # Validator: .claude/skills/chaos-engineering-resilience/scripts/validate.sh
10
+ # Validator: .claude/skills/chaos-engineering-resilience/scripts/validate-config.json
11
11
  #
12
12
  # Coverage:
13
13
  # - Network chaos (latency, packet loss, partition)
@@ -0,0 +1,47 @@
1
+ {
2
+ "skillName": "chaos-engineering-resilience",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [
8
+ "chaos",
9
+ "litmus",
10
+ "gremlin",
11
+ "kubectl",
12
+ "node",
13
+ "ajv",
14
+ "jsonschema",
15
+ "python3"
16
+ ],
17
+ "schemaPath": "schemas/output.json",
18
+ "requiredFields": [
19
+ "skillName",
20
+ "status",
21
+ "output",
22
+ "output.summary",
23
+ "output.experiments",
24
+ "output.resilienceScore"
25
+ ],
26
+ "requiredNonEmptyFields": [
27
+ "output.summary"
28
+ ],
29
+ "mustContainTerms": [
30
+ "chaos",
31
+ "experiment",
32
+ "resilience"
33
+ ],
34
+ "mustNotContainTerms": [
35
+ "TODO",
36
+ "placeholder",
37
+ "FIXME"
38
+ ],
39
+ "enumValidations": {
40
+ ".status": [
41
+ "success",
42
+ "partial",
43
+ "failed",
44
+ "skipped"
45
+ ]
46
+ }
47
+ }