@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
@@ -41,21 +41,22 @@ This layer uses **ArchiMate 3.2 Business Layer** standard without custom extensi
41
41
  > **CLI Introspection:** Run `dr schema types business` for the authoritative, always-current list of node types.
42
42
  > Run `dr schema node <type-id>` for full attribute details on any type.
43
43
 
44
- | Entity Type | Description | Key Attributes |
45
- | ------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- |
46
- | **BusinessActor** | Organizational entity capable of performing behavior | Examples: Customer, Employee, Partner, Supplier |
47
- | **BusinessRole** | Responsibility for performing specific behavior | Examples: Sales Representative, Account Manager, System Administrator |
48
- | **BusinessCollaboration** | Aggregate of business roles working together | Examples: Sales Team, Customer Service Department, Project Team |
49
- | **BusinessInterface** | Point of access where business service is available | Examples: Customer Portal, Phone Support, Email Support |
50
- | **BusinessProcess** | Sequence of business behaviors achieving a result | Can include BPMN references, security controls, KPI targets |
51
- | **BusinessFunction** | Collection of business behavior based on criteria | Examples: Marketing, Sales, Customer Service, Finance |
52
- | **BusinessInteraction** | Unit of collective behavior by collaboration | Examples: Sales Meeting, Contract Negotiation, Customer Onboarding |
53
- | **BusinessEvent** | Something that happens and influences behavior | Types: time-driven, state-change, external |
54
- | **BusinessService** | Service that fulfills a business need | Includes SLA properties, motivation links, APM monitoring |
55
- | **BusinessObject** | Concept used within business domain | Examples: Order, Invoice, Customer, Opportunity, Support Ticket |
56
- | **Contract** | Formal specification of agreement | Examples: SLA, Terms of Service, Purchase Agreement |
57
- | **Representation** | Perceptible form of business object | Required `format`: pdf, html, xml, json, plain-text, binary |
58
- | **Product** | Coherent collection of services with a value | Aggregates services and contracts, delivers value to customers |
44
+ | Entity Type | Description | Key Attributes |
45
+ | ------------------------- | ------------------------------------------------------ | --------------------------------------------------------------------------- |
46
+ | **BusinessActor** | Organizational entity capable of performing behavior | Examples: Customer, Employee, Partner, Supplier |
47
+ | **BusinessRole** | Responsibility for performing specific behavior | Examples: Sales Representative, Account Manager, System Administrator |
48
+ | **BusinessCollaboration** | Aggregate of business roles working together | Examples: Sales Team, Customer Service Department, Project Team |
49
+ | **BusinessInterface** | Point of access where business service is available | Examples: Customer Portal, Phone Support, Email Support |
50
+ | **BusinessProcess** | Sequence of business behaviors achieving a result | Can include BPMN references, security controls, KPI targets |
51
+ | **BusinessFunction** | Collection of business behavior based on criteria | Examples: Marketing, Sales, Customer Service, Finance |
52
+ | **BusinessInteraction** | Unit of collective behavior by collaboration | Examples: Sales Meeting, Contract Negotiation, Customer Onboarding |
53
+ | **BusinessEvent** | Something that happens and influences behavior | Types: time-driven, state-change, external |
54
+ | **BusinessService** | Service that fulfills a business need | Includes SLA properties, motivation links, APM monitoring |
55
+ | **BusinessObject** | Concept used within business domain | Examples: Order, Invoice, Customer, Opportunity, Support Ticket |
56
+ | **Contract** | Formal specification of agreement | Examples: SLA, Terms of Service, Purchase Agreement |
57
+ | **Representation** | Perceptible form of business object | Required `format`: pdf, html, xml, json, plain-text, binary |
58
+ | **Product** | Coherent collection of services with a value | Aggregates services and contracts, delivers value to customers |
59
+ | **BusinessCapability** | An ability the organization has (ArchiMate Capability) | Examples: Share data with partners, Settle claims; not a SoftwareCapability |
59
60
 
60
61
  ---
61
62
 
