@documentation-robotics/cli 0.2.0 → 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 (269) hide show
  1. package/README.md +36 -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/audit/relationships/ai/prompts.js +10 -10
  34. package/dist/audit/relationships/ai/prompts.js.map +2 -2
  35. package/dist/audit/relationships/analysis/layer-templates.js +52 -52
  36. package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
  37. package/dist/cli.js +12 -2
  38. package/dist/cli.js.map +2 -2
  39. package/dist/coding-agents/default-permissions.js +31 -1
  40. package/dist/coding-agents/default-permissions.js.map +2 -2
  41. package/dist/coding-agents/drbot-mcp.js +167 -0
  42. package/dist/coding-agents/drbot-mcp.js.map +7 -0
  43. package/dist/commands/add.js +3 -2
  44. package/dist/commands/add.js.map +2 -2
  45. package/dist/commands/analyzer.js +117 -14
  46. package/dist/commands/analyzer.js.map +2 -2
  47. package/dist/commands/changeset-verify.js +55 -0
  48. package/dist/commands/changeset-verify.js.map +7 -0
  49. package/dist/commands/changeset.js +43 -22
  50. package/dist/commands/changeset.js.map +2 -2
  51. package/dist/commands/delete.js +10 -4
  52. package/dist/commands/delete.js.map +2 -2
  53. package/dist/commands/farm.js +176 -60
  54. package/dist/commands/farm.js.map +2 -2
  55. package/dist/commands/mcp.js +19 -4
  56. package/dist/commands/mcp.js.map +2 -2
  57. package/dist/commands/relationship.js +207 -26
  58. package/dist/commands/relationship.js.map +2 -2
  59. package/dist/commands/update.js +42 -23
  60. package/dist/commands/update.js.map +2 -2
  61. package/dist/commands/upgrade.js +99 -11
  62. package/dist/commands/upgrade.js.map +3 -3
  63. package/dist/commands/version.js +1 -1
  64. package/dist/commands/visualize.js +4 -3
  65. package/dist/commands/visualize.js.map +2 -2
  66. package/dist/core/catalog-migration.js +33 -0
  67. package/dist/core/catalog-migration.js.map +7 -0
  68. package/dist/core/changeset-analysis.js +421 -0
  69. package/dist/core/changeset-analysis.js.map +7 -0
  70. package/dist/core/changeset-base-index.js +153 -0
  71. package/dist/core/changeset-base-index.js.map +7 -0
  72. package/dist/core/changeset-brief-delta.js +102 -0
  73. package/dist/core/changeset-brief-delta.js.map +7 -0
  74. package/dist/core/changeset-graph.js +281 -0
  75. package/dist/core/changeset-graph.js.map +7 -0
  76. package/dist/core/changeset-only-guard.js +32 -0
  77. package/dist/core/changeset-only-guard.js.map +7 -0
  78. package/dist/core/changeset-summary.js +68 -0
  79. package/dist/core/changeset-summary.js.map +7 -0
  80. package/dist/core/changeset-validator.js +66 -20
  81. package/dist/core/changeset-validator.js.map +2 -2
  82. package/dist/core/changeset-verify.js +518 -0
  83. package/dist/core/changeset-verify.js.map +7 -0
  84. package/dist/core/changeset.js +56 -9
  85. package/dist/core/changeset.js.map +2 -2
  86. package/dist/core/element-type-migration.js +145 -0
  87. package/dist/core/element-type-migration.js.map +7 -0
  88. package/dist/core/farm-manifest.js +12 -6
  89. package/dist/core/farm-manifest.js.map +2 -2
  90. package/dist/core/farm-sync-engine.js +1 -1
  91. package/dist/core/farm-sync-engine.js.map +2 -2
  92. package/dist/core/farm-sync-state.js +10 -2
  93. package/dist/core/farm-sync-state.js.map +2 -2
  94. package/dist/core/migration-registry.js +75 -46
  95. package/dist/core/migration-registry.js.map +2 -2
  96. package/dist/core/model-upgrade.js +102 -0
  97. package/dist/core/model-upgrade.js.map +7 -0
  98. package/dist/core/model.js +82 -30
  99. package/dist/core/model.js.map +2 -2
  100. package/dist/core/mutation-handler.js +71 -6
  101. package/dist/core/mutation-handler.js.map +2 -2
  102. package/dist/core/relationship-migration-table.js +6639 -0
  103. package/dist/core/relationship-migration-table.js.map +7 -0
  104. package/dist/core/relationship-migration.js +272 -0
  105. package/dist/core/relationship-migration.js.map +7 -0
  106. package/dist/core/relationship-prune.js +49 -0
  107. package/dist/core/relationship-prune.js.map +7 -0
  108. package/dist/core/relationship-staging.js +68 -0
  109. package/dist/core/relationship-staging.js.map +7 -0
  110. package/dist/core/relationships.js +26 -4
  111. package/dist/core/relationships.js.map +2 -2
  112. package/dist/core/report-data-model.js +7 -13
  113. package/dist/core/report-data-model.js.map +2 -2
  114. package/dist/core/staged-changeset-storage.js +64 -17
  115. package/dist/core/staged-changeset-storage.js.map +2 -2
  116. package/dist/core/staged-source-reference.js +28 -0
  117. package/dist/core/staged-source-reference.js.map +7 -0
  118. package/dist/core/staging-area.js +83 -18
  119. package/dist/core/staging-area.js.map +2 -2
  120. package/dist/core/virtual-projection.js +13 -5
  121. package/dist/core/virtual-projection.js.map +2 -2
  122. package/dist/export/archimate-exporter.js +1 -0
  123. package/dist/export/archimate-exporter.js.map +2 -2
  124. package/dist/generated/compiled-validators.js +2 -2
  125. package/dist/generated/compiled-validators.js.map +2 -2
  126. package/dist/generated/layer-registry.js +16 -16
  127. package/dist/generated/layer-registry.js.map +2 -2
  128. package/dist/generated/node-types.js +186 -168
  129. package/dist/generated/node-types.js.map +2 -2
  130. package/dist/generated/relationship-index.js +2236 -7790
  131. package/dist/generated/relationship-index.js.map +2 -2
  132. package/dist/integrations/claude_code/agents/dr-architect.md +16 -3
  133. package/dist/integrations/claude_code/agents/dr-extractor.md +1 -1
  134. package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
  135. package/dist/integrations/claude_code/commands/dr-map.md +13 -0
  136. package/dist/integrations/claude_code/commands/dr-plan.md +40 -0
  137. package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
  138. package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
  139. package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
  140. package/dist/integrations/claude_code/docs/MCP_SERVER.md +26 -2
  141. package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
  142. package/dist/integrations/claude_code/docs/README.md +48 -1
  143. package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
  144. package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
  145. package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
  146. package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
  147. package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
  148. package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
  149. package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
  150. package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
  151. package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
  152. package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
  153. package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
  154. package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
  155. package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +92 -15
  156. package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +119 -0
  157. package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +3 -0
  158. package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +1 -1
  159. package/dist/integrations/github_copilot/agents/dr-architect.md +1 -1
  160. package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
  161. package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
  162. package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
  163. package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
  164. package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
  165. package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
  166. package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
  167. package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
  168. package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
  169. package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
  170. package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
  171. package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
  172. package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +222 -102
  173. package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +119 -0
  174. package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
  175. package/dist/integrations/hash-utils.js.map +2 -2
  176. package/dist/mcp/api-key-manager.js +14 -1
  177. package/dist/mcp/api-key-manager.js.map +2 -2
  178. package/dist/mcp/changeset-only.js +34 -0
  179. package/dist/mcp/changeset-only.js.map +7 -0
  180. package/dist/mcp/tool-registry.js +19 -3
  181. package/dist/mcp/tool-registry.js.map +2 -2
  182. package/dist/mcp/tools/changeset-analysis-tools.js +78 -0
  183. package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
  184. package/dist/mcp/tools/changeset-editing.js +184 -0
  185. package/dist/mcp/tools/changeset-editing.js.map +7 -0
  186. package/dist/mcp/tools/changeset-lifecycle.js +83 -0
  187. package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
  188. package/dist/mcp/tools/changeset-shared.js +31 -0
  189. package/dist/mcp/tools/changeset-shared.js.map +7 -0
  190. package/dist/mcp/tools/changeset-show.js +17 -1
  191. package/dist/mcp/tools/changeset-show.js.map +2 -2
  192. package/dist/mcp/tools/changeset-verify.js +43 -0
  193. package/dist/mcp/tools/changeset-verify.js.map +7 -0
  194. package/dist/mcp/tools/index.js +19 -1
  195. package/dist/mcp/tools/index.js.map +2 -2
  196. package/dist/mcp/tools/model-add.js +6 -5
  197. package/dist/mcp/tools/model-add.js.map +2 -2
  198. package/dist/mcp/tools/model-delete.js +2 -2
  199. package/dist/mcp/tools/model-delete.js.map +2 -2
  200. package/dist/mcp/tools/model-search.js +14 -0
  201. package/dist/mcp/tools/model-search.js.map +2 -2
  202. package/dist/mcp/tools/model-show.js +29 -2
  203. package/dist/mcp/tools/model-show.js.map +2 -2
  204. package/dist/mcp/tools/model-trace.js +93 -30
  205. package/dist/mcp/tools/model-trace.js.map +2 -2
  206. package/dist/mcp/tools/model-update.js +35 -19
  207. package/dist/mcp/tools/model-update.js.map +2 -2
  208. package/dist/mcp/tools/relationship-tools.js +98 -0
  209. package/dist/mcp/tools/relationship-tools.js.map +7 -0
  210. package/dist/mcp/tools/shared.js +25 -2
  211. package/dist/mcp/tools/shared.js.map +2 -2
  212. package/dist/mcp/tools/spec-type.js +90 -0
  213. package/dist/mcp/tools/spec-type.js.map +7 -0
  214. package/dist/schemas/bundled/analyzers/cbm.json +1186 -68
  215. package/dist/schemas/bundled/analyzers/manifest.json +2 -2
  216. package/dist/schemas/bundled/api.json +1029 -1658
  217. package/dist/schemas/bundled/apm.json +499 -734
  218. package/dist/schemas/bundled/application.json +735 -371
  219. package/dist/schemas/bundled/base.json +3 -220
  220. package/dist/schemas/bundled/business.json +452 -366
  221. package/dist/schemas/bundled/data-model.json +395 -411
  222. package/dist/schemas/bundled/data-store.json +334 -558
  223. package/dist/schemas/bundled/manifest.json +18 -18
  224. package/dist/schemas/bundled/motivation.json +349 -368
  225. package/dist/schemas/bundled/navigation.json +415 -731
  226. package/dist/schemas/bundled/product.json +325 -159
  227. package/dist/schemas/bundled/security.json +864 -1232
  228. package/dist/schemas/bundled/technology.json +574 -703
  229. package/dist/schemas/bundled/testing.json +718 -1643
  230. package/dist/schemas/bundled/ux.json +739 -1352
  231. package/dist/server/schemas.js +8 -0
  232. package/dist/server/schemas.js.map +2 -2
  233. package/dist/server/server.js +218 -34
  234. package/dist/server/server.js.map +2 -2
  235. package/dist/server-entry.js +2 -1
  236. package/dist/server-entry.js.map +2 -2
  237. package/dist/telemetry/index.js +1 -1
  238. package/dist/utils/ansi-suppressor.js +6 -8
  239. package/dist/utils/ansi-suppressor.js.map +2 -2
  240. package/dist/utils/attribute-patch.js +41 -0
  241. package/dist/utils/attribute-patch.js.map +7 -0
  242. package/dist/utils/error-hints.js +29 -0
  243. package/dist/utils/error-hints.js.map +7 -0
  244. package/dist/utils/errors.js +9 -3
  245. package/dist/utils/errors.js.map +2 -2
  246. package/dist/utils/project-paths.js +26 -1
  247. package/dist/utils/project-paths.js.map +2 -2
  248. package/dist/utils/source-reference.js +14 -12
  249. package/dist/utils/source-reference.js.map +2 -2
  250. package/dist/utils/spec-version.js +2 -2
  251. package/dist/utils/spec-version.js.map +1 -1
  252. package/dist/validators/composed-reference-validator.js +5 -27
  253. package/dist/validators/composed-reference-validator.js.map +2 -2
  254. package/dist/validators/reference-validator.js +0 -7
  255. package/dist/validators/reference-validator.js.map +2 -2
  256. package/dist/validators/relationship-schema-validator.js +3 -3
  257. package/dist/validators/relationship-schema-validator.js.map +2 -2
  258. package/dist/validators/schema-validator.js +27 -9
  259. package/dist/validators/schema-validator.js.map +2 -2
  260. package/dist/validators/types.js.map +1 -1
  261. package/dist/viewer/README.md +6 -6
  262. package/dist/viewer/assets/main-CxzcuU_o.js +84 -0
  263. package/dist/viewer/assets/main-j-7ULYpm.css +1 -0
  264. package/dist/viewer/index.html +2 -2
  265. package/dist/viewer/manifest.json +10 -10
  266. package/dist/viewer/version.json +1 -1
  267. package/package.json +2 -1
  268. package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
  269. package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
