yarramate 0.1.1 → 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 CHANGED
@@ -1,5 +1,10 @@
1
1
  # YarraMate
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/yarramate)](https://www.npmjs.com/package/yarramate)
4
+ [![CI](https://github.com/yarrasys/yarramate/actions/workflows/ci.yml/badge.svg)](https://github.com/yarrasys/yarramate/actions/workflows/ci.yml)
5
+ [![CodeQL](https://github.com/yarrasys/yarramate/actions/workflows/codeql.yml/badge.svg)](https://github.com/yarrasys/yarramate/actions/workflows/codeql.yml)
6
+ [![license: MIT](https://img.shields.io/github/license/yarrasys/yarramate)](LICENSE)
7
+
3
8
  YarraMate is a tool-neutral semantic architecture engine and guided
4
9
  methodology. It turns architectural intent into deterministic, testable
5
10
  context shared by people and agents.
@@ -94,8 +99,16 @@ pnpm docs:dev
94
99
 
95
100
  ## CLI
96
101
 
97
- Build the repository, then invoke the same executable surface intended for
98
- published use:
102
+ Install the published executable or invoke it directly with `npx`:
103
+
104
+ ```sh
105
+ npm install --global yarramate
106
+ yarramate --help
107
+
108
+ npx yarramate check .yarramate/workspace.yaml
109
+ ```
110
+
111
+ When developing the repository, build and invoke the same executable surface:
99
112
 
100
113
  ```sh
101
114
  pnpm build
@@ -117,7 +130,7 @@ For a local consumer test, create a package artifact:
117
130
 
118
131
  ```sh
119
132
  pnpm pack --pack-destination /tmp/yarramate-package
120
- npm install --global /tmp/yarramate-package/yarramate-0.1.0.tgz
133
+ npm install --global /tmp/yarramate-package/yarramate-*.tgz
121
134
  yarramate --help
122
135
  ```
123
136
 
@@ -169,6 +182,8 @@ You do not need to provide a solution, formal proposal, or implementation.
169
182
 
170
183
  Read [CONTRIBUTING.md](CONTRIBUTING.md) before proposing changes to native
171
184
  semantics or stable interfaces. Report suspected vulnerabilities according to
172
- [SECURITY.md](SECURITY.md).
185
+ [SECURITY.md](SECURITY.md). Participation is governed by the
186
+ [Code of Conduct](CODE_OF_CONDUCT.md), and help channels are described in
187
+ [SUPPORT.md](SUPPORT.md).
173
188
 
174
189
  YarraMate is available under the [MIT License](LICENSE).
@@ -0,0 +1,500 @@
1
+ // YarraMate semantic profile for LikeC4.
2
+ //
3
+ // This vocabulary is ArchiMate-inspired but independently expressed. The tags
4
+ // encode semantic coordinates; element kinds carry the human-facing notation.
5
+ specification {
6
+ color motivationColor #E8D7F1
7
+ color strategyColor #F3E5AB
8
+ color businessColor #FFF1B8
9
+ color applicationColor #C9E7FF
10
+ color technologyColor #D8F0D2
11
+ color physicalColor #D5E8D4
12
+ color implementationColor #F5D5CB
13
+ color compositeColor #E6E6E6
14
+ color relationColor #5B6470
15
+
16
+ tag layerMotivation
17
+ tag layerStrategy
18
+ tag layerBusiness
19
+ tag layerApplication
20
+ tag layerTechnology
21
+ tag layerPhysical
22
+ tag layerImplementation
23
+ tag layerComposite
24
+
25
+ tag aspectActive
26
+ tag aspectBehavior
27
+ tag aspectPassive
28
+
29
+ // Adapter-owned deployment presentation kinds.
30
+ deploymentNode environment {
31
+ notation 'Environment'
32
+ style { color technologyColor }
33
+ }
34
+
35
+ deploymentNode zone {
36
+ notation 'Zone'
37
+ style { color compositeColor }
38
+ }
39
+
40
+ deploymentNode host {
41
+ notation 'Host'
42
+ style { color technologyColor }
43
+ }
44
+
45
+ deploymentNode runtime {
46
+ notation 'Runtime'
47
+ style { color applicationColor }
48
+ }
49
+
50
+ // ── Motivation ────────────────────────────────────────────────────────────
51
+
52
+ element stakeholder {
53
+ #layerMotivation
54
+ notation 'Stakeholder'
55
+ style { shape person; color motivationColor }
56
+ }
57
+
58
+ element driver {
59
+ #layerMotivation
60
+ notation 'Driver'
61
+ style { color motivationColor }
62
+ }
63
+
64
+ element assessment {
65
+ #layerMotivation
66
+ notation 'Assessment'
67
+ style { color motivationColor }
68
+ }
69
+
70
+ element goal {
71
+ #layerMotivation
72
+ notation 'Goal'
73
+ style { color motivationColor }
74
+ }
75
+
76
+ element outcome {
77
+ #layerMotivation
78
+ notation 'Outcome'
79
+ style { color motivationColor }
80
+ }
81
+
82
+ element principle {
83
+ #layerMotivation
84
+ notation 'Principle'
85
+ style { color motivationColor }
86
+ }
87
+
88
+ element requirement {
89
+ #layerMotivation
90
+ notation 'Requirement'
91
+ style { color motivationColor }
92
+ }
93
+
94
+ element constraint {
95
+ #layerMotivation
96
+ notation 'Constraint'
97
+ style { color motivationColor }
98
+ }
99
+
100
+ element meaning {
101
+ #layerMotivation
102
+ notation 'Meaning'
103
+ style { color motivationColor }
104
+ }
105
+
106
+ element value {
107
+ #layerMotivation
108
+ notation 'Value'
109
+ style { color motivationColor }
110
+ }
111
+
112
+ // ── Strategy ──────────────────────────────────────────────────────────────
113
+
114
+ element resource {
115
+ #layerStrategy #aspectActive
116
+ notation 'Resource'
117
+ style { color strategyColor }
118
+ }
119
+
120
+ element capability {
121
+ #layerStrategy #aspectBehavior
122
+ notation 'Capability'
123
+ style { color strategyColor }
124
+ }
125
+
126
+ element valueStream {
127
+ #layerStrategy #aspectBehavior
128
+ notation 'Value stream'
129
+ style { color strategyColor }
130
+ }
131
+
132
+ element courseOfAction {
133
+ #layerStrategy #aspectBehavior
134
+ notation 'Course of action'
135
+ style { color strategyColor }
136
+ }
137
+
138
+ // ── Business layer ────────────────────────────────────────────────────────
139
+
140
+ element businessActor {
141
+ #layerBusiness #aspectActive
142
+ notation 'Business actor'
143
+ style { shape person; color businessColor }
144
+ }
145
+
146
+ element businessRole {
147
+ #layerBusiness #aspectActive
148
+ notation 'Business role'
149
+ style { color businessColor }
150
+ }
151
+
152
+ element businessCollaboration {
153
+ #layerBusiness #aspectActive
154
+ notation 'Business collaboration'
155
+ style { color businessColor; multiple true }
156
+ }
157
+
158
+ element businessInterface {
159
+ #layerBusiness #aspectActive
160
+ notation 'Business interface'
161
+ style { color businessColor }
162
+ }
163
+
164
+ element businessProcess {
165
+ #layerBusiness #aspectBehavior
166
+ notation 'Business process'
167
+ style { color businessColor }
168
+ }
169
+
170
+ element businessFunction {
171
+ #layerBusiness #aspectBehavior
172
+ notation 'Business function'
173
+ style { color businessColor }
174
+ }
175
+
176
+ element businessInteraction {
177
+ #layerBusiness #aspectBehavior
178
+ notation 'Business interaction'
179
+ style { color businessColor }
180
+ }
181
+
182
+ element businessEvent {
183
+ #layerBusiness #aspectBehavior
184
+ notation 'Business event'
185
+ style { color businessColor }
186
+ }
187
+
188
+ element businessService {
189
+ #layerBusiness #aspectBehavior
190
+ notation 'Business service'
191
+ style { color businessColor }
192
+ }
193
+
194
+ element businessObject {
195
+ #layerBusiness #aspectPassive
196
+ notation 'Business object'
197
+ style { color businessColor }
198
+ }
199
+
200
+ element contract {
201
+ #layerBusiness #aspectPassive
202
+ notation 'Contract'
203
+ style { color businessColor }
204
+ }
205
+
206
+ element representation {
207
+ #layerBusiness #aspectPassive
208
+ notation 'Representation'
209
+ style { color businessColor }
210
+ }
211
+
212
+ element product {
213
+ #layerBusiness #aspectPassive
214
+ notation 'Product'
215
+ style { color businessColor }
216
+ }
217
+
218
+ // ── Application layer ─────────────────────────────────────────────────────
219
+
220
+ element applicationComponent {
221
+ #layerApplication #aspectActive
222
+ notation 'Application component'
223
+ style { shape component; color applicationColor }
224
+ }
225
+
226
+ element applicationCollaboration {
227
+ #layerApplication #aspectActive
228
+ notation 'Application collaboration'
229
+ style { color applicationColor; multiple true }
230
+ }
231
+
232
+ element applicationInterface {
233
+ #layerApplication #aspectActive
234
+ notation 'Application interface'
235
+ style { color applicationColor }
236
+ }
237
+
238
+ element applicationFunction {
239
+ #layerApplication #aspectBehavior
240
+ notation 'Application function'
241
+ style { color applicationColor }
242
+ }
243
+
244
+ element applicationInteraction {
245
+ #layerApplication #aspectBehavior
246
+ notation 'Application interaction'
247
+ style { color applicationColor }
248
+ }
249
+
250
+ element applicationProcess {
251
+ #layerApplication #aspectBehavior
252
+ notation 'Application process'
253
+ style { color applicationColor }
254
+ }
255
+
256
+ element applicationEvent {
257
+ #layerApplication #aspectBehavior
258
+ notation 'Application event'
259
+ style { color applicationColor }
260
+ }
261
+
262
+ element applicationService {
263
+ #layerApplication #aspectBehavior
264
+ notation 'Application service'
265
+ style { color applicationColor }
266
+ }
267
+
268
+ element dataObject {
269
+ #layerApplication #aspectPassive
270
+ notation 'Data object'
271
+ style { shape storage; color applicationColor }
272
+ }
273
+
274
+ // ── Technology layer ──────────────────────────────────────────────────────
275
+
276
+ element node {
277
+ #layerTechnology #aspectActive
278
+ notation 'Node'
279
+ style { color technologyColor }
280
+ }
281
+
282
+ element device {
283
+ #layerTechnology #aspectActive
284
+ notation 'Device'
285
+ style { color technologyColor }
286
+ }
287
+
288
+ element systemSoftware {
289
+ #layerTechnology #aspectActive
290
+ notation 'System software'
291
+ style { color technologyColor }
292
+ }
293
+
294
+ element technologyCollaboration {
295
+ #layerTechnology #aspectActive
296
+ notation 'Technology collaboration'
297
+ style { color technologyColor; multiple true }
298
+ }
299
+
300
+ element technologyInterface {
301
+ #layerTechnology #aspectActive
302
+ notation 'Technology interface'
303
+ style { color technologyColor }
304
+ }
305
+
306
+ element path {
307
+ #layerTechnology #aspectActive
308
+ notation 'Path'
309
+ style { color technologyColor }
310
+ }
311
+
312
+ element communicationNetwork {
313
+ #layerTechnology #aspectActive
314
+ notation 'Communication network'
315
+ style { color technologyColor }
316
+ }
317
+
318
+ element technologyFunction {
319
+ #layerTechnology #aspectBehavior
320
+ notation 'Technology function'
321
+ style { color technologyColor }
322
+ }
323
+
324
+ element technologyProcess {
325
+ #layerTechnology #aspectBehavior
326
+ notation 'Technology process'
327
+ style { color technologyColor }
328
+ }
329
+
330
+ element technologyInteraction {
331
+ #layerTechnology #aspectBehavior
332
+ notation 'Technology interaction'
333
+ style { color technologyColor }
334
+ }
335
+
336
+ element technologyEvent {
337
+ #layerTechnology #aspectBehavior
338
+ notation 'Technology event'
339
+ style { color technologyColor }
340
+ }
341
+
342
+ element technologyService {
343
+ #layerTechnology #aspectBehavior
344
+ notation 'Technology service'
345
+ style { color technologyColor }
346
+ }
347
+
348
+ element artifact {
349
+ #layerTechnology #aspectPassive
350
+ notation 'Artifact'
351
+ style { color technologyColor }
352
+ }
353
+
354
+ // ── Physical layer ────────────────────────────────────────────────────────
355
+
356
+ element equipment {
357
+ #layerPhysical #aspectActive
358
+ notation 'Equipment'
359
+ style { color physicalColor }
360
+ }
361
+
362
+ element facility {
363
+ #layerPhysical #aspectActive
364
+ notation 'Facility'
365
+ style { color physicalColor }
366
+ }
367
+
368
+ element distributionNetwork {
369
+ #layerPhysical #aspectActive
370
+ notation 'Distribution network'
371
+ style { color physicalColor }
372
+ }
373
+
374
+ element material {
375
+ #layerPhysical #aspectPassive
376
+ notation 'Material'
377
+ style { color physicalColor }
378
+ }
379
+
380
+ // ── Implementation and migration ─────────────────────────────────────────
381
+
382
+ element workPackage {
383
+ #layerImplementation #aspectBehavior
384
+ notation 'Work package'
385
+ style { color implementationColor }
386
+ }
387
+
388
+ element deliverable {
389
+ #layerImplementation #aspectPassive
390
+ notation 'Deliverable'
391
+ style { color implementationColor }
392
+ }
393
+
394
+ element implementationEvent {
395
+ #layerImplementation #aspectBehavior
396
+ notation 'Implementation event'
397
+ style { color implementationColor }
398
+ }
399
+
400
+ element plateau {
401
+ #layerImplementation
402
+ notation 'Plateau'
403
+ style { color implementationColor }
404
+ }
405
+
406
+ element gap {
407
+ #layerImplementation
408
+ notation 'Gap'
409
+ style { color implementationColor }
410
+ }
411
+
412
+ // ── Composite and relationship connectors ────────────────────────────────
413
+
414
+ element grouping {
415
+ #layerComposite
416
+ notation 'Grouping'
417
+ style { color compositeColor; border dashed }
418
+ }
419
+
420
+ element location {
421
+ #layerComposite
422
+ notation 'Location'
423
+ style { color compositeColor }
424
+ }
425
+
426
+ element andJunction {
427
+ #layerComposite
428
+ notation 'AND junction'
429
+ style { color compositeColor }
430
+ }
431
+
432
+ element orJunction {
433
+ #layerComposite
434
+ notation 'OR junction'
435
+ style { color compositeColor }
436
+ }
437
+
438
+ // ── Relationships ─────────────────────────────────────────────────────────
439
+
440
+ relationship composition {
441
+ description 'Strong whole-part relationship.'
442
+ color relationColor
443
+ }
444
+
445
+ relationship aggregation {
446
+ description 'Weak whole-part relationship.'
447
+ color relationColor
448
+ line dashed
449
+ }
450
+
451
+ relationship assignment {
452
+ description 'Allocation of responsibility, execution, or use.'
453
+ color relationColor
454
+ }
455
+
456
+ relationship realization {
457
+ description 'Implementation or fulfillment of a more abstract concept.'
458
+ color relationColor
459
+ line dashed
460
+ }
461
+
462
+ relationship serving {
463
+ description 'Functionality made available to another concept.'
464
+ color relationColor
465
+ }
466
+
467
+ relationship access {
468
+ description 'Use, creation, modification, or reading of passive structure.'
469
+ color relationColor
470
+ line dashed
471
+ }
472
+
473
+ relationship influence {
474
+ description 'Effect on a motivation concept.'
475
+ color relationColor
476
+ line dotted
477
+ }
478
+
479
+ relationship association {
480
+ description 'Semantically relevant connection not expressed more specifically.'
481
+ color relationColor
482
+ line dashed
483
+ }
484
+
485
+ relationship triggering {
486
+ description 'Temporal or causal precedence between behaviors or events.'
487
+ color relationColor
488
+ }
489
+
490
+ relationship flow {
491
+ description 'Transfer of information, value, goods, or another object.'
492
+ color relationColor
493
+ line dashed
494
+ }
495
+
496
+ relationship specialization {
497
+ description 'Concept is a more specific form of another concept.'
498
+ color relationColor
499
+ }
500
+ }