@@ -108,98 +109,134 @@ IS this a coherent bundle of services with a value proposition for customers?
108
109
 
109
110
  ## Common Misclassifications
110
111
 
111
- | Misclassification | Correct Classification | Why |
112
- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
113
- | A department or team as `BusinessService` | `BusinessFunction` (department) or `BusinessCollaboration` (team) | Services are externally visible capabilities; departments are behavioral groupings |
114
- | A REST endpoint or UI as `BusinessInterface` | `BusinessInterface` is correct — but link it to the `ApplicationInterface` in the application layer | Business interfaces are the business-facing access point, not the technical one |
115
- | A business rule or policy as `BusinessProcess` | `BusinessProcess` only for sequences of steps; rules belong in Motivation layer as `Principle` or `Constraint` | Processes produce outcomes through behavior; rules govern behavior |
116
- | A domain entity (Order, Invoice) as `BusinessProcess` | `BusinessObject` | Objects are concepts; processes are sequences of behavior |
117
- | A job title (Sales Rep) as `BusinessActor` | `BusinessRole` | Roles are responsibilities; actors are the people/orgs that fill them |
118
- | An SLA document as `BusinessService` | `Contract` | An SLA is a formal agreement, not the service itself |
119
- | A product feature as `BusinessFunction` | `Product` if it bundles services with customer value; `BusinessService` if it's a single capability | Products aggregate services; functions are internal behavioral groupings |
112
+ | Misclassification | Correct Classification | Why |
113
+ | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
114
+ | A department or team as `BusinessService` | `BusinessFunction` (department) or `BusinessCollaboration` (team) | Services are externally visible capabilities; departments are behavioral groupings |
115
+ | A REST endpoint or UI as `BusinessInterface` | `BusinessInterface` is correct — but link it to the `ApplicationInterface` in the application layer | Business interfaces are the business-facing access point, not the technical one |
116
+ | A business rule or policy as `BusinessProcess` | `BusinessProcess` only for sequences of steps; rules belong in Motivation layer as `Principle` or `Constraint` | Processes produce outcomes through behavior; rules govern behavior |
117
+ | A domain entity (Order, Invoice) as `BusinessProcess` | `BusinessObject` | Objects are concepts; processes are sequences of behavior |
118
+ | A job title (Sales Rep) as `BusinessActor` | `BusinessRole` | Roles are responsibilities; actors are the people/orgs that fill them |
119
+ | An SLA document as `BusinessService` | `Contract` | An SLA is a formal agreement, not the service itself |
120
+ | A product feature as `BusinessFunction` | `Product` if it bundles services with customer value; `BusinessService` if it's a single capability | Products aggregate services; functions are internal behavioral groupings |
121
+ | A software ability ("Save to file") as `BusinessCapability` | `product.softwarecapability` | It is what the software can do; it realizes the business function it carries out, which realizes the business capability |
120
122
 
121
123
  ---
122
124
 
123
125
  ## Intra-Layer Relationships
124
126
 
127
+ The business layer's modelling rules (from `spec/layers/02-business.layer.json`):
128
+
129
+ - Actors fill roles. Roles and collaborations are `assigned-to` the processes, functions and interactions they perform; behaviour is never assigned to an actor directly.
130
+ - Internal behaviour `realizes` business services. Interfaces offer services (`assigned-to`), and services `serve` actors, roles and processes.
131
+ - Only behaviour `accesses` business objects and contracts. Actors, roles and interfaces reach information through the behaviour assigned to them.
132
+ - Events `trigger` processes and interactions, and behaviour raises events (`triggers`). A hand-off between behaviours is `flows-to`. A function has no start, so it is reached by `flows-to`, never triggered.
133
+ - A business capability is an ability the organization has: business functions and processes `realize` it, capabilities `aggregate` narrower capabilities, and software capabilities (product layer) contribute by realizing the business functions behind it.
134
+
125
135
  ### Structural Relationships
126
136
 
