@documentation-robotics/cli 0.1.13 → 0.3.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 (351) hide show
  1. package/README.md +74 -2
  2. package/dist/analysis/relationship-classifier.js +2 -9
  3. package/dist/analysis/relationship-classifier.js.map +2 -2
  4. package/dist/analyzers/call-graph-utils.js +2 -2
  5. package/dist/analyzers/call-graph-utils.js.map +2 -2
  6. package/dist/analyzers/cards/build.js +171 -0
  7. package/dist/analyzers/cards/build.js.map +7 -0
  8. package/dist/analyzers/cards/classify.js +42 -0
  9. package/dist/analyzers/cards/classify.js.map +7 -0
  10. package/dist/analyzers/cards/edge-index.js +44 -0
  11. package/dist/analyzers/cards/edge-index.js.map +7 -0
  12. package/dist/analyzers/cards/facts.js +46 -0
  13. package/dist/analyzers/cards/facts.js.map +7 -0
  14. package/dist/analyzers/cards/graph.js +42 -0
  15. package/dist/analyzers/cards/graph.js.map +7 -0
  16. package/dist/analyzers/cards/index.js +8 -0
  17. package/dist/analyzers/cards/index.js.map +7 -0
  18. package/dist/analyzers/cards/tier0.js +18 -0
  19. package/dist/analyzers/cards/tier0.js.map +7 -0
  20. package/dist/analyzers/cards/types.js +1 -0
  21. package/dist/analyzers/cards/types.js.map +7 -0
  22. package/dist/analyzers/cbm-analyzer.js +195 -171
  23. package/dist/analyzers/cbm-analyzer.js.map +2 -2
  24. package/dist/analyzers/cbm-responses.js +336 -0
  25. package/dist/analyzers/cbm-responses.js.map +7 -0
  26. package/dist/analyzers/edge-relationships.js +45 -0
  27. package/dist/analyzers/edge-relationships.js.map +7 -0
  28. package/dist/analyzers/mapping-loader.js +9 -0
  29. package/dist/analyzers/mapping-loader.js.map +2 -2
  30. package/dist/analyzers/tier0-rules.js +153 -0
  31. package/dist/analyzers/tier0-rules.js.map +7 -0
  32. package/dist/analyzers/types.js.map +1 -1
  33. package/dist/analyzers/verify-engine.js +22 -19
  34. package/dist/analyzers/verify-engine.js.map +2 -2
  35. package/dist/audit/relationships/ai/prompts.js +10 -10
  36. package/dist/audit/relationships/ai/prompts.js.map +2 -2
  37. package/dist/audit/relationships/analysis/layer-templates.js +52 -52
  38. package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
  39. package/dist/cli.js +112 -28
  40. package/dist/cli.js.map +3 -3
  41. package/dist/coding-agents/agents/claude-code.js +3 -1
  42. package/dist/coding-agents/agents/claude-code.js.map +2 -2
  43. package/dist/coding-agents/claude-code-client.js +2 -1
  44. package/dist/coding-agents/claude-code-client.js.map +2 -2
  45. package/dist/coding-agents/copilot-client.js +17 -12
  46. package/dist/coding-agents/copilot-client.js.map +2 -2
  47. package/dist/coding-agents/default-permissions.js +152 -0
  48. package/dist/coding-agents/default-permissions.js.map +7 -0
  49. package/dist/coding-agents/drbot-mcp.js +167 -0
  50. package/dist/coding-agents/drbot-mcp.js.map +7 -0
  51. package/dist/commands/add.js +12 -7
  52. package/dist/commands/add.js.map +2 -2
  53. package/dist/commands/analyzer.js +134 -23
  54. package/dist/commands/analyzer.js.map +2 -2
  55. package/dist/commands/audit.js +6 -6
  56. package/dist/commands/audit.js.map +2 -2
  57. package/dist/commands/changeset-verify.js +55 -0
  58. package/dist/commands/changeset-verify.js.map +7 -0
  59. package/dist/commands/changeset.js +261 -147
  60. package/dist/commands/changeset.js.map +2 -2
  61. package/dist/commands/delete.js +52 -19
  62. package/dist/commands/delete.js.map +3 -3
  63. package/dist/commands/element.js +3 -2
  64. package/dist/commands/element.js.map +2 -2
  65. package/dist/commands/farm.js +773 -0
  66. package/dist/commands/farm.js.map +7 -0
  67. package/dist/commands/init.js +11 -1
  68. package/dist/commands/init.js.map +2 -2
  69. package/dist/commands/mcp.js +122 -0
  70. package/dist/commands/mcp.js.map +7 -0
  71. package/dist/commands/relationship.js +251 -47
  72. package/dist/commands/relationship.js.map +2 -2
  73. package/dist/commands/reports.js +1 -1
  74. package/dist/commands/reports.js.map +2 -2
  75. package/dist/commands/update.js +56 -24
  76. package/dist/commands/update.js.map +2 -2
  77. package/dist/commands/upgrade.js +99 -11
  78. package/dist/commands/upgrade.js.map +3 -3
  79. package/dist/commands/validate.js +41 -3
  80. package/dist/commands/validate.js.map +2 -2
  81. package/dist/commands/version.js +2 -2
  82. package/dist/commands/version.js.map +2 -2
  83. package/dist/commands/visualize.js +4 -3
  84. package/dist/commands/visualize.js.map +2 -2
  85. package/dist/config.js +83 -0
  86. package/dist/config.js.map +7 -0
  87. package/dist/core/annotation-store.js +138 -0
  88. package/dist/core/annotation-store.js.map +7 -0
  89. package/dist/core/catalog-migration.js +33 -0
  90. package/dist/core/catalog-migration.js.map +7 -0
  91. package/dist/core/changeset-analysis.js +421 -0
  92. package/dist/core/changeset-analysis.js.map +7 -0
  93. package/dist/core/changeset-base-index.js +153 -0
  94. package/dist/core/changeset-base-index.js.map +7 -0
  95. package/dist/core/changeset-brief-delta.js +102 -0
  96. package/dist/core/changeset-brief-delta.js.map +7 -0
  97. package/dist/core/changeset-graph.js +281 -0
  98. package/dist/core/changeset-graph.js.map +7 -0
  99. package/dist/core/changeset-only-guard.js +32 -0
  100. package/dist/core/changeset-only-guard.js.map +7 -0
  101. package/dist/core/changeset-summary.js +68 -0
  102. package/dist/core/changeset-summary.js.map +7 -0
  103. package/dist/core/changeset-validator.js +66 -20
  104. package/dist/core/changeset-validator.js.map +2 -2
  105. package/dist/core/changeset-verify.js +518 -0
  106. package/dist/core/changeset-verify.js.map +7 -0
  107. package/dist/core/changeset.js +56 -9
  108. package/dist/core/changeset.js.map +2 -2
  109. package/dist/core/element-type-migration.js +145 -0
  110. package/dist/core/element-type-migration.js.map +7 -0
  111. package/dist/core/farm-manifest.js +140 -0
  112. package/dist/core/farm-manifest.js.map +7 -0
  113. package/dist/core/farm-sync-engine.js +346 -0
  114. package/dist/core/farm-sync-engine.js.map +7 -0
  115. package/dist/core/farm-sync-state.js +167 -0
  116. package/dist/core/farm-sync-state.js.map +7 -0
  117. package/dist/core/manifest.js +6 -3
  118. package/dist/core/manifest.js.map +2 -2
  119. package/dist/core/migration-registry.js +84 -1
  120. package/dist/core/migration-registry.js.map +2 -2
  121. package/dist/core/model-upgrade.js +102 -0
  122. package/dist/core/model-upgrade.js.map +7 -0
  123. package/dist/core/model.js +257 -44
  124. package/dist/core/model.js.map +3 -3
  125. package/dist/core/mutation-handler.js +71 -6
  126. package/dist/core/mutation-handler.js.map +2 -2
  127. package/dist/core/relationship-migration-table.js +6639 -0
  128. package/dist/core/relationship-migration-table.js.map +7 -0
  129. package/dist/core/relationship-migration.js +272 -0
  130. package/dist/core/relationship-migration.js.map +7 -0
  131. package/dist/core/relationship-prune.js +49 -0
  132. package/dist/core/relationship-prune.js.map +7 -0
  133. package/dist/core/relationship-staging.js +68 -0
  134. package/dist/core/relationship-staging.js.map +7 -0
  135. package/dist/core/relationships.js +26 -4
  136. package/dist/core/relationships.js.map +2 -2
  137. package/dist/core/report-data-model.js +7 -13
  138. package/dist/core/report-data-model.js.map +2 -2
  139. package/dist/core/staged-changeset-storage.js +64 -17
  140. package/dist/core/staged-changeset-storage.js.map +2 -2
  141. package/dist/core/staged-source-reference.js +28 -0
  142. package/dist/core/staged-source-reference.js.map +7 -0
  143. package/dist/core/staging-area.js +83 -18
  144. package/dist/core/staging-area.js.map +2 -2
  145. package/dist/core/virtual-projection.js +14 -5
  146. package/dist/core/virtual-projection.js.map +2 -2
  147. package/dist/export/archimate-exporter.js +1 -0
  148. package/dist/export/archimate-exporter.js.map +2 -2
  149. package/dist/generated/compiled-validators.js +2 -2
  150. package/dist/generated/compiled-validators.js.map +2 -2
  151. package/dist/generated/layer-registry.js +16 -16
  152. package/dist/generated/layer-registry.js.map +2 -2
  153. package/dist/generated/node-types.js +186 -168
  154. package/dist/generated/node-types.js.map +2 -2
  155. package/dist/generated/relationship-index.js +2209 -7727
  156. package/dist/generated/relationship-index.js.map +2 -2
  157. package/dist/integrations/claude_code/agents/dr-architect.md +16 -3
  158. package/dist/integrations/claude_code/agents/dr-extractor.md +1 -1
  159. package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
  160. package/dist/integrations/claude_code/commands/dr-map.md +13 -0
  161. package/dist/integrations/claude_code/commands/dr-plan.md +40 -0
  162. package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
  163. package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
  164. package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
  165. package/dist/integrations/claude_code/docs/MCP_SERVER.md +79 -0
  166. package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
  167. package/dist/integrations/claude_code/docs/README.md +52 -1
  168. package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
  169. package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
  170. package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
  171. package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
  172. package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
  173. package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
  174. package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
  175. package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
  176. package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
  177. package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
  178. package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
  179. package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
  180. package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +92 -15
  181. package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +119 -0
  182. package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +3 -0
  183. package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +1 -1
  184. package/dist/integrations/github_copilot/agents/dr-architect.md +1 -1
  185. package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
  186. package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
  187. package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
  188. package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
  189. package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
  190. package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
  191. package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
  192. package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
  193. package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
  194. package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
  195. package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
  196. package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
  197. package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +222 -102
  198. package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +119 -0
  199. package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
  200. package/dist/integrations/hash-utils.js.map +2 -2
  201. package/dist/mcp/api-key-manager.js +111 -0
  202. package/dist/mcp/api-key-manager.js.map +7 -0
  203. package/dist/mcp/changeset-only.js +34 -0
  204. package/dist/mcp/changeset-only.js.map +7 -0
  205. package/dist/mcp/http-transport.js +176 -0
  206. package/dist/mcp/http-transport.js.map +7 -0
  207. package/dist/mcp/resource-registry.js +97 -0
  208. package/dist/mcp/resource-registry.js.map +7 -0
  209. package/dist/mcp/tool-registry.js +60 -0
  210. package/dist/mcp/tool-registry.js.map +7 -0
  211. package/dist/mcp/tools/annotation-create.js +39 -0
  212. package/dist/mcp/tools/annotation-create.js.map +7 -0
  213. package/dist/mcp/tools/annotation-delete.js +29 -0
  214. package/dist/mcp/tools/annotation-delete.js.map +7 -0
  215. package/dist/mcp/tools/annotation-get.js +29 -0
  216. package/dist/mcp/tools/annotation-get.js.map +7 -0
  217. package/dist/mcp/tools/annotation-list.js +24 -0
  218. package/dist/mcp/tools/annotation-list.js.map +7 -0
  219. package/dist/mcp/tools/annotation-reply.js +34 -0
  220. package/dist/mcp/tools/annotation-reply.js.map +7 -0
  221. package/dist/mcp/tools/annotation-shared.js +10 -0
  222. package/dist/mcp/tools/annotation-shared.js.map +7 -0
  223. package/dist/mcp/tools/annotation-update.js +39 -0
  224. package/dist/mcp/tools/annotation-update.js.map +7 -0
  225. package/dist/mcp/tools/changeset-analysis-tools.js +78 -0
  226. package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
  227. package/dist/mcp/tools/changeset-editing.js +184 -0
  228. package/dist/mcp/tools/changeset-editing.js.map +7 -0
  229. package/dist/mcp/tools/changeset-lifecycle.js +83 -0
  230. package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
  231. package/dist/mcp/tools/changeset-list.js +33 -0
  232. package/dist/mcp/tools/changeset-list.js.map +7 -0
  233. package/dist/mcp/tools/changeset-shared.js +31 -0
  234. package/dist/mcp/tools/changeset-shared.js.map +7 -0
  235. package/dist/mcp/tools/changeset-show.js +55 -0
  236. package/dist/mcp/tools/changeset-show.js.map +7 -0
  237. package/dist/mcp/tools/changeset-verify.js +43 -0
  238. package/dist/mcp/tools/changeset-verify.js.map +7 -0
  239. package/dist/mcp/tools/chat-launch.js +50 -0
  240. package/dist/mcp/tools/chat-launch.js.map +7 -0
  241. package/dist/mcp/tools/chat-status.js +26 -0
  242. package/dist/mcp/tools/chat-status.js.map +7 -0
  243. package/dist/mcp/tools/index.js +65 -0
  244. package/dist/mcp/tools/index.js.map +7 -0
  245. package/dist/mcp/tools/model-add.js +107 -0
  246. package/dist/mcp/tools/model-add.js.map +7 -0
  247. package/dist/mcp/tools/model-delete.js +99 -0
  248. package/dist/mcp/tools/model-delete.js.map +7 -0
  249. package/dist/mcp/tools/model-export.js +72 -0
  250. package/dist/mcp/tools/model-export.js.map +7 -0
  251. package/dist/mcp/tools/model-info.js +51 -0
  252. package/dist/mcp/tools/model-info.js.map +7 -0
  253. package/dist/mcp/tools/model-list.js +53 -0
  254. package/dist/mcp/tools/model-list.js.map +7 -0
  255. package/dist/mcp/tools/model-reload.js +34 -0
  256. package/dist/mcp/tools/model-reload.js.map +7 -0
  257. package/dist/mcp/tools/model-search.js +102 -0
  258. package/dist/mcp/tools/model-search.js.map +7 -0
  259. package/dist/mcp/tools/model-show.js +68 -0
  260. package/dist/mcp/tools/model-show.js.map +7 -0
  261. package/dist/mcp/tools/model-stats.js +22 -0
  262. package/dist/mcp/tools/model-stats.js.map +7 -0
  263. package/dist/mcp/tools/model-trace.js +118 -0
  264. package/dist/mcp/tools/model-trace.js.map +7 -0
  265. package/dist/mcp/tools/model-update.js +121 -0
  266. package/dist/mcp/tools/model-update.js.map +7 -0
  267. package/dist/mcp/tools/model-validate.js +78 -0
  268. package/dist/mcp/tools/model-validate.js.map +7 -0
  269. package/dist/mcp/tools/relationship-tools.js +98 -0
  270. package/dist/mcp/tools/relationship-tools.js.map +7 -0
  271. package/dist/mcp/tools/shared.js +126 -0
  272. package/dist/mcp/tools/shared.js.map +7 -0
  273. package/dist/mcp/tools/spec-type.js +90 -0
  274. package/dist/mcp/tools/spec-type.js.map +7 -0
  275. package/dist/reports/model-layer-report-generator.js +5 -3
  276. package/dist/reports/model-layer-report-generator.js.map +2 -2
  277. package/dist/reports/model-readme-generator.js +116 -0
  278. package/dist/reports/model-readme-generator.js.map +7 -0
  279. package/dist/reports/model-report-data.js +37 -1
  280. package/dist/reports/model-report-data.js.map +2 -2
  281. package/dist/reports/model-report-orchestrator.js +29 -6
  282. package/dist/reports/model-report-orchestrator.js.map +2 -2
  283. package/dist/reports/model-report-utils.js +9 -0
  284. package/dist/reports/model-report-utils.js.map +7 -0
  285. package/dist/schemas/bundled/analyzers/cbm.json +1186 -68
  286. package/dist/schemas/bundled/analyzers/manifest.json +2 -2
  287. package/dist/schemas/bundled/api.json +1029 -1658
  288. package/dist/schemas/bundled/apm.json +499 -734
  289. package/dist/schemas/bundled/application.json +745 -370
  290. package/dist/schemas/bundled/base.json +3 -220
  291. package/dist/schemas/bundled/business.json +452 -366
  292. package/dist/schemas/bundled/data-model.json +403 -383
  293. package/dist/schemas/bundled/data-store.json +334 -558
  294. package/dist/schemas/bundled/manifest.json +18 -18
  295. package/dist/schemas/bundled/motivation.json +349 -368
  296. package/dist/schemas/bundled/navigation.json +415 -731
  297. package/dist/schemas/bundled/product.json +325 -159
  298. package/dist/schemas/bundled/security.json +864 -1232
  299. package/dist/schemas/bundled/technology.json +574 -703
  300. package/dist/schemas/bundled/testing.json +718 -1643
  301. package/dist/schemas/bundled/ux.json +739 -1352
  302. package/dist/server/schemas.js +8 -0
  303. package/dist/server/schemas.js.map +2 -2
  304. package/dist/server/server.js +234 -31
  305. package/dist/server/server.js.map +2 -2
  306. package/dist/server-entry.js +2 -1
  307. package/dist/server-entry.js.map +2 -2
  308. package/dist/telemetry/config.js +2 -40
  309. package/dist/telemetry/config.js.map +2 -2
  310. package/dist/telemetry/index.js +1 -1
  311. package/dist/types/index.js.map +2 -2
  312. package/dist/utils/ansi-suppressor.js +23 -0
  313. package/dist/utils/ansi-suppressor.js.map +7 -0
  314. package/dist/utils/attribute-patch.js +41 -0
  315. package/dist/utils/attribute-patch.js.map +7 -0
  316. package/dist/utils/color-utils.js +34 -0
  317. package/dist/utils/color-utils.js.map +7 -0
  318. package/dist/utils/element-reference-shape.js +15 -1
  319. package/dist/utils/element-reference-shape.js.map +3 -3
  320. package/dist/utils/error-hints.js +29 -0
  321. package/dist/utils/error-hints.js.map +7 -0
  322. package/dist/utils/errors.js +75 -10
  323. package/dist/utils/errors.js.map +2 -2
  324. package/dist/utils/globals.js +17 -1
  325. package/dist/utils/globals.js.map +2 -2
  326. package/dist/utils/project-paths.js +50 -3
  327. package/dist/utils/project-paths.js.map +2 -2
  328. package/dist/utils/reference-path-parser.js +49 -0
  329. package/dist/utils/reference-path-parser.js.map +7 -0
  330. package/dist/utils/source-reference.js +17 -10
  331. package/dist/utils/source-reference.js.map +2 -2
  332. package/dist/utils/spec-version.js +10 -2
  333. package/dist/utils/spec-version.js.map +2 -2
  334. package/dist/validators/composed-reference-validator.js +240 -0
  335. package/dist/validators/composed-reference-validator.js.map +7 -0
  336. package/dist/validators/reference-validator.js +57 -13
  337. package/dist/validators/reference-validator.js.map +3 -3
  338. package/dist/validators/relationship-schema-validator.js +33 -5
  339. package/dist/validators/relationship-schema-validator.js.map +3 -3
  340. package/dist/validators/schema-validator.js +27 -9
  341. package/dist/validators/schema-validator.js.map +2 -2
  342. package/dist/validators/types.js.map +1 -1
  343. package/dist/viewer/README.md +6 -6
  344. package/dist/viewer/assets/main-CxzcuU_o.js +84 -0
  345. package/dist/viewer/assets/main-j-7ULYpm.css +1 -0
  346. package/dist/viewer/index.html +2 -2
  347. package/dist/viewer/manifest.json +10 -10
  348. package/dist/viewer/version.json +1 -1
  349. package/package.json +7 -3
  350. package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
  351. package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
