yarramate 0.1.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/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/adapter-mapping.d.ts +40 -0
- package/dist/adapter-mapping.js +200 -0
- package/dist/adapters/graphify-cli.d.ts +3 -0
- package/dist/adapters/graphify-cli.js +127 -0
- package/dist/adapters/graphify-entry.d.ts +1 -0
- package/dist/adapters/graphify-entry.js +1 -0
- package/dist/adapters/graphify.d.ts +23 -0
- package/dist/adapters/graphify.js +47 -0
- package/dist/adapters/likec4-cli.d.ts +3 -0
- package/dist/adapters/likec4-cli.js +662 -0
- package/dist/adapters/likec4-export.d.ts +25 -0
- package/dist/adapters/likec4-export.js +204 -0
- package/dist/adapters/likec4-kind-mapping.d.ts +22 -0
- package/dist/adapters/likec4-kind-mapping.js +60 -0
- package/dist/adapters/likec4-prepare.d.ts +28 -0
- package/dist/adapters/likec4-prepare.js +154 -0
- package/dist/adapters/likec4-project.d.ts +58 -0
- package/dist/adapters/likec4-project.js +176 -0
- package/dist/adapters/likec4.d.ts +4 -0
- package/dist/adapters/likec4.js +4 -0
- package/dist/architecture-state.d.ts +22 -0
- package/dist/architecture-state.js +63 -0
- package/dist/check-command.d.ts +2 -0
- package/dist/check-command.js +232 -0
- package/dist/cli-support.d.ts +24 -0
- package/dist/cli-support.js +81 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.js +575 -0
- package/dist/compiler.d.ts +66 -0
- package/dist/compiler.js +940 -0
- package/dist/core-contract.d.ts +43 -0
- package/dist/core-contract.js +162 -0
- package/dist/evidence.d.ts +58 -0
- package/dist/evidence.js +161 -0
- package/dist/graph.d.ts +2 -0
- package/dist/graph.js +37 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +9 -0
- package/dist/profile.d.ts +30 -0
- package/dist/profile.js +162 -0
- package/dist/projection.d.ts +42 -0
- package/dist/projection.js +183 -0
- package/dist/reconciliation.d.ts +26 -0
- package/dist/reconciliation.js +47 -0
- package/dist/source-document.d.ts +24 -0
- package/dist/source-document.js +80 -0
- package/dist/workspace.d.ts +29 -0
- package/dist/workspace.js +114 -0
- package/docs/CONSUMING-YARRAMATE.md +145 -0
- package/package.json +110 -0
- package/schema/yarramate-adapter-mapping.schema.json +59 -0
- package/schema/yarramate-check-result.schema.json +92 -0
- package/schema/yarramate-core-contract.schema.json +132 -0
- package/schema/yarramate-diagnostic-result.schema.json +64 -0
- package/schema/yarramate-document.schema.json +168 -0
- package/schema/yarramate-evidence-report.schema.json +73 -0
- package/schema/yarramate-evidence.schema.json +92 -0
- package/schema/yarramate-graph-v2.schema.json +170 -0
- package/schema/yarramate-likec4-check-result.schema.json +50 -0
- package/schema/yarramate-likec4-diagnostic-result.schema.json +69 -0
- package/schema/yarramate-likec4-generated-project-v2.schema.json +100 -0
- package/schema/yarramate-likec4-generated-project.schema.json +76 -0
- package/schema/yarramate-likec4-kind-mapping.schema.json +65 -0
- package/schema/yarramate-likec4-project.schema.json +160 -0
- package/schema/yarramate-profile.schema.json +113 -0
- package/schema/yarramate-projection-result.schema.json +177 -0
- package/schema/yarramate-projection.schema.json +126 -0
- package/schema/yarramate-reconciliation-report.schema.json +90 -0
- package/schema/yarramate-state-comparison.schema.json +61 -0
- package/schema/yarramate-workspace.schema.json +55 -0
- package/skills/yarramate-architecture/SKILL.md +135 -0
- package/skills/yarramate-architecture/agents/openai.yaml +4 -0
- package/skills/yarramate-architecture/references/journey-checklists.md +57 -0
- package/skills/yarramate-architecture/references/native-authoring.md +167 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarramate.org/schema/projection/v1",
|
|
4
|
+
"title": "YarraMate semantic projection",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["format", "id", "version", "query"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"format": {
|
|
10
|
+
"const": "yarramate/projection/v1"
|
|
11
|
+
},
|
|
12
|
+
"id": {
|
|
13
|
+
"$ref": "#/$defs/id"
|
|
14
|
+
},
|
|
15
|
+
"version": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^[0-9]+\\.[0-9]+$"
|
|
18
|
+
},
|
|
19
|
+
"query": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"properties": {
|
|
23
|
+
"subjects": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"minItems": 1,
|
|
26
|
+
"uniqueItems": true,
|
|
27
|
+
"items": {
|
|
28
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"documents": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"uniqueItems": true,
|
|
34
|
+
"items": {
|
|
35
|
+
"$ref": "#/$defs/id"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"kinds": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"uniqueItems": true,
|
|
41
|
+
"items": {
|
|
42
|
+
"$ref": "#/$defs/qualifiedKind"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"statuses": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"uniqueItems": true,
|
|
48
|
+
"items": {
|
|
49
|
+
"enum": ["planned", "current", "retired"]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"states": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"minItems": 1,
|
|
55
|
+
"uniqueItems": true,
|
|
56
|
+
"items": {
|
|
57
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"owners": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"minItems": 1,
|
|
63
|
+
"uniqueItems": true,
|
|
64
|
+
"items": {
|
|
65
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"constraints": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"minItems": 1,
|
|
71
|
+
"uniqueItems": true,
|
|
72
|
+
"items": {
|
|
73
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"relationshipKinds": {
|
|
77
|
+
"type": "array",
|
|
78
|
+
"minItems": 1,
|
|
79
|
+
"uniqueItems": true,
|
|
80
|
+
"items": {
|
|
81
|
+
"$ref": "#/$defs/qualifiedKind"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"kindMatching": {
|
|
85
|
+
"enum": ["exact", "descendants"]
|
|
86
|
+
},
|
|
87
|
+
"relationships": {
|
|
88
|
+
"enum": ["between", "connected", "none"]
|
|
89
|
+
},
|
|
90
|
+
"isolatedConcepts": {
|
|
91
|
+
"enum": ["include", "exclude"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"presentation": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"additionalProperties": false,
|
|
98
|
+
"properties": {
|
|
99
|
+
"title": {
|
|
100
|
+
"$ref": "#/$defs/nonEmptyText"
|
|
101
|
+
},
|
|
102
|
+
"description": {
|
|
103
|
+
"$ref": "#/$defs/nonEmptyText"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"$defs": {
|
|
109
|
+
"id": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
112
|
+
},
|
|
113
|
+
"qualifiedKind": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"pattern": "^[a-z][a-z0-9-]*(?:/[a-z][a-z0-9-]*)+@[0-9]+\\.[0-9]+#[a-z][A-Za-z0-9-]*$"
|
|
116
|
+
},
|
|
117
|
+
"subjectIdentity": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*#[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
120
|
+
},
|
|
121
|
+
"nonEmptyText": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"minLength": 1
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarramate.org/schema/reconciliation-report/v1",
|
|
4
|
+
"title": "YarraMate reconciliation report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["format", "workspace", "summary", "findings"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"format": { "const": "yarramate/reconciliation-report/v1" },
|
|
10
|
+
"workspace": { "$ref": "#/$defs/id" },
|
|
11
|
+
"summary": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": [
|
|
15
|
+
"evidenceDocuments",
|
|
16
|
+
"observations",
|
|
17
|
+
"confirmed",
|
|
18
|
+
"findings",
|
|
19
|
+
"contradicted",
|
|
20
|
+
"unknown",
|
|
21
|
+
"notObserved"
|
|
22
|
+
],
|
|
23
|
+
"properties": {
|
|
24
|
+
"evidenceDocuments": { "type": "integer", "minimum": 0 },
|
|
25
|
+
"observations": { "type": "integer", "minimum": 0 },
|
|
26
|
+
"confirmed": { "type": "integer", "minimum": 0 },
|
|
27
|
+
"findings": { "type": "integer", "minimum": 0 },
|
|
28
|
+
"contradicted": { "type": "integer", "minimum": 0 },
|
|
29
|
+
"unknown": { "type": "integer", "minimum": 0 },
|
|
30
|
+
"notObserved": { "type": "integer", "minimum": 0 }
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"findings": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": { "$ref": "#/$defs/finding" }
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"$defs": {
|
|
39
|
+
"id": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
42
|
+
},
|
|
43
|
+
"qualifiedIdentity": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*#[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:~[a-z][a-z0-9-]*)?$"
|
|
46
|
+
},
|
|
47
|
+
"evidenceIdentity": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*@[0-9]+\\.[0-9]+$"
|
|
50
|
+
},
|
|
51
|
+
"target": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"required": ["type", "id"],
|
|
55
|
+
"properties": {
|
|
56
|
+
"type": { "enum": ["subject", "claim"] },
|
|
57
|
+
"id": { "$ref": "#/$defs/qualifiedIdentity" }
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"evidenceLocator": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"additionalProperties": false,
|
|
63
|
+
"required": ["uri"],
|
|
64
|
+
"properties": {
|
|
65
|
+
"uri": { "type": "string", "minLength": 1 },
|
|
66
|
+
"message": { "type": "string", "minLength": 1 }
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"finding": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"additionalProperties": false,
|
|
72
|
+
"required": [
|
|
73
|
+
"target",
|
|
74
|
+
"result",
|
|
75
|
+
"provider",
|
|
76
|
+
"evidenceDocument",
|
|
77
|
+
"evidence"
|
|
78
|
+
],
|
|
79
|
+
"properties": {
|
|
80
|
+
"target": { "$ref": "#/$defs/target" },
|
|
81
|
+
"result": {
|
|
82
|
+
"enum": ["contradicted", "unknown", "not-observed"]
|
|
83
|
+
},
|
|
84
|
+
"provider": { "$ref": "#/$defs/id" },
|
|
85
|
+
"evidenceDocument": { "$ref": "#/$defs/evidenceIdentity" },
|
|
86
|
+
"evidence": { "$ref": "#/$defs/evidenceLocator" }
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarramate.org/schema/state-comparison/v1",
|
|
4
|
+
"title": "YarraMate architecture-state comparison",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"format",
|
|
9
|
+
"from",
|
|
10
|
+
"to",
|
|
11
|
+
"added",
|
|
12
|
+
"removed",
|
|
13
|
+
"retained"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"format": {
|
|
17
|
+
"const": "yarramate/state-comparison/v1"
|
|
18
|
+
},
|
|
19
|
+
"from": {
|
|
20
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
21
|
+
},
|
|
22
|
+
"to": {
|
|
23
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
24
|
+
},
|
|
25
|
+
"added": {
|
|
26
|
+
"$ref": "#/$defs/subjects"
|
|
27
|
+
},
|
|
28
|
+
"removed": {
|
|
29
|
+
"$ref": "#/$defs/subjects"
|
|
30
|
+
},
|
|
31
|
+
"retained": {
|
|
32
|
+
"$ref": "#/$defs/subjects"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"$defs": {
|
|
36
|
+
"subjectIdentity": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*#[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
39
|
+
},
|
|
40
|
+
"subject": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["id", "type"],
|
|
44
|
+
"properties": {
|
|
45
|
+
"id": {
|
|
46
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
47
|
+
},
|
|
48
|
+
"type": {
|
|
49
|
+
"enum": ["concept", "relationship"]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"subjects": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"uniqueItems": true,
|
|
56
|
+
"items": {
|
|
57
|
+
"$ref": "#/$defs/subject"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarramate.org/schema/workspace/v1",
|
|
4
|
+
"title": "YarraMate workspace manifest",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"format",
|
|
9
|
+
"id",
|
|
10
|
+
"documents",
|
|
11
|
+
"profiles",
|
|
12
|
+
"projections",
|
|
13
|
+
"adapterMappings"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"format": {
|
|
17
|
+
"const": "yarramate/workspace/v1"
|
|
18
|
+
},
|
|
19
|
+
"id": {
|
|
20
|
+
"$ref": "#/$defs/id"
|
|
21
|
+
},
|
|
22
|
+
"documents": {
|
|
23
|
+
"$ref": "#/$defs/patterns"
|
|
24
|
+
},
|
|
25
|
+
"profiles": {
|
|
26
|
+
"$ref": "#/$defs/patterns"
|
|
27
|
+
},
|
|
28
|
+
"projections": {
|
|
29
|
+
"$ref": "#/$defs/patterns"
|
|
30
|
+
},
|
|
31
|
+
"adapterMappings": {
|
|
32
|
+
"$ref": "#/$defs/patterns"
|
|
33
|
+
},
|
|
34
|
+
"evidence": {
|
|
35
|
+
"$ref": "#/$defs/patterns"
|
|
36
|
+
},
|
|
37
|
+
"contracts": {
|
|
38
|
+
"$ref": "#/$defs/patterns"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"$defs": {
|
|
42
|
+
"id": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
45
|
+
},
|
|
46
|
+
"patterns": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"uniqueItems": true,
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# YarraMate architecture
|
|
7
|
+
|
|
8
|
+
Use one repository-native lifecycle for discovery and design:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
evidence or design conversation
|
|
12
|
+
-> native-document proposal
|
|
13
|
+
-> deterministic CLI checks and projections
|
|
14
|
+
-> Git review
|
|
15
|
+
-> declared architectural intent
|
|
16
|
+
-> later evidence and reconciliation
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Native YarraMate documents are canonical. Generated graphs, Markdown, JSON
|
|
20
|
+
context, and diagrams are derived. Never promote evidence into declared intent
|
|
21
|
+
automatically.
|
|
22
|
+
|
|
23
|
+
## Choose the journey
|
|
24
|
+
|
|
25
|
+
- Existing implementation is the starting point: follow **Discover an
|
|
26
|
+
existing project**.
|
|
27
|
+
- Intent and a not-yet-built solution are the starting point: follow **Design
|
|
28
|
+
a new solution**.
|
|
29
|
+
- Declared architecture and implementation both exist: begin with discovery,
|
|
30
|
+
preserve the declared model, then report supported, contradicted, unknown,
|
|
31
|
+
and unobserved claims without silently rewriting it.
|
|
32
|
+
|
|
33
|
+
Read [references/journey-checklists.md](references/journey-checklists.md) for
|
|
34
|
+
the minimum evidence and design questions. Read
|
|
35
|
+
[references/native-authoring.md](references/native-authoring.md) when native
|
|
36
|
+
document, projection, evidence, or architecture-state syntax is needed.
|
|
37
|
+
|
|
38
|
+
## Discover an existing project
|
|
39
|
+
|
|
40
|
+
1. Inspect repository instructions, structure, manifests, dependencies,
|
|
41
|
+
entrypoints, tests, deployment files, and existing architecture sources.
|
|
42
|
+
2. If no workspace exists, run `yarramate init .`. Do not overwrite an
|
|
43
|
+
existing `.yarramate/`.
|
|
44
|
+
3. Separate direct observations from architectural interpretation. Record the
|
|
45
|
+
inspected repository locations before proposing semantic concepts.
|
|
46
|
+
4. Propose the smallest useful native model:
|
|
47
|
+
- stable responsibilities and externally meaningful services;
|
|
48
|
+
- principal information and dependencies;
|
|
49
|
+
- significant actors, constraints, and ownership only when supported;
|
|
50
|
+
- current state by default; do not infer target intent from code.
|
|
51
|
+
5. Prefer `yarramate add` and `yarramate connect` for simple additions. Edit
|
|
52
|
+
YAML directly when states or several related declarations make that clearer.
|
|
53
|
+
6. Add an evidence overlay only for existing subjects or stable claim IDs.
|
|
54
|
+
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
|
+
|
|
59
|
+
```sh
|
|
60
|
+
yarramate check .yarramate/workspace.yaml --json
|
|
61
|
+
yarramate evidence .yarramate/evidence/<evidence>.yaml .yarramate/workspace.yaml
|
|
62
|
+
yarramate reconcile .yarramate/workspace.yaml
|
|
63
|
+
yarramate context .yarramate/projections/<projection>.yaml .yarramate/workspace.yaml
|
|
64
|
+
yarramate view .yarramate/projections/<projection>.yaml .yarramate/workspace.yaml
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
9. Present observations, reconciliation findings, interpretive proposals,
|
|
68
|
+
evidence gaps, and Git diff separately. Do not claim completeness from a
|
|
69
|
+
green check and do not automatically turn findings into edits.
|
|
70
|
+
|
|
71
|
+
## Design a new solution
|
|
72
|
+
|
|
73
|
+
1. Capture the decision context before components:
|
|
74
|
+
- drivers, stakeholders, desired outcomes, and constraints;
|
|
75
|
+
- material assumptions and unresolved questions;
|
|
76
|
+
- boundaries and responsibilities.
|
|
77
|
+
2. Model only materially different alternatives. Use stable concepts and
|
|
78
|
+
relationships; do not hide an alternative in free-form metadata.
|
|
79
|
+
3. Record the selected approach through explicit relationships and focused
|
|
80
|
+
projections. Use architecture states when baseline, transition, or target
|
|
81
|
+
presence matters; do not misuse lifecycle status as a decision verdict.
|
|
82
|
+
4. Add the principal services, components, information, responsibilities, and
|
|
83
|
+
dependencies required to begin implementation. Partial detail is valid.
|
|
84
|
+
5. Create:
|
|
85
|
+
- an alternatives projection for the decision;
|
|
86
|
+
- a bounded target projection for implementation agents.
|
|
87
|
+
6. Run:
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
yarramate check .yarramate/workspace.yaml --json
|
|
91
|
+
yarramate context .yarramate/projections/<alternatives>.yaml .yarramate/workspace.yaml
|
|
92
|
+
yarramate context .yarramate/projections/<target>.yaml .yarramate/workspace.yaml
|
|
93
|
+
yarramate view .yarramate/projections/<target>.yaml .yarramate/workspace.yaml
|
|
94
|
+
yarramate compare <baseline-state> <target-state> .yarramate/workspace.yaml
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
7. Present alternatives, selected intent, unresolved decisions, and bounded
|
|
98
|
+
implementation context. Do not generate code until the requested design
|
|
99
|
+
decision is reviewable.
|
|
100
|
+
|
|
101
|
+
## Correctness and authority
|
|
102
|
+
|
|
103
|
+
- Treat `check` as deterministic correctness, never as architecture approval,
|
|
104
|
+
completeness, or quality scoring.
|
|
105
|
+
- Keep adapter fields outside native documents.
|
|
106
|
+
- Use globally qualified identities at CLI and projection boundaries.
|
|
107
|
+
- Preserve source-located diagnostics verbatim when asking the author to fix
|
|
108
|
+
input.
|
|
109
|
+
- Let Git provide authorship, review, history, and acceptance.
|
|
110
|
+
- Stop for user direction when a choice changes the solution boundary,
|
|
111
|
+
selected alternative, authoritative constraint, or product contract.
|
|
112
|
+
- Do not introduce a database, server, approval workflow, or harness-specific
|
|
113
|
+
canonical format.
|
|
114
|
+
|
|
115
|
+
## Handoff
|
|
116
|
+
|
|
117
|
+
Report:
|
|
118
|
+
|
|
119
|
+
- journey used and question answered;
|
|
120
|
+
- canonical files proposed or changed;
|
|
121
|
+
- observations and evidence results;
|
|
122
|
+
- projections produced;
|
|
123
|
+
- validation commands and outcomes;
|
|
124
|
+
- unresolved architectural decisions;
|
|
125
|
+
- whether changes are merely proposed or already accepted in Git.
|
|
126
|
+
|
|
127
|
+
If YarraMate itself produced confusing behaviour, blocked adoption, lacked a
|
|
128
|
+
needed capability, or required an awkward workaround, identify that separately
|
|
129
|
+
as product feedback and direct the user to:
|
|
130
|
+
|
|
131
|
+
`https://github.com/yarrasys/yarramate/issues/new`
|
|
132
|
+
|
|
133
|
+
Issues may contain incomplete ideas or early observations; a proposed fix is
|
|
134
|
+
not required. Do not create an external issue automatically unless the user
|
|
135
|
+
asks you to.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Journey checklists
|
|
2
|
+
|
|
3
|
+
## Discovery evidence
|
|
4
|
+
|
|
5
|
+
Inspect only what materially supports the proposed architecture:
|
|
6
|
+
|
|
7
|
+
- repository instructions and package/workspace manifests;
|
|
8
|
+
- executable entrypoints and public interfaces;
|
|
9
|
+
- stable modules and responsibility boundaries;
|
|
10
|
+
- persisted or exchanged information;
|
|
11
|
+
- external services and runtime/deployment configuration;
|
|
12
|
+
- tests that demonstrate significant behavior;
|
|
13
|
+
- ownership or constraints explicitly present in repository sources.
|
|
14
|
+
|
|
15
|
+
Distinguish:
|
|
16
|
+
|
|
17
|
+
- **observed** — directly supported by a locator;
|
|
18
|
+
- **proposed interpretation** — semantic meaning inferred for review;
|
|
19
|
+
- **unknown** — evidence is insufficient;
|
|
20
|
+
- **declared intent** — already accepted in native documents.
|
|
21
|
+
|
|
22
|
+
Do not infer organizational ownership from Git authorship, target intent from
|
|
23
|
+
unfinished code, or architectural importance from file size.
|
|
24
|
+
|
|
25
|
+
## Design questions
|
|
26
|
+
|
|
27
|
+
Ask only questions that can materially change the architecture:
|
|
28
|
+
|
|
29
|
+
- What outcome and driver justify the solution?
|
|
30
|
+
- Which constraints are non-negotiable?
|
|
31
|
+
- Who or what consumes the solution?
|
|
32
|
+
- What responsibility belongs inside versus outside the boundary?
|
|
33
|
+
- Which information must be owned, persisted, or exchanged?
|
|
34
|
+
- Which alternatives differ in boundaries, responsibility, dependency, or
|
|
35
|
+
operational characteristics?
|
|
36
|
+
- What makes an alternative selected, rejected, or still unresolved?
|
|
37
|
+
- What must exist in the initial target for implementation to begin?
|
|
38
|
+
|
|
39
|
+
Avoid demanding a complete catalogue before a useful target can be reviewed.
|
|
40
|
+
|
|
41
|
+
## Completion signals
|
|
42
|
+
|
|
43
|
+
Discovery is minimally useful when:
|
|
44
|
+
|
|
45
|
+
- native documents pass `yarramate check`;
|
|
46
|
+
- significant proposed subjects have traceable observations or are explicitly
|
|
47
|
+
identified as interpretation;
|
|
48
|
+
- a focused projection gives an agent useful repository context;
|
|
49
|
+
- evidence has not been promoted automatically.
|
|
50
|
+
|
|
51
|
+
Design is minimally useful when:
|
|
52
|
+
|
|
53
|
+
- drivers and constraints are visible;
|
|
54
|
+
- material alternatives remain reviewable;
|
|
55
|
+
- the selected target has explicit boundaries and relationships;
|
|
56
|
+
- a bounded target projection can guide implementation;
|
|
57
|
+
- missing detail is visible without becoming a Core correctness error.
|