@@ -110,64 +110,85 @@ IS this a semantic definition, interpretation, or piece of knowledge attached to
110
110
 
111
111
  ## Intra-Layer Relationships
112
112
 
113
- ### Structural Relationships
114
-
115
- | Source Type | Predicate | Target Type | Example |
116
- | ----------- | ----------- | ----------- | ------------------------------------------------------------ |
117
- | Goal | aggregates | Goal | Strategic Goal aggregates Operational Goals |
118
- | Requirement | aggregates | Requirement | Business Requirement aggregates Functional Requirements |
119
- | Principle | aggregates | Principle | Enterprise Principles aggregate Domain Principles |
120
- | Constraint | aggregates | Constraint | Budget Constraint aggregates Project Budget Constraints |
121
- | Outcome | realizes | Goal | "Launched Mobile App" realizes "Launch Mobile App by Q4" |
122
- | Goal | realizes | Value | "Improve Customer Satisfaction" realizes "Customer Value" |
123
- | Requirement | realizes | Goal | Functional Requirements realize Business Goals |
124
- | Requirement | realizes | Principle | Technical Requirements realize Security Principles |
125
- | Constraint | realizes | Principle | Technology Constraints realize Technology Principles |
126
- | Goal | specializes | Goal | "Reduce API Latency" specializes "Improve Performance" |
127
- | Requirement | specializes | Requirement | "95% Uptime SLA" specializes "High Availability Requirement" |
128
- | Principle | specializes | Principle | "Encrypt All PII" specializes "Data Security Principle" |
129
- | Value | specializes | Value | "Customer Retention Value" specializes "Customer Value" |
130
-
131
- ### Behavioral Relationships
132
-
133
- | Source Type | Predicate | Target Type | Example |
134
- | ----------- | --------------- | ----------- | ----------------------------------------------------------------------- |
135
- | Driver | influences | Goal | "Digital Transformation" influences "Modernize Architecture" |
136
- | Driver | influences | Requirement | "GDPR Compliance" influences "Data Protection Requirements" |
137
- | Driver | influences | Principle | "Cloud-First Strategy" influences "Cloud-Native Principles" |
138
- | Assessment | influences | Goal | "Legacy System Weakness" influences "Modernization Goal" |
139
- | Goal | influences | Requirement | Business Goals influence Functional Requirements |
140
- | Principle | influences | Requirement | Security Principles influence Technical Requirements |
141
- | Principle | influences | Constraint | "API-First Principle" influences "RESTful API Constraint" |
142
- | Constraint | influences | Requirement | Budget Constraints influence Implementation Requirements |
143
- | Value | influences | Goal | "Customer Value" influences "Improve UX Goal" |
144
- | Stakeholder | influences | Goal | "CEO" influences Strategic Goals |
145
- | Stakeholder | influences | Requirement | "End Users" influence Functional Requirements |
146
- | Stakeholder | influences | Value | "Shareholders" influence Financial Value |
147
- | Stakeholder | associated-with | Driver | "Product Manager" associated with "Market Competition Driver" |
148
- | Goal | associated-with | Outcome | "Improve Performance" associated with "Achieved 50ms Latency" |
149
- | Requirement | associated-with | Outcome | "High Availability Requirement" associated with "99.99% Uptime Outcome" |
150
- | Driver | associated-with | Assessment | "Market Driver" associated with "Competitive Threat Assessment" |
151
- | Value | associated-with | Meaning | "Customer Value" associated with "Definition of Customer Success" |
113
+ Note that the ArchiMate influence predicate is spelled `influence` (not `influences`).
114
+
115
+ ### Realization and Decomposition
116
+
117
+ Requirements realize the outcomes, goals and principles they make concrete, and outcomes realize
118
+ goals. Decomposition is same-type only: `aggregates` for parts, `specializes` for variants.
119
+
120
+ | Source Type | Predicate | Target Type | Example |
121
+ | ----------- | ----------- | ----------- | ------------------------------------------------------------------- |
122
+ | Requirement | realizes | Goal | "API must respond in <200ms" realizes "Improve Performance" |
123
+ | Requirement | realizes | Outcome | "99.99% availability" realizes "Downtime Under 1h per Quarter" |
124
+ | Requirement | realizes | Principle | "Orders API uses OAuth 2.0" realizes "Security by Design" |
125
+ | Outcome | realizes | Goal | "Churn Reduced 10%" realizes "Improve Customer Satisfaction" |
126
+ | Goal | aggregates | Goal | "Improve Customer Satisfaction" aggregates "Reduce Response Time" |
127
+ | Requirement | aggregates | Requirement | "Secure User Data" requirement aggregates "Encrypt Data in Transit" |
128
+ | Outcome | aggregates | Outcome | "Global NPS 50" aggregates "EU NPS 50" |
129
+ | Stakeholder | aggregates | Stakeholder | "Finance" aggregates "Accounts Payable Team" |
130
+ | Value | aggregates | Value | "Lower Total Cost" aggregates "Lower Licence Cost" |
131
+ | Goal | specializes | Goal | "Reduce API Latency" specializes "Improve Performance" |
132
+ | Requirement | specializes | Requirement | "99.95% Uptime SLA" specializes "High Availability Requirement" |
133
+ | Constraint | specializes | Constraint | "EU-only Data Residency" specializes "Data Residency Constraint" |
134
+ | Constraint | constrains | Requirement | "Must use OAuth 2.0" constrains "User Authentication" |
135
+
136
+ ### Influence and Association Relationships
137
+
138
+ `influence` is one motivation element shaping another. `associated-with` is kept for concerns
139
+ (stakeholders, assessments evaluating drivers) and interpretation: meaning and value are associated
140
+ with any concept and are always the source.
141
+
142
+ | Source Type | Predicate | Target Type | Example |
143
+ | ----------- | --------------- | ----------- | --------------------------------------------------------------------- |
144
+ | Stakeholder | influence | Goal | "CEO" influences "Reduce Operating Costs by 20%" |
145
+ | Driver | influence | Goal | "Digital Transformation" influences "Modernize Architecture" |
146
+ | Driver | influence | Requirement | "GDPR Regulation" influences "Right to Deletion" |
147
+ | Driver | influence | Principle | "Cloud-First Strategy" influences "Cloud-Native Architecture" |
148
+ | Driver | influence | Constraint | "GDPR Regulation" influences "EU-only Data Residency" |
149
+ | Assessment | influence | Goal | "Legacy System Debt" influences "Modernize Architecture" |
150
+ | Assessment | influence | Requirement | "Slow Checkout Weakness" influences "Checkout must complete in <2s" |
151
+ | Assessment | influence | Outcome | "Checkout p95 is 4s" influences "Checkout p95 Under 2s by Q3" |
152
+ | Goal | influence | Requirement | "Improve Security" influences "Enforce MFA for Admins" |
153
+ | Goal | influence | Principle | "Modernize Architecture" influences "Cloud-Native Architecture" |
154
+ | Principle | influence | Requirement | "API-First Design" influences "Every Feature Exposes an API" |
155
+ | Constraint | influence | Goal | "Fixed Q4 Budget" influences "Launch Mobile App by Q4" |
156
+ | Stakeholder | associated-with | Driver | "Head of Compliance" associated with "GDPR Regulation" |
157
+ | Stakeholder | associated-with | Requirement | "End Users" associated with "Offline Mode Support" |
158
+ | Assessment | associated-with | Driver | "GDPR Gap Analysis" associated with "GDPR Regulation" |
159
+ | Value | associated-with | Stakeholder | "Customer Loyalty" associated with "Customers" |
160
+ | Value | associated-with | Goal | "Customer Loyalty" associated with "Improve Customer Satisfaction" |
161
+ | Value | associated-with | Driver | "Faster Time to Market" associated with "Market Competition" |
162
+ | Meaning | associated-with | Value | "Definition of Customer Success" associated with "Customer Loyalty" |
163
+ | Meaning | associated-with | Requirement | "Definition of Session" associated with "Sessions Expire After 15min" |
152
164
 