@@ -131,31 +131,43 @@ Explicit DO NOT rules with rationale:
131
131
  | Source Type | Predicate | Target Type | Example |
132
132
  | ------------------------ | ----------- | ---------------------- | ---------------------------------------------------------------------------------------- |
133
133
  | ApplicationCollaboration | aggregates | ApplicationComponent | "Payment Ecosystem" aggregates "PaymentService", "FraudDetection", "NotificationService" |
134
- | ApplicationComponent | composes | ApplicationInterface | Component exposes interface for external access |
135
- | ApplicationProcess | composes | ApplicationProcess | Workflow composed of sub-processes (saga pattern) |
136
- | ApplicationComponent | assigned-to | ApplicationFunction | Component performs specific function |
137
- | ApplicationCollaboration | assigned-to | ApplicationInteraction | Collaboration executes interaction pattern |
134
+ | ApplicationCollaboration | assigned-to | ApplicationInteraction | "Checkout Collaboration" assigned-to "Checkout Handshake" interaction |
135
+ | ApplicationCollaboration | realizes | ApplicationService | "Payment Ecosystem" realizes "Payment Service" |
136
+ | ApplicationComponent | provides | ApplicationInterface | "UserService" provides "User REST API" |
137
+ | ApplicationComponent | assigned-to | ApplicationFunction | "UserService" assigned-to "Token Validation" |
138
+ | ApplicationComponent | assigned-to | ApplicationProcess | "OrderOrchestrator" assigned-to "Order Fulfillment Saga" |
138
139
  | ApplicationComponent | realizes | ApplicationService | "UserManagementAPI" realizes "User Management Service" |
