agentic-qe 3.4.0 → 3.4.2

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 (498) hide show
  1. package/.claude/skills/.validation/README.md +111 -0
  2. package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +530 -0
  3. package/.claude/skills/.validation/examples/performance-testing-output.example.json +252 -0
  4. package/.claude/skills/.validation/examples/security-testing-output.example.json +413 -0
  5. package/.claude/skills/.validation/examples/testability-scoring-output.example.json +350 -0
  6. package/.claude/skills/.validation/schemas/skill-eval.schema.json +452 -0
  7. package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +341 -0
  8. package/.claude/skills/.validation/schemas/skill-output-meta.schema.json +199 -0
  9. package/.claude/skills/.validation/schemas/skill-output.template.json +610 -0
  10. package/.claude/skills/.validation/skill-validation-mcp-integration.md +250 -0
  11. package/.claude/skills/.validation/templates/eval.template.yaml +366 -0
  12. package/.claude/skills/.validation/templates/schemas/output.json +145 -0
  13. package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +725 -0
  14. package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +225 -0
  15. package/.claude/skills/.validation/templates/validate.template.sh +1060 -0
  16. package/.claude/skills/.validation/templates/validator-lib.sh +1031 -0
  17. package/.claude/skills/.validation/test-data/invalid-output.json +5 -0
  18. package/.claude/skills/.validation/test-data/minimal-output.json +9 -0
  19. package/.claude/skills/.validation/test-data/sample-output.json +73 -0
  20. package/.claude/skills/TRUST-TIERS.md +158 -0
  21. package/.claude/skills/a11y-ally/SKILL.md +1664 -1658
  22. package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +376 -0
  23. package/.claude/skills/a11y-ally/schemas/output.json +549 -0
  24. package/.claude/skills/a11y-ally/scripts/validate.sh +690 -0
  25. package/.claude/skills/accessibility-testing/SKILL.md +8 -1
  26. package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -0
  27. package/.claude/skills/accessibility-testing/schemas/output.json +776 -0
  28. package/.claude/skills/accessibility-testing/scripts/validate.sh +943 -0
  29. package/.claude/skills/accessibility-testing/test-data/sample-output.json +191 -0
  30. package/.claude/skills/agentic-quality-engineering/SKILL.md +4 -0
  31. package/.claude/skills/agentic-quality-engineering/schemas/output.json +577 -0
  32. package/.claude/skills/api-testing-patterns/SKILL.md +5 -0
  33. package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -0
  34. package/.claude/skills/api-testing-patterns/schemas/output.json +845 -0
  35. package/.claude/skills/api-testing-patterns/scripts/validate.sh +931 -0
  36. package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +513 -0
  37. package/.claude/skills/aqe-v2-v3-migration/skill.md +4 -0
  38. package/.claude/skills/brutal-honesty-review/SKILL.md +5 -0
  39. package/.claude/skills/brutal-honesty-review/schemas/output.json +291 -0
  40. package/.claude/skills/brutal-honesty-review/scripts/validate.sh +130 -0
  41. package/.claude/skills/bug-reporting-excellence/SKILL.md +5 -0
  42. package/.claude/skills/bug-reporting-excellence/schemas/output.json +288 -0
  43. package/.claude/skills/bug-reporting-excellence/scripts/validate.sh +108 -0
  44. package/.claude/skills/chaos-engineering-resilience/SKILL.md +5 -0
  45. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -0
  46. package/.claude/skills/chaos-engineering-resilience/schemas/output.json +1205 -0
  47. package/.claude/skills/chaos-engineering-resilience/scripts/validate.sh +1107 -0
  48. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -0
  49. package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -0
  50. package/.claude/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -0
  51. package/.claude/skills/cicd-pipeline-qe-orchestrator/scripts/validate.sh +310 -0
  52. package/.claude/skills/code-review-quality/SKILL.md +5 -0
  53. package/.claude/skills/code-review-quality/schemas/output.json +264 -0
  54. package/.claude/skills/code-review-quality/scripts/validate.sh +113 -0
  55. package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -0
  56. package/.claude/skills/compatibility-testing/schemas/output.json +551 -0
  57. package/.claude/skills/compatibility-testing/scripts/validate.sh +605 -0
  58. package/.claude/skills/compliance-testing/SKILL.md +7 -0
  59. package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1107 -0
  60. package/.claude/skills/compliance-testing/schemas/output.json +845 -0
  61. package/.claude/skills/compliance-testing/scripts/validate.sh +888 -0
  62. package/.claude/skills/consultancy-practices/SKILL.md +4 -0
  63. package/.claude/skills/consultancy-practices/schemas/output.json +282 -0
  64. package/.claude/skills/context-driven-testing/SKILL.md +3 -0
  65. package/.claude/skills/contract-testing/SKILL.md +5 -0
  66. package/.claude/skills/contract-testing/evals/contract-testing.yaml +748 -0
  67. package/.claude/skills/contract-testing/schemas/output.json +638 -0
  68. package/.claude/skills/contract-testing/scripts/validate.sh +1033 -0
  69. package/.claude/skills/database-testing/SKILL.md +5 -0
  70. package/.claude/skills/database-testing/evals/database-testing.yaml +968 -0
  71. package/.claude/skills/database-testing/schemas/output.json +1446 -0
  72. package/.claude/skills/database-testing/scripts/validate.sh +1099 -0
  73. package/.claude/skills/exploratory-testing-advanced/SKILL.md +3 -0
  74. package/.claude/skills/holistic-testing-pact/SKILL.md +3 -0
  75. package/.claude/skills/localization-testing/SKILL.md +6 -0
  76. package/.claude/skills/localization-testing/evals/localization-testing.yaml +544 -0
  77. package/.claude/skills/localization-testing/schemas/output.json +325 -0
  78. package/.claude/skills/localization-testing/scripts/validate.sh +131 -0
  79. package/.claude/skills/mobile-testing/SKILL.md +6 -0
  80. package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +537 -0
  81. package/.claude/skills/mobile-testing/schemas/output.json +318 -0
  82. package/.claude/skills/mobile-testing/scripts/validate.sh +127 -0
  83. package/.claude/skills/mutation-testing/SKILL.md +8 -1
  84. package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +652 -0
  85. package/.claude/skills/mutation-testing/schemas/output.json +707 -0
  86. package/.claude/skills/mutation-testing/scripts/validate.sh +992 -0
  87. package/.claude/skills/mutation-testing/test-data/sample-output.json +295 -0
  88. package/.claude/skills/n8n-expression-testing/SKILL.md +6 -0
  89. package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -0
  90. package/.claude/skills/n8n-expression-testing/schemas/output.json +369 -0
  91. package/.claude/skills/n8n-expression-testing/scripts/validate.sh +162 -0
  92. package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +6 -0
  93. package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -0
  94. package/.claude/skills/n8n-integration-testing-patterns/schemas/output.json +291 -0
  95. package/.claude/skills/n8n-integration-testing-patterns/scripts/validate.sh +104 -0
  96. package/.claude/skills/n8n-security-testing/SKILL.md +6 -0
  97. package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -0
  98. package/.claude/skills/n8n-security-testing/schemas/output.json +293 -0
  99. package/.claude/skills/n8n-security-testing/scripts/validate.sh +120 -0
  100. package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +6 -0
  101. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -0
  102. package/.claude/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -0
  103. package/.claude/skills/n8n-trigger-testing-strategies/scripts/validate.sh +121 -0
  104. package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +6 -0
  105. package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -0
  106. package/.claude/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -0
  107. package/.claude/skills/n8n-workflow-testing-fundamentals/scripts/validate.sh +126 -0
  108. package/.claude/skills/performance-analysis/SKILL.md +6 -0
  109. package/.claude/skills/performance-analysis/evals/performance-analysis.yaml +144 -0
  110. package/.claude/skills/performance-analysis/schemas/output.json +588 -0
  111. package/.claude/skills/performance-analysis/scripts/validate.sh +63 -0
  112. package/.claude/skills/performance-testing/SKILL.md +5 -0
  113. package/.claude/skills/performance-testing/evals/performance-testing.yaml +772 -0
  114. package/.claude/skills/performance-testing/schemas/output.json +1184 -0
  115. package/.claude/skills/performance-testing/scripts/validate.sh +1090 -0
  116. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +1759 -1753
  117. package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  118. package/.claude/skills/qcsd-ideation-swarm/schemas/output.json +568 -0
  119. package/.claude/skills/qcsd-ideation-swarm/scripts/validate.sh +56 -0
  120. package/.claude/skills/qe-chaos-resilience/SKILL.md +6 -0
  121. package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -0
  122. package/.claude/skills/qe-chaos-resilience/schemas/output.json +314 -0
  123. package/.claude/skills/qe-chaos-resilience/scripts/validate.sh +401 -0
  124. package/.claude/skills/qe-code-intelligence/SKILL.md +6 -0
  125. package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -0
  126. package/.claude/skills/qe-code-intelligence/schemas/output.json +315 -0
  127. package/.claude/skills/qe-code-intelligence/scripts/validate.sh +408 -0
  128. package/.claude/skills/qe-contract-testing/SKILL.md +6 -0
  129. package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -0
  130. package/.claude/skills/qe-contract-testing/schemas/output.json +295 -0
  131. package/.claude/skills/qe-contract-testing/scripts/validate.sh +421 -0
  132. package/.claude/skills/qe-coverage-analysis/SKILL.md +6 -0
  133. package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  134. package/.claude/skills/qe-coverage-analysis/schemas/output.json +286 -0
  135. package/.claude/skills/qe-coverage-analysis/scripts/validate.sh +453 -0
  136. package/.claude/skills/qe-defect-intelligence/SKILL.md +6 -0
  137. package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -0
  138. package/.claude/skills/qe-defect-intelligence/schemas/output.json +283 -0
  139. package/.claude/skills/qe-defect-intelligence/scripts/validate.sh +466 -0
  140. package/.claude/skills/qe-iterative-loop/SKILL.md +445 -440
  141. package/.claude/skills/qe-iterative-loop/schemas/output.json +264 -0
  142. package/.claude/skills/qe-iterative-loop/scripts/validate.sh +474 -0
  143. package/.claude/skills/qe-learning-optimization/SKILL.md +6 -0
  144. package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -0
  145. package/.claude/skills/qe-learning-optimization/schemas/output.json +288 -0
  146. package/.claude/skills/qe-learning-optimization/scripts/validate.sh +56 -0
  147. package/.claude/skills/qe-quality-assessment/SKILL.md +6 -0
  148. package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -0
  149. package/.claude/skills/qe-quality-assessment/schemas/output.json +550 -0
  150. package/.claude/skills/qe-quality-assessment/scripts/validate.sh +352 -0
  151. package/.claude/skills/qe-requirements-validation/SKILL.md +6 -0
  152. package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  153. package/.claude/skills/qe-requirements-validation/schemas/output.json +587 -0
  154. package/.claude/skills/qe-requirements-validation/scripts/validate.sh +275 -0
  155. package/.claude/skills/qe-security-compliance/SKILL.md +6 -0
  156. package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -0
  157. package/.claude/skills/qe-security-compliance/schemas/output.json +498 -0
  158. package/.claude/skills/qe-security-compliance/scripts/validate.sh +305 -0
  159. package/.claude/skills/qe-test-execution/SKILL.md +6 -0
  160. package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -0
  161. package/.claude/skills/qe-test-execution/schemas/output.json +529 -0
  162. package/.claude/skills/qe-test-execution/scripts/validate.sh +323 -0
  163. package/.claude/skills/qe-test-generation/SKILL.md +6 -0
  164. package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -0
  165. package/.claude/skills/qe-test-generation/schemas/output.json +439 -0
  166. package/.claude/skills/qe-test-generation/scripts/validate.sh +56 -0
  167. package/.claude/skills/qe-visual-accessibility/SKILL.md +6 -0
  168. package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -0
  169. package/.claude/skills/qe-visual-accessibility/schemas/output.json +491 -0
  170. package/.claude/skills/qe-visual-accessibility/scripts/validate.sh +56 -0
  171. package/.claude/skills/quality-metrics/SKILL.md +6 -0
  172. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +494 -0
  173. package/.claude/skills/quality-metrics/schemas/output.json +403 -0
  174. package/.claude/skills/quality-metrics/scripts/validate.sh +434 -0
  175. package/.claude/skills/refactoring-patterns/SKILL.md +5 -0
  176. package/.claude/skills/refactoring-patterns/schemas/output.json +475 -0
  177. package/.claude/skills/refactoring-patterns/scripts/validate.sh +241 -0
  178. package/.claude/skills/regression-testing/SKILL.md +6 -0
  179. package/.claude/skills/regression-testing/evals/regression-testing.yaml +504 -0
  180. package/.claude/skills/regression-testing/schemas/output.json +311 -0
  181. package/.claude/skills/regression-testing/scripts/validate.sh +130 -0
  182. package/.claude/skills/risk-based-testing/SKILL.md +6 -0
  183. package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -0
  184. package/.claude/skills/risk-based-testing/schemas/output.json +480 -0
  185. package/.claude/skills/risk-based-testing/scripts/validate.sh +56 -0
  186. package/.claude/skills/security-testing/SKILL.md +5 -0
  187. package/.claude/skills/security-testing/evals/security-testing.yaml +789 -0
  188. package/.claude/skills/security-testing/schemas/output.json +879 -0
  189. package/.claude/skills/security-testing/scripts/validate.sh +967 -0
  190. package/.claude/skills/security-visual-testing/SKILL.md +223 -217
  191. package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -0
  192. package/.claude/skills/security-visual-testing/schemas/output.json +486 -0
  193. package/.claude/skills/security-visual-testing/scripts/validate.sh +748 -0
  194. package/.claude/skills/sherlock-review/SKILL.md +5 -0
  195. package/.claude/skills/sherlock-review/schemas/output.json +297 -0
  196. package/.claude/skills/sherlock-review/scripts/validate.sh +115 -0
  197. package/.claude/skills/shift-left-testing/SKILL.md +6 -0
  198. package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -0
  199. package/.claude/skills/shift-left-testing/schemas/output.json +459 -0
  200. package/.claude/skills/shift-left-testing/scripts/validate.sh +56 -0
  201. package/.claude/skills/shift-right-testing/SKILL.md +6 -0
  202. package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -0
  203. package/.claude/skills/shift-right-testing/schemas/output.json +418 -0
  204. package/.claude/skills/shift-right-testing/scripts/validate.sh +56 -0
  205. package/.claude/skills/six-thinking-hats/SKILL.md +3 -0
  206. package/.claude/skills/tdd-london-chicago/SKILL.md +5 -0
  207. package/.claude/skills/tdd-london-chicago/schemas/output.json +444 -0
  208. package/.claude/skills/tdd-london-chicago/scripts/validate.sh +214 -0
  209. package/.claude/skills/technical-writing/SKILL.md +4 -0
  210. package/.claude/skills/technical-writing/schemas/output.json +268 -0
  211. package/.claude/skills/test-automation-strategy/SKILL.md +6 -0
  212. package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -0
  213. package/.claude/skills/test-automation-strategy/schemas/output.json +444 -0
  214. package/.claude/skills/test-automation-strategy/scripts/validate.sh +195 -0
  215. package/.claude/skills/test-data-management/SKILL.md +6 -0
  216. package/.claude/skills/test-data-management/evals/test-data-management.yaml +504 -0
  217. package/.claude/skills/test-data-management/schemas/output.json +284 -0
  218. package/.claude/skills/test-data-management/scripts/validate.sh +137 -0
  219. package/.claude/skills/test-design-techniques/SKILL.md +6 -0
  220. package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -0
  221. package/.claude/skills/test-design-techniques/schemas/output.json +295 -0
  222. package/.claude/skills/test-design-techniques/scripts/validate.sh +91 -0
  223. package/.claude/skills/test-environment-management/SKILL.md +4 -0
  224. package/.claude/skills/test-environment-management/schemas/output.json +310 -0
  225. package/.claude/skills/test-reporting-analytics/SKILL.md +6 -0
  226. package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -0
  227. package/.claude/skills/test-reporting-analytics/schemas/output.json +329 -0
  228. package/.claude/skills/test-reporting-analytics/scripts/validate.sh +77 -0
  229. package/.claude/skills/testability-scoring/SKILL.md +5 -0
  230. package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +814 -0
  231. package/.claude/skills/testability-scoring/schemas/output.json +606 -0
  232. package/.claude/skills/testability-scoring/scripts/validate.sh +891 -0
  233. package/.claude/skills/trust-tier-manifest.json +2333 -0
  234. package/.claude/skills/verification-quality/SKILL.md +6 -0
  235. package/.claude/skills/verification-quality/evals/verification-quality.yaml +150 -0
  236. package/.claude/skills/verification-quality/schemas/output.json +432 -0
  237. package/.claude/skills/verification-quality/scripts/validate.sh +77 -0
  238. package/.claude/skills/visual-testing-advanced/SKILL.md +6 -0
  239. package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -0
  240. package/.claude/skills/visual-testing-advanced/schemas/output.json +294 -0
  241. package/.claude/skills/visual-testing-advanced/scripts/validate.sh +77 -0
  242. package/.claude/skills/xp-practices/SKILL.md +3 -0
  243. package/CHANGELOG.md +23 -0
  244. package/README.md +39 -2
  245. package/package.json +4 -1
  246. package/scripts/run-skill-eval.ts +1097 -0
  247. package/scripts/test-schema-validation.js +301 -0
  248. package/scripts/update-skill-manifest.ts +751 -0
  249. package/scripts/validate-skill-frontmatter.js +141 -0
  250. package/v3/CHANGELOG.md +21 -0
  251. package/v3/README.md +43 -3
  252. package/v3/assets/agents/v3/qe-test-idea-rewriter.md +375 -375
  253. package/v3/assets/skills/.validation/README.md +111 -0
  254. package/v3/assets/skills/.validation/examples/chaos-engineering-output.example.json +530 -0
  255. package/v3/assets/skills/.validation/examples/performance-testing-output.example.json +252 -0
  256. package/v3/assets/skills/.validation/examples/security-testing-output.example.json +413 -0
  257. package/v3/assets/skills/.validation/examples/testability-scoring-output.example.json +350 -0
  258. package/v3/assets/skills/.validation/schemas/skill-eval.schema.json +452 -0
  259. package/v3/assets/skills/.validation/schemas/skill-frontmatter.schema.json +341 -0
  260. package/v3/assets/skills/.validation/schemas/skill-output-meta.schema.json +199 -0
  261. package/v3/assets/skills/.validation/schemas/skill-output.template.json +610 -0
  262. package/v3/assets/skills/.validation/skill-validation-mcp-integration.md +250 -0
  263. package/v3/assets/skills/.validation/templates/eval.template.yaml +366 -0
  264. package/v3/assets/skills/.validation/templates/schemas/output.json +145 -0
  265. package/v3/assets/skills/.validation/templates/security-testing-eval.template.yaml +725 -0
  266. package/v3/assets/skills/.validation/templates/skill-frontmatter.example.yaml +225 -0
  267. package/v3/assets/skills/.validation/templates/validate.template.sh +1060 -0
  268. package/v3/assets/skills/.validation/templates/validator-lib.sh +1031 -0
  269. package/v3/assets/skills/.validation/test-data/invalid-output.json +5 -0
  270. package/v3/assets/skills/.validation/test-data/minimal-output.json +9 -0
  271. package/v3/assets/skills/.validation/test-data/sample-output.json +73 -0
  272. package/v3/assets/skills/accessibility-testing/SKILL.md +8 -1
  273. package/v3/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -0
  274. package/v3/assets/skills/accessibility-testing/schemas/output.json +776 -0
  275. package/v3/assets/skills/accessibility-testing/scripts/validate.sh +943 -0
  276. package/v3/assets/skills/accessibility-testing/test-data/sample-output.json +191 -0
  277. package/v3/assets/skills/agentic-quality-engineering/SKILL.md +4 -0
  278. package/v3/assets/skills/agentic-quality-engineering/schemas/output.json +577 -0
  279. package/v3/assets/skills/api-testing-patterns/SKILL.md +5 -0
  280. package/v3/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -0
  281. package/v3/assets/skills/api-testing-patterns/schemas/output.json +845 -0
  282. package/v3/assets/skills/api-testing-patterns/scripts/validate.sh +931 -0
  283. package/v3/assets/skills/aqe-v2-v3-migration/schemas/output.json +513 -0
  284. package/v3/assets/skills/aqe-v2-v3-migration/skill.md +20 -16
  285. package/v3/assets/skills/bug-reporting-excellence/SKILL.md +5 -0
  286. package/v3/assets/skills/bug-reporting-excellence/schemas/output.json +288 -0
  287. package/v3/assets/skills/bug-reporting-excellence/scripts/validate.sh +108 -0
  288. package/v3/assets/skills/chaos-engineering-resilience/SKILL.md +5 -0
  289. package/v3/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -0
  290. package/v3/assets/skills/chaos-engineering-resilience/schemas/output.json +1205 -0
  291. package/v3/assets/skills/chaos-engineering-resilience/scripts/validate.sh +1107 -0
  292. package/v3/assets/skills/code-review-quality/SKILL.md +5 -0
  293. package/v3/assets/skills/code-review-quality/schemas/output.json +264 -0
  294. package/v3/assets/skills/code-review-quality/scripts/validate.sh +113 -0
  295. package/v3/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -0
  296. package/v3/assets/skills/compatibility-testing/schemas/output.json +551 -0
  297. package/v3/assets/skills/compatibility-testing/scripts/validate.sh +605 -0
  298. package/v3/assets/skills/compliance-testing/SKILL.md +7 -0
  299. package/v3/assets/skills/compliance-testing/evals/compliance-testing.yaml +1107 -0
  300. package/v3/assets/skills/compliance-testing/schemas/output.json +845 -0
  301. package/v3/assets/skills/compliance-testing/scripts/validate.sh +888 -0
  302. package/v3/assets/skills/consultancy-practices/SKILL.md +4 -0
  303. package/v3/assets/skills/consultancy-practices/schemas/output.json +282 -0
  304. package/v3/assets/skills/context-driven-testing/SKILL.md +3 -0
  305. package/v3/assets/skills/contract-testing/SKILL.md +5 -0
  306. package/v3/assets/skills/contract-testing/evals/contract-testing.yaml +748 -0
  307. package/v3/assets/skills/contract-testing/schemas/output.json +638 -0
  308. package/v3/assets/skills/contract-testing/scripts/validate.sh +1033 -0
  309. package/v3/assets/skills/database-testing/SKILL.md +5 -0
  310. package/v3/assets/skills/database-testing/evals/database-testing.yaml +968 -0
  311. package/v3/assets/skills/database-testing/schemas/output.json +1446 -0
  312. package/v3/assets/skills/database-testing/scripts/validate.sh +1099 -0
  313. package/v3/assets/skills/exploratory-testing-advanced/SKILL.md +3 -0
  314. package/v3/assets/skills/holistic-testing-pact/SKILL.md +3 -0
  315. package/v3/assets/skills/localization-testing/SKILL.md +6 -0
  316. package/v3/assets/skills/localization-testing/evals/localization-testing.yaml +544 -0
  317. package/v3/assets/skills/localization-testing/schemas/output.json +325 -0
  318. package/v3/assets/skills/localization-testing/scripts/validate.sh +131 -0
  319. package/v3/assets/skills/mobile-testing/SKILL.md +6 -0
  320. package/v3/assets/skills/mobile-testing/evals/mobile-testing.yaml +537 -0
  321. package/v3/assets/skills/mobile-testing/schemas/output.json +318 -0
  322. package/v3/assets/skills/mobile-testing/scripts/validate.sh +127 -0
  323. package/v3/assets/skills/mutation-testing/SKILL.md +8 -1
  324. package/v3/assets/skills/mutation-testing/evals/mutation-testing.yaml +652 -0
  325. package/v3/assets/skills/mutation-testing/schemas/output.json +707 -0
  326. package/v3/assets/skills/mutation-testing/scripts/validate.sh +992 -0
  327. package/v3/assets/skills/mutation-testing/test-data/sample-output.json +295 -0
  328. package/v3/assets/skills/n8n-expression-testing/scripts/validate.sh +162 -0
  329. package/v3/assets/skills/n8n-integration-testing-patterns/scripts/validate.sh +104 -0
  330. package/v3/assets/skills/n8n-security-testing/scripts/validate.sh +120 -0
  331. package/v3/assets/skills/n8n-trigger-testing-strategies/scripts/validate.sh +121 -0
  332. package/v3/assets/skills/n8n-workflow-testing-fundamentals/scripts/validate.sh +126 -0
  333. package/v3/assets/skills/performance-testing/SKILL.md +5 -0
  334. package/v3/assets/skills/performance-testing/evals/performance-testing.yaml +772 -0
  335. package/v3/assets/skills/performance-testing/schemas/output.json +1184 -0
  336. package/v3/assets/skills/performance-testing/scripts/validate.sh +1090 -0
  337. package/v3/assets/skills/qe-chaos-resilience/SKILL.md +6 -0
  338. package/v3/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -0
  339. package/v3/assets/skills/qe-chaos-resilience/schemas/output.json +314 -0
  340. package/v3/assets/skills/qe-chaos-resilience/scripts/validate.sh +401 -0
  341. package/v3/assets/skills/qe-code-intelligence/SKILL.md +6 -0
  342. package/v3/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -0
  343. package/v3/assets/skills/qe-code-intelligence/schemas/output.json +315 -0
  344. package/v3/assets/skills/qe-code-intelligence/scripts/validate.sh +408 -0
  345. package/v3/assets/skills/qe-contract-testing/SKILL.md +6 -0
  346. package/v3/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -0
  347. package/v3/assets/skills/qe-contract-testing/schemas/output.json +295 -0
  348. package/v3/assets/skills/qe-contract-testing/scripts/validate.sh +421 -0
  349. package/v3/assets/skills/qe-coverage-analysis/SKILL.md +6 -0
  350. package/v3/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  351. package/v3/assets/skills/qe-coverage-analysis/schemas/output.json +286 -0
  352. package/v3/assets/skills/qe-coverage-analysis/scripts/validate.sh +453 -0
  353. package/v3/assets/skills/qe-defect-intelligence/SKILL.md +6 -0
  354. package/v3/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -0
  355. package/v3/assets/skills/qe-defect-intelligence/schemas/output.json +283 -0
  356. package/v3/assets/skills/qe-defect-intelligence/scripts/validate.sh +466 -0
  357. package/v3/assets/skills/qe-iterative-loop/SKILL.md +445 -443
  358. package/v3/assets/skills/qe-iterative-loop/schemas/output.json +264 -0
  359. package/v3/assets/skills/qe-iterative-loop/scripts/validate.sh +474 -0
  360. package/v3/assets/skills/qe-learning-optimization/SKILL.md +6 -0
  361. package/v3/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -0
  362. package/v3/assets/skills/qe-learning-optimization/schemas/output.json +288 -0
  363. package/v3/assets/skills/qe-learning-optimization/scripts/validate.sh +56 -0
  364. package/v3/assets/skills/qe-quality-assessment/SKILL.md +6 -0
  365. package/v3/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -0
  366. package/v3/assets/skills/qe-quality-assessment/schemas/output.json +550 -0
  367. package/v3/assets/skills/qe-quality-assessment/scripts/validate.sh +352 -0
  368. package/v3/assets/skills/qe-requirements-validation/SKILL.md +6 -0
  369. package/v3/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  370. package/v3/assets/skills/qe-requirements-validation/schemas/output.json +587 -0
  371. package/v3/assets/skills/qe-requirements-validation/scripts/validate.sh +275 -0
  372. package/v3/assets/skills/qe-security-compliance/SKILL.md +6 -0
  373. package/v3/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -0
  374. package/v3/assets/skills/qe-security-compliance/schemas/output.json +498 -0
  375. package/v3/assets/skills/qe-security-compliance/scripts/validate.sh +305 -0
  376. package/v3/assets/skills/qe-test-execution/SKILL.md +6 -0
  377. package/v3/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -0
  378. package/v3/assets/skills/qe-test-execution/schemas/output.json +529 -0
  379. package/v3/assets/skills/qe-test-execution/scripts/validate.sh +323 -0
  380. package/v3/assets/skills/qe-test-generation/SKILL.md +6 -0
  381. package/v3/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -0
  382. package/v3/assets/skills/qe-test-generation/schemas/output.json +439 -0
  383. package/v3/assets/skills/qe-test-generation/scripts/validate.sh +56 -0
  384. package/v3/assets/skills/qe-visual-accessibility/SKILL.md +6 -0
  385. package/v3/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -0
  386. package/v3/assets/skills/qe-visual-accessibility/schemas/output.json +491 -0
  387. package/v3/assets/skills/qe-visual-accessibility/scripts/validate.sh +56 -0
  388. package/v3/assets/skills/quality-metrics/SKILL.md +6 -0
  389. package/v3/assets/skills/quality-metrics/evals/quality-metrics.yaml +494 -0
  390. package/v3/assets/skills/quality-metrics/schemas/output.json +403 -0
  391. package/v3/assets/skills/quality-metrics/scripts/validate.sh +434 -0
  392. package/v3/assets/skills/refactoring-patterns/SKILL.md +5 -0
  393. package/v3/assets/skills/refactoring-patterns/schemas/output.json +475 -0
  394. package/v3/assets/skills/refactoring-patterns/scripts/validate.sh +241 -0
  395. package/v3/assets/skills/regression-testing/SKILL.md +6 -0
  396. package/v3/assets/skills/regression-testing/evals/regression-testing.yaml +504 -0
  397. package/v3/assets/skills/regression-testing/schemas/output.json +311 -0
  398. package/v3/assets/skills/regression-testing/scripts/validate.sh +130 -0
  399. package/v3/assets/skills/risk-based-testing/SKILL.md +6 -0
  400. package/v3/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -0
  401. package/v3/assets/skills/risk-based-testing/schemas/output.json +480 -0
  402. package/v3/assets/skills/risk-based-testing/scripts/validate.sh +56 -0
  403. package/v3/assets/skills/security-testing/SKILL.md +5 -0
  404. package/v3/assets/skills/security-testing/evals/security-testing.yaml +789 -0
  405. package/v3/assets/skills/security-testing/schemas/output.json +879 -0
  406. package/v3/assets/skills/security-testing/scripts/validate.sh +967 -0
  407. package/v3/assets/skills/shift-left-testing/SKILL.md +6 -0
  408. package/v3/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -0
  409. package/v3/assets/skills/shift-left-testing/schemas/output.json +459 -0
  410. package/v3/assets/skills/shift-left-testing/scripts/validate.sh +56 -0
  411. package/v3/assets/skills/shift-right-testing/SKILL.md +6 -0
  412. package/v3/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -0
  413. package/v3/assets/skills/shift-right-testing/schemas/output.json +418 -0
  414. package/v3/assets/skills/shift-right-testing/scripts/validate.sh +56 -0
  415. package/v3/assets/skills/six-thinking-hats/SKILL.md +3 -0
  416. package/v3/assets/skills/tdd-london-chicago/SKILL.md +5 -0
  417. package/v3/assets/skills/tdd-london-chicago/schemas/output.json +444 -0
  418. package/v3/assets/skills/tdd-london-chicago/scripts/validate.sh +214 -0
  419. package/v3/assets/skills/technical-writing/SKILL.md +4 -0
  420. package/v3/assets/skills/technical-writing/schemas/output.json +268 -0
  421. package/v3/assets/skills/test-automation-strategy/SKILL.md +6 -0
  422. package/v3/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -0
  423. package/v3/assets/skills/test-automation-strategy/schemas/output.json +444 -0
  424. package/v3/assets/skills/test-automation-strategy/scripts/validate.sh +195 -0
  425. package/v3/assets/skills/test-data-management/SKILL.md +6 -0
  426. package/v3/assets/skills/test-data-management/evals/test-data-management.yaml +504 -0
  427. package/v3/assets/skills/test-data-management/schemas/output.json +284 -0
  428. package/v3/assets/skills/test-data-management/scripts/validate.sh +137 -0
  429. package/v3/assets/skills/test-design-techniques/SKILL.md +6 -0
  430. package/v3/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -0
  431. package/v3/assets/skills/test-design-techniques/schemas/output.json +295 -0
  432. package/v3/assets/skills/test-design-techniques/scripts/validate.sh +91 -0
  433. package/v3/assets/skills/test-environment-management/SKILL.md +4 -0
  434. package/v3/assets/skills/test-environment-management/schemas/output.json +310 -0
  435. package/v3/assets/skills/test-reporting-analytics/SKILL.md +6 -0
  436. package/v3/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -0
  437. package/v3/assets/skills/test-reporting-analytics/schemas/output.json +329 -0
  438. package/v3/assets/skills/test-reporting-analytics/scripts/validate.sh +77 -0
  439. package/v3/assets/skills/verification-quality/SKILL.md +6 -0
  440. package/v3/assets/skills/verification-quality/evals/verification-quality.yaml +150 -0
  441. package/v3/assets/skills/verification-quality/schemas/output.json +432 -0
  442. package/v3/assets/skills/verification-quality/scripts/validate.sh +77 -0
  443. package/v3/assets/skills/visual-testing-advanced/SKILL.md +6 -0
  444. package/v3/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -0
  445. package/v3/assets/skills/visual-testing-advanced/schemas/output.json +294 -0
  446. package/v3/assets/skills/visual-testing-advanced/scripts/validate.sh +77 -0
  447. package/v3/assets/skills/xp-practices/SKILL.md +3 -0
  448. package/v3/assets/templates/validation-report.md.hbs +139 -0
  449. package/v3/assets/templates/validation-summary.json +56 -0
  450. package/v3/dist/cli/bundle.js +11853 -5316
  451. package/v3/dist/cli/commands/eval.d.ts +18 -0
  452. package/v3/dist/cli/commands/eval.d.ts.map +1 -0
  453. package/v3/dist/cli/commands/eval.js +505 -0
  454. package/v3/dist/cli/commands/eval.js.map +1 -0
  455. package/v3/dist/cli/commands/validate-swarm.d.ts +16 -0
  456. package/v3/dist/cli/commands/validate-swarm.d.ts.map +1 -0
  457. package/v3/dist/cli/commands/validate-swarm.js +251 -0
  458. package/v3/dist/cli/commands/validate-swarm.js.map +1 -0
  459. package/v3/dist/cli/commands/validate.d.ts +14 -0
  460. package/v3/dist/cli/commands/validate.d.ts.map +1 -0
  461. package/v3/dist/cli/commands/validate.js +408 -0
  462. package/v3/dist/cli/commands/validate.js.map +1 -0
  463. package/v3/dist/cli/index.js +6 -0
  464. package/v3/dist/cli/index.js.map +1 -1
  465. package/v3/dist/index.d.ts +2 -0
  466. package/v3/dist/index.d.ts.map +1 -1
  467. package/v3/dist/index.js +10 -0
  468. package/v3/dist/index.js.map +1 -1
  469. package/v3/dist/init/skills-installer.d.ts +6 -0
  470. package/v3/dist/init/skills-installer.d.ts.map +1 -1
  471. package/v3/dist/init/skills-installer.js +48 -0
  472. package/v3/dist/init/skills-installer.js.map +1 -1
  473. package/v3/dist/learning/index.d.ts +2 -0
  474. package/v3/dist/learning/index.d.ts.map +1 -1
  475. package/v3/dist/learning/index.js +4 -0
  476. package/v3/dist/learning/index.js.map +1 -1
  477. package/v3/dist/learning/skill-validation-learner.d.ts +264 -0
  478. package/v3/dist/learning/skill-validation-learner.d.ts.map +1 -0
  479. package/v3/dist/learning/skill-validation-learner.js +515 -0
  480. package/v3/dist/learning/skill-validation-learner.js.map +1 -0
  481. package/v3/dist/mcp/bundle.js +10043 -3630
  482. package/v3/dist/validation/index.d.ts +19 -0
  483. package/v3/dist/validation/index.d.ts.map +1 -0
  484. package/v3/dist/validation/index.js +31 -0
  485. package/v3/dist/validation/index.js.map +1 -0
  486. package/v3/dist/validation/parallel-eval-runner.d.ts +307 -0
  487. package/v3/dist/validation/parallel-eval-runner.d.ts.map +1 -0
  488. package/v3/dist/validation/parallel-eval-runner.js +566 -0
  489. package/v3/dist/validation/parallel-eval-runner.js.map +1 -0
  490. package/v3/dist/validation/swarm-skill-validator.d.ts +282 -0
  491. package/v3/dist/validation/swarm-skill-validator.d.ts.map +1 -0
  492. package/v3/dist/validation/swarm-skill-validator.js +460 -0
  493. package/v3/dist/validation/swarm-skill-validator.js.map +1 -0
  494. package/v3/dist/validation/validation-result-aggregator.d.ts +232 -0
  495. package/v3/dist/validation/validation-result-aggregator.d.ts.map +1 -0
  496. package/v3/dist/validation/validation-result-aggregator.js +630 -0
  497. package/v3/dist/validation/validation-result-aggregator.js.map +1 -0
  498. package/v3/package.json +1 -1