153
165
  ---
154
166
 
155
167
  ## Cross-Layer References
156
168
 
157
- **Motivation Layer is the highest layer** - It does **NOT reference any lower layers**. Instead, lower layers reference UP to this layer for governance.
158
-
159
- ### Incoming References (Lower Layers → Motivation)
160
-
161
- | Layer | References Motivation For |
162
- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
163
- | **Layer 2 (Business)** | BusinessService delivers Value, supports Goals, governed by Principles; BusinessActor is Stakeholder; Contract drives Constraints |
164
- | **Layer 3 (Security)** | Actor references Stakeholder; ActorObjective references Goal; Threat references Assessment; Countermeasure implements Requirement |
165
- | **Layer 4 (Application)** | ApplicationService supports Goals, delivers Value, governed by Principles; ApplicationFunction fulfills Requirements |
166
- | **Layer 5 (Technology)** | TechnologyService supports Goals, governed by Principles; Node fulfills Requirements, constrained by Constraints |
167
- | **Layer 6 (API)** | Operation supports Goals (x-supports-goals), fulfills Requirements, governed by Principles, constrained by Constraints |
168
- | **Layer 7-13** | All layers can reference Principles, Constraints, Requirements, Goals for governance and traceability |
169
-
170
- **Design Pattern:** Lower layers "look up" to the Motivation layer to justify WHY they exist and WHAT value they deliver.
169
+ **Motivation Layer is the root of traceability.** The catalog defines no outgoing references from Motivation; elements in other layers point to motivation elements to justify WHY they exist and WHAT value they deliver.
170
+
171
+ ### Incoming References (Other Layers → Motivation)
172
+
173
+ | Source Type | Predicate | Target Type | Example |
174
+ | --------------------------------- | ---------------- | ----------- | ------------------------------------------------------------------- |
175
+ | `business.businessservice` | realizes | Goal | "Online Ordering" realizes "Grow Digital Revenue" |
176
+ | `business.businessservice` | delivers | Value | "Same-Day Delivery" delivers "Customer Convenience" |
177
+ | `business.businessprocess` | satisfies | Requirement | "Refund Processing" satisfies "Refunds Issued Within 5 Days" |
178
+ | `business.businessactor` | references | Stakeholder | "Customer" actor references "Customers" stakeholder |
179
+ | `product.softwarecapability` | supports | Goal | "Self-Service Returns" supports "Reduce Support Costs" |
180
+ | `product.feature` | satisfies | Requirement | "Two-Factor Login" satisfies "Enforce MFA for Admins" |
181
+ | `product.persona` | references | Stakeholder | "Busy Parent Persona" references "Retail Customers" |
182
+ | `product.userworkflow` | delivers | Outcome | "Checkout Flow" delivers "Cart Abandonment Reduced 15%" |
183
+ | `security.securitypolicy` | satisfies | Principle | "Encryption Policy" satisfies "Security by Design" |
184
+ | `security.countermeasure` | satisfies | Requirement | "Rate Limiting" satisfies "Prevent Credential Stuffing" |
185
+ | `application.applicationservice` | realizes | Goal | "Recommendation Service" realizes "Increase Average Order Value" |
186
+ | `application.applicationfunction` | satisfies | Requirement | "Audit Logging" satisfies "Log All Admin Actions" |
187
+ | `technology.systemsoftware` | satisfies | Constraint | "PostgreSQL 15" satisfies "Approved Open-Source Databases Only" |
188
+ | `api.operation` | satisfies | Requirement | "POST /orders" satisfies "Orders Accepted via Public API" |
189
+ | `data-store.retentionpolicy` | satisfies | Constraint | "Purge PII After 30 Days" satisfies "GDPR Data Minimization" |
190
+ | `apm.metricinstrument` | measures-outcome | Outcome | "checkout.duration" metric measures "Checkout Under 2s Outcome" |
191
+ | `testing.testcoveragemodel` | satisfies | Requirement | "Checkout Coverage Model" satisfies "Checkout must complete in <2s" |
171
192
 