140
+ | ApplicationComponent | uses | ApplicationComponent | "OrderService" uses "InventoryService" |
139
141
  | ApplicationFunction | realizes | ApplicationService | "Authentication Function" realizes "Auth Service" |
140
142
  | ApplicationProcess | realizes | ApplicationService | "Order Processing Workflow" realizes "Order Service" |
141
- | ApplicationService | realizes | ApplicationInterface | Service exposes interface |
142
- | DataObject | specializes | DataObject | "CustomerOrder" specializes "Order" |
143
+ | ApplicationInterface | assigned-to | ApplicationService | "User REST API" assigned-to "User Management Service" (interface exposes the service) |
144
+ | DataObject | composes | DataObject | "Order" composes "OrderLineItem" |
145
+ | DataObject | aggregates | DataObject | "Cart" aggregates "Product" references |
143
146
 
144
147
  ### Behavioral Relationships
145
148
 
146
- | Source Type | Predicate | Target Type | Example |
147
- | ---------------------- | --------- | -------------------- | ----------------------------------------------- |
148
- | ApplicationEvent | triggers | ApplicationComponent | "OrderCreated" triggers "InventoryService" |
149
- | ApplicationEvent | triggers | ApplicationFunction | "UserLoggedIn" triggers "AuditLogging" function |
150
- | ApplicationEvent | triggers | ApplicationProcess | "PaymentFailed" triggers "RefundProcess" |
151
- | ApplicationProcess | triggers | ApplicationEvent | Workflow completion triggers event |
152
- | ApplicationService | flows-to | ApplicationService | Synchronous service-to-service call |
153
- | ApplicationProcess | flows-to | ApplicationProcess | Sequential process orchestration |
154
- | ApplicationService | accesses | DataObject | Service reads/writes data |
155
- | ApplicationFunction | accesses | DataObject | Function operates on data |
156
- | ApplicationProcess | accesses | DataObject | Workflow manipulates data |
157
- | ApplicationInteraction | accesses | DataObject | Interaction pattern involves data exchange |
158
- | ApplicationInterface | serves | ApplicationComponent | Interface provides access to component |
149
+ | Source Type | Predicate | Target Type | Example |
150
+ | ---------------------- | ---------- | ---------------------- | ---------------------------------------------------------------- |
151
+ | ApplicationEvent | triggers | ApplicationProcess | "PaymentFailed" triggers "Refund Process" |
152
+ | ApplicationEvent | triggers | ApplicationInteraction | "CheckoutStarted" triggers "Checkout Handshake" |
153
+ | ApplicationProcess | triggers | ApplicationEvent | "Place Order" triggers "OrderCreated" |
154
+ | ApplicationEvent | triggers | ApplicationFunction | "UserLoggedIn" triggers "Audit Logging" (event handler) |
155
+ | ApplicationFunction | triggers | ApplicationEvent | "Publish Order" triggers "OrderCreated" |
156
+ | ApplicationInteraction | triggers | ApplicationEvent | "Checkout Handshake" triggers "CheckoutCompleted" |
157
+ | ApplicationProcess | flows-to | ApplicationProcess | "Reserve Inventory" flows-to "Process Payment" |
158
+ | ApplicationFunction | flows-to | ApplicationFunction | "Parse Document" flows-to "Embed Chunks" |
159
+ | ApplicationService | flows-to | ApplicationService | "Checkout Service" flows-to "Payment Service" (synchronous call) |
160
+ | ApplicationService | depends-on | ApplicationService | "Order Service" depends-on "Inventory Service" |
161
+ | ApplicationService | serves | ApplicationComponent | "Auth Service" serves "WebApp" |
162
+ | ApplicationService | serves | ApplicationProcess | "Payment Service" serves "Order Fulfillment Saga" |
163
+ | ApplicationInterface | depends-on | ApplicationFunction | "API Gateway" depends-on "Rate Limiting" |
164
+ | ApplicationService | serves | ApplicationInteraction | "Payment Service" serves "Checkout Handshake" |
165
+ | ApplicationService | accesses | DataObject | "User Management Service" accesses "User" |
166
+ | ApplicationComponent | accesses | DataObject | "OrderService" accesses "Order" |
167
+ | ApplicationFunction | accesses | DataObject | "Data Validation" accesses "Order" |
168
+ | ApplicationProcess | accesses | DataObject | "Order Fulfillment Saga" accesses "Order" |
169
+ | ApplicationEvent | accesses | DataObject | "OrderCreated" accesses "Order" (event payload) |
170
+ | ApplicationInteraction | accesses | DataObject | "Checkout Handshake" accesses "PaymentIntent" |
159
171
 