127
- | Source Type | Predicate | Target Type | Example |
128
- | --------------------- | ----------- | ------------------- | ----------------------------------------------------------------- |
129
- | Product | composes | BusinessService | "E-commerce Platform" composes "Payment Service" |
130
- | BusinessCollaboration | composes | BusinessRole | "Sales Team" composes "Sales Representative" role |
131
- | BusinessProcess | composes | BusinessProcess | "Order Fulfillment" composes "Pick", "Pack", "Ship" sub-processes |
132
- | BusinessFunction | composes | BusinessProcess | "Sales Function" composes "Lead Generation Process" |
133
- | Product | aggregates | BusinessService | Product bundles multiple services |
134
- | Product | aggregates | Contract | Product includes SLA contracts |
135
- | BusinessCollaboration | aggregates | BusinessRole | Collaboration includes multiple roles |
136
- | BusinessActor | assigned-to | BusinessRole | "John Smith" assigned to "Sales Rep" |
137
- | BusinessActor | assigned-to | BusinessProcess | Actor directly performs process |
138
- | BusinessRole | assigned-to | BusinessProcess | Role responsible for process execution |
139
- | BusinessRole | assigned-to | BusinessFunction | Role performs function |
140
- | BusinessCollaboration | assigned-to | BusinessInteraction | Collaboration performs interaction |
141
- | BusinessProcess | realizes | BusinessService | "Order Processing" realizes "Order Management Service" |
142
- | BusinessFunction | realizes | BusinessService | "Customer Support Function" realizes "Support Service" |
143
- | BusinessInteraction | realizes | BusinessService | "Contract Negotiation" realizes "Contracting Service" |
144
- | Representation | realizes | BusinessObject | "Invoice PDF" realizes "Invoice" concept |
145
- | BusinessObject | specializes | BusinessObject | "RetailCustomer" specializes "Customer" |
146
- | BusinessRole | specializes | BusinessRole | "Senior Sales Rep" specializes "Sales Rep" |
147
- | Contract | specializes | Contract | "Premium SLA" specializes "Standard SLA" |
137
+ | Source Type | Predicate | Target Type | Example |
138
+ | --------------------- | ---------- | ------------------ | ---------------------------------------------------------- |
139
+ | Product | aggregates | BusinessService | "Premium Membership" aggregates "Free Shipping Service" |
140
+ | Product | composes | Contract | "Premium Membership" composes "Membership Terms" |
141
+ | BusinessFunction | composes | BusinessFunction | "Sales" composes "Lead Management" |
142
+ | BusinessRole | composes | BusinessRole | "Store Manager" composes "Cashier Supervisor" |
143
+ | BusinessObject | composes | BusinessObject | "Order" composes "Order Line" |
144
+ | BusinessCollaboration | aggregates | BusinessRole | "Sales Team" aggregates "Sales Representative" |
145
+ | Representation | realizes | BusinessObject | "Invoice PDF" realizes "Invoice" |
146
+ | Representation | realizes | Contract | "Signed MSA Document" realizes "Master Services Agreement" |
147
+ | Contract | governs | BusinessService | "Premium SLA" governs "Support Service" |
148
+ | BusinessCapability | aggregates | BusinessCapability | "Customer Management" aggregates "Customer Onboarding" |
149
+ | BusinessFunction | realizes | BusinessCapability | "Data Exchange" realizes "Share Data with Partners" |
150
+ | BusinessProcess | realizes | BusinessCapability | "Claim Settlement" realizes "Settle Claims" |
151
+
152
+ ### Assignment Relationships (who performs what)
153
+
154
+ | Source Type | Predicate | Target Type | Example |
155
+ | --------------------- | ----------- | ------------------- | -------------------------------------------------------- |
156
+ | BusinessActor | assigned-to | BusinessRole | "Jane Smith" assigned to "Account Manager" |
157
+ | BusinessRole | assigned-to | BusinessProcess | "Order Processor" assigned to "Order Fulfillment" |
158
+ | BusinessRole | assigned-to | BusinessFunction | "Support Agent" assigned to "Customer Support" |
159
+ | BusinessRole | assigned-to | BusinessInteraction | "Account Manager" assigned to "Contract Negotiation" |
160
+ | BusinessCollaboration | assigned-to | BusinessInteraction | "Sales Team" assigned to "Sales Meeting" |
161
+ | BusinessInterface | assigned-to | BusinessService | "Customer Portal" assigned to "Order Management Service" |
162
+
163
+ ### Service Relationships
164
+
165
+ | Source Type | Predicate | Target Type | Example |
166
+ | ------------------- | --------- | --------------- | ------------------------------------------------------- |
167
+ | BusinessProcess | realizes | BusinessService | "Order Fulfillment" realizes "Order Management Service" |
168
+ | BusinessFunction | realizes | BusinessService | "Customer Support" realizes "Support Service" |
169
+ | BusinessInteraction | realizes | BusinessService | "Contract Negotiation" realizes "Contracting Service" |
170
+ | BusinessService | serves | BusinessActor | "Order Management Service" serves "Customer" |
171
+ | BusinessService | serves | BusinessRole | "Sales Reporting Service" serves "Regional Manager" |
172
+ | BusinessService | serves | BusinessProcess | "Credit Check Service" serves "Loan Approval" |
173
+ | BusinessInterface | serves | BusinessActor | "Mobile App" serves "Customer" |
174
+ | BusinessInterface | serves | BusinessRole | "Admin Console" serves "Administrator" |
175
+ | BusinessService | delivers | BusinessObject | "Policy Issuance Service" delivers "Insurance Policy" |
148
176
 