172
193
  ---
173
194
 
@@ -347,23 +368,23 @@ Connect motivation elements using predicates:
347
368
  ```bash
348
369
  # Driver influences Goal
349
370
  dr relationship add motivation.driver.cloud-migration-pressure \
350
- motivation.goal.modernize-architecture --predicate influences
371
+ motivation.goal.modernize-architecture --predicate influence
351
372
 
352
- # Goal realizes Value
353
- dr relationship add motivation.goal.modernize-architecture \
354
- motivation.value.operational-efficiency --predicate realizes
373
+ # Value associated with Goal (meaning and value are the source)
374
+ dr relationship add motivation.value.operational-efficiency \
375
+ motivation.goal.modernize-architecture --predicate associated-with
355
376
 
356
377
  # Principle influences Requirement
357
378
  dr relationship add motivation.principle.api-first-design \
358
- motivation.requirement.api-authentication --predicate influences
379
+ motivation.requirement.api-authentication --predicate influence
359
380
 
360
381
  # Stakeholder influences Goal
361
382
  dr relationship add motivation.stakeholder.product-manager \
362
- motivation.goal.modernize-architecture --predicate influences
383
+ motivation.goal.modernize-architecture --predicate influence
363
384
 
364
385
  # Assessment influences Goal
365
386
  dr relationship add motivation.assessment.legacy-system-debt \
366
- motivation.goal.modernize-architecture --predicate influences
387
+ motivation.goal.modernize-architecture --predicate influence
367
388
  ```
