agentic-qe 3.5.4 → 3.6.0

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 (247) hide show
  1. package/.claude/agents/v3/README.md +1 -1
  2. package/.claude/agents/v3/qe-message-broker-tester.md +380 -0
  3. package/.claude/agents/v3/qe-middleware-validator.md +423 -0
  4. package/.claude/agents/v3/qe-odata-contract-tester.md +484 -0
  5. package/.claude/agents/v3/qe-pentest-validator.md +359 -0
  6. package/.claude/agents/v3/qe-qx-partner.md +85 -3
  7. package/.claude/agents/v3/qe-sap-idoc-tester.md +407 -0
  8. package/.claude/agents/v3/qe-sap-rfc-tester.md +357 -0
  9. package/.claude/agents/v3/qe-soap-tester.md +340 -0
  10. package/.claude/agents/v3/qe-sod-analyzer.md +528 -0
  11. package/.claude/agents/v3/templates/qx-report-template.html +437 -0
  12. package/.claude/skills/debug-loop/SKILL.md +61 -0
  13. package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -0
  14. package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -0
  15. package/.claude/skills/observability-testing-patterns/SKILL.md +930 -0
  16. package/.claude/skills/pentest-validation/SKILL.md +268 -0
  17. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -0
  18. package/.claude/skills/pentest-validation/schemas/output.json +281 -0
  19. package/.claude/skills/pentest-validation/scripts/validate.sh +402 -0
  20. package/.claude/skills/pr-review/SKILL.md +61 -0
  21. package/.claude/skills/qcsd-cicd-swarm/SKILL.md +315 -13
  22. package/.claude/skills/qcsd-development-swarm/SKILL.md +331 -16
  23. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +258 -9
  24. package/.claude/skills/qcsd-refinement-swarm/SKILL.md +344 -22
  25. package/.claude/skills/release/SKILL.md +333 -0
  26. package/.claude/skills/skills-manifest.json +5 -4
  27. package/.claude/skills/wms-testing-patterns/SKILL.md +949 -0
  28. package/README.md +30 -21
  29. package/package.json +2 -2
  30. package/v3/CHANGELOG.md +57 -0
  31. package/v3/README.md +23 -20
  32. package/v3/assets/agents/v3/qe-message-broker-tester.md +380 -0
  33. package/v3/assets/agents/v3/qe-middleware-validator.md +423 -0
  34. package/v3/assets/agents/v3/qe-odata-contract-tester.md +484 -0
  35. package/v3/assets/agents/v3/qe-pentest-validator.md +359 -0
  36. package/v3/assets/agents/v3/qe-qx-partner.md +90 -12
  37. package/v3/assets/agents/v3/qe-sap-idoc-tester.md +407 -0
  38. package/v3/assets/agents/v3/qe-sap-rfc-tester.md +357 -0
  39. package/v3/assets/agents/v3/qe-soap-tester.md +340 -0
  40. package/v3/assets/agents/v3/qe-sod-analyzer.md +528 -0
  41. package/v3/assets/agents/v3/templates/qx-report-template.html +437 -0
  42. package/v3/assets/skills/debug-loop/SKILL.md +61 -0
  43. package/v3/assets/skills/enterprise-integration-testing/SKILL.md +735 -0
  44. package/v3/assets/skills/middleware-testing-patterns/SKILL.md +798 -0
  45. package/v3/assets/skills/observability-testing-patterns/SKILL.md +930 -0
  46. package/v3/assets/skills/pentest-validation/SKILL.md +268 -0
  47. package/v3/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -0
  48. package/v3/assets/skills/pentest-validation/schemas/output.json +281 -0
  49. package/v3/assets/skills/pentest-validation/scripts/validate.sh +402 -0
  50. package/v3/assets/skills/pr-review/SKILL.md +61 -0
  51. package/v3/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -0
  52. package/v3/assets/skills/qcsd-development-swarm/SKILL.md +2154 -0
  53. package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +2008 -1753
  54. package/v3/assets/skills/qcsd-refinement-swarm/SKILL.md +2398 -0
  55. package/v3/assets/skills/security-visual-testing/SKILL.md +223 -0
  56. package/v3/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -0
  57. package/v3/assets/skills/security-visual-testing/schemas/output.json +486 -0
  58. package/v3/assets/skills/security-visual-testing/scripts/validate.sh +748 -0
  59. package/v3/assets/skills/sfdipot-product-factors/SKILL.md +239 -0
  60. package/v3/assets/skills/test-idea-rewriting/SKILL.md +229 -0
  61. package/v3/assets/skills/wms-testing-patterns/SKILL.md +949 -0
  62. package/v3/dist/cli/bundle.js +10816 -4625
  63. package/v3/dist/cli/commands/coverage.d.ts.map +1 -1
  64. package/v3/dist/cli/commands/coverage.js +29 -0
  65. package/v3/dist/cli/commands/coverage.js.map +1 -1
  66. package/v3/dist/cli/commands/learning.d.ts.map +1 -1
  67. package/v3/dist/cli/commands/learning.js +9 -0
  68. package/v3/dist/cli/commands/learning.js.map +1 -1
  69. package/v3/dist/cli/commands/token-usage.d.ts.map +1 -1
  70. package/v3/dist/cli/commands/token-usage.js +6 -2
  71. package/v3/dist/cli/commands/token-usage.js.map +1 -1
  72. package/v3/dist/coordination/protocols/learning-consolidation.d.ts.map +1 -1
  73. package/v3/dist/coordination/protocols/learning-consolidation.js +1 -0
  74. package/v3/dist/coordination/protocols/learning-consolidation.js.map +1 -1
  75. package/v3/dist/domains/coverage-analysis/coordinator.d.ts +8 -0
  76. package/v3/dist/domains/coverage-analysis/coordinator.d.ts.map +1 -1
  77. package/v3/dist/domains/coverage-analysis/coordinator.js +67 -0
  78. package/v3/dist/domains/coverage-analysis/coordinator.js.map +1 -1
  79. package/v3/dist/domains/coverage-analysis/interfaces.d.ts +33 -0
  80. package/v3/dist/domains/coverage-analysis/interfaces.d.ts.map +1 -1
  81. package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
  82. package/v3/dist/domains/coverage-analysis/plugin.js +17 -0
  83. package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
  84. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.d.ts +125 -0
  85. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.d.ts.map +1 -0
  86. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +317 -0
  87. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js.map +1 -0
  88. package/v3/dist/domains/coverage-analysis/services/index.d.ts +1 -0
  89. package/v3/dist/domains/coverage-analysis/services/index.d.ts.map +1 -1
  90. package/v3/dist/domains/coverage-analysis/services/index.js +4 -0
  91. package/v3/dist/domains/coverage-analysis/services/index.js.map +1 -1
  92. package/v3/dist/domains/enterprise-integration/coordinator.d.ts +91 -0
  93. package/v3/dist/domains/enterprise-integration/coordinator.d.ts.map +1 -0
  94. package/v3/dist/domains/enterprise-integration/coordinator.js +672 -0
  95. package/v3/dist/domains/enterprise-integration/coordinator.js.map +1 -0
  96. package/v3/dist/domains/enterprise-integration/index.d.ts +14 -0
  97. package/v3/dist/domains/enterprise-integration/index.d.ts.map +1 -0
  98. package/v3/dist/domains/enterprise-integration/index.js +18 -0
  99. package/v3/dist/domains/enterprise-integration/index.js.map +1 -0
  100. package/v3/dist/domains/enterprise-integration/interfaces.d.ts +376 -0
  101. package/v3/dist/domains/enterprise-integration/interfaces.d.ts.map +1 -0
  102. package/v3/dist/domains/enterprise-integration/interfaces.js +11 -0
  103. package/v3/dist/domains/enterprise-integration/interfaces.js.map +1 -0
  104. package/v3/dist/domains/enterprise-integration/plugin.d.ts +88 -0
  105. package/v3/dist/domains/enterprise-integration/plugin.d.ts.map +1 -0
  106. package/v3/dist/domains/enterprise-integration/plugin.js +515 -0
  107. package/v3/dist/domains/enterprise-integration/plugin.js.map +1 -0
  108. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.d.ts +67 -0
  109. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.d.ts.map +1 -0
  110. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.js +670 -0
  111. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.js.map +1 -0
  112. package/v3/dist/domains/enterprise-integration/services/index.d.ts +13 -0
  113. package/v3/dist/domains/enterprise-integration/services/index.d.ts.map +1 -0
  114. package/v3/dist/domains/enterprise-integration/services/index.js +13 -0
  115. package/v3/dist/domains/enterprise-integration/services/index.js.map +1 -0
  116. package/v3/dist/domains/enterprise-integration/services/message-broker-service.d.ts +88 -0
  117. package/v3/dist/domains/enterprise-integration/services/message-broker-service.d.ts.map +1 -0
  118. package/v3/dist/domains/enterprise-integration/services/message-broker-service.js +560 -0
  119. package/v3/dist/domains/enterprise-integration/services/message-broker-service.js.map +1 -0
  120. package/v3/dist/domains/enterprise-integration/services/odata-service.d.ts +75 -0
  121. package/v3/dist/domains/enterprise-integration/services/odata-service.d.ts.map +1 -0
  122. package/v3/dist/domains/enterprise-integration/services/odata-service.js +618 -0
  123. package/v3/dist/domains/enterprise-integration/services/odata-service.js.map +1 -0
  124. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.d.ts +73 -0
  125. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.d.ts.map +1 -0
  126. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.js +513 -0
  127. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.js.map +1 -0
  128. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.d.ts +84 -0
  129. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.d.ts.map +1 -0
  130. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js +639 -0
  131. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js.map +1 -0
  132. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.d.ts +90 -0
  133. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.d.ts.map +1 -0
  134. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.js +389 -0
  135. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.js.map +1 -0
  136. package/v3/dist/domains/index.d.ts +1 -0
  137. package/v3/dist/domains/index.d.ts.map +1 -1
  138. package/v3/dist/domains/index.js +1 -0
  139. package/v3/dist/domains/index.js.map +1 -1
  140. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  141. package/v3/dist/domains/learning-optimization/coordinator.js +1 -0
  142. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  143. package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts.map +1 -1
  144. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js +1 -0
  145. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js.map +1 -1
  146. package/v3/dist/domains/learning-optimization/services/transfer-specialist.d.ts.map +1 -1
  147. package/v3/dist/domains/learning-optimization/services/transfer-specialist.js +1 -0
  148. package/v3/dist/domains/learning-optimization/services/transfer-specialist.js.map +1 -1
  149. package/v3/dist/domains/test-execution/coordinator.d.ts.map +1 -1
  150. package/v3/dist/domains/test-execution/coordinator.js +34 -0
  151. package/v3/dist/domains/test-execution/coordinator.js.map +1 -1
  152. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts +7 -1
  153. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts.map +1 -1
  154. package/v3/dist/domains/test-generation/services/test-data-generator.js +116 -98
  155. package/v3/dist/domains/test-generation/services/test-data-generator.js.map +1 -1
  156. package/v3/dist/init/agents-installer.d.ts +4 -0
  157. package/v3/dist/init/agents-installer.d.ts.map +1 -1
  158. package/v3/dist/init/agents-installer.js +32 -3
  159. package/v3/dist/init/agents-installer.js.map +1 -1
  160. package/v3/dist/init/skills-installer.d.ts.map +1 -1
  161. package/v3/dist/init/skills-installer.js +4 -1
  162. package/v3/dist/init/skills-installer.js.map +1 -1
  163. package/v3/dist/init/types.d.ts.map +1 -1
  164. package/v3/dist/init/types.js +1 -0
  165. package/v3/dist/init/types.js.map +1 -1
  166. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.d.ts +16 -0
  167. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.d.ts.map +1 -1
  168. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.js +41 -0
  169. package/v3/dist/integrations/agentic-flow/model-router/budget-enforcer.js.map +1 -1
  170. package/v3/dist/integrations/ruvector/provider.d.ts.map +1 -1
  171. package/v3/dist/integrations/ruvector/provider.js +1 -0
  172. package/v3/dist/integrations/ruvector/provider.js.map +1 -1
  173. package/v3/dist/kernel/anti-drift-middleware.d.ts +160 -0
  174. package/v3/dist/kernel/anti-drift-middleware.d.ts.map +1 -0
  175. package/v3/dist/kernel/anti-drift-middleware.js +376 -0
  176. package/v3/dist/kernel/anti-drift-middleware.js.map +1 -0
  177. package/v3/dist/kernel/event-bus.d.ts +29 -1
  178. package/v3/dist/kernel/event-bus.d.ts.map +1 -1
  179. package/v3/dist/kernel/event-bus.js +69 -6
  180. package/v3/dist/kernel/event-bus.js.map +1 -1
  181. package/v3/dist/kernel/interfaces.d.ts +35 -0
  182. package/v3/dist/kernel/interfaces.d.ts.map +1 -1
  183. package/v3/dist/kernel/kernel.d.ts.map +1 -1
  184. package/v3/dist/kernel/kernel.js +14 -17
  185. package/v3/dist/kernel/kernel.js.map +1 -1
  186. package/v3/dist/kernel/unified-memory.d.ts +5 -0
  187. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  188. package/v3/dist/kernel/unified-memory.js +28 -0
  189. package/v3/dist/kernel/unified-memory.js.map +1 -1
  190. package/v3/dist/learning/asymmetric-learning.d.ts +133 -0
  191. package/v3/dist/learning/asymmetric-learning.d.ts.map +1 -0
  192. package/v3/dist/learning/asymmetric-learning.js +170 -0
  193. package/v3/dist/learning/asymmetric-learning.js.map +1 -0
  194. package/v3/dist/learning/pattern-lifecycle.d.ts +26 -0
  195. package/v3/dist/learning/pattern-lifecycle.d.ts.map +1 -1
  196. package/v3/dist/learning/pattern-lifecycle.js +83 -0
  197. package/v3/dist/learning/pattern-lifecycle.js.map +1 -1
  198. package/v3/dist/learning/qe-patterns.d.ts +8 -0
  199. package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
  200. package/v3/dist/learning/qe-patterns.js.map +1 -1
  201. package/v3/dist/learning/real-qe-reasoning-bank.d.ts +28 -0
  202. package/v3/dist/learning/real-qe-reasoning-bank.d.ts.map +1 -1
  203. package/v3/dist/learning/real-qe-reasoning-bank.js +72 -4
  204. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  205. package/v3/dist/learning/token-tracker.d.ts +22 -0
  206. package/v3/dist/learning/token-tracker.d.ts.map +1 -1
  207. package/v3/dist/learning/token-tracker.js +67 -0
  208. package/v3/dist/learning/token-tracker.js.map +1 -1
  209. package/v3/dist/mcp/bundle.js +11099 -4879
  210. package/v3/dist/mcp/tool-registry.d.ts.map +1 -1
  211. package/v3/dist/mcp/tool-registry.js +4 -0
  212. package/v3/dist/mcp/tool-registry.js.map +1 -1
  213. package/v3/dist/mcp/tools/analysis/token-usage.d.ts +1 -1
  214. package/v3/dist/mcp/tools/analysis/token-usage.d.ts.map +1 -1
  215. package/v3/dist/mcp/tools/analysis/token-usage.js +23 -3
  216. package/v3/dist/mcp/tools/analysis/token-usage.js.map +1 -1
  217. package/v3/dist/mcp/tools/base.d.ts.map +1 -1
  218. package/v3/dist/mcp/tools/base.js +1 -15
  219. package/v3/dist/mcp/tools/base.js.map +1 -1
  220. package/v3/dist/mcp/tools/coverage-analysis/index.d.ts +7 -0
  221. package/v3/dist/mcp/tools/coverage-analysis/index.d.ts.map +1 -1
  222. package/v3/dist/mcp/tools/coverage-analysis/index.js +30 -0
  223. package/v3/dist/mcp/tools/coverage-analysis/index.js.map +1 -1
  224. package/v3/dist/optimization/token-optimizer-service.d.ts +7 -0
  225. package/v3/dist/optimization/token-optimizer-service.d.ts.map +1 -1
  226. package/v3/dist/optimization/token-optimizer-service.js +10 -1
  227. package/v3/dist/optimization/token-optimizer-service.js.map +1 -1
  228. package/v3/dist/shared/types/index.d.ts +20 -1
  229. package/v3/dist/shared/types/index.d.ts.map +1 -1
  230. package/v3/dist/shared/types/index.js +1 -0
  231. package/v3/dist/shared/types/index.js.map +1 -1
  232. package/v3/dist/strange-loop/healing-controller.d.ts.map +1 -1
  233. package/v3/dist/strange-loop/healing-controller.js +12 -0
  234. package/v3/dist/strange-loop/healing-controller.js.map +1 -1
  235. package/v3/dist/strange-loop/strange-loop.d.ts +14 -0
  236. package/v3/dist/strange-loop/strange-loop.d.ts.map +1 -1
  237. package/v3/dist/strange-loop/strange-loop.js +24 -0
  238. package/v3/dist/strange-loop/strange-loop.js.map +1 -1
  239. package/v3/dist/strange-loop/types.d.ts +2 -2
  240. package/v3/dist/strange-loop/types.d.ts.map +1 -1
  241. package/v3/dist/strange-loop/types.js.map +1 -1
  242. package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -1
  243. package/v3/dist/sync/claude-flow-bridge.js +3 -24
  244. package/v3/dist/sync/claude-flow-bridge.js.map +1 -1
  245. package/v3/package.json +12 -9
  246. /package/{v3/assets/skills/sfdipot-product-factors/skill.md → .claude/skills/sfdipot-product-factors/SKILL.md} +0 -0
  247. /package/{v3/assets/skills/test-idea-rewriting/skill.md → .claude/skills/test-idea-rewriting/SKILL.md} +0 -0