149
177
  ### Behavioral Relationships
150
178
 
151
- | Source Type | Predicate | Target Type | Example |
152
- | ------------------- | --------------- | ------------------- | ------------------------------------------------------------ |
153
- | BusinessEvent | triggers | BusinessProcess | "Order Received" triggers "Order Fulfillment Process" |
154
- | BusinessEvent | triggers | BusinessFunction | "Monthly Close" triggers "Financial Reporting Function" |
155
- | BusinessEvent | triggers | BusinessInteraction | "Customer Complaint" triggers "Issue Resolution Interaction" |
156
- | BusinessProcess | triggers | BusinessEvent | "Payment Complete" triggers "Order Confirmed Event" |
157
- | BusinessInteraction | triggers | BusinessProcess | "Sales Meeting" triggers "Proposal Generation Process" |
158
- | BusinessProcess | flows-to | BusinessProcess | "Credit Check" flows to "Order Approval" |
159
- | BusinessInteraction | flows-to | BusinessProcess | "Negotiation" flows to "Contract Signing" |
160
- | BusinessService | serves | BusinessActor | "Customer Portal" serves "Customer" |
161
- | BusinessService | serves | BusinessRole | "Reporting Service" serves "Manager" role |
162
- | BusinessService | serves | BusinessProcess | "Authentication Service" serves "Login Process" |
163
- | BusinessInterface | serves | BusinessActor | "Mobile App" serves "Customer" |
164
- | BusinessInterface | serves | BusinessRole | "Admin Console" serves "Administrator" role |
165
- | BusinessProcess | accesses | BusinessObject | "Order Process" accesses "Order" object |
166
- | BusinessFunction | accesses | BusinessObject | "Billing Function" accesses "Invoice" object |
167
- | BusinessInteraction | accesses | BusinessObject | "Contract Review" accesses "Contract" object |
168
- | Contract | associated-with | BusinessService | SLA contract associated with service delivery |
169
- | BusinessObject | associated-with | BusinessProcess | "Customer" associated with "Onboarding Process" |
179
+ | Source Type | Predicate | Target Type | Example |
180
+ | ------------------- | --------- | ------------------- | ----------------------------------------------------- |
181
+ | BusinessEvent | triggers | BusinessProcess | "Order Received" triggers "Order Fulfillment" |
182
+ | BusinessEvent | triggers | BusinessInteraction | "Customer Complaint" triggers "Issue Resolution Call" |
183
+ | BusinessProcess | triggers | BusinessEvent | "Order Shipping" triggers "Order Shipped" |
184
+ | BusinessFunction | triggers | BusinessEvent | "Financial Close" triggers "Month Closed" |
185
+ | BusinessInteraction | triggers | BusinessEvent | "Contract Negotiation" triggers "Deal Agreed" |
186
+ | BusinessProcess | flows-to | BusinessProcess | "Pick Items" flows to "Pack Order" |
187
+ | BusinessProcess | flows-to | BusinessFunction | "Order Fulfillment" flows to "Invoicing" |
188
+ | BusinessFunction | flows-to | BusinessProcess | "Underwriting" flows to "Policy Issuance" |
189
+ | BusinessInteraction | flows-to | BusinessProcess | "Sales Meeting" flows to "Proposal Generation" |
190
+
191
+ ### Information Access Relationships
192
+
193
+ | Source Type | Predicate | Target Type | Example |
194
+ | ------------------- | --------- | -------------- | ------------------------------------------------------ |
195
+ | BusinessProcess | accesses | BusinessObject | "Order Fulfillment" accesses "Order" |
196
+ | BusinessFunction | accesses | BusinessObject | "Billing" accesses "Invoice" |
197
+ | BusinessInteraction | accesses | BusinessObject | "Contract Review" accesses "Quote" |
198
+ | BusinessProcess | accesses | Contract | "Renewal Processing" accesses "Subscription Agreement" |
199
+ | BusinessFunction | accesses | Contract | "Contract Management" accesses "Supplier Agreement" |
200
+ | BusinessService | accesses | Contract | "Support Service" accesses "Premium SLA" |
170
201
 