368
389
 
369
390
  ### Step 6: Validate
@@ -394,30 +415,29 @@ Strategic Goal: "Improve Customer Satisfaction"
394
415
  ```
395
416
  Business Requirement: "Secure User Data"
396
417
  ├── aggregates → Functional Requirement: "Encrypt Data at Rest"
397
- │ └── influences → Technical Requirement: "Use AES-256 Encryption"
418
+ │ └── aggregates → Technical Requirement: "Use AES-256 Encryption"
398
419
  ├── aggregates → Functional Requirement: "Encrypt Data in Transit"
399
- │ └── influences → Technical Requirement: "Use TLS 1.3"
420
+ │ └── aggregates → Technical Requirement: "Use TLS 1.3"
400
421
  └── aggregates → Compliance Requirement: "GDPR Data Protection"
401
- └── influences → Technical Requirement: "Right to Deletion API"
422
+ └── aggregates → Technical Requirement: "Right to Deletion API"
402
423
  ```
403
424
 
404
425
  ### Pattern 3: Principle Application
405
426
 
406
427
  ```
407
428
  Principle: "Cloud-Native Architecture"
408
- ├── influences → Requirement: "Containerized Deployments"
409
- ├── influences → Requirement: "Stateless Services"
410
- ├── influences → Constraint: "No On-Premise Infrastructure"
411
- └── realizes → Value: "Scalability and Resilience"
429
+ ├── influence → Requirement: "Containerized Deployments"
430
+ ├── influence → Requirement: "Stateless Services"
431
+ └── associated-with → Value: "Scalability and Resilience"
412
432
  ```
