@documentation-robotics/cli 0.2.0 → 0.4.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 (335) hide show
  1. package/README.md +46 -16
  2. package/dist/analysis/relationship-classifier.js +2 -9
  3. package/dist/analysis/relationship-classifier.js.map +2 -2
  4. package/dist/analyzers/active-analyzer.js +62 -0
  5. package/dist/analyzers/active-analyzer.js.map +7 -0
  6. package/dist/analyzers/call-graph-utils.js +2 -2
  7. package/dist/analyzers/call-graph-utils.js.map +2 -2
  8. package/dist/analyzers/cards/build.js +191 -0
  9. package/dist/analyzers/cards/build.js.map +7 -0
  10. package/dist/analyzers/cards/classify.js +42 -0
  11. package/dist/analyzers/cards/classify.js.map +7 -0
  12. package/dist/analyzers/cards/edge-index.js +44 -0
  13. package/dist/analyzers/cards/edge-index.js.map +7 -0
  14. package/dist/analyzers/cards/extract.js +138 -0
  15. package/dist/analyzers/cards/extract.js.map +7 -0
  16. package/dist/analyzers/cards/facts.js +46 -0
  17. package/dist/analyzers/cards/facts.js.map +7 -0
  18. package/dist/analyzers/cards/graph.js +42 -0
  19. package/dist/analyzers/cards/graph.js.map +7 -0
  20. package/dist/analyzers/cards/index.js +8 -0
  21. package/dist/analyzers/cards/index.js.map +7 -0
  22. package/dist/analyzers/cards/routes.js +96 -0
  23. package/dist/analyzers/cards/routes.js.map +7 -0
  24. package/dist/analyzers/cards/tier0.js +18 -0
  25. package/dist/analyzers/cards/tier0.js.map +7 -0
  26. package/dist/analyzers/cards/types.js +1 -0
  27. package/dist/analyzers/cards/types.js.map +7 -0
  28. package/dist/analyzers/cbm-analyzer.js +270 -174
  29. package/dist/analyzers/cbm-analyzer.js.map +2 -2
  30. package/dist/analyzers/cbm-responses.js +342 -0
  31. package/dist/analyzers/cbm-responses.js.map +7 -0
  32. package/dist/analyzers/code-changes.js +159 -0
  33. package/dist/analyzers/code-changes.js.map +7 -0
  34. package/dist/analyzers/edge-relationships.js +49 -0
  35. package/dist/analyzers/edge-relationships.js.map +7 -0
  36. package/dist/analyzers/extraction-plan.js +541 -0
  37. package/dist/analyzers/extraction-plan.js.map +7 -0
  38. package/dist/analyzers/index-job.js +229 -0
  39. package/dist/analyzers/index-job.js.map +7 -0
  40. package/dist/analyzers/mapping-loader.js +9 -0
  41. package/dist/analyzers/mapping-loader.js.map +2 -2
  42. package/dist/analyzers/tier0-rules.js +153 -0
  43. package/dist/analyzers/tier0-rules.js.map +7 -0
  44. package/dist/analyzers/types.js.map +1 -1
  45. package/dist/audit/relationships/ai/prompts.js +10 -10
  46. package/dist/audit/relationships/ai/prompts.js.map +2 -2
  47. package/dist/audit/relationships/analysis/layer-templates.js +52 -52
  48. package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
  49. package/dist/cli.js +23 -11
  50. package/dist/cli.js.map +2 -2
  51. package/dist/coding-agents/default-permissions.js +31 -1
  52. package/dist/coding-agents/default-permissions.js.map +2 -2
  53. package/dist/coding-agents/drbot-mcp.js +269 -0
  54. package/dist/coding-agents/drbot-mcp.js.map +7 -0
  55. package/dist/commands/add.js +7 -4
  56. package/dist/commands/add.js.map +2 -2
  57. package/dist/commands/analyzer.js +143 -40
  58. package/dist/commands/analyzer.js.map +2 -2
  59. package/dist/commands/changeset-verify.js +63 -0
  60. package/dist/commands/changeset-verify.js.map +7 -0
  61. package/dist/commands/changeset.js +80 -29
  62. package/dist/commands/changeset.js.map +2 -2
  63. package/dist/commands/delete.js +10 -4
  64. package/dist/commands/delete.js.map +2 -2
  65. package/dist/commands/farm.js +176 -60
  66. package/dist/commands/farm.js.map +2 -2
  67. package/dist/commands/init.js +9 -26
  68. package/dist/commands/init.js.map +2 -2
  69. package/dist/commands/mcp.js +40 -21
  70. package/dist/commands/mcp.js.map +3 -3
  71. package/dist/commands/relationship.js +208 -37
  72. package/dist/commands/relationship.js.map +2 -2
  73. package/dist/commands/reports.js +3 -3
  74. package/dist/commands/reports.js.map +2 -2
  75. package/dist/commands/update.js +52 -32
  76. package/dist/commands/update.js.map +2 -2
  77. package/dist/commands/upgrade.js +99 -103
  78. package/dist/commands/upgrade.js.map +3 -3
  79. package/dist/commands/validate.js +19 -3
  80. package/dist/commands/validate.js.map +2 -2
  81. package/dist/commands/version.js +1 -1
  82. package/dist/commands/visualize.js +34 -15
  83. package/dist/commands/visualize.js.map +2 -2
  84. package/dist/core/annotation-store.js +15 -5
  85. package/dist/core/annotation-store.js.map +2 -2
  86. package/dist/core/catalog-migration.js +34 -0
  87. package/dist/core/catalog-migration.js.map +7 -0
  88. package/dist/core/changeset-analysis.js +421 -0
  89. package/dist/core/changeset-analysis.js.map +7 -0
  90. package/dist/core/changeset-base-index.js +160 -0
  91. package/dist/core/changeset-base-index.js.map +7 -0
  92. package/dist/core/changeset-brief-compact.js +256 -0
  93. package/dist/core/changeset-brief-compact.js.map +7 -0
  94. package/dist/core/changeset-brief-delta.js +102 -0
  95. package/dist/core/changeset-brief-delta.js.map +7 -0
  96. package/dist/core/changeset-graph.js +281 -0
  97. package/dist/core/changeset-graph.js.map +7 -0
  98. package/dist/core/changeset-only-guard.js +32 -0
  99. package/dist/core/changeset-only-guard.js.map +7 -0
  100. package/dist/core/changeset-summary.js +68 -0
  101. package/dist/core/changeset-summary.js.map +7 -0
  102. package/dist/core/changeset-validator.js +66 -20
  103. package/dist/core/changeset-validator.js.map +2 -2
  104. package/dist/core/changeset-verify.js +848 -0
  105. package/dist/core/changeset-verify.js.map +7 -0
  106. package/dist/core/changeset.js +56 -9
  107. package/dist/core/changeset.js.map +2 -2
  108. package/dist/core/element-type-migration.js +145 -0
  109. package/dist/core/element-type-migration.js.map +7 -0
  110. package/dist/core/extraction-observability.js +161 -0
  111. package/dist/core/extraction-observability.js.map +7 -0
  112. package/dist/core/farm-manifest.js +12 -6
  113. package/dist/core/farm-manifest.js.map +2 -2
  114. package/dist/core/farm-sync-engine.js +1 -1
  115. package/dist/core/farm-sync-engine.js.map +2 -2
  116. package/dist/core/farm-sync-state.js +10 -2
  117. package/dist/core/farm-sync-state.js.map +2 -2
  118. package/dist/core/migration-registry.js +88 -47
  119. package/dist/core/migration-registry.js.map +2 -2
  120. package/dist/core/model-upgrade.js +102 -0
  121. package/dist/core/model-upgrade.js.map +7 -0
  122. package/dist/core/model.js +82 -30
  123. package/dist/core/model.js.map +2 -2
  124. package/dist/core/mutation-handler.js +71 -6
  125. package/dist/core/mutation-handler.js.map +2 -2
  126. package/dist/core/project-init.js +53 -0
  127. package/dist/core/project-init.js.map +7 -0
  128. package/dist/core/relationship-migration-table.js +6639 -0
  129. package/dist/core/relationship-migration-table.js.map +7 -0
  130. package/dist/core/relationship-migration.js +272 -0
  131. package/dist/core/relationship-migration.js.map +7 -0
  132. package/dist/core/relationship-prune.js +49 -0
  133. package/dist/core/relationship-prune.js.map +7 -0
  134. package/dist/core/relationship-staging.js +161 -0
  135. package/dist/core/relationship-staging.js.map +7 -0
  136. package/dist/core/relationships.js +26 -4
  137. package/dist/core/relationships.js.map +2 -2
  138. package/dist/core/report-data-model.js +7 -13
  139. package/dist/core/report-data-model.js.map +2 -2
  140. package/dist/core/staged-changeset-storage.js +145 -18
  141. package/dist/core/staged-changeset-storage.js.map +2 -2
  142. package/dist/core/staged-source-reference.js +28 -0
  143. package/dist/core/staged-source-reference.js.map +7 -0
  144. package/dist/core/staging-area.js +166 -24
  145. package/dist/core/staging-area.js.map +2 -2
  146. package/dist/core/upgrade-plan.js +117 -0
  147. package/dist/core/upgrade-plan.js.map +7 -0
  148. package/dist/core/virtual-projection.js +13 -5
  149. package/dist/core/virtual-projection.js.map +2 -2
  150. package/dist/export/archimate-exporter.js +1 -0
  151. package/dist/export/archimate-exporter.js.map +2 -2
  152. package/dist/generated/compiled-validators.js +2 -2
  153. package/dist/generated/compiled-validators.js.map +2 -2
  154. package/dist/generated/layer-registry.js +16 -16
  155. package/dist/generated/layer-registry.js.map +2 -2
  156. package/dist/generated/node-types.js +186 -168
  157. package/dist/generated/node-types.js.map +2 -2
  158. package/dist/generated/relationship-index.js +2468 -7913
  159. package/dist/generated/relationship-index.js.map +2 -2
  160. package/dist/integrations/claude_code/.claude-plugin/plugin.json +24 -0
  161. package/dist/integrations/claude_code/agents/dr-architect.md +30 -3
  162. package/dist/integrations/claude_code/agents/dr-extractor.md +8 -2
  163. package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
  164. package/dist/integrations/claude_code/commands/dr-changeset.md +2 -1
  165. package/dist/integrations/claude_code/commands/dr-map.md +20 -1
  166. package/dist/integrations/claude_code/commands/dr-plan.md +66 -0
  167. package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
  168. package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
  169. package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
  170. package/dist/integrations/claude_code/docs/MCP_SERVER.md +47 -26
  171. package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
  172. package/dist/integrations/claude_code/docs/README.md +68 -2
  173. package/dist/integrations/claude_code/plugin-agents/dr-advisor.md +255 -0
  174. package/dist/integrations/claude_code/plugin-agents/dr-architect.md +306 -0
  175. package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
  176. package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
  177. package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
  178. package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
  179. package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
  180. package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
  181. package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
  182. package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
  183. package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
  184. package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
  185. package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
  186. package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
  187. package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +95 -15
  188. package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +178 -0
  189. package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +8 -0
  190. package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +6 -1
  191. package/dist/integrations/github_copilot/agents/dr-architect.md +3 -1
  192. package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
  193. package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
  194. package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
  195. package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
  196. package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
  197. package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
  198. package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
  199. package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
  200. package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
  201. package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
  202. package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
  203. package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
  204. package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +225 -102
  205. package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +177 -0
  206. package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
  207. package/dist/integrations/hash-utils.js.map +2 -2
  208. package/dist/mcp/api-key-manager.js +14 -1
  209. package/dist/mcp/api-key-manager.js.map +2 -2
  210. package/dist/mcp/changeset-only.js +45 -0
  211. package/dist/mcp/changeset-only.js.map +7 -0
  212. package/dist/mcp/project-root.js +85 -0
  213. package/dist/mcp/project-root.js.map +7 -0
  214. package/dist/mcp/server-instructions.js +27 -0
  215. package/dist/mcp/server-instructions.js.map +7 -0
  216. package/dist/mcp/strict-schema.js +52 -0
  217. package/dist/mcp/strict-schema.js.map +7 -0
  218. package/dist/mcp/tool-registry.js +55 -5
  219. package/dist/mcp/tool-registry.js.map +2 -2
  220. package/dist/mcp/tools/changeset-analysis-tools.js +98 -0
  221. package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
  222. package/dist/mcp/tools/changeset-commit.js +224 -0
  223. package/dist/mcp/tools/changeset-commit.js.map +7 -0
  224. package/dist/mcp/tools/changeset-editing.js +260 -0
  225. package/dist/mcp/tools/changeset-editing.js.map +7 -0
  226. package/dist/mcp/tools/changeset-lifecycle.js +83 -0
  227. package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
  228. package/dist/mcp/tools/changeset-shared.js +31 -0
  229. package/dist/mcp/tools/changeset-shared.js.map +7 -0
  230. package/dist/mcp/tools/changeset-show.js +17 -1
  231. package/dist/mcp/tools/changeset-show.js.map +2 -2
  232. package/dist/mcp/tools/changeset-verify.js +49 -0
  233. package/dist/mcp/tools/changeset-verify.js.map +7 -0
  234. package/dist/mcp/tools/codebase-extract.js +836 -0
  235. package/dist/mcp/tools/codebase-extract.js.map +7 -0
  236. package/dist/mcp/tools/codebase-index.js +125 -0
  237. package/dist/mcp/tools/codebase-index.js.map +7 -0
  238. package/dist/mcp/tools/codebase-shared.js +265 -0
  239. package/dist/mcp/tools/codebase-shared.js.map +7 -0
  240. package/dist/mcp/tools/codebase-verify.js +48 -0
  241. package/dist/mcp/tools/codebase-verify.js.map +7 -0
  242. package/dist/mcp/tools/index.js +34 -1
  243. package/dist/mcp/tools/index.js.map +2 -2
  244. package/dist/mcp/tools/model-add.js +191 -74
  245. package/dist/mcp/tools/model-add.js.map +2 -2
  246. package/dist/mcp/tools/model-delete.js +2 -2
  247. package/dist/mcp/tools/model-delete.js.map +2 -2
  248. package/dist/mcp/tools/model-search.js +14 -0
  249. package/dist/mcp/tools/model-search.js.map +2 -2
  250. package/dist/mcp/tools/model-show.js +29 -2
  251. package/dist/mcp/tools/model-show.js.map +2 -2
  252. package/dist/mcp/tools/model-trace.js +93 -30
  253. package/dist/mcp/tools/model-trace.js.map +2 -2
  254. package/dist/mcp/tools/model-update.js +46 -26
  255. package/dist/mcp/tools/model-update.js.map +2 -2
  256. package/dist/mcp/tools/model-validate.js +46 -4
  257. package/dist/mcp/tools/model-validate.js.map +2 -2
  258. package/dist/mcp/tools/project-status-collectors.js +381 -0
  259. package/dist/mcp/tools/project-status-collectors.js.map +7 -0
  260. package/dist/mcp/tools/project-status.js +237 -0
  261. package/dist/mcp/tools/project-status.js.map +7 -0
  262. package/dist/mcp/tools/project-tools.js +505 -0
  263. package/dist/mcp/tools/project-tools.js.map +7 -0
  264. package/dist/mcp/tools/relationship-tools.js +167 -0
  265. package/dist/mcp/tools/relationship-tools.js.map +7 -0
  266. package/dist/mcp/tools/review-open.js +210 -0
  267. package/dist/mcp/tools/review-open.js.map +7 -0
  268. package/dist/mcp/tools/shared.js +35 -4
  269. package/dist/mcp/tools/shared.js.map +2 -2
  270. package/dist/mcp/tools/spec-type.js +90 -0
  271. package/dist/mcp/tools/spec-type.js.map +7 -0
  272. package/dist/reports/model-report-orchestrator.js +31 -2
  273. package/dist/reports/model-report-orchestrator.js.map +2 -2
  274. package/dist/schemas/bundled/analyzers/cbm.json +1200 -70
  275. package/dist/schemas/bundled/analyzers/manifest.json +2 -2
  276. package/dist/schemas/bundled/api.json +1029 -1658
  277. package/dist/schemas/bundled/apm.json +499 -734
  278. package/dist/schemas/bundled/application.json +735 -371
  279. package/dist/schemas/bundled/base.json +3 -220
  280. package/dist/schemas/bundled/business.json +452 -366
  281. package/dist/schemas/bundled/data-model.json +395 -411
  282. package/dist/schemas/bundled/data-store.json +334 -558
  283. package/dist/schemas/bundled/manifest.json +18 -18
  284. package/dist/schemas/bundled/motivation.json +349 -368
  285. package/dist/schemas/bundled/navigation.json +415 -731
  286. package/dist/schemas/bundled/product.json +325 -159
  287. package/dist/schemas/bundled/security.json +864 -1232
  288. package/dist/schemas/bundled/technology.json +574 -703
  289. package/dist/schemas/bundled/testing.json +865 -1646
  290. package/dist/schemas/bundled/ux.json +739 -1352
  291. package/dist/server/schemas.js +8 -0
  292. package/dist/server/schemas.js.map +2 -2
  293. package/dist/server/server.js +686 -231
  294. package/dist/server/server.js.map +3 -3
  295. package/dist/server/viewer-registry.js +264 -0
  296. package/dist/server/viewer-registry.js.map +7 -0
  297. package/dist/server-entry.js +2 -1
  298. package/dist/server-entry.js.map +2 -2
  299. package/dist/telemetry/index.js +1 -1
  300. package/dist/utils/ansi-suppressor.js +6 -8
  301. package/dist/utils/ansi-suppressor.js.map +2 -2
  302. package/dist/utils/attribute-patch.js +41 -0
  303. package/dist/utils/attribute-patch.js.map +7 -0
  304. package/dist/utils/error-hints.js +29 -0
  305. package/dist/utils/error-hints.js.map +7 -0
  306. package/dist/utils/errors.js +9 -3
  307. package/dist/utils/errors.js.map +2 -2
  308. package/dist/utils/id-generator.js +5 -2
  309. package/dist/utils/id-generator.js.map +2 -2
  310. package/dist/utils/project-paths.js +26 -1
  311. package/dist/utils/project-paths.js.map +2 -2
  312. package/dist/utils/source-reference.js +64 -31
  313. package/dist/utils/source-reference.js.map +2 -2
  314. package/dist/utils/spec-version.js +2 -2
  315. package/dist/utils/spec-version.js.map +1 -1
  316. package/dist/validators/composed-reference-validator.js +5 -27
  317. package/dist/validators/composed-reference-validator.js.map +2 -2
  318. package/dist/validators/model-warnings.js +28 -0
  319. package/dist/validators/model-warnings.js.map +7 -0
  320. package/dist/validators/reference-validator.js +0 -7
  321. package/dist/validators/reference-validator.js.map +2 -2
  322. package/dist/validators/relationship-schema-validator.js +3 -3
  323. package/dist/validators/relationship-schema-validator.js.map +2 -2
  324. package/dist/validators/schema-validator.js +27 -9
  325. package/dist/validators/schema-validator.js.map +2 -2
  326. package/dist/validators/types.js.map +1 -1
  327. package/dist/viewer/README.md +6 -6
  328. package/dist/viewer/assets/main-CUOQGGRA.css +1 -0
  329. package/dist/viewer/assets/main-DvH3gYrI.js +84 -0
  330. package/dist/viewer/index.html +2 -2
  331. package/dist/viewer/manifest.json +10 -10
  332. package/dist/viewer/version.json +1 -1
  333. package/package.json +2 -1
  334. package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
  335. package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