171
202
  ---
172
203
 
173
204
  ## Cross-Layer References
174
205
 
175
- ### Outgoing References (Business → Lower Layers)
176
-
177
- | Target Layer | Reference Type | Example |
178
- | ------------------------- | --------------------------------------------------- | -------------------------------------------------------- |
179
- | **Layer 1 (Motivation)** | BusinessService delivers **Value** | "Payment Service" delivers "Revenue Generation" value |
180
- | **Layer 1 (Motivation)** | BusinessService supports **Goal** | Service achieves business goals |
181
- | **Layer 1 (Motivation)** | BusinessService governed by **Principle** | Follows business principles |
182
- | **Layer 1 (Motivation)** | BusinessActor **is** Stakeholder | Actor maps to stakeholder in motivation layer |
183
- | **Layer 1 (Motivation)** | BusinessProcess achieves **Goal** | Process realizes business goals |
184
- | **Layer 1 (Motivation)** | Contract drives **Constraint** | SLA contract defines constraints |
185
- | **Layer 4 (Application)** | BusinessService realized by **ApplicationService** | "Order Service" realized by "OrderManagementAPI" |
186
- | **Layer 4 (Application)** | BusinessProcess automated by **ApplicationProcess** | Process workflow automated by application |
187
- | **Layer 4 (Application)** | BusinessObject represented in **DataObject** | "Customer" business concept maps to customer data object |
188
- | **Layer 4 (Application)** | BusinessEvent triggers **ApplicationEvent** | Business event generates application event |
189
- | **Layer 3 (Security)** | BusinessProcess protected by **SecurityControl** | Process has authentication/authorization |
190
- | **Layer 3 (Security)** | BusinessCollaboration maps to **SecurityActor** | Team maps to security roles |
191
- | **Layer 6 (API)** | BusinessInterface maps to **API Operation** | Portal interface maps to REST endpoints |
192
- | **Layer 7 (Data Model)** | BusinessObject → **JSON Schema** | Business object defined as schema |
193
- | **Layer 11 (APM)** | BusinessProcess tracked by **BusinessMetric** | Process performance measured |
194
- | **Layer 11 (APM)** | BusinessService defines **KPI Target** | SLA targets for monitoring |
195
-
196
- ### Incoming References (Lower Layers → Business)
197
-
198
- Lower layers (Application, Technology, API, etc.) reference Business layer elements to show:
199
-
200
- - **Realization**: Application services realize business services
201
- - **Support**: Technology supports business operations
202
- - **Traceability**: APIs map to business interfaces
206
+ ### Outgoing References (Business → Other Layers)
207
+
208
+ | Source Type | Predicate | Target Type | Example |
209
+ | ------------------ | -------------- | --------------------------- | -------------------------------------------------------------- |
210
+ | BusinessService | realizes | `motivation.goal` | "Order Management Service" realizes "Improve Order Efficiency" |
211
+ | BusinessCapability | supports | `motivation.goal` | "Settle Claims" supports "Pay Claims Within a Day" |
212
+ | BusinessCapability | realizes | `motivation.outcome` | "Onboard Customers" realizes "Onboarding Time Halved" |
213
+ | BusinessService | realizes | `motivation.outcome` | "Same-Day Delivery" realizes "Delivery Complaints Halved" |
214
+ | BusinessService | delivers | `motivation.value` | "Order Management Service" delivers "Customer Convenience" |
215
+ | BusinessService | satisfies | `motivation.requirement` | "Support Service" satisfies "24/7 Support Availability" |
216
+ | BusinessProcess | realizes | `motivation.outcome` | "Automated Refunds" realizes "Refund Time Under 48h" |
217
+ | BusinessProcess | satisfies | `motivation.requirement` | "KYC Verification" satisfies "Verify Customer Identity" |
218
+ | BusinessActor | references | `motivation.stakeholder` | "Customer" actor references "Retail Customers" stakeholder |
219
+ | BusinessRole | references | `motivation.stakeholder` | "Compliance Officer" references "Regulators" |
220
+ | BusinessObject | references | `application.dataobject` | "Order" references the "OrderRecord" data object |
221
+ | BusinessProcess | constrained-by | `security.separationofduty` | "Payment Approval" constrained by "Maker-Checker Rule" |
222
+
223
+ ### Incoming References (Other Layers → Business)
224
+
225
+ | Source Type | Predicate | Target Type | Example |
226
+ | --------------------------------- | ---------- | ---------------- | -------------------------------------------------------- |
227
+ | `application.applicationservice` | realizes | BusinessService | "OrderService API" realizes "Order Management Service" |
228
+ | `application.applicationprocess` | realizes | BusinessProcess | "Checkout Saga" realizes "Order Fulfillment" |
229
+ | `application.applicationfunction` | realizes | BusinessFunction | "Invoice Generator" realizes "Billing" |
230
+ | `application.applicationevent` | triggers | BusinessProcess | "PaymentSucceeded" event triggers "Order Fulfillment" |
231
+ | `application.applicationservice` | accesses | BusinessObject | "OrderService API" accesses "Order" |
232
+ | `product.softwarecapability` | realizes | BusinessFunction | "Save Documents to Files" realizes "Share Data" |
233
+ | `product.userworkflow` | realizes | BusinessProcess | "Checkout Journey" realizes "Order Fulfillment" |
234
+ | `data-model.objectschema` | realizes | BusinessObject | "Order" schema realizes "Order" business object |
235
+ | `data-store.collection` | realizes | BusinessObject | "orders" table realizes "Order" |
236
+ | `security.role` | references | BusinessRole | "admin" security role references "Administrator" |
237
+ | `security.securitypolicy` | governs | BusinessService | "Payment Security Policy" governs "Payment Service" |
238
+ | `apm.metricinstrument` | monitors | BusinessProcess | "orders.fulfilled" metric monitors "Order Fulfillment" |
239
+ | `testing.testcoveragetarget` | covers | BusinessProcess | "Fulfillment Workflow" target covers "Order Fulfillment" |
203
240
 
