agentic-qe 3.8.1 → 3.8.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 (448) hide show
  1. package/.claude/agents/v3/qe-security-scanner.md +2 -2
  2. package/.claude/commands/claude-flow-help.md +1 -1
  3. package/.claude/helpers/github-setup.sh +4 -4
  4. package/.claude/helpers/post-commit +1 -1
  5. package/.claude/helpers/pre-commit +1 -1
  6. package/.claude/helpers/quick-start.sh +4 -4
  7. package/.claude/helpers/setup-mcp.sh +3 -3
  8. package/.claude/helpers/statusline-v3.cjs +1 -1
  9. package/.claude/helpers/validation-pipeline.cjs +625 -0
  10. package/.claude/skills/README.md +29 -7
  11. package/.claude/skills/TRUST-TIERS.md +26 -10
  12. package/.claude/skills/a11y-ally/SKILL.md +10 -2
  13. package/.claude/skills/accessibility-testing/SKILL.md +2 -1
  14. package/.claude/skills/agentic-quality-engineering/SKILL.md +1 -2
  15. package/.claude/skills/api-testing-patterns/SKILL.md +8 -0
  16. package/.claude/skills/api-testing-patterns/config.json +14 -0
  17. package/.claude/skills/api-testing-patterns/templates/api-test-scaffold.md +87 -0
  18. package/.claude/skills/brutal-honesty-review/SKILL.md +0 -1
  19. package/.claude/skills/bug-reporting-excellence/SKILL.md +14 -1
  20. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +0 -1
  21. package/.claude/skills/code-review-quality/SKILL.md +14 -1
  22. package/.claude/skills/compatibility-testing/SKILL.md +1 -54
  23. package/.claude/skills/compliance-testing/SKILL.md +8 -1
  24. package/.claude/skills/compliance-testing/config.json +13 -0
  25. package/.claude/skills/consultancy-practices/SKILL.md +1 -33
  26. package/.claude/skills/context-driven-testing/SKILL.md +0 -42
  27. package/.claude/skills/contract-testing/SKILL.md +12 -0
  28. package/.claude/skills/contract-testing/config.json +13 -0
  29. package/.claude/skills/contract-testing/references/agent-commands.md +103 -0
  30. package/.claude/skills/contract-testing/references/provider-states.md +45 -0
  31. package/.claude/skills/coverage-drop-investigator/SKILL.md +90 -0
  32. package/.claude/skills/coverage-guard/SKILL.md +82 -0
  33. package/.claude/skills/coverage-guard/scripts/check-coverage.sh +42 -0
  34. package/.claude/skills/database-testing/SKILL.md +0 -10
  35. package/.claude/skills/debug-loop/SKILL.md +1 -1
  36. package/.claude/skills/e2e-flow-verifier/SKILL.md +78 -0
  37. package/.claude/skills/enterprise-integration-testing/SKILL.md +1 -1
  38. package/.claude/skills/exploratory-testing-advanced/SKILL.md +8 -1
  39. package/.claude/skills/exploratory-testing-advanced/references/heuristic-cheatsheet.md +48 -0
  40. package/.claude/skills/freeze-tests/SKILL.md +67 -0
  41. package/.claude/skills/freeze-tests/scripts/block-test-edits.sh +27 -0
  42. package/.claude/skills/holistic-testing-pact/SKILL.md +0 -1
  43. package/.claude/skills/iterative-loop/SKILL.md +6 -6
  44. package/.claude/skills/localization-testing/SKILL.md +0 -18
  45. package/.claude/skills/mobile-testing/SKILL.md +2 -50
  46. package/.claude/skills/mutation-testing/SKILL.md +26 -1
  47. package/.claude/skills/mutation-testing/config.json +14 -0
  48. package/.claude/skills/mutation-testing/references/mutation-operators.md +38 -0
  49. package/.claude/skills/mutation-testing/run-history.json +6 -0
  50. package/.claude/skills/n8n-expression-testing/SKILL.md +0 -1
  51. package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +0 -1
  52. package/.claude/skills/n8n-security-testing/SKILL.md +0 -1
  53. package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +0 -1
  54. package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +0 -1
  55. package/.claude/skills/no-skip/SKILL.md +74 -0
  56. package/.claude/skills/no-skip/scripts/check-skips.sh +28 -0
  57. package/.claude/skills/pair-programming/SKILL.md +1 -1
  58. package/.claude/skills/pentest-validation/SKILL.md +2 -3
  59. package/.claude/skills/performance-testing/SKILL.md +21 -0
  60. package/.claude/skills/performance-testing/config.json +18 -0
  61. package/.claude/skills/performance-testing/references/k6-patterns.md +72 -0
  62. package/.claude/skills/performance-testing/run-history.json +6 -0
  63. package/.claude/skills/pr-review/SKILL.md +3 -3
  64. package/.claude/skills/qcsd-cicd-swarm/SKILL.md +1 -2
  65. package/.claude/skills/qcsd-development-swarm/SKILL.md +1 -2
  66. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1 -2
  67. package/.claude/skills/qcsd-production-swarm/SKILL.md +1 -2
  68. package/.claude/skills/qcsd-production-swarm/steps/01-flag-detection.md +1 -1
  69. package/.claude/skills/qcsd-production-swarm/steps/07-learning-persistence.md +2 -2
  70. package/.claude/skills/qcsd-refinement-swarm/SKILL.md +1 -2
  71. package/.claude/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +1 -1
  72. package/.claude/skills/qe-chaos-resilience/SKILL.md +2 -3
  73. package/.claude/skills/qe-code-intelligence/SKILL.md +9 -2
  74. package/.claude/skills/qe-coverage-analysis/SKILL.md +28 -2
  75. package/.claude/skills/qe-coverage-analysis/run-history.json +6 -0
  76. package/.claude/skills/qe-defect-intelligence/SKILL.md +1 -2
  77. package/.claude/skills/qe-iterative-loop/SKILL.md +0 -1
  78. package/.claude/skills/qe-learning-optimization/SKILL.md +1 -2
  79. package/.claude/skills/qe-quality-assessment/SKILL.md +29 -3
  80. package/.claude/skills/qe-quality-assessment/run-history.json +6 -0
  81. package/.claude/skills/qe-requirements-validation/SKILL.md +1 -2
  82. package/.claude/skills/qe-test-execution/SKILL.md +9 -2
  83. package/.claude/skills/qe-test-generation/SKILL.md +15 -2
  84. package/.claude/skills/qe-test-generation/config.json +14 -0
  85. package/.claude/skills/qe-test-generation/templates/test-scaffold-jest.md +72 -0
  86. package/.claude/skills/qe-visual-accessibility/SKILL.md +1 -2
  87. package/.claude/skills/quality-metrics/SKILL.md +3 -78
  88. package/.claude/skills/refactoring-patterns/SKILL.md +0 -1
  89. package/.claude/skills/regression-testing/SKILL.md +13 -49
  90. package/.claude/skills/risk-based-testing/SKILL.md +6 -52
  91. package/.claude/skills/security-testing/SKILL.md +30 -0
  92. package/.claude/skills/security-testing/config.json +13 -0
  93. package/.claude/skills/security-testing/references/compliance-agent-commands.md +131 -0
  94. package/.claude/skills/security-testing/references/owasp-top-10.md +66 -0
  95. package/.claude/skills/security-testing/run-history.json +6 -0
  96. package/.claude/skills/security-testing/templates/security-report.md +44 -0
  97. package/.claude/skills/security-visual-testing/SKILL.md +0 -1
  98. package/.claude/skills/security-watch/SKILL.md +93 -0
  99. package/.claude/skills/security-watch/scripts/scan-security.sh +46 -0
  100. package/.claude/skills/sherlock-review/SKILL.md +0 -1
  101. package/.claude/skills/shift-left-testing/SKILL.md +16 -88
  102. package/.claude/skills/shift-right-testing/SKILL.md +0 -1
  103. package/.claude/skills/six-thinking-hats/SKILL.md +0 -1
  104. package/.claude/skills/skill-stats/SKILL.md +79 -0
  105. package/.claude/skills/skills-manifest.json +1 -1
  106. package/.claude/skills/strict-tdd/SKILL.md +72 -0
  107. package/.claude/skills/strict-tdd/scripts/enforce-red-phase.sh +36 -0
  108. package/.claude/skills/tdd-london-chicago/SKILL.md +8 -1
  109. package/.claude/skills/technical-writing/SKILL.md +0 -1
  110. package/.claude/skills/test-automation-strategy/SKILL.md +13 -65
  111. package/.claude/skills/test-data-management/SKILL.md +1 -105
  112. package/.claude/skills/test-design-techniques/SKILL.md +2 -152
  113. package/.claude/skills/test-environment-management/SKILL.md +0 -48
  114. package/.claude/skills/test-failure-investigator/SKILL.md +99 -0
  115. package/.claude/skills/test-metrics-dashboard/SKILL.md +97 -0
  116. package/.claude/skills/test-reporting-analytics/SKILL.md +0 -1
  117. package/.claude/skills/trust-tier-manifest.json +135 -61
  118. package/.claude/skills/validation-pipeline/SKILL.md +5 -6
  119. package/.claude/skills/verification-quality/SKILL.md +15 -1
  120. package/.claude/skills/visual-testing-advanced/SKILL.md +0 -1
  121. package/.claude/skills/xp-practices/SKILL.md +2 -110
  122. package/.opencode/agents/collective-intelligence-coordinator.yaml +52 -0
  123. package/.opencode/agents/ddd-domain-expert.yaml +49 -0
  124. package/.opencode/agents/memory-specialist.yaml +49 -0
  125. package/.opencode/agents/performance-engineer.yaml +53 -0
  126. package/.opencode/agents/qe-accessibility-auditor.yaml +118 -0
  127. package/.opencode/agents/qe-api-contract-validator.yaml +85 -0
  128. package/.opencode/agents/qe-bdd-generator.yaml +83 -0
  129. package/.opencode/agents/qe-chaos-engineer.yaml +114 -0
  130. package/.opencode/agents/qe-code-complexity.yaml +82 -0
  131. package/.opencode/agents/qe-code-intelligence.yaml +80 -0
  132. package/.opencode/agents/qe-coverage-analyzer.yaml +75 -0
  133. package/.opencode/agents/qe-defect-predictor.yaml +81 -0
  134. package/.opencode/agents/qe-dependency-mapper.yaml +81 -0
  135. package/.opencode/agents/qe-deployment-advisor.yaml +82 -0
  136. package/.opencode/agents/qe-devils-advocate.yaml +63 -0
  137. package/.opencode/agents/qe-flaky-hunter.yaml +116 -0
  138. package/.opencode/agents/qe-fleet-commander.yaml +83 -0
  139. package/.opencode/agents/qe-gap-detector.yaml +81 -0
  140. package/.opencode/agents/qe-graphql-tester.yaml +84 -0
  141. package/.opencode/agents/qe-impact-analyzer.yaml +81 -0
  142. package/.opencode/agents/qe-integration-architect.yaml +46 -0
  143. package/.opencode/agents/qe-integration-tester.yaml +84 -0
  144. package/.opencode/agents/qe-kg-builder.yaml +75 -0
  145. package/.opencode/agents/qe-learning-coordinator.yaml +82 -0
  146. package/.opencode/agents/qe-load-tester.yaml +84 -0
  147. package/.opencode/agents/qe-message-broker-tester.yaml +94 -0
  148. package/.opencode/agents/qe-metrics-optimizer.yaml +81 -0
  149. package/.opencode/agents/qe-middleware-validator.yaml +92 -0
  150. package/.opencode/agents/qe-mutation-tester.yaml +84 -0
  151. package/.opencode/agents/qe-odata-contract-tester.yaml +98 -0
  152. package/.opencode/agents/qe-parallel-executor.yaml +79 -0
  153. package/.opencode/agents/qe-pattern-learner.yaml +80 -0
  154. package/.opencode/agents/qe-pentest-validator.yaml +137 -0
  155. package/.opencode/agents/qe-performance-tester.yaml +83 -0
  156. package/.opencode/agents/qe-product-factors-assessor.yaml +116 -0
  157. package/.opencode/agents/qe-property-tester.yaml +82 -0
  158. package/.opencode/agents/qe-quality-criteria-recommender.yaml +111 -0
  159. package/.opencode/agents/qe-quality-gate.yaml +80 -0
  160. package/.opencode/agents/qe-queen-coordinator.yaml +59 -0
  161. package/.opencode/agents/qe-qx-partner.yaml +75 -0
  162. package/.opencode/agents/qe-regression-analyzer.yaml +90 -0
  163. package/.opencode/agents/qe-requirements-validator.yaml +111 -0
  164. package/.opencode/agents/qe-responsive-tester.yaml +85 -0
  165. package/.opencode/agents/qe-retry-handler.yaml +82 -0
  166. package/.opencode/agents/qe-risk-assessor.yaml +81 -0
  167. package/.opencode/agents/qe-root-cause-analyzer.yaml +82 -0
  168. package/.opencode/agents/qe-sap-idoc-tester.yaml +104 -0
  169. package/.opencode/agents/qe-sap-rfc-tester.yaml +94 -0
  170. package/.opencode/agents/qe-security-auditor.yaml +90 -0
  171. package/.opencode/agents/qe-security-scanner.yaml +80 -0
  172. package/.opencode/agents/qe-soap-tester.yaml +93 -0
  173. package/.opencode/agents/qe-sod-analyzer.yaml +96 -0
  174. package/.opencode/agents/qe-tdd-specialist.yaml +84 -0
  175. package/.opencode/agents/qe-test-generator.yaml +78 -0
  176. package/.opencode/agents/qe-test-idea-rewriter.yaml +88 -0
  177. package/.opencode/agents/qe-transfer-specialist.yaml +81 -0
  178. package/.opencode/agents/qe-visual-tester.yaml +82 -0
  179. package/.opencode/agents/security-architect.yaml +51 -0
  180. package/.opencode/agents/security-auditor.yaml +50 -0
  181. package/.opencode/permissions.yaml +74 -0
  182. package/.opencode/skills/qcsd-cicd-swarm.yaml +45 -0
  183. package/.opencode/skills/qcsd-development-swarm.yaml +45 -0
  184. package/.opencode/skills/qcsd-ideation-swarm.yaml +45 -0
  185. package/.opencode/skills/qcsd-production-swarm.yaml +45 -0
  186. package/.opencode/skills/qcsd-refinement-swarm.yaml +45 -0
  187. package/.opencode/skills/qe-a11y-ally.yaml +45 -0
  188. package/.opencode/skills/qe-accessibility-testing.yaml +45 -0
  189. package/.opencode/skills/qe-agentic-jujutsu.yaml +45 -0
  190. package/.opencode/skills/qe-agentic-quality-engineering.yaml +45 -0
  191. package/.opencode/skills/qe-api-testing-patterns.yaml +45 -0
  192. package/.opencode/skills/qe-aqe-v2-v3-migration.yaml +45 -0
  193. package/.opencode/skills/qe-brutal-honesty-review.yaml +45 -0
  194. package/.opencode/skills/qe-bug-reporting-excellence.yaml +45 -0
  195. package/.opencode/skills/qe-chaos-engineering-resilience.yaml +30 -0
  196. package/.opencode/skills/qe-chaos-resilience.yaml +45 -0
  197. package/.opencode/skills/qe-cicd-pipeline-qe-orchestrator.yaml +45 -0
  198. package/.opencode/skills/qe-code-intelligence.yaml +45 -0
  199. package/.opencode/skills/qe-code-review-quality.yaml +45 -0
  200. package/.opencode/skills/qe-compatibility-testing.yaml +35 -0
  201. package/.opencode/skills/qe-compliance-testing.yaml +35 -0
  202. package/.opencode/skills/qe-consultancy-practices.yaml +45 -0
  203. package/.opencode/skills/qe-context-driven-testing.yaml +45 -0
  204. package/.opencode/skills/qe-coverage-analysis.yaml +45 -0
  205. package/.opencode/skills/qe-database-testing.yaml +40 -0
  206. package/.opencode/skills/qe-debug-loop.yaml +45 -0
  207. package/.opencode/skills/qe-defect-intelligence.yaml +45 -0
  208. package/.opencode/skills/qe-enterprise-integration-testing.yaml +45 -0
  209. package/.opencode/skills/qe-exploratory-testing-advanced.yaml +45 -0
  210. package/.opencode/skills/qe-github-code-review.yaml +45 -0
  211. package/.opencode/skills/qe-github-multi-repo.yaml +45 -0
  212. package/.opencode/skills/qe-github-project-management.yaml +45 -0
  213. package/.opencode/skills/qe-github-release-management.yaml +45 -0
  214. package/.opencode/skills/qe-github-workflow-automation.yaml +45 -0
  215. package/.opencode/skills/qe-holistic-testing-pact.yaml +45 -0
  216. package/.opencode/skills/qe-iterative-loop.yaml +45 -0
  217. package/.opencode/skills/qe-learning-optimization.yaml +45 -0
  218. package/.opencode/skills/qe-localization-testing.yaml +40 -0
  219. package/.opencode/skills/qe-middleware-testing-patterns.yaml +45 -0
  220. package/.opencode/skills/qe-mobile-testing.yaml +35 -0
  221. package/.opencode/skills/qe-mutation-testing.yaml +35 -0
  222. package/.opencode/skills/qe-n8n-expression-testing.yaml +45 -0
  223. package/.opencode/skills/qe-n8n-integration-testing-patterns.yaml +45 -0
  224. package/.opencode/skills/qe-n8n-security-testing.yaml +45 -0
  225. package/.opencode/skills/qe-n8n-trigger-testing-strategies.yaml +45 -0
  226. package/.opencode/skills/qe-n8n-workflow-testing-fundamentals.yaml +45 -0
  227. package/.opencode/skills/qe-observability-testing-patterns.yaml +45 -0
  228. package/.opencode/skills/qe-pair-programming.yaml +45 -0
  229. package/.opencode/skills/qe-pentest-validation.yaml +45 -0
  230. package/.opencode/skills/qe-performance-analysis.yaml +45 -0
  231. package/.opencode/skills/qe-performance-testing.yaml +45 -0
  232. package/.opencode/skills/qe-pr-review.yaml +45 -0
  233. package/.opencode/skills/qe-quality-assessment.yaml +45 -0
  234. package/.opencode/skills/qe-quality-metrics.yaml +45 -0
  235. package/.opencode/skills/qe-refactoring-patterns.yaml +40 -0
  236. package/.opencode/skills/qe-regression-testing.yaml +40 -0
  237. package/.opencode/skills/qe-release.yaml +45 -0
  238. package/.opencode/skills/qe-requirements-validation.yaml +45 -0
  239. package/.opencode/skills/qe-risk-based-testing.yaml +45 -0
  240. package/.opencode/skills/qe-security-testing.yaml +45 -0
  241. package/.opencode/skills/qe-security-visual-testing.yaml +45 -0
  242. package/.opencode/skills/qe-sfdipot-product-factors.yaml +45 -0
  243. package/.opencode/skills/qe-sherlock-review.yaml +45 -0
  244. package/.opencode/skills/qe-shift-left-testing.yaml +45 -0
  245. package/.opencode/skills/qe-shift-right-testing.yaml +45 -0
  246. package/.opencode/skills/qe-six-thinking-hats.yaml +45 -0
  247. package/.opencode/skills/qe-skill-builder.yaml +45 -0
  248. package/.opencode/skills/qe-sparc-methodology.yaml +45 -0
  249. package/.opencode/skills/qe-stream-chain.yaml +45 -0
  250. package/.opencode/skills/qe-tdd-london-chicago.yaml +45 -0
  251. package/.opencode/skills/qe-technical-writing.yaml +45 -0
  252. package/.opencode/skills/qe-test-automation-strategy.yaml +35 -0
  253. package/.opencode/skills/qe-test-data-management.yaml +45 -0
  254. package/.opencode/skills/qe-test-design-techniques.yaml +40 -0
  255. package/.opencode/skills/qe-test-environment-management.yaml +40 -0
  256. package/.opencode/skills/qe-test-execution.yaml +45 -0
  257. package/.opencode/skills/qe-test-generation.yaml +45 -0
  258. package/.opencode/skills/qe-test-idea-rewriting.yaml +45 -0
  259. package/.opencode/skills/qe-test-reporting-analytics.yaml +45 -0
  260. package/.opencode/skills/qe-testability-scoring.yaml +45 -0
  261. package/.opencode/skills/qe-verification-quality.yaml +45 -0
  262. package/.opencode/skills/qe-visual-accessibility.yaml +45 -0
  263. package/.opencode/skills/qe-visual-testing-advanced.yaml +40 -0
  264. package/.opencode/skills/qe-wms-testing-patterns.yaml +45 -0
  265. package/.opencode/skills/qe-xp-practices.yaml +45 -0
  266. package/.opencode/tools/qe-defect-scan.ts +79 -0
  267. package/.opencode/tools/qe-fleet-status.ts +59 -0
  268. package/.opencode/tools/qe-full-audit.ts +81 -0
  269. package/.opencode/tools/qe-learning-report.ts +74 -0
  270. package/.opencode/tools/qe-test-and-verify.ts +97 -0
  271. package/CHANGELOG.md +50 -0
  272. package/README.md +5 -1
  273. package/assets/agents/v3/qe-security-scanner.md +2 -2
  274. package/assets/helpers/statusline-v3.cjs +1 -1
  275. package/assets/helpers/validation-pipeline.cjs +625 -0
  276. package/assets/skills/README.md +173 -0
  277. package/assets/skills/TRUST-TIERS.md +174 -0
  278. package/assets/skills/a11y-ally/SKILL.md +10 -2
  279. package/assets/skills/accessibility-testing/SKILL.md +2 -1
  280. package/assets/skills/agentic-quality-engineering/SKILL.md +1 -2
  281. package/assets/skills/api-testing-patterns/SKILL.md +8 -0
  282. package/assets/skills/api-testing-patterns/config.json +14 -0
  283. package/assets/skills/api-testing-patterns/templates/api-test-scaffold.md +87 -0
  284. package/assets/skills/brutal-honesty-review/SKILL.md +0 -1
  285. package/assets/skills/bug-reporting-excellence/SKILL.md +14 -1
  286. package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +0 -1
  287. package/assets/skills/code-review-quality/SKILL.md +14 -1
  288. package/assets/skills/compatibility-testing/SKILL.md +1 -54
  289. package/assets/skills/compliance-testing/SKILL.md +8 -1
  290. package/assets/skills/compliance-testing/config.json +13 -0
  291. package/assets/skills/consultancy-practices/SKILL.md +1 -33
  292. package/assets/skills/context-driven-testing/SKILL.md +0 -42
  293. package/assets/skills/contract-testing/SKILL.md +12 -0
  294. package/assets/skills/contract-testing/config.json +13 -0
  295. package/assets/skills/contract-testing/references/agent-commands.md +103 -0
  296. package/assets/skills/contract-testing/references/provider-states.md +45 -0
  297. package/assets/skills/coverage-drop-investigator/SKILL.md +90 -0
  298. package/assets/skills/coverage-guard/SKILL.md +82 -0
  299. package/assets/skills/coverage-guard/scripts/check-coverage.sh +42 -0
  300. package/assets/skills/database-testing/SKILL.md +0 -10
  301. package/assets/skills/debug-loop/SKILL.md +1 -1
  302. package/assets/skills/e2e-flow-verifier/SKILL.md +78 -0
  303. package/assets/skills/enterprise-integration-testing/SKILL.md +1 -1
  304. package/assets/skills/exploratory-testing-advanced/SKILL.md +8 -1
  305. package/assets/skills/exploratory-testing-advanced/references/heuristic-cheatsheet.md +48 -0
  306. package/assets/skills/freeze-tests/SKILL.md +67 -0
  307. package/assets/skills/freeze-tests/scripts/block-test-edits.sh +27 -0
  308. package/assets/skills/holistic-testing-pact/SKILL.md +0 -1
  309. package/assets/skills/localization-testing/SKILL.md +0 -18
  310. package/assets/skills/mobile-testing/SKILL.md +2 -50
  311. package/assets/skills/mutation-testing/SKILL.md +26 -1
  312. package/assets/skills/mutation-testing/config.json +14 -0
  313. package/assets/skills/mutation-testing/references/mutation-operators.md +38 -0
  314. package/assets/skills/mutation-testing/run-history.json +6 -0
  315. package/assets/skills/n8n-expression-testing/SKILL.md +0 -1
  316. package/assets/skills/n8n-integration-testing-patterns/SKILL.md +0 -1
  317. package/assets/skills/n8n-security-testing/SKILL.md +0 -1
  318. package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +0 -1
  319. package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +0 -1
  320. package/assets/skills/no-skip/SKILL.md +74 -0
  321. package/assets/skills/no-skip/scripts/check-skips.sh +28 -0
  322. package/assets/skills/pair-programming/SKILL.md +1 -1
  323. package/assets/skills/pentest-validation/SKILL.md +2 -3
  324. package/assets/skills/performance-testing/SKILL.md +21 -0
  325. package/assets/skills/performance-testing/config.json +18 -0
  326. package/assets/skills/performance-testing/references/k6-patterns.md +72 -0
  327. package/assets/skills/performance-testing/run-history.json +6 -0
  328. package/assets/skills/pr-review/SKILL.md +3 -3
  329. package/assets/skills/qcsd-cicd-swarm/SKILL.md +1 -2
  330. package/assets/skills/qcsd-development-swarm/SKILL.md +1 -2
  331. package/assets/skills/qcsd-ideation-swarm/SKILL.md +1 -2
  332. package/assets/skills/qcsd-production-swarm/SKILL.md +1 -2
  333. package/assets/skills/qcsd-production-swarm/steps/01-flag-detection.md +1 -1
  334. package/assets/skills/qcsd-production-swarm/steps/07-learning-persistence.md +2 -2
  335. package/assets/skills/qcsd-refinement-swarm/SKILL.md +1 -2
  336. package/assets/skills/qcsd-refinement-swarm/steps/01-flag-detection.md +1 -1
  337. package/assets/skills/qe-chaos-resilience/SKILL.md +2 -3
  338. package/assets/skills/qe-code-intelligence/SKILL.md +9 -2
  339. package/assets/skills/qe-coverage-analysis/SKILL.md +28 -2
  340. package/assets/skills/qe-coverage-analysis/run-history.json +6 -0
  341. package/assets/skills/qe-defect-intelligence/SKILL.md +1 -2
  342. package/assets/skills/qe-iterative-loop/SKILL.md +0 -1
  343. package/assets/skills/qe-learning-optimization/SKILL.md +1 -2
  344. package/assets/skills/qe-quality-assessment/SKILL.md +29 -3
  345. package/assets/skills/qe-quality-assessment/run-history.json +6 -0
  346. package/assets/skills/qe-requirements-validation/SKILL.md +1 -2
  347. package/assets/skills/qe-test-execution/SKILL.md +9 -2
  348. package/assets/skills/qe-test-generation/SKILL.md +15 -2
  349. package/assets/skills/qe-test-generation/config.json +14 -0
  350. package/assets/skills/qe-test-generation/templates/test-scaffold-jest.md +72 -0
  351. package/assets/skills/qe-visual-accessibility/SKILL.md +1 -2
  352. package/assets/skills/quality-metrics/SKILL.md +3 -78
  353. package/assets/skills/refactoring-patterns/SKILL.md +0 -1
  354. package/assets/skills/regression-testing/SKILL.md +13 -49
  355. package/assets/skills/risk-based-testing/SKILL.md +6 -52
  356. package/assets/skills/security-testing/SKILL.md +30 -0
  357. package/assets/skills/security-testing/config.json +13 -0
  358. package/assets/skills/security-testing/references/compliance-agent-commands.md +131 -0
  359. package/assets/skills/security-testing/references/owasp-top-10.md +66 -0
  360. package/assets/skills/security-testing/run-history.json +6 -0
  361. package/assets/skills/security-testing/templates/security-report.md +44 -0
  362. package/assets/skills/security-visual-testing/SKILL.md +0 -1
  363. package/assets/skills/security-watch/SKILL.md +93 -0
  364. package/assets/skills/security-watch/scripts/scan-security.sh +46 -0
  365. package/assets/skills/sherlock-review/SKILL.md +0 -1
  366. package/assets/skills/shift-left-testing/SKILL.md +16 -88
  367. package/assets/skills/shift-right-testing/SKILL.md +0 -1
  368. package/assets/skills/six-thinking-hats/SKILL.md +0 -1
  369. package/assets/skills/skill-stats/SKILL.md +79 -0
  370. package/assets/skills/strict-tdd/SKILL.md +72 -0
  371. package/assets/skills/strict-tdd/scripts/enforce-red-phase.sh +36 -0
  372. package/assets/skills/tdd-london-chicago/SKILL.md +8 -1
  373. package/assets/skills/technical-writing/SKILL.md +0 -1
  374. package/assets/skills/test-automation-strategy/SKILL.md +13 -65
  375. package/assets/skills/test-data-management/SKILL.md +1 -105
  376. package/assets/skills/test-design-techniques/SKILL.md +2 -152
  377. package/assets/skills/test-environment-management/SKILL.md +0 -48
  378. package/assets/skills/test-failure-investigator/SKILL.md +99 -0
  379. package/assets/skills/test-metrics-dashboard/SKILL.md +97 -0
  380. package/assets/skills/test-reporting-analytics/SKILL.md +0 -1
  381. package/assets/skills/trust-tier-manifest.json +135 -61
  382. package/assets/skills/validation-pipeline/SKILL.md +5 -6
  383. package/assets/skills/verification-quality/SKILL.md +15 -1
  384. package/assets/skills/visual-testing-advanced/SKILL.md +0 -1
  385. package/assets/skills/xp-practices/SKILL.md +2 -110
  386. package/dist/adapters/claude-flow/detect.d.ts +5 -0
  387. package/dist/adapters/claude-flow/detect.js +38 -18
  388. package/dist/adapters/claude-flow/model-router-bridge.js +4 -3
  389. package/dist/adapters/claude-flow/pretrain-bridge.js +5 -4
  390. package/dist/adapters/claude-flow/trajectory-bridge.js +5 -4
  391. package/dist/cli/bundle.js +262 -79
  392. package/dist/cli/commands/claude-flow-setup.js +4 -4
  393. package/dist/domains/learning-optimization/coordinator.d.ts +6 -1
  394. package/dist/domains/learning-optimization/coordinator.js +26 -4
  395. package/dist/domains/learning-optimization/plugin.d.ts +2 -0
  396. package/dist/domains/learning-optimization/plugin.js +2 -0
  397. package/dist/governance/adversarial-defense-integration.js +1 -0
  398. package/dist/governance/continue-gate-integration.d.ts +1 -0
  399. package/dist/governance/continue-gate-integration.js +1 -0
  400. package/dist/governance/deterministic-gateway-integration.d.ts +1 -0
  401. package/dist/governance/deterministic-gateway-integration.js +1 -0
  402. package/dist/governance/evolution-pipeline-integration.d.ts +1 -0
  403. package/dist/governance/evolution-pipeline-integration.js +1 -0
  404. package/dist/governance/memory-write-gate-integration.d.ts +1 -0
  405. package/dist/governance/memory-write-gate-integration.js +1 -0
  406. package/dist/governance/proof-envelope-integration.d.ts +1 -0
  407. package/dist/governance/proof-envelope-integration.js +1 -0
  408. package/dist/governance/shard-retriever-integration.d.ts +1 -0
  409. package/dist/governance/shard-retriever-integration.js +1 -0
  410. package/dist/governance/trust-accumulator-integration.d.ts +1 -0
  411. package/dist/governance/trust-accumulator-integration.js +1 -0
  412. package/dist/init/agents-installer.js +28 -1
  413. package/dist/init/enhancements/claude-flow-adapter.js +15 -2
  414. package/dist/init/init-wizard-hooks.js +3 -3
  415. package/dist/init/kiro-installer.js +10 -4
  416. package/dist/init/opencode-installer.d.ts +13 -1
  417. package/dist/init/opencode-installer.js +52 -14
  418. package/dist/init/phases/07-hooks.js +21 -7
  419. package/dist/init/settings-merge.d.ts +1 -1
  420. package/dist/init/settings-merge.js +12 -13
  421. package/dist/init/skills-installer.d.ts +10 -0
  422. package/dist/init/skills-installer.js +68 -6
  423. package/dist/integrations/ruvector/sona-persistence.d.ts +6 -0
  424. package/dist/integrations/ruvector/sona-persistence.js +26 -1
  425. package/dist/mcp/bundle.js +98 -37
  426. package/dist/mcp/entry.js +6 -6
  427. package/dist/migration/agent-compat.js +2 -2
  428. package/package.json +9 -4
  429. package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +0 -513
  430. package/.claude/skills/aqe-v2-v3-migration/skill.md +0 -326
  431. package/.claude/skills/qe-contract-testing/SKILL.md +0 -224
  432. package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +0 -513
  433. package/.claude/skills/qe-contract-testing/schemas/output.json +0 -295
  434. package/.claude/skills/qe-contract-testing/scripts/validate-config.json +0 -42
  435. package/.claude/skills/qe-security-compliance/SKILL.md +0 -261
  436. package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +0 -595
  437. package/.claude/skills/qe-security-compliance/schemas/output.json +0 -498
  438. package/.claude/skills/qe-security-compliance/scripts/validate-config.json +0 -41
  439. package/assets/skills/aqe-v2-v3-migration/schemas/output.json +0 -513
  440. package/assets/skills/aqe-v2-v3-migration/skill.md +0 -326
  441. package/assets/skills/qe-contract-testing/SKILL.md +0 -224
  442. package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +0 -513
  443. package/assets/skills/qe-contract-testing/schemas/output.json +0 -295
  444. package/assets/skills/qe-contract-testing/scripts/validate-config.json +0 -42
  445. package/assets/skills/qe-security-compliance/SKILL.md +0 -261
  446. package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +0 -595
  447. package/assets/skills/qe-security-compliance/schemas/output.json +0 -498
  448. package/assets/skills/qe-security-compliance/scripts/validate-config.json +0 -41
