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
|
@@ -0,0 +1,700 @@
|
|
|
1
|
+
format: yarramate/question-catalogue/v1
|
|
2
|
+
id: core-enrichment
|
|
3
|
+
version: "0.3"
|
|
4
|
+
profile: yarramate/core@0.1
|
|
5
|
+
presentation:
|
|
6
|
+
title: Core enrichment interview
|
|
7
|
+
description: >-
|
|
8
|
+
The guided design path: motivation, business, and application waves plus
|
|
9
|
+
cross-cutting hygiene (technology and implementation follow in a later
|
|
10
|
+
version). Each question states the decision its answer changes; a
|
|
11
|
+
question that cannot is deleted, not softened. Adequacy is enforced by
|
|
12
|
+
linkage depth and attestation, never by reading words.
|
|
13
|
+
|
|
14
|
+
waves:
|
|
15
|
+
- id: motivation
|
|
16
|
+
name: Motivation
|
|
17
|
+
description: Why the system exists and what constrains it.
|
|
18
|
+
- id: business
|
|
19
|
+
name: Business
|
|
20
|
+
description: Who acts, what is served, and what information matters.
|
|
21
|
+
- id: application
|
|
22
|
+
name: Application
|
|
23
|
+
description: >-
|
|
24
|
+
How declared services are realized, performed, and fed with
|
|
25
|
+
information.
|
|
26
|
+
- id: hygiene
|
|
27
|
+
name: Model hygiene
|
|
28
|
+
description: Cross-cutting completeness that keeps every wave honest.
|
|
29
|
+
|
|
30
|
+
questions:
|
|
31
|
+
# ---- motivation ----------------------------------------------------------
|
|
32
|
+
- id: outcome-missing
|
|
33
|
+
wave: motivation
|
|
34
|
+
scope: workspace
|
|
35
|
+
trigger:
|
|
36
|
+
- condition: no-subject-of-kind
|
|
37
|
+
kinds:
|
|
38
|
+
- yarramate/core@0.1#goal
|
|
39
|
+
- yarramate/core@0.1#outcome
|
|
40
|
+
question: >-
|
|
41
|
+
What outcome justifies this system's existence?
|
|
42
|
+
materiality: >-
|
|
43
|
+
Without a declared goal or outcome, no alternative can be selected or
|
|
44
|
+
rejected on grounds anyone can review; every later trade-off becomes
|
|
45
|
+
taste.
|
|
46
|
+
authority: human
|
|
47
|
+
resolution: >-
|
|
48
|
+
Add at least one goal or outcome concept and relate principal services
|
|
49
|
+
to it with realization.
|
|
50
|
+
|
|
51
|
+
- id: stakeholders-missing
|
|
52
|
+
wave: motivation
|
|
53
|
+
scope: workspace
|
|
54
|
+
trigger:
|
|
55
|
+
- condition: no-subject-of-kind
|
|
56
|
+
kinds:
|
|
57
|
+
- yarramate/core@0.1#stakeholder
|
|
58
|
+
- yarramate/core@0.1#driver
|
|
59
|
+
question: >-
|
|
60
|
+
Which stakeholders and drivers shape this architecture?
|
|
61
|
+
materiality: >-
|
|
62
|
+
Drivers decide which qualities dominate when requirements conflict;
|
|
63
|
+
unstated drivers get re-litigated in every review.
|
|
64
|
+
authority: human
|
|
65
|
+
resolution: >-
|
|
66
|
+
Add stakeholder and driver concepts; use influence relationships toward
|
|
67
|
+
the goals they shape.
|
|
68
|
+
|
|
69
|
+
- id: constraints-missing
|
|
70
|
+
wave: motivation
|
|
71
|
+
scope: workspace
|
|
72
|
+
trigger:
|
|
73
|
+
- condition: no-subject-of-kind
|
|
74
|
+
kinds:
|
|
75
|
+
- yarramate/core@0.1#constraint
|
|
76
|
+
- yarramate/core@0.1#requirement
|
|
77
|
+
question: >-
|
|
78
|
+
Which constraints and requirements are non-negotiable?
|
|
79
|
+
materiality: >-
|
|
80
|
+
Non-negotiable constraints eliminate alternatives outright; discovering
|
|
81
|
+
them after design selection invalidates the selection.
|
|
82
|
+
authority: human
|
|
83
|
+
resolution: >-
|
|
84
|
+
Add constraint or requirement concepts and attach constraint references
|
|
85
|
+
from the subjects they bind.
|
|
86
|
+
|
|
87
|
+
- id: goal-unrealized
|
|
88
|
+
wave: motivation
|
|
89
|
+
scope: subject
|
|
90
|
+
subjects:
|
|
91
|
+
kinds:
|
|
92
|
+
- yarramate/core@0.1#goal
|
|
93
|
+
- yarramate/core@0.1#outcome
|
|
94
|
+
trigger:
|
|
95
|
+
- condition: missing-relationship
|
|
96
|
+
kinds:
|
|
97
|
+
- yarramate/core@0.1#realization
|
|
98
|
+
direction: incoming
|
|
99
|
+
question: >-
|
|
100
|
+
Nothing realizes {subject.name}. What fulfils it — or is it
|
|
101
|
+
aspirational?
|
|
102
|
+
materiality: >-
|
|
103
|
+
An unrealized goal either reprioritizes the roadmap or should be
|
|
104
|
+
declared aspirational so it stops steering design.
|
|
105
|
+
authority: either
|
|
106
|
+
resolution: >-
|
|
107
|
+
Add realization relationships from the fulfilling capability or
|
|
108
|
+
service, or record the aspirational status in the goal's description.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
- id: goal-no-driver
|
|
112
|
+
wave: motivation
|
|
113
|
+
scope: subject
|
|
114
|
+
subjects:
|
|
115
|
+
kinds:
|
|
116
|
+
- yarramate/core@0.1#goal
|
|
117
|
+
- yarramate/core@0.1#outcome
|
|
118
|
+
trigger:
|
|
119
|
+
- condition: missing-linkage
|
|
120
|
+
kinds:
|
|
121
|
+
- yarramate/core@0.1#influence
|
|
122
|
+
direction: incoming
|
|
123
|
+
counterpartKinds:
|
|
124
|
+
- yarramate/core@0.1#driver
|
|
125
|
+
- yarramate/core@0.1#assessment
|
|
126
|
+
- yarramate/core@0.1#stakeholder
|
|
127
|
+
question: >-
|
|
128
|
+
What pressure produces {subject.name}?
|
|
129
|
+
materiality: >-
|
|
130
|
+
A goal with no driver behind it cannot be reprioritized when the
|
|
131
|
+
environment changes; it floats free of the forces that would retire
|
|
132
|
+
or sharpen it.
|
|
133
|
+
authority: human
|
|
134
|
+
resolution: >-
|
|
135
|
+
Add the driver, assessment, or stakeholder that motivates the goal
|
|
136
|
+
and connect it with an influence relationship.
|
|
137
|
+
|
|
138
|
+
- id: driver-influences-nothing
|
|
139
|
+
wave: motivation
|
|
140
|
+
scope: subject
|
|
141
|
+
subjects:
|
|
142
|
+
kinds:
|
|
143
|
+
- yarramate/core@0.1#driver
|
|
144
|
+
trigger:
|
|
145
|
+
- condition: missing-relationship
|
|
146
|
+
kinds:
|
|
147
|
+
- yarramate/core@0.1#influence
|
|
148
|
+
direction: outgoing
|
|
149
|
+
question: >-
|
|
150
|
+
What does {subject.name} actually push on?
|
|
151
|
+
materiality: >-
|
|
152
|
+
A driver that influences nothing cannot participate in any trade-off;
|
|
153
|
+
it is context theatre until it points at a goal or principle.
|
|
154
|
+
authority: either
|
|
155
|
+
resolution: >-
|
|
156
|
+
Add influence relationships toward the goals, principles, or
|
|
157
|
+
assessments the driver shapes, or remove it.
|
|
158
|
+
|
|
159
|
+
- id: stakeholder-unconcerned
|
|
160
|
+
wave: motivation
|
|
161
|
+
scope: subject
|
|
162
|
+
subjects:
|
|
163
|
+
kinds:
|
|
164
|
+
- yarramate/core@0.1#stakeholder
|
|
165
|
+
trigger:
|
|
166
|
+
- condition: missing-relationship
|
|
167
|
+
kinds:
|
|
168
|
+
- yarramate/core@0.1#influence
|
|
169
|
+
- yarramate/core@0.1#association
|
|
170
|
+
direction: any
|
|
171
|
+
question: >-
|
|
172
|
+
What does {subject.name} care about here?
|
|
173
|
+
materiality: >-
|
|
174
|
+
A stakeholder with no stated concern cannot veto or endorse anything;
|
|
175
|
+
their objections will arrive as surprises at review time.
|
|
176
|
+
authority: human
|
|
177
|
+
resolution: >-
|
|
178
|
+
Relate the stakeholder to the goals or drivers they care about, or
|
|
179
|
+
remove them from the model.
|
|
180
|
+
|
|
181
|
+
- id: requirement-unrealized
|
|
182
|
+
wave: motivation
|
|
183
|
+
scope: subject
|
|
184
|
+
subjects:
|
|
185
|
+
kinds:
|
|
186
|
+
- yarramate/core@0.1#requirement
|
|
187
|
+
trigger:
|
|
188
|
+
- condition: missing-relationship
|
|
189
|
+
kinds:
|
|
190
|
+
- yarramate/core@0.1#realization
|
|
191
|
+
direction: incoming
|
|
192
|
+
question: >-
|
|
193
|
+
Nothing realizes {subject.name}. What will fulfil it — or is it
|
|
194
|
+
out of scope?
|
|
195
|
+
materiality: >-
|
|
196
|
+
An unrealized requirement is either unplanned work hiding in plain
|
|
197
|
+
sight or scope that should be explicitly declined; both change the
|
|
198
|
+
roadmap.
|
|
199
|
+
authority: either
|
|
200
|
+
resolution: >-
|
|
201
|
+
Add realization from the fulfilling service, component, or behavior,
|
|
202
|
+
or record the descoping decision and remove the requirement.
|
|
203
|
+
|
|
204
|
+
- id: principle-unapplied
|
|
205
|
+
wave: motivation
|
|
206
|
+
scope: subject
|
|
207
|
+
subjects:
|
|
208
|
+
kinds:
|
|
209
|
+
- yarramate/core@0.1#principle
|
|
210
|
+
trigger:
|
|
211
|
+
- condition: missing-relationship
|
|
212
|
+
kinds:
|
|
213
|
+
- yarramate/core@0.1#influence
|
|
214
|
+
- yarramate/core@0.1#realization
|
|
215
|
+
direction: any
|
|
216
|
+
question: >-
|
|
217
|
+
Where does {subject.name} bite?
|
|
218
|
+
materiality: >-
|
|
219
|
+
A principle applied nowhere constrains nothing; naming what it
|
|
220
|
+
influences is what makes it enforceable in review.
|
|
221
|
+
authority: either
|
|
222
|
+
resolution: >-
|
|
223
|
+
Add influence relationships to the decisions the principle governs,
|
|
224
|
+
or realization from the elements that embody it.
|
|
225
|
+
|
|
226
|
+
- id: assessment-unlinked
|
|
227
|
+
wave: motivation
|
|
228
|
+
scope: subject
|
|
229
|
+
subjects:
|
|
230
|
+
kinds:
|
|
231
|
+
- yarramate/core@0.1#assessment
|
|
232
|
+
trigger:
|
|
233
|
+
- condition: isolated
|
|
234
|
+
question: >-
|
|
235
|
+
What does the finding {subject.name} bear on?
|
|
236
|
+
materiality: >-
|
|
237
|
+
An assessment that touches nothing changes no decision; link it to
|
|
238
|
+
the driver or goal it evaluates or drop it.
|
|
239
|
+
authority: either
|
|
240
|
+
resolution: >-
|
|
241
|
+
Relate the assessment to its driver or goal with influence or
|
|
242
|
+
association.
|
|
243
|
+
|
|
244
|
+
- id: motivation-unattested
|
|
245
|
+
wave: motivation
|
|
246
|
+
scope: subject
|
|
247
|
+
subjects:
|
|
248
|
+
kinds:
|
|
249
|
+
- yarramate/core@0.1#goal
|
|
250
|
+
- yarramate/core@0.1#outcome
|
|
251
|
+
- yarramate/core@0.1#requirement
|
|
252
|
+
trigger:
|
|
253
|
+
- condition: missing-attestation
|
|
254
|
+
topic: adequacy
|
|
255
|
+
question: >-
|
|
256
|
+
Has an accountable reviewer accepted {subject.name} as adequately
|
|
257
|
+
stated?
|
|
258
|
+
materiality: >-
|
|
259
|
+
Linkage proves the wiring exists; only a recorded judgment says the
|
|
260
|
+
words are right. Without an attestation, adequacy is nobody's
|
|
261
|
+
decision on record.
|
|
262
|
+
authority: human
|
|
263
|
+
resolution: >-
|
|
264
|
+
Review the subject's description and linkage, then record an
|
|
265
|
+
attestation with topic "adequacy" (revoke by deleting it; Git
|
|
266
|
+
reviews both).
|
|
267
|
+
|
|
268
|
+
# ---- business ------------------------------------------------------------
|
|
269
|
+
- id: service-consumer-unknown
|
|
270
|
+
wave: business
|
|
271
|
+
scope: subject
|
|
272
|
+
subjects:
|
|
273
|
+
kinds:
|
|
274
|
+
- yarramate/core@0.1#businessService
|
|
275
|
+
- yarramate/core@0.1#applicationService
|
|
276
|
+
- yarramate/core@0.1#technologyService
|
|
277
|
+
trigger:
|
|
278
|
+
- condition: missing-relationship
|
|
279
|
+
kinds:
|
|
280
|
+
- yarramate/core@0.1#serving
|
|
281
|
+
direction: outgoing
|
|
282
|
+
question: >-
|
|
283
|
+
Who or what consumes {subject.name}?
|
|
284
|
+
materiality: >-
|
|
285
|
+
A service with no consumer is either the system boundary stated
|
|
286
|
+
implicitly, missing model detail, or scope to delete.
|
|
287
|
+
authority: either
|
|
288
|
+
resolution: >-
|
|
289
|
+
Add serving relationships to the consuming actor, process, or
|
|
290
|
+
component; if the consumer is external, model it as an actor.
|
|
291
|
+
|
|
292
|
+
- id: owner-missing
|
|
293
|
+
wave: business
|
|
294
|
+
scope: subject
|
|
295
|
+
subjects:
|
|
296
|
+
kinds:
|
|
297
|
+
- yarramate/core@0.1#businessService
|
|
298
|
+
- yarramate/core@0.1#applicationService
|
|
299
|
+
- yarramate/core@0.1#applicationComponent
|
|
300
|
+
- yarramate/core@0.1#capability
|
|
301
|
+
trigger:
|
|
302
|
+
- condition: missing-claim
|
|
303
|
+
predicate: yarramate/ownership/owner
|
|
304
|
+
question: >-
|
|
305
|
+
Who is accountable for {subject.name}?
|
|
306
|
+
materiality: >-
|
|
307
|
+
Ownership decides who accepts changes, budgets maintenance, and
|
|
308
|
+
adjudicates constraint conflicts for the subject.
|
|
309
|
+
authority: either
|
|
310
|
+
resolution: >-
|
|
311
|
+
Add an owner reference to an accountable actor (evidence such as
|
|
312
|
+
CODEOWNERS may propose it; a human confirms accountability).
|
|
313
|
+
|
|
314
|
+
- id: actor-unassigned
|
|
315
|
+
wave: business
|
|
316
|
+
scope: subject
|
|
317
|
+
subjects:
|
|
318
|
+
kinds:
|
|
319
|
+
- yarramate/core@0.1#businessActor
|
|
320
|
+
- yarramate/core@0.1#businessRole
|
|
321
|
+
trigger:
|
|
322
|
+
- condition: missing-relationship
|
|
323
|
+
kinds:
|
|
324
|
+
- yarramate/core@0.1#assignment
|
|
325
|
+
direction: outgoing
|
|
326
|
+
question: >-
|
|
327
|
+
What behavior is {subject.name} actually responsible for?
|
|
328
|
+
materiality: >-
|
|
329
|
+
An actor with no assignment is either decorative or hiding an
|
|
330
|
+
undeclared responsibility boundary.
|
|
331
|
+
authority: either
|
|
332
|
+
resolution: >-
|
|
333
|
+
Add assignment relationships to the processes, functions, or services
|
|
334
|
+
the actor performs, or remove the actor.
|
|
335
|
+
|
|
336
|
+
- id: information-unaccessed
|
|
337
|
+
wave: business
|
|
338
|
+
scope: subject
|
|
339
|
+
subjects:
|
|
340
|
+
kinds:
|
|
341
|
+
- yarramate/core@0.1#businessObject
|
|
342
|
+
- yarramate/core@0.1#dataObject
|
|
343
|
+
trigger:
|
|
344
|
+
- condition: missing-relationship
|
|
345
|
+
kinds:
|
|
346
|
+
- yarramate/core@0.1#access
|
|
347
|
+
- yarramate/core@0.1#realization
|
|
348
|
+
direction: any
|
|
349
|
+
question: >-
|
|
350
|
+
Which behavior creates and maintains {subject.name}?
|
|
351
|
+
materiality: >-
|
|
352
|
+
Information nothing accesses cannot be owned, persisted, or exchanged
|
|
353
|
+
correctly; write responsibility determines consistency boundaries.
|
|
354
|
+
authority: either
|
|
355
|
+
resolution: >-
|
|
356
|
+
Add access relationships (with modes) from the behavior that reads and
|
|
357
|
+
writes it.
|
|
358
|
+
|
|
359
|
+
- id: no-service-declared
|
|
360
|
+
wave: business
|
|
361
|
+
scope: workspace
|
|
362
|
+
trigger:
|
|
363
|
+
- condition: no-subject-of-kind
|
|
364
|
+
kinds:
|
|
365
|
+
- yarramate/core@0.1#businessService
|
|
366
|
+
- yarramate/core@0.1#applicationService
|
|
367
|
+
- yarramate/core@0.1#technologyService
|
|
368
|
+
question: >-
|
|
369
|
+
What does this system offer its environment, and to whom?
|
|
370
|
+
materiality: >-
|
|
371
|
+
Declared services define the solution boundary; without them the model
|
|
372
|
+
cannot say what is inside versus outside.
|
|
373
|
+
authority: human
|
|
374
|
+
resolution: >-
|
|
375
|
+
Add the externally meaningful services and serve them to their
|
|
376
|
+
consumers.
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
- id: service-realizes-no-motivation
|
|
380
|
+
wave: business
|
|
381
|
+
scope: subject
|
|
382
|
+
subjects:
|
|
383
|
+
kinds:
|
|
384
|
+
- yarramate/core@0.1#businessService
|
|
385
|
+
- yarramate/core@0.1#capability
|
|
386
|
+
trigger:
|
|
387
|
+
- condition: missing-linkage
|
|
388
|
+
kinds:
|
|
389
|
+
- yarramate/core@0.1#realization
|
|
390
|
+
direction: outgoing
|
|
391
|
+
counterpartKinds:
|
|
392
|
+
- yarramate/core@0.1#requirement
|
|
393
|
+
- yarramate/core@0.1#goal
|
|
394
|
+
- yarramate/core@0.1#outcome
|
|
395
|
+
question: >-
|
|
396
|
+
Which requirement or goal does {subject.name} exist to satisfy?
|
|
397
|
+
materiality: >-
|
|
398
|
+
A service with no motivation link cannot be traded off against
|
|
399
|
+
anything; when budgets tighten nobody can say what breaks if it
|
|
400
|
+
goes.
|
|
401
|
+
authority: either
|
|
402
|
+
resolution: >-
|
|
403
|
+
Add realization from the service or capability to the requirement,
|
|
404
|
+
goal, or outcome it satisfies.
|
|
405
|
+
|
|
406
|
+
- id: process-untriggered
|
|
407
|
+
wave: business
|
|
408
|
+
scope: subject
|
|
409
|
+
subjects:
|
|
410
|
+
kinds:
|
|
411
|
+
- yarramate/core@0.1#businessProcess
|
|
412
|
+
trigger:
|
|
413
|
+
- condition: missing-relationship
|
|
414
|
+
kinds:
|
|
415
|
+
- yarramate/core@0.1#triggering
|
|
416
|
+
- yarramate/core@0.1#assignment
|
|
417
|
+
direction: incoming
|
|
418
|
+
question: >-
|
|
419
|
+
What starts {subject.name}?
|
|
420
|
+
materiality: >-
|
|
421
|
+
A process nothing triggers or performs either runs on an undeclared
|
|
422
|
+
schedule or does not actually happen; both are design facts worth
|
|
423
|
+
stating.
|
|
424
|
+
authority: either
|
|
425
|
+
resolution: >-
|
|
426
|
+
Add the triggering event or the assignment from its performer.
|
|
427
|
+
|
|
428
|
+
- id: business-service-unrealized
|
|
429
|
+
wave: business
|
|
430
|
+
scope: subject
|
|
431
|
+
subjects:
|
|
432
|
+
kinds:
|
|
433
|
+
- yarramate/core@0.1#businessService
|
|
434
|
+
statuses:
|
|
435
|
+
- planned
|
|
436
|
+
- current
|
|
437
|
+
trigger:
|
|
438
|
+
- condition: missing-linkage
|
|
439
|
+
kinds:
|
|
440
|
+
- yarramate/core@0.1#realization
|
|
441
|
+
direction: incoming
|
|
442
|
+
counterpartKinds:
|
|
443
|
+
- yarramate/core@0.1#businessProcess
|
|
444
|
+
- yarramate/core@0.1#businessFunction
|
|
445
|
+
- yarramate/core@0.1#applicationService
|
|
446
|
+
- yarramate/core@0.1#applicationComponent
|
|
447
|
+
- yarramate/core@0.1#capability
|
|
448
|
+
question: >-
|
|
449
|
+
What actually delivers {subject.name}?
|
|
450
|
+
materiality: >-
|
|
451
|
+
A business service with no realizing behavior or application is a
|
|
452
|
+
promise with no mechanism; the gap is where delivery estimates go
|
|
453
|
+
wrong.
|
|
454
|
+
authority: either
|
|
455
|
+
resolution: >-
|
|
456
|
+
Add realization from the process, function, or application element
|
|
457
|
+
that delivers it.
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
# ---- application ---------------------------------------------------------
|
|
461
|
+
- id: app-service-unrealized
|
|
462
|
+
wave: application
|
|
463
|
+
scope: subject
|
|
464
|
+
subjects:
|
|
465
|
+
kinds:
|
|
466
|
+
- yarramate/core@0.1#applicationService
|
|
467
|
+
statuses:
|
|
468
|
+
- planned
|
|
469
|
+
- current
|
|
470
|
+
trigger:
|
|
471
|
+
- condition: missing-linkage
|
|
472
|
+
kinds:
|
|
473
|
+
- yarramate/core@0.1#realization
|
|
474
|
+
direction: incoming
|
|
475
|
+
counterpartKinds:
|
|
476
|
+
- yarramate/core@0.1#applicationComponent
|
|
477
|
+
- yarramate/core@0.1#applicationFunction
|
|
478
|
+
- yarramate/core@0.1#applicationProcess
|
|
479
|
+
- yarramate/core@0.1#applicationCollaboration
|
|
480
|
+
question: >-
|
|
481
|
+
Which component or behavior realizes {subject.name}?
|
|
482
|
+
materiality: >-
|
|
483
|
+
An application service with no realizer is interface without
|
|
484
|
+
implementation; implementers cannot be handed a slice that names no
|
|
485
|
+
mechanism.
|
|
486
|
+
authority: either
|
|
487
|
+
resolution: >-
|
|
488
|
+
Add realization from the component, function, or process that
|
|
489
|
+
implements the service.
|
|
490
|
+
|
|
491
|
+
- id: component-realizes-nothing
|
|
492
|
+
wave: application
|
|
493
|
+
scope: subject
|
|
494
|
+
subjects:
|
|
495
|
+
kinds:
|
|
496
|
+
- yarramate/core@0.1#applicationComponent
|
|
497
|
+
statuses:
|
|
498
|
+
- planned
|
|
499
|
+
- current
|
|
500
|
+
trigger:
|
|
501
|
+
- condition: missing-relationship
|
|
502
|
+
kinds:
|
|
503
|
+
- yarramate/core@0.1#realization
|
|
504
|
+
- yarramate/core@0.1#assignment
|
|
505
|
+
direction: outgoing
|
|
506
|
+
question: >-
|
|
507
|
+
What does {subject.name} contribute?
|
|
508
|
+
materiality: >-
|
|
509
|
+
A component that realizes and performs nothing is either missing its
|
|
510
|
+
purpose links or is inventory the build does not need.
|
|
511
|
+
authority: either
|
|
512
|
+
resolution: >-
|
|
513
|
+
Add realization to the services it implements or assignment to the
|
|
514
|
+
behavior it performs, or remove it.
|
|
515
|
+
|
|
516
|
+
- id: behavior-unassigned
|
|
517
|
+
wave: application
|
|
518
|
+
scope: subject
|
|
519
|
+
subjects:
|
|
520
|
+
kinds:
|
|
521
|
+
- yarramate/core@0.1#applicationFunction
|
|
522
|
+
- yarramate/core@0.1#applicationProcess
|
|
523
|
+
statuses:
|
|
524
|
+
- planned
|
|
525
|
+
- current
|
|
526
|
+
trigger:
|
|
527
|
+
- condition: missing-linkage
|
|
528
|
+
kinds:
|
|
529
|
+
- yarramate/core@0.1#assignment
|
|
530
|
+
direction: incoming
|
|
531
|
+
counterpartKinds:
|
|
532
|
+
- yarramate/core@0.1#applicationComponent
|
|
533
|
+
- yarramate/core@0.1#applicationCollaboration
|
|
534
|
+
- yarramate/core@0.1#businessActor
|
|
535
|
+
- yarramate/core@0.1#businessRole
|
|
536
|
+
question: >-
|
|
537
|
+
Who or what performs {subject.name}?
|
|
538
|
+
materiality: >-
|
|
539
|
+
Behavior with no performer cannot be placed in any component
|
|
540
|
+
boundary; it will be implemented wherever the first builder happens
|
|
541
|
+
to put it.
|
|
542
|
+
authority: either
|
|
543
|
+
resolution: >-
|
|
544
|
+
Add assignment from the component, collaboration, or actor that
|
|
545
|
+
performs the behavior.
|
|
546
|
+
|
|
547
|
+
- id: event-triggers-nothing
|
|
548
|
+
wave: application
|
|
549
|
+
scope: subject
|
|
550
|
+
subjects:
|
|
551
|
+
kinds:
|
|
552
|
+
- yarramate/core@0.1#applicationEvent
|
|
553
|
+
- yarramate/core@0.1#businessEvent
|
|
554
|
+
trigger:
|
|
555
|
+
- condition: missing-relationship
|
|
556
|
+
kinds:
|
|
557
|
+
- yarramate/core@0.1#triggering
|
|
558
|
+
direction: outgoing
|
|
559
|
+
question: >-
|
|
560
|
+
What responds to {subject.name}?
|
|
561
|
+
materiality: >-
|
|
562
|
+
An event that triggers nothing is either an unhandled condition —
|
|
563
|
+
a real design gap — or noise; deciding which changes the build.
|
|
564
|
+
authority: either
|
|
565
|
+
resolution: >-
|
|
566
|
+
Add triggering to the responding process or function, or remove the
|
|
567
|
+
event.
|
|
568
|
+
|
|
569
|
+
- id: information-unowned
|
|
570
|
+
wave: application
|
|
571
|
+
scope: subject
|
|
572
|
+
subjects:
|
|
573
|
+
kinds:
|
|
574
|
+
- yarramate/core@0.1#dataObject
|
|
575
|
+
- yarramate/core@0.1#businessObject
|
|
576
|
+
trigger:
|
|
577
|
+
- condition: missing-claim
|
|
578
|
+
predicate: yarramate/ownership/owner
|
|
579
|
+
question: >-
|
|
580
|
+
Who is accountable for {subject.name} — its meaning, retention, and
|
|
581
|
+
access?
|
|
582
|
+
materiality: >-
|
|
583
|
+
Unowned information has no one to adjudicate schema changes,
|
|
584
|
+
retention, or access disputes; ownership is where data governance
|
|
585
|
+
starts.
|
|
586
|
+
authority: human
|
|
587
|
+
resolution: >-
|
|
588
|
+
Add an owner reference to the accountable actor.
|
|
589
|
+
|
|
590
|
+
- id: planned-design-unattested
|
|
591
|
+
wave: application
|
|
592
|
+
scope: subject
|
|
593
|
+
subjects:
|
|
594
|
+
kinds:
|
|
595
|
+
- yarramate/core@0.1#businessService
|
|
596
|
+
- yarramate/core@0.1#applicationService
|
|
597
|
+
- yarramate/core@0.1#applicationComponent
|
|
598
|
+
statuses:
|
|
599
|
+
- planned
|
|
600
|
+
trigger:
|
|
601
|
+
- condition: missing-attestation
|
|
602
|
+
topic: design-review
|
|
603
|
+
question: >-
|
|
604
|
+
Has the design of {subject.name} been reviewed before it is built?
|
|
605
|
+
materiality: >-
|
|
606
|
+
A planned element carries every unbuilt decision; a recorded
|
|
607
|
+
design-review attestation is the difference between a reviewed
|
|
608
|
+
intention and a hopeful one.
|
|
609
|
+
authority: human
|
|
610
|
+
resolution: >-
|
|
611
|
+
Review the planned element's slice, then record an attestation with
|
|
612
|
+
topic "design-review" (revoke by deleting it when the design
|
|
613
|
+
changes).
|
|
614
|
+
|
|
615
|
+
# ---- hygiene -------------------------------------------------------------
|
|
616
|
+
- id: concept-isolated
|
|
617
|
+
wave: hygiene
|
|
618
|
+
scope: subject
|
|
619
|
+
subjects:
|
|
620
|
+
kinds:
|
|
621
|
+
- yarramate/core@0.1#capability
|
|
622
|
+
- yarramate/core@0.1#businessService
|
|
623
|
+
- yarramate/core@0.1#applicationService
|
|
624
|
+
- yarramate/core@0.1#applicationComponent
|
|
625
|
+
- yarramate/core@0.1#businessActor
|
|
626
|
+
- yarramate/core@0.1#dataObject
|
|
627
|
+
- yarramate/core@0.1#businessObject
|
|
628
|
+
trigger:
|
|
629
|
+
- condition: isolated
|
|
630
|
+
question: >-
|
|
631
|
+
{subject.name} relates to nothing. How does it participate in the
|
|
632
|
+
architecture — or should it be removed?
|
|
633
|
+
materiality: >-
|
|
634
|
+
An isolated concept either misses relationships the design depends on
|
|
635
|
+
or inflates the model with noise that dilutes trust.
|
|
636
|
+
authority: either
|
|
637
|
+
resolution: >-
|
|
638
|
+
Connect it with its real relationships or delete it; do not keep
|
|
639
|
+
unexplained inventory.
|
|
640
|
+
|
|
641
|
+
- id: concept-undescribed
|
|
642
|
+
wave: hygiene
|
|
643
|
+
scope: subject
|
|
644
|
+
subjects:
|
|
645
|
+
kinds:
|
|
646
|
+
- yarramate/core@0.1#businessService
|
|
647
|
+
- yarramate/core@0.1#applicationService
|
|
648
|
+
- yarramate/core@0.1#applicationComponent
|
|
649
|
+
- yarramate/core@0.1#capability
|
|
650
|
+
- yarramate/core@0.1#dataObject
|
|
651
|
+
trigger:
|
|
652
|
+
- condition: missing-claim
|
|
653
|
+
predicate: yarramate/concept/description
|
|
654
|
+
question: >-
|
|
655
|
+
What does {subject.name} mean — and what does it deliberately not
|
|
656
|
+
include?
|
|
657
|
+
materiality: >-
|
|
658
|
+
Undescribed subjects accumulate contradictory interpretations; the
|
|
659
|
+
description is where scope disputes are settled once.
|
|
660
|
+
authority: either
|
|
661
|
+
resolution: >-
|
|
662
|
+
Add a description claim stating meaning and explicit exclusions.
|
|
663
|
+
|
|
664
|
+
- id: status-missing
|
|
665
|
+
wave: hygiene
|
|
666
|
+
scope: subject
|
|
667
|
+
subjects:
|
|
668
|
+
kinds:
|
|
669
|
+
- yarramate/core@0.1#businessService
|
|
670
|
+
- yarramate/core@0.1#applicationService
|
|
671
|
+
- yarramate/core@0.1#applicationComponent
|
|
672
|
+
- yarramate/core@0.1#capability
|
|
673
|
+
trigger:
|
|
674
|
+
- condition: missing-claim
|
|
675
|
+
predicate: yarramate/lifecycle/status
|
|
676
|
+
question: >-
|
|
677
|
+
Is {subject.name} current, planned, or retired?
|
|
678
|
+
materiality: >-
|
|
679
|
+
Lifecycle status separates the architecture that exists from the one
|
|
680
|
+
that is intended; conflating them corrupts both discovery and design.
|
|
681
|
+
authority: either
|
|
682
|
+
resolution: >-
|
|
683
|
+
Add a lifecycle status claim; planned subjects should also appear in a
|
|
684
|
+
target architecture state where states are used.
|
|
685
|
+
|
|
686
|
+
- id: states-undefined
|
|
687
|
+
wave: hygiene
|
|
688
|
+
scope: workspace
|
|
689
|
+
trigger:
|
|
690
|
+
- condition: no-state-defined
|
|
691
|
+
question: >-
|
|
692
|
+
Does change shape matter here — should baseline, transition, or target
|
|
693
|
+
states be declared?
|
|
694
|
+
materiality: >-
|
|
695
|
+
Without architecture states, current and target intent share one
|
|
696
|
+
undifferentiated model and comparisons are impossible.
|
|
697
|
+
authority: human
|
|
698
|
+
resolution: >-
|
|
699
|
+
Declare architecture states and mark presence with present-in where the
|
|
700
|
+
distinction carries decisions; explicitly decline states otherwise.
|