204
241
  ---
205
242
 
@@ -369,7 +406,7 @@ dr add business service "Order Management Service" \
369
406
 
370
407
  # Link to motivation layer
371
408
  dr relationship add business.businessservice.order-management-service \
372
- motivation.goal.improve-order-efficiency --predicate supports
409
+ motivation.goal.improve-order-efficiency --predicate realizes
373
410
  ```
374
411
 
375
412
  ### Step 3: Model Business Processes
@@ -386,12 +423,10 @@ dr add business process "Pick Items Process" \
386
423
  dr add business process "Pack Order Process" \
387
424
  --description "Pack picked items for shipment"
388
425
 
389
- # Composition relationships
426
+ # The catalog has no process-to-process composition; link sub-processes
427
+ # in sequence with flows-to, and tie the main process to the service it realizes
390
428
  dr relationship add business.businessprocess.order-fulfillment-process \
391
- business.businessprocess.pick-items-process --predicate composes
392
-
393
- dr relationship add business.businessprocess.order-fulfillment-process \
394
- business.businessprocess.pack-order-process --predicate composes
429
+ business.businessservice.order-management-service --predicate realizes
395
430
 
396
431
  # Process flows
397
432
  dr relationship add business.businessprocess.pick-items-process \
@@ -434,17 +469,17 @@ dr relationship add business.businessevent.order-received \
434
469
  ### Step 6: Establish Cross-Layer Relationships
435
470
 
436
471
  ```bash
