@documentation-robotics/cli 0.1.0 → 0.1.5

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 (510) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +466 -693
  3. package/dist/analysis/data-model-analyzer.js +189 -0
  4. package/dist/analysis/data-model-analyzer.js.map +7 -0
  5. package/dist/analysis/index.js +3 -0
  6. package/dist/analysis/index.js.map +7 -0
  7. package/dist/analysis/relationship-classifier.js +181 -0
  8. package/dist/analysis/relationship-classifier.js.map +7 -0
  9. package/dist/analyzers/base-analyzer.js +1 -0
  10. package/dist/analyzers/base-analyzer.js.map +7 -0
  11. package/dist/analyzers/call-graph-utils.js +39 -0
  12. package/dist/analyzers/call-graph-utils.js.map +7 -0
  13. package/dist/analyzers/cbm-analyzer.js +1205 -0
  14. package/dist/analyzers/cbm-analyzer.js.map +7 -0
  15. package/dist/analyzers/heuristic-utils.js +55 -0
  16. package/dist/analyzers/heuristic-utils.js.map +7 -0
  17. package/dist/analyzers/mapping-loader.js +146 -0
  18. package/dist/analyzers/mapping-loader.js.map +7 -0
  19. package/dist/analyzers/registry.js +124 -0
  20. package/dist/analyzers/registry.js.map +7 -0
  21. package/dist/analyzers/session-state.js +176 -0
  22. package/dist/analyzers/session-state.js.map +7 -0
  23. package/dist/analyzers/stdio-client.js +206 -0
  24. package/dist/analyzers/stdio-client.js.map +7 -0
  25. package/dist/analyzers/types.js +15 -0
  26. package/dist/analyzers/types.js.map +7 -0
  27. package/dist/analyzers/verify-engine.js +209 -0
  28. package/dist/analyzers/verify-engine.js.map +7 -0
  29. package/dist/analyzers/verify-ignore.js +130 -0
  30. package/dist/analyzers/verify-ignore.js.map +7 -0
  31. package/dist/analyzers/version.js +8 -0
  32. package/dist/analyzers/version.js.map +7 -0
  33. package/dist/audit/ai/runner.js +41 -0
  34. package/dist/audit/ai/runner.js.map +7 -0
  35. package/dist/audit/differential-analyzer.js +183 -0
  36. package/dist/audit/differential-analyzer.js.map +7 -0
  37. package/dist/audit/index.js +32 -0
  38. package/dist/audit/index.js.map +7 -0
  39. package/dist/audit/nodes/ai/evaluator.js +49 -0
  40. package/dist/audit/nodes/ai/evaluator.js.map +7 -0
  41. package/dist/audit/nodes/ai/parser.js +55 -0
  42. package/dist/audit/nodes/ai/parser.js.map +7 -0
  43. package/dist/audit/nodes/ai/prompts.js +103 -0
  44. package/dist/audit/nodes/ai/prompts.js.map +7 -0
  45. package/dist/audit/nodes/analysis/node-completeness-checker.js +32 -0
  46. package/dist/audit/nodes/analysis/node-completeness-checker.js.map +7 -0
  47. package/dist/audit/nodes/analysis/node-definition-analyzer.js +47 -0
  48. package/dist/audit/nodes/analysis/node-definition-analyzer.js.map +7 -0
  49. package/dist/audit/nodes/analysis/node-overlap-detector.js +79 -0
  50. package/dist/audit/nodes/analysis/node-overlap-detector.js.map +7 -0
  51. package/dist/audit/nodes/model/orchestrator.js +82 -0
  52. package/dist/audit/nodes/model/orchestrator.js.map +7 -0
  53. package/dist/audit/nodes/spec/loader.js +116 -0
  54. package/dist/audit/nodes/spec/loader.js.map +7 -0
  55. package/dist/audit/nodes/spec/orchestrator.js +68 -0
  56. package/dist/audit/nodes/spec/orchestrator.js.map +7 -0
  57. package/dist/audit/nodes/types.js +1 -0
  58. package/dist/audit/nodes/types.js.map +7 -0
  59. package/dist/audit/pipeline/index.js +5 -0
  60. package/dist/audit/pipeline/index.js.map +7 -0
  61. package/dist/audit/pipeline/pipeline-orchestrator.js +218 -0
  62. package/dist/audit/pipeline/pipeline-orchestrator.js.map +7 -0
  63. package/dist/audit/relationships/ai/evaluator.js +235 -0
  64. package/dist/audit/relationships/ai/evaluator.js.map +7 -0
  65. package/dist/audit/relationships/ai/parser.js +197 -0
  66. package/dist/audit/relationships/ai/parser.js.map +7 -0
  67. package/dist/audit/relationships/ai/prompts.js +274 -0
  68. package/dist/audit/relationships/ai/prompts.js.map +7 -0
  69. package/dist/audit/relationships/analysis/balance-assessor.js +115 -0
  70. package/dist/audit/relationships/analysis/balance-assessor.js.map +7 -0
  71. package/dist/audit/relationships/analysis/coverage-analyzer.js +99 -0
  72. package/dist/audit/relationships/analysis/coverage-analyzer.js.map +7 -0
  73. package/dist/audit/relationships/analysis/duplicate-detector.js +95 -0
  74. package/dist/audit/relationships/analysis/duplicate-detector.js.map +7 -0
  75. package/dist/audit/relationships/analysis/gap-analyzer.js +99 -0
  76. package/dist/audit/relationships/analysis/gap-analyzer.js.map +7 -0
  77. package/dist/audit/relationships/analysis/layer-templates.js +294 -0
  78. package/dist/audit/relationships/analysis/layer-templates.js.map +7 -0
  79. package/dist/audit/relationships/graph/connectivity.js +129 -0
  80. package/dist/audit/relationships/graph/connectivity.js.map +7 -0
  81. package/dist/audit/relationships/graph/relationship-graph.js +179 -0
  82. package/dist/audit/relationships/graph/relationship-graph.js.map +7 -0
  83. package/dist/audit/relationships/model/balance-assessor.js +49 -0
  84. package/dist/audit/relationships/model/balance-assessor.js.map +7 -0
  85. package/dist/audit/relationships/model/coverage-analyzer.js +34 -0
  86. package/dist/audit/relationships/model/coverage-analyzer.js.map +7 -0
  87. package/dist/audit/relationships/model/duplicate-detector.js +68 -0
  88. package/dist/audit/relationships/model/duplicate-detector.js.map +7 -0
  89. package/dist/audit/relationships/model/gap-analyzer.js +41 -0
  90. package/dist/audit/relationships/model/gap-analyzer.js.map +7 -0
  91. package/dist/audit/relationships/model/orchestrator.js +126 -0
  92. package/dist/audit/relationships/model/orchestrator.js.map +7 -0
  93. package/dist/audit/relationships/spec/orchestrator.js +157 -0
  94. package/dist/audit/relationships/spec/orchestrator.js.map +7 -0
  95. package/dist/audit/reports/index.js +5 -0
  96. package/dist/audit/reports/index.js.map +7 -0
  97. package/dist/audit/reports/report-generator.js +118 -0
  98. package/dist/audit/reports/report-generator.js.map +7 -0
  99. package/dist/audit/snapshot-storage.js +163 -0
  100. package/dist/audit/snapshot-storage.js.map +7 -0
  101. package/dist/audit/types.js +21 -0
  102. package/dist/audit/types.js.map +7 -0
  103. package/dist/cli.js +223 -92
  104. package/dist/cli.js.map +3 -3
  105. package/dist/coding-agents/agents/claude-code.js +147 -0
  106. package/dist/coding-agents/agents/claude-code.js.map +7 -0
  107. package/dist/coding-agents/agents/index.js +5 -0
  108. package/dist/coding-agents/agents/index.js.map +7 -0
  109. package/dist/coding-agents/agents/types.js +1 -0
  110. package/dist/coding-agents/agents/types.js.map +7 -0
  111. package/dist/coding-agents/base-chat-client.js +45 -0
  112. package/dist/coding-agents/base-chat-client.js.map +7 -0
  113. package/dist/coding-agents/chat-utils.js +23 -0
  114. package/dist/coding-agents/chat-utils.js.map +7 -0
  115. package/dist/coding-agents/claude-code-client.js +246 -0
  116. package/dist/coding-agents/claude-code-client.js.map +7 -0
  117. package/dist/coding-agents/copilot-client.js +209 -0
  118. package/dist/coding-agents/copilot-client.js.map +7 -0
  119. package/dist/commands/add.js +95 -33
  120. package/dist/commands/add.js.map +2 -2
  121. package/dist/commands/analyzer.js +511 -0
  122. package/dist/commands/analyzer.js.map +7 -0
  123. package/dist/commands/audit-diff.js +49 -0
  124. package/dist/commands/audit-diff.js.map +7 -0
  125. package/dist/commands/audit-snapshots.js +62 -0
  126. package/dist/commands/audit-snapshots.js.map +7 -0
  127. package/dist/commands/audit.js +81 -0
  128. package/dist/commands/audit.js.map +7 -0
  129. package/dist/commands/catalog.js +248 -0
  130. package/dist/commands/catalog.js.map +7 -0
  131. package/dist/commands/changeset.js +577 -66
  132. package/dist/commands/changeset.js.map +2 -2
  133. package/dist/commands/chat.js +106 -83
  134. package/dist/commands/chat.js.map +2 -2
  135. package/dist/commands/claude.js +74 -0
  136. package/dist/commands/claude.js.map +7 -0
  137. package/dist/commands/conformance.js +71 -68
  138. package/dist/commands/conformance.js.map +2 -2
  139. package/dist/commands/copilot.js +75 -0
  140. package/dist/commands/copilot.js.map +7 -0
  141. package/dist/commands/delete.js +125 -11
  142. package/dist/commands/delete.js.map +3 -3
  143. package/dist/commands/discover-logic.js +44 -0
  144. package/dist/commands/discover-logic.js.map +7 -0
  145. package/dist/commands/docs.js +87 -0
  146. package/dist/commands/docs.js.map +7 -0
  147. package/dist/commands/element.js +14 -20
  148. package/dist/commands/element.js.map +2 -2
  149. package/dist/commands/export.js +13 -3
  150. package/dist/commands/export.js.map +2 -2
  151. package/dist/commands/import.js +51 -0
  152. package/dist/commands/import.js.map +7 -0
  153. package/dist/commands/info.js +30 -24
  154. package/dist/commands/info.js.map +2 -2
  155. package/dist/commands/init.js +27 -11
  156. package/dist/commands/init.js.map +2 -2
  157. package/dist/commands/list.js +63 -13
  158. package/dist/commands/list.js.map +3 -3
  159. package/dist/commands/relationship.js +225 -37
  160. package/dist/commands/relationship.js.map +2 -2
  161. package/dist/commands/report.js +54 -0
  162. package/dist/commands/report.js.map +7 -0
  163. package/dist/commands/reports.js +45 -0
  164. package/dist/commands/reports.js.map +7 -0
  165. package/dist/commands/schema.js +135 -0
  166. package/dist/commands/schema.js.map +7 -0
  167. package/dist/commands/search.js +40 -12
  168. package/dist/commands/search.js.map +2 -2
  169. package/dist/commands/show.js +58 -27
  170. package/dist/commands/show.js.map +2 -2
  171. package/dist/commands/stats.js +35 -0
  172. package/dist/commands/stats.js.map +7 -0
  173. package/dist/commands/trace.js +39 -16
  174. package/dist/commands/trace.js.map +2 -2
  175. package/dist/commands/update.js +141 -14
  176. package/dist/commands/update.js.map +2 -2
  177. package/dist/commands/upgrade.js +210 -46
  178. package/dist/commands/upgrade.js.map +3 -3
  179. package/dist/commands/validate.js +142 -23
  180. package/dist/commands/validate.js.map +3 -3
  181. package/dist/commands/version.js +8 -12
  182. package/dist/commands/version.js.map +2 -2
  183. package/dist/commands/visualize.js +155 -25
  184. package/dist/commands/visualize.js.map +2 -2
  185. package/dist/core/base-snapshot-manager.js +84 -0
  186. package/dist/core/base-snapshot-manager.js.map +7 -0
  187. package/dist/core/changeset-exporter.js +305 -0
  188. package/dist/core/changeset-exporter.js.map +7 -0
  189. package/dist/core/changeset-validator.js +41 -0
  190. package/dist/core/changeset-validator.js.map +7 -0
  191. package/dist/core/changeset.js +88 -173
  192. package/dist/core/changeset.js.map +2 -2
  193. package/dist/core/dependency-tracker.js +4 -2
  194. package/dist/core/dependency-tracker.js.map +2 -2
  195. package/dist/core/element.js +98 -27
  196. package/dist/core/element.js.map +2 -2
  197. package/dist/core/golden-copy-cache.js +290 -0
  198. package/dist/core/golden-copy-cache.js.map +7 -0
  199. package/dist/core/graph-model.js +266 -0
  200. package/dist/core/graph-model.js.map +7 -0
  201. package/dist/core/layer.js +159 -16
  202. package/dist/core/layer.js.map +2 -2
  203. package/dist/core/layers.js +32 -0
  204. package/dist/core/layers.js.map +7 -0
  205. package/dist/core/manifest.js +32 -11
  206. package/dist/core/manifest.js.map +2 -2
  207. package/dist/core/migration-registry.js +56 -1
  208. package/dist/core/migration-registry.js.map +2 -2
  209. package/dist/core/model.js +424 -217
  210. package/dist/core/model.js.map +3 -3
  211. package/dist/core/mutation-handler.js +179 -0
  212. package/dist/core/mutation-handler.js.map +7 -0
  213. package/dist/core/reference-registry.js +29 -21
  214. package/dist/core/reference-registry.js.map +2 -2
  215. package/dist/core/relationship-catalog.js +189 -0
  216. package/dist/core/relationship-catalog.js.map +7 -0
  217. package/dist/core/relationship-registry.js.map +2 -2
  218. package/dist/core/relationships.js.map +1 -1
  219. package/dist/core/report-data-model.js +285 -0
  220. package/dist/core/report-data-model.js.map +7 -0
  221. package/dist/core/spec-data-service.js +185 -0
  222. package/dist/core/spec-data-service.js.map +7 -0
  223. package/dist/core/spec-loader-types.js +1 -0
  224. package/dist/core/spec-loader-types.js.map +7 -0
  225. package/dist/core/spec-loader.js +234 -0
  226. package/dist/core/spec-loader.js.map +7 -0
  227. package/dist/core/staged-changeset-storage.js +282 -0
  228. package/dist/core/staged-changeset-storage.js.map +7 -0
  229. package/dist/core/staging-area.js +1002 -0
  230. package/dist/core/staging-area.js.map +7 -0
  231. package/dist/core/stats-collector.js +169 -0
  232. package/dist/core/stats-collector.js.map +7 -0
  233. package/dist/core/virtual-projection.js +443 -0
  234. package/dist/core/virtual-projection.js.map +7 -0
  235. package/dist/export/archimate-exporter.js +99 -60
  236. package/dist/export/archimate-exporter.js.map +2 -2
  237. package/dist/export/audit-formatters.js +479 -0
  238. package/dist/export/audit-formatters.js.map +7 -0
  239. package/dist/export/diff-formatters.js +99 -0
  240. package/dist/export/diff-formatters.js.map +7 -0
  241. package/dist/export/export-manager.js.map +2 -2
  242. package/dist/export/graphml-exporter.js +44 -27
  243. package/dist/export/graphml-exporter.js.map +2 -2
  244. package/dist/export/index.js +4 -0
  245. package/dist/export/index.js.map +2 -2
  246. package/dist/export/json-schema-exporter.js +55 -42
  247. package/dist/export/json-schema-exporter.js.map +2 -2
  248. package/dist/export/markdown-exporter.js +92 -70
  249. package/dist/export/markdown-exporter.js.map +2 -2
  250. package/dist/export/markdown-generator.js +248 -0
  251. package/dist/export/markdown-generator.js.map +7 -0
  252. package/dist/export/markdown-utils.js +30 -0
  253. package/dist/export/markdown-utils.js.map +7 -0
  254. package/dist/export/mermaid-markdown-exporter.js +37 -0
  255. package/dist/export/mermaid-markdown-exporter.js.map +7 -0
  256. package/dist/export/openapi-exporter.js +119 -71
  257. package/dist/export/openapi-exporter.js.map +2 -2
  258. package/dist/export/plantuml-exporter.js +104 -39
  259. package/dist/export/plantuml-exporter.js.map +2 -2
  260. package/dist/export/report-formatters.js +111 -0
  261. package/dist/export/report-formatters.js.map +7 -0
  262. package/dist/export/stats-formatters.js +98 -0
  263. package/dist/export/stats-formatters.js.map +7 -0
  264. package/dist/export/types.js +2 -14
  265. package/dist/export/types.js.map +2 -2
  266. package/dist/export/verify-formatters.js +153 -0
  267. package/dist/export/verify-formatters.js.map +7 -0
  268. package/dist/generated/compiled-validators.js +17 -0
  269. package/dist/generated/compiled-validators.js.map +7 -0
  270. package/dist/generated/index.js +31 -0
  271. package/dist/generated/index.js.map +7 -0
  272. package/dist/generated/layer-registry.js +190 -0
  273. package/dist/generated/layer-registry.js.map +7 -0
  274. package/dist/generated/layer-types.js +7 -0
  275. package/dist/generated/layer-types.js.map +7 -0
  276. package/dist/generated/node-types.js +1719 -0
  277. package/dist/generated/node-types.js.map +7 -0
  278. package/dist/generated/relationship-index.js +14552 -0
  279. package/dist/generated/relationship-index.js.map +7 -0
  280. package/dist/import/archimate-importer.js +166 -0
  281. package/dist/import/archimate-importer.js.map +7 -0
  282. package/dist/import/index.js +47 -0
  283. package/dist/import/index.js.map +7 -0
  284. package/dist/import/openapi-importer.js +143 -0
  285. package/dist/import/openapi-importer.js.map +7 -0
  286. package/dist/import/types.js +1 -0
  287. package/dist/import/types.js.map +7 -0
  288. package/dist/integrations/base-manager.js +311 -0
  289. package/dist/integrations/base-manager.js.map +7 -0
  290. package/dist/integrations/claude-manager.js +360 -0
  291. package/dist/integrations/claude-manager.js.map +7 -0
  292. package/dist/integrations/claude_code/agents/dr-advisor.md +253 -0
  293. package/dist/integrations/claude_code/agents/dr-architect.md +278 -0
  294. package/dist/integrations/claude_code/agents/dr-extractor.md +286 -0
  295. package/dist/integrations/claude_code/commands/dr-changeset.md +657 -0
  296. package/dist/integrations/claude_code/commands/dr-design.md +373 -0
  297. package/dist/integrations/claude_code/commands/dr-info.md +132 -0
  298. package/dist/integrations/claude_code/commands/dr-init.md +251 -0
  299. package/dist/integrations/claude_code/commands/dr-map.md +936 -0
  300. package/dist/integrations/claude_code/commands/dr-model.md +493 -0
  301. package/dist/integrations/claude_code/commands/dr-relate.md +814 -0
  302. package/dist/integrations/claude_code/commands/dr-sync.md +279 -0
  303. package/dist/integrations/claude_code/commands/dr-validate.md +654 -0
  304. package/dist/integrations/claude_code/commands/dr-verify.md +559 -0
  305. package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +903 -0
  306. package/dist/integrations/claude_code/docs/QUICK_START.md +271 -0
  307. package/dist/integrations/claude_code/docs/README.md +347 -0
  308. package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +550 -0
  309. package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +620 -0
  310. package/dist/integrations/claude_code/skills/dr_03_security_layer/SKILL.md +642 -0
  311. package/dist/integrations/claude_code/skills/dr_04_application_layer/SKILL.md +911 -0
  312. package/dist/integrations/claude_code/skills/dr_05_technology_layer/SKILL.md +836 -0
  313. package/dist/integrations/claude_code/skills/dr_06_api_layer/SKILL.md +933 -0
  314. package/dist/integrations/claude_code/skills/dr_07_data_model_layer/SKILL.md +210 -0
  315. package/dist/integrations/claude_code/skills/dr_08_dataset_layer/SKILL.md +319 -0
  316. package/dist/integrations/claude_code/skills/dr_09_ux_layer/SKILL.md +319 -0
  317. package/dist/integrations/claude_code/skills/dr_10_navigation_layer/SKILL.md +318 -0
  318. package/dist/integrations/claude_code/skills/dr_11_apm_layer/SKILL.md +273 -0
  319. package/dist/integrations/claude_code/skills/dr_12_testing_layer/SKILL.md +273 -0
  320. package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +187 -0
  321. package/dist/integrations/claude_code/skills/dr_codebase_memory/SKILL.md +590 -0
  322. package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +295 -0
  323. package/dist/integrations/copilot-manager.js +328 -0
  324. package/dist/integrations/copilot-manager.js.map +7 -0
  325. package/dist/integrations/github_copilot/agents/dr-advisor.md +243 -0
  326. package/dist/integrations/github_copilot/agents/dr-architect.md +1567 -0
  327. package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +491 -0
  328. package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +539 -0
  329. package/dist/integrations/github_copilot/skills/dr_03_security_layer/SKILL.md +667 -0
  330. package/dist/integrations/github_copilot/skills/dr_04_application_layer/SKILL.md +670 -0
  331. package/dist/integrations/github_copilot/skills/dr_05_technology_layer/SKILL.md +660 -0
  332. package/dist/integrations/github_copilot/skills/dr_06_api_layer/SKILL.md +855 -0
  333. package/dist/integrations/github_copilot/skills/dr_07_data_model_layer/SKILL.md +171 -0
  334. package/dist/integrations/github_copilot/skills/dr_08_dataset_layer/SKILL.md +216 -0
  335. package/dist/integrations/github_copilot/skills/dr_09_ux_layer/SKILL.md +230 -0
  336. package/dist/integrations/github_copilot/skills/dr_10_navigation_layer/SKILL.md +228 -0
  337. package/dist/integrations/github_copilot/skills/dr_11_apm_layer/SKILL.md +234 -0
  338. package/dist/integrations/github_copilot/skills/dr_12_testing_layer/SKILL.md +230 -0
  339. package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +187 -0
  340. package/dist/integrations/hash-utils.js +51 -0
  341. package/dist/integrations/hash-utils.js.map +7 -0
  342. package/dist/integrations/types.js +16 -0
  343. package/dist/integrations/types.js.map +7 -0
  344. package/dist/reports/model-layer-report-generator.js +278 -0
  345. package/dist/reports/model-layer-report-generator.js.map +7 -0
  346. package/dist/reports/model-report-data.js +57 -0
  347. package/dist/reports/model-report-data.js.map +7 -0
  348. package/dist/reports/model-report-orchestrator.js +103 -0
  349. package/dist/reports/model-report-orchestrator.js.map +7 -0
  350. package/dist/schemas/bundled/analyzers/cbm.json +595 -0
  351. package/dist/schemas/bundled/analyzers/manifest.json +9 -0
  352. package/dist/schemas/bundled/api.json +3411 -0
  353. package/dist/schemas/bundled/apm.json +2371 -0
  354. package/dist/schemas/bundled/application.json +1253 -0
  355. package/dist/schemas/bundled/base.json +1622 -0
  356. package/dist/schemas/bundled/business.json +1279 -0
  357. package/dist/schemas/bundled/data-model.json +1298 -0
  358. package/dist/schemas/bundled/data-store.json +2025 -0
  359. package/dist/schemas/bundled/manifest.json +93 -0
  360. package/dist/schemas/bundled/motivation.json +1360 -0
  361. package/dist/schemas/bundled/navigation.json +1874 -0
  362. package/dist/schemas/bundled/security.json +3488 -0
  363. package/dist/schemas/bundled/technology.json +2067 -0
  364. package/dist/schemas/bundled/testing.json +3120 -0
  365. package/dist/schemas/bundled/ux.json +3592 -0
  366. package/dist/server/schemas.js +202 -0
  367. package/dist/server/schemas.js.map +7 -0
  368. package/dist/server/server.js +1336 -252
  369. package/dist/server/server.js.map +3 -3
  370. package/dist/server/telemetry-middleware.js +22 -15
  371. package/dist/server/telemetry-middleware.js.map +2 -2
  372. package/dist/server-entry.js +65 -0
  373. package/dist/server-entry.js.map +7 -0
  374. package/dist/telemetry/config.js +89 -0
  375. package/dist/telemetry/config.js.map +7 -0
  376. package/dist/telemetry/console-interceptor.js.map +1 -1
  377. package/dist/telemetry/detect.js +24 -0
  378. package/dist/telemetry/detect.js.map +7 -0
  379. package/dist/telemetry/fetch-otlp-exporter.js +112 -0
  380. package/dist/telemetry/fetch-otlp-exporter.js.map +7 -0
  381. package/dist/telemetry/index.js +153 -3
  382. package/dist/telemetry/index.js.map +2 -2
  383. package/dist/telemetry/resilient-exporter.js +22 -8
  384. package/dist/telemetry/resilient-exporter.js.map +2 -2
  385. package/dist/telemetry/resilient-log-exporter.js +17 -8
  386. package/dist/telemetry/resilient-log-exporter.js.map +2 -2
  387. package/dist/telemetry/test-instrumentation.js.map +2 -2
  388. package/dist/types/index.js +84 -0
  389. package/dist/types/index.js.map +3 -3
  390. package/dist/types/source-reference.js +1 -0
  391. package/dist/types/source-reference.js.map +7 -0
  392. package/dist/utils/chat-logger.js +292 -0
  393. package/dist/utils/chat-logger.js.map +7 -0
  394. package/dist/utils/claude-stream.js +8 -0
  395. package/dist/utils/claude-stream.js.map +7 -0
  396. package/dist/utils/date-utils.js +7 -0
  397. package/dist/utils/date-utils.js.map +7 -0
  398. package/dist/utils/element-utils.js.map +1 -1
  399. package/dist/utils/errors.js +88 -15
  400. package/dist/utils/errors.js.map +3 -3
  401. package/dist/utils/export-python-annotations.js +82 -0
  402. package/dist/utils/export-python-annotations.js.map +7 -0
  403. package/dist/utils/file-io.js +7 -2
  404. package/dist/utils/file-io.js.map +2 -2
  405. package/dist/utils/file-lock.js +156 -0
  406. package/dist/utils/file-lock.js.map +7 -0
  407. package/dist/utils/id-generator.js +18 -0
  408. package/dist/utils/id-generator.js.map +7 -0
  409. package/dist/utils/layer-name-formatter.js +16 -0
  410. package/dist/utils/layer-name-formatter.js.map +7 -0
  411. package/dist/utils/markdown-anchor.js +7 -0
  412. package/dist/utils/markdown-anchor.js.map +7 -0
  413. package/dist/utils/markdown-link.js +12 -0
  414. package/dist/utils/markdown-link.js.map +7 -0
  415. package/dist/utils/markdown-table.js +17 -0
  416. package/dist/utils/markdown-table.js.map +7 -0
  417. package/dist/utils/mermaid-utils.js +11 -0
  418. package/dist/utils/mermaid-utils.js.map +7 -0
  419. package/dist/utils/project-paths.js.map +2 -2
  420. package/dist/utils/source-reference.js +52 -0
  421. package/dist/utils/source-reference.js.map +7 -0
  422. package/dist/utils/spec-installer.js +40 -53
  423. package/dist/utils/spec-installer.js.map +2 -2
  424. package/dist/utils/spec-version.js +5 -1
  425. package/dist/utils/spec-version.js.map +2 -2
  426. package/dist/utils/string-utils.js +12 -0
  427. package/dist/utils/string-utils.js.map +7 -0
  428. package/dist/utils/table-formatting.js +19 -0
  429. package/dist/utils/table-formatting.js.map +7 -0
  430. package/dist/validators/index.js +4 -0
  431. package/dist/validators/index.js.map +2 -2
  432. package/dist/validators/naming-validator.js +20 -23
  433. package/dist/validators/naming-validator.js.map +2 -2
  434. package/dist/validators/reference-validator.js +23 -38
  435. package/dist/validators/reference-validator.js.map +2 -2
  436. package/dist/validators/relationship-schema-validator.js +243 -0
  437. package/dist/validators/relationship-schema-validator.js.map +7 -0
  438. package/dist/validators/schema-validator.js +168 -68
  439. package/dist/validators/schema-validator.js.map +2 -2
  440. package/dist/validators/semantic-validator.js +36 -60
  441. package/dist/validators/semantic-validator.js.map +2 -2
  442. package/dist/validators/types.js.map +2 -2
  443. package/dist/validators/validation-formatter.js +159 -0
  444. package/dist/validators/validation-formatter.js.map +7 -0
  445. package/dist/validators/validator.js +24 -38
  446. package/dist/validators/validator.js.map +2 -2
  447. package/dist/viewer/README.md +139 -0
  448. package/dist/viewer/assets/main-CY0Xufuj.css +1 -0
  449. package/dist/viewer/assets/main-DtgErnwF.js +81 -0
  450. package/dist/viewer/assets/vendor-CxKvDp2x.js +17 -0
  451. package/dist/viewer/favicon.svg +11 -0
  452. package/dist/viewer/fonts/inter/Inter-Black.woff2 +0 -0
  453. package/dist/viewer/fonts/inter/Inter-Bold.woff2 +0 -0
  454. package/dist/viewer/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  455. package/dist/viewer/fonts/inter/Inter-Light.woff2 +0 -0
  456. package/dist/viewer/fonts/inter/Inter-Medium.woff2 +0 -0
  457. package/dist/viewer/fonts/inter/Inter-Regular.woff2 +0 -0
  458. package/dist/viewer/fonts/inter/Inter-SemiBold.woff2 +0 -0
  459. package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 +0 -0
  460. package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 +0 -0
  461. package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 +0 -0
  462. package/dist/viewer/index.html +15 -0
  463. package/dist/viewer/manifest.json +99 -0
  464. package/dist/viewer/version.json +1 -0
  465. package/package.json +37 -13
  466. package/PYTHON_CLI_PARITY.md +0 -265
  467. package/PYTHON_CLI_STRUCTURE_UPDATE.md +0 -246
  468. package/biome.json +0 -42
  469. package/bunfig.toml +0 -3
  470. package/dist/ai/claude-client.js +0 -71
  471. package/dist/ai/claude-client.js.map +0 -7
  472. package/dist/ai/context-provider.js +0 -129
  473. package/dist/ai/context-provider.js.map +0 -7
  474. package/dist/ai/tools.js +0 -231
  475. package/dist/ai/tools.js.map +0 -7
  476. package/dist/commands/migrate.js +0 -36
  477. package/dist/commands/migrate.js.map +0 -7
  478. package/dist/commands/project.js +0 -74
  479. package/dist/commands/project.js.map +0 -7
  480. package/dist/core/active-changeset.js +0 -52
  481. package/dist/core/active-changeset.js.map +0 -7
  482. package/dist/core/projection-engine.js +0 -288
  483. package/dist/core/projection-engine.js.map +0 -7
  484. package/dist/schemas/bundled/01-motivation-layer.schema.json +0 -942
  485. package/dist/schemas/bundled/02-business-layer.schema.json +0 -1293
  486. package/dist/schemas/bundled/03-security-layer.schema.json +0 -2177
  487. package/dist/schemas/bundled/04-application-layer.schema.json +0 -1328
  488. package/dist/schemas/bundled/05-technology-layer.schema.json +0 -1465
  489. package/dist/schemas/bundled/06-api-layer.schema.json +0 -1743
  490. package/dist/schemas/bundled/07-data-model-layer.schema.json +0 -1253
  491. package/dist/schemas/bundled/08-datastore-layer.schema.json +0 -892
  492. package/dist/schemas/bundled/09-ux-layer.schema.json +0 -1506
  493. package/dist/schemas/bundled/10-navigation-layer.schema.json +0 -843
  494. package/dist/schemas/bundled/11-apm-observability-layer.schema.json +0 -1430
  495. package/dist/schemas/bundled/12-testing-layer.schema.json +0 -1091
  496. package/dist/schemas/bundled/common/layer-extensions.schema.json +0 -266
  497. package/dist/schemas/bundled/common/predicates.schema.json +0 -493
  498. package/dist/schemas/bundled/common/relationships.schema.json +0 -791
  499. package/dist/schemas/bundled/common/source-references.schema.json +0 -71
  500. package/dist/schemas/bundled/link-registry.json +0 -1839
  501. package/dist/schemas/bundled/link-registry.schema.json +0 -339
  502. package/dist/schemas/bundled/relationship-catalog.json +0 -1302
  503. package/dist/schemas/bundled/relationship-type.schema.json +0 -221
  504. package/dist/utils/model-path.js +0 -22
  505. package/dist/utils/model-path.js.map +0 -7
  506. package/docs/TEST-INSTRUMENTATION.md +0 -405
  507. package/docs/telemetry.md +0 -427
  508. package/test-debug.js +0 -33
  509. package/test-special.mjs +0 -46
  510. package/test_runner.ts +0 -7