413
433
 
414
434
  ### Pattern 4: Stakeholder → Goal → Implementation Chain
415
435
 
416
436
  ```
417
437
  Stakeholder: "CEO"
418
- └── influences → Goal: "Reduce Operating Costs by 20%"
419
- ├── influences → Requirement: "Automated CI/CD Pipeline"
420
- ├── influences → Principle: "Infrastructure as Code"
438
+ └── influence → Goal: "Reduce Operating Costs by 20%"
439
+ ├── influence → Requirement: "Automated CI/CD Pipeline"
440
+ ├── influence → Principle: "Infrastructure as Code"
421
441
  └── realizes → Value: "Financial Efficiency"
422
442
  └── (lower layers reference this chain)
423
443
  ```
@@ -487,7 +507,7 @@ dr export archimate --layers motivation --output motivation.archimate
487
507
 
488
508
  **Supported Relationships:**
489
509
 
490
- - `aggregates`, `realizes`, `specializes`, `influences`, `associated-with`
510
+ - `aggregates`, `realizes`, `specializes`, `influence`, `associated-with`
491
511
 
492
512
  ---
493
513
 
@@ -535,10 +555,11 @@ dr add motivation constraint <name> --description <description>
535
555
  **Relationship Commands:**
536
556
 
537
557
  ```bash
538
- dr relationship add <source-id> <target-id> --predicate influences
558
+ dr relationship add <source-id> <target-id> --predicate influence
539
559
  dr relationship add <source-id> <target-id> --predicate aggregates
540
560
  dr relationship add <source-id> <target-id> --predicate realizes
541
561
  dr relationship add <source-id> <target-id> --predicate specializes
562
+ dr relationship add <source-id> <target-id> --predicate associated-with
542
563
  ```
543
564
 
544
565
  **Query Commands:**