yarramate 0.6.0 → 0.7.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 +39 -12
- package/catalogues/core-enrichment.yaml +700 -0
- package/dist/adapters/mcp-cli.js +55 -49
- package/dist/apply-command.d.ts +2 -0
- package/dist/apply-command.js +199 -0
- package/dist/{new-command.d.ts → ask-command.d.ts} +1 -1
- package/dist/ask-command.js +729 -0
- package/dist/brief.d.ts +3 -0
- package/dist/brief.js +235 -0
- package/dist/cli-support.d.ts +1 -1
- package/dist/cli-support.js +1 -1
- package/dist/cli.js +22 -590
- package/dist/compiler.js +13 -0
- package/dist/core-contract.d.ts +1 -1
- package/dist/{status-command.d.ts → design-command.d.ts} +1 -1
- package/dist/design-command.js +218 -0
- package/dist/export-command.d.ts +2 -0
- package/dist/export-command.js +228 -0
- package/dist/interrogate-command.d.ts +104 -0
- package/dist/interrogate-command.js +268 -0
- package/dist/next-command.d.ts +5 -8
- package/dist/next-command.js +106 -211
- package/docs/CONSUMING-YARRAMATE.md +28 -21
- package/package.json +13 -11
- package/schema/yarramate-apply-result.schema.json +32 -0
- package/schema/yarramate-ask-result.schema.json +391 -0
- package/schema/yarramate-core-contract.schema.json +5 -11
- package/schema/yarramate-design-step.schema.json +152 -0
- package/schema/yarramate-document.schema.json +76 -9
- package/schema/yarramate-interrogation-report.schema.json +89 -0
- package/schema/yarramate-operations.schema.json +303 -0
- package/schema/yarramate-question-catalogue.schema.json +431 -0
- package/skills/yarramate-architecture/SKILL.md +42 -17
- package/skills/yarramate-architecture/references/native-authoring.md +73 -17
- package/dist/new-command.js +0 -111
- package/dist/status-command.js +0 -174
- package/schema/yarramate-next-result.schema.json +0 -85
- package/schema/yarramate-status-result.schema.json +0 -278
|
@@ -63,7 +63,19 @@ self-model, source, tests, and fixtures.
|
|
|
63
63
|
|
|
64
64
|
## Install the agent skill
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
For Claude Code, the repository is its own plugin marketplace:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
/plugin marketplace add yarrasys/yarramate
|
|
70
|
+
/plugin install yarramate-architecture@yarramate
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The marketplace entry points at `skills/yarramate-architecture` in this
|
|
74
|
+
repository, so the installed plugin is the canonical skill rather than a
|
|
75
|
+
copy. It declares no version, taking its version from the commit it was
|
|
76
|
+
installed from.
|
|
77
|
+
|
|
78
|
+
For other harnesses, use the agent-skills installer:
|
|
67
79
|
|
|
68
80
|
```sh
|
|
69
81
|
npx skills add yarrasys/yarramate --skill yarramate-architecture
|
|
@@ -91,15 +103,13 @@ The skill will inspect repository evidence, propose native documents, and run:
|
|
|
91
103
|
|
|
92
104
|
```sh
|
|
93
105
|
yarramate check .yarramate/workspace.yaml --json
|
|
94
|
-
yarramate evidence \
|
|
95
|
-
.yarramate/evidence/<evidence>.yaml \
|
|
96
|
-
.yarramate/workspace.yaml
|
|
97
106
|
yarramate reconcile .yarramate/workspace.yaml
|
|
98
|
-
yarramate
|
|
99
|
-
.yarramate/projections/<projection>.yaml
|
|
100
|
-
.yarramate/workspace.yaml
|
|
107
|
+
yarramate ask .yarramate/workspace.yaml \
|
|
108
|
+
.yarramate/projections/<projection>.yaml
|
|
101
109
|
```
|
|
102
110
|
|
|
111
|
+
Evidence overlays declared in the manifest are evaluated by `reconcile`
|
|
112
|
+
(and gated by `check --strict`) rather than through a separate command.
|
|
103
113
|
Evidence remains distinct from declared intent. A generated proposal becomes
|
|
104
114
|
canonical only through the consuming repository's normal Git review.
|
|
105
115
|
|
|
@@ -111,15 +121,12 @@ implementation context, then runs:
|
|
|
111
121
|
|
|
112
122
|
```sh
|
|
113
123
|
yarramate check .yarramate/workspace.yaml --json
|
|
114
|
-
yarramate
|
|
115
|
-
.yarramate/projections/<alternatives>.yaml
|
|
116
|
-
|
|
117
|
-
yarramate
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
yarramate compare \
|
|
121
|
-
<baseline-state> <target-state> \
|
|
122
|
-
.yarramate/workspace.yaml
|
|
124
|
+
yarramate ask .yarramate/workspace.yaml \
|
|
125
|
+
.yarramate/projections/<alternatives>.yaml
|
|
126
|
+
yarramate ask .yarramate/workspace.yaml \
|
|
127
|
+
.yarramate/projections/<target>.yaml
|
|
128
|
+
yarramate ask .yarramate/workspace.yaml \
|
|
129
|
+
--compare <baseline-state> <target-state>
|
|
123
130
|
```
|
|
124
131
|
|
|
125
132
|
The CLI verifies deterministic correctness. It does not approve the design or
|
|
@@ -158,11 +165,11 @@ Harnesses that load MCP servers can connect the bundled read-only adapter:
|
|
|
158
165
|
}
|
|
159
166
|
```
|
|
160
167
|
|
|
161
|
-
It exposes `
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
the server's working directory; nothing mutates native
|
|
165
|
-
authoring stays with the CLI and Git review.
|
|
168
|
+
It exposes `yarramate_ask` (orientation, free text, subject ids, or a
|
|
169
|
+
projection path, with an optional token budget), `yarramate_design`,
|
|
170
|
+
`yarramate_check`, and `yarramate_reconcile`. Every tool call executes the
|
|
171
|
+
same stable CLI in the server's working directory; nothing mutates native
|
|
172
|
+
documents, and authoring stays with the CLI and Git review.
|
|
166
173
|
|
|
167
174
|
## Continuous drift signal in CI
|
|
168
175
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yarramate",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Tool-neutral semantic architecture engine and guided methodology",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"dist",
|
|
26
26
|
"assets/likec4",
|
|
27
27
|
"schema",
|
|
28
|
+
"catalogues",
|
|
28
29
|
"skills/yarramate-architecture",
|
|
29
30
|
"docs/CONSUMING-YARRAMATE.md"
|
|
30
31
|
],
|
|
@@ -58,15 +59,19 @@
|
|
|
58
59
|
"./schema/likec4-kind-mapping": "./schema/yarramate-likec4-kind-mapping.schema.json",
|
|
59
60
|
"./schema/likec4-check-result": "./schema/yarramate-likec4-check-result.schema.json",
|
|
60
61
|
"./schema/state-comparison": "./schema/yarramate-state-comparison.schema.json",
|
|
61
|
-
"./schema/
|
|
62
|
-
"./schema/
|
|
62
|
+
"./schema/question-catalogue": "./schema/yarramate-question-catalogue.schema.json",
|
|
63
|
+
"./schema/interrogation-report": "./schema/yarramate-interrogation-report.schema.json",
|
|
63
64
|
"./schema/graph-v2": "./schema/yarramate-graph-v2.schema.json",
|
|
64
65
|
"./schema/workspace": "./schema/yarramate-workspace.schema.json",
|
|
65
66
|
"./schema/evidence": "./schema/yarramate-evidence.schema.json",
|
|
66
67
|
"./schema/evidence-report": "./schema/yarramate-evidence-report.schema.json",
|
|
67
68
|
"./schema/reconciliation-report": "./schema/yarramate-reconciliation-report.schema.json",
|
|
68
69
|
"./schema/core-contract": "./schema/yarramate-core-contract.schema.json",
|
|
69
|
-
"./skill/yarramate-architecture": "./skills/yarramate-architecture/SKILL.md"
|
|
70
|
+
"./skill/yarramate-architecture": "./skills/yarramate-architecture/SKILL.md",
|
|
71
|
+
"./schema/operations": "./schema/yarramate-operations.schema.json",
|
|
72
|
+
"./schema/apply-result": "./schema/yarramate-apply-result.schema.json",
|
|
73
|
+
"./schema/design-step": "./schema/yarramate-design-step.schema.json",
|
|
74
|
+
"./schema/ask-result": "./schema/yarramate-ask-result.schema.json"
|
|
70
75
|
},
|
|
71
76
|
"bin": {
|
|
72
77
|
"yarramate": "dist/cli.js",
|
|
@@ -85,13 +90,10 @@
|
|
|
85
90
|
"format": "likec4 format assets/likec4",
|
|
86
91
|
"self:check": "pnpm build && node dist/cli.js check .yarramate/workspace.yaml",
|
|
87
92
|
"self:check:json": "pnpm build && node dist/cli.js check .yarramate/workspace.yaml --json",
|
|
88
|
-
"self:
|
|
89
|
-
"self:
|
|
90
|
-
"self:
|
|
91
|
-
"self:compare": "pnpm build && node dist/cli.js compare yarramate-evolution#native-foundation yarramate-evolution#state-foundation
|
|
92
|
-
"self:compare:contract": "pnpm build && node dist/cli.js compare yarramate-evolution#state-foundation yarramate-evolution#core-contract-foundation .yarramate/workspace.yaml",
|
|
93
|
-
"self:contract": "pnpm build && node dist/cli.js context .yarramate/projections/core-contract-foundation.yaml .yarramate/workspace.yaml",
|
|
94
|
-
"self:evidence": "pnpm build && node dist/cli.js evidence .yarramate/evidence/repository.yaml .yarramate/workspace.yaml",
|
|
93
|
+
"self:ask": "pnpm build && node dist/cli.js ask .yarramate/workspace.yaml",
|
|
94
|
+
"self:export:graph": "pnpm build && node dist/cli.js export graph .yarramate/workspace.yaml",
|
|
95
|
+
"self:export:markdown": "pnpm build && node dist/cli.js export markdown .yarramate/projections/current-engine.yaml .yarramate/workspace.yaml",
|
|
96
|
+
"self:compare": "pnpm build && node dist/cli.js ask .yarramate/workspace.yaml --compare yarramate-evolution#native-foundation yarramate-evolution#state-foundation",
|
|
95
97
|
"self:reconcile": "pnpm build && node dist/cli.js reconcile .yarramate/workspace.yaml",
|
|
96
98
|
"self:check:likec4": "pnpm build && node dist/adapters/likec4-cli.js check .yarramate/likec4-project.yaml .yarramate/workspace.yaml",
|
|
97
99
|
"self:check:likec4:json": "pnpm build && node dist/adapters/likec4-cli.js check .yarramate/likec4-project.yaml --json .yarramate/workspace.yaml",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarrasys.dev/schema/yarramate-apply-result.schema.json",
|
|
4
|
+
"title": "YarraMate apply result",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["format", "workspace", "applied", "documents"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"format": { "const": "yarramate/apply-result/v1" },
|
|
10
|
+
"workspace": { "type": "string", "minLength": 1 },
|
|
11
|
+
"applied": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": [
|
|
15
|
+
"addedConcepts",
|
|
16
|
+
"addedRelationships",
|
|
17
|
+
"updatedConcepts",
|
|
18
|
+
"updatedRelationships"
|
|
19
|
+
],
|
|
20
|
+
"properties": {
|
|
21
|
+
"addedConcepts": { "type": "integer", "minimum": 0 },
|
|
22
|
+
"addedRelationships": { "type": "integer", "minimum": 0 },
|
|
23
|
+
"updatedConcepts": { "type": "integer", "minimum": 0 },
|
|
24
|
+
"updatedRelationships": { "type": "integer", "minimum": 0 }
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"documents": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": { "type": "string", "minLength": 1 }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarrasys.dev/schema/yarramate-ask-result.schema.json",
|
|
4
|
+
"title": "YarraMate ask result",
|
|
5
|
+
"description": "One envelope for every consumed-now read: orientation, roster, slice, advice, next, open questions, and state comparison, discriminated by mode.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["format", "workspace", "mode"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"format": {
|
|
10
|
+
"const": "yarramate/ask-result/v1"
|
|
11
|
+
},
|
|
12
|
+
"workspace": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1
|
|
15
|
+
},
|
|
16
|
+
"mode": {
|
|
17
|
+
"enum": [
|
|
18
|
+
"orientation",
|
|
19
|
+
"roster",
|
|
20
|
+
"slice",
|
|
21
|
+
"advice",
|
|
22
|
+
"next",
|
|
23
|
+
"open",
|
|
24
|
+
"compare",
|
|
25
|
+
"kinds"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"oneOf": [
|
|
30
|
+
{
|
|
31
|
+
"type": "object",
|
|
32
|
+
"required": ["mode", "ok", "check", "backlog"],
|
|
33
|
+
"properties": {
|
|
34
|
+
"format": true,
|
|
35
|
+
"workspace": true,
|
|
36
|
+
"mode": { "const": "orientation" },
|
|
37
|
+
"ok": { "type": "boolean" },
|
|
38
|
+
"check": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"required": ["ok", "diagnostics"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"ok": { "type": "boolean" },
|
|
43
|
+
"diagnostics": { "type": "array" },
|
|
44
|
+
"counted": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"required": [
|
|
47
|
+
"documents",
|
|
48
|
+
"concepts",
|
|
49
|
+
"relationships",
|
|
50
|
+
"states"
|
|
51
|
+
],
|
|
52
|
+
"properties": {
|
|
53
|
+
"documents": { "type": "integer" },
|
|
54
|
+
"concepts": { "type": "integer" },
|
|
55
|
+
"relationships": { "type": "integer" },
|
|
56
|
+
"states": { "type": "integer" }
|
|
57
|
+
},
|
|
58
|
+
"additionalProperties": false
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false
|
|
62
|
+
},
|
|
63
|
+
"reconciliation": {
|
|
64
|
+
"$ref": "#/$defs/reconciliationSummary"
|
|
65
|
+
},
|
|
66
|
+
"design": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"required": ["catalogue", "open"],
|
|
69
|
+
"properties": {
|
|
70
|
+
"catalogue": { "type": "string", "minLength": 1 },
|
|
71
|
+
"open": { "type": "integer", "minimum": 0 }
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": false
|
|
74
|
+
},
|
|
75
|
+
"backlog": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"required": ["planned", "current", "retired"],
|
|
78
|
+
"properties": {
|
|
79
|
+
"planned": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"items": { "$ref": "#/$defs/nextSubject" }
|
|
82
|
+
},
|
|
83
|
+
"current": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": { "$ref": "#/$defs/conceptEntry" }
|
|
86
|
+
},
|
|
87
|
+
"retired": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": { "$ref": "#/$defs/conceptEntry" }
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"additionalProperties": false
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"additionalProperties": false
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"type": "object",
|
|
99
|
+
"required": ["mode", "total", "subjects"],
|
|
100
|
+
"properties": {
|
|
101
|
+
"format": true,
|
|
102
|
+
"workspace": true,
|
|
103
|
+
"mode": { "const": "roster" },
|
|
104
|
+
"total": { "type": "integer", "minimum": 0 },
|
|
105
|
+
"subjects": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"items": { "$ref": "#/$defs/conceptEntry" }
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"additionalProperties": false
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "object",
|
|
114
|
+
"required": ["mode", "addressing", "result"],
|
|
115
|
+
"properties": {
|
|
116
|
+
"format": true,
|
|
117
|
+
"workspace": true,
|
|
118
|
+
"mode": { "const": "slice" },
|
|
119
|
+
"addressing": {
|
|
120
|
+
"enum": ["free-text", "subjects", "projection"]
|
|
121
|
+
},
|
|
122
|
+
"topic": { "type": "string", "minLength": 1 },
|
|
123
|
+
"seeds": {
|
|
124
|
+
"type": "array",
|
|
125
|
+
"items": { "type": "string", "minLength": 1 }
|
|
126
|
+
},
|
|
127
|
+
"matched": { "type": "integer", "minimum": 0 },
|
|
128
|
+
"result": { "$ref": "#/$defs/projectionResult" }
|
|
129
|
+
},
|
|
130
|
+
"additionalProperties": false
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "object",
|
|
134
|
+
"required": [
|
|
135
|
+
"mode",
|
|
136
|
+
"topic",
|
|
137
|
+
"seeds",
|
|
138
|
+
"matched",
|
|
139
|
+
"slice",
|
|
140
|
+
"openQuestions"
|
|
141
|
+
],
|
|
142
|
+
"properties": {
|
|
143
|
+
"format": true,
|
|
144
|
+
"workspace": true,
|
|
145
|
+
"mode": { "const": "advice" },
|
|
146
|
+
"topic": { "type": "string", "minLength": 1 },
|
|
147
|
+
"seeds": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"items": { "type": "string", "minLength": 1 }
|
|
150
|
+
},
|
|
151
|
+
"matched": { "type": "integer", "minimum": 0 },
|
|
152
|
+
"slice": { "type": "string", "minLength": 1 },
|
|
153
|
+
"openQuestions": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"items": {
|
|
156
|
+
"type": "object",
|
|
157
|
+
"required": ["wave", "id", "authority", "question", "materiality"],
|
|
158
|
+
"properties": {
|
|
159
|
+
"wave": { "type": "string", "minLength": 1 },
|
|
160
|
+
"id": { "type": "string", "minLength": 1 },
|
|
161
|
+
"authority": { "enum": ["human", "agent", "either"] },
|
|
162
|
+
"question": { "type": "string", "minLength": 1 },
|
|
163
|
+
"materiality": { "type": "string", "minLength": 1 },
|
|
164
|
+
"subject": { "type": "string", "minLength": 1 }
|
|
165
|
+
},
|
|
166
|
+
"additionalProperties": false
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"reconciliation": {
|
|
170
|
+
"type": "object",
|
|
171
|
+
"required": ["summary", "findings"],
|
|
172
|
+
"properties": {
|
|
173
|
+
"summary": { "$ref": "#/$defs/reconciliationSummary" },
|
|
174
|
+
"findings": { "type": "array" }
|
|
175
|
+
},
|
|
176
|
+
"additionalProperties": false
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"additionalProperties": false
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"type": "object",
|
|
183
|
+
"required": ["mode", "subjects"],
|
|
184
|
+
"properties": {
|
|
185
|
+
"format": true,
|
|
186
|
+
"workspace": true,
|
|
187
|
+
"mode": { "const": "next" },
|
|
188
|
+
"subjects": {
|
|
189
|
+
"type": "array",
|
|
190
|
+
"items": { "$ref": "#/$defs/nextSubject" }
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"additionalProperties": false
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"type": "object",
|
|
197
|
+
"required": ["mode", "report"],
|
|
198
|
+
"properties": {
|
|
199
|
+
"format": true,
|
|
200
|
+
"workspace": true,
|
|
201
|
+
"mode": { "const": "open" },
|
|
202
|
+
"report": {
|
|
203
|
+
"type": "object",
|
|
204
|
+
"required": ["format", "workspace", "catalogue", "summary", "waves"],
|
|
205
|
+
"properties": {
|
|
206
|
+
"format": { "const": "yarramate/interrogation-report/v1" },
|
|
207
|
+
"workspace": { "type": "string" },
|
|
208
|
+
"catalogue": { "type": "string" },
|
|
209
|
+
"summary": { "type": "object" },
|
|
210
|
+
"waves": { "type": "array" }
|
|
211
|
+
},
|
|
212
|
+
"additionalProperties": false
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"additionalProperties": false
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"type": "object",
|
|
219
|
+
"required": ["mode", "conceptKinds", "relationshipKinds", "extensions"],
|
|
220
|
+
"properties": {
|
|
221
|
+
"format": true,
|
|
222
|
+
"workspace": true,
|
|
223
|
+
"mode": { "const": "kinds" },
|
|
224
|
+
"conceptKinds": {
|
|
225
|
+
"type": "array",
|
|
226
|
+
"items": {
|
|
227
|
+
"type": "object",
|
|
228
|
+
"required": ["id", "name", "layer", "aspect"],
|
|
229
|
+
"properties": {
|
|
230
|
+
"id": { "type": "string", "minLength": 1 },
|
|
231
|
+
"name": { "type": "string", "minLength": 1 },
|
|
232
|
+
"layer": { "type": "string", "minLength": 1 },
|
|
233
|
+
"aspect": { "type": "string", "minLength": 1 },
|
|
234
|
+
"inspiredBy": { "type": "string" }
|
|
235
|
+
},
|
|
236
|
+
"additionalProperties": false
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"relationshipKinds": {
|
|
240
|
+
"type": "array",
|
|
241
|
+
"items": {
|
|
242
|
+
"type": "object",
|
|
243
|
+
"required": ["id", "intent"],
|
|
244
|
+
"properties": {
|
|
245
|
+
"id": { "type": "string", "minLength": 1 },
|
|
246
|
+
"intent": { "type": "string", "minLength": 1 },
|
|
247
|
+
"sourceAspects": {
|
|
248
|
+
"type": "array",
|
|
249
|
+
"items": { "type": "string" }
|
|
250
|
+
},
|
|
251
|
+
"targetAspects": {
|
|
252
|
+
"type": "array",
|
|
253
|
+
"items": { "type": "string" }
|
|
254
|
+
},
|
|
255
|
+
"repair": { "type": "string" }
|
|
256
|
+
},
|
|
257
|
+
"additionalProperties": false
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"extensions": {
|
|
261
|
+
"type": "array",
|
|
262
|
+
"items": {
|
|
263
|
+
"type": "object",
|
|
264
|
+
"required": ["id", "type", "lineage"],
|
|
265
|
+
"properties": {
|
|
266
|
+
"id": { "type": "string", "minLength": 1 },
|
|
267
|
+
"type": { "enum": ["concept", "relationship"] },
|
|
268
|
+
"lineage": {
|
|
269
|
+
"type": "array",
|
|
270
|
+
"items": { "type": "string" }
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"additionalProperties": false
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"additionalProperties": false
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"type": "object",
|
|
281
|
+
"required": ["mode", "comparison"],
|
|
282
|
+
"properties": {
|
|
283
|
+
"format": true,
|
|
284
|
+
"workspace": true,
|
|
285
|
+
"mode": { "const": "compare" },
|
|
286
|
+
"comparison": {
|
|
287
|
+
"type": "object",
|
|
288
|
+
"required": ["format", "from", "to", "added", "removed", "retained"],
|
|
289
|
+
"properties": {
|
|
290
|
+
"format": { "const": "yarramate/state-comparison/v1" },
|
|
291
|
+
"from": { "type": "string" },
|
|
292
|
+
"to": { "type": "string" },
|
|
293
|
+
"added": { "type": "array" },
|
|
294
|
+
"removed": { "type": "array" },
|
|
295
|
+
"retained": { "type": "array" }
|
|
296
|
+
},
|
|
297
|
+
"additionalProperties": false
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"additionalProperties": false
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"$defs": {
|
|
304
|
+
"conceptEntry": {
|
|
305
|
+
"type": "object",
|
|
306
|
+
"required": ["id", "kind"],
|
|
307
|
+
"properties": {
|
|
308
|
+
"id": { "type": "string", "minLength": 1 },
|
|
309
|
+
"kind": { "type": "string", "minLength": 1 },
|
|
310
|
+
"name": { "type": "string" },
|
|
311
|
+
"status": { "enum": ["planned", "current", "retired"] },
|
|
312
|
+
"description": { "type": "string" }
|
|
313
|
+
},
|
|
314
|
+
"additionalProperties": false
|
|
315
|
+
},
|
|
316
|
+
"nextSubject": {
|
|
317
|
+
"type": "object",
|
|
318
|
+
"required": ["id", "kind", "dependsOn", "requiredBy", "evidence"],
|
|
319
|
+
"properties": {
|
|
320
|
+
"id": { "type": "string", "minLength": 1 },
|
|
321
|
+
"kind": { "type": "string", "minLength": 1 },
|
|
322
|
+
"name": { "type": "string" },
|
|
323
|
+
"dependsOn": {
|
|
324
|
+
"type": "array",
|
|
325
|
+
"items": { "type": "string" }
|
|
326
|
+
},
|
|
327
|
+
"requiredBy": {
|
|
328
|
+
"type": "array",
|
|
329
|
+
"items": { "type": "string" }
|
|
330
|
+
},
|
|
331
|
+
"evidence": {
|
|
332
|
+
"type": "object",
|
|
333
|
+
"required": [
|
|
334
|
+
"observations",
|
|
335
|
+
"confirmed",
|
|
336
|
+
"contradicted",
|
|
337
|
+
"unknown",
|
|
338
|
+
"notObserved"
|
|
339
|
+
],
|
|
340
|
+
"properties": {
|
|
341
|
+
"observations": { "type": "integer" },
|
|
342
|
+
"confirmed": { "type": "integer" },
|
|
343
|
+
"contradicted": { "type": "integer" },
|
|
344
|
+
"unknown": { "type": "integer" },
|
|
345
|
+
"notObserved": { "type": "integer" }
|
|
346
|
+
},
|
|
347
|
+
"additionalProperties": false
|
|
348
|
+
},
|
|
349
|
+
"cycle": { "const": true }
|
|
350
|
+
},
|
|
351
|
+
"additionalProperties": false
|
|
352
|
+
},
|
|
353
|
+
"projectionResult": {
|
|
354
|
+
"type": "object",
|
|
355
|
+
"required": ["format", "projection", "documents", "subjects", "claims"],
|
|
356
|
+
"properties": {
|
|
357
|
+
"format": { "const": "yarramate/projection-result/v1" },
|
|
358
|
+
"projection": { "type": "string" },
|
|
359
|
+
"presentation": { "type": "object" },
|
|
360
|
+
"documents": { "type": "array" },
|
|
361
|
+
"subjects": { "type": "array" },
|
|
362
|
+
"claims": { "type": "array" }
|
|
363
|
+
},
|
|
364
|
+
"additionalProperties": false
|
|
365
|
+
},
|
|
366
|
+
"reconciliationSummary": {
|
|
367
|
+
"type": "object",
|
|
368
|
+
"required": [
|
|
369
|
+
"evidenceDocuments",
|
|
370
|
+
"observations",
|
|
371
|
+
"confirmed",
|
|
372
|
+
"findings",
|
|
373
|
+
"contradicted",
|
|
374
|
+
"unknown",
|
|
375
|
+
"notObserved",
|
|
376
|
+
"subjectsWithoutEvidence"
|
|
377
|
+
],
|
|
378
|
+
"properties": {
|
|
379
|
+
"evidenceDocuments": { "type": "integer" },
|
|
380
|
+
"observations": { "type": "integer" },
|
|
381
|
+
"confirmed": { "type": "integer" },
|
|
382
|
+
"findings": { "type": "integer" },
|
|
383
|
+
"contradicted": { "type": "integer" },
|
|
384
|
+
"unknown": { "type": "integer" },
|
|
385
|
+
"notObserved": { "type": "integer" },
|
|
386
|
+
"subjectsWithoutEvidence": { "type": "integer" }
|
|
387
|
+
},
|
|
388
|
+
"additionalProperties": false
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
@@ -67,18 +67,12 @@
|
|
|
67
67
|
"name": {
|
|
68
68
|
"enum": [
|
|
69
69
|
"init",
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"next",
|
|
70
|
+
"design",
|
|
71
|
+
"apply",
|
|
72
|
+
"ask",
|
|
74
73
|
"check",
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"view",
|
|
78
|
-
"context",
|
|
79
|
-
"compare",
|
|
80
|
-
"evidence",
|
|
81
|
-
"reconcile"
|
|
74
|
+
"reconcile",
|
|
75
|
+
"export"
|
|
82
76
|
]
|
|
83
77
|
},
|
|
84
78
|
"binary": {
|