@@ -15,15 +15,17 @@ domains:
15
15
  agents: [qe-contract-validator]
16
16
  - domain: code-intelligence
17
17
  agents: [qe-impact-analyzer, qe-dependency-mapper]
18
+ - domain: enterprise-integration
19
+ agents: [qe-middleware-validator, qe-odata-contract-tester, qe-sod-analyzer]
18
20
  transformation:
19
21
  - domain: test-generation
20
22
  agents: [qe-test-idea-rewriter]
21
23
  # Agent Inventory
22
24
  agents:
23
25
  core: [qe-product-factors-assessor, qe-bdd-generator, qe-requirements-validator]
24
- conditional: [qe-contract-validator, qe-impact-analyzer, qe-dependency-mapper]
26
+ conditional: [qe-contract-validator, qe-impact-analyzer, qe-dependency-mapper, qe-middleware-validator, qe-odata-contract-tester, qe-sod-analyzer]
25
27
  transformation: [qe-test-idea-rewriter]
26
- total: 7
28
+ total: 10
27
29
  sub_agents: 0
28
30
  skills: [context-driven-testing, testability-scoring, risk-based-testing]
29
31
  # Execution Models (Task Tool is PRIMARY)
@@ -61,10 +63,10 @@ this?" using SFDIPOT product factors, BDD scenarios, and INVEST validation.
61
63
  | Dimension | Ideation Swarm | Refinement Swarm |