160
172
  ---
161
173
 
@@ -163,31 +175,52 @@ Explicit DO NOT rules with rationale:
163
175
 
164
176
  ### Outgoing References (Application → Other Layers)
165
177
 
166
- | Target Layer | Reference Type | Example |
167
- | ------------------------ | ------------------------------------------------------- | ------------------------------------------ |
168
- | **Layer 1 (Motivation)** | ApplicationService supports **Goal** | Service achieves business goals |
169
- | **Layer 1 (Motivation)** | ApplicationService delivers **Value** | Service delivers business value |
170
- | **Layer 1 (Motivation)** | ApplicationService governed by **Principle** | Service follows architectural principles |
171
- | **Layer 1 (Motivation)** | ApplicationFunction fulfills **Requirement** | Function implements functional requirement |
172
- | **Layer 2 (Business)** | ApplicationService realizes **BusinessService** | Tech realizes business capability |
173
- | **Layer 2 (Business)** | ApplicationProcess supports **BusinessProcess** | Automates business workflow |
174
- | **Layer 2 (Business)** | DataObject represents **BusinessObject** | Technical data represents business concept |
175
- | **Layer 5 (Technology)** | ApplicationComponent deployed-on **Node** | Service deployed to Kubernetes cluster |
176
- | **Layer 5 (Technology)** | ApplicationService uses **TechnologyService** | Application uses database service |
177
- | **Layer 5 (Technology)** | DataObject stored-in **Artifact** | Data persisted in database |
178
- | **Layer 6 (API)** | ApplicationService defined-by **OpenAPI Specification** | Service has OpenAPI contract |
179
- | **Layer 7 (Data Model)** | DataObject defined-by **JSON Schema** | Data structure defined as schema |
180
- | **Layer 11 (APM)** | ApplicationService tracked-by **BusinessMetric** | Service performance monitored |
181
- | **Layer 11 (APM)** | ApplicationService has-sla **SLA Target** | Latency, availability targets |
182
- | **Layer 11 (APM)** | ApplicationService traced-by **APM** | Distributed tracing enabled |
183
-
184
- ### Incoming References (Lower Layers → Application)
185
-
186
- Lower layers reference Application layer to show:
187
-
188
- - **Technology supports Application** - Infrastructure hosts application components
189
- - **APIs implement Application Services** - OpenAPI specs define service contracts
190
- - **Data schemas define DataObjects** - JSON schemas provide data structure
178
+ | Source Type | Predicate | Target Type | Example |
179
+ | -------------------- | -------------- | ------------------------------- | -------------------------------------------------------------- |
180
+ | ApplicationService | realizes | `business.businessservice` | "Order API" realizes "Order Management" |
181
+ | ApplicationService | serves | `business.businessprocess` | "Payment Service" serves "Checkout" business process |
182
+ | ApplicationService | accesses | `business.businessobject` | "Order API" accesses "Customer Order" |
183
+ | ApplicationProcess | realizes | `business.businessprocess` | "Order Fulfillment Saga" realizes "Fulfill Order" |
184
+ | ApplicationFunction | realizes | `business.businessfunction` | "Credit Scoring" realizes "Risk Assessment" |
185
+ | ApplicationEvent | triggers | `business.businessprocess` | "PaymentFailed" triggers "Dunning" process |
186
+ | ApplicationInterface | serves | `business.businessrole` | "Admin Console" serves "Support Agent" |
187
+ | ApplicationService | realizes | `motivation.goal` | "User Management API" realizes "Improve User Experience" |
188
+ | ApplicationService | delivers | `motivation.value` | "Instant Checkout" delivers "Convenience" |
189
+ | ApplicationFunction | satisfies | `motivation.requirement` | "Token Validation" satisfies "Sessions Expire After 30 Min" |
190
+ | ApplicationService | realizes | `product.softwarecapability` | "Search Service" realizes "Product Discovery" |
191
+ | ApplicationService | realizes | `product.feature` | "Graph Layout Service" realizes "Interactive Graph View" |
192
+ | ApplicationService | requires | `security.authenticationconfig` | "Order API" requires "OAuth2 JWT Auth" |
193
+ | ApplicationService | constrained-by | `security.securitypolicy` | "Patient Records Service" constrained-by "HIPAA Access Policy" |
194
+ | ApplicationComponent | realizes | `security.countermeasure` | "Fetch Interceptor" realizes "Bearer Token Injection" |
195
+ | ApplicationComponent | accesses | `security.secureresource` | "OrderService" accesses "Order Records" |
196
+ | ApplicationComponent | accesses | `data-model.objectschema` | "OrderRepository" accesses the "Order" entity class |
197
+ | ApplicationFunction | accesses | `data-model.objectschema` | "saveOrder" accesses the "Order" entity class |
198
+ | ApplicationComponent | accesses | `data-model.schemadefinition` | "PayloadValidator" accesses the "Address" definition |
199
+ | ApplicationFunction | accesses | `data-model.schemadefinition` | "buildInvoice" accesses the "Invoice" definition |
200
+ | ApplicationEvent | accesses | `data-model.schemadefinition` | "OrderPlaced" accesses its "OrderPlacedPayload" definition |
201
+ | ApplicationComponent | accesses | `data-store.collection` | "OrderRepository" accesses the `orders` table |
202
+ | ApplicationFunction | accesses | `data-store.collection` | "findOrdersByCustomer" accesses `orders` |
203
+ | ApplicationFunction | accesses | `data-store.view` | "monthlyRevenueReport" accesses `monthly_revenue_mv` |
204
+ | ApplicationService | accesses | `data-store.collection` | "Order API" accesses `orders` |
205
+ | ApplicationService | accesses | `data-store.view` | "Reporting Service" accesses `monthly_revenue_mv` |
206
+ | ApplicationService | references | `apm.traceconfiguration` | "Order API" references "Order Service Tracing" |
207
+
208
+ ### Incoming References (Other Layers → Application)
209
+
210
+ | Source Type | Predicate | Target Type | Example |
211
+ | ------------------------------ | ---------- | -------------------- | --------------------------------------------------------- |
212
+ | `technology.node` | serves | ApplicationComponent | "K8s Cluster Prod" serves "UserService" (deployment host) |
213
+ | `technology.systemsoftware` | serves | ApplicationComponent | "React 18" serves "WebApp" |
214
+ | `technology.technologyservice` | serves | ApplicationService | "Managed PostgreSQL" serves "Order API" |
215
+ | `api.openapidocument` | realizes | ApplicationService | "user-api.yaml" realizes "User Management API" |
216
+ | `api.operation` | realizes | ApplicationFunction | "POST /auth/token" realizes "Token Issuance" |
217
+ | `data-model.objectschema` | realizes | DataObject | "User schema" realizes "User" |
218
+ | `business.businessobject` | references | DataObject | "Customer Order" references "Order" |
219
+ | `ux.actioncomponent` | triggers | ApplicationService | "Place Order" button triggers "Checkout Service" |
220
+ | `navigation.route` | lazy-loads | ApplicationComponent | "/settings" lazy-loads "SettingsPanel" |
221
+ | `apm.span` | monitors | ApplicationService | "checkout.process" span monitors "Checkout Service" |
222
+ | `apm.metricinstrument` | monitors | ApplicationService | "order_processing_latency" monitors "Order API" |
223
+ | `testing.testcasesketch` | tests | ApplicationService | "Checkout happy path" tests "Checkout Service" |
191
224
 
