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.
Files changed (38) hide show
  1. package/README.md +39 -12
  2. package/catalogues/core-enrichment.yaml +700 -0
  3. package/dist/adapters/mcp-cli.js +55 -49
  4. package/dist/apply-command.d.ts +2 -0
  5. package/dist/apply-command.js +199 -0
  6. package/dist/{new-command.d.ts → ask-command.d.ts} +1 -1
  7. package/dist/ask-command.js +729 -0
  8. package/dist/brief.d.ts +3 -0
  9. package/dist/brief.js +235 -0
  10. package/dist/cli-support.d.ts +1 -1
  11. package/dist/cli-support.js +1 -1
  12. package/dist/cli.js +22 -590
  13. package/dist/compiler.js +13 -0
  14. package/dist/core-contract.d.ts +1 -1
  15. package/dist/{status-command.d.ts → design-command.d.ts} +1 -1
  16. package/dist/design-command.js +218 -0
  17. package/dist/export-command.d.ts +2 -0
  18. package/dist/export-command.js +228 -0
  19. package/dist/interrogate-command.d.ts +104 -0
  20. package/dist/interrogate-command.js +268 -0
  21. package/dist/next-command.d.ts +5 -8
  22. package/dist/next-command.js +106 -211
  23. package/docs/CONSUMING-YARRAMATE.md +28 -21
  24. package/package.json +13 -11
  25. package/schema/yarramate-apply-result.schema.json +32 -0
  26. package/schema/yarramate-ask-result.schema.json +391 -0
  27. package/schema/yarramate-core-contract.schema.json +5 -11
  28. package/schema/yarramate-design-step.schema.json +152 -0
  29. package/schema/yarramate-document.schema.json +76 -9
  30. package/schema/yarramate-interrogation-report.schema.json +89 -0
  31. package/schema/yarramate-operations.schema.json +303 -0
  32. package/schema/yarramate-question-catalogue.schema.json +431 -0
  33. package/skills/yarramate-architecture/SKILL.md +42 -17
  34. package/skills/yarramate-architecture/references/native-authoring.md +73 -17
  35. package/dist/new-command.js +0 -111
  36. package/dist/status-command.js +0 -174
  37. package/schema/yarramate-next-result.schema.json +0 -85
  38. package/schema/yarramate-status-result.schema.json +0 -278
@@ -0,0 +1,152 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yarrasys.dev/schema/yarramate-design-step.schema.json",
4
+ "title": "YarraMate design step",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "format",
9
+ "workspace",
10
+ "catalogue",
11
+ "progress",
12
+ "step"
13
+ ],
14
+ "properties": {
15
+ "format": {
16
+ "const": "yarramate/design-step/v1"
17
+ },
18
+ "workspace": {
19
+ "type": "string",
20
+ "minLength": 1
21
+ },
22
+ "catalogue": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "progress": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": [
30
+ "questions",
31
+ "openQuestions",
32
+ "open",
33
+ "waves"
34
+ ],
35
+ "properties": {
36
+ "questions": {
37
+ "type": "integer",
38
+ "minimum": 0
39
+ },
40
+ "openQuestions": {
41
+ "type": "integer",
42
+ "minimum": 0
43
+ },
44
+ "open": {
45
+ "type": "integer",
46
+ "minimum": 0
47
+ },
48
+ "waves": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "additionalProperties": false,
53
+ "required": [
54
+ "id",
55
+ "open"
56
+ ],
57
+ "properties": {
58
+ "id": {
59
+ "type": "string",
60
+ "minLength": 1
61
+ },
62
+ "open": {
63
+ "type": "integer",
64
+ "minimum": 0
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ },
71
+ "step": {
72
+ "oneOf": [
73
+ {
74
+ "type": "null"
75
+ },
76
+ {
77
+ "type": "object",
78
+ "additionalProperties": false,
79
+ "required": [
80
+ "questionId",
81
+ "wave",
82
+ "scope",
83
+ "authority",
84
+ "question",
85
+ "materiality",
86
+ "resolution"
87
+ ],
88
+ "properties": {
89
+ "questionId": {
90
+ "type": "string",
91
+ "minLength": 1
92
+ },
93
+ "wave": {
94
+ "type": "string",
95
+ "minLength": 1
96
+ },
97
+ "scope": {
98
+ "enum": [
99
+ "workspace",
100
+ "subject"
101
+ ]
102
+ },
103
+ "authority": {
104
+ "enum": [
105
+ "human",
106
+ "agent",
107
+ "either"
108
+ ]
109
+ },
110
+ "question": {
111
+ "type": "string",
112
+ "minLength": 1
113
+ },
114
+ "materiality": {
115
+ "type": "string",
116
+ "minLength": 1
117
+ },
118
+ "resolution": {
119
+ "type": "string",
120
+ "minLength": 1
121
+ },
122
+ "subject": {
123
+ "type": "object",
124
+ "additionalProperties": false,
125
+ "required": [
126
+ "id"
127
+ ],
128
+ "properties": {
129
+ "id": {
130
+ "type": "string",
131
+ "minLength": 1
132
+ },
133
+ "name": {
134
+ "type": "string",
135
+ "minLength": 1
136
+ }
137
+ }
138
+ },
139
+ "remainingSubjects": {
140
+ "type": "integer",
141
+ "minimum": 1
142
+ }
143
+ }
144
+ }
145
+ ]
146
+ },
147
+ "slice": {
148
+ "type": "string",
149
+ "minLength": 1
150
+ }
151
+ }
152
+ }
@@ -4,7 +4,13 @@
4
4
  "title": "YarraMate native document",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