@@ -0,0 +1,1446 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/database-testing-output.json",
4
+ "title": "AQE Database Testing Skill Output Schema",
5
+ "description": "Schema for database-testing skill output validation. Extends the base skill-output template with schema validation, data integrity testing, migration verification, transaction testing, and query performance analysis.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "database-testing",
12
+ "description": "Must be 'database-testing'"
13
+ },
14
+ "version": {
15
+ "type": "string",
16
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$",
17
+ "description": "Semantic version of the skill"
18
+ },
19
+ "timestamp": {
20
+ "type": "string",
21
+ "format": "date-time",
22
+ "description": "ISO 8601 timestamp of output generation"
23
+ },
24
+ "status": {
25
+ "type": "string",
26
+ "enum": ["success", "partial", "failed", "skipped"],
27
+ "description": "Overall execution status"
28
+ },
29
+ "trustTier": {
30
+ "type": "integer",
31
+ "const": 3,
32
+ "description": "Trust tier 3 indicates full validation with eval suite"
33
+ },
34
+ "output": {
35
+ "type": "object",
36
+ "required": ["summary", "findings", "testTypes", "databaseInfo"],
37
+ "properties": {
38
+ "summary": {
39
+ "type": "string",
40
+ "minLength": 50,
41
+ "maxLength": 2000,
42
+ "description": "Human-readable summary of database testing findings"
43
+ },
44
+ "score": {
45
+ "$ref": "#/$defs/databaseScore",
46
+ "description": "Overall database quality score"
47
+ },
48
+ "findings": {
49
+ "type": "array",
50
+ "items": {
51
+ "$ref": "#/$defs/databaseFinding"
52
+ },
53
+ "maxItems": 500,
54
+ "description": "List of database issues discovered"
55
+ },
56
+ "recommendations": {
57
+ "type": "array",
58
+ "items": {
59
+ "$ref": "#/$defs/databaseRecommendation"
60
+ },
61
+ "maxItems": 100,
62
+ "description": "Prioritized recommendations for database improvements"
63
+ },
64
+ "metrics": {
65
+ "$ref": "#/$defs/databaseMetrics",
66
+ "description": "Database testing metrics and statistics"
67
+ },
68
+ "testTypes": {
69
+ "$ref": "#/$defs/testTypeBreakdown",
70
+ "description": "Breakdown by database test type"
71
+ },
72
+ "databaseInfo": {
73
+ "$ref": "#/$defs/databaseInfo",
74
+ "description": "Target database information"
75
+ },
76
+ "schemaValidation": {
77
+ "$ref": "#/$defs/schemaValidation",
78
+ "description": "Schema validation results"
79
+ },
80
+ "dataIntegrity": {
81
+ "$ref": "#/$defs/dataIntegrity",
82
+ "description": "Data integrity test results"
83
+ },
84
+ "migrationTests": {
85
+ "$ref": "#/$defs/migrationTests",
86
+ "description": "Migration test results"
87
+ },
88
+ "transactionTests": {
89
+ "$ref": "#/$defs/transactionTests",
90
+ "description": "Transaction/ACID test results"
91
+ },
92
+ "performanceTests": {
93
+ "$ref": "#/$defs/performanceTests",
94
+ "description": "Query performance test results"
95
+ },
96
+ "artifacts": {
97
+ "type": "array",
98
+ "items": {
99
+ "$ref": "#/$defs/artifact"
100
+ },
101
+ "maxItems": 50,
102
+ "description": "Generated test reports and artifacts"
103
+ },
104
+ "timeline": {
105
+ "type": "array",
106
+ "items": {
107
+ "$ref": "#/$defs/timelineEvent"
108
+ },
109
+ "description": "Test execution timeline"
110
+ }
111
+ }
112
+ },
113
+ "metadata": {
114
+ "$ref": "#/$defs/metadata"
115
+ },
116
+ "validation": {
117
+ "$ref": "#/$defs/validationResult"
118
+ },
119
+ "learning": {
120
+ "$ref": "#/$defs/learningData"
121
+ }
122
+ },
123
+ "$defs": {
124
+ "databaseScore": {
125
+ "type": "object",
126
+ "required": ["value", "max"],
127
+ "properties": {
128
+ "value": {
129
+ "type": "number",
130
+ "minimum": 0,
131
+ "maximum": 100,
132
+ "description": "Database quality score (0=critical issues, 100=excellent)"
133
+ },
134
+ "max": {
135
+ "type": "number",
136
+ "const": 100,
137
+ "description": "Maximum score is always 100"
138
+ },
139
+ "grade": {
140
+ "type": "string",
141
+ "pattern": "^[A-F][+-]?$",
142
+ "description": "Letter grade: A (90-100), B (80-89), C (70-79), D (60-69), F (<60)"
143
+ },
144
+ "trend": {
145
+ "type": "string",
146
+ "enum": ["improving", "stable", "declining", "unknown"],
147
+ "description": "Trend compared to previous assessments"
148
+ },
149
+ "dataQualityLevel": {
150
+ "type": "string",
151
+ "enum": ["excellent", "good", "fair", "poor", "critical"],
152
+ "description": "Overall data quality assessment"
153
+ }
154
+ }
155
+ },
156
+ "databaseFinding": {
157
+ "type": "object",
158
+ "required": ["id", "title", "severity", "testType"],
159
+ "properties": {
160
+ "id": {
161
+ "type": "string",
162
+ "pattern": "^DB-\\d{3,6}$",
163
+ "description": "Unique finding identifier (e.g., DB-001)"
164
+ },
165
+ "title": {
166
+ "type": "string",
167
+ "minLength": 10,
168
+ "maxLength": 200,
169
+ "description": "Finding title describing the database issue"
170
+ },
171
+ "description": {
172
+ "type": "string",
173
+ "maxLength": 2000,
174
+ "description": "Detailed description of the database issue"
175
+ },
176
+ "severity": {
177
+ "type": "string",
178
+ "enum": ["critical", "high", "medium", "low", "info"],
179
+ "description": "Severity: critical=data loss risk, high=integrity risk, medium=performance, low=improvement, info=informational"
180
+ },
181
+ "testType": {
182
+ "type": "string",
183
+ "enum": ["schema", "integrity", "migration", "transaction", "performance", "data-quality"],
184
+ "description": "Category of database test that found this issue"
185
+ },
186
+ "category": {
187
+ "type": "string",
188
+ "enum": [
189
+ "missing-constraint",
190
+ "orphaned-records",
191
+ "constraint-violation",
192
+ "schema-mismatch",
193
+ "migration-failure",
194
+ "migration-rollback-failure",
195
+ "data-loss",
196
+ "transaction-isolation",
197
+ "deadlock",
198
+ "slow-query",
199
+ "missing-index",
200
+ "n-plus-one",
201
+ "connection-leak",
202
+ "data-corruption",
203
+ "referential-integrity",
204
+ "null-violation",
205
+ "type-mismatch",
206
+ "encoding-issue"
207
+ ],
208
+ "description": "Specific category of database issue"
209
+ },
210
+ "location": {
211
+ "$ref": "#/$defs/databaseLocation",
212
+ "description": "Location of the issue in the database"
213
+ },
214
+ "evidence": {
215
+ "type": "string",
216
+ "maxLength": 5000,
217
+ "description": "Evidence: SQL query, error message, data sample"
218
+ },
219
+ "remediation": {
220
+ "type": "string",
221
+ "maxLength": 2000,
222
+ "description": "Specific fix instructions for this finding"
223
+ },
224
+ "sqlFix": {
225
+ "type": "string",
226
+ "maxLength": 2000,
227
+ "description": "SQL statement to fix the issue"
228
+ },
229
+ "affectedRows": {
230
+ "type": "integer",
231
+ "minimum": 0,
232
+ "description": "Number of rows affected by this issue"
233
+ },
234
+ "affectedTables": {
235
+ "type": "array",
236
+ "items": { "type": "string" },
237
+ "description": "Tables affected by this issue"
238
+ },
239
+ "falsePositive": {
240
+ "type": "boolean",
241
+ "default": false,
242
+ "description": "Potential false positive flag"
243
+ },
244
+ "confidence": {
245
+ "type": "number",
246
+ "minimum": 0,
247
+ "maximum": 1,
248
+ "description": "Confidence in finding accuracy (0.0-1.0)"
249
+ },
250
+ "dataImpact": {
251
+ "type": "string",
252
+ "enum": ["none", "low", "medium", "high", "critical"],
253
+ "description": "Potential data impact if not fixed"
254
+ }
255
+ }
256
+ },
257
+ "databaseRecommendation": {
258
+ "type": "object",
259
+ "required": ["id", "title", "priority", "testType"],
260
+ "properties": {
261
+ "id": {
262
+ "type": "string",
263
+ "pattern": "^REC-\\d{3,6}$",
264
+ "description": "Unique recommendation identifier"
265
+ },
266
+ "title": {
267
+ "type": "string",
268
+ "minLength": 10,
269
+ "maxLength": 200,
270
+ "description": "Recommendation title"
271
+ },
272
+ "description": {
273
+ "type": "string",
274
+ "maxLength": 2000,
275
+ "description": "Detailed recommendation description"
276
+ },
277
+ "priority": {
278
+ "type": "string",
279
+ "enum": ["critical", "high", "medium", "low"],
280
+ "description": "Remediation priority"
281
+ },
282
+ "effort": {
283
+ "type": "string",
284
+ "enum": ["trivial", "low", "medium", "high", "major"],
285
+ "description": "Estimated effort"
286
+ },
287
+ "impact": {
288
+ "type": "integer",
289
+ "minimum": 1,
290
+ "maximum": 10,
291
+ "description": "Database quality impact if implemented (1-10)"
292
+ },
293
+ "relatedFindings": {
294
+ "type": "array",
295
+ "items": {
296
+ "type": "string",
297
+ "pattern": "^DB-\\d{3,6}$"
298
+ },
299
+ "description": "IDs of findings this addresses"
300
+ },
301
+ "testType": {
302
+ "type": "string",
303
+ "enum": ["schema", "integrity", "migration", "transaction", "performance", "data-quality"],
304
+ "description": "Related test type"
305
+ },
306
+ "sqlExample": {
307
+ "type": "object",
308
+ "properties": {
309
+ "before": {
310
+ "type": "string",
311
+ "maxLength": 2000,
312
+ "description": "Problematic SQL/schema"
313
+ },
314
+ "after": {
315
+ "type": "string",
316
+ "maxLength": 2000,
317
+ "description": "Recommended SQL/schema"
318
+ },
319
+ "migration": {
320
+ "type": "string",
321
+ "maxLength": 2000,
322
+ "description": "Migration SQL to apply fix"
323
+ }
324
+ },
325
+ "description": "SQL examples for remediation"
326
+ },
327
+ "resources": {
328
+ "type": "array",
329
+ "items": {
330
+ "type": "object",
331
+ "required": ["title", "url"],
332
+ "properties": {
333
+ "title": { "type": "string" },
334
+ "url": { "type": "string", "format": "uri" }
335
+ }
336
+ },
337
+ "maxItems": 10,
338
+ "description": "External resources and documentation"
339
+ },
340
+ "automatable": {
341
+ "type": "boolean",
342
+ "description": "Can this fix be automated via migration?"
343
+ }
344
+ }
345
+ },
346
+ "testTypeBreakdown": {
347
+ "type": "object",
348
+ "description": "Database test type breakdown",
349
+ "properties": {
350
+ "schema": {
351
+ "$ref": "#/$defs/testTypeScore",
352
+ "description": "Schema validation tests"
353
+ },
354
+ "integrity": {
355
+ "$ref": "#/$defs/testTypeScore",
356
+ "description": "Data integrity tests"
357
+ },
358
+ "migration": {
359
+ "$ref": "#/$defs/testTypeScore",
360
+ "description": "Migration tests"
361
+ },
362
+ "transaction": {
363
+ "$ref": "#/$defs/testTypeScore",
364
+ "description": "Transaction/ACID tests"
365
+ },
366
+ "performance": {
367
+ "$ref": "#/$defs/testTypeScore",
368
+ "description": "Query performance tests"
369
+ },
370
+ "dataQuality": {
371
+ "$ref": "#/$defs/testTypeScore",
372
+ "description": "Data quality tests"
373
+ }
374
+ },
375
+ "additionalProperties": false
376
+ },
377
+ "testTypeScore": {
378
+ "type": "object",
379
+ "required": ["tested", "score"],
380
+ "properties": {
381
+ "tested": {
382
+ "type": "boolean",
383
+ "description": "Whether this test type was executed"
384
+ },
385
+ "score": {
386
+ "type": "number",
387
+ "minimum": 0,
388
+ "maximum": 100,
389
+ "description": "Test type score (100 = all passed, 0 = all failed)"
390
+ },
391
+ "grade": {
392
+ "type": "string",
393
+ "pattern": "^[A-F][+-]?$",
394
+ "description": "Letter grade for this test type"
395
+ },
396
+ "findingCount": {
397
+ "type": "integer",
398
+ "minimum": 0,
399
+ "description": "Number of findings in this category"
400
+ },
401
+ "passedTests": {
402
+ "type": "integer",
403
+ "minimum": 0,
404
+ "description": "Number of tests passed"
405
+ },
406
+ "failedTests": {
407
+ "type": "integer",
408
+ "minimum": 0,
409
+ "description": "Number of tests failed"
410
+ },
411
+ "skippedTests": {
412
+ "type": "integer",
413
+ "minimum": 0,
414
+ "description": "Number of tests skipped"
415
+ },
416
+ "status": {
417
+ "type": "string",
418
+ "enum": ["pass", "fail", "warn", "skip"],
419
+ "description": "Overall status for this test type"
420
+ }
421
+ }
422
+ },
423
+ "databaseInfo": {
424
+ "type": "object",
425
+ "required": ["type"],
426
+ "properties": {
427
+ "type": {
428
+ "type": "string",
429
+ "enum": ["postgresql", "mysql", "mariadb", "mongodb", "sqlite", "mssql", "oracle", "redis", "cassandra", "other"],
430
+ "description": "Database engine type"
431
+ },
432
+ "version": {
433
+ "type": "string",
434
+ "description": "Database version"
435
+ },
436
+ "name": {
437
+ "type": "string",
438
+ "description": "Database name"
439
+ },
440
+ "host": {
441
+ "type": "string",
442
+ "description": "Database host (masked for security)"
443
+ },
444
+ "schemaCount": {
445
+ "type": "integer",
446
+ "minimum": 0,
447
+ "description": "Number of schemas analyzed"
448
+ },
449
+ "tableCount": {
450
+ "type": "integer",
451
+ "minimum": 0,
452
+ "description": "Number of tables analyzed"
453
+ },
454
+ "totalRows": {
455
+ "type": "integer",
456
+ "minimum": 0,
457
+ "description": "Total rows in database"
458
+ },
459
+ "sizeBytes": {
460
+ "type": "integer",
461
+ "minimum": 0,
462
+ "description": "Database size in bytes"
463
+ },
464
+ "connectionPool": {
465
+ "type": "object",
466
+ "properties": {
467
+ "min": { "type": "integer" },
468
+ "max": { "type": "integer" },
469
+ "current": { "type": "integer" }
470
+ },
471
+ "description": "Connection pool settings"
472
+ }
473
+ }
474
+ },
475
+ "schemaValidation": {
476
+ "type": "object",
477
+ "description": "Schema validation results",
478
+ "properties": {
479
+ "tablesValidated": {
480
+ "type": "integer",
481
+ "minimum": 0,
482
+ "description": "Number of tables validated"
483
+ },
484
+ "columnsValidated": {
485
+ "type": "integer",
486
+ "minimum": 0,
487
+ "description": "Number of columns validated"
488
+ },
489
+ "tables": {
490
+ "type": "array",
491
+ "items": {
492
+ "$ref": "#/$defs/tableValidation"
493
+ },
494
+ "description": "Per-table validation results"
495
+ },
496
+ "missingTables": {
497
+ "type": "array",
498
+ "items": { "type": "string" },
499
+ "description": "Tables that should exist but don't"
500
+ },
501
+ "extraTables": {
502
+ "type": "array",
503
+ "items": { "type": "string" },
504
+ "description": "Tables that exist but shouldn't"
505
+ },
506
+ "constraintIssues": {
507
+ "type": "array",
508
+ "items": {
509
+ "$ref": "#/$defs/constraintIssue"
510
+ },
511
+ "description": "Constraint-related issues"
512
+ },
513
+ "indexIssues": {
514
+ "type": "array",
515
+ "items": {
516
+ "$ref": "#/$defs/indexIssue"
517
+ },
518
+ "description": "Index-related issues"
519
+ }
520
+ }
521
+ },
522
+ "tableValidation": {
523
+ "type": "object",
524
+ "required": ["name", "status"],
525
+ "properties": {
526
+ "name": {
527
+ "type": "string",
528
+ "description": "Table name"
529
+ },
530
+ "status": {
531
+ "type": "string",
532
+ "enum": ["valid", "invalid", "warning"],
533
+ "description": "Validation status"
534
+ },
535
+ "columns": {
536
+ "type": "array",
537
+ "items": {
538
+ "$ref": "#/$defs/columnValidation"
539
+ },
540
+ "description": "Column validation results"
541
+ },
542
+ "primaryKey": {
543
+ "type": "object",
544
+ "properties": {
545
+ "exists": { "type": "boolean" },
546
+ "columns": {
547
+ "type": "array",
548
+ "items": { "type": "string" }
549
+ }
550
+ },
551
+ "description": "Primary key validation"
552
+ },
553
+ "foreignKeys": {
554
+ "type": "array",
555
+ "items": {
556
+ "$ref": "#/$defs/foreignKeyValidation"
557
+ },
558
+ "description": "Foreign key validations"
559
+ },
560
+ "indexes": {
561
+ "type": "array",
562
+ "items": {
563
+ "$ref": "#/$defs/indexValidation"
564
+ },
565
+ "description": "Index validations"
566
+ },
567
+ "rowCount": {
568
+ "type": "integer",
569
+ "minimum": 0,
570
+ "description": "Number of rows in table"
571
+ }
572
+ }
573
+ },
574
+ "columnValidation": {
575
+ "type": "object",
576
+ "required": ["name", "dataType"],
577
+ "properties": {
578
+ "name": {
579
+ "type": "string",
580
+ "description": "Column name"
581
+ },
582
+ "dataType": {
583
+ "type": "string",
584
+ "description": "Column data type"
585
+ },
586
+ "expectedType": {
587
+ "type": "string",
588
+ "description": "Expected data type (if different)"
589
+ },
590
+ "nullable": {
591
+ "type": "boolean",
592
+ "description": "Whether column allows NULL"
593
+ },
594
+ "hasDefault": {
595
+ "type": "boolean",
596
+ "description": "Whether column has a default value"
597
+ },
598
+ "defaultValue": {
599
+ "description": "Default value"
600
+ },
601
+ "issues": {
602
+ "type": "array",
603
+ "items": { "type": "string" },
604
+ "description": "Issues with this column"
605
+ }
606
+ }
607
+ },
608
+ "foreignKeyValidation": {
609
+ "type": "object",
610
+ "required": ["name", "referencedTable"],
611
+ "properties": {
612
+ "name": {
613
+ "type": "string",
614
+ "description": "Foreign key constraint name"
615
+ },
616
+ "columns": {
617
+ "type": "array",
618
+ "items": { "type": "string" },
619
+ "description": "Local columns"
620
+ },
621
+ "referencedTable": {
622
+ "type": "string",
623
+ "description": "Referenced table name"
624
+ },
625
+ "referencedColumns": {
626
+ "type": "array",
627
+ "items": { "type": "string" },
628
+ "description": "Referenced columns"
629
+ },
630
+ "onDelete": {
631
+ "type": "string",
632
+ "enum": ["CASCADE", "SET NULL", "SET DEFAULT", "RESTRICT", "NO ACTION"],
633
+ "description": "ON DELETE action"
634
+ },
635
+ "onUpdate": {
636
+ "type": "string",
637
+ "enum": ["CASCADE", "SET NULL", "SET DEFAULT", "RESTRICT", "NO ACTION"],
638
+ "description": "ON UPDATE action"
639
+ },
640
+ "valid": {
641
+ "type": "boolean",
642
+ "description": "Whether FK is valid"
643
+ },
644
+ "orphanedRecords": {
645
+ "type": "integer",
646
+ "minimum": 0,
647
+ "description": "Number of orphaned records found"
648
+ }
649
+ }
650
+ },
651
+ "indexValidation": {
652
+ "type": "object",
653
+ "required": ["name"],
654
+ "properties": {
655
+ "name": {
656
+ "type": "string",
657
+ "description": "Index name"
658
+ },
659
+ "columns": {
660
+ "type": "array",
661
+ "items": { "type": "string" },
662
+ "description": "Indexed columns"
663
+ },
664
+ "unique": {
665
+ "type": "boolean",
666
+ "description": "Whether index is unique"
667
+ },
668
+ "type": {
669
+ "type": "string",
670
+ "enum": ["btree", "hash", "gin", "gist", "brin", "fulltext", "spatial"],
671
+ "description": "Index type"
672
+ },
673
+ "sizeBytes": {
674
+ "type": "integer",
675
+ "minimum": 0,
676
+ "description": "Index size in bytes"
677
+ },
678
+ "usage": {
679
+ "type": "string",
680
+ "enum": ["high", "medium", "low", "unused"],
681
+ "description": "Index usage level"
682
+ }
683
+ }
684
+ },
685
+ "constraintIssue": {
686
+ "type": "object",
687
+ "required": ["type", "table", "issue"],
688
+ "properties": {
689
+ "type": {
690
+ "type": "string",
691
+ "enum": ["primary_key", "foreign_key", "unique", "check", "not_null", "default"],
692
+ "description": "Constraint type"
693
+ },
694
+ "table": {
695
+ "type": "string",
696
+ "description": "Table name"
697
+ },
698
+ "constraintName": {
699
+ "type": "string",
700
+ "description": "Constraint name"
701
+ },
702
+ "issue": {
703
+ "type": "string",
704
+ "description": "Issue description"
705
+ },
706
+ "affectedRows": {
707
+ "type": "integer",
708
+ "minimum": 0,
709
+ "description": "Rows violating constraint"
710
+ }
711
+ }
712
+ },
713
+ "indexIssue": {
714
+ "type": "object",
715
+ "required": ["table", "issue"],
716
+ "properties": {
717
+ "table": {
718
+ "type": "string",
719
+ "description": "Table name"
720
+ },
721
+ "indexName": {
722
+ "type": "string",
723
+ "description": "Index name"
724
+ },
725
+ "issue": {
726
+ "type": "string",
727
+ "description": "Issue description"
728
+ },
729
+ "recommendation": {
730
+ "type": "string",
731
+ "description": "Recommended action"
732
+ },
733
+ "impactedQueries": {
734
+ "type": "integer",
735
+ "minimum": 0,
736
+ "description": "Number of queries impacted"
737
+ }
738
+ }
739
+ },
740
+ "dataIntegrity": {
741
+ "type": "object",
742
+ "description": "Data integrity test results",
743
+ "properties": {
744
+ "uniqueConstraintTests": {
745
+ "type": "object",
746
+ "properties": {
747
+ "passed": { "type": "integer" },
748
+ "failed": { "type": "integer" },
749
+ "violations": {
750
+ "type": "array",
751
+ "items": {
752
+ "type": "object",
753
+ "properties": {
754
+ "table": { "type": "string" },
755
+ "constraint": { "type": "string" },
756
+ "duplicateCount": { "type": "integer" }
757
+ }
758
+ }
759
+ }
760
+ },
761
+ "description": "Unique constraint test results"
762
+ },
763
+ "foreignKeyTests": {
764
+ "type": "object",
765
+ "properties": {
766
+ "passed": { "type": "integer" },
767
+ "failed": { "type": "integer" },
768
+ "orphanedRecords": {
769
+ "type": "array",
770
+ "items": {
771
+ "type": "object",
772
+ "properties": {
773
+ "table": { "type": "string" },
774
+ "foreignKey": { "type": "string" },
775
+ "count": { "type": "integer" }
776
+ }
777
+ }
778
+ }
779
+ },
780
+ "description": "Foreign key constraint test results"
781
+ },
782
+ "checkConstraintTests": {
783
+ "type": "object",
784
+ "properties": {
785
+ "passed": { "type": "integer" },
786
+ "failed": { "type": "integer" },
787
+ "violations": {
788
+ "type": "array",
789
+ "items": {
790
+ "type": "object",
791
+ "properties": {
792
+ "table": { "type": "string" },
793
+ "constraint": { "type": "string" },
794
+ "violationCount": { "type": "integer" }
795
+ }
796
+ }
797
+ }
798
+ },
799
+ "description": "Check constraint test results"
800
+ },
801
+ "nullConstraintTests": {
802
+ "type": "object",
803
+ "properties": {
804
+ "passed": { "type": "integer" },
805
+ "failed": { "type": "integer" },
806
+ "unexpectedNulls": {
807
+ "type": "array",
808
+ "items": {
809
+ "type": "object",
810
+ "properties": {
811
+ "table": { "type": "string" },
812
+ "column": { "type": "string" },
813
+ "nullCount": { "type": "integer" }
814
+ }
815
+ }
816
+ }
817
+ },
818
+ "description": "NOT NULL constraint test results"
819
+ }
820
+ }
821
+ },
822
+ "migrationTests": {
823
+ "type": "object",
824
+ "description": "Migration test results",
825
+ "properties": {
826
+ "migrationsFound": {
827
+ "type": "integer",
828
+ "minimum": 0,
829
+ "description": "Number of migrations found"
830
+ },
831
+ "migrationsTested": {
832
+ "type": "integer",
833
+ "minimum": 0,
834
+ "description": "Number of migrations tested"
835
+ },
836
+ "migrations": {
837
+ "type": "array",
838
+ "items": {
839
+ "$ref": "#/$defs/migrationResult"
840
+ },
841
+ "description": "Individual migration test results"
842
+ },
843
+ "pendingMigrations": {
844
+ "type": "array",
845
+ "items": { "type": "string" },
846
+ "description": "Migrations not yet applied"
847
+ },
848
+ "failedMigrations": {
849
+ "type": "array",
850
+ "items": { "type": "string" },
851
+ "description": "Migrations that failed to apply"
852
+ }
853
+ }
854
+ },
855
+ "migrationResult": {
856
+ "type": "object",
857
+ "required": ["name", "status"],
858
+ "properties": {
859
+ "name": {
860
+ "type": "string",
861
+ "description": "Migration name/identifier"
862
+ },
863
+ "version": {
864
+ "type": "string",
865
+ "description": "Migration version"
866
+ },
867
+ "status": {
868
+ "type": "string",
869
+ "enum": ["passed", "failed", "skipped", "pending"],
870
+ "description": "Migration test status"
871
+ },
872
+ "upTest": {
873
+ "type": "object",
874
+ "properties": {
875
+ "passed": { "type": "boolean" },
876
+ "durationMs": { "type": "integer" },
877
+ "error": { "type": "string" }
878
+ },
879
+ "description": "Forward migration test"
880
+ },
881
+ "downTest": {
882
+ "type": "object",
883
+ "properties": {
884
+ "passed": { "type": "boolean" },
885
+ "durationMs": { "type": "integer" },
886
+ "error": { "type": "string" }
887
+ },
888
+ "description": "Rollback migration test"
889
+ },
890
+ "dataPreservation": {
891
+ "type": "object",
892
+ "properties": {
893
+ "tested": { "type": "boolean" },
894
+ "passed": { "type": "boolean" },
895
+ "dataLossDetected": { "type": "boolean" },
896
+ "affectedRows": { "type": "integer" }
897
+ },
898
+ "description": "Data preservation test"
899
+ },
900
+ "idempotent": {
901
+ "type": "boolean",
902
+ "description": "Whether migration is idempotent"
903
+ }
904
+ }
905
+ },
906
+ "transactionTests": {
907
+ "type": "object",
908
+ "description": "Transaction/ACID test results",
909
+ "properties": {
910
+ "acidCompliance": {
911
+ "type": "object",
912
+ "properties": {
913
+ "atomicity": {
914
+ "$ref": "#/$defs/acidTest",
915
+ "description": "Atomicity test (all or nothing)"
916
+ },
917
+ "consistency": {
918
+ "$ref": "#/$defs/acidTest",
919
+ "description": "Consistency test (constraints valid)"
920
+ },
921
+ "isolation": {
922
+ "$ref": "#/$defs/acidTest",
923
+ "description": "Isolation test (concurrent access)"
924
+ },
925
+ "durability": {
926
+ "$ref": "#/$defs/acidTest",
927
+ "description": "Durability test (data persists)"
928
+ }
929
+ },
930
+ "description": "ACID property test results"
931
+ },
932
+ "isolationLevel": {
933
+ "type": "string",
934
+ "enum": ["READ_UNCOMMITTED", "READ_COMMITTED", "REPEATABLE_READ", "SERIALIZABLE"],
935
+ "description": "Current transaction isolation level"
936
+ },
937
+ "deadlockTests": {
938
+ "type": "object",
939
+ "properties": {
940
+ "tested": { "type": "boolean" },
941
+ "deadlocksDetected": { "type": "integer" },
942
+ "avgResolutionMs": { "type": "number" }
943
+ },
944
+ "description": "Deadlock detection tests"
945
+ },
946
+ "concurrencyTests": {
947
+ "type": "object",
948
+ "properties": {
949
+ "tested": { "type": "boolean" },
950
+ "maxConcurrent": { "type": "integer" },
951
+ "raceConditionsDetected": { "type": "integer" }
952
+ },
953
+ "description": "Concurrent access tests"
954
+ }
955
+ }
956
+ },
957
+ "acidTest": {
958
+ "type": "object",
959
+ "required": ["tested", "passed"],
960
+ "properties": {
961
+ "tested": {
962
+ "type": "boolean",
963
+ "description": "Whether this property was tested"
964
+ },
965
+ "passed": {
966
+ "type": "boolean",
967
+ "description": "Whether test passed"
968
+ },
969
+ "testCount": {
970
+ "type": "integer",
971
+ "minimum": 0,
972
+ "description": "Number of tests run"
973
+ },
974
+ "failureCount": {
975
+ "type": "integer",
976
+ "minimum": 0,
977
+ "description": "Number of failures"
978
+ },
979
+ "details": {
980
+ "type": "string",
981
+ "description": "Test details"
982
+ }
983
+ }
984
+ },
985
+ "performanceTests": {
986
+ "type": "object",
987
+ "description": "Query performance test results",
988
+ "properties": {
989
+ "queriesAnalyzed": {
990
+ "type": "integer",
991
+ "minimum": 0,
992
+ "description": "Number of queries analyzed"
993
+ },
994
+ "slowQueries": {
995
+ "type": "array",
996
+ "items": {
997
+ "$ref": "#/$defs/queryAnalysis"
998
+ },
999
+ "description": "Slow queries identified"
1000
+ },
1001
+ "missingIndexes": {
1002
+ "type": "array",
1003
+ "items": {
1004
+ "$ref": "#/$defs/missingIndex"
1005
+ },
1006
+ "description": "Missing indexes identified"
1007
+ },
1008
+ "nPlusOneIssues": {
1009
+ "type": "array",
1010
+ "items": {
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "location": { "type": "string" },
1014
+ "queryPattern": { "type": "string" },
1015
+ "queryCount": { "type": "integer" },
1016
+ "recommendation": { "type": "string" }
1017
+ }
1018
+ },
1019
+ "description": "N+1 query issues"
1020
+ },
1021
+ "connectionPoolMetrics": {
1022
+ "type": "object",
1023
+ "properties": {
1024
+ "avgWaitMs": { "type": "number" },
1025
+ "maxWaitMs": { "type": "number" },
1026
+ "timeouts": { "type": "integer" },
1027
+ "leaks": { "type": "integer" }
1028
+ },
1029
+ "description": "Connection pool performance"
1030
+ },
1031
+ "benchmarks": {
1032
+ "type": "array",
1033
+ "items": {
1034
+ "type": "object",
1035
+ "properties": {
1036
+ "name": { "type": "string" },
1037
+ "avgMs": { "type": "number" },
1038
+ "p50Ms": { "type": "number" },
1039
+ "p95Ms": { "type": "number" },
1040
+ "p99Ms": { "type": "number" },
1041
+ "maxMs": { "type": "number" }
1042
+ }
1043
+ },
1044
+ "description": "Performance benchmarks"
1045
+ }
1046
+ }
1047
+ },
1048
+ "queryAnalysis": {
1049
+ "type": "object",
1050
+ "required": ["query", "avgDurationMs"],
1051
+ "properties": {
1052
+ "query": {
1053
+ "type": "string",
1054
+ "description": "SQL query (anonymized)"
1055
+ },
1056
+ "avgDurationMs": {
1057
+ "type": "number",
1058
+ "minimum": 0,
1059
+ "description": "Average execution time"
1060
+ },
1061
+ "maxDurationMs": {
1062
+ "type": "number",
1063
+ "minimum": 0,
1064
+ "description": "Maximum execution time"
1065
+ },
1066
+ "executionCount": {
1067
+ "type": "integer",
1068
+ "minimum": 0,
1069
+ "description": "Number of executions"
1070
+ },
1071
+ "rowsExamined": {
1072
+ "type": "integer",
1073
+ "minimum": 0,
1074
+ "description": "Average rows examined"
1075
+ },
1076
+ "rowsReturned": {
1077
+ "type": "integer",
1078
+ "minimum": 0,
1079
+ "description": "Average rows returned"
1080
+ },
1081
+ "usesIndex": {
1082
+ "type": "boolean",
1083
+ "description": "Whether query uses indexes"
1084
+ },
1085
+ "executionPlan": {
1086
+ "type": "string",
1087
+ "description": "Query execution plan"
1088
+ },
1089
+ "optimization": {
1090
+ "type": "string",
1091
+ "description": "Suggested optimization"
1092
+ }
1093
+ }
1094
+ },
1095
+ "missingIndex": {
1096
+ "type": "object",
1097
+ "required": ["table", "columns"],
1098
+ "properties": {
1099
+ "table": {
1100
+ "type": "string",
1101
+ "description": "Table name"
1102
+ },
1103
+ "columns": {
1104
+ "type": "array",
1105
+ "items": { "type": "string" },
1106
+ "description": "Columns that should be indexed"
1107
+ },
1108
+ "impact": {
1109
+ "type": "string",
1110
+ "enum": ["critical", "high", "medium", "low"],
1111
+ "description": "Impact of missing index"
1112
+ },
1113
+ "affectedQueries": {
1114
+ "type": "integer",
1115
+ "minimum": 0,
1116
+ "description": "Number of queries that would benefit"
1117
+ },
1118
+ "suggestedIndex": {
1119
+ "type": "string",
1120
+ "description": "SQL to create suggested index"
1121
+ }
1122
+ }
1123
+ },
1124
+ "databaseLocation": {
1125
+ "type": "object",
1126
+ "description": "Location in database",
1127
+ "properties": {
1128
+ "schema": {
1129
+ "type": "string",
1130
+ "description": "Database schema"
1131
+ },
1132
+ "table": {
1133
+ "type": "string",
1134
+ "description": "Table name"
1135
+ },
1136
+ "column": {
1137
+ "type": "string",
1138
+ "description": "Column name"
1139
+ },
1140
+ "constraint": {
1141
+ "type": "string",
1142
+ "description": "Constraint name"
1143
+ },
1144
+ "index": {
1145
+ "type": "string",
1146
+ "description": "Index name"
1147
+ },
1148
+ "migration": {
1149
+ "type": "string",
1150
+ "description": "Migration name"
1151
+ },
1152
+ "file": {
1153
+ "type": "string",
1154
+ "description": "Source file (for migration files)"
1155
+ },
1156
+ "line": {
1157
+ "type": "integer",
1158
+ "minimum": 1,
1159
+ "description": "Line number in source file"
1160
+ }
1161
+ }
1162
+ },
1163
+ "databaseMetrics": {
1164
+ "type": "object",
1165
+ "properties": {
1166
+ "totalFindings": {
1167
+ "type": "integer",
1168
+ "minimum": 0,
1169
+ "description": "Total issues found"
1170
+ },
1171
+ "criticalCount": {
1172
+ "type": "integer",
1173
+ "minimum": 0,
1174
+ "description": "Critical severity findings"
1175
+ },
1176
+ "highCount": {
1177
+ "type": "integer",
1178
+ "minimum": 0,
1179
+ "description": "High severity findings"
1180
+ },
1181
+ "mediumCount": {
1182
+ "type": "integer",
1183
+ "minimum": 0,
1184
+ "description": "Medium severity findings"
1185
+ },
1186
+ "lowCount": {
1187
+ "type": "integer",
1188
+ "minimum": 0,
1189
+ "description": "Low severity findings"
1190
+ },
1191
+ "infoCount": {
1192
+ "type": "integer",
1193
+ "minimum": 0,
1194
+ "description": "Informational findings"
1195
+ },
1196
+ "tablesAnalyzed": {
1197
+ "type": "integer",
1198
+ "minimum": 0,
1199
+ "description": "Number of tables analyzed"
1200
+ },
1201
+ "constraintsValidated": {
1202
+ "type": "integer",
1203
+ "minimum": 0,
1204
+ "description": "Number of constraints validated"
1205
+ },
1206
+ "indexesAnalyzed": {
1207
+ "type": "integer",
1208
+ "minimum": 0,
1209
+ "description": "Number of indexes analyzed"
1210
+ },
1211
+ "migrationsAnalyzed": {
1212
+ "type": "integer",
1213
+ "minimum": 0,
1214
+ "description": "Number of migrations analyzed"
1215
+ },
1216
+ "queriesAnalyzed": {
1217
+ "type": "integer",
1218
+ "minimum": 0,
1219
+ "description": "Number of queries analyzed"
1220
+ },
1221
+ "testDurationMs": {
1222
+ "type": "integer",
1223
+ "minimum": 0,
1224
+ "description": "Total test duration in milliseconds"
1225
+ },
1226
+ "coverage": {
1227
+ "type": "object",
1228
+ "properties": {
1229
+ "schema": { "type": "boolean" },
1230
+ "integrity": { "type": "boolean" },
1231
+ "migration": { "type": "boolean" },
1232
+ "transaction": { "type": "boolean" },
1233
+ "performance": { "type": "boolean" }
1234
+ },
1235
+ "description": "Test coverage indicators"
1236
+ }
1237
+ }
1238
+ },
1239
+ "artifact": {
1240
+ "type": "object",
1241
+ "required": ["type", "path"],
1242
+ "properties": {
1243
+ "type": {
1244
+ "type": "string",
1245
+ "enum": ["report", "schema-dump", "migration-script", "data", "log", "query-plan", "benchmark"],
1246
+ "description": "Artifact type"
1247
+ },
1248
+ "path": {
1249
+ "type": "string",
1250
+ "maxLength": 500,
1251
+ "description": "Path to artifact"
1252
+ },
1253
+ "format": {
1254
+ "type": "string",
1255
+ "enum": ["json", "sql", "html", "md", "txt", "csv", "xml", "yaml"],
1256
+ "description": "Artifact format"
1257
+ },
1258
+ "description": {
1259
+ "type": "string",
1260
+ "maxLength": 500,
1261
+ "description": "Artifact description"
1262
+ },
1263
+ "sizeBytes": {
1264
+ "type": "integer",
1265
+ "minimum": 0,
1266
+ "description": "File size in bytes"
1267
+ },
1268
+ "checksum": {
1269
+ "type": "string",
1270
+ "pattern": "^sha256:[a-f0-9]{64}$",
1271
+ "description": "SHA-256 checksum"
1272
+ }
1273
+ }
1274
+ },
1275
+ "timelineEvent": {
1276
+ "type": "object",
1277
+ "required": ["timestamp", "event"],
1278
+ "properties": {
1279
+ "timestamp": {
1280
+ "type": "string",
1281
+ "format": "date-time",
1282
+ "description": "Event timestamp"
1283
+ },
1284
+ "event": {
1285
+ "type": "string",
1286
+ "maxLength": 200,
1287
+ "description": "Event description"
1288
+ },
1289
+ "type": {
1290
+ "type": "string",
1291
+ "enum": ["start", "checkpoint", "warning", "error", "complete"],
1292
+ "description": "Event type"
1293
+ },
1294
+ "durationMs": {
1295
+ "type": "integer",
1296
+ "minimum": 0,
1297
+ "description": "Duration since previous event"
1298
+ },
1299
+ "phase": {
1300
+ "type": "string",
1301
+ "enum": ["initialization", "schema", "integrity", "migration", "transaction", "performance", "reporting"],
1302
+ "description": "Test phase"
1303
+ }
1304
+ }
1305
+ },
1306
+ "metadata": {
1307
+ "type": "object",
1308
+ "properties": {
1309
+ "executionTimeMs": {
1310
+ "type": "integer",
1311
+ "minimum": 0,
1312
+ "maximum": 3600000,
1313
+ "description": "Execution time in milliseconds"
1314
+ },
1315
+ "toolsUsed": {
1316
+ "type": "array",
1317
+ "items": {
1318
+ "type": "string",
1319
+ "enum": ["psql", "mysql", "mongo", "sqlite3", "knex", "prisma", "typeorm", "sequelize", "drizzle", "node", "pg-query-analyzer"]
1320
+ },
1321
+ "uniqueItems": true,
1322
+ "description": "Database tools used"
1323
+ },
1324
+ "agentId": {
1325
+ "type": "string",
1326
+ "pattern": "^qe-[a-z][a-z0-9-]*$",
1327
+ "description": "Agent ID"
1328
+ },
1329
+ "modelUsed": {
1330
+ "type": "string",
1331
+ "description": "LLM model used for analysis"
1332
+ },
1333
+ "inputHash": {
1334
+ "type": "string",
1335
+ "pattern": "^[a-f0-9]{64}$",
1336
+ "description": "SHA-256 hash of input"
1337
+ },
1338
+ "targetPath": {
1339
+ "type": "string",
1340
+ "description": "Target path"
1341
+ },
1342
+ "environment": {
1343
+ "type": "string",
1344
+ "enum": ["development", "staging", "production", "ci"],
1345
+ "description": "Execution environment"
1346
+ },
1347
+ "retryCount": {
1348
+ "type": "integer",
1349
+ "minimum": 0,
1350
+ "maximum": 10,
1351
+ "description": "Number of retries"
1352
+ }
1353
+ }
1354
+ },
1355
+ "validationResult": {
1356
+ "type": "object",
1357
+ "properties": {
1358
+ "schemaValid": {
1359
+ "type": "boolean",
1360
+ "description": "Passes JSON schema validation"
1361
+ },
1362
+ "contentValid": {
1363
+ "type": "boolean",
1364
+ "description": "Passes content validation"
1365
+ },
1366
+ "confidence": {
1367
+ "type": "number",
1368
+ "minimum": 0,
1369
+ "maximum": 1,
1370
+ "description": "Confidence score"
1371
+ },
1372
+ "warnings": {
1373
+ "type": "array",
1374
+ "items": {
1375
+ "type": "string",
1376
+ "maxLength": 500
1377
+ },
1378
+ "maxItems": 20,
1379
+ "description": "Validation warnings"
1380
+ },
1381
+ "errors": {
1382
+ "type": "array",
1383
+ "items": {
1384
+ "type": "string",
1385
+ "maxLength": 500
1386
+ },
1387
+ "maxItems": 20,
1388
+ "description": "Validation errors"
1389
+ },
1390
+ "validatorVersion": {
1391
+ "type": "string",
1392
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
1393
+ "description": "Validator version"
1394
+ }
1395
+ }
1396
+ },
1397
+ "learningData": {
1398
+ "type": "object",
1399
+ "properties": {
1400
+ "patternsDetected": {
1401
+ "type": "array",
1402
+ "items": {
1403
+ "type": "string",
1404
+ "maxLength": 200
1405
+ },
1406
+ "maxItems": 20,
1407
+ "description": "Database patterns detected (e.g., n-plus-one-query, missing-index)"
1408
+ },
1409
+ "reward": {
1410
+ "type": "number",
1411
+ "minimum": 0,
1412
+ "maximum": 1,
1413
+ "description": "Reward signal for learning (0.0-1.0)"
1414
+ },
1415
+ "feedbackLoop": {
1416
+ "type": "object",
1417
+ "properties": {
1418
+ "previousRunId": {
1419
+ "type": "string",
1420
+ "format": "uuid",
1421
+ "description": "Previous run ID for comparison"
1422
+ },
1423
+ "improvement": {
1424
+ "type": "number",
1425
+ "minimum": -1,
1426
+ "maximum": 1,
1427
+ "description": "Improvement over previous run"
1428
+ }
1429
+ }
1430
+ },
1431
+ "newDatabasePatterns": {
1432
+ "type": "array",
1433
+ "items": {
1434
+ "type": "object",
1435
+ "properties": {
1436
+ "pattern": { "type": "string" },
1437
+ "category": { "type": "string" },
1438
+ "confidence": { "type": "number" }
1439
+ }
1440
+ },
1441
+ "description": "New database patterns learned"
1442
+ }
1443
+ }
1444
+ }
1445
+ }
1446
+ }