yarramate 0.3.3 → 0.5.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.
@@ -22,6 +22,15 @@ automatically.
22
22
 
23
23
  ## Choose the journey
24
24
 
25
+ When a workspace already exists, orient first with one call before choosing:
26
+
27
+ ```sh
28
+ yarramate status <workspace.yaml> --json
29
+ ```
30
+
31
+ It reports the check verdict, the reconciliation summary, and a titled
32
+ inventory of documents, states, projections, evidence, and contracts.
33
+
25
34
  - Existing implementation is the starting point: follow **Discover an
26
35
  existing project**.
27
36
  - Intent and a not-yet-built solution are the starting point: follow **Design
@@ -58,7 +67,7 @@ document, projection, evidence, or architecture-state syntax is needed.
58
67
  7. Add the focused projections needed to answer the
59
68
  repository-orientation question. Add a separate projection for every
60
69
  ordered flow that needs a dynamic view, then include each intended view in
61
- `.yarramate/integrations/likec4/project.yaml`.
70
+ `.yarramate/likec4-project.yaml`.
62
71
  8. Unless the user requested semantic-only output, create the optional LikeC4
63
72
  mapping and project described in the authoring reference. Synchronize the
64
73
  project mapping before every export, then run:
@@ -70,9 +79,9 @@ yarramate evidence .yarramate/evidence/<evidence>.yaml .yarramate/workspace.yaml
70
79
  yarramate reconcile .yarramate/workspace.yaml
71
80
  yarramate context .yarramate/projections/<projection>.yaml .yarramate/workspace.yaml
72
81
  yarramate view .yarramate/projections/<projection>.yaml .yarramate/workspace.yaml
73
- yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarramate/workspace.yaml
82
+ yarramate-likec4 check .yarramate/likec4-project.yaml --json .yarramate/workspace.yaml
74
83
  yarramate-likec4 map --sync .yarramate/integrations/likec4/subject-mapping.yaml .yarramate/workspace.yaml
75
- yarramate-likec4 export-project .yarramate/integrations/likec4/project.yaml .yarramate-out/likec4 .yarramate/workspace.yaml
84
+ yarramate-likec4 export-project .yarramate/likec4-project.yaml .yarramate-out/likec4 .yarramate/workspace.yaml
76
85
  ```
77
86
 
78
87
  9. Audit rendering coverage before handoff. Answer these as reporting
@@ -105,7 +114,7 @@ yarramate-likec4 export-project .yarramate/integrations/likec4/project.yaml .yar
105
114
  - a bounded target projection for implementation agents.
106
115
  - one focused projection per ordered flow that needs a dynamic view.
107
116
  Include every intended view in
108
- `.yarramate/integrations/likec4/project.yaml`.
117
+ `.yarramate/likec4-project.yaml`.
109
118
  6. Synchronize the project mapping before every export, then run:
110
119
 
111
120
  ```sh
@@ -116,9 +125,9 @@ yarramate context .yarramate/projections/<target>.yaml .yarramate/workspace.yaml
116
125
  yarramate view .yarramate/projections/<target>.yaml .yarramate/workspace.yaml
117
126
  yarramate view .yarramate/projections/<flow>.yaml .yarramate/workspace.yaml
118
127
  yarramate compare <document-id>#<baseline-state> <document-id>#<target-state> .yarramate/workspace.yaml
119
- yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarramate/workspace.yaml
128
+ yarramate-likec4 check .yarramate/likec4-project.yaml --json .yarramate/workspace.yaml
120
129
  yarramate-likec4 map --sync .yarramate/integrations/likec4/subject-mapping.yaml .yarramate/workspace.yaml
121
- yarramate-likec4 export-project .yarramate/integrations/likec4/project.yaml .yarramate-out/likec4 .yarramate/workspace.yaml
130
+ yarramate-likec4 export-project .yarramate/likec4-project.yaml .yarramate-out/likec4 .yarramate/workspace.yaml
122
131
  ```
123
132
 
124
133
  Skip the two adapter commands only when the user requested semantic-only
@@ -160,7 +169,7 @@ retired concept.
160
169
 
161
170
  ```sh
162
171
  yarramate check .yarramate/workspace.yaml --json
163
- yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarramate/workspace.yaml
172
+ yarramate-likec4 check .yarramate/likec4-project.yaml --json .yarramate/workspace.yaml
164
173
  ```
165
174
 
166
175
  6. If the adapter check reports intended mapping drift, repair it locally,
@@ -172,8 +181,8 @@ yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarra
172
181
  yarramate-likec4 map --sync --prune .yarramate/integrations/likec4/subject-mapping.yaml .yarramate/workspace.yaml
173
182
  git diff -- .yarramate
174
183
  yarramate check .yarramate/workspace.yaml --json
175
- yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarramate/workspace.yaml
176
- yarramate-likec4 export-project .yarramate/integrations/likec4/project.yaml .yarramate-out/likec4 .yarramate/workspace.yaml
184
+ yarramate-likec4 check .yarramate/likec4-project.yaml --json .yarramate/workspace.yaml
185
+ yarramate-likec4 export-project .yarramate/likec4-project.yaml .yarramate-out/likec4 .yarramate/workspace.yaml
177
186
  ```