62
64
  |-----------|---------------|------------------|
63
65
  | Framework | HTSM v6.3 (10 categories) | SFDIPOT (7 factors, 37 subcategories) |
64
- | Agents | 6 (3 core + 3 conditional) | 7 (3 core + 3 conditional + 1 transformation) |
66
+ | Agents | 9 (3 core + 6 conditional) | 10 (3 core + 6 conditional + 1 transformation) |
65
67
  | Core Output | Quality Criteria HTML report | BDD Gherkin scenarios |
66
68
  | Decision | GO / CONDITIONAL / NO-GO | READY / CONDITIONAL / NOT-READY |
67
- | Flags | HAS_UI, HAS_SECURITY, HAS_UX | HAS_API, HAS_REFACTORING, HAS_DEPENDENCIES, HAS_SECURITY |
69
+ | Flags | HAS_UI, HAS_SECURITY, HAS_UX, HAS_MIDDLEWARE, HAS_SAP_INTEGRATION, HAS_AUTHORIZATION | HAS_API, HAS_REFACTORING, HAS_DEPENDENCIES, HAS_SECURITY, HAS_MIDDLEWARE, HAS_SAP_INTEGRATION, HAS_AUTHORIZATION |
68
70
  | Phase | PI Planning / Sprint Planning | Sprint Refinement |
