agentic-qe 3.7.8 → 3.7.9

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 (285) hide show
  1. package/.claude/skills/debug-loop/SKILL.md +1 -1
  2. package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  3. package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -0
  4. package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -0
  5. package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -0
  6. package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -0
  7. package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -0
  8. package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -0
  9. package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -0
  10. package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -0
  11. package/.claude/skills/pr-review/SKILL.md +1 -1
  12. package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -0
  13. package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -0
  14. package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -0
  15. package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -0
  16. package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -0
  17. package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -0
  18. package/.claude/skills/skills-manifest.json +1 -1
  19. package/.claude/skills/trust-tier-manifest.json +78 -7
  20. package/CHANGELOG.md +20 -0
  21. package/assets/skills/a11y-ally/SKILL.md +1664 -1658
  22. package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -0
  23. package/assets/skills/a11y-ally/schemas/output.json +549 -0
  24. package/assets/skills/a11y-ally/scripts/validate-config.json +42 -0
  25. package/assets/skills/brutal-honesty-review/SKILL.md +5 -0
  26. package/assets/skills/brutal-honesty-review/schemas/output.json +291 -0
  27. package/assets/skills/brutal-honesty-review/scripts/validate-config.json +34 -0
  28. package/assets/skills/cicd-pipeline-qe-orchestrator/README.md +1 -1
  29. package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -0
  30. package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -0
  31. package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -0
  32. package/assets/skills/cicd-pipeline-qe-orchestrator/scripts/validate-config.json +42 -0
  33. package/assets/skills/debug-loop/SKILL.md +1 -1
  34. package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  35. package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -0
  36. package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -0
  37. package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -0
  38. package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -0
  39. package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -0
  40. package/assets/skills/n8n-expression-testing/SKILL.md +6 -0
  41. package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -0
  42. package/assets/skills/n8n-expression-testing/schemas/output.json +369 -0
  43. package/assets/skills/n8n-expression-testing/scripts/validate-config.json +39 -0
  44. package/assets/skills/n8n-integration-testing-patterns/SKILL.md +6 -0
  45. package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -0
  46. package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -0
  47. package/assets/skills/n8n-integration-testing-patterns/scripts/validate-config.json +34 -0
  48. package/assets/skills/n8n-security-testing/SKILL.md +6 -0
  49. package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -0
  50. package/assets/skills/n8n-security-testing/schemas/output.json +293 -0
  51. package/assets/skills/n8n-security-testing/scripts/validate-config.json +34 -0
  52. package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +6 -0
  53. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -0
  54. package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -0
  55. package/assets/skills/n8n-trigger-testing-strategies/scripts/validate-config.json +34 -0
  56. package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +6 -0
  57. package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -0
  58. package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -0
  59. package/assets/skills/n8n-workflow-testing-fundamentals/scripts/validate-config.json +35 -0
  60. package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -0
  61. package/assets/skills/observability-testing-patterns/schemas/output.json +58 -0
  62. package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -0
  63. package/assets/skills/pentest-validation/scripts/validate-config.json +12 -0
  64. package/assets/skills/pr-review/SKILL.md +1 -1
  65. package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -0
  66. package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -0
  67. package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -0
  68. package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -0
  69. package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -0
  70. package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -0
  71. package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  72. package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -0
  73. package/assets/skills/qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  74. package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -0
  75. package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -0
  76. package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -0
  77. package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -0
  78. package/assets/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +139 -0
  79. package/assets/skills/qcsd-refinement-swarm/schemas/output.json +811 -0
  80. package/assets/skills/qcsd-refinement-swarm/scripts/validate-config.json +25 -0
  81. package/assets/skills/security-visual-testing/scripts/validate-config.json +45 -0
  82. package/assets/skills/sherlock-review/SKILL.md +5 -0
  83. package/assets/skills/sherlock-review/schemas/output.json +297 -0
  84. package/assets/skills/sherlock-review/scripts/validate-config.json +35 -0
  85. package/assets/skills/testability-scoring/SKILL.md +5 -0
  86. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -0
  87. package/assets/skills/testability-scoring/schemas/output.json +606 -0
  88. package/assets/skills/testability-scoring/scripts/validate-config.json +42 -0
  89. package/assets/skills/trust-tier-manifest.json +2404 -0
  90. package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -0
  91. package/assets/skills/wms-testing-patterns/schemas/output.json +150 -0
  92. package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -0
  93. package/dist/benchmarks/performance-benchmarks.js +1 -1
  94. package/dist/cli/bundle.js +9130 -2283
  95. package/dist/cli/commands/hooks.d.ts.map +1 -1
  96. package/dist/cli/commands/hooks.js +92 -0
  97. package/dist/cli/commands/hooks.js.map +1 -1
  98. package/dist/cli/commands/migrate.js +2 -2
  99. package/dist/coordination/constants.d.ts +1 -1
  100. package/dist/coordination/constants.js +1 -1
  101. package/dist/coordination/handlers/coverage-handlers.js +1 -1
  102. package/dist/coordination/handlers/coverage-handlers.js.map +1 -1
  103. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +1 -1
  104. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts.map +1 -1
  105. package/dist/domains/code-intelligence/services/semantic-analyzer.js +1 -1
  106. package/dist/domains/code-intelligence/services/semantic-analyzer.js.map +1 -1
  107. package/dist/domains/coverage-analysis/coordinator.js +1 -1
  108. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +1 -1
  109. package/dist/domains/coverage-analysis/services/coverage-embedder.d.ts +1 -1
  110. package/dist/domains/coverage-analysis/services/coverage-embedder.js +1 -1
  111. package/dist/domains/coverage-analysis/services/gap-detector.js +1 -1
  112. package/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +1 -1
  113. package/dist/domains/coverage-analysis/services/hnsw-index.d.ts +2 -2
  114. package/dist/domains/coverage-analysis/services/hnsw-index.js +3 -3
  115. package/dist/domains/coverage-analysis/services/sublinear-analyzer.d.ts +1 -1
  116. package/dist/domains/coverage-analysis/services/sublinear-analyzer.js +1 -1
  117. package/dist/domains/test-execution/services/test-prioritizer.js +1 -1
  118. package/dist/domains/test-generation/context/rust-context-builder.d.ts +31 -0
  119. package/dist/domains/test-generation/context/rust-context-builder.d.ts.map +1 -0
  120. package/dist/domains/test-generation/context/rust-context-builder.js +27 -0
  121. package/dist/domains/test-generation/context/rust-context-builder.js.map +1 -0
  122. package/dist/domains/test-generation/coordinator.js +3 -3
  123. package/dist/domains/test-generation/coordinator.js.map +1 -1
  124. package/dist/domains/test-generation/detectors/mobile-detector.d.ts +41 -0
  125. package/dist/domains/test-generation/detectors/mobile-detector.d.ts.map +1 -0
  126. package/dist/domains/test-generation/detectors/mobile-detector.js +111 -0
  127. package/dist/domains/test-generation/detectors/mobile-detector.js.map +1 -0
  128. package/dist/domains/test-generation/detectors/spring-detector.d.ts +22 -0
  129. package/dist/domains/test-generation/detectors/spring-detector.d.ts.map +1 -0
  130. package/dist/domains/test-generation/detectors/spring-detector.js +37 -0
  131. package/dist/domains/test-generation/detectors/spring-detector.js.map +1 -0
  132. package/dist/domains/test-generation/factories/test-generator-factory.d.ts +2 -1
  133. package/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -1
  134. package/dist/domains/test-generation/factories/test-generator-factory.js +33 -13
  135. package/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -1
  136. package/dist/domains/test-generation/generators/flutter-test-generator.d.ts +107 -0
  137. package/dist/domains/test-generation/generators/flutter-test-generator.d.ts.map +1 -0
  138. package/dist/domains/test-generation/generators/flutter-test-generator.js +590 -0
  139. package/dist/domains/test-generation/generators/flutter-test-generator.js.map +1 -0
  140. package/dist/domains/test-generation/generators/go-test-generator.d.ts +139 -0
  141. package/dist/domains/test-generation/generators/go-test-generator.d.ts.map +1 -0
  142. package/dist/domains/test-generation/generators/go-test-generator.js +654 -0
  143. package/dist/domains/test-generation/generators/go-test-generator.js.map +1 -0
  144. package/dist/domains/test-generation/generators/index.d.ts +8 -0
  145. package/dist/domains/test-generation/generators/index.d.ts.map +1 -1
  146. package/dist/domains/test-generation/generators/index.js +8 -0
  147. package/dist/domains/test-generation/generators/index.js.map +1 -1
  148. package/dist/domains/test-generation/generators/jest-rn-generator.d.ts +95 -0
  149. package/dist/domains/test-generation/generators/jest-rn-generator.d.ts.map +1 -0
  150. package/dist/domains/test-generation/generators/jest-rn-generator.js +591 -0
  151. package/dist/domains/test-generation/generators/jest-rn-generator.js.map +1 -0
  152. package/dist/domains/test-generation/generators/junit5-generator.d.ts +107 -0
  153. package/dist/domains/test-generation/generators/junit5-generator.d.ts.map +1 -0
  154. package/dist/domains/test-generation/generators/junit5-generator.js +588 -0
  155. package/dist/domains/test-generation/generators/junit5-generator.js.map +1 -0
  156. package/dist/domains/test-generation/generators/kotlin-junit-generator.d.ts +109 -0
  157. package/dist/domains/test-generation/generators/kotlin-junit-generator.d.ts.map +1 -0
  158. package/dist/domains/test-generation/generators/kotlin-junit-generator.js +588 -0
  159. package/dist/domains/test-generation/generators/kotlin-junit-generator.js.map +1 -0
  160. package/dist/domains/test-generation/generators/pytest-generator.d.ts +8 -1
  161. package/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -1
  162. package/dist/domains/test-generation/generators/pytest-generator.js +57 -0
  163. package/dist/domains/test-generation/generators/pytest-generator.js.map +1 -1
  164. package/dist/domains/test-generation/generators/rust-test-generator.d.ts +80 -0
  165. package/dist/domains/test-generation/generators/rust-test-generator.d.ts.map +1 -0
  166. package/dist/domains/test-generation/generators/rust-test-generator.js +442 -0
  167. package/dist/domains/test-generation/generators/rust-test-generator.js.map +1 -0
  168. package/dist/domains/test-generation/generators/swift-testing-generator.d.ts +97 -0
  169. package/dist/domains/test-generation/generators/swift-testing-generator.d.ts.map +1 -0
  170. package/dist/domains/test-generation/generators/swift-testing-generator.js +482 -0
  171. package/dist/domains/test-generation/generators/swift-testing-generator.js.map +1 -0
  172. package/dist/domains/test-generation/generators/xunit-generator.d.ts +110 -0
  173. package/dist/domains/test-generation/generators/xunit-generator.d.ts.map +1 -0
  174. package/dist/domains/test-generation/generators/xunit-generator.js +611 -0
  175. package/dist/domains/test-generation/generators/xunit-generator.js.map +1 -0
  176. package/dist/domains/test-generation/interfaces.d.ts +11 -2
  177. package/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  178. package/dist/domains/test-generation/prompts/language-prompts.d.ts +29 -0
  179. package/dist/domains/test-generation/prompts/language-prompts.d.ts.map +1 -0
  180. package/dist/domains/test-generation/prompts/language-prompts.js +135 -0
  181. package/dist/domains/test-generation/prompts/language-prompts.js.map +1 -0
  182. package/dist/domains/test-generation/services/compilation-validator.d.ts +43 -0
  183. package/dist/domains/test-generation/services/compilation-validator.d.ts.map +1 -0
  184. package/dist/domains/test-generation/services/compilation-validator.js +134 -0
  185. package/dist/domains/test-generation/services/compilation-validator.js.map +1 -0
  186. package/dist/domains/test-generation/services/index.d.ts +2 -1
  187. package/dist/domains/test-generation/services/index.d.ts.map +1 -1
  188. package/dist/domains/test-generation/services/index.js +3 -1
  189. package/dist/domains/test-generation/services/index.js.map +1 -1
  190. package/dist/domains/test-generation/services/test-file-resolver.d.ts +32 -0
  191. package/dist/domains/test-generation/services/test-file-resolver.d.ts.map +1 -0
  192. package/dist/domains/test-generation/services/test-file-resolver.js +159 -0
  193. package/dist/domains/test-generation/services/test-file-resolver.js.map +1 -0
  194. package/dist/domains/test-generation/services/test-generator.d.ts +10 -0
  195. package/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  196. package/dist/domains/test-generation/services/test-generator.js +87 -10
  197. package/dist/domains/test-generation/services/test-generator.js.map +1 -1
  198. package/dist/governance/feature-flags.js +2 -2
  199. package/dist/governance/feature-flags.js.map +1 -1
  200. package/dist/governance/shard-embeddings.js +1 -1
  201. package/dist/init/init-wizard-hooks.d.ts.map +1 -1
  202. package/dist/init/init-wizard-hooks.js +0 -1
  203. package/dist/init/init-wizard-hooks.js.map +1 -1
  204. package/dist/init/phases/07-hooks.d.ts.map +1 -1
  205. package/dist/init/phases/07-hooks.js +0 -2
  206. package/dist/init/phases/07-hooks.js.map +1 -1
  207. package/dist/init/phases/08-mcp.d.ts +8 -4
  208. package/dist/init/phases/08-mcp.d.ts.map +1 -1
  209. package/dist/init/phases/08-mcp.js +13 -31
  210. package/dist/init/phases/08-mcp.js.map +1 -1
  211. package/dist/init/phases/10-workers.js +2 -2
  212. package/dist/init/phases/10-workers.js.map +1 -1
  213. package/dist/init/settings-merge.d.ts.map +1 -1
  214. package/dist/init/settings-merge.js +0 -2
  215. package/dist/init/settings-merge.js.map +1 -1
  216. package/dist/init/token-bootstrap.js +1 -1
  217. package/dist/init/token-bootstrap.js.map +1 -1
  218. package/dist/integrations/rl-suite/algorithms/decision-transformer.js +1 -1
  219. package/dist/kernel/constants.d.ts +2 -2
  220. package/dist/kernel/constants.js +2 -2
  221. package/dist/kernel/hnsw-adapter.js +1 -1
  222. package/dist/kernel/progressive-hnsw-backend.d.ts +2 -2
  223. package/dist/kernel/progressive-hnsw-backend.js +2 -2
  224. package/dist/learning/dream/concept-graph.d.ts +1 -1
  225. package/dist/learning/dream/concept-graph.js +1 -1
  226. package/dist/learning/dream/dream-engine.d.ts +1 -1
  227. package/dist/learning/dream/dream-engine.js +1 -1
  228. package/dist/learning/dream/index.d.ts +1 -1
  229. package/dist/learning/dream/index.js +1 -1
  230. package/dist/learning/dream/types.d.ts +1 -1
  231. package/dist/learning/dream/types.d.ts.map +1 -1
  232. package/dist/learning/dream/types.js +1 -1
  233. package/dist/learning/dream/types.js.map +1 -1
  234. package/dist/learning/token-tracker.js +1 -1
  235. package/dist/learning/token-tracker.js.map +1 -1
  236. package/dist/mcp/bundle.js +7515 -893
  237. package/dist/routing/qe-agent-registry.js +4 -4
  238. package/dist/routing/qe-agent-registry.js.map +1 -1
  239. package/dist/routing/types.d.ts +5 -8
  240. package/dist/routing/types.d.ts.map +1 -1
  241. package/dist/routing/types.js.map +1 -1
  242. package/dist/shared/embeddings/embedding-cache.js +2 -2
  243. package/dist/shared/embeddings/index.d.ts +2 -2
  244. package/dist/shared/embeddings/index.js +2 -2
  245. package/dist/shared/embeddings/nomic-embedder.d.ts +4 -4
  246. package/dist/shared/embeddings/nomic-embedder.js +2 -2
  247. package/dist/shared/embeddings/ollama-client.d.ts +1 -1
  248. package/dist/shared/embeddings/ollama-client.js +2 -2
  249. package/dist/shared/embeddings/ollama-client.js.map +1 -1
  250. package/dist/shared/embeddings/types.d.ts +2 -2
  251. package/dist/shared/embeddings/types.js +2 -2
  252. package/dist/shared/language-detector.d.ts +46 -0
  253. package/dist/shared/language-detector.d.ts.map +1 -0
  254. package/dist/shared/language-detector.js +183 -0
  255. package/dist/shared/language-detector.js.map +1 -0
  256. package/dist/shared/llm/providers/ollama.js +1 -1
  257. package/dist/shared/metrics/code-metrics.d.ts.map +1 -1
  258. package/dist/shared/metrics/code-metrics.js +24 -1
  259. package/dist/shared/metrics/code-metrics.js.map +1 -1
  260. package/dist/shared/parsers/index.d.ts +2 -0
  261. package/dist/shared/parsers/index.d.ts.map +1 -1
  262. package/dist/shared/parsers/index.js +2 -0
  263. package/dist/shared/parsers/index.js.map +1 -1
  264. package/dist/shared/parsers/interfaces.d.ts +81 -0
  265. package/dist/shared/parsers/interfaces.d.ts.map +1 -0
  266. package/dist/shared/parsers/interfaces.js +6 -0
  267. package/dist/shared/parsers/interfaces.js.map +1 -0
  268. package/dist/shared/parsers/multi-language-parser.d.ts +144 -0
  269. package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -0
  270. package/dist/shared/parsers/multi-language-parser.js +1232 -0
  271. package/dist/shared/parsers/multi-language-parser.js.map +1 -0
  272. package/dist/shared/parsers/rust-ownership-analyzer.d.ts +45 -0
  273. package/dist/shared/parsers/rust-ownership-analyzer.d.ts.map +1 -0
  274. package/dist/shared/parsers/rust-ownership-analyzer.js +52 -0
  275. package/dist/shared/parsers/rust-ownership-analyzer.js.map +1 -0
  276. package/dist/shared/parsers/typescript-parser.d.ts +16 -0
  277. package/dist/shared/parsers/typescript-parser.d.ts.map +1 -1
  278. package/dist/shared/parsers/typescript-parser.js +85 -0
  279. package/dist/shared/parsers/typescript-parser.js.map +1 -1
  280. package/dist/shared/types/test-frameworks.d.ts +25 -0
  281. package/dist/shared/types/test-frameworks.d.ts.map +1 -0
  282. package/dist/shared/types/test-frameworks.js +111 -0
  283. package/dist/shared/types/test-frameworks.js.map +1 -0
  284. package/package.json +1 -1
  285. package/scripts/prepare-assets.sh +8 -2