178
187
 
179
188
  7. Require both configured read-only checks to exit successfully after the
@@ -67,6 +67,71 @@ Use `mode: read|write|read-write|unspecified` only with `access`. Use
67
67
  `content` only with `flow`. Prefer a precise relationship over `association`;
68
68
  use association when no stronger semantic meaning is justified.
69
69
 
70
+ Every concept kind carries an aspect: `motivation`, `active-structure`
71
+ (actors, roles, components, nodes, interfaces), `behavior` (processes,
72
+ functions, interactions, services, events), `passive-structure` (objects,
73
+ data, artifacts, material), or `composite`. Four relationship kinds constrain
74
+ endpoint aspects, and the compiler rejects violations as `YM404`:
75
+
76
+ ```text
77
+ assignment source must be active-structure
78
+ access target must be passive-structure
79
+ influence target must be motivation
80
+ triggering source and target must be behavior
81
+ ```
82
+
83
+ The other kinds accept endpoints of any aspect.
84
+
85
+ ## Invocation chains
86
+
87
+ "User invokes command" and "component invokes component" fail `YM404` when
88
+ written as `triggering` between active-structure elements. Name the invoked
89
+ behavior, assign the performers, and trigger between behaviors:
90
+
91
+ ```yaml
92
+ concepts:
93
+ - id: user
94
+ kind: businessActor
95
+ name: User
96
+ - id: cli
97
+ kind: applicationComponent
98
+ name: CLI
99
+ - id: run-check
100
+ kind: applicationProcess
101
+ name: Run check
102
+ relationships:
103
+ - id: user-starts-run-check
104
+ kind: assignment
105
+ from: user
106
+ to: run-check
107
+ name: User invokes the check command
108
+ - id: cli-performs-run-check
109
+ kind: assignment
110
+ from: cli
111
+ to: run-check
112
+ ```
113
+
114
+ Chain steps with `triggering` only between behavior concepts, for example
115
+ `run-check` triggering a downstream process owned by another component.
116
+
117
+ ## Degrading a blocked kind
118
+
119
+ When aspect policy blocks the kind you want—`triggering` between two
120
+ components is the common case—keep the edge legal with `kind: flow` and carry
121
+ the invocation semantics on the edge's `name` and `description`:
122
+
123
+ ```sh
124
+ yarramate connect .yarramate/architecture/main.yaml \
125
+ --id cli-invokes-engine --kind flow \
126
+ --from cli --to engine \
127
+ --name "invokes" \
128
+ --description "The CLI invokes the engine once per check run"
129
+ ```
130
+
131
+ Both fields compile to claims, so evidence can later confirm or contradict
132
+ the recorded invocation semantics; the degradation loses no reviewable
133
+ information.
134
+
70
135
  ## Ownership and constraints
71
136
 
72
137
  ```yaml
@@ -176,18 +241,21 @@ evidence result.
176
241
 
177
242
  ## LikeC4 project
178
243
 
179
- Keep visualization configuration outside native documents:
244
+ Keep visualization configuration outside native documents. Project `mapping`,
245
+ `kindMapping`, and `views[].projection` paths resolve from the
246
+ project-definition document's directory, so place the definition at or above
247
+ everything it references — `.yarramate/likec4-project.yaml` in this layout:
180
248
 
181
249
  ```yaml
182
250
  format: yarramate/likec4-project/v1
183
251
  id: delivery
184
252
  version: "1.0"
185
253
  title: Delivery architecture
186
- mapping: .yarramate/integrations/likec4/subject-mapping.yaml
254
+ mapping: integrations/likec4/subject-mapping.yaml
187
255
  views:
188
- - projection: .yarramate/projections/delivery-target.yaml
256
+ - projection: projections/delivery-target.yaml
189
257
  - id: submit-order
190
- projection: .yarramate/projections/submit-order.yaml
258
+ projection: projections/submit-order.yaml
191
259
  dynamic:
192
260
  steps:
193
261
  - relationship: delivery#customer-triggers-submit
@@ -237,14 +305,14 @@ yarramate compare <from-state> <to-state> .yarramate/workspace.yaml
237
305
  yarramate evidence <evidence.yaml> .yarramate/workspace.yaml
238
306
  yarramate reconcile .yarramate/workspace.yaml
239
307
  yarramate-likec4 check \
240
- .yarramate/integrations/likec4/project.yaml \
308
+ .yarramate/likec4-project.yaml \
241
309
  --json \
242
310
  .yarramate/workspace.yaml
243
311
  yarramate-likec4 map --sync \
244
312
  .yarramate/integrations/likec4/subject-mapping.yaml \
245
313
  .yarramate/workspace.yaml
246
314
  yarramate-likec4 export-project \
247
- .yarramate/integrations/likec4/project.yaml \
315
+ .yarramate/likec4-project.yaml \
248
316
  .yarramate-out/likec4 \
249
317
  .yarramate/workspace.yaml
250
318
  ```