69
71
  | Final Step | Report generation | Test idea rewriter transformation |
70
72
 
@@ -105,7 +107,7 @@ this?" using SFDIPOT product factors, BDD scenarios, and INVEST validation.
105
107
 
106
108
  Scan the story content and SET these flags. Do not skip any flag.
107
109
 
108
- ### Flag Detection (Check ALL FOUR)
110
+ ### Flag Detection (Check ALL SEVEN)
109
111
 
110
112
  ```
111
113
  HAS_API = FALSE
@@ -127,6 +129,19 @@ HAS_SECURITY = FALSE
127
129
  Set TRUE if story contains ANY of: auth, security, credential, token,
128
130
  encrypt, PII, compliance, password, login, session, OAuth, JWT,
129
131
  permission, role, access control, RBAC, sensitive, private
132
+
133
+ HAS_MIDDLEWARE = FALSE
134
+ Set TRUE if story contains ANY of: middleware, ESB, message broker, MQ,
135
+ Kafka, RabbitMQ, integration bus, API gateway, message queue, pub/sub
136
+
137
+ HAS_SAP_INTEGRATION = FALSE
138
+ Set TRUE if story contains ANY of: SAP, RFC, BAPI, IDoc, OData,
139
+ S/4HANA, EWM, ECC, ABAP, CDS view, Fiori
140
+
141
+ HAS_AUTHORIZATION = FALSE
142
+ Set TRUE if story contains ANY of: SoD, segregation of duties,
143
+ role conflict, authorization object, T-code, user role,
144
+ access control matrix, GRC
130
145
  ```
131
146
 
132
147
  ### Validation Checkpoint
@@ -135,7 +150,7 @@ Before proceeding to Phase 2, confirm:
135
150
 
136
151
  ```
137
152
  +-- I have read the entire story content
138
- +-- I have evaluated ALL FOUR flags
153
+ +-- I have evaluated ALL SEVEN flags
139
154
  +-- I have recorded which flags are TRUE
140
155
  +-- I understand which conditional agents will be needed
141
156
  ```
@@ -163,6 +178,15 @@ You MUST output flag detection results before proceeding:
163
178
  | HAS_SECURITY: [TRUE/FALSE] |
164
179
  | Evidence: [what triggered it - specific patterns] |
165
180
  | |
181
+ | HAS_MIDDLEWARE: [TRUE/FALSE] |
182
+ | Evidence: [what triggered it - specific] |
183
+ | |
184
+ | HAS_SAP_INTEGRATION: [TRUE/FALSE] |
185
+ | Evidence: [what triggered it - specific] |
186
+ | |
187
+ | HAS_AUTHORIZATION: [TRUE/FALSE] |
188
+ | Evidence: [what triggered it - specific] |
189
+ | |
166
190
  | EXPECTED AGENTS: |
167
191
  | - Core: 3 (always) |
168
192
  | - Conditional: [count based on TRUE flags] |
@@ -782,9 +806,12 @@ Output extracted metrics:
782
806
  +-------------------------------------------------------------+
783
807
  | IF A FLAG IS TRUE, YOU MUST SPAWN THAT AGENT |
784
808
  | |