@@ -1,1302 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Relationship Catalog",
4
- "description": "Comprehensive catalog of semantic relationship types for Documentation Robotics",
5
- "version": "2.1.0",
6
- "generatedBy": "Manual",
7
- "lastUpdated": "2025-12-15",
8
-
9
- "relationshipTypes": [
10
- {
11
- "id": "composition",
12
- "predicate": "composes",
13
- "inversePredicate": "composed-of",
14
- "category": "structural",
15
- "archimateAlignment": "Composition",
16
- "description": "Whole-part relationship where the part cannot exist without the whole",
17
- "semantics": {
18
- "directionality": "bidirectional",
19
- "transitivity": false,
20
- "symmetry": false
21
- },
22
- "applicableLayers": ["02", "03", "04", "05", "06", "07", "08", "11", "12"],
23
- "examples": [
24
- {
25
- "source": "BusinessCollaboration",
26
- "target": "BusinessRole",
27
- "description": "Business collaboration composes business roles that participate in it"
28
- },
29
- {
30
- "source": "TestCoverageModel",
31
- "target": "TestCoverageTarget",
32
- "description": "Coverage model composes targets defining what needs testing",
33
- "layer": "12-testing"
34
- },
35
- {
36
- "source": "TestCoverageTarget",
37
- "target": "OutcomeCategory",
38
- "description": "Coverage target composes expected outcome categories",
39
- "layer": "12-testing"
40
- },
41
- {
42
- "source": "CoverageRequirement",
43
- "target": "InputPartitionSelection",
44
- "description": "Coverage requirement composes partition value selections",
45
- "layer": "12-testing"
46
- },
47
- {
48
- "source": "Span",
49
- "target": "SpanEvent",
50
- "description": "Span composes timestamped events occurring during execution",
51
- "layer": "11-apm-observability"
52
- },
53
- {
54
- "source": "APMConfiguration",
55
- "target": "TraceConfiguration",
56
- "description": "APM config composes trace, log, and metric configurations",
57
- "layer": "11-apm-observability"
58
- },
59
- {
60
- "source": "MeterConfig",
61
- "target": "MetricInstrument",
62
- "description": "Meter config composes individual metric instruments",
63
- "layer": "11-apm-observability"
64
- },
65
- {
66
- "source": "ApplicationComponent",
67
- "target": "ApplicationInterface",
68
- "description": "Application component composes its interfaces"
69
- },
70
- {
71
- "source": "OpenAPIDocument",
72
- "target": "Paths",
73
- "description": "API document composes paths object defining all endpoints",
74
- "layer": "06-api"
75
- },
76
- {
77
- "source": "Operation",
78
- "target": "Responses",
79
- "description": "API operation composes its responses object",
80
- "layer": "06-api"
81
- },
82
- {
83
- "source": "Components",
84
- "target": "Schema",
85
- "description": "Components object composes reusable schema definitions",
86
- "layer": "06-api"
87
- },
88
- {
89
- "source": "JSONSchema",
90
- "target": "SchemaDefinition",
91
- "description": "Schema document composes reusable definitions",
92
- "layer": "07-data-model"
93
- },
94
- {
95
- "source": "SchemaDefinition",
96
- "target": "SchemaProperty",
97
- "description": "Schema definition composes its properties",
98
- "layer": "07-data-model"
99
- },
100
- {
101
- "source": "Database",
102
- "target": "DatabaseSchema",
103
- "description": "Database instance contains one or more schemas",
104
- "layer": "08-datastore"
105
- },
106
- {
107
- "source": "DatabaseSchema",
108
- "target": "Table",
109
- "description": "Schema contains tables as physical storage units",
110
- "layer": "08-datastore"
111
- },
112
- {
113
- "source": "Table",
114
- "target": "Column",
115
- "description": "Table is composed of columns defining its structure",
116
- "layer": "08-datastore"
117
- },
118
- {
119
- "source": "Table",
120
- "target": "Constraint",
121
- "description": "Table contains constraints enforcing data integrity",
122
- "layer": "08-datastore"
123
- },
124
- {
125
- "source": "Table",
126
- "target": "Index",
127
- "description": "Table contains indexes for query optimization",
128
- "layer": "08-datastore"
129
- }
130
- ]
131
- },
132
- {
133
- "id": "aggregation",
134
- "predicate": "aggregates",
135
- "inversePredicate": "aggregated-by",
136
- "category": "structural",
137
- "archimateAlignment": "Aggregation",
138
- "description": "Whole-part relationship where the part can exist independently",
139
- "semantics": {
140
- "directionality": "bidirectional",
141
- "transitivity": false,
142
- "symmetry": false
143
- },
144
- "applicableLayers": ["01", "02", "03", "04", "05", "06", "07", "08", "11", "12"],
145
- "examples": [
146
- {
147
- "source": "Goal",
148
- "target": "Goal",
149
- "description": "High-level goal aggregates sub-goals",
150
- "layer": "01-motivation"
151
- },
152
- {
153
- "source": "InputPartitionSelection",
154
- "target": "PartitionValue",
155
- "description": "Partition selection aggregates multiple partition values to cover",
156
- "layer": "12-testing"
157
- },
158
- {
159
- "source": "CoverageRequirement",
160
- "target": "ContextVariation",
161
- "description": "Requirement aggregates selected contexts for testing",
162
- "layer": "12-testing"
163
- },
164
- {
165
- "source": "Resource",
166
- "target": "Span",
167
- "description": "Resource aggregates all spans it produces",
168
- "layer": "11-apm-observability"
169
- },
170
- {
171
- "source": "InstrumentationScope",
172
- "target": "MetricInstrument",
173
- "description": "Instrumentation scope aggregates metrics it records",
174
- "layer": "11-apm-observability"
175
- },
176
- {
177
- "source": "TraceConfiguration",
178
- "target": "ExporterConfig",
179
- "description": "Trace config aggregates trace exporters",
180
- "layer": "11-apm-observability"
181
- },
182
- {
183
- "source": "Requirement",
184
- "target": "Requirement",
185
- "description": "High-level requirement aggregates detailed requirements",
186
- "layer": "01-motivation"
187
- },
188
- {
189
- "source": "Product",
190
- "target": "BusinessService",
191
- "description": "Product aggregates business services it offers"
192
- },
193
- {
194
- "source": "OpenAPIDocument",
195
- "target": "Server",
196
- "description": "API document aggregates server definitions",
197
- "layer": "06-api"
198
- },
199
- {
200
- "source": "OpenAPIDocument",
201
- "target": "Tag",
202
- "description": "API document aggregates tag definitions for operation grouping",
203
- "layer": "06-api"
204
- },
205
- {
206
- "source": "Operation",
207
- "target": "SecurityRequirement",
208
- "description": "Operation aggregates its security requirements",
209
- "layer": "06-api"
210
- },
211
- {
212
- "source": "JSONSchema",
213
- "target": "DataGovernance",
214
- "description": "Schema aggregates governance metadata",
215
- "layer": "07-data-model"
216
- },
217
- {
218
- "source": "JSONSchema",
219
- "target": "DataQualityMetrics",
220
- "description": "Schema aggregates quality metrics configuration",
221
- "layer": "07-data-model"
222
- },
223
- {
224
- "source": "Index",
225
- "target": "Column",
226
- "description": "Index aggregates one or more columns (composite indexes)",
227
- "layer": "08-datastore"
228
- },
229
- {
230
- "source": "Constraint",
231
- "target": "Column",
232
- "description": "Constraint aggregates columns (composite keys, multi-column checks)",
233
- "layer": "08-datastore"
234
- }
235
- ]
236
- },
237
- {
238
- "id": "specialization",
239
- "predicate": "specializes",
240
- "inversePredicate": "generalized-by",
241
- "category": "structural",
242
- "archimateAlignment": "Specialization",
243
- "description": "Type-subtype relationship (inheritance)",
244
- "semantics": {
245
- "directionality": "bidirectional",
246
- "transitivity": true,
247
- "symmetry": false
248
- },
249
- "applicableLayers": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
250
- "examples": [
251
- {
252
- "source": "PremiumAccount",
253
- "target": "Account",
254
- "description": "Premium account specializes the general account concept"
255
- },
256
- {
257
- "source": "Schema",
258
- "target": "Schema",
259
- "description": "API schema specializes another via allOf/oneOf/anyOf composition",
260
- "layer": "06-api"
261
- }
262
- ]
263
- },
264
- {
265
- "id": "realization",
266
- "predicate": "realizes",
267
- "inversePredicate": "realized-by",
268
- "category": "structural",
269
- "archimateAlignment": "Realization",
270
- "description": "Implementation element realizes abstract element",
271
- "semantics": {
272
- "directionality": "bidirectional",
273
- "transitivity": true,
274
- "symmetry": false
275
- },
276
- "applicableLayers": ["01", "02", "04", "05", "06", "07"],
277
- "examples": [
278
- {
279
- "source": "Goal",
280
- "target": "Value",
281
- "description": "Goal realizes value for stakeholders",
282
- "layer": "01-motivation"
283
- },
284
- {
285
- "source": "Outcome",
286
- "target": "Goal",
287
- "description": "Outcome realizes achievement of goal",
288
- "layer": "01-motivation"
289
- },
290
- {
291
- "source": "ApplicationService",
292
- "target": "BusinessService",
293
- "description": "Application service realizes business service capability"
294
- },
295
- {
296
- "source": "APIOperation",
297
- "target": "ApplicationInterface",
298
- "description": "API operation realizes application interface"
299
- }
300
- ]
301
- },
302
- {
303
- "id": "assignment",
304
- "predicate": "assigned-to",
305
- "inversePredicate": "assigns",
306
- "category": "structural",
307
- "archimateAlignment": "Assignment",
308
- "description": "Active element assigned to behavior or role",
309
- "semantics": {
310
- "directionality": "bidirectional",
311
- "transitivity": false,
312
- "symmetry": false
313
- },
314
- "applicableLayers": ["02", "03", "04", "05"],
315
- "examples": [
316
- {
317
- "source": "BusinessActor",
318
- "target": "BusinessRole",
319
- "description": "Business actor assigned to business role"
320
- }
321
- ]
322
- },
323
- {
324
- "id": "association",
325
- "predicate": "associated-with",
326
- "inversePredicate": "associated-with",
327
- "category": "structural",
328
- "archimateAlignment": "Association",
329
- "description": "Generic relationship indicating elements are related or connected",
330
- "semantics": {
331
- "directionality": "bidirectional",
332
- "transitivity": false,
333
- "symmetry": true
334
- },
335
- "applicableLayers": ["01", "02", "03", "04", "05", "06"],
336
- "examples": [
337
- {
338
- "source": "Stakeholder",
339
- "target": "Driver",
340
- "description": "Stakeholder has concern represented by driver",
341
- "layer": "01-motivation"
342
- },
343
- {
344
- "source": "Stakeholder",
345
- "target": "Goal",
346
- "description": "Stakeholder has interest in goal",
347
- "layer": "01-motivation"
348
- },
349
- {
350
- "source": "Requirement",
351
- "target": "Constraint",
352
- "description": "Requirement is limited by constraint",
353
- "layer": "01-motivation"
354
- },
355
- {
356
- "source": "Value",
357
- "target": "Stakeholder",
358
- "description": "Value is desired by stakeholder",
359
- "layer": "01-motivation"
360
- },
361
- {
362
- "source": "Outcome",
363
- "target": "Value",
364
- "description": "Outcome demonstrates value achievement",
365
- "layer": "01-motivation"
366
- },
367
- {
368
- "source": "Meaning",
369
- "target": "Value",
370
- "description": "Meaning interprets significance of value",
371
- "layer": "01-motivation"
372
- },
373
- {
374
- "source": "Meaning",
375
- "target": "Outcome",
376
- "description": "Meaning provides context for outcome",
377
- "layer": "01-motivation"
378
- },
379
- {
380
- "source": "Contact",
381
- "target": "OpenAPIDocument",
382
- "description": "Contact is associated with API document for support",
383
- "layer": "06-api"
384
- },
385
- {
386
- "source": "License",
387
- "target": "OpenAPIDocument",
388
- "description": "License is associated with API document for legal terms",
389
- "layer": "06-api"
390
- }
391
- ]
392
- },
393
- {
394
- "id": "influence",
395
- "predicate": "influence",
396
- "inversePredicate": "influenced-by",
397
- "category": "behavioral",
398
- "archimateAlignment": "Influence",
399
- "description": "Element affects or impacts another element",
400
- "semantics": {
401
- "directionality": "bidirectional",
402
- "transitivity": false,
403
- "symmetry": false
404
- },
405
- "applicableLayers": ["01", "02", "04"],
406
- "examples": [
407
- {
408
- "source": "Driver",
409
- "target": "Assessment",
410
- "description": "Driver creates need for assessment",
411
- "layer": "01-motivation"
412
- },
413
- {
414
- "source": "Driver",
415
- "target": "Goal",
416
- "description": "Driver motivates goal definition",
417
- "layer": "01-motivation"
418
- },
419
- {
420
- "source": "Assessment",
421
- "target": "Goal",
422
- "description": "Assessment informs goal setting",
423
- "layer": "01-motivation"
424
- },
425
- {
426
- "source": "Goal",
427
- "target": "Principle",
428
- "description": "Goal drives principle establishment",
429
- "layer": "01-motivation"
430
- },
431
- {
432
- "source": "Principle",
433
- "target": "Requirement",
434
- "description": "Principle guides requirement definition",
435
- "layer": "01-motivation"
436
- },
437
- {
438
- "source": "Constraint",
439
- "target": "Requirement",
440
- "description": "Constraint restricts requirement scope",
441
- "layer": "01-motivation"
442
- }
443
- ]
444
- },
445
- {
446
- "id": "triggering",
447
- "predicate": "triggers",
448
- "inversePredicate": "triggered-by",
449
- "category": "behavioral",
450
- "archimateAlignment": "Triggering",
451
- "description": "Event or behavior triggers another behavior",
452
- "semantics": {
453
- "directionality": "bidirectional",
454
- "transitivity": false,
455
- "symmetry": false
456
- },
457
- "applicableLayers": ["02", "04", "05", "06", "08", "11", "12"],
458
- "examples": [
459
- {
460
- "source": "BusinessEvent",
461
- "target": "BusinessProcess",
462
- "description": "Business event triggers business process execution"
463
- },
464
- {
465
- "source": "PartitionDependency",
466
- "target": "PartitionValue",
467
- "description": "Dependency condition triggers inclusion/exclusion of partition values",
468
- "layer": "12-testing"
469
- },
470
- {
471
- "source": "CoverageGap",
472
- "target": "CoverageRequirement",
473
- "description": "Identified gap triggers need for additional coverage",
474
- "layer": "12-testing"
475
- },
476
- {
477
- "source": "DataQualityMetric",
478
- "target": "LogRecord",
479
- "description": "Quality violation triggers alert log record",
480
- "layer": "11-apm-observability"
481
- },
482
- {
483
- "source": "Operation",
484
- "target": "Callback",
485
- "description": "API operation triggers callback webhooks on events",
486
- "layer": "06-api"
487
- },
488
- {
489
- "source": "Trigger",
490
- "target": "Function",
491
- "description": "Database trigger executes specified function on event",
492
- "layer": "08-datastore"
493
- }
494
- ]
495
- },
496
- {
497
- "id": "flow",
498
- "predicate": "flows-to",
499
- "inversePredicate": "flows-from",
500
- "category": "behavioral",
501
- "archimateAlignment": "Flow",
502
- "description": "Sequential or data flow between behaviors",
503
- "semantics": {
504
- "directionality": "bidirectional",
505
- "transitivity": false,
506
- "symmetry": false
507
- },
508
- "applicableLayers": ["02", "04", "05", "09", "10", "11", "12"],
509
- "examples": [
510
- {
511
- "source": "BusinessProcess",
512
- "target": "BusinessProcess",
513
- "description": "One business process flows to the next in sequence"
514
- },
515
- {
516
- "source": "TestCoverageTarget",
517
- "target": "CoverageRequirement",
518
- "description": "Target flows to requirements that specify its coverage",
519
- "layer": "12-testing"
520
- },
521
- {
522
- "source": "CoverageRequirement",
523
- "target": "TestCaseSketch",
524
- "description": "Requirement flows to sketches that implement it",
525
- "layer": "12-testing"
526
- },
527
- {
528
- "source": "Span",
529
- "target": "Span",
530
- "description": "Span flows to child spans (request propagation)",
531
- "layer": "11-apm-observability"
532
- },
533
- {
534
- "source": "LogProcessor",
535
- "target": "LogProcessor",
536
- "description": "Log records flow through processor pipeline in order",
537
- "layer": "11-apm-observability"
538
- },
539
- {
540
- "source": "MetricInstrument",
541
- "target": "ExporterConfig",
542
- "description": "Collected metrics flow to configured exporters",
543
- "layer": "11-apm-observability"
544
- }
545
- ]
546
- },
547
- {
548
- "id": "serving",
549
- "predicate": "serves",
550
- "inversePredicate": "served-by",
551
- "category": "behavioral",
552
- "archimateAlignment": "Serving",
553
- "description": "Service available to consumer",
554
- "semantics": {
555
- "directionality": "bidirectional",
556
- "transitivity": false,
557
- "symmetry": false
558
- },
559
- "applicableLayers": ["02", "04", "05", "06", "08", "11", "12"],
560
- "examples": [
561
- {
562
- "source": "BusinessService",
563
- "target": "BusinessActor",
564
- "description": "Business service serves business actor"
565
- },
566
- {
567
- "source": "InputSpacePartition",
568
- "target": "TestCoverageTarget",
569
- "description": "Partition serves target by defining testable input space",
570
- "layer": "12-testing"
571
- },
572
- {
573
- "source": "ContextVariation",
574
- "target": "TestCoverageTarget",
575
- "description": "Context serves target by defining execution environments",
576
- "layer": "12-testing"
577
- },
578
- {
579
- "source": "InstrumentationConfig",
580
- "target": "Resource",
581
- "description": "Instrumentation config serves resources it instruments",
582
- "layer": "11-apm-observability"
583
- },
584
- {
585
- "source": "ExporterConfig",
586
- "target": "APMConfiguration",
587
- "description": "Exporter serves APM configuration by delivering telemetry",
588
- "layer": "11-apm-observability"
589
- },
590
- {
591
- "source": "SecurityScheme",
592
- "target": "Operation",
593
- "description": "Security scheme serves operations requiring authentication",
594
- "layer": "06-api"
595
- }
596
- ]
597
- },
598
- {
599
- "id": "access",
600
- "predicate": "accesses",
601
- "inversePredicate": "accessed-by",
602
- "category": "behavioral",
603
- "archimateAlignment": "Access",
604
- "description": "Behavior accesses passive element (data/artifact)",
605
- "semantics": {
606
- "directionality": "bidirectional",
607
- "transitivity": false,
608
- "symmetry": false
609
- },
610
- "applicableLayers": ["02", "04", "05", "06", "07", "08", "11", "12"],
611
- "examples": [
612
- {
613
- "source": "BusinessProcess",
614
- "target": "BusinessObject",
615
- "description": "Business process accesses business object data"
616
- },
617
- {
618
- "source": "TestCaseSketch",
619
- "target": "InputSelection",
620
- "description": "Test sketch accesses input selections for test execution",
621
- "layer": "12-testing"
622
- },
623
- {
624
- "source": "CoverageRequirement",
625
- "target": "InputPartitionSelection",
626
- "description": "Requirement accesses partition selections for coverage",
627
- "layer": "12-testing"
628
- },
629
- {
630
- "source": "LogProcessor",
631
- "target": "Attribute",
632
- "description": "Log processor accesses attributes for filtering/transformation",
633
- "layer": "11-apm-observability"
634
- },
635
- {
636
- "source": "MetricInstrument",
637
- "target": "Attribute",
638
- "description": "Metric instrument accesses attributes for labeling",
639
- "layer": "11-apm-observability"
640
- },
641
- {
642
- "source": "APIOperation",
643
- "target": "DataObject",
644
- "description": "API operation accesses data object"
645
- }
646
- ]
647
- },
648
- {
649
- "id": "uses",
650
- "predicate": "uses",
651
- "inversePredicate": "used-by",
652
- "category": "dependency",
653
- "archimateAlignment": null,
654
- "description": "Element depends on another for functionality",
655
- "semantics": {
656
- "directionality": "bidirectional",
657
- "transitivity": false,
658
- "symmetry": false
659
- },
660
- "applicableLayers": ["02", "03", "04", "05", "09"],
661
- "examples": [
662
- {
663
- "source": "ApplicationComponent",
664
- "target": "TechnologyService",
665
- "description": "Application component uses technology service"
666
- }
667
- ]
668
- },
669
- {
670
- "id": "reference",
671
- "predicate": "references",
672
- "inversePredicate": "referenced-by",
673
- "category": "dependency",
674
- "archimateAlignment": null,
675
- "description": "Pointer reference without functional dependency",
676
- "semantics": {
677
- "directionality": "bidirectional",
678
- "transitivity": false,
679
- "symmetry": false
680
- },
681
- "applicableLayers": ["03", "04", "06", "07", "08", "09", "11", "12"],
682
- "examples": [
683
- {
684
- "source": "DataObject",
685
- "target": "Schema",
686
- "description": "Data object references JSON schema"
687
- },
688
- {
689
- "source": "TestCaseSketch",
690
- "target": "CoverageRequirement",
691
- "description": "Test case sketch references coverage requirement it satisfies",
692
- "layer": "12-testing"
693
- },
694
- {
695
- "source": "CoverageRequirement",
696
- "target": "TestCoverageTarget",
697
- "description": "Coverage requirement references target it covers",
698
- "layer": "12-testing"
699
- },
700
- {
701
- "source": "InputSelection",
702
- "target": "PartitionValue",
703
- "description": "Input selection references selected partition value",
704
- "layer": "12-testing"
705
- },
706
- {
707
- "source": "Span",
708
- "target": "Span",
709
- "description": "Span references parent span via parentSpanId (trace hierarchy)",
710
- "layer": "11-apm-observability"
711
- },
712
- {
713
- "source": "LogRecord",
714
- "target": "Span",
715
- "description": "Log record references associated span via traceContext",
716
- "layer": "11-apm-observability"
717
- },
718
- {
719
- "source": "SpanLink",
720
- "target": "Span",
721
- "description": "Span link references target span across traces",
722
- "layer": "11-apm-observability"
723
- },
724
- {
725
- "source": "APIOperation",
726
- "target": "BusinessService",
727
- "description": "API operation references business service it supports"
728
- },
729
- {
730
- "source": "Schema",
731
- "target": "Schema",
732
- "description": "API schema references another schema via $ref",
733
- "layer": "06-api"
734
- },
735
- {
736
- "source": "Parameter",
737
- "target": "Schema",
738
- "description": "Parameter references a schema for its data type",
739
- "layer": "06-api"
740
- },
741
- {
742
- "source": "Link",
743
- "target": "Operation",
744
- "description": "Link references target operation via operationId for HATEOAS",
745
- "layer": "06-api"
746
- },
747
- {
748
- "source": "Operation",
749
- "target": "Tag",
750
- "description": "Operation references tags for categorization",
751
- "layer": "06-api"
752
- }
753
- ]
754
- },
755
- {
756
- "id": "depends-on",
757
- "predicate": "depends-on",
758
- "inversePredicate": "dependency-of",
759
- "category": "dependency",
760
- "archimateAlignment": null,
761
- "description": "Element requires another to function",
762
- "semantics": {
763
- "directionality": "bidirectional",
764
- "transitivity": true,
765
- "symmetry": false
766
- },
767
- "applicableLayers": ["04", "05", "06", "08", "09", "11", "12"],
768
- "examples": [
769
- {
770
- "source": "ApplicationService",
771
- "target": "DataObject",
772
- "description": "Application service depends on data object"
773
- },
774
- {
775
- "source": "TestCaseSketch",
776
- "target": "ContextVariation",
777
- "description": "Test sketch depends on context for execution environment",
778
- "layer": "12-testing"
779
- },
780
- {
781
- "source": "TestCaseSketch",
782
- "target": "OutcomeCategory",
783
- "description": "Test sketch depends on expected outcome category",
784
- "layer": "12-testing"
785
- },
786
- {
787
- "source": "CoverageRequirement",
788
- "target": "InputSpacePartition",
789
- "description": "Requirement depends on partitions for coverage criteria",
790
- "layer": "12-testing"
791
- },
792
- {
793
- "source": "Span",
794
- "target": "Resource",
795
- "description": "Span depends on resource for identity context",
796
- "layer": "11-apm-observability"
797
- },
798
- {
799
- "source": "Span",
800
- "target": "InstrumentationScope",
801
- "description": "Span depends on instrumentation scope for source context",
802
- "layer": "11-apm-observability"
803
- },
804
- {
805
- "source": "LogRecord",
806
- "target": "Resource",
807
- "description": "Log record depends on resource for identity context",
808
- "layer": "11-apm-observability"
809
- },
810
- {
811
- "source": "MetricInstrument",
812
- "target": "InstrumentationScope",
813
- "description": "Metric instrument depends on instrumentation scope",
814
- "layer": "11-apm-observability"
815
- }
816
- ]
817
- },
818
- {
819
- "id": "supports-goals",
820
- "predicate": "supports-goals",
821
- "inversePredicate": "supported-by",
822
- "category": "traceability",
823
- "archimateAlignment": null,
824
- "description": "Implementation contributes to achieving goal",
825
- "semantics": {
826
- "directionality": "bidirectional",
827
- "transitivity": true,
828
- "symmetry": false
829
- },
830
- "applicableLayers": ["02", "04", "05", "06"],
831
- "fieldPaths": ["motivation.supports-goals", "x-supports-goals"],
832
- "examples": [
833
- {
834
- "source": "BusinessService",
835
- "sourceLayer": "02-business",
836
- "target": "Goal",
837
- "targetLayer": "01-motivation",
838
- "value": "goal-revenue-growth",
839
- "description": "Payment service supports revenue growth goal"
840
- },
841
- {
842
- "source": "Operation",
843
- "sourceLayer": "06-api",
844
- "target": "Goal",
845
- "targetLayer": "01-motivation",
846
- "value": "goal-customer-satisfaction",
847
- "description": "GET /products operation supports customer satisfaction goal"
848
- }
849
- ]
850
- },
851
- {
852
- "id": "fulfills-requirements",
853
- "predicate": "fulfills-requirements",
854
- "inversePredicate": "fulfilled-by",
855
- "category": "traceability",
856
- "archimateAlignment": null,
857
- "description": "Implementation satisfies requirement",
858
- "semantics": {
859
- "directionality": "bidirectional",
860
- "transitivity": false,
861
- "symmetry": false
862
- },
863
- "applicableLayers": ["02", "04", "05", "06", "03", "11"],
864
- "fieldPaths": ["motivation.fulfills-requirements", "x-fulfills-requirements"],
865
- "examples": [
866
- {
867
- "source": "ApplicationService",
868
- "target": "Requirement",
869
- "description": "OAuth service fulfills authentication requirement"
870
- },
871
- {
872
- "source": "Operation",
873
- "sourceLayer": "06-api",
874
- "target": "Requirement",
875
- "targetLayer": "01-motivation",
876
- "value": "req-product-creation-capability",
877
- "description": "POST /products operation fulfills product creation requirement"
878
- }
879
- ]
880
- },
881
- {
882
- "id": "delivers-value",
883
- "predicate": "delivers-value",
884
- "inversePredicate": "delivered-by",
885
- "category": "traceability",
886
- "archimateAlignment": null,
887
- "description": "Implementation provides business value",
888
- "semantics": {
889
- "directionality": "bidirectional",
890
- "transitivity": false,
891
- "symmetry": false
892
- },
893
- "applicableLayers": ["02"],
894
- "fieldPaths": ["motivation.delivers-value"],
895
- "examples": [
896
- {
897
- "source": "BusinessService",
898
- "target": "Value",
899
- "description": "Loyalty program delivers customer retention value"
900
- }
901
- ]
902
- },
903
- {
904
- "id": "measures-outcome",
905
- "predicate": "measures-outcome",
906
- "inversePredicate": "measured-by",
907
- "category": "traceability",
908
- "archimateAlignment": null,
909
- "description": "Metric validates outcome achievement",
910
- "semantics": {
911
- "directionality": "bidirectional",
912
- "transitivity": false,
913
- "symmetry": false
914
- },
915
- "applicableLayers": ["11", "12"],
916
- "fieldPaths": ["motivationMapping.measuresOutcome"],
917
- "examples": [
918
- {
919
- "source": "Metric",
920
- "target": "Outcome",
921
- "description": "Response time metric measures performance outcome"
922
- }
923
- ]
924
- },
925
- {
926
- "id": "governed-by-principles",
927
- "predicate": "governed-by-principles",
928
- "inversePredicate": "governs",
929
- "category": "governance",
930
- "archimateAlignment": null,
931
- "description": "Element follows architectural principle",
932
- "semantics": {
933
- "directionality": "bidirectional",
934
- "transitivity": false,
935
- "symmetry": false
936
- },
937
- "applicableLayers": ["02", "04", "05", "06", "07"],
938
- "fieldPaths": ["motivation.governed-by-principles", "x-governed-by-principles"],
939
- "examples": [
940
- {
941
- "source": "APIOperation",
942
- "target": "Principle",
943
- "description": "REST API governed by RESTful design principles"
944
- }
945
- ]
946
- },
947
- {
948
- "id": "constrainedby",
949
- "predicate": "constrained-by",
950
- "inversePredicate": "constrains",
951
- "category": "governance",
952
- "archimateAlignment": null,
953
- "description": "Element limited by constraint",
954
- "semantics": {
955
- "directionality": "bidirectional",
956
- "transitivity": false,
957
- "symmetry": false
958
- },
959
- "applicableLayers": ["03", "04", "05", "06", "07"],
960
- "fieldPaths": ["motivation.constrained-by", "x-constrained-by"],
961
- "examples": [
962
- {
963
- "source": "APIOperation",
964
- "target": "Constraint",
965
- "description": "API operation constrained by rate limit"
966
- }
967
- ]
968
- },
969
- {
970
- "id": "enforces-requirement",
971
- "predicate": "enforces-requirement",
972
- "inversePredicate": "enforced-by",
973
- "category": "governance",
974
- "archimateAlignment": null,
975
- "description": "Element actively enforces requirement",
976
- "semantics": {
977
- "directionality": "bidirectional",
978
- "transitivity": false,
979
- "symmetry": false
980
- },
981
- "applicableLayers": ["03", "10"],
982
- "fieldPaths": ["motivationAlignment.enforcesRequirement"],
983
- "examples": [
984
- {
985
- "source": "NavigationGuard",
986
- "target": "Requirement",
987
- "description": "Auth guard enforces authentication requirement"
988
- }
989
- ]
990
- },
991
- {
992
- "id": "traces",
993
- "predicate": "traces",
994
- "inversePredicate": "traced-by",
995
- "category": "apm",
996
- "archimateAlignment": null,
997
- "description": "Distributed tracing relationships",
998
- "semantics": {
999
- "directionality": "bidirectional",
1000
- "transitivity": false,
1001
- "symmetry": false
1002
- },
1003
- "applicableLayers": ["04", "06", "11"],
1004
- "fieldPaths": ["apm.traces", "x-traces"],
1005
- "examples": [
1006
- {
1007
- "source": "APIOperation",
1008
- "target": "DistributedTrace",
1009
- "description": "API operation participates in distributed trace"
1010
- }
1011
- ]
1012
- },
1013
- {
1014
- "id": "monitors",
1015
- "predicate": "monitors",
1016
- "inversePredicate": "monitored-by",
1017
- "category": "apm",
1018
- "archimateAlignment": null,
1019
- "description": "Health/performance monitoring",
1020
- "semantics": {
1021
- "directionality": "bidirectional",
1022
- "transitivity": false,
1023
- "symmetry": false
1024
- },
1025
- "applicableLayers": ["11"],
1026
- "fieldPaths": ["apm.monitors", "x-monitors"],
1027
- "examples": [
1028
- {
1029
- "source": "HealthCheck",
1030
- "target": "ApplicationService",
1031
- "description": "Health check monitors application service"
1032
- }
1033
- ]
1034
- },
1035
- {
1036
- "id": "measures",
1037
- "predicate": "measures",
1038
- "inversePredicate": "measured-by",
1039
- "category": "apm",
1040
- "archimateAlignment": null,
1041
- "description": "Metric collection relationships",
1042
- "semantics": {
1043
- "directionality": "bidirectional",
1044
- "transitivity": false,
1045
- "symmetry": false
1046
- },
1047
- "applicableLayers": ["11"],
1048
- "fieldPaths": ["apm.measures", "x-measures"],
1049
- "examples": [
1050
- {
1051
- "source": "Metric",
1052
- "target": "APIOperation",
1053
- "description": "Response time metric measures API operation"
1054
- }
1055
- ]
1056
- },
1057
- {
1058
- "id": "protects",
1059
- "predicate": "protects",
1060
- "inversePredicate": "protected-by",
1061
- "category": "security",
1062
- "archimateAlignment": null,
1063
- "description": "Security control relationships",
1064
- "semantics": {
1065
- "directionality": "bidirectional",
1066
- "transitivity": false,
1067
- "symmetry": false
1068
- },
1069
- "applicableLayers": ["03"],
1070
- "fieldPaths": ["security.protects", "x-protects"],
1071
- "examples": [
1072
- {
1073
- "source": "SecurityControl",
1074
- "target": "ApplicationService",
1075
- "description": "Encryption control protects sensitive data service"
1076
- }
1077
- ]
1078
- },
1079
- {
1080
- "id": "authenticates",
1081
- "predicate": "authenticates",
1082
- "inversePredicate": "authenticated-by",
1083
- "category": "security",
1084
- "archimateAlignment": null,
1085
- "description": "Authentication flows",
1086
- "semantics": {
1087
- "directionality": "bidirectional",
1088
- "transitivity": false,
1089
- "symmetry": false
1090
- },
1091
- "applicableLayers": ["03"],
1092
- "fieldPaths": ["security.authenticates", "x-authenticates"],
1093
- "examples": [
1094
- {
1095
- "source": "AuthenticationService",
1096
- "target": "User",
1097
- "description": "OAuth service authenticates user"
1098
- }
1099
- ]
1100
- },
1101
- {
1102
- "id": "authorization",
1103
- "predicate": "authorizes",
1104
- "inversePredicate": "authorized-by",
1105
- "category": "security",
1106
- "archimateAlignment": null,
1107
- "description": "Permission grants",
1108
- "semantics": {
1109
- "directionality": "bidirectional",
1110
- "transitivity": false,
1111
- "symmetry": false
1112
- },
1113
- "applicableLayers": ["03"],
1114
- "fieldPaths": ["security.authorizes", "x-authorizes"],
1115
- "examples": [
1116
- {
1117
- "source": "Role",
1118
- "target": "Operation",
1119
- "description": "Admin role authorizes delete operation"
1120
- }
1121
- ]
1122
- },
1123
- {
1124
- "id": "renders",
1125
- "predicate": "renders",
1126
- "inversePredicate": "rendered-by",
1127
- "category": "ux",
1128
- "archimateAlignment": null,
1129
- "description": "UI rendering relationships",
1130
- "semantics": {
1131
- "directionality": "bidirectional",
1132
- "transitivity": false,
1133
- "symmetry": false
1134
- },
1135
- "applicableLayers": ["09"],
1136
- "fieldPaths": ["ux.renders", "x-renders"],
1137
- "examples": [
1138
- {
1139
- "source": "UIComponent",
1140
- "target": "UIView",
1141
- "description": "Layout component renders view content"
1142
- }
1143
- ]
1144
- },
1145
- {
1146
- "id": "binds-to",
1147
- "predicate": "binds-to",
1148
- "inversePredicate": "bound-by",
1149
- "category": "ux",
1150
- "archimateAlignment": null,
1151
- "description": "Data binding relationships",
1152
- "semantics": {
1153
- "directionality": "bidirectional",
1154
- "transitivity": false,
1155
- "symmetry": false
1156
- },
1157
- "applicableLayers": ["09"],
1158
- "fieldPaths": ["ux.binds-to", "x-binds-to"],
1159
- "examples": [
1160
- {
1161
- "source": "UIComponent",
1162
- "target": "DataObject",
1163
- "description": "Form component binds to user data object"
1164
- }
1165
- ]
1166
- },
1167
- {
1168
- "id": "navigates-to",
1169
- "predicate": "navigates-to",
1170
- "inversePredicate": "navigated-from",
1171
- "category": "ux",
1172
- "archimateAlignment": null,
1173
- "description": "Navigation flows",
1174
- "semantics": {
1175
- "directionality": "bidirectional",
1176
- "transitivity": false,
1177
- "symmetry": false
1178
- },
1179
- "applicableLayers": ["09", "10"],
1180
- "fieldPaths": ["navigation.navigates-to", "x-navigates-to"],
1181
- "examples": [
1182
- {
1183
- "source": "UIView",
1184
- "target": "UIView",
1185
- "description": "Login view navigates to dashboard view"
1186
- }
1187
- ]
1188
- },
1189
- {
1190
- "id": "maps-to",
1191
- "predicate": "maps-to",
1192
- "inversePredicate": "mapped-from",
1193
- "category": "data",
1194
- "archimateAlignment": null,
1195
- "description": "Schema/table mapping",
1196
- "semantics": {
1197
- "directionality": "bidirectional",
1198
- "transitivity": false,
1199
- "symmetry": false
1200
- },
1201
- "applicableLayers": ["07", "08"],
1202
- "fieldPaths": ["data.maps-to", "x-maps-to"],
1203
- "examples": [
1204
- {
1205
- "source": "DataObject",
1206
- "target": "DatabaseTable",
1207
- "description": "User data object maps to users table"
1208
- }
1209
- ]
1210
- },
1211
- {
1212
- "id": "references-table",
1213
- "predicate": "references-table",
1214
- "inversePredicate": "table-referenced-by",
1215
- "category": "data",
1216
- "archimateAlignment": null,
1217
- "description": "Foreign key relationships",
1218
- "semantics": {
1219
- "directionality": "bidirectional",
1220
- "transitivity": false,
1221
- "symmetry": false
1222
- },
1223
- "applicableLayers": ["08"],
1224
- "fieldPaths": ["data.references-table", "x-references-table"],
1225
- "examples": [
1226
- {
1227
- "source": "OrderTable",
1228
- "target": "CustomerTable",
1229
- "description": "Order table references customer table via foreign key"
1230
- }
1231
- ]
1232
- },
1233
- {
1234
- "id": "derivedfrom",
1235
- "predicate": "derives-from",
1236
- "inversePredicate": "derived-by",
1237
- "category": "data",
1238
- "archimateAlignment": null,
1239
- "description": "Calculated field relationships",
1240
- "semantics": {
1241
- "directionality": "bidirectional",
1242
- "transitivity": false,
1243
- "symmetry": false
1244
- },
1245
- "applicableLayers": ["03", "07", "08"],
1246
- "fieldPaths": ["data.derives-from", "x-derives-from"],
1247
- "examples": [
1248
- {
1249
- "source": "TotalPrice",
1250
- "target": "Quantity, UnitPrice",
1251
- "description": "Total price derives from quantity times unit price"
1252
- }
1253
- ]
1254
- },
1255
- {
1256
- "id": "validates",
1257
- "predicate": "validates",
1258
- "inversePredicate": "validated-by",
1259
- "category": "testing",
1260
- "archimateAlignment": null,
1261
- "description": "Test element validates that a requirement or target is satisfied",
1262
- "semantics": {
1263
- "directionality": "bidirectional",
1264
- "transitivity": false,
1265
- "symmetry": false
1266
- },
1267
- "applicableLayers": ["12"],
1268
- "examples": [
1269
- {
1270
- "source": "TestCaseSketch",
1271
- "target": "CoverageRequirement",
1272
- "description": "Test sketch validates requirement is satisfied",
1273
- "layer": "12-testing"
1274
- },
1275
- {
1276
- "source": "TargetCoverageSummary",
1277
- "target": "TestCoverageTarget",
1278
- "description": "Summary validates coverage completeness of target",
1279
- "layer": "12-testing"
1280
- }
1281
- ]
1282
- }
1283
- ],
1284
-
1285
- "metadata": {
1286
- "totalRelationships": 34,
1287
- "categoryCounts": {
1288
- "structural": 6,
1289
- "behavioral": 5,
1290
- "dependency": 3,
1291
- "traceability": 4,
1292
- "governance": 3,
1293
- "apm": 3,
1294
- "security": 3,
1295
- "ux": 3,
1296
- "data": 3,
1297
- "testing": 1
1298
- },
1299
- "archimateAligned": 11,
1300
- "documentationRoboticsExtensions": 23
1301
- }
1302
- }