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,450 @@
1
+ # =============================================================================
2
+ # AQE Skill Evaluation Test Suite: n8n Expression Testing v1.0.0
3
+ # =============================================================================
4
+ #
5
+ # Comprehensive evaluation suite for n8n expression testing skill.
6
+ # Tests expression syntax validation, context-aware testing, null-safety,
7
+ # type safety, performance optimization, and security vulnerability detection.
8
+ #
9
+ # Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
10
+ # Validator: .claude/skills/n8n-expression-testing/scripts/validate-config.json
11
+ #
12
+ # Coverage:
13
+ # - JavaScript expression syntax validation
14
+ # - n8n context variable testing ($json, $node)
15
+ # - Null-safe access patterns (?., ??)
16
+ # - Type safety validation
17
+ # - Performance bottleneck detection
18
+ # - Security vulnerability scanning
19
+ #
20
+ # =============================================================================
21
+
22
+ skill: n8n-expression-testing
23
+ version: 1.0.0
24
+ description: >
25
+ Comprehensive evaluation suite for n8n expression testing skill.
26
+ Tests JavaScript expression validation in n8n context, context-aware
27
+ variable resolution, null-safety patterns, type handling, performance
28
+ optimization, and detection of security vulnerabilities in expressions.
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
+ - n8n-expression-validator
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
+ N8N_EXPRESSION_VALIDATION: "true"
89
+ CONTEXT_VALIDATION: "strict"
90
+
91
+ # =============================================================================
92
+ # TEST CASES
93
+ # =============================================================================
94
+
95
+ test_cases:
96
+ # ---------------------------------------------------------------------------
97
+ # CATEGORY: Expression Syntax Validation
98
+ # ---------------------------------------------------------------------------
99
+
100
+ - id: tc001_valid_expression_syntax
101
+ description: "Validate correct JavaScript expression syntax"
102
+ category: syntax
103
+ priority: critical
104
+
105
+ input:
106
+ expressions:
107
+ - code: "$json.user.name"
108
+ syntax_valid: true
109
+ - code: "$json.items.map(item => item.price * 1.1)"
110
+ syntax_valid: true
111
+ - code: "$node.HTTP Request.json.data[0].id"
112
+ syntax_valid: true
113
+ context:
114
+ language: javascript
115
+ engine: n8n
116
+
117
+ expected_output:
118
+ must_contain:
119
+ - "syntax"
120
+ - "valid"
121
+ - "correct"
122
+ must_not_contain:
123
+ - "syntax error"
124
+ severity_classification: info
125
+ finding_count:
126
+ max: 1
127
+
128
+ validation:
129
+ schema_check: true
130
+ keyword_match_threshold: 0.8
131
+ reasoning_quality_min: 0.75
132
+
133
+ timeout_ms: 30000
134
+
135
+ - id: tc002_invalid_expression_detection
136
+ description: "Detect syntax errors in n8n expressions"
137
+ category: syntax
138
+ priority: critical
139
+
140
+ input:
141
+ expressions:
142
+ - code: "$json.user.name.map()"
143
+ has_error: true
144
+ error_type: "string_not_array"
145
+ - code: "$json[invalid bracket"
146
+ has_error: true
147
+ error_type: "syntax_error"
148
+ - code: "$node.Missing.output"
149
+ has_error: true
150
+ error_type: "undefined_reference"
151
+ context:
152
+ language: javascript
153
+
154
+ expected_output:
155
+ must_contain:
156
+ - "error"
157
+ - "detected"
158
+ - "syntax"
159
+ must_not_contain:
160
+ - "valid"
161
+ severity_classification: high
162
+
163
+ validation:
164
+ schema_check: true
165
+ keyword_match_threshold: 0.8
166
+
167
+ # ---------------------------------------------------------------------------
168
+ # CATEGORY: Context Variable Resolution
169
+ # ---------------------------------------------------------------------------
170
+
171
+ - id: tc003_context_variable_json
172
+ description: "Validate $json context variable usage"
173
+ category: context
174
+ priority: critical
175
+
176
+ input:
177
+ expression: "$json.user.email"
178
+ context:
179
+ $json:
180
+ user:
181
+ email: "user@example.com"
182
+ name: "John Doe"
183
+ expected_result: "user@example.com"
184
+
185
+ expected_output:
186
+ must_contain:
187
+ - "context"
188
+ - "$json"
189
+ - "resolved"
190
+ must_not_contain:
191
+ - "undefined"
192
+ severity_classification: info
193
+
194
+ validation:
195
+ schema_check: true
196
+ keyword_match_threshold: 0.8
197
+
198
+ - id: tc004_context_variable_node_reference
199
+ description: "Validate $node reference to other nodes"
200
+ category: context
201
+ priority: critical
202
+
203
+ input:
204
+ expression: "$node['HTTP Request'].json.status"
205
+ references:
206
+ - node_name: "HTTP Request"
207
+ output_available: true
208
+ has_json: true
209
+ context:
210
+ current_node: "Transform"
211
+ upstream_nodes: ["HTTP Request"]
212
+
213
+ expected_output:
214
+ must_contain:
215
+ - "$node"
216
+ - "reference"
217
+ - "valid"
218
+ must_not_contain:
219
+ - "not found"
220
+ severity_classification: info
221
+
222
+ validation:
223
+ schema_check: true
224
+ keyword_match_threshold: 0.8
225
+
226
+ # ---------------------------------------------------------------------------
227
+ # CATEGORY: Null-Safety and Type Safety
228
+ # ---------------------------------------------------------------------------
229
+
230
+ - id: tc005_null_safe_access_pattern
231
+ description: "Validate null-safe optional chaining (?.) usage"
232
+ category: null_safety
233
+ priority: critical
234
+
235
+ input:
236
+ expressions:
237
+ - code: "$json.user?.name"
238
+ pattern: "optional_chaining"
239
+ safe: true
240
+ - code: "$json.user?.profile?.avatar?.url"
241
+ pattern: "chained_optional"
242
+ safe: true
243
+ context:
244
+ validation_mode: strict
245
+
246
+ expected_output:
247
+ must_contain:
248
+ - "null-safe"
249
+ - "optional chaining"
250
+ - "safe"
251
+ must_not_contain:
252
+ - "unsafe"
253
+ severity_classification: info
254
+
255
+ validation:
256
+ schema_check: true
257
+ keyword_match_threshold: 0.8
258
+
259
+ - id: tc006_unsafe_null_access_detection
260
+ description: "Detect unsafe property access that could throw"
261
+ category: null_safety
262
+ priority: critical
263
+
264
+ input:
265
+ expressions:
266
+ - code: "$json.user.profile.avatar"
267
+ pattern: "unsafe_chaining"
268
+ risk: "throws if user/profile/avatar undefined"
269
+ context:
270
+ validation_mode: strict
271
+
272
+ expected_output:
273
+ must_contain:
274
+ - "unsafe"
275
+ - "could throw"
276
+ - "null"
277
+ must_not_contain:
278
+ - "safe"
279
+ severity_classification: high
280
+
281
+ validation:
282
+ schema_check: true
283
+ keyword_match_threshold: 0.8
284
+
285
+ - id: tc007_type_handling_validation
286
+ description: "Validate type conversions in expressions"
287
+ category: type_safety
288
+ priority: high
289
+
290
+ input:
291
+ expressions:
292
+ - code: "$json.price * 1.1"
293
+ operands: ["number", "number"]
294
+ result_type: "number"
295
+ valid: true
296
+ - code: "$json.name + ' approved'"
297
+ operands: ["string", "string"]
298
+ result_type: "string"
299
+ valid: true
300
+ - code: "$json.items.length"
301
+ operands: ["array"]
302
+ result_type: "number"
303
+ valid: true
304
+ context:
305
+ type_checking: enabled
306
+
307
+ expected_output:
308
+ must_contain:
309
+ - "type"
310
+ - "valid"
311
+ - "conversion"
312
+ must_not_contain:
313
+ - "type error"
314
+ severity_classification: info
315
+
316
+ validation:
317
+ schema_check: true
318
+ keyword_match_threshold: 0.75
319
+
320
+ # ---------------------------------------------------------------------------
321
+ # CATEGORY: Performance Optimization
322
+ # ---------------------------------------------------------------------------
323
+
324
+ - id: tc008_performance_bottleneck_detection
325
+ description: "Detect performance issues in expressions"
326
+ category: performance
327
+ priority: high
328
+
329
+ input:
330
+ expressions:
331
+ - code: "$json.items.map(x => x).filter(x => x).map(x => x.price).reduce((a,b) => a+b, 0)"
332
+ issue: "multiple chained array operations"
333
+ optimizable: true
334
+ - code: "JSON.parse(JSON.stringify($json))"
335
+ issue: "unnecessary deep clone"
336
+ optimizable: true
337
+ context:
338
+ optimization_check: enabled
339
+
340
+ expected_output:
341
+ must_contain:
342
+ - "performance"
343
+ - "optimize"
344
+ - "bottleneck"
345
+ must_not_contain:
346
+ - "efficient"
347
+ severity_classification: medium
348
+
349
+ validation:
350
+ schema_check: true
351
+ keyword_match_threshold: 0.75
352
+
353
+ # ---------------------------------------------------------------------------
354
+ # CATEGORY: Common Pitfalls
355
+ # ---------------------------------------------------------------------------
356
+
357
+ - id: tc009_common_pitfall_detection
358
+ description: "Detect common n8n expression pitfalls"
359
+ category: pitfalls
360
+ priority: high
361
+
362
+ input:
363
+ pitfalls:
364
+ - code: "return $json"
365
+ issue: "n8n expressions don't use 'return', they evaluate to value"
366
+ severity: error
367
+ - code: "$json[0]"
368
+ issue: "$json is object not array, should use $json.items[0] or similar"
369
+ severity: warning
370
+ - code: "$env.PASSWORD"
371
+ issue: "avoid logging sensitive env vars"
372
+ severity: warning
373
+ context:
374
+ experience_level: beginner
375
+
376
+ expected_output:
377
+ must_contain:
378
+ - "pitfall"
379
+ - "common"
380
+ - "issue"
381
+ must_not_contain:
382
+ - "no issues"
383
+ severity_classification: medium
384
+
385
+ validation:
386
+ schema_check: true
387
+ keyword_match_threshold: 0.75
388
+
389
+ # ---------------------------------------------------------------------------
390
+ # CATEGORY: Security Vulnerability Detection
391
+ # ---------------------------------------------------------------------------
392
+
393
+ - id: tc010_security_vulnerability_scanning
394
+ description: "Detect security vulnerabilities in expressions"
395
+ category: security
396
+ priority: critical
397
+
398
+ input:
399
+ expressions:
400
+ - code: "eval($json.userCode)"
401
+ vulnerability: "eval execution"
402
+ severity: critical
403
+ - code: "new Function($json.code)()"
404
+ vulnerability: "dynamic function execution"
405
+ severity: critical
406
+ - code: "require('os').system(cmd)"
407
+ vulnerability: "system command execution"
408
+ severity: critical
409
+ context:
410
+ security_scanning: enabled
411
+
412
+ expected_output:
413
+ must_contain:
414
+ - "vulnerability"
415
+ - "security"
416
+ - "eval"
417
+ - "critical"
418
+ must_not_contain:
419
+ - "safe"
420
+ severity_classification: critical
421
+
422
+ validation:
423
+ schema_check: true
424
+ keyword_match_threshold: 0.85
425
+
426
+ # =============================================================================
427
+ # SUCCESS CRITERIA
428
+ # =============================================================================
429
+
430
+ success_criteria:
431
+ pass_rate: 0.85
432
+ critical_pass_rate: 1.0
433
+ avg_reasoning_quality: 0.75
434
+ max_execution_time_ms: 300000
435
+ cross_model_variance: 0.15
436
+
437
+ # =============================================================================
438
+ # METADATA
439
+ # =============================================================================
440
+
441
+ metadata:
442
+ author: "n8n-expression-validator"
443
+ created: "2026-02-02"
444
+ last_updated: "2026-02-02"
445
+ coverage_target: >
446
+ n8n expression testing including syntax validation, context variable
447
+ resolution ($json, $node), null-safety patterns (?., ??), type safety,
448
+ performance optimization, common pitfalls detection, and security
449
+ vulnerability scanning (eval, Function, require). 10 test cases with
450
+ 85% pass rate and 100% critical pass rate.