785
- | HAS_API = TRUE -> MUST spawn qe-contract-validator |
786
- | HAS_REFACTORING = TRUE -> MUST spawn qe-impact-analyzer |
787
- | HAS_DEPENDENCIES = TRUE -> MUST spawn qe-dependency-mapper |
809
+ | HAS_API = TRUE -> MUST spawn qe-contract-validator |
810
+ | HAS_REFACTORING = TRUE -> MUST spawn qe-impact-analyzer |
811
+ | HAS_DEPENDENCIES = TRUE -> MUST spawn qe-dependency-mapper |
812
+ | HAS_MIDDLEWARE = TRUE -> MUST spawn qe-middleware-validator |
813
+ | HAS_SAP_INTEGRATION = TRUE -> MUST spawn qe-odata-contract-tester|
814
+ | HAS_AUTHORIZATION = TRUE -> MUST spawn qe-sod-analyzer |
788
815
  | |
789
816
  | Skipping a flagged agent is a FAILURE of this skill. |
790
817
  +-------------------------------------------------------------+
@@ -797,11 +824,14 @@ Output extracted metrics:
797
824
  | HAS_API | qe-contract-validator | contract-testing | `contract_test` |
798
825
  | HAS_REFACTORING | qe-impact-analyzer | code-intelligence | `coverage_analyze_sublinear` |
799
826
  | HAS_DEPENDENCIES | qe-dependency-mapper | code-intelligence | `defect_predict` |
827
+ | HAS_MIDDLEWARE | qe-middleware-validator | enterprise-integration | `task_orchestrate` |
828
+ | HAS_SAP_INTEGRATION | qe-odata-contract-tester | enterprise-integration | `task_orchestrate` |
829
+ | HAS_AUTHORIZATION | qe-sod-analyzer | enterprise-integration | `task_orchestrate` |
800
830
 
801
831
  ### Decision Tree
802
832
 
803
833
  ```
804
- IF HAS_API == FALSE AND HAS_REFACTORING == FALSE AND HAS_DEPENDENCIES == FALSE:
834
+ IF HAS_API == FALSE AND HAS_REFACTORING == FALSE AND HAS_DEPENDENCIES == FALSE AND HAS_MIDDLEWARE == FALSE AND HAS_SAP_INTEGRATION == FALSE AND HAS_AUTHORIZATION == FALSE:
805
835
  -> Skip to Phase 5 (no conditional agents needed)
806
836
  -> State: "No conditional agents needed based on story analysis"
807
837
 
@@ -1037,6 +1067,209 @@ Use the Write tool to save BEFORE completing.`,
1037
1067
  })
