yarramate 0.3.1 → 0.3.3
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/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yarramate-architecture
|
|
3
|
-
description: Discover
|
|
3
|
+
description: Discover, design, or maintain repository architecture using native YarraMate documents and the stable CLI. Use when an agent needs to map a codebase, propose an evidence-backed architecture model, brainstorm solution alternatives, evolve a model that already validates, rename or replace semantic subjects safely, define current/transition/target architecture, reconcile intent with evidence, or provide bounded architecture context to implementation work.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# YarraMate architecture
|
|
7
7
|
|
|
8
|
-
Use one repository-native lifecycle for discovery and
|
|
8
|
+
Use one repository-native lifecycle for discovery, design, and maintenance:
|
|
9
9
|
|
|
10
10
|
```text
|
|
11
11
|
evidence or design conversation
|
|
@@ -26,7 +26,10 @@ automatically.
|
|
|
26
26
|
existing project**.
|
|
27
27
|
- Intent and a not-yet-built solution are the starting point: follow **Design
|
|
28
28
|
a new solution**.
|
|
29
|
-
-
|
|
29
|
+
- A validating native model must change: follow **Maintain an existing
|
|
30
|
+
model**.
|
|
31
|
+
- Declared architecture and implementation both exist but no model change is
|
|
32
|
+
requested: begin with discovery,
|
|
30
33
|
preserve the declared model, then report supported, contradicted, unknown,
|
|
31
34
|
and unobserved claims without silently rewriting it.
|
|
32
35
|
|
|
@@ -52,19 +55,35 @@ document, projection, evidence, or architecture-state syntax is needed.
|
|
|
52
55
|
YAML directly when states or several related declarations make that clearer.
|
|
53
56
|
6. Add an evidence overlay only for existing subjects or stable claim IDs.
|
|
54
57
|
Evidence supports or challenges the proposal; it is not a second model.
|
|
55
|
-
7. Add
|
|
56
|
-
question.
|
|
57
|
-
|
|
58
|
+
7. Add the focused projections needed to answer the
|
|
59
|
+
repository-orientation question. Add a separate projection for every
|
|
60
|
+
ordered flow that needs a dynamic view, then include each intended view in
|
|
61
|
+
`.yarramate/integrations/likec4/project.yaml`.
|
|
62
|
+
8. Unless the user requested semantic-only output, create the optional LikeC4
|
|
63
|
+
mapping and project described in the authoring reference. Synchronize the
|
|
64
|
+
project mapping before every export, then run:
|
|
58
65
|
|
|
59
66
|
```sh
|
|
60
67
|
yarramate check .yarramate/workspace.yaml --json
|
|
68
|
+
yarramate compile .yarramate/workspace.yaml
|
|
61
69
|
yarramate evidence .yarramate/evidence/<evidence>.yaml .yarramate/workspace.yaml
|
|
62
70
|
yarramate reconcile .yarramate/workspace.yaml
|
|
63
71
|
yarramate context .yarramate/projections/<projection>.yaml .yarramate/workspace.yaml
|
|
64
72
|
yarramate view .yarramate/projections/<projection>.yaml .yarramate/workspace.yaml
|
|
73
|
+
yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarramate/workspace.yaml
|
|
74
|
+
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
|
|
65
76
|
```
|
|
66
77
|
|
|
67
|
-
9.
|
|
78
|
+
9. Audit rendering coverage before handoff. Answer these as reporting
|
|
79
|
+
questions, not Core correctness rules:
|
|
80
|
+
- Which concepts appear in no projection?
|
|
81
|
+
- Which ordered relationship chains have no dynamic view?
|
|
82
|
+
- Which projections are absent from the LikeC4 project?
|
|
83
|
+
Inspect compiled subjects, projection results, and the project definition;
|
|
84
|
+
state intentional omissions explicitly. A green check does not answer
|
|
85
|
+
these questions.
|
|
86
|
+
10. Present observations, reconciliation findings, interpretive proposals,
|
|
68
87
|
evidence gaps, and Git diff separately. Do not claim completeness from a
|
|
69
88
|
green check and do not automatically turn findings into edits.
|
|
70
89
|
|
|
@@ -84,24 +103,93 @@ yarramate view .yarramate/projections/<projection>.yaml .yarramate/workspace.yam
|
|
|
84
103
|
5. Create:
|
|
85
104
|
- an alternatives projection for the decision;
|
|
86
105
|
- a bounded target projection for implementation agents.
|
|
87
|
-
|
|
106
|
+
- one focused projection per ordered flow that needs a dynamic view.
|
|
107
|
+
Include every intended view in
|
|
108
|
+
`.yarramate/integrations/likec4/project.yaml`.
|
|
109
|
+
6. Synchronize the project mapping before every export, then run:
|
|
88
110
|
|
|
89
111
|
```sh
|
|
90
112
|
yarramate check .yarramate/workspace.yaml --json
|
|
113
|
+
yarramate compile .yarramate/workspace.yaml
|
|
91
114
|
yarramate context .yarramate/projections/<alternatives>.yaml .yarramate/workspace.yaml
|
|
92
115
|
yarramate context .yarramate/projections/<target>.yaml .yarramate/workspace.yaml
|
|
93
116
|
yarramate view .yarramate/projections/<target>.yaml .yarramate/workspace.yaml
|
|
94
|
-
yarramate
|
|
117
|
+
yarramate view .yarramate/projections/<flow>.yaml .yarramate/workspace.yaml
|
|
118
|
+
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
|
|
120
|
+
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
|
|
95
122
|
```
|
|
96
123
|
|
|
97
|
-
|
|
124
|
+
Skip the two adapter commands only when the user requested semantic-only
|
|
125
|
+
output, and report that no visual project was produced.
|
|
126
|
+
7. Audit rendering coverage using the same three reporting questions from
|
|
127
|
+
discovery. State which omissions are intentional; do not convert partial
|
|
128
|
+
coverage into a validation failure.
|
|
129
|
+
8. Present alternatives, selected intent, unresolved decisions, and bounded
|
|
98
130
|
implementation context. Do not generate code until the requested design
|
|
99
131
|
decision is reviewable.
|
|
100
132
|
|
|
133
|
+
## Maintain an existing model
|
|
134
|
+
|
|
135
|
+
Use this journey for a deliberate change to a model that already passes its
|
|
136
|
+
checks, including a renamed subject, resolved gap, changed relationship, or
|
|
137
|
+
retired concept.
|
|
138
|
+
|
|
139
|
+
1. Discover the authored layout before assuming paths:
|
|
140
|
+
- read the workspace `documents`, `projections`, `adapterMappings`, and
|
|
141
|
+
`evidence` entries;
|
|
142
|
+
- locate any `yarramate/likec4-project/v1` document and follow its `mapping`
|
|
143
|
+
field;
|
|
144
|
+
- treat paths shown below as examples, not required repository layout.
|
|
145
|
+
Discover the repository’s authored paths instead of assuming these examples.
|
|
146
|
+
2. Establish a passing baseline with Core and every configured read-only
|
|
147
|
+
adapter check. If the baseline already fails, separate those pre-existing
|
|
148
|
+
diagnostics from the requested maintenance change.
|
|
149
|
+
3. Before changing an identity, search its local and globally qualified forms
|
|
150
|
+
across every workspace input. Account for:
|
|
151
|
+
- `references[].ref` citations;
|
|
152
|
+
- relationship `from` and `to` endpoints;
|
|
153
|
+
- evidence `subject` entries and stable claim targets;
|
|
154
|
+
- adapter mapping `native` entries;
|
|
155
|
+
- projection selectors, architecture states, ownership, and constraints.
|
|
156
|
+
4. Make the smallest coherent edit and update all referring authored inputs.
|
|
157
|
+
Do not rewrite unrelated architectural intent.
|
|
158
|
+
5. Run the read-only checks before any repair command so drift remains
|
|
159
|
+
observable:
|
|
160
|
+
|
|
161
|
+
```sh
|
|
162
|
+
yarramate check .yarramate/workspace.yaml --json
|
|
163
|
+
yarramate-likec4 check .yarramate/integrations/likec4/project.yaml --json .yarramate/workspace.yaml
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
6. If the adapter check reports intended mapping drift, repair it locally,
|
|
167
|
+
inspect the tracked diff, then verify again. Use `--prune` only after
|
|
168
|
+
confirming that stale native subjects were intentionally renamed or
|
|
169
|
+
removed:
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
yarramate-likec4 map --sync --prune .yarramate/integrations/likec4/subject-mapping.yaml .yarramate/workspace.yaml
|
|
173
|
+
git diff -- .yarramate
|
|
174
|
+
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
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
7. Require both configured read-only checks to exit successfully after the
|
|
180
|
+
edit. The maintained model must pass before handoff. Report changed
|
|
181
|
+
identities, updated dependants, mapping repairs, generated output, and any
|
|
182
|
+
intentionally deferred architecture work.
|
|
183
|
+
|
|
101
184
|
## Correctness and authority
|
|
102
185
|
|
|
103
186
|
- Treat `check` as deterministic correctness, never as architecture approval,
|
|
104
187
|
completeness, or quality scoring.
|
|
188
|
+
- A repair command cannot serve as verification. Run read-only adapter checks
|
|
189
|
+
before `map --sync`, use sync only while authoring, and never put sync in a
|
|
190
|
+
CI verification gate.
|
|
191
|
+
- Keep LikeC4 optional. Default to visual output for these guided journeys,
|
|
192
|
+
but respect an explicit request for tool-neutral semantic output only.
|
|
105
193
|
- Keep adapter fields outside native documents.
|
|
106
194
|
- Use globally qualified identities at CLI and projection boundaries.
|
|
107
195
|
- Preserve source-located diagnostics verbatim when asking the author to fix
|
|
@@ -119,7 +207,9 @@ Report:
|
|
|
119
207
|
- journey used and question answered;
|
|
120
208
|
- canonical files proposed or changed;
|
|
121
209
|
- observations and evidence results;
|
|
122
|
-
- projections produced
|
|
210
|
+
- projections and views produced, including the LikeC4 project and generated
|
|
211
|
+
output path;
|
|
212
|
+
- rendering coverage gaps and whether the generated output is current;
|
|
123
213
|
- validation commands and outcomes;
|
|
124
214
|
- unresolved architectural decisions;
|
|
125
215
|
- whether changes are merely proposed or already accepted in Git.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "YarraMate Architecture"
|
|
3
|
-
short_description: "Discover and
|
|
4
|
-
default_prompt: "Use $yarramate-architecture to discover or
|
|
3
|
+
short_description: "Discover, design, and maintain architecture"
|
|
4
|
+
default_prompt: "Use $yarramate-architecture to discover, design, or safely maintain this project architecture."
|
|
@@ -46,6 +46,9 @@ Discovery is minimally useful when:
|
|
|
46
46
|
- significant proposed subjects have traceable observations or are explicitly
|
|
47
47
|
identified as interpretation;
|
|
48
48
|
- a focused projection gives an agent useful repository context;
|
|
49
|
+
- intended projections are rendered through a current LikeC4 project;
|
|
50
|
+
- concepts outside all projections, ordered flows without dynamic views, and
|
|
51
|
+
projections absent from the project are reported as coverage gaps;
|
|
49
52
|
- evidence has not been promoted automatically.
|
|
50
53
|
|
|
51
54
|
Design is minimally useful when:
|
|
@@ -54,4 +57,14 @@ Design is minimally useful when:
|
|
|
54
57
|
- material alternatives remain reviewable;
|
|
55
58
|
- the selected target has explicit boundaries and relationships;
|
|
56
59
|
- a bounded target projection can guide implementation;
|
|
60
|
+
- intended projections are rendered through a current LikeC4 project;
|
|
61
|
+
- rendering coverage gaps are stated, including intentional omissions;
|
|
57
62
|
- missing detail is visible without becoming a Core correctness error.
|
|
63
|
+
|
|
64
|
+
Maintenance is complete only when:
|
|
65
|
+
|
|
66
|
+
- all references to a changed identity were found before editing;
|
|
67
|
+
- native documents and configured adapters pass their read-only checks;
|
|
68
|
+
- any mapping sync or prune was reviewed as an authored Git change;
|
|
69
|
+
- generated views are current;
|
|
70
|
+
- changed identities and updated dependants are reported at handoff.
|
|
@@ -15,8 +15,10 @@ adapterMappings: []
|
|
|
15
15
|
evidence: [evidence/*.yaml]
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Paths are relative to the manifest.
|
|
19
|
-
|
|
18
|
+
Paths are relative to the manifest. `.yarramate/` for canonical inputs and
|
|
19
|
+
`.yarramate-out/` for generated artifacts are recommended examples, not fixed
|
|
20
|
+
CLI paths. In an existing repository, read its workspace and project documents
|
|
21
|
+
and preserve the authored layout.
|
|
20
22
|
|
|
21
23
|
## Native document
|
|
22
24
|
|
|
@@ -172,6 +174,50 @@ Evidence evaluates an existing subject or stable claim ID. Results are
|
|
|
172
174
|
observed subject directly through evidence or mutate declared intent from an
|
|
173
175
|
evidence result.
|
|
174
176
|
|
|
177
|
+
## LikeC4 project
|
|
178
|
+
|
|
179
|
+
Keep visualization configuration outside native documents:
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
format: yarramate/likec4-project/v1
|
|
183
|
+
id: delivery
|
|
184
|
+
version: "1.0"
|
|
185
|
+
title: Delivery architecture
|
|
186
|
+
mapping: .yarramate/integrations/likec4/subject-mapping.yaml
|
|
187
|
+
views:
|
|
188
|
+
- projection: .yarramate/projections/delivery-target.yaml
|
|
189
|
+
- id: submit-order
|
|
190
|
+
projection: .yarramate/projections/submit-order.yaml
|
|
191
|
+
dynamic:
|
|
192
|
+
steps:
|
|
193
|
+
- relationship: delivery#customer-triggers-submit
|
|
194
|
+
- relationship: delivery#submit-triggers-confirmation
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Give every ordered flow its own focused projection and dynamic view. A dynamic
|
|
198
|
+
view takes its title and description from its projection; reusing one broad
|
|
199
|
+
projection for several flows makes their rendered identities ambiguous.
|
|
200
|
+
Ensure every intended projection is listed in the project.
|
|
201
|
+
In an existing repository, locate the project by its
|
|
202
|
+
`yarramate/likec4-project/v1` format and follow its `mapping` field instead of
|
|
203
|
+
assuming the example paths below.
|
|
204
|
+
|
|
205
|
+
Start the referenced mapping as a valid empty mapping, then let sync populate
|
|
206
|
+
it:
|
|
207
|
+
|
|
208
|
+
```yaml
|
|
209
|
+
format: yarramate/adapter-mapping/v1
|
|
210
|
+
id: delivery-likec4
|
|
211
|
+
version: "1.0"
|
|
212
|
+
adapter: likec4
|
|
213
|
+
mappings: []
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
`export-project` writes `.yarramate-out/likec4/yarramate.generated.json` with
|
|
217
|
+
digests for generated files. It refuses to replace a generated file that was
|
|
218
|
+
hand-edited. Treat that refusal as drift to inspect; do not delete the marker
|
|
219
|
+
or overwrite the output manually.
|
|
220
|
+
|
|
175
221
|
## Stable commands
|
|
176
222
|
|
|
177
223
|
```sh
|
|
@@ -190,11 +236,25 @@ yarramate view <projection.yaml> .yarramate/workspace.yaml
|
|
|
190
236
|
yarramate compare <from-state> <to-state> .yarramate/workspace.yaml
|
|
191
237
|
yarramate evidence <evidence.yaml> .yarramate/workspace.yaml
|
|
192
238
|
yarramate reconcile .yarramate/workspace.yaml
|
|
239
|
+
yarramate-likec4 check \
|
|
240
|
+
.yarramate/integrations/likec4/project.yaml \
|
|
241
|
+
--json \
|
|
242
|
+
.yarramate/workspace.yaml
|
|
193
243
|
yarramate-likec4 map --sync \
|
|
194
244
|
.yarramate/integrations/likec4/subject-mapping.yaml \
|
|
195
245
|
.yarramate/workspace.yaml
|
|
246
|
+
yarramate-likec4 export-project \
|
|
247
|
+
.yarramate/integrations/likec4/project.yaml \
|
|
248
|
+
.yarramate-out/likec4 \
|
|
249
|
+
.yarramate/workspace.yaml
|
|
196
250
|
```
|
|
197
251
|
|
|
252
|
+
`yarramate-likec4 check` is read-only verification and belongs in CI.
|
|
253
|
+
Run it before sync when checking an existing mapping so missing or stale
|
|
254
|
+
entries remain observable. `map --sync [--prune]` is an authoring repair: it
|
|
255
|
+
mutates a tracked mapping, so review and commit its diff. Never use a repair
|
|
256
|
+
command as a CI gate.
|
|
257
|
+
|
|
198
258
|
Sync preserves and reports mappings for native subjects that no longer exist.
|
|
199
259
|
After confirming that those subjects were intentionally removed or renamed,
|
|
200
260
|
delete the stale entries while adding missing mappings with:
|