@@ -0,0 +1,493 @@
1
+ # =============================================================================
2
+ # AQE Skill Evaluation Test Suite: n8n Security Testing v1.0.0
3
+ # =============================================================================
4
+ #
5
+ # Comprehensive evaluation suite for n8n security testing skill.
6
+ # Tests credential exposure detection, OAuth flow validation, API key
7
+ # management, data sanitization, and sensitive data logging prevention.
8
+ #
9
+ # Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
10
+ # Validator: .claude/skills/n8n-security-testing/scripts/validate-config.json
11
+ #
12
+ # Coverage:
13
+ # - Credential exposure detection
14
+ # - OAuth token validation and handling
15
+ # - API key management and rotation
16
+ # - Sensitive data sanitization
17
+ # - Encrypted credential verification
18
+ # - Execution log security
19
+ #
20
+ # =============================================================================
21
+
22
+ skill: n8n-security-testing
23
+ version: 1.0.0
24
+ description: >
25
+ Comprehensive evaluation suite for n8n security testing skill.
26
+ Tests credential exposure prevention, OAuth flow validation, API key
27
+ management, data encryption, sanitization verification, and prevention
28
+ of sensitive data logging in n8n workflows.
29
+
30
+ # =============================================================================
31
+ # Multi-Model Configuration
32
+ # =============================================================================
33
+
34
+ models_to_test:
35
+ - claude-3.5-sonnet
36
+ - claude-3-haiku
37
+
38
+ # =============================================================================
39
+ # MCP Integration Configuration
40
+ # =============================================================================
41
+
42
+ mcp_integration:
43
+ enabled: true
44
+ namespace: skill-validation
45
+
46
+ query_patterns: true
47
+ track_outcomes: true
48
+ store_patterns: true
49
+ share_learning: true
50
+ update_quality_gate: true
51
+
52
+ target_agents:
53
+ - qe-learning-coordinator
54
+ - qe-queen-coordinator
55
+ - qe-security-scanner
56
+
57
+ # =============================================================================
58
+ # ReasoningBank Learning Configuration
59
+ # =============================================================================
60
+
61
+ learning:
62
+ store_success_patterns: true
63
+ store_failure_patterns: true
64
+ pattern_ttl_days: 90
65
+ min_confidence_to_store: 0.7
66
+ cross_model_comparison: true
67
+
68
+ # =============================================================================
69
+ # Result Format Configuration
70
+ # =============================================================================
71
+
72
+ result_format:
73
+ json_output: true
74
+ markdown_report: true
75
+ include_raw_output: false
76
+ include_timing: true
77
+ include_token_usage: true
78
+
79
+ # =============================================================================
80
+ # Environment Setup
81
+ # =============================================================================
82
+
83
+ setup:
84
+ required_tools:
85
+ - jq
86
+
87
+ environment_variables:
88
+ SECURITY_SCANNING: "true"
89
+ CREDENTIAL_DETECTION: "strict"
90
+
91
+ # =============================================================================
92
+ # TEST CASES
93
+ # =============================================================================
94
+
95
+ test_cases:
96
+ # ---------------------------------------------------------------------------
97
+ # CATEGORY: Credential Exposure Detection
98
+ # ---------------------------------------------------------------------------
99
+
100
+ - id: tc001_hardcoded_api_key_detection
101
+ description: "Detect hardcoded API keys in workflow JSON"
102
+ category: credentials
103
+ priority: critical
104
+
105
+ input:
106
+ workflow_json:
107
+ nodes:
108
+ - name: "HTTP Request"
109
+ parameters:
110
+ headers:
111
+ Authorization: "Bearer sk_live_51234567890abcdef"
112
+ url: "https://api.example.com/data"
113
+ scan_mode: strict
114
+ context:
115
+ check_headers: true
116
+ check_urls: true
117
+ check_parameters: true
118
+
119
+ expected_output:
120
+ must_contain:
121
+ - "credential"
122
+ - "exposed"
123
+ - "API key"
124
+ - "Bearer"
125
+ must_not_contain:
126
+ - "safe"
127
+ severity_classification: critical
128
+ finding_count:
129
+ min: 1
130
+
131
+ validation:
132
+ schema_check: true
133
+ keyword_match_threshold: 0.85
134
+ reasoning_quality_min: 0.8
135
+
136
+ timeout_ms: 30000
137
+
138
+ - id: tc002_password_in_workflow_detection
139
+ description: "Detect plaintext passwords in workflow nodes"
140
+ category: credentials
141
+ priority: critical
142
+
143
+ input:
144
+ workflow_json:
145
+ nodes:
146
+ - name: "Database"
147
+ type: "postgres"
148
+ parameters:
149
+ host: "db.example.com"
150
+ username: "admin"
151
+ password: "mySecretPassword123"
152
+ - name: "Email Service"
153
+ parameters:
154
+ auth_type: "basic"
155
+ username: "user@example.com"
156
+ password: "password456"
157
+ context:
158
+ database_types: ["postgres", "mysql", "mongodb"]
159
+
160
+ expected_output:
161
+ must_contain:
162
+ - "password"
163
+ - "plaintext"
164
+ - "credential"
165
+ - "exposed"
166
+ must_not_contain:
167
+ - "encrypted"
168
+ severity_classification: critical
169
+
170
+ validation:
171
+ schema_check: true
172
+ keyword_match_threshold: 0.85
173
+
174
+ # ---------------------------------------------------------------------------
175
+ # CATEGORY: OAuth and Token Handling
176
+ # ---------------------------------------------------------------------------
177
+
178
+ - id: tc003_oauth_token_validation
179
+ description: "Validate proper OAuth token handling"
180
+ category: oauth
181
+ priority: critical
182
+
183
+ input:
184
+ oauth_config:
185
+ - name: "Google OAuth"
186
+ has_token_storage: true
187
+ token_encrypted: true
188
+ token_refresh_enabled: true
189
+ token_expiry_checked: true
190
+ valid: true
191
+ - name: "GitHub OAuth"
192
+ has_token_storage: true
193
+ token_encrypted: true
194
+ token_refresh_enabled: false
195
+ token_expiry_checked: true
196
+ valid: true
197
+ context:
198
+ standard: OAuth2
199
+
200
+ expected_output:
201
+ must_contain:
202
+ - "OAuth"
203
+ - "token"
204
+ - "encrypted"
205
+ - "valid"
206
+ must_not_contain:
207
+ - "plaintext token"
208
+ severity_classification: info
209
+
210
+ validation:
211
+ schema_check: true
212
+ keyword_match_threshold: 0.8
213
+
214
+ - id: tc004_insecure_token_transmission
215
+ description: "Detect insecure token transmission methods"
216
+ category: oauth
217
+ priority: critical
218
+
219
+ input:
220
+ issues:
221
+ - node: "HTTP Request"
222
+ token_location: "query_parameter"
223
+ secure: false
224
+ issue: "tokens in URL are logged and cached"
225
+ - node: "API Call"
226
+ token_location: "request_body"
227
+ secure: true
228
+ issue: "none"
229
+ - node: "Legacy Service"
230
+ token_location: "custom_header"
231
+ protocol: "http"
232
+ secure: false
233
+ issue: "HTTP not HTTPS"
234
+ context:
235
+ requirement: "HTTPS only"
236
+
237
+ expected_output:
238
+ must_contain:
239
+ - "insecure"
240
+ - "transmission"
241
+ - "token"
242
+ - "HTTP"
243
+ must_not_contain:
244
+ - "secure"
245
+ severity_classification: critical
246
+
247
+ validation:
248
+ schema_check: true
249
+ keyword_match_threshold: 0.85
250
+
251
+ # ---------------------------------------------------------------------------
252
+ # CATEGORY: Credential Storage and Encryption
253
+ # ---------------------------------------------------------------------------
254
+
255
+ - id: tc005_credential_storage_verification
256
+ description: "Verify credentials stored with encryption"
257
+ category: encryption
258
+ priority: critical
259
+
260
+ input:
261
+ credentials:
262
+ - id: "slack_webhook"
263
+ storage_type: "encrypted"
264
+ encryption_algorithm: "AES-256"
265
+ key_rotation_policy: "90_days"
266
+ status: valid
267
+ - id: "database_password"
268
+ storage_type: "plaintext"
269
+ issue: "stored in plaintext"
270
+ status: invalid
271
+ - id: "api_key"
272
+ storage_type: "encrypted"
273
+ encryption_algorithm: "AES-256"
274
+ status: valid
275
+ context:
276
+ standard: industry_best_practices
277
+
278
+ expected_output:
279
+ must_contain:
280
+ - "encryption"
281
+ - "AES-256"
282
+ - "plaintext"
283
+ must_not_contain:
284
+ - "all secure"
285
+ severity_classification: critical
286
+
287
+ validation:
288
+ schema_check: true
289
+ keyword_match_threshold: 0.85
290
+
291
+ - id: tc006_key_rotation_policy
292
+ description: "Verify API key rotation policies are in place"
293
+ category: encryption
294
+ priority: high
295
+
296
+ input:
297
+ rotation_policies:
298
+ - credential: "api_key_prod"
299
+ rotation_days: 90
300
+ last_rotated: "2025-01-20"
301
+ overdue: false
302
+ status: compliant
303
+ - credential: "slack_token"
304
+ rotation_days: 180
305
+ last_rotated: "2024-08-15"
306
+ overdue: true
307
+ status: non_compliant
308
+ context:
309
+ requirement: "rotate every 90 days"
310
+
311
+ expected_output:
312
+ must_contain:
313
+ - "rotation"
314
+ - "policy"
315
+ - "overdue"
316
+ must_not_contain:
317
+ - "no rotation"
318
+ severity_classification: high
319
+
320
+ validation:
321
+ schema_check: true
322
+ keyword_match_threshold: 0.75
323
+
324
+ # ---------------------------------------------------------------------------
325
+ # CATEGORY: Data Sanitization and Logging
326
+ # ---------------------------------------------------------------------------
327
+
328
+ - id: tc007_sensitive_data_in_logs
329
+ description: "Detect sensitive data exposure in execution logs"
330
+ category: logging
331
+ priority: critical
332
+
333
+ input:
334
+ log_samples:
335
+ - message: "Executing HTTP call to /api/data with headers: Authorization: Bearer sk_live_123"
336
+ contains_sensitive: true
337
+ issue: "API key exposed in logs"
338
+ - message: "Database query executed on user@example.com"
339
+ contains_sensitive: true
340
+ issue: "Credential exposed in logs"
341
+ - message: "Workflow execution started for batch processing"
342
+ contains_sensitive: false
343
+ issue: "none"
344
+ context:
345
+ log_level: DEBUG
346
+
347
+ expected_output:
348
+ must_contain:
349
+ - "sensitive"
350
+ - "exposed"
351
+ - "logs"
352
+ - "credential"
353
+ must_not_contain:
354
+ - "no exposure"
355
+ severity_classification: critical
356
+ finding_count:
357
+ min: 2
358
+
359
+ validation:
360
+ schema_check: true
361
+ keyword_match_threshold: 0.85
362
+
363
+ - id: tc008_data_masking_in_output
364
+ description: "Verify sensitive fields are masked in output"
365
+ category: logging
366
+ priority: critical
367
+
368
+ input:
369
+ output_nodes:
370
+ - node: "Set User Data"
371
+ fields:
372
+ - name: email
373
+ value: "user@example.com"
374
+ should_mask: false
375
+ - name: ssn
376
+ value: "123-45-6789"
377
+ should_mask: true
378
+ status: masked
379
+ - name: password_hash
380
+ value: "bcrypt_hash_..."
381
+ should_mask: true
382
+ status: not_masked
383
+ context:
384
+ requirement: "mask PII in outputs"
385
+
386
+ expected_output:
387
+ must_contain:
388
+ - "mask"
389
+ - "PII"
390
+ - "masked"
391
+ must_not_contain:
392
+ - "ssn"
393
+ - "password"
394
+ severity_classification: high
395
+
396
+ validation:
397
+ schema_check: true
398
+ keyword_match_threshold: 0.8
399
+
400
+ # ---------------------------------------------------------------------------
401
+ # CATEGORY: Secure Configuration Validation
402
+ # ---------------------------------------------------------------------------
403
+
404
+ - id: tc009_https_enforcement
405
+ description: "Verify HTTPS is enforced for external APIs"
406
+ category: configuration
407
+ priority: critical
408
+
409
+ input:
410
+ api_calls:
411
+ - url: "https://api.example.com/data"
412
+ protocol: HTTPS
413
+ secure: true
414
+ - url: "http://legacy-service.local/api"
415
+ protocol: HTTP
416
+ secure: false
417
+ environment: production
418
+ context:
419
+ requirement: "HTTPS for production"
420
+
421
+ expected_output:
422
+ must_contain:
423
+ - "HTTPS"
424
+ - "insecure"
425
+ - "HTTP"
426
+ must_not_contain:
427
+ - "all HTTPS"
428
+ severity_classification: critical
429
+
430
+ validation:
431
+ schema_check: true
432
+ keyword_match_threshold: 0.8
433
+
434
+ - id: tc010_credential_scope_validation
435
+ description: "Validate credentials have minimum necessary scope"
436
+ category: configuration
437
+ priority: high
438
+
439
+ input:
440
+ credentials:
441
+ - name: "Google API"
442
+ permissions: ["calendar.read"]
443
+ required_permissions: ["calendar.read"]
444
+ status: correct_scope
445
+ - name: "GitHub Token"
446
+ permissions: ["repo", "admin:org_hook", "admin:repo_hook"]
447
+ required_permissions: ["repo"]
448
+ status: over_scoped
449
+ - name: "Stripe API"
450
+ permissions: ["charges.read"]
451
+ required_permissions: ["charges.read", "customers.read"]
452
+ status: under_scoped
453
+ context:
454
+ principle: "least_privilege"
455
+
456
+ expected_output:
457
+ must_contain:
458
+ - "scope"
459
+ - "over-scoped"
460
+ - "permissions"
461
+ must_not_contain:
462
+ - "all correct"
463
+ severity_classification: medium
464
+
465
+ validation:
466
+ schema_check: true
467
+ keyword_match_threshold: 0.75
468
+
469
+ # =============================================================================
470
+ # SUCCESS CRITERIA
471
+ # =============================================================================
472
+
473
+ success_criteria:
474
+ pass_rate: 0.85
475
+ critical_pass_rate: 1.0
476
+ avg_reasoning_quality: 0.75
477
+ max_execution_time_ms: 300000
478
+ cross_model_variance: 0.15
479
+
480
+ # =============================================================================
481
+ # METADATA
482
+ # =============================================================================
483
+
484
+ metadata:
485
+ author: "n8n-integration-test"
486
+ created: "2026-02-02"
487
+ last_updated: "2026-02-02"
488
+ coverage_target: >
489
+ n8n security testing including credential exposure detection (hardcoded
490
+ API keys, passwords), OAuth token validation, credential encryption
491
+ verification, key rotation policies, sensitive data masking in logs,
492
+ HTTPS enforcement, and credential scope validation per least-privilege
493
+ principle. 10 test cases with 85% pass rate and 100% critical pass rate.