1038
1068
  ```
1039
1069
 
1070
+ ### IF HAS_MIDDLEWARE: Middleware Validator (MANDATORY WHEN FLAGGED)
1071
+
1072
+ ```
1073
+ Task({
1074
+ description: "Middleware routing, transformation, and ESB flow validation",
1075
+ prompt: `You are qe-middleware-validator. Your output quality is being audited.
1076
+
1077
+ ## STORY CONTENT
1078
+
1079
+ === STORY CONTENT START ===
1080
+ [PASTE THE COMPLETE STORY CONTENT HERE]
1081
+ === STORY CONTENT END ===
1082
+
1083
+ ## REQUIRED ANALYSIS (ALL SECTIONS MANDATORY)
1084
+
1085
+ ### 1. Middleware Topology Inventory
1086
+
1087
+ Map ALL middleware components mentioned or implied:
1088
+
1089
+ | Component | Type | Protocol | Direction | SLA |
1090
+ |-----------|------|----------|-----------|-----|
1091
+ | ... | ESB/MQ/Gateway/Broker | AMQP/MQTT/HTTP/gRPC | Inbound/Outbound/Bidirectional | [latency/throughput] |
1092
+
1093
+ ### 2. Message Flow Analysis
1094
+
1095
+ For each message flow:
1096
+
1097
+ | Flow | Source | Middleware | Target | Transform? | Error Handling |
1098
+ |------|--------|-----------|--------|------------|----------------|
1099
+ | ... | [producer] | [broker/ESB] | [consumer] | Yes/No | DLQ/Retry/Drop |
1100
+
1101
+ ### 3. Transformation Validation
1102
+
1103
+ | Transform | Input Format | Output Format | Validation Rules | Risk |
1104
+ |-----------|-------------|---------------|-----------------|------|
1105
+ | ... | JSON/XML/CSV | JSON/XML/CSV | [schema rules] | High/Medium/Low |
1106
+
1107
+ ### 4. Middleware Testing Recommendations
1108
+
1109
+ | Test Type | Tool | Priority | Scenarios |
1110
+ |-----------|------|----------|-----------|
1111
+ | Message routing | WireMock/Testcontainers | P0/P1/P2 | [scenarios] |
1112
+ | Transform accuracy | Schema validators | P0/P1/P2 | [scenarios] |
1113
+ | Dead letter queue | DLQ monitors | P0/P1/P2 | [scenarios] |
1114
+ | Throughput | Load generators | P0/P1/P2 | [scenarios] |
1115
+
1116
+ ### 5. Middleware Risk Score
1117
+
1118
+ | Dimension | Score (0-10) | Notes |
1119
+ |-----------|-------------|-------|
1120
+ | Routing complexity | X/10 | ... |
1121
+ | Transform accuracy | X/10 | ... |
1122
+ | Error handling coverage | X/10 | ... |
1123
+ | Throughput risk | X/10 | ... |
1124
+
1125
+ **MIDDLEWARE RISK SCORE: X/40**
1126
+
1127
+ **MINIMUM: Identify at least 3 middleware-related findings**
1128
+
1129
+ ## OUTPUT FORMAT
1130
+
1131
+ Save to: ${"$"}{OUTPUT_FOLDER}/10-middleware-validation.md
1132
+ Use the Write tool to save BEFORE completing.`,
1133
+ subagent_type: "qe-middleware-validator",
1134
+ run_in_background: true
1135
+ })
1136
+ ```
1137
+
1138
+ ### IF HAS_SAP_INTEGRATION: OData Contract Tester (MANDATORY WHEN FLAGGED)
1139
+
1140
+ ```
1141
+ Task({
1142
+ description: "OData contract and SAP service validation",
1143
+ prompt: `You are qe-odata-contract-tester. Your output quality is being audited.
1144
+
1145
+ ## STORY CONTENT
1146
+
1147
+ === STORY CONTENT START ===
1148
+ [PASTE THE COMPLETE STORY CONTENT HERE]
1149
+ === STORY CONTENT END ===
1150
+
1151
+ ## REQUIRED ANALYSIS (ALL SECTIONS MANDATORY)
1152
+
1153
+ ### 1. SAP Service Inventory
1154
+
1155
+ Map ALL SAP services and OData endpoints mentioned or implied:
1156
+
1157
+ | Service | Type | Protocol | Entity Set | Operations |
1158
+ |---------|------|----------|-----------|------------|
1159
+ | ... | OData V2/V4/RFC/BAPI | HTTP/RFC | [entity] | CRUD/Custom |
1160
+
1161
+ ### 2. OData Contract Assessment
1162
+
1163
+ For each OData service:
1164
+
1165
+ | Endpoint | $metadata Available? | Schema Validated? | Breaking Change Risk | Pagination |
1166
+ |----------|---------------------|------------------|---------------------|------------|
1167
+ | ... | Yes/No | Yes/No/Partial | High/Medium/Low | Server/Client/None |
1168
+
1169
+ ### 3. SAP Integration Points
1170
+
1171
+ | Integration | Source System | Target System | IDoc Type | Direction |
1172
+ |-------------|-------------|---------------|-----------|-----------|
1173
+ | ... | ECC/S4/EWM | [target] | [type] | Inbound/Outbound |
1174
+
1175
+ ### 4. Contract Testing Recommendations
1176
+
1177
+ | Test Type | Tool | Priority | Scenarios |
1178
+ |-----------|------|----------|-----------|
1179
+ | OData $metadata | OData validator | P0/P1/P2 | [scenarios] |
1180
+ | Entity CRUD | SAP Gateway test | P0/P1/P2 | [scenarios] |
1181
+ | Deep entity | Integration suite | P0/P1/P2 | [scenarios] |
1182
+ | Error responses | Negative testing | P0/P1/P2 | [scenarios] |
1183
+
1184
+ ### 5. SAP Integration Risk Score
1185
+
1186
+ | Dimension | Score (0-10) | Notes |
1187
+ |-----------|-------------|-------|
1188
+ | Contract completeness | X/10 | ... |
1189
+ | Schema stability | X/10 | ... |
1190
+ | Error handling | X/10 | ... |
1191
+ | Authorization coverage | X/10 | ... |
1192
+
1193
+ **SAP INTEGRATION RISK SCORE: X/40**
1194
+
1195
+ **MINIMUM: Identify at least 3 SAP integration findings**
1196
+
1197
+ ## OUTPUT FORMAT
1198
+
1199
+ Save to: ${"$"}{OUTPUT_FOLDER}/11-odata-contract-validation.md
1200
+ Use the Write tool to save BEFORE completing.`,
1201
+ subagent_type: "qe-odata-contract-tester",
1202
+ run_in_background: true
1203
+ })
1204
+ ```
1205
+
1206
+ ### IF HAS_AUTHORIZATION: SoD Analyzer (MANDATORY WHEN FLAGGED)
1207
+
1208
+ ```
1209
+ Task({
1210
+ description: "Segregation of duties and authorization conflict analysis",
1211
+ prompt: `You are qe-sod-analyzer. Your output quality is being audited.
1212
+
1213
+ ## STORY CONTENT
1214
+
1215
+ === STORY CONTENT START ===
1216
+ [PASTE THE COMPLETE STORY CONTENT HERE]
1217
+ === STORY CONTENT END ===
1218
+
1219
+ ## REQUIRED ANALYSIS (ALL SECTIONS MANDATORY)
1220
+
1221
+ ### 1. Authorization Object Inventory
1222
+
1223
+ Map ALL authorization objects, roles, and T-codes mentioned or implied:
1224
+
1225
+ | Auth Object | Field | Values | Role Assignment | Risk Level |
1226
+ |-------------|-------|--------|----------------|------------|
1227
+ | ... | [field] | [allowed values] | [role] | Critical/High/Medium/Low |
1228
+
1229
+ ### 2. Segregation of Duties Matrix
1230
+
1231
+ | Function A | Function B | Conflict Type | Risk | Mitigation |
1232
+ |-----------|-----------|---------------|------|------------|
1233
+ | [create PO] | [approve PO] | SoD violation | Critical | [control] |
1234
+ | ... | ... | ... | ... | ... |
1235
+
1236
+ ### 3. Role Conflict Detection
1237
+
1238
+ | Role | Conflicting Role | Shared Users | Violation Type | GRC Status |
1239
+ |------|-----------------|-------------|----------------|------------|
1240
+ | ... | ... | [count] | SoD/Excessive/Toxic | Detected/Mitigated/Open |
1241
+
1242
+ ### 4. Authorization Testing Recommendations
1243
+
1244
+ | Test Type | Tool | Priority | Scenarios |
1245
+ |-----------|------|----------|-----------|
1246
+ | SoD simulation | GRC Access Risk | P0/P1/P2 | [scenarios] |
1247
+ | Role testing | SU53/SUIM | P0/P1/P2 | [scenarios] |
1248
+ | Negative auth | Auth trace | P0/P1/P2 | [scenarios] |
1249
+ | Privilege escalation | Pentest suite | P0/P1/P2 | [scenarios] |
1250
+
1251
+ ### 5. Authorization Risk Score
1252
+
1253
+ | Dimension | Score (0-10) | Notes |
1254
+ |-----------|-------------|-------|
1255
+ | SoD compliance | X/10 | ... |
1256
+ | Role design quality | X/10 | ... |
1257
+ | Toxic combination risk | X/10 | ... |
1258
+ | Audit trail coverage | X/10 | ... |
1259
+
1260
+ **AUTHORIZATION RISK SCORE: X/40**
1261
+
1262
+ **MINIMUM: Identify at least 3 authorization findings**
1263
+
1264
+ ## OUTPUT FORMAT
1265
+
1266
+ Save to: ${"$"}{OUTPUT_FOLDER}/12-sod-analysis.md
1267
+ Use the Write tool to save BEFORE completing.`,
1268
+ subagent_type: "qe-sod-analyzer",
1269
+ run_in_background: true
1270
+ })
1271
+ ```
1272
+
1040
1273
  ### Alternative: MCP Tools for Conditional Agents
1041
1274
 
1042
1275
  ```javascript