437
- # Link to application layer
438
- dr relationship add business.businessservice.order-management-service \
439
- application.applicationservice.order-api --predicate realized-by
472
+ # Application service realizes the business service (source is the realizer)
473
+ dr relationship add application.applicationservice.order-api \
474
+ business.businessservice.order-management-service --predicate realizes
440
475
 
441
476
  # Link to motivation layer
442
477
  dr relationship add business.businessservice.order-management-service \
443
478
  motivation.value.customer-satisfaction --predicate delivers
444
479
 
445
- # Link to data layer
446
- dr relationship add business.businessobject.order \
447
- data-model.objectschema.order --predicate defined-by
480
+ # Data-model schema realizes the business object
481
+ dr relationship add data-model.objectschema.order \
482
+ business.businessobject.order --predicate realizes
448
483
  ```
449
484
 
450
485
  ### Step 7: Validate
@@ -462,38 +497,38 @@ dr validate --relationships
462
497
 
463
498
  ```
464
499
  Product: "E-commerce Platform"
465
- ├── composes → BusinessService: "Order Service"
500
+ ├── aggregates → BusinessService: "Order Service"
466
501
  │ ├── realizes ← BusinessProcess: "Order Fulfillment"
467
502
  │ │ ├── triggers ← BusinessEvent: "Order Received"
468
503
  │ │ ├── accesses → BusinessObject: "Order"
469
- │ │ └── assigned-to → BusinessRole: "Order Processor"
470
- │ └── realized-by → ApplicationService: "OrderManagementAPI"
471
- ├── composes → BusinessService: "Payment Service"
504
+ │ │ └── assigned-to ← BusinessRole: "Order Processor"
505
+ │ └── realizes ← ApplicationService: "OrderManagementAPI"
506
+ ├── aggregates → BusinessService: "Payment Service"
472
507
  │ └── realizes ← BusinessProcess: "Payment Processing"
473
- └── aggregates → Contract: "E-commerce SLA"
508
+ └── composes → Contract: "E-commerce SLA"
474
509
  ```
475
510
 
476
511
  ### Scenario 2: Customer Support System
477
512
 
478
513
  ```
479
514
  BusinessFunction: "Customer Support"
480
- ├── composes → BusinessProcess: "Ticket Resolution"
515
+ ├── flows-to → BusinessProcess: "Ticket Resolution"
481
516
  │ ├── triggers ← BusinessEvent: "Support Request Received"
482
- │ ├── assigned-to → BusinessRole: "Support Agent"
517
+ │ ├── assigned-to ← BusinessRole: "Support Agent"
483
518
  │ ├── accesses → BusinessObject: "Support Ticket"
484
519
  │ └── flows-to → BusinessProcess: "Follow-up Communication"
485
520
  ├── realizes → BusinessService: "Support Service"
486
521
  │ ├── serves → BusinessActor: "Customer"
487
522
  │ └── properties: sla-response-time=2h, sla-resolution-time=24h