@@ -234,7 +234,7 @@ self.onmessage = function (e) {
234
234
  The browser that runs a React SPA is the primary Node (host):
235
235
 
236
236
  → `technology.node.browser-runtime` (nodeType: container)
237
- → It "hosts" `application.applicationcomponent.viewer-app`
237
+ → It `serves` `application.applicationcomponent.viewer-app`
238
238
 
239
239
  ---
240
240
 
@@ -265,39 +265,55 @@ Types less likely to apply to a frontend SPA (still worth considering):
265
265
 
266
266
  ## Intra-Layer Relationships
267
267
 
268
+ Nodes and system software are `assigned-to` the behaviour they perform; an interface is `assigned-to`
269
+ the services it offers and `serves` the behaviour that uses it. Functions, processes and interactions
270
+ realize services; events trigger behaviour, and structure does not trigger. Artifacts are passive.
271
+ Networks realize paths, and networks and paths `connects` nodes and devices.
272
+
268
273
  ### Structural Relationships
269
274
 
270
- | Source Type | Predicate | Target Type | Example |
271
- | ----------------------- | --------------- | --------------------- | ------------------------------------------------- |
272
- | Device | composes | Node | "Physical Server" composes "Virtual Machine" |
273
- | Node | composes | TechnologyInterface | "API Server" composes "HTTPS Endpoint" |
274
- | SystemSoftware | composes | TechnologyInterface | "PostgreSQL" composes "SQL Interface" |
275
- | Node | aggregates | Device | Cluster aggregates multiple physical servers |
276
- | TechnologyCollaboration | aggregates | Node | "K8s Cluster" aggregates "Worker Nodes" |
277
- | Artifact | specializes | Artifact | "CustomerDatabase" specializes "Database" |
278
- | Path | realizes | CommunicationNetwork | "VPN Tunnel" realizes "Secure Network" |
279
- | TechnologyFunction | realizes | TechnologyService | "Load Balancing" realizes "Load Balancer Service" |
280
- | TechnologyProcess | realizes | TechnologyService | "CI/CD Pipeline" realizes "Deployment Service" |
281
- | SystemSoftware | realizes | TechnologyService | "PostgreSQL" realizes "Database Service" |
282
- | Node | assigned-to | TechnologyFunction | "Edge Server" assigned to "CDN Caching" |
283
- | TechnologyCollaboration | assigned-to | TechnologyInteraction | Cluster performs replication |
284
- | Path | associated-with | Node | Network path connects nodes |
285
- | Device | associated-with | CommunicationNetwork | Device connected to network |
286
- | TechnologyInterface | serves | TechnologyService | Interface provides service access |
275
+ | Source Type | Predicate | Target Type | Example |
276
+ | ----------------------- | ----------- | --------------------- | ------------------------------------------------------- |
277
+ | Node | composes | Device | "Bare-metal Cluster" composes "Dell R740 Server" |
278
+ | Node | composes | SystemSoftware | "Web Server VM" composes "NGINX" |
279
+ | Node | composes | TechnologyInterface | "API Server" composes "HTTPS Endpoint" |
280
+ | Node | composes | Artifact | "EKS Worker" composes "User Service Image" (deployed) |
281
+ | SystemSoftware | provides | TechnologyInterface | "PostgreSQL" provides "SQL Interface" |
282
+ | SystemSoftware | depends-on | SystemSoftware | "Kafka" depends on "ZooKeeper" |
283
+ | Artifact | composes | Artifact | "Helm Chart" composes "values.yaml" |
284
+ | Artifact | depends-on | Artifact | "User Service Image" depends on "Node 20 Base Image" |
285
+ | Artifact | realizes | SystemSoftware | "postgres:16 image" realizes "PostgreSQL 16" |
286
+ | TechnologyCollaboration | aggregates | Node | "K8s Cluster" aggregates "Worker Nodes" |
287
+ | TechnologyCollaboration | aggregates | SystemSoftware | "Postgres HA Pair" aggregates "Postgres Primary" |
288
+ | CommunicationNetwork | aggregates | CommunicationNetwork | "Production VPC" aggregates "Private Subnet 1a" |
289
+ | CommunicationNetwork | realizes | Path | "Corporate WAN" realizes "Direct Connect Link" |
290
+ | CommunicationNetwork | connects | Node | "Production VPC" connects "EKS Cluster" |
291
+ | CommunicationNetwork | connects | Device | "Office LAN" connects "Edge Gateway" |
292
+ | Path | connects | Node | "Direct Connect Link" connects "On-Premise K8s" |
293
+ | SystemSoftware | realizes | TechnologyService | "PostgreSQL" realizes "Database Service" |
294
+ | Node | realizes | TechnologyService | "RDS Instance" realizes "Managed Database Service" |
295
+ | TechnologyFunction | realizes | TechnologyService | "Load Balancing" realizes "Load Balancer Service" |
296
+ | TechnologyProcess | realizes | TechnologyService | "CI/CD Pipeline" realizes "Deployment Service" |
297
+ | TechnologyInterface | assigned-to | TechnologyService | "Postgres Wire Endpoint" assigned to "Database Service" |
298
+ | Node | assigned-to | TechnologyFunction | "Edge Server" assigned to "CDN Caching" |
299
+ | SystemSoftware | assigned-to | TechnologyFunction | "NGINX" assigned to "Load Balancing" |
300
+ | TechnologyCollaboration | assigned-to | TechnologyInteraction | "Postgres HA Pair" assigned to "Streaming Replication" |
287
301
 
288
302
  ### Behavioral Relationships
289
303
 
290
- | Source Type | Predicate | Target Type | Example |
291
- | --------------------- | --------- | ------------------ | --------------------------------------------------- |
292
- | TechnologyEvent | triggers | TechnologyProcess | "Node Failure" triggers "Failover Process" |
293
- | TechnologyEvent | triggers | TechnologyFunction | "CPU Threshold" triggers "Auto-scaling Function" |
294
- | TechnologyProcess | triggers | TechnologyEvent | "Deployment Complete" triggers "Health Check Event" |
295
- | TechnologyProcess | flows-to | TechnologyProcess | "Build" flows to "Deploy" |
296
- | TechnologyService | flows-to | TechnologyService | Service dependency chain |
297
- | SystemSoftware | accesses | Artifact | "Database" accesses "Data Files" |
298
- | TechnologyFunction | accesses | Artifact | "Backup Function" accesses "Backup Files" |
299
- | TechnologyProcess | accesses | Artifact | "Deployment" accesses "Docker Images" |
300
- | TechnologyInteraction | accesses | Artifact | "Replication" accesses "Database Replica" |
304
+ | Source Type | Predicate | Target Type | Example |
305
+ | --------------------- | --------- | ------------------ | -------------------------------------------------- |
306
+ | TechnologyEvent | triggers | TechnologyProcess | "Node Failure" triggers "Failover Process" |
307
+ | TechnologyEvent | triggers | TechnologyFunction | "CPU Threshold Exceeded" triggers "Auto-scaling" |
308
+ | TechnologyProcess | triggers | TechnologyEvent | "Deploy to K8s" triggers "Deployment Completed" |
309
+ | TechnologyProcess | composes | TechnologyProcess | "CI/CD Pipeline" composes "Build Image" |
310
+ | TechnologyInterface | serves | TechnologyProcess | "Kubernetes API" serves "Deploy to K8s" |
311
+ | TechnologyFunction | flows-to | TechnologyProcess | "Health Checking" flows to "Node Recovery" |
312
+ | TechnologyService | serves | TechnologyService | "Storage Service" serves "Database Service" |
313
+ | TechnologyProcess | accesses | Artifact | "Deploy to K8s" accesses "User Service Image" |
314
+ | SystemSoftware | accesses | Artifact | "PostgreSQL" accesses "Data Files" |
315
+ | TechnologyFunction | accesses | Artifact | "Database Backup" accesses "Backup Files" |
316
+ | TechnologyInteraction | accesses | Artifact | "Streaming Replication" accesses "Write-Ahead Log" |
301
317
 
302
318
  ---
303
319
 
@@ -305,37 +321,41 @@ Types less likely to apply to a frontend SPA (still worth considering):
305
321
 
306
322
  ### Outgoing References (Technology → Other Layers)
307
323
 
308
- | Target Layer | Reference Type | Example |
309
- | ------------------------- | -------------------------------------------------- | -------------------------------------- |
310
- | **Layer 1 (Motivation)** | TechnologyService supports **Goal** | Infrastructure supports business goals |
311
- | **Layer 1 (Motivation)** | TechnologyService governed by **Principle** | Cloud-native principle |
312
- | **Layer 1 (Motivation)** | Node governed by **Principle** | Infrastructure principles |
313
- | **Layer 1 (Motivation)** | Node constrained by **Constraint** | Budget, region, compliance constraints |
314
- | **Layer 1 (Motivation)** | Node fulfills **Requirement** | Performance, availability requirements |
315
- | **Layer 1 (Motivation)** | SystemSoftware governed by **Principle** | Open-source principle |
316
- | **Layer 1 (Motivation)** | SystemSoftware constrained by **Constraint** | Licensing, version constraints |
317
- | **Layer 1 (Motivation)** | SystemSoftware fulfills **Requirement** | Technical requirements |
318
- | **Layer 1 (Motivation)** | CommunicationNetwork governed by **Principle** | Zero-trust principle |
319
- | **Layer 1 (Motivation)** | CommunicationNetwork constrained by **Constraint** | Network segmentation |
320
- | **Layer 1 (Motivation)** | Artifact constrained by **Constraint** | Data residency, retention |
321
- | **Layer 4 (Application)** | Node hosts **ApplicationComponent** | K8s pod hosts service |
322
- | **Layer 4 (Application)** | TechnologyService serves **ApplicationService** | Database serves application |
323
- | **Layer 4 (Application)** | Artifact stores **DataObject** | Database stores application data |
324
- | **Layer 3 (Security)** | Artifact has **encryption** property | Data-at-rest encryption |
325
- | **Layer 3 (Security)** | Artifact has **classification** property | Data classification level |
326
- | **Layer 3 (Security)** | Artifact has **pii** property | Contains PII |
327
- | **Layer 3 (Security)** | CommunicationNetwork has **security-policy** | Network security rules |
328
- | **Layer 11 (APM)** | TechnologyService has **sla-target** | Availability, latency targets |
329
- | **Layer 11 (APM)** | TechnologyService has **health-check** | Health monitoring endpoint |
330
- | **Layer 11 (APM)** | Node has **monitoring-agent** | APM agent installation |
331
-
332
- ### Incoming References (Lower Layers → Technology)
333
-
334
- Lower layers reference Technology layer to show:
335
-
336
- - Applications depend on infrastructure
337
- - APIs run on technology platforms
338
- - Data stored in technology artifacts
324
+ | Source Type | Predicate | Target Type | Example |
325
+ | ----------------- | --------- | ---------------------------------- | ---------------------------------------------------------- |
326
+ | Node | serves | `application.applicationcomponent` | "EKS Cluster" serves "User Service" |
327
+ | SystemSoftware | serves | `application.applicationcomponent` | "Node.js 20 Runtime" serves "User Service" |
328
+ | TechnologyService | serves | `application.applicationservice` | "Database Service" serves "Customer Management Service" |
329
+ | TechnologyService | serves | `application.applicationfunction` | "Object Storage" serves "saveAttachment" |
330
+ | Artifact | realizes | `application.applicationcomponent` | "user-service:1.4 image" realizes "User Service" |
331
+ | TechnologyService | serves | `api.operation` | "S3 Object Storage" serves "uploadAvatar" |
332
+ | TechnologyService | serves | `data-store.database` | "Amazon RDS" serves "orders-db" |
333
+ | TechnologyService | serves | `apm.exporterconfig` | "OpenTelemetry Collector" serves "OTLP Trace Exporter" |
334
+ | TechnologyService | realizes | `product.softwarecapability` | "Search Cluster Service" realizes "Full-text Search" |
335
+ | TechnologyService | realizes | `motivation.goal` | "Kubernetes Orchestration" realizes "Faster Deployments" |
336
+ | TechnologyService | satisfies | `motivation.requirement` | "Multi-AZ Database Service" satisfies "99.9% Availability" |
337
+ | SystemSoftware | satisfies | `motivation.principle` | "PostgreSQL" satisfies "Prefer Open Source" |
338
+ | SystemSoftware | satisfies | `motivation.constraint` | "PostgreSQL 16" satisfies "Approved License List" |
339
+ | Node | satisfies | `motivation.constraint` | "EU-West Cluster" satisfies "EU Data Residency" |
340
+ | Node | satisfies | `security.securitypolicy` | "Hardened Bastion Host" satisfies "CIS Benchmark Policy" |
341
+ | SystemSoftware | realizes | `security.countermeasure` | "AWS WAF" realizes "SQL Injection Filtering" |
342
+
343
+ Security properties such as encryption-at-rest, data classification, and PII flags are recorded as Artifact attributes, not relationships.
344
+
345
+ ### Incoming References (Other Layers → Technology)
346
+
347
+ | Source Type | Predicate | Target Type | Example |
348
+ | ---------------------------- | ---------- | ----------------- | ------------------------------------------------------- |
349
+ | `api.server` | depends-on | Node | "Production API Server" depends on "EKS Cluster" |
350
+ | `api.securityscheme` | depends-on | SystemSoftware | "OAuth2 Scheme" depends on "Keycloak" |
351
+ | `data-store.database` | depends-on | SystemSoftware | "orders-db" depends on "PostgreSQL 16" |
352
+ | `data-store.database` | depends-on | Node | "orders-db" depends on "Postgres Cluster" |
353
+ | `data-model.jsonschema` | maps-to | Artifact | "Order Schema" maps to "orders.schema.json" |
354
+ | `apm.resource` | references | SystemSoftware | "user-service resource" references "Node.js 20 Runtime" |
355
+ | `apm.span` | monitors | TechnologyService | "db.query span" monitors "Database Service" |
356
+ | `apm.metricinstrument` | monitors | TechnologyService | "db.query.duration" monitors "Database Service" |
357
+ | `ux.librarycomponent` | depends-on | SystemSoftware | "DataGrid" depends on "Browser Runtime" |
358
+ | `testing.testcoveragetarget` | covers | TechnologyService | "Database Integration" target covers "Database Service" |
339
359
 
340
360
  ---
341
361
 
@@ -635,7 +655,7 @@ dr add technology artifact "application-logs" \
635
655
 
636
656
  # Link artifact to node
637
657
  dr relationship add technology.node.postgres-cluster \
638
- technology.artifact.customer-database --predicate stores
658
+ technology.artifact.customer-database --predicate composes
639
659
  ```
640
660
 
641
661
  ### Step 6: Model Infrastructure as Code
@@ -679,18 +699,18 @@ dr relationship add technology.node.k8s-cluster-prod \
679
699
  ```bash
680
700
  # Link to application layer
681
701
  dr relationship add technology.node.k8s-cluster-prod \
682
- application.applicationcomponent.user-service --predicate hosts
702
+ application.applicationcomponent.user-service --predicate serves
683
703
 
684
704
  # Link to motivation layer
685
705
  dr relationship add technology.technologyservice.kubernetes-orchestration \
686
- motivation.goal.improve-deployment-frequency --predicate supports
706
+ motivation.goal.improve-deployment-frequency --predicate realizes
687
707
 
688
- dr relationship add technology.node.k8s-cluster-prod \
689
- motivation.principle.cloud-native-architecture --predicate governed-by
708
+ dr relationship add technology.systemsoftware.docker \
709
+ motivation.principle.cloud-native-architecture --predicate satisfies
690
710
 
691
711
  # Link to APM layer
692
- dr relationship add technology.technologyservice.postgres-database \
693
- apm.metric.database-query-latency --predicate monitored-by
712
+ dr relationship add apm.metricinstrument.database-query-latency \
713
+ technology.technologyservice.postgres-database --predicate monitors
694
714
  ```
695
715
 
696
716
  ### Step 9: Validate
@@ -708,39 +728,37 @@ dr validate --relationships
708
728
 
709
729
  ```
710
730
  TechnologyCollaboration: "AWS Production Environment"
711
- ├── contains → Node: "EKS Cluster" (provider: aws, region: us-east-1)
712
- │ ├── hosts → ApplicationComponent: "Microservices"
713
- │ └── uses → TechnologyService: "EKS Orchestration"
714
- ├── contains → Node: "RDS PostgreSQL" (provider: aws, multi-az: true)
731
+ ├── aggregates → Node: "EKS Cluster" (provider: aws, region: us-east-1)
732
+ │ └── serves → ApplicationComponent: "Microservices"
733
+ ├── aggregates → Node: "RDS PostgreSQL" (provider: aws, multi-az: true)
715
734
  │ └── realizes → TechnologyService: "Database Service"
716
- ├── contains → Artifact: "S3 Bucket" (provider: aws, storage-class: standard)
717
- └── contains → CommunicationNetwork: "VPC" (cidr: 10.0.0.0/16)
718
- ├── contains → Subnet: "Public Subnet" (cidr: 10.0.1.0/24)
719
- └── contains → Subnet: "Private Subnet" (cidr: 10.0.2.0/24)
735
+ ├── accesses → Artifact: "S3 Bucket" (provider: aws, storage-class: standard)
736
+ └── uses → CommunicationNetwork: "VPC" (cidr: 10.0.0.0/16)
737
+ ├── aggregates → CommunicationNetwork: "Public Subnet" (cidr: 10.0.1.0/24)
738
+ └── aggregates → CommunicationNetwork: "Private Subnet" (cidr: 10.0.2.0/24)
720
739
  ```
721
740
 
722
741
  ### Kubernetes Pattern
723
742
 
743
+ Model the cluster as a Node; namespaces, deployments and pods are usually attributes of that node or
744
+ of the application components it serves, since the catalog has no Node-to-Node composition.
745
+
724
746
  ```
725
- Node: "Kubernetes Cluster"
726
- ├── type: kubernetes-cluster
727
- ├── hosts → Node: "Namespace: production"
728
- │ ├── hosts → Node: "Deployment: user-service"
729
- │ │ ├── replicas: 3
730
- │ │ └── hosts → Node: "Pod: user-service-xyz"
731
- │ │ └── hosts → ApplicationComponent: "UserService"
732
- │ └── uses → Artifact: "ConfigMap: app-config"
733
- └── uses → TechnologyFunction: "Auto-scaling" (HPA)
747
+ Node: "Kubernetes Cluster" (nodeType: kubernetes-cluster)
748
+ ├── composes → SystemSoftware: "containerd"
749
+ ├── composes → Artifact: "ConfigMap: app-config"
750
+ ├── assigned-to → TechnologyFunction: "Auto-scaling" (HPA)
751
+ └── serves → ApplicationComponent: "UserService" (namespace: production, replicas: 3)
734
752
  ```
735
753
 
736
754
  ### Hybrid Cloud Pattern
737
755
 
738
756
  ```
739
757
  TechnologyCollaboration: "Hybrid Cloud Architecture"
740
- ├── contains → Node: "AWS EKS Cluster" (provider: aws)
741
- ├── contains → Node: "On-Premise K8s" (provider: onprem)
742
- ├── connected-by → Path: "Direct Connect" (type: direct-connect)
743
- └── secured-by → CommunicationNetwork: "Zero-Trust Network"
758
+ ├── aggregates → Node: "AWS EKS Cluster" (provider: aws)
759
+ ├── aggregates → Node: "On-Premise K8s" (provider: onprem)
760
+ ├── uses → Path: "Direct Connect" (type: direct-connect)
761
+ └── uses → CommunicationNetwork: "Zero-Trust Network"
744
762
  ```
745
763
 
746
764
  ---
@@ -819,18 +837,17 @@ dr add technology process <name>
819
837
  **Relationship Commands:**
820
838
 
821
839
  ```bash
822
- dr relationship add <node> <application-component> --predicate hosts
823
840
  dr relationship add <system-software> <service> --predicate realizes
824
841
  dr relationship add <node> <function> --predicate assigned-to
825
- dr relationship add <node> <artifact> --predicate stores
842
+ dr relationship add <node> <artifact> --predicate composes
826
843
  dr relationship add <network> <node> --predicate connects
827
844
  ```
828
845
 
829
846
  **Cross-Layer Commands:**
830
847
 
831
848
  ```bash
832
- dr relationship add <technology-node> <application-component> --predicate hosts
833
- dr relationship add <technology-service> <motivation-goal> --predicate supports
834
- dr relationship add <technology-node> <motivation-principle> --predicate governed-by
835
- dr relationship add <technology-service> <apm-metric> --predicate monitored-by
849
+ dr relationship add <technology-node> <application-component> --predicate serves
850
+ dr relationship add <technology-service> <motivation-goal> --predicate realizes
851
+ dr relationship add <system-software> <motivation-principle> --predicate realizes
852
+ dr relationship add <apm-metric-instrument> <technology-service> --predicate monitors
836
853
  ```