- "required": ["format", "id", "profile", "concepts", "relationships"],
7
+ "required": [
8
+ "format",
9
+ "id",
10
+ "profile",
11
+ "concepts",
12
+ "relationships"
13
+ ],
8
14
  "properties": {
9
15
  "format": {
10
16
  "const": "yarramate/v1"
@@ -51,13 +57,21 @@
51
57
  "architectureState": {
52
58
  "type": "object",
53
59
  "additionalProperties": false,
54
- "required": ["id", "kind", "name"],
60
+ "required": [
61
+ "id",
62
+ "kind",
63
+ "name"
64
+ ],
55
65
  "properties": {
56
66
  "id": {
57
67
  "$ref": "#/$defs/id"
58
68
  },
59
69
  "kind": {
60
- "enum": ["baseline", "transition", "target"]
70
+ "enum": [
71
+ "baseline",
72
+ "transition",
73
+ "target"
74
+ ]
61
75
  },
62
76
  "name": {
63
77
  "$ref": "#/$defs/nonEmptyText"
@@ -73,7 +87,11 @@
73
87
  "concept": {
74
88
  "type": "object",
75
89
  "additionalProperties": false,
76
- "required": ["id", "kind", "name"],
90
+ "required": [
91
+ "id",
92
+ "kind",
93
+ "name"
94
+ ],
77
95
  "properties": {
78
96
  "id": {
79
97
  "$ref": "#/$defs/id"
@@ -105,13 +123,23 @@
105
123
  },
106
124
  "presentIn": {
107
125
  "$ref": "#/$defs/stateReferences"
126
+ },
127
+ "attestations": {
128
+ "type": "array",
129
+ "minItems": 1,
130
+ "items": {
131
+ "$ref": "#/$defs/attestation"
132
+ }
108
133
  }
109
134
  }
110
135
  },
111
136
  "constraint": {
112
137
  "type": "object",
113
138
  "additionalProperties": false,
114
- "required": ["id", "ref"],
139
+ "required": [
140
+ "id",
141
+ "ref"
142
+ ],
115
143
  "properties": {
116
144
  "id": {
117
145
  "$ref": "#/$defs/id"
@@ -124,7 +152,10 @@
124
152
  "identifiedReference": {
125
153
  "type": "object",
126
154
  "additionalProperties": false,
127
- "required": ["id", "ref"],
155
+ "required": [
156
+ "id",
157
+ "ref"
158
+ ],
128
159
  "properties": {
129
160
  "id": {
130
161
  "$ref": "#/$defs/id"
@@ -144,7 +175,12 @@
144
175
  "relationship": {
145
176
  "type": "object",
146
177
  "additionalProperties": false,
147
- "required": ["id", "kind", "from", "to"],
178
+ "required": [
179
+ "id",
180
+ "kind",
181
+ "from",
182
+ "to"
183
+ ],
148
184
  "properties": {
149
185
  "id": {
150
186
  "$ref": "#/$defs/id"
@@ -166,7 +202,12 @@
166
202
  "$ref": "#/$defs/nonEmptyText"
167
203
  },
168
204
  "mode": {
169
- "enum": ["read", "write", "read-write", "unspecified"]
205
+ "enum": [
206
+ "read",
207
+ "write",
208
+ "read-write",
209
+ "unspecified"
210
+ ]
170
211
  },
171
212
  "content": {
172
213
  "$ref": "#/$defs/nonEmptyText"
@@ -191,7 +232,33 @@
191
232
  }
192
233
  },
193
234
  "lifecycleStatus": {
194
- "enum": ["planned", "current", "retired"]
235
+ "enum": [
236
+ "planned",
237
+ "current",
238
+ "retired"
239
+ ]
240
+ },
241
+ "attestation": {
242
+ "type": "object",
243
+ "additionalProperties": false,
244
+ "required": [
245
+ "topic",
246
+ "by",
247
+ "on"
248
+ ],
249
+ "properties": {
250
+ "topic": {
251
+ "type": "string",
252
+ "pattern": "^[a-z][a-z0-9-]*$"
253
+ },
254
+ "by": {
255
+ "$ref": "#/$defs/nonEmptyText"
256
+ },
257
+ "on": {
258
+ "type": "string",
259
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
260
+ }
261
+ }
195
262
  }
196
263
  }
197
264
  }
@@ -0,0 +1,89 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yarramate.org/schema/interrogation-report/v1",
4
+ "title": "YarraMate interrogation report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["format", "workspace", "catalogue", "summary", "waves"],
8
+ "properties": {
9
+ "format": {
10
+ "const": "yarramate/interrogation-report/v1"
11
+ },
12
+ "workspace": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "catalogue": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "summary": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": ["questions", "openQuestions", "open"],
24
+ "properties": {
25
+ "questions": { "type": "integer", "minimum": 0 },
26
+ "openQuestions": { "type": "integer", "minimum": 0 },
27
+ "open": { "type": "integer", "minimum": 0 }
28
+ }
29
+ },
30
+ "waves": {
31
+ "type": "array",
32
+ "items": {
33
+ "$ref": "#/$defs/wave"
34
+ }
35
+ }
36
+ },
37
+ "$defs": {
38
+ "wave": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["id", "name", "questions"],
42
+ "properties": {
43
+ "id": { "type": "string", "minLength": 1 },
44
+ "name": { "type": "string", "minLength": 1 },
45
+ "questions": {
46
+ "type": "array",
47
+ "items": { "$ref": "#/$defs/question" }
48
+ }
49
+ }
50
+ },
51
+ "question": {
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "required": [
55
+ "id",
56
+ "scope",
57
+ "authority",
58
+ "open",
59
+ "question",
60
+ "materiality",
61
+ "resolution"
62
+ ],
63
+ "properties": {
64
+ "id": { "type": "string", "minLength": 1 },
65
+ "scope": { "enum": ["workspace", "subject"] },
66
+ "authority": { "enum": ["human", "agent", "either"] },
67
+ "open": { "type": "boolean" },
68
+ "question": { "type": "string", "minLength": 1 },
69
+ "materiality": { "type": "string", "minLength": 1 },
70
+ "resolution": { "type": "string", "minLength": 1 },
71
+ "subjects": {
72
+ "type": "array",
73
+ "minItems": 1,
74
+ "items": { "$ref": "#/$defs/openSubject" }
75
+ }
76
+ }
77
+ },
78
+ "openSubject": {
79
+ "type": "object",
80
+ "additionalProperties": false,
81
+ "required": ["id", "question"],
82
+ "properties": {
83
+ "id": { "type": "string", "minLength": 1 },
84
+ "name": { "type": "string", "minLength": 1 },
85
+ "question": { "type": "string", "minLength": 1 }
86
+ }
87
+ }
88
+ }
89
+ }
@@ -0,0 +1,303 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yarrasys.dev/schema/yarramate-operations.schema.json",
4
+ "title": "YarraMate operations document",
5
+ "description": "An atomic batch of validated writes: every operation applies or none does. Documents are addressed by their workspace-manifest paths.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "format",
10
+ "operations"
11
+ ],
12
+ "properties": {
13
+ "format": {
14
+ "const": "yarramate/operations/v1"
15
+ },
16
+ "operations": {
17
+ "type": "array",
18
+ "minItems": 1,
19
+ "items": {
20
+ "$ref": "#/$defs/operation"
21
+ }
22
+ }
23
+ },
24
+ "$defs": {
25
+ "nonEmptyText": {
26
+ "type": "string",
27
+ "minLength": 1
28
+ },
29
+ "identifiedReference": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "required": [
33
+ "id",
34
+ "ref"
35
+ ],
36
+ "properties": {
37
+ "id": {
38
+ "$ref": "#/$defs/nonEmptyText"
39
+ },
40
+ "ref": {
41
+ "$ref": "#/$defs/nonEmptyText"
42
+ }
43
+ }
44
+ },
45
+ "attestation": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "required": [
49
+ "topic",
50
+ "by",
51
+ "on"
52
+ ],
53
+ "properties": {
54
+ "topic": {
55
+ "type": "string",
56
+ "pattern": "^[a-z][a-z0-9-]*$"
57
+ },
58
+ "by": {
59
+ "$ref": "#/$defs/nonEmptyText"
60
+ },
61
+ "on": {
62
+ "type": "string",
63
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
64
+ }
65
+ }
66
+ },
67
+ "conceptFields": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "properties": {
71
+ "id": {
72
+ "$ref": "#/$defs/nonEmptyText"
73
+ },
74
+ "kind": {
75
+ "$ref": "#/$defs/nonEmptyText"
76
+ },
77
+ "name": {
78
+ "$ref": "#/$defs/nonEmptyText"
79
+ },
80
+ "description": {
81
+ "$ref": "#/$defs/nonEmptyText"
82
+ },
83
+ "status": {
84
+ "enum": [
85
+ "planned",
86
+ "current",
87
+ "retired"
88
+ ]
89
+ },
90
+ "owner": {
91
+ "$ref": "#/$defs/nonEmptyText"
92
+ },
93
+ "constraints": {
94
+ "type": "array",
95
+ "items": {
96
+ "$ref": "#/$defs/identifiedReference"
97
+ }
98
+ },
99
+ "references": {
100
+ "type": "array",
101
+ "items": {
102
+ "$ref": "#/$defs/identifiedReference"
103
+ }
104
+ },
105
+ "presentIn": {
106
+ "type": "array",
107
+ "items": {
108
+ "$ref": "#/$defs/nonEmptyText"
109
+ }
110
+ },
111
+ "attestations": {
112
+ "type": "array",
113
+ "items": {
114
+ "$ref": "#/$defs/attestation"
115
+ }
116
+ }
117
+ }
118
+ },
119
+ "relationshipFields": {
120
+ "type": "object",
121
+ "additionalProperties": false,
122
+ "properties": {
123
+ "id": {
124
+ "$ref": "#/$defs/nonEmptyText"
125
+ },
126
+ "kind": {
127
+ "$ref": "#/$defs/nonEmptyText"
128
+ },
129
+ "from": {
130
+ "$ref": "#/$defs/nonEmptyText"
131
+ },
132
+ "to": {
133
+ "$ref": "#/$defs/nonEmptyText"
134
+ },
135
+ "name": {
136
+ "$ref": "#/$defs/nonEmptyText"
137
+ },
138
+ "description": {
139
+ "$ref": "#/$defs/nonEmptyText"
140
+ },
141
+ "status": {
142
+ "enum": [
143
+ "planned",
144
+ "current",
145
+ "retired"
146
+ ]
147
+ },
148
+ "mode": {
149
+ "enum": [
150
+ "read",
151
+ "write",
152
+ "read-write",
153
+ "unspecified"
154
+ ]
155
+ },
156
+ "content": {
157
+ "$ref": "#/$defs/nonEmptyText"
158
+ },
159
+ "references": {
160
+ "type": "array",
161
+ "items": {
162
+ "$ref": "#/$defs/identifiedReference"
163
+ }
164
+ },
165
+ "presentIn": {
166
+ "type": "array",
167
+ "items": {
168
+ "$ref": "#/$defs/nonEmptyText"
169
+ }
170
+ }
171
+ }
172
+ },
173
+ "operation": {
174
+ "oneOf": [
175
+ {
176
+ "type": "object",
177
+ "additionalProperties": false,
178
+ "required": [
179
+ "op",
180
+ "document",
181
+ "concept"
182
+ ],
183
+ "properties": {
184
+ "op": {
185
+ "const": "add-concept"
186
+ },
187
+ "document": {
188
+ "$ref": "#/$defs/nonEmptyText"
189
+ },
190
+ "concept": {
191
+ "allOf": [
192
+ {
193
+ "$ref": "#/$defs/conceptFields"
194
+ },
195
+ {
196
+ "required": [
197
+ "id",
198
+ "kind",
199
+ "name"
200
+ ],
201
+ "type": "object"
202
+ }
203
+ ]
204
+ }
205
+ }
206
+ },
207
+ {
208
+ "type": "object",
209
+ "additionalProperties": false,
210
+ "required": [
211
+ "op",
212
+ "document",
213
+ "relationship"
214
+ ],
215
+ "properties": {
216
+ "op": {
217
+ "const": "add-relationship"
218
+ },
219
+ "document": {
220
+ "$ref": "#/$defs/nonEmptyText"
221
+ },
222
+ "relationship": {
223
+ "allOf": [
224
+ {
225
+ "$ref": "#/$defs/relationshipFields"
226
+ },
227
+ {
228
+ "required": [
229
+ "id",
230
+ "kind",
231
+ "from",
232
+ "to"
233
+ ],
234
+ "type": "object"
235
+ }
236
+ ]
237
+ }
238
+ }
239
+ },
240
+ {
241
+ "type": "object",
242
+ "additionalProperties": false,
243
+ "required": [
244
+ "op",
245
+ "document",
246
+ "concept"
247
+ ],
248
+ "properties": {
249
+ "op": {
250
+ "const": "update-concept"
251
+ },
252
+ "document": {
253
+ "$ref": "#/$defs/nonEmptyText"
254
+ },
255
+ "concept": {
256
+ "allOf": [
257
+ {
258
+ "$ref": "#/$defs/conceptFields"
259
+ },
260
+ {
261
+ "required": [
262
+ "id"
263
+ ],
264
+ "type": "object"
265
+ }
266
+ ]
267
+ }
268
+ }
269
+ },
270
+ {
271
+ "type": "object",
272
+ "additionalProperties": false,
273
+ "required": [
274
+ "op",
275
+ "document",
276
+ "relationship"
277
+ ],
278
+ "properties": {
279
+ "op": {
280
+ "const": "update-relationship"
281
+ },
282
+ "document": {
283
+ "$ref": "#/$defs/nonEmptyText"
284
+ },
285
+ "relationship": {
286
+ "allOf": [
287
+ {
288
+ "$ref": "#/$defs/relationshipFields"
289
+ },
290
+ {
291
+ "required": [
292
+ "id"
293
+ ],
294
+ "type": "object"
295
+ }
296
+ ]
297
+ }
298
+ }
299
+ }
300
+ ]
301
+ }
302
+ }
303
+ }