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,6 +1,6 @@
1
1
  {
2
2
  "name": "yarramate",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Tool-neutral semantic architecture engine and guided methodology",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: yarramate-architecture
3
- description: Discover architecture in an existing repository or design a new solution before implementation 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, define current/transition/target architecture, reconcile intent with evidence, or provide bounded architecture context to implementation work.
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 design:
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
- - Declared architecture and implementation both exist: begin with discovery,
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 one focused projection that answers the repository-orientation
56
- question.
57
- 8. Run:
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. Present observations, reconciliation findings, interpretive proposals,
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
- 6. Run:
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 compare <baseline-state> <target-state> .yarramate/workspace.yaml
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
- 7. Present alternatives, selected intent, unresolved decisions, and bounded
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 design repository architecture"
4
- default_prompt: "Use $yarramate-architecture to discover or design this project architecture with native YarraMate documents."
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. Keep canonical inputs under `.yarramate/`
19
- and generated artifacts under `.yarramate-out/`.
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: