@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.
- package/README.md +36 -2
- package/dist/analysis/relationship-classifier.js +2 -9
- package/dist/analysis/relationship-classifier.js.map +2 -2
- package/dist/analyzers/call-graph-utils.js +2 -2
- package/dist/analyzers/call-graph-utils.js.map +2 -2
- package/dist/analyzers/cards/build.js +171 -0
- package/dist/analyzers/cards/build.js.map +7 -0
- package/dist/analyzers/cards/classify.js +42 -0
- package/dist/analyzers/cards/classify.js.map +7 -0
- package/dist/analyzers/cards/edge-index.js +44 -0
- package/dist/analyzers/cards/edge-index.js.map +7 -0
- package/dist/analyzers/cards/facts.js +46 -0
- package/dist/analyzers/cards/facts.js.map +7 -0
- package/dist/analyzers/cards/graph.js +42 -0
- package/dist/analyzers/cards/graph.js.map +7 -0
- package/dist/analyzers/cards/index.js +8 -0
- package/dist/analyzers/cards/index.js.map +7 -0
- package/dist/analyzers/cards/tier0.js +18 -0
- package/dist/analyzers/cards/tier0.js.map +7 -0
- package/dist/analyzers/cards/types.js +1 -0
- package/dist/analyzers/cards/types.js.map +7 -0
- package/dist/analyzers/cbm-analyzer.js +195 -171
- package/dist/analyzers/cbm-analyzer.js.map +2 -2
- package/dist/analyzers/cbm-responses.js +336 -0
- package/dist/analyzers/cbm-responses.js.map +7 -0
- package/dist/analyzers/edge-relationships.js +45 -0
- package/dist/analyzers/edge-relationships.js.map +7 -0
- package/dist/analyzers/mapping-loader.js +9 -0
- package/dist/analyzers/mapping-loader.js.map +2 -2
- package/dist/analyzers/tier0-rules.js +153 -0
- package/dist/analyzers/tier0-rules.js.map +7 -0
- package/dist/analyzers/types.js.map +1 -1
- package/dist/audit/relationships/ai/prompts.js +10 -10
- package/dist/audit/relationships/ai/prompts.js.map +2 -2
- package/dist/audit/relationships/analysis/layer-templates.js +52 -52
- package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
- package/dist/cli.js +12 -2
- package/dist/cli.js.map +2 -2
- package/dist/coding-agents/default-permissions.js +31 -1
- package/dist/coding-agents/default-permissions.js.map +2 -2
- package/dist/coding-agents/drbot-mcp.js +167 -0
- package/dist/coding-agents/drbot-mcp.js.map +7 -0
- package/dist/commands/add.js +3 -2
- package/dist/commands/add.js.map +2 -2
- package/dist/commands/analyzer.js +117 -14
- package/dist/commands/analyzer.js.map +2 -2
- package/dist/commands/changeset-verify.js +55 -0
- package/dist/commands/changeset-verify.js.map +7 -0
- package/dist/commands/changeset.js +43 -22
- package/dist/commands/changeset.js.map +2 -2
- package/dist/commands/delete.js +10 -4
- package/dist/commands/delete.js.map +2 -2
- package/dist/commands/farm.js +176 -60
- package/dist/commands/farm.js.map +2 -2
- package/dist/commands/mcp.js +19 -4
- package/dist/commands/mcp.js.map +2 -2
- package/dist/commands/relationship.js +207 -26
- package/dist/commands/relationship.js.map +2 -2
- package/dist/commands/update.js +42 -23
- package/dist/commands/update.js.map +2 -2
- package/dist/commands/upgrade.js +99 -11
- package/dist/commands/upgrade.js.map +3 -3
- package/dist/commands/version.js +1 -1
- package/dist/commands/visualize.js +4 -3
- package/dist/commands/visualize.js.map +2 -2
- package/dist/core/catalog-migration.js +33 -0
- package/dist/core/catalog-migration.js.map +7 -0
- package/dist/core/changeset-analysis.js +421 -0
- package/dist/core/changeset-analysis.js.map +7 -0
- package/dist/core/changeset-base-index.js +153 -0
- package/dist/core/changeset-base-index.js.map +7 -0
- package/dist/core/changeset-brief-delta.js +102 -0
- package/dist/core/changeset-brief-delta.js.map +7 -0
- package/dist/core/changeset-graph.js +281 -0
- package/dist/core/changeset-graph.js.map +7 -0
- package/dist/core/changeset-only-guard.js +32 -0
- package/dist/core/changeset-only-guard.js.map +7 -0
- package/dist/core/changeset-summary.js +68 -0
- package/dist/core/changeset-summary.js.map +7 -0
- package/dist/core/changeset-validator.js +66 -20
- package/dist/core/changeset-validator.js.map +2 -2
- package/dist/core/changeset-verify.js +518 -0
- package/dist/core/changeset-verify.js.map +7 -0
- package/dist/core/changeset.js +56 -9
- package/dist/core/changeset.js.map +2 -2
- package/dist/core/element-type-migration.js +145 -0
- package/dist/core/element-type-migration.js.map +7 -0
- package/dist/core/farm-manifest.js +12 -6
- package/dist/core/farm-manifest.js.map +2 -2
- package/dist/core/farm-sync-engine.js +1 -1
- package/dist/core/farm-sync-engine.js.map +2 -2
- package/dist/core/farm-sync-state.js +10 -2
- package/dist/core/farm-sync-state.js.map +2 -2
- package/dist/core/migration-registry.js +75 -46
- package/dist/core/migration-registry.js.map +2 -2
- package/dist/core/model-upgrade.js +102 -0
- package/dist/core/model-upgrade.js.map +7 -0
- package/dist/core/model.js +82 -30
- package/dist/core/model.js.map +2 -2
- package/dist/core/mutation-handler.js +71 -6
- package/dist/core/mutation-handler.js.map +2 -2
- package/dist/core/relationship-migration-table.js +6639 -0
- package/dist/core/relationship-migration-table.js.map +7 -0
- package/dist/core/relationship-migration.js +272 -0
- package/dist/core/relationship-migration.js.map +7 -0
- package/dist/core/relationship-prune.js +49 -0
- package/dist/core/relationship-prune.js.map +7 -0
- package/dist/core/relationship-staging.js +68 -0
- package/dist/core/relationship-staging.js.map +7 -0
- package/dist/core/relationships.js +26 -4
- package/dist/core/relationships.js.map +2 -2
- package/dist/core/report-data-model.js +7 -13
- package/dist/core/report-data-model.js.map +2 -2
- package/dist/core/staged-changeset-storage.js +64 -17
- package/dist/core/staged-changeset-storage.js.map +2 -2
- package/dist/core/staged-source-reference.js +28 -0
- package/dist/core/staged-source-reference.js.map +7 -0
- package/dist/core/staging-area.js +83 -18
- package/dist/core/staging-area.js.map +2 -2
- package/dist/core/virtual-projection.js +13 -5
- package/dist/core/virtual-projection.js.map +2 -2
- package/dist/export/archimate-exporter.js +1 -0
- package/dist/export/archimate-exporter.js.map +2 -2
- package/dist/generated/compiled-validators.js +2 -2
- package/dist/generated/compiled-validators.js.map +2 -2
- package/dist/generated/layer-registry.js +16 -16
- package/dist/generated/layer-registry.js.map +2 -2
- package/dist/generated/node-types.js +186 -168
- package/dist/generated/node-types.js.map +2 -2
- package/dist/generated/relationship-index.js +2236 -7790
- package/dist/generated/relationship-index.js.map +2 -2
- package/dist/integrations/claude_code/agents/dr-architect.md +16 -3
- package/dist/integrations/claude_code/agents/dr-extractor.md +1 -1
- package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
- package/dist/integrations/claude_code/commands/dr-map.md +13 -0
- package/dist/integrations/claude_code/commands/dr-plan.md +40 -0
- package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
- package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
- package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
- package/dist/integrations/claude_code/docs/MCP_SERVER.md +26 -2
- package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
- package/dist/integrations/claude_code/docs/README.md +48 -1
- package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
- package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
- package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
- package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
- package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
- package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
- package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
- package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
- package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
- package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
- package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
- package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
- package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +92 -15
- package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +119 -0
- package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +3 -0
- package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +1 -1
- package/dist/integrations/github_copilot/agents/dr-architect.md +1 -1
- package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
- package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
- package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
- package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
- package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
- package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
- package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
- package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
- package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
- package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
- package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
- package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
- package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +222 -102
- package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +119 -0
- package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
- package/dist/integrations/hash-utils.js.map +2 -2
- package/dist/mcp/api-key-manager.js +14 -1
- package/dist/mcp/api-key-manager.js.map +2 -2
- package/dist/mcp/changeset-only.js +34 -0
- package/dist/mcp/changeset-only.js.map +7 -0
- package/dist/mcp/tool-registry.js +19 -3
- package/dist/mcp/tool-registry.js.map +2 -2
- package/dist/mcp/tools/changeset-analysis-tools.js +78 -0
- package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
- package/dist/mcp/tools/changeset-editing.js +184 -0
- package/dist/mcp/tools/changeset-editing.js.map +7 -0
- package/dist/mcp/tools/changeset-lifecycle.js +83 -0
- package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
- package/dist/mcp/tools/changeset-shared.js +31 -0
- package/dist/mcp/tools/changeset-shared.js.map +7 -0
- package/dist/mcp/tools/changeset-show.js +17 -1
- package/dist/mcp/tools/changeset-show.js.map +2 -2
- package/dist/mcp/tools/changeset-verify.js +43 -0
- package/dist/mcp/tools/changeset-verify.js.map +7 -0
- package/dist/mcp/tools/index.js +19 -1
- package/dist/mcp/tools/index.js.map +2 -2
- package/dist/mcp/tools/model-add.js +6 -5
- package/dist/mcp/tools/model-add.js.map +2 -2
- package/dist/mcp/tools/model-delete.js +2 -2
- package/dist/mcp/tools/model-delete.js.map +2 -2
- package/dist/mcp/tools/model-search.js +14 -0
- package/dist/mcp/tools/model-search.js.map +2 -2
- package/dist/mcp/tools/model-show.js +29 -2
- package/dist/mcp/tools/model-show.js.map +2 -2
- package/dist/mcp/tools/model-trace.js +93 -30
- package/dist/mcp/tools/model-trace.js.map +2 -2
- package/dist/mcp/tools/model-update.js +35 -19
- package/dist/mcp/tools/model-update.js.map +2 -2
- package/dist/mcp/tools/relationship-tools.js +98 -0
- package/dist/mcp/tools/relationship-tools.js.map +7 -0
- package/dist/mcp/tools/shared.js +25 -2
- package/dist/mcp/tools/shared.js.map +2 -2
- package/dist/mcp/tools/spec-type.js +90 -0
- package/dist/mcp/tools/spec-type.js.map +7 -0
- package/dist/schemas/bundled/analyzers/cbm.json +1186 -68
- package/dist/schemas/bundled/analyzers/manifest.json +2 -2
- package/dist/schemas/bundled/api.json +1029 -1658
- package/dist/schemas/bundled/apm.json +499 -734
- package/dist/schemas/bundled/application.json +735 -371
- package/dist/schemas/bundled/base.json +3 -220
- package/dist/schemas/bundled/business.json +452 -366
- package/dist/schemas/bundled/data-model.json +395 -411
- package/dist/schemas/bundled/data-store.json +334 -558
- package/dist/schemas/bundled/manifest.json +18 -18
- package/dist/schemas/bundled/motivation.json +349 -368
- package/dist/schemas/bundled/navigation.json +415 -731
- package/dist/schemas/bundled/product.json +325 -159
- package/dist/schemas/bundled/security.json +864 -1232
- package/dist/schemas/bundled/technology.json +574 -703
- package/dist/schemas/bundled/testing.json +718 -1643
- package/dist/schemas/bundled/ux.json +739 -1352
- package/dist/server/schemas.js +8 -0
- package/dist/server/schemas.js.map +2 -2
- package/dist/server/server.js +218 -34
- package/dist/server/server.js.map +2 -2
- package/dist/server-entry.js +2 -1
- package/dist/server-entry.js.map +2 -2
- package/dist/telemetry/index.js +1 -1
- package/dist/utils/ansi-suppressor.js +6 -8
- package/dist/utils/ansi-suppressor.js.map +2 -2
- package/dist/utils/attribute-patch.js +41 -0
- package/dist/utils/attribute-patch.js.map +7 -0
- package/dist/utils/error-hints.js +29 -0
- package/dist/utils/error-hints.js.map +7 -0
- package/dist/utils/errors.js +9 -3
- package/dist/utils/errors.js.map +2 -2
- package/dist/utils/project-paths.js +26 -1
- package/dist/utils/project-paths.js.map +2 -2
- package/dist/utils/source-reference.js +14 -12
- package/dist/utils/source-reference.js.map +2 -2
- package/dist/utils/spec-version.js +2 -2
- package/dist/utils/spec-version.js.map +1 -1
- package/dist/validators/composed-reference-validator.js +5 -27
- package/dist/validators/composed-reference-validator.js.map +2 -2
- package/dist/validators/reference-validator.js +0 -7
- package/dist/validators/reference-validator.js.map +2 -2
- package/dist/validators/relationship-schema-validator.js +3 -3
- package/dist/validators/relationship-schema-validator.js.map +2 -2
- package/dist/validators/schema-validator.js +27 -9
- package/dist/validators/schema-validator.js.map +2 -2
- package/dist/validators/types.js.map +1 -1
- package/dist/viewer/README.md +6 -6
- package/dist/viewer/assets/main-CxzcuU_o.js +84 -0
- package/dist/viewer/assets/main-j-7ULYpm.css +1 -0
- package/dist/viewer/index.html +2 -2
- package/dist/viewer/manifest.json +10 -10
- package/dist/viewer/version.json +1 -1
- package/package.json +2 -1
- package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
- package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
|
@@ -14,13 +14,13 @@ triggers:
|
|
|
14
14
|
"motivation",
|
|
15
15
|
"archimate motivation"
|
|
16
16
|
]
|
|
17
|
-
version: 0.8.
|
|
17
|
+
version: 0.8.3
|
|
18
18
|
---
|
|
19
19
|
|
|
20
20
|
# Motivation Layer Skill
|
|
21
21
|
|
|
22
22
|
**Layer Number:** 01
|
|
23
|
-
**Specification:** Metadata Model Spec v0.8.
|
|
23
|
+
**Specification:** Metadata Model Spec v0.8.3
|
|
24
24
|
**Purpose:** Captures stakeholder concerns, goals, requirements, and constraints that drive architectural decisions using ArchiMate motivation elements.
|
|
25
25
|
|
|
26
26
|
---
|
|
@@ -58,66 +58,137 @@ This layer uses **ArchiMate 3.2 Motivation Layer** standard without custom exten
|
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
-
##
|
|
61
|
+
## Type Decision Tree
|
|
62
|
+
|
|
63
|
+
Use this decision tree **before assigning a type** to any motivation concept.
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
IS this an individual, team, or organization with an interest in the system or its outcomes?
|
|
67
|
+
→ motivation.stakeholder
|
|
68
|
+
|
|
69
|
+
IS this an external or internal condition (market, regulatory, technology, competitive, operational,
|
|
70
|
+
strategic) that motivates the organization to change or act?
|
|
71
|
+
→ motivation.driver
|
|
72
|
+
|
|
73
|
+
IS this the result of analyzing the current state — a strength, weakness, opportunity, threat, risk,
|
|
74
|
+
or gap identified through assessment (e.g., SWOT)?
|
|
75
|
+
→ motivation.assessment
|
|
76
|
+
|
|
77
|
+
IS this a high-level statement of intent, direction, or desired end state the organization wants to achieve?
|
|
78
|
+
→ motivation.goal
|
|
62
79
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
| Principle | influences | Constraint | "API-First Principle" influences "RESTful API Constraint" |
|
|
92
|
-
| Constraint | influences | Requirement | Budget Constraints influence Implementation Requirements |
|
|
93
|
-
| Value | influences | Goal | "Customer Value" influences "Improve UX Goal" |
|
|
94
|
-
| Stakeholder | influences | Goal | "CEO" influences Strategic Goals |
|
|
95
|
-
| Stakeholder | influences | Requirement | "End Users" influence Functional Requirements |
|
|
96
|
-
| Stakeholder | influences | Value | "Shareholders" influence Financial Value |
|
|
97
|
-
| Stakeholder | associated-with | Driver | "Product Manager" associated with "Market Competition Driver" |
|
|
98
|
-
| Goal | associated-with | Outcome | "Improve Performance" associated with "Achieved 50ms Latency" |
|
|
99
|
-
| Requirement | associated-with | Outcome | "High Availability Requirement" associated with "99.99% Uptime Outcome" |
|
|
100
|
-
| Driver | associated-with | Assessment | "Market Driver" associated with "Competitive Threat Assessment" |
|
|
101
|
-
| Value | associated-with | Meaning | "Customer Value" associated with "Definition of Customer Success" |
|
|
80
|
+
IS this a specific, verifiable statement of need that must be realized (functional, non-functional,
|
|
81
|
+
compliance, business, technical, or user need)?
|
|
82
|
+
→ motivation.requirement
|
|
83
|
+
|
|
84
|
+
IS this a normative rule or guideline that all systems in this context must follow
|
|
85
|
+
(business, data, application, technology, security, integration)?
|
|
86
|
+
→ motivation.principle
|
|
87
|
+
|
|
88
|
+
IS this a hard restriction on HOW the system can be realized — a limit the system cannot exceed
|
|
89
|
+
(budget, time, technology, regulatory, organizational, resource)?
|
|
90
|
+
→ motivation.constraint
|
|
91
|
+
|
|
92
|
+
IS this an end result that has been or is being achieved — tracked against a goal?
|
|
93
|
+
→ motivation.outcome
|
|
94
|
+
|
|
95
|
+
IS this the relative worth, utility, or importance that the system or feature delivers?
|
|
96
|
+
→ motivation.value
|
|
97
|
+
|
|
98
|
+
IS this a semantic definition, interpretation, or piece of knowledge attached to another element?
|
|
99
|
+
→ motivation.meaning
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Key distinctions:**
|
|
103
|
+
|
|
104
|
+
- **Goal vs Requirement**: A Goal is aspirational ("improve performance"); a Requirement is a verifiable must ("API must respond in <200ms")
|
|
105
|
+
- **Requirement vs Constraint**: A Requirement says WHAT must be done; a Constraint says HOW it is bounded ("must use OAuth 2.0" limits the solution space)
|
|
106
|
+
- **Driver vs Assessment**: A Driver is an ongoing force motivating action; an Assessment is a point-in-time finding about the current state
|
|
107
|
+
- **Outcome vs Goal**: A Goal is what you intend to achieve; an Outcome is what has been (or is being) achieved
|
|
102
108
|
|
|
103
109
|
---
|
|
104
110
|
|
|
105
|
-
##
|
|
111
|
+
## Intra-Layer Relationships
|
|
106
112
|
|
|
107
|
-
|
|
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" |
|
|
108
164
|
|
|
109
|
-
|
|
165
|
+
---
|
|
110
166
|
|
|
111
|
-
|
|
112
|
-
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
113
|
-
| **Layer 2 (Business)** | BusinessService delivers Value, supports Goals, governed by Principles; BusinessActor is Stakeholder; Contract drives Constraints |
|
|
114
|
-
| **Layer 3 (Security)** | Actor references Stakeholder; ActorObjective references Goal; Threat references Assessment; Countermeasure implements Requirement |
|
|
115
|
-
| **Layer 4 (Application)** | ApplicationService supports Goals, delivers Value, governed by Principles; ApplicationFunction fulfills Requirements |
|
|
116
|
-
| **Layer 5 (Technology)** | TechnologyService supports Goals, governed by Principles; Node fulfills Requirements, constrained by Constraints |
|
|
117
|
-
| **Layer 6 (API)** | Operation supports Goals (x-supports-goals), fulfills Requirements, governed by Principles, constrained by Constraints |
|
|
118
|
-
| **Layer 7-13** | All layers can reference Principles, Constraints, Requirements, Goals for governance and traceability |
|
|
167
|
+
## Cross-Layer References
|
|
119
168
|
|
|
120
|
-
**
|
|
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" |
|
|
121
192
|
|
|
122
193
|
---
|
|
123
194
|
|
|
@@ -203,6 +274,26 @@ TARGET_UPTIME_SLA = 0.9999
|
|
|
203
274
|
|
|
204
275
|
---
|
|
205
276
|
|
|
277
|
+
## Coverage Completeness Checklist
|
|
278
|
+
|
|
279
|
+
Before declaring motivation layer extraction complete, verify each type was considered:
|
|
280
|
+
|
|
281
|
+
- [ ] **stakeholder** — All individuals, teams, and organizations with interests in the system are documented
|
|
282
|
+
- [ ] **driver** — External and internal forces motivating architectural decisions are captured
|
|
283
|
+
- [ ] **assessment** — SWOT-style findings (strengths, weaknesses, opportunities, threats, risks, gaps) are recorded
|
|
284
|
+
- [ ] **goal** — High-level intentions and desired end states are defined with priority
|
|
285
|
+
- [ ] **requirement** — Specific needs that must be realized are documented (functional, non-functional, compliance, etc.)
|
|
286
|
+
- [ ] **principle** — Normative guidelines governing all system implementations are listed
|
|
287
|
+
- [ ] **constraint** — Hard limits and restrictions on system realization are documented
|
|
288
|
+
- [ ] **outcome** — Achieved or tracked results linked to goals are recorded
|
|
289
|
+
- [ ] **value** — The worth and utility delivered by the system or feature is articulated
|
|
290
|
+
- [ ] **meaning** — Semantic definitions or knowledge interpretations are captured where elements need clarification
|
|
291
|
+
|
|
292
|
+
If any type has ZERO elements, explicitly decide:
|
|
293
|
+
"This type doesn't apply to this codebase" with reasoning.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
206
297
|
## Modeling Workflow
|
|
207
298
|
|
|
208
299
|
### Step 1: Identify Stakeholders
|
|
@@ -212,15 +303,12 @@ Start by documenting **WHO cares** about the system:
|
|
|
212
303
|
```bash
|
|
213
304
|
# Add key stakeholders
|
|
214
305
|
dr add motivation stakeholder "End Users" \
|
|
215
|
-
--properties type=external \
|
|
216
306
|
--description "Customers using the platform"
|
|
217
307
|
|
|
218
308
|
dr add motivation stakeholder "Product Manager" \
|
|
219
|
-
--properties type=internal \
|
|
220
309
|
--description "Defines product vision and priorities"
|
|
221
310
|
|
|
222
311
|
dr add motivation stakeholder "Compliance Team" \
|
|
223
|
-
--properties type=internal \
|
|
224
312
|
--description "Ensures regulatory compliance"
|
|
225
313
|
```
|
|
226
314
|
|
|
@@ -231,16 +319,13 @@ Identify **WHAT is pushing** the organization:
|
|
|
231
319
|
```bash
|
|
232
320
|
# Market driver
|
|
233
321
|
dr add motivation driver "Cloud Migration Pressure" \
|
|
234
|
-
--properties category=market \
|
|
235
322
|
--description "Industry shift to cloud-native architectures"
|
|
236
323
|
|
|
237
324
|
# SWOT assessment
|
|
238
325
|
dr add motivation assessment "Legacy System Debt" \
|
|
239
|
-
--properties assessmentType=weakness \
|
|
240
326
|
--description "Monolithic architecture limits agility"
|
|
241
327
|
|
|
242
328
|
dr add motivation assessment "Strong Engineering Team" \
|
|
243
|
-
--properties assessmentType=strength \
|
|
244
329
|
--description "Experienced team with cloud expertise"
|
|
245
330
|
```
|
|
246
331
|
|
|
@@ -251,12 +336,10 @@ Articulate **WHAT we want to achieve**:
|
|
|
251
336
|
```bash
|
|
252
337
|
# Strategic goal
|
|
253
338
|
dr add motivation goal "Modernize Architecture" \
|
|
254
|
-
--properties priority=critical,measurable=true,target-date=2024-12-31 \
|
|
255
339
|
--description "Migrate to microservices architecture"
|
|
256
340
|
|
|
257
341
|
# Value delivered
|
|
258
342
|
dr add motivation value "Operational Efficiency" \
|
|
259
|
-
--properties type=operational \
|
|
260
343
|
--description "Reduced deployment time and increased reliability"
|
|
261
344
|
```
|
|
262
345
|
|
|
@@ -267,17 +350,14 @@ Define **HOW we will operate**:
|
|
|
267
350
|
```bash
|
|
268
351
|
# Functional requirement
|
|
269
352
|
dr add motivation requirement "API Authentication" \
|
|
270
|
-
--properties type=functional \
|
|
271
353
|
--description "All API endpoints must authenticate users"
|
|
272
354
|
|
|
273
355
|
# Guiding principle
|
|
274
356
|
dr add motivation principle "API-First Design" \
|
|
275
|
-
--properties category=application \
|
|
276
357
|
--description "All services expose RESTful APIs with OpenAPI specs"
|
|
277
358
|
|
|
278
359
|
# Hard constraint
|
|
279
360
|
dr add motivation constraint "AWS-Only Infrastructure" \
|
|
280
|
-
--properties type=technology \
|
|
281
361
|
--description "All services must deploy to AWS (no multi-cloud)"
|
|
282
362
|
```
|
|
283
363
|
|
|
@@ -287,31 +367,31 @@ Connect motivation elements using predicates:
|
|
|
287
367
|
|
|
288
368
|
```bash
|
|
289
369
|
# Driver influences Goal
|
|
290
|
-
dr relationship add
|
|
291
|
-
|
|
370
|
+
dr relationship add motivation.driver.cloud-migration-pressure \
|
|
371
|
+
motivation.goal.modernize-architecture --predicate influence
|
|
292
372
|
|
|
293
|
-
# Goal
|
|
294
|
-
dr relationship add
|
|
295
|
-
|
|
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
|
|
296
376
|
|
|
297
377
|
# Principle influences Requirement
|
|
298
|
-
dr relationship add
|
|
299
|
-
|
|
378
|
+
dr relationship add motivation.principle.api-first-design \
|
|
379
|
+
motivation.requirement.api-authentication --predicate influence
|
|
300
380
|
|
|
301
381
|
# Stakeholder influences Goal
|
|
302
|
-
dr relationship add
|
|
303
|
-
|
|
382
|
+
dr relationship add motivation.stakeholder.product-manager \
|
|
383
|
+
motivation.goal.modernize-architecture --predicate influence
|
|
304
384
|
|
|
305
385
|
# Assessment influences Goal
|
|
306
|
-
dr relationship add
|
|
307
|
-
|
|
386
|
+
dr relationship add motivation.assessment.legacy-system-debt \
|
|
387
|
+
motivation.goal.modernize-architecture --predicate influence
|
|
308
388
|
```
|
|
309
389
|
|
|
310
390
|
### Step 6: Validate
|
|
311
391
|
|
|
312
392
|
```bash
|
|
313
|
-
dr validate --
|
|
314
|
-
dr validate --
|
|
393
|
+
dr validate --layers motivation
|
|
394
|
+
dr validate --relationships
|
|
315
395
|
```
|
|
316
396
|
|
|
317
397
|
---
|
|
@@ -335,30 +415,29 @@ Strategic Goal: "Improve Customer Satisfaction"
|
|
|
335
415
|
```
|
|
336
416
|
Business Requirement: "Secure User Data"
|
|
337
417
|
├── aggregates → Functional Requirement: "Encrypt Data at Rest"
|
|
338
|
-
│ └──
|
|
418
|
+
│ └── aggregates → Technical Requirement: "Use AES-256 Encryption"
|
|
339
419
|
├── aggregates → Functional Requirement: "Encrypt Data in Transit"
|
|
340
|
-
│ └──
|
|
420
|
+
│ └── aggregates → Technical Requirement: "Use TLS 1.3"
|
|
341
421
|
└── aggregates → Compliance Requirement: "GDPR Data Protection"
|
|
342
|
-
└──
|
|
422
|
+
└── aggregates → Technical Requirement: "Right to Deletion API"
|
|
343
423
|
```
|
|
344
424
|
|
|
345
425
|
### Pattern 3: Principle Application
|
|
346
426
|
|
|
347
427
|
```
|
|
348
428
|
Principle: "Cloud-Native Architecture"
|
|
349
|
-
├──
|
|
350
|
-
├──
|
|
351
|
-
|
|
352
|
-
└── realizes → Value: "Scalability and Resilience"
|
|
429
|
+
├── influence → Requirement: "Containerized Deployments"
|
|
430
|
+
├── influence → Requirement: "Stateless Services"
|
|
431
|
+
└── associated-with → Value: "Scalability and Resilience"
|
|
353
432
|
```
|
|
354
433
|
|
|
355
434
|
### Pattern 4: Stakeholder → Goal → Implementation Chain
|
|
356
435
|
|
|
357
436
|
```
|
|
358
437
|
Stakeholder: "CEO"
|
|
359
|
-
└──
|
|
360
|
-
├──
|
|
361
|
-
├──
|
|
438
|
+
└── influence → Goal: "Reduce Operating Costs by 20%"
|
|
439
|
+
├── influence → Requirement: "Automated CI/CD Pipeline"
|
|
440
|
+
├── influence → Principle: "Infrastructure as Code"
|
|
362
441
|
└── realizes → Value: "Financial Efficiency"
|
|
363
442
|
└── (lower layers reference this chain)
|
|
364
443
|
```
|
|
@@ -410,7 +489,7 @@ Stakeholder: "CEO"
|
|
|
410
489
|
When exporting to ArchiMate format:
|
|
411
490
|
|
|
412
491
|
```bash
|
|
413
|
-
dr export archimate --
|
|
492
|
+
dr export archimate --layers motivation --output motivation.archimate
|
|
414
493
|
```
|
|
415
494
|
|
|
416
495
|
**Supported ArchiMate Elements:**
|
|
@@ -428,7 +507,7 @@ dr export archimate --layer motivation --output motivation.archimate
|
|
|
428
507
|
|
|
429
508
|
**Supported Relationships:**
|
|
430
509
|
|
|
431
|
-
- `aggregates`, `realizes`, `specializes`, `
|
|
510
|
+
- `aggregates`, `realizes`, `specializes`, `influence`, `associated-with`
|
|
432
511
|
|
|
433
512
|
---
|
|
434
513
|
|
|
@@ -465,27 +544,28 @@ Common validation issues:
|
|
|
465
544
|
**Add Commands:**
|
|
466
545
|
|
|
467
546
|
```bash
|
|
468
|
-
dr add motivation stakeholder <name> --
|
|
469
|
-
dr add motivation driver <name> --
|
|
470
|
-
dr add motivation goal <name> --
|
|
471
|
-
dr add motivation requirement <name> --
|
|
472
|
-
dr add motivation principle <name> --
|
|
473
|
-
dr add motivation constraint <name> --
|
|
547
|
+
dr add motivation stakeholder <name> --description <description>
|
|
548
|
+
dr add motivation driver <name> --description <description>
|
|
549
|
+
dr add motivation goal <name> --description <description>
|
|
550
|
+
dr add motivation requirement <name> --description <description>
|
|
551
|
+
dr add motivation principle <name> --description <description>
|
|
552
|
+
dr add motivation constraint <name> --description <description>
|
|
474
553
|
```
|
|
475
554
|
|
|
476
555
|
**Relationship Commands:**
|
|
477
556
|
|
|
478
557
|
```bash
|
|
479
|
-
dr relationship add <source-id>
|
|
480
|
-
dr relationship add <source-id>
|
|
481
|
-
dr relationship add <source-id>
|
|
482
|
-
dr relationship add <source-id>
|
|
558
|
+
dr relationship add <source-id> <target-id> --predicate influence
|
|
559
|
+
dr relationship add <source-id> <target-id> --predicate aggregates
|
|
560
|
+
dr relationship add <source-id> <target-id> --predicate realizes
|
|
561
|
+
dr relationship add <source-id> <target-id> --predicate specializes
|
|
562
|
+
dr relationship add <source-id> <target-id> --predicate associated-with
|
|
483
563
|
```
|
|
484
564
|
|
|
485
565
|
**Query Commands:**
|
|
486
566
|
|
|
487
567
|
```bash
|
|
488
|
-
dr
|
|
489
|
-
dr search --layer motivation
|
|
568
|
+
dr list motivation --type goal
|
|
569
|
+
dr search "" --layer motivation
|
|
490
570
|
dr relationship list <element-id> --direction outgoing
|
|
491
571
|
```
|