488
- └── tracked-by → BusinessMetric: "First Response Time"
523
+ └── monitors ← apm.MetricInstrument: "First Response Time"
489
524
  ```
490
525
 
491
526
  ### Scenario 3: Sales Pipeline
492
527
 
493
528
  ```
494
529
  BusinessCollaboration: "Sales Team"
495
- ├── composes → BusinessRole: "Sales Representative"
496
- ├── composes → BusinessRole: "Sales Manager"
530
+ ├── aggregates → BusinessRole: "Sales Representative"
531
+ ├── aggregates → BusinessRole: "Sales Manager"
497
532
  └── assigned-to → BusinessInteraction: "Sales Meeting"
498
533
  ├── accesses → BusinessObject: "Opportunity"
499
534
  ├── flows-to → BusinessProcess: "Proposal Generation"
@@ -560,7 +595,7 @@ dr export archimate --layers business --output business.archimate
560
595
  ## Best Practices
561
596
 
562
597
  1. **Start with Services, Not Processes** - Identify WHAT the business provides before HOW it's delivered
563
- 2. **Use Process Composition** - Break complex processes into manageable sub-processes
598
+ 2. **Decompose Processes** - Break complex processes into sub-processes linked in sequence with `flows-to`
564
599
  3. **Model Events Explicitly** - Event-driven architectures need explicit BusinessEvent entities
565
600
  4. **Link to Motivation Early** - Connect services and processes to goals for traceability
566
601
  5. **Don't Over-Detail** - Focus on architecturally significant processes, not every task
@@ -573,14 +608,14 @@ dr export archimate --layers business --output business.archimate
573
608
 
574
609
  ## Validation Tips
575
610
 
576
- | Issue | Cause | Fix |
577
- | ---------------------------- | -------------------------------------------- | --------------------------------------------- |
578
- | Orphaned Process | No event triggers it, no service realizes it | Add triggering event or link to service |
579
- | Unrealized Service | No process/function realizes the service | Add process that implements the service |
580
- | Missing Business Objects | Processes don't access any objects | Identify key domain concepts and add them |
581
- | No Cross-Layer Relationships | Business not linked to application/data | Add realization relationships to lower layers |
582
- | Unassigned Roles | Roles not assigned to processes | Assign roles to show responsibility |
583
- | Missing SLA Properties | Services lack performance targets | Add SLA properties for monitoring |
611
+ | Issue | Cause | Fix |
612
+ | ---------------------------- | -------------------------------------------- | ------------------------------------------- |
613
+ | Orphaned Process | No event triggers it, no service realizes it | Add triggering event or link to service |
614
+ | Unrealized Service | No process/function realizes the service | Add process that implements the service |
615
+ | Missing Business Objects | Processes don't access any objects | Identify key domain concepts and add them |
616
+ | No Cross-Layer Relationships | Business not linked to application/data | Add realizes from application/data elements |
617
+ | Unassigned Roles | Roles not assigned to processes | Assign roles to show responsibility |
618
+ | Missing SLA Properties | Services lack performance targets | Add SLA properties for monitoring |
584
619
 
585
620
  ---
586
621
 
@@ -609,12 +644,14 @@ dr relationship add <source> <target> --predicate triggers
609
644
  dr relationship add <source> <target> --predicate flows-to
610
645
  dr relationship add <source> <target> --predicate accesses
611
646
  dr relationship add <source> <target> --predicate serves
647
+ dr relationship add <source> <target> --predicate aggregates
612
648
  ```
613
649
 
614
650
  **Cross-Layer Relationship Commands:**
615
651
 
616
652
  ```bash
617
- dr relationship add <business-service> <motivation-goal> --predicate supports
618
- dr relationship add <business-service> <application-service> --predicate realized-by
619
- dr relationship add <business-object> <data-schema> --predicate defined-by
653
+ dr relationship add <business-service> <motivation-goal> --predicate realizes
654
+ dr relationship add <business-service> <motivation-value> --predicate delivers
655
+ dr relationship add <application-service> <business-service> --predicate realizes
656
+ dr relationship add <data-model-objectschema> <business-object> --predicate realizes
620
657
  ```