@@ -1070,6 +1303,45 @@ if (HAS_DEPENDENCIES) {
1070
1303
  detectCircular: true
1071
1304
  })
1072
1305
  }
1306
+
1307
+ // IF HAS_MIDDLEWARE - Enable enterprise-integration domain
1308
+ if (HAS_MIDDLEWARE) {
1309
+ mcp__agentic_qe__task_orchestrate({
1310
+ task: "middleware-routing-validation",
1311
+ strategy: "parallel",
1312
+ payload: {
1313
+ storyContent: storyContent,
1314
+ validateRouting: true,
1315
+ validateTransforms: true
1316
+ }
1317
+ })
1318
+ }
1319
+
1320
+ // IF HAS_SAP_INTEGRATION - Enable enterprise-integration domain
1321
+ if (HAS_SAP_INTEGRATION) {
1322
+ mcp__agentic_qe__task_orchestrate({
1323
+ task: "odata-contract-validation",
1324
+ strategy: "parallel",
1325
+ payload: {
1326
+ storyContent: storyContent,
1327
+ validateMetadata: true,
1328
+ validateSchema: true
1329
+ }
1330
+ })
1331
+ }
1332
+
1333
+ // IF HAS_AUTHORIZATION - Enable enterprise-integration domain
1334
+ if (HAS_AUTHORIZATION) {
1335
+ mcp__agentic_qe__task_orchestrate({
1336
+ task: "sod-authorization-analysis",
1337
+ strategy: "parallel",
1338
+ payload: {
1339
+ storyContent: storyContent,
1340
+ detectSoD: true,
1341
+ detectToxicCombos: true
1342
+ }
1343
+ })
1344
+ }
1073
1345
  ```
1074
1346
 
1075
1347
  ### Alternative: CLI for Conditional Agents
@@ -1096,6 +1368,27 @@ if [ "$HAS_DEPENDENCIES" = "TRUE" ]; then
1096
1368
  --task "Coupling metrics and circular detection" &
1097
1369
  fi
1098
1370
 
1371
+ # IF HAS_MIDDLEWARE
1372
+ if [ "$HAS_MIDDLEWARE" = "TRUE" ]; then
1373
+ npx @claude-flow/cli@latest agent spawn \
1374
+ --type qe-middleware-validator \
1375
+ --task "Middleware routing and ESB flow validation" &
1376
+ fi
1377
+
1378
+ # IF HAS_SAP_INTEGRATION
1379
+ if [ "$HAS_SAP_INTEGRATION" = "TRUE" ]; then
1380
+ npx @claude-flow/cli@latest agent spawn \
1381
+ --type qe-odata-contract-tester \
1382
+ --task "OData contract and SAP service validation" &
1383
+ fi
1384
+
1385
+ # IF HAS_AUTHORIZATION
1386
+ if [ "$HAS_AUTHORIZATION" = "TRUE" ]; then
1387
+ npx @claude-flow/cli@latest agent spawn \
1388
+ --type qe-sod-analyzer \
1389
+ --task "Segregation of duties analysis" &
1390
+ fi
1391
+
1099
1392
  # Wait for conditional agents
1100
1393
  wait
1101
1394
  ```
@@ -1118,6 +1411,9 @@ wait
1118
1411
  | [ ] qe-contract-validator - SPAWNED? [Y/N] (HAS_API) |
1119
1412
  | [ ] qe-impact-analyzer - SPAWNED? [Y/N] (HAS_REFACTORING)|
1120
1413
  | [ ] qe-dependency-mapper - SPAWNED? [Y/N] (HAS_DEPS) |
1414
+ | [ ] qe-middleware-validator - SPAWNED? [Y/N] (HAS_MIDDLEWARE) |
1415
+ | [ ] qe-odata-contract-tester - SPAWNED? [Y/N] (HAS_SAP_INTEG) |
1416
+ | [ ] qe-sod-analyzer - SPAWNED? [Y/N] (HAS_AUTHORIZATION) |
1121
1417
  | |
1122
1418
  | VALIDATION: |
1123
1419
  | Expected agents: [3 + count of TRUE flags] |
@@ -1137,12 +1433,18 @@ wait
1137
1433
  ```
1138
1434
  I've launched [N] conditional agent(s) in parallel:
1139
1435
 
1140
- [IF HAS_API] qe-contract-validator [Domain: contract-testing]
1141
- - Consumer-driven contracts, breaking changes
1142
- [IF HAS_REFACTORING] qe-impact-analyzer [Domain: code-intelligence]
1143
- - Blast radius, affected tests, regression risk
1144
- [IF HAS_DEPENDENCIES] qe-dependency-mapper [Domain: code-intelligence]
1145
- - Coupling metrics Ca/Ce/I, circular detection
1436
+ [IF HAS_API] qe-contract-validator [Domain: contract-testing]
1437
+ - Consumer-driven contracts, breaking changes
1438
+ [IF HAS_REFACTORING] qe-impact-analyzer [Domain: code-intelligence]
1439
+ - Blast radius, affected tests, regression risk
1440
+ [IF HAS_DEPENDENCIES] qe-dependency-mapper [Domain: code-intelligence]
1441
+ - Coupling metrics Ca/Ce/I, circular detection
1442
+ [IF HAS_MIDDLEWARE] qe-middleware-validator [Domain: enterprise-integration]
1443
+ - Middleware routing, transformation, ESB flow validation
1444
+ [IF HAS_SAP_INTEGRATION] qe-odata-contract-tester [Domain: enterprise-integration]
1445
+ - OData contract, SAP service, $metadata validation
1446
+ [IF HAS_AUTHORIZATION] qe-sod-analyzer [Domain: enterprise-integration]
1447
+ - Segregation of duties, role conflict, authorization analysis
1146
1448
 
1147
1449
  WAITING for conditional agents to complete...
1148
1450
  ```