192
225
  ---
193
226
 
@@ -297,7 +330,7 @@ class OrderFulfillmentWorkflow:
297
330
 
298
331
  - ApplicationProcess: "OrderFulfillmentSaga" (pattern: saga)
299
332
  - Properties: orchestration-engine=temporal, compensation-enabled=true
300
- - Composes sub-processes (reserve, pay, ship)
333
+ - Sequences sub-processes (reserve, pay, ship) with `flows-to`
301
334
 
302
335
  ### Pattern 5: Data Transfer Object (DTO)
303
336
 
@@ -468,9 +501,12 @@ dr add application interface "order-grpc" \
468
501
  dr add application interface "event-bus" \
469
502
  --description "Event bus for async communication"
470
503
 
471
- # Link service to interface
472
- dr relationship add application.applicationservice.user-management-api \
473
- application.applicationinterface.user-api-rest --predicate realizes
504
+ # Link interface to the service it exposes, and component to interface
505
+ dr relationship add application.applicationinterface.user-api-rest \
506
+ application.applicationservice.user-management-api --predicate assigned-to
507
+
508
+ dr relationship add application.applicationcomponent.user-service \
509
+ application.applicationinterface.user-api-rest --predicate provides
474
510
  ```
475
511
 
476
512
  ### Step 4: Define Application Functions
@@ -501,12 +537,12 @@ dr add application event "order-created" \
501
537
  dr add application event "payment-processed" \
502
538
  --description "Published when payment completes"
503
539
 
504
- # Event triggering
540
+ # Event triggering (processes are defined in Step 7)
505
541
  dr relationship add application.applicationevent.order-created \
506
- application.applicationcomponent.inventory-service --predicate triggers
542
+ application.applicationprocess.order-fulfillment-saga --predicate triggers
507
543
 
508
- dr relationship add application.applicationevent.order-created \
509
- application.applicationcomponent.email-worker --predicate triggers
544
+ dr relationship add application.applicationprocess.process-payment \
545
+ application.applicationevent.payment-processed --predicate triggers
510
546
  ```