@@ -137,10 +137,10 @@ function updateMCPConfig(projectRoot) {
137
137
  }
138
138
  // Add claude-flow server if not present
139
139
  const servers = settings.mcpServers;
140
- if (!servers['claude-flow']) {
141
- servers['claude-flow'] = {
140
+ if (!servers['ruflo'] && !servers['claude-flow']) {
141
+ servers['ruflo'] = {
142
142
  command: 'npx',
143
- args: ['@anthropic/claude-flow', 'mcp'],
143
+ args: ['ruflo@3.5.18', 'mcp'],
144
144
  env: {},
145
145
  };
146
146
  }
@@ -155,7 +155,7 @@ async function runPretrainAnalysis(projectRoot, debug) {
155
155
  try {
156
156
  if (debug)
157
157
  console.log('[ClaudeFlow] Running pretrain analysis...');
158
- execSync('npx --no-install @claude-flow/cli hooks pretrain --depth medium', {
158
+ execSync('npx --no-install ruflo hooks pretrain --depth medium', {
159
159
  encoding: 'utf-8',
160
160
  timeout: 120000, // 2 minutes
161
161
  cwd: projectRoot,
@@ -65,6 +65,7 @@ export declare class LearningOptimizationCoordinator extends BaseDomainCoordinat
65
65
  * QESONA (Self-Optimizing Neural Architecture) for pattern learning
66
66
  * Provides <0.05ms pattern adaptation via @ruvector/sona
67
67
  * Now uses PersistentSONAEngine to survive restarts
68
+ * Nullable: init may fail (e.g. during `aqe init`) — coordinator degrades gracefully
68
69
  */
69
70
  private sona;
70
71
  /**
@@ -76,7 +77,7 @@ export declare class LearningOptimizationCoordinator extends BaseDomainCoordinat
76
77
  /**
77
78
  * Initialize the coordinator.
78
79
  * CQ-002: Domain-specific initialization
79
- * Throws if QESONA fails to initialize.
80
+ * SONA init failure is non-fatal — coordinator degrades gracefully (#359).
80
81
  */
81
82
  protected onInitialize(): Promise<void>;
82
83
  /**
@@ -122,6 +123,10 @@ export declare class LearningOptimizationCoordinator extends BaseDomainCoordinat
122
123
  * Ensure the coordinator is initialized before use.
123
124
  */
124
125
  private ensureInitialized;
126
+ /**
127
+ * Ensure SONA engine is available (may be null if init failed gracefully).
128
+ */
129
+ private ensureSONAAvailable;
125
130
  /**
126
131
  * Adapt a pattern based on current context using QESONA.
127
132
  * Leverages @ruvector/sona's HNSW-indexed pattern matching for <0.05ms adaptation.
@@ -53,8 +53,9 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
53
53
  * QESONA (Self-Optimizing Neural Architecture) for pattern learning
54
54
  * Provides <0.05ms pattern adaptation via @ruvector/sona
55
55
  * Now uses PersistentSONAEngine to survive restarts
56
+ * Nullable: init may fail (e.g. during `aqe init`) — coordinator degrades gracefully
56
57
  */
57
- sona;
58
+ sona = null;
58
59
  /**
59
60
  * DreamScheduler for offline pattern consolidation and insight generation
60
61
  * Wraps DreamEngine with automatic scheduling and trigger support
@@ -78,7 +79,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
78
79
  /**
79
80
  * Initialize the coordinator.
80
81
  * CQ-002: Domain-specific initialization
81
- * Throws if QESONA fails to initialize.
82
+ * SONA init failure is non-fatal — coordinator degrades gracefully (#359).
82
83
  */
83
84
  async onInitialize() {
84
85
  // Initialize QESONA for neural pattern learning (persistent patterns)
@@ -93,8 +94,10 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
93
94
  console.log('[LearningOptimizationCoordinator] PersistentSONAEngine initialized for pattern learning');
94
95
  }
95
96
  catch (error) {
97
+ // SONA is an enhancement, not a hard requirement — degrade gracefully (#359)
96
98
  console.error('[LearningOptimizationCoordinator] Failed to initialize PersistentSONAEngine:', error);
97
- throw error; // Learning optimization requires SONA
99
+ console.warn('[LearningOptimizationCoordinator] Continuing without SONA pattern persistence');
100
+ this.sona = null;
98
101
  }
99
102
  // Initialize DreamScheduler if enabled
100
103
  if (this.config.enableDreamScheduler) {
@@ -484,6 +487,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
484
487
  */
485
488
  learnPattern(state, action, outcome, patternType, domain, metadata) {
486
489
  this.ensureInitialized();
490
+ this.ensureSONAAvailable();
487
491
  return this.sona.createPattern(state, action, outcome, patternType, domain, metadata);
488
492
  }
489
493
  /**
@@ -494,6 +498,14 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
494
498
  throw new Error('[LearningOptimizationCoordinator] Not initialized. Call initialize() first.');
495
499
  }
496
500
  }
501
+ /**
502
+ * Ensure SONA engine is available (may be null if init failed gracefully).
503
+ */
504
+ ensureSONAAvailable() {
505
+ if (!this.sona) {
506
+ throw new Error('[LearningOptimizationCoordinator] SONA engine is not available. Pattern persistence failed during initialization.');
507
+ }
508
+ }
497
509
  /**
498
510
  * Adapt a pattern based on current context using QESONA.
499
511
  * Leverages @ruvector/sona's HNSW-indexed pattern matching for <0.05ms adaptation.
@@ -506,6 +518,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
506
518
  */
507
519
  async adaptPattern(state, patternType, domain) {
508
520
  this.ensureInitialized();
521
+ this.ensureSONAAvailable();
509
522
  return this.sona.adaptPattern(state, patternType, domain);
510
523
  }
511
524
  /**
@@ -516,6 +529,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
516
529
  */
517
530
  getSONAStats() {
518
531
  this.ensureInitialized();
532
+ this.ensureSONAAvailable();
519
533
  return this.sona.getStats();
520
534
  }
521
535
  /**
@@ -526,6 +540,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
526
540
  */
527
541
  getSONAPatterns() {
528
542
  this.ensureInitialized();
543
+ this.ensureSONAAvailable();
529
544
  return this.sona.getAllPatterns();
530
545
  }
531
546
  /**
@@ -537,6 +552,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
537
552
  */
538
553
  getSONAPatternsByType(type) {
539
554
  this.ensureInitialized();
555
+ this.ensureSONAAvailable();
540
556
  return this.sona.getPatternsByType(type);
541
557
  }
542
558
  /**
@@ -548,6 +564,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
548
564
  */
549
565
  getSONAPatternsByDomain(domain) {
550
566
  this.ensureInitialized();
567
+ this.ensureSONAAvailable();
551
568
  return this.sona.getPatternsByDomain(domain);
552
569
  }
553
570
  /**
@@ -562,6 +579,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
562
579
  */
563
580
  updateSONAPattern(patternId, success, quality) {
564
581
  this.ensureInitialized();
582
+ this.ensureSONAAvailable();
565
583
  return this.sona.updatePattern(patternId, success, quality);
566
584
  }
567
585
  /**
@@ -573,6 +591,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
573
591
  */
574
592
  forceSONALearning() {
575
593
  this.ensureInitialized();
594
+ this.ensureSONAAvailable();
576
595
  return this.sona.forceLearn();
577
596
  }
578
597
  /**
@@ -581,7 +600,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
581
600
  * @returns True if SONA is available
582
601
  */
583
602
  isSONAAvailable() {
584
- return this.initialized;
603
+ return this.initialized && this.sona !== null;
585
604
  }
586
605
  /**
587
606
  * Export all QESONA patterns for persistence or transfer.
@@ -591,6 +610,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
591
610
  */
592
611
  exportSONAPatterns() {
593
612
  this.ensureInitialized();
613
+ this.ensureSONAAvailable();
594
614
  return this.sona.exportPatterns();
595
615
  }
596
616
  /**
@@ -602,6 +622,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
602
622
  */
603
623
  importSONAPatterns(patterns) {
604
624
  this.ensureInitialized();
625
+ this.ensureSONAAvailable();
605
626
  this.sona.importPatterns(patterns);
606
627
  }
607
628
  /**
@@ -613,6 +634,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
613
634
  */
614
635
  async verifySONAPerformance(iterations = 100) {
615
636
  this.ensureInitialized();
637
+ this.ensureSONAAvailable();
616
638
  return this.sona.verifyPerformance(iterations);
617
639
  }
618
640
  // ============================================================================
@@ -22,6 +22,8 @@ export interface LearningOptimizationPluginConfig {
22
22
  * Public API for the learning-optimization domain
23
23
  */
24
24
  export interface LearningOptimizationAPI {
25
+ /** Check if SONA pattern engine is available (may be false if init failed) */
26
+ isSONAAvailable(): boolean;
25
27
  runLearningCycle(domain: DomainName): Promise<Result<LearningCycleReport>>;
26
28
  optimizeAllStrategies(): Promise<Result<OptimizationReport>>;
27
29
  shareCrossDomainLearnings(): Promise<Result<CrossDomainSharingReport>>;
@@ -42,6 +42,8 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
42
42
  */
43
43
  getAPI() {
44
44
  const api = {
45
+ // Availability check
46
+ isSONAAvailable: () => this.coordinator?.isSONAAvailable() ?? false,
45
47
  // Coordinator methods
46
48
  runLearningCycle: this.runLearningCycle.bind(this),
47
49
  optimizeAllStrategies: this.optimizeAllStrategies.bind(this),
@@ -3,6 +3,7 @@ import { randomUUID } from 'node:crypto';
3
3
  * Adversarial Defense Integration for Agentic QE Fleet
4
4
  *
5
5
  * Wires @claude-flow/guidance adversarial defense capabilities to AQE's agent system.
6
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
6
7
  * Provides prompt injection detection, input sanitization, threat scoring,
7
8
  * automatic blocking, and trust integration.
8
9
  *
@@ -2,6 +2,7 @@
2
2
  * ContinueGate Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance ContinueGate to the AQE agent coordination loop.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides loop detection, throttling, and automatic escalation.
6
7
  *
7
8
  * @module governance/continue-gate-integration
@@ -2,6 +2,7 @@
2
2
  * ContinueGate Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance ContinueGate to the AQE agent coordination loop.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides loop detection, throttling, and automatic escalation.
6
7
  *
7
8
  * @module governance/continue-gate-integration
@@ -2,6 +2,7 @@
2
2
  * DeterministicToolGateway Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires tool idempotency enforcement to the AQE agent coordination.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides idempotency key generation, request deduplication, schema validation,
6
7
  * and response caching for idempotent operations.
7
8
  *
@@ -2,6 +2,7 @@
2
2
  * DeterministicToolGateway Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires tool idempotency enforcement to the AQE agent coordination.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides idempotency key generation, request deduplication, schema validation,
6
7
  * and response caching for idempotent operations.
7
8
  *
@@ -2,6 +2,7 @@
2
2
  * Evolution Pipeline Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance Evolution Pipeline to AQE's ReasoningBank learning system.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides rule effectiveness tracking, pattern promotion/demotion, A/B testing for
6
7
  * rule variants, and learning from agent task outcomes.
7
8
  *
@@ -2,6 +2,7 @@
2
2
  * Evolution Pipeline Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance Evolution Pipeline to AQE's ReasoningBank learning system.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides rule effectiveness tracking, pattern promotion/demotion, A/B testing for
6
7
  * rule variants, and learning from agent task outcomes.
7
8
  *
@@ -2,6 +2,7 @@
2
2
  * MemoryWriteGate Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance MemoryWriteGate to ReasoningBank.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides contradiction detection, temporal decay, and domain namespacing.
6
7
  *
7
8
  * @module governance/memory-write-gate-integration
@@ -2,6 +2,7 @@
2
2
  * MemoryWriteGate Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance MemoryWriteGate to ReasoningBank.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides contradiction detection, temporal decay, and domain namespacing.
6
7
  *
7
8
  * @module governance/memory-write-gate-integration
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Proof Envelope Integration for Agentic QE Fleet
3
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
3
4
  *
4
5
  * Provides hash-chained audit trails with cryptographic proof generation,
5
6
  * tamper detection, and action attestation for governance compliance.
@@ -2,6 +2,7 @@ import { randomUUID } from 'node:crypto';
2
2
  import { safeJsonParse } from '../shared/safe-json.js';
3
3
  /**
4
4
  * Proof Envelope Integration for Agentic QE Fleet
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  *
6
7
  * Provides hash-chained audit trails with cryptographic proof generation,
7
8
  * tamper detection, and action attestation for governance compliance.
@@ -2,6 +2,7 @@
2
2
  * ShardRetriever Integration for Agentic QE Fleet
3
3
  *
4
4
  * Provides semantic shard retrieval from the @claude-flow/guidance system.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Loads, parses, and matches domain shards to tasks based on intent and context.
6
7
  *
7
8
  * Features:
@@ -2,6 +2,7 @@
2
2
  * ShardRetriever Integration for Agentic QE Fleet
3
3
  *
4
4
  * Provides semantic shard retrieval from the @claude-flow/guidance system.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Loads, parses, and matches domain shards to tasks based on intent and context.
6
7
  *
7
8
  * Features:
@@ -2,6 +2,7 @@
2
2
  * TrustAccumulator Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance TrustAccumulator to AQE's agent routing system.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides trust scoring, tier assignment, and intelligent agent selection.
6
7
  *
7
8
  * Trust tiers:
@@ -2,6 +2,7 @@
2
2
  * TrustAccumulator Integration for Agentic QE Fleet
3
3
  *
4
4
  * Wires @claude-flow/guidance TrustAccumulator to AQE's agent routing system.
5
+ * TODO(ruflo-rebrand): Replace @claude-flow/guidance with @ruflo/guidance when published
5
6
  * Provides trust scoring, tier assignment, and intelligent agent selection.
6
7
  *
7
8
  * Trust tiers:
@@ -12,6 +12,31 @@ import { toErrorMessage } from '../shared/error-utils.js';
12
12
  import { loadOverlays, applyOverlayToContent } from '../agents/overlay-loader.js';
13
13
  import { validateFleetMcpDeps } from '../validation/steps/agent-mcp-validator.js';
14
14
  // ============================================================================
15
+ // Helpers
16
+ // ============================================================================
17
+ /**
18
+ * Bump the `updated:` field in YAML frontmatter to today's date.
19
+ * If no `updated:` field exists, one is added after `created:` (or at end of frontmatter).
20
+ */
21
+ function bumpUpdatedDate(content) {
22
+ const today = new Date().toISOString().slice(0, 10); // YYYY-MM-DD
23
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
24
+ if (!fmMatch)
25
+ return content;
26
+ const fm = fmMatch[1];
27
+ let newFm;
28
+ if (/^updated:/m.test(fm)) {
29
+ newFm = fm.replace(/^updated:.*$/m, `updated: ${today}`);
30
+ }
31
+ else if (/^created:/m.test(fm)) {
32
+ newFm = fm.replace(/^(created:.*$)/m, `$1\nupdated: ${today}`);
33
+ }
34
+ else {
35
+ newFm = fm + `\nupdated: ${today}`;
36
+ }
37
+ return content.replace(/^---\n[\s\S]*?\n---/, `---\n${newFm}\n---`);
38
+ }
39
+ // ============================================================================
15
40
  // Agent Categories
16
41
  // ============================================================================
17
42
  /**
@@ -283,7 +308,9 @@ export class AgentsInstaller {
283
308
  try {
284
309
  const agentContent = readFileSync(agentFile, 'utf-8');
285
310
  const { content: modifiedContent, applied } = applyOverlayToContent(agentContent, overlay);
286
- writeFileSync(agentFile, modifiedContent, 'utf-8');
311
+ // Bump the `updated` date in frontmatter when content is modified (#365)
312
+ const finalContent = bumpUpdatedDate(modifiedContent);
313
+ writeFileSync(agentFile, finalContent, 'utf-8');
287
314
  result.overlaysApplied.push(agentName);
288
315
  const changes = [
289
316
  ...applied.replacedFields.map(f => `replaced:${f}`),
@@ -14,15 +14,28 @@ import { safeJsonParse } from '../../shared/safe-json.js';
14
14
  /** Shared execFileSync options */
15
15
  const EXEC_OPTS = { encoding: 'utf-8' };
16
16
  /**
17
- * Build args array for npx @claude-flow/cli calls.
17
+ * Build args array for npx ruflo / @claude-flow/cli calls.
18
+ * Uses ruflo first with @claude-flow/cli fallback (matching detect.ts).
18
19
  * Using execFileSync with explicit args prevents shell injection.
19
20
  */
20
21
  function cfCliArgs(...subcommand) {
22
+ // Lazy-resolve: ruflo preferred, @claude-flow/cli as fallback
23
+ const pkg = cfCliArgs._resolvedPkg ??= (() => {
24
+ for (const candidate of ['ruflo', '@claude-flow/cli']) {
25
+ try {
26
+ require.resolve(`${candidate}/package.json`);
27
+ return candidate;
28
+ }
29
+ catch { /* next */ }
30
+ }
31
+ return 'ruflo';
32
+ })();
21
33
  return {
22
34
  bin: 'npx',
23
- args: ['--no-install', '@claude-flow/cli', ...subcommand],
35
+ args: ['--no-install', pkg, ...subcommand],
24
36
  };
25
37
  }
38
+ cfCliArgs._resolvedPkg = undefined;
26
39
  /**
27
40
  * Claude Flow Adapter Implementation
28
41
  * Falls back gracefully when Claude Flow is not available
@@ -174,7 +174,7 @@ export async function configureHooks(projectRoot, config) {
174
174
  ...generateAqeEnvVars(config),
175
175
  };
176
176
  // Apply v3 settings sections
177
- const v3Sections = generateV3SettingsSections(config);
177
+ const v3Sections = generateV3SettingsSections(config, projectRoot);
178
178
  for (const [key, value] of Object.entries(v3Sections)) {
179
179
  settings[key] = value;
180
180
  }
@@ -509,7 +509,7 @@ Task({ prompt: "Run security audit", subagent_type: "qe-security-scanner", run_i
509
509
 
510
510
  \`\`\`javascript
511
511
  // STEP 1: Initialize Claude Flow swarm for coordination
512
- Bash("npx @claude-flow/cli@latest swarm init --topology hierarchical --max-agents 15")
512
+ Bash("npx ruflo swarm init --topology hierarchical --max-agents 15")
513
513
 
514
514
  // STEP 2: Initialize AQE Fleet for QE-specific work
515
515
  mcp__agentic-qe__fleet_init({
@@ -522,7 +522,7 @@ Task({ prompt: "Analyze coverage gaps", subagent_type: "qe-coverage-specialist",
522
522
 
523
523
  // STEP 4: Store learnings in both systems
524
524
  mcp__agentic-qe__memory_store({ key: "pattern-1", value: "...", namespace: "qe-patterns", persist: true })
525
- Bash("npx @claude-flow/cli@latest memory store --key 'qe-pattern-1' --value '...' --namespace patterns")
525
+ Bash("npx ruflo memory store --key 'qe-pattern-1' --value '...' --namespace patterns")
526
526
  \`\`\`
527
527
 
528
528
  ### Data Storage
@@ -36,16 +36,22 @@ export class KiroInstaller {
36
36
  // ==========================================================================
37
37
  findOpenCodeDir() {
38
38
  const possiblePaths = [
39
+ // Development: src/init/ or dist/init/ -> project root
39
40
  join(__dirname, '../../.opencode'),
40
- join(process.cwd(), '.opencode'),
41
- join(process.cwd(), '.opencode'),
41
+ // NPM package location
42
+ join(__dirname, '../../assets/opencode'),
42
43
  ];
43
44
  for (const p of possiblePaths) {
44
- if (existsSync(p)) {
45
+ if (existsSync(p) && (existsSync(join(p, 'agents')) || existsSync(join(p, 'skills')))) {
45
46
  return p;
46
47
  }
47
48
  }
48
- return join(process.cwd(), '.opencode');
49
+ // Fallback: CWD .opencode — but only if it has actual source content
50
+ const cwdPath = join(process.cwd(), '.opencode');
51
+ if (existsSync(cwdPath) && (existsSync(join(cwdPath, 'agents')) || existsSync(join(cwdPath, 'skills')))) {
52
+ return cwdPath;
53
+ }
54
+ return possiblePaths[0];
49
55
  }
50
56
  // ==========================================================================
51
57
  // Installation
@@ -32,9 +32,21 @@ export declare class OpenCodeInstaller {
32
32
  private sourceDir;
33
33
  constructor(options: OpenCodeInstallerOptions);
34
34
  /**
35
- * Find the source .opencode/ directory
35
+ * Find the source .opencode/ directory containing agents/skills/tools to install.
36
+ * Resolves relative to the package installation directory (not CWD) so that
37
+ * globally-installed and bundled CLI paths all work correctly (#361).
36
38
  */
37
39
  private findSourceDir;
40
+ /**
41
+ * Try to find the package root via require.resolve on our own package.json,
42
+ * then return <root>/.opencode. Returns null if resolution fails.
43
+ */
44
+ private resolveViaPackageJson;
45
+ /**
46
+ * Check if a directory is a valid source for OpenCode assets
47
+ * (must exist and contain at least an agents/ or skills/ subdirectory)
48
+ */
49
+ private isValidSourceDir;
38
50
  /**
39
51
  * Install OpenCode agents, skills, tools, and permissions
40
52
  */
@@ -5,7 +5,7 @@
5
5
  * Installs OpenCode agents, skills, tools, and permissions to user projects
6
6
  * when --with-opencode flag is used. Follows the N8n installer pattern.
7
7
  */
8
- import { existsSync, mkdirSync, readdirSync, writeFileSync, copyFileSync, } from 'fs';
8
+ import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, copyFileSync, } from 'fs';
9
9
  import { join, dirname } from 'path';
10
10
  import { fileURLToPath } from 'url';
11
11
  import { toErrorMessage } from '../shared/error-utils.js';
@@ -34,24 +34,63 @@ export class OpenCodeInstaller {
34
34
  // Source Directory Detection
35
35
  // ==========================================================================
36
36
  /**
37
- * Find the source .opencode/ directory
37
+ * Find the source .opencode/ directory containing agents/skills/tools to install.
38
+ * Resolves relative to the package installation directory (not CWD) so that
39
+ * globally-installed and bundled CLI paths all work correctly (#361).
38
40
  */
39
41
  findSourceDir() {
42
+ const targetDir = join(this.projectRoot, '.opencode');
40
43
  const possiblePaths = [
41
- // Development: src/init/ or dist/init/ -> project root
44
+ // From dist/init/ or src/init/ package root .opencode/
42
45
  join(__dirname, '../../.opencode'),
43
- // From project root (CWD)
44
- join(process.cwd(), '.opencode'),
45
- // NPM package location
46
- join(__dirname, '../../assets/opencode'),
47
- ];
46
+ // From dist/cli/ (bundle) → package root .opencode/
47
+ join(__dirname, '../.opencode'),
48
+ // require.resolve fallback: find the package root via its package.json
49
+ this.resolveViaPackageJson(),
50
+ ].filter((p) => p !== null);
48
51
  for (const path of possiblePaths) {
49
- if (existsSync(path)) {
52
+ // Never use the target directory as the source
53
+ if (path === targetDir)
54
+ continue;
55
+ if (this.isValidSourceDir(path)) {
50
56
  return path;
51
57
  }
52
58
  }
53
- // Default to CWD location
54
- return join(process.cwd(), '.opencode');
59
+ // Return the first package path even if not found — install() will report the error
60
+ return possiblePaths[0] ?? join(__dirname, '../../.opencode');
61
+ }
62
+ /**
63
+ * Try to find the package root via require.resolve on our own package.json,
64
+ * then return <root>/.opencode. Returns null if resolution fails.
65
+ */
66
+ resolveViaPackageJson() {
67
+ try {
68
+ // Walk up from __dirname to find the nearest package.json with our name
69
+ let dir = __dirname;
70
+ for (let i = 0; i < 5; i++) {
71
+ const pkgPath = join(dir, 'package.json');
72
+ if (existsSync(pkgPath)) {
73
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
74
+ if (pkg.name === 'agentic-qe') {
75
+ return join(dir, '.opencode');
76
+ }
77
+ }
78
+ dir = dirname(dir);
79
+ }
80
+ }
81
+ catch {
82
+ // resolution failed
83
+ }
84
+ return null;
85
+ }
86
+ /**
87
+ * Check if a directory is a valid source for OpenCode assets
88
+ * (must exist and contain at least an agents/ or skills/ subdirectory)
89
+ */
90
+ isValidSourceDir(dir) {
91
+ if (!existsSync(dir))
92
+ return false;
93
+ return existsSync(join(dir, 'agents')) || existsSync(join(dir, 'skills'));
55
94
  }
56
95
  // ==========================================================================
57
96
  // Installation
@@ -240,9 +279,8 @@ export class OpenCodeInstaller {
240
279
  mcp: {
241
280
  'agentic-qe': {
242
281
  type: 'local',
243
- command: 'npx',
244
- args: ['agentic-qe', 'mcp'],
245
- env: {
282
+ command: ['npx', 'agentic-qe', 'mcp'],
283
+ environment: {
246
284
  AQE_MEMORY_PATH: '.agentic-qe/memory.db',
247
285
  AQE_V3_MODE: 'true',
248
286
  },