@@ -1432,7 +1734,10 @@ mcp__agentic-qe__memory_store({
1432
1734
  HAS_API: HAS_API,
1433
1735
  HAS_REFACTORING: HAS_REFACTORING,
1434
1736
  HAS_DEPENDENCIES: HAS_DEPENDENCIES,
1435
- HAS_SECURITY: HAS_SECURITY
1737
+ HAS_SECURITY: HAS_SECURITY,
1738
+ HAS_MIDDLEWARE: HAS_MIDDLEWARE,
1739
+ HAS_SAP_INTEGRATION: HAS_SAP_INTEGRATION,
1740
+ HAS_AUTHORIZATION: HAS_AUTHORIZATION
1436
1741
  },
1437
1742
  agentsInvoked: agentList,
1438
1743
  timestamp: new Date().toISOString()
@@ -1487,7 +1792,10 @@ Contents:
1487
1792
  "HAS_API": true/false,
1488
1793
  "HAS_REFACTORING": true/false,
1489
1794
  "HAS_DEPENDENCIES": true/false,
1490
- "HAS_SECURITY": true/false
1795
+ "HAS_SECURITY": true/false,
1796
+ "HAS_MIDDLEWARE": true/false,
1797
+ "HAS_SAP_INTEGRATION": true/false,
1798
+ "HAS_AUTHORIZATION": true/false
1491
1799
  },
1492
1800
  "agentsInvoked": ["list", "of", "agents"],
1493
1801
  "crossPhaseSignals": {
@@ -1795,7 +2103,7 @@ Use the Write tool to save BEFORE completing.
1795
2103
 
1796
2104
  ## DDD Domain Integration
1797
2105
 
1798
- This swarm operates across **1 primary domain**, **2 conditional domains**,
2106
+ This swarm operates across **1 primary domain**, **3 conditional domains**,
1799
2107
  and **1 transformation domain**:
1800
2108
 
1801
2109
  ```
@@ -1822,6 +2130,17 @@ and **1 transformation domain**:
1822
2130
  | | | | or HAS_DEPENDENCIES]| |
1823
2131
  | +-----------------------+ +-----------------------+ |
1824
2132
  | |
2133
+ | +------------------------------------------+ |
2134
+ | | enterprise-integration | |
2135
+ | | ---------------------------------------- | |
2136
+ | | qe-middleware-validator | |
2137
+ | | [IF HAS_MIDDLEWARE] | |
2138
+ | | qe-odata-contract-tester | |
2139
+ | | [IF HAS_SAP_INTEGRATION] | |
2140
+ | | qe-sod-analyzer | |
2141
+ | | [IF HAS_AUTHORIZATION] | |
2142
+ | +------------------------------------------+ |
2143
+ | |
1825
2144
  | TRANSFORMATION DOMAIN (Always Active) |
1826
2145
  | +-----------------------------------------------------------------------+ |
1827
2146
  | | test-generation | |
@@ -1889,7 +2208,7 @@ npx @claude-flow/cli@latest agent spawn --type qe-requirements-validator
1889
2208
 
1890
2209
  | Phase | Must Do | Failure Condition |
1891
2210
  |-------|---------|-------------------|
1892
- | 1 | Check ALL 4 flags | Missing flag evaluation |
2211
+ | 1 | Check ALL 7 flags | Missing flag evaluation |
1893
2212
  | 2 | Spawn ALL 3 core agents in ONE message | Fewer than 3 Task calls |
1894
2213
  | 3 | WAIT for completion | Proceeding before results |
1895
2214
  | 4 | Spawn ALL flagged conditional agents | Skipping a TRUE flag |
@@ -1918,6 +2237,9 @@ npx @claude-flow/cli@latest agent spawn --type qe-requirements-validator
1918
2237
  | contract-testing | qe-contract-validator | Conditional (HAS_API) | 2 |
1919
2238
  | code-intelligence | qe-impact-analyzer | Conditional (HAS_REFACTORING) | 2 |
1920
2239
  | code-intelligence | qe-dependency-mapper | Conditional (HAS_DEPENDENCIES) | 2 |
2240
+ | enterprise-integration | qe-middleware-validator | Conditional (HAS_MIDDLEWARE) | 2 |
2241
+ | enterprise-integration | qe-odata-contract-tester | Conditional (HAS_SAP_INTEGRATION) | 2 |
2242
+ | enterprise-integration | qe-sod-analyzer | Conditional (HAS_AUTHORIZATION) | 2 |
1921
2243
  | test-generation | qe-test-idea-rewriter | Transformation (ALWAYS) | 3 |
1922
2244
 
1923
2245
  ### Execution Model Quick Reference
@@ -2040,10 +2362,10 @@ npx @claude-flow/cli@latest memory list --namespace qcsd-refinement
2040
2362
 
2041
2363
  | Resource Type | Count | Primary | Conditional | Transformation |
2042
2364
  |---------------|:-----:|:-------:|:-----------:|:--------------:|
2043
- | **Agents** | 7 | 3 | 3 | 1 |
2365
+ | **Agents** | 10 | 3 | 6 | 1 |
2044
2366
  | **Sub-agents** | 0 | - | - | - |
2045
2367
  | **Skills** | 3 | 3 | - | - |
2046
- | **Domains** | 4 | 1 | 2 | 1 |
2368
+ | **Domains** | 5 | 1 | 3 | 1 |
2047
2369
  | **Parallel Batches** | 3 | 1 | 1 | 1 |
2048
2370
 
2049
2371
  **Skills Used:**