511
547
 
512
548
  ### Step 6: Define Data Objects
@@ -544,17 +580,10 @@ dr add application process "process-payment" \
544
580
  dr add application process "ship-order" \
545
581
  --description "Initiate shipping workflow"
546
582
 
547
- # Process composition
548
- dr relationship add application.applicationprocess.order-fulfillment-saga \
549
- application.applicationprocess.reserve-inventory --predicate composes
550
-
583
+ # Process flows (the catalog has no process-composes-process; model saga steps as a flows-to chain)
551
584
  dr relationship add application.applicationprocess.order-fulfillment-saga \
552
- application.applicationprocess.process-payment --predicate composes
585
+ application.applicationprocess.reserve-inventory --predicate flows-to
553
586
 
554
- dr relationship add application.applicationprocess.order-fulfillment-saga \
555
- application.applicationprocess.ship-order --predicate composes
556
-
557
- # Process flows
558
587
  dr relationship add application.applicationprocess.reserve-inventory \
559
588
  application.applicationprocess.process-payment --predicate flows-to
560
589
 
@@ -567,27 +596,27 @@ dr relationship add application.applicationprocess.process-payment \
567
596
  ```bash
568
597
  # Link to business layer
569
598
  dr relationship add application.applicationservice.order-api \
570
- business.service.order-management --predicate realizes
599
+ business.businessservice.order-management --predicate realizes
571
600
 
572
601
  # Link to motivation layer
573
602
  dr relationship add application.applicationservice.user-management-api \
574
- motivation.goal.improve-user-experience --predicate supports
603
+ motivation.goal.improve-user-experience --predicate realizes
575
604
 
576
- # Link to technology layer
577
- dr relationship add application.applicationcomponent.user-service \
578
- technology.node.k8s-cluster-prod --predicate deployed-on
605
+ # Link from technology layer (the node hosting the component serves it)
606
+ dr relationship add technology.node.k8s-cluster-prod \
607
+ application.applicationcomponent.user-service --predicate serves
579
608
 
580
- # Link to API layer
581
- dr relationship add application.applicationservice.user-management-api \
582
- api.openapi-document.user-api --predicate defined-by
609
+ # Link from API layer (the OpenAPI document realizes the service contract)
610
+ dr relationship add api.openapidocument.user-api \
611
+ application.applicationservice.user-management-api --predicate realizes
583
612
 
584
- # Link to data model layer
585
- dr relationship add application.dataobject.user \
586
- data-model.schema.user --predicate defined-by
613
+ # Link from data model layer (the schema realizes the data object)
614
+ dr relationship add data-model.objectschema.user \
615
+ application.dataobject.user --predicate realizes
587
616
 
588
- # Link to APM layer
589
- dr relationship add application.applicationservice.order-api \
590
- apm.metric.order-processing-latency --predicate tracked-by
617
+ # Link from APM layer
618
+ dr relationship add apm.metricinstrument.order-processing-latency \
619
+ application.applicationservice.order-api --predicate monitors
591
620
  ```
592
621
 
593
622
  ### Step 9: Validate
@@ -607,36 +636,36 @@ dr validate --relationships
607
636
  ApplicationCollaboration: "E-commerce Platform"
608
637
  ├── aggregates → ApplicationComponent: "UserService"
609
638
  │ ├── realizes → ApplicationService: "User API"
610
- │ └── deployed-on → Node: "K8s Cluster"
639
+ │ └── ← serves — technology.node: "K8s Cluster"
611
640
  ├── aggregates → ApplicationComponent: "OrderService"
612
641
  │ ├── realizes → ApplicationService: "Order API"
613
- │ └── deployed-on → Node: "K8s Cluster"
642
+ │ └── ← serves — technology.node: "K8s Cluster"
614
643
  ├── aggregates → ApplicationComponent: "PaymentService"
615
644
  │ └── realizes → ApplicationService: "Payment API"
616
- └── uses → ApplicationInterface: "API Gateway"
645
+ └── provides → ApplicationInterface: "API Gateway"
617
646
  ```
618
647
 
619
648
  ### Pattern 2: Event-Driven Architecture
620
649
 
621
650
  ```
622
651
  ApplicationEvent: "OrderCreated"
623
- ├── triggers → ApplicationComponent: "InventoryService"
624
- ├── triggers → ApplicationComponent: "EmailWorker"
625
- ├── triggers → ApplicationComponent: "AnalyticsService"
626
- └── published-by → ApplicationComponent: "OrderService"
627
- └── uses → ApplicationInterface: "EventBus" (protocol: AMQP)
652
+ ├── triggers → ApplicationProcess: "Reserve Inventory" (assigned to "InventoryService")
653
+ ├── triggers → ApplicationProcess: "Send Confirmation Email" (assigned to "EmailWorker")
654
+ ├── ← depends-on — ApplicationFunction: "Analytics Ingest" (handler in "AnalyticsService")
655
+ └── ← triggers — ApplicationProcess: "Place Order" (assigned to "OrderService")
656
+ └── "OrderService" provides → ApplicationInterface: "EventBus" (protocol: AMQP)
628
657
  ```
629
658
 
630
659
  ### Pattern 3: Saga Orchestration
631
660
 
632
661
  ```
633
662
  ApplicationProcess: "Order Fulfillment Saga"
634
- ├── composes → ApplicationProcess: "Reserve Inventory"
663
+ ├── flows-to → ApplicationProcess: "Reserve Inventory"
635
664
  │ ├── flows-to → ApplicationProcess: "Process Payment"
636
- │ └── compensation → ApplicationProcess: "Release Inventory"
637
- ├── composes → ApplicationProcess: "Process Payment"
665
+ │ └── flows-to (on failure) → ApplicationProcess: "Release Inventory"
666
+ ├── ApplicationProcess: "Process Payment"
638
667
  │ ├── flows-to → ApplicationProcess: "Ship Order"
639
- │ └── compensation → ApplicationProcess: "Refund Payment"
668
+ │ └── flows-to (on failure) → ApplicationProcess: "Refund Payment"
640
669
  └── properties: orchestration-engine=temporal, pattern=saga
641
670
  ```
642
671
 
@@ -645,12 +674,12 @@ ApplicationProcess: "Order Fulfillment Saga"
645
674
  ```
646
675
  ApplicationInterface: "API Gateway"
647
676
  ├── protocol: REST
648
- ├── routes-to → ApplicationService: "User API"
649
- ├── routes-to → ApplicationService: "Order API"
650
- ├── routes-to → ApplicationService: "Payment API"
651
- ├── applies → ApplicationFunction: "Authentication"
652
- ├── applies → ApplicationFunction: "Rate Limiting"
653
- └── applies → ApplicationFunction: "Request Logging"
677
+ ├── assigned-to → ApplicationService: "User API"
678
+ ├── assigned-to → ApplicationService: "Order API"
679
+ ├── assigned-to → ApplicationService: "Payment API"
680
+ ├── depends-on → ApplicationFunction: "Authentication"
681
+ ├── depends-on → ApplicationFunction: "Rate Limiting"
682
+ └── depends-on → ApplicationFunction: "Request Logging"
654
683
  ```
655
684
 
656
685
  ---
@@ -684,7 +713,7 @@ export function GraphViewer({ nodes, edges }: GraphViewerProps) {
684
713
  ```
685
714
 
686
715
  → `ApplicationComponent` (type: generic)
687
- → Cross-reference: `x-uses: [technology.systemsoftware.react, technology.artifact.react-flow]`
716
+ → Cross-reference: `technology.systemsoftware.react` serves this component (a `technology.systemsoftware` → `serves` → `ApplicationComponent` relationship)
688
717
  → Also add `ux.component.graph-viewer` in the UX layer for rendering detail
689
718
 
690
719
  ### Pattern: Zustand Store
@@ -893,11 +922,11 @@ dr add application process <name>
893
922
 
894
923
  ```bash
895
924
  dr relationship add <component> <service> --predicate realizes
896
- dr relationship add <service> <interface> --predicate realizes
925
+ dr relationship add <interface> <service> --predicate assigned-to
926
+ dr relationship add <component> <interface> --predicate provides
897
927
  dr relationship add <component> <function> --predicate assigned-to
898
- dr relationship add <event> <component> --predicate triggers
928
+ dr relationship add <event> <process> --predicate triggers
899
929
  dr relationship add <service> <data-object> --predicate accesses
900
- dr relationship add <process> <sub-process> --predicate composes
901
930
  dr relationship add <process-a> <process-b> --predicate flows-to
902
931
  ```
903
932
 
@@ -905,7 +934,7 @@ dr relationship add <process-a> <process-b> --predicate flows-to
905
934
 
906
935
  ```bash
907
936
  dr relationship add application.<service> business.<service> --predicate realizes
908
- dr relationship add application.<component> technology.<node> --predicate deployed-on
909
- dr relationship add application.<service> api.<openapi-doc> --predicate defined-by
910
- dr relationship add application.<data-object> data-model.<schema> --predicate defined-by
937
+ dr relationship add technology.<node> application.<component> --predicate serves
938
+ dr relationship add api.<openapi-doc> application.<service> --predicate realizes
939
+ dr relationship add data-model.<object-schema> application.<data-object> --predicate realizes
911
940
  ```