@sdd-method/sdd-cli 1.21.0 → 1.22.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/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +12 -0
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.d.ts +12 -0
- package/dist/lib/catalogue/builders/capabilities.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.js +85 -6
- package/dist/lib/catalogue/builders/capabilities.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-edges.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capability-edges.js +16 -1
- package/dist/lib/catalogue/builders/capability-edges.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +3084 -2324
- package/dist/lib/catalogue/graph-projection.d.ts.map +1 -1
- package/dist/lib/catalogue/graph-projection.js +8 -1
- package/dist/lib/catalogue/graph-projection.js.map +1 -1
- package/dist/lib/catalogue/graph-run.d.ts.map +1 -1
- package/dist/lib/catalogue/graph-run.js +2 -1
- package/dist/lib/catalogue/graph-run.js.map +1 -1
- package/dist/lib/catalogue/population-checks.d.ts +45 -0
- package/dist/lib/catalogue/population-checks.d.ts.map +1 -0
- package/dist/lib/catalogue/population-checks.js +86 -0
- package/dist/lib/catalogue/population-checks.js.map +1 -0
- package/dist/lib/catalogue/rubric-coverage-map.yaml +507 -187
- package/dist/lib/catalogue/traceability-loader.d.ts +13 -0
- package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/traceability-loader.js +12 -0
- package/dist/lib/catalogue/traceability-loader.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,300 +1,620 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
# "no rubric" can never again be indistinguishable from "nobody asked".
|
|
8
|
-
#
|
|
9
|
-
# kind: entity | edge | finding | enum — declared here because the schema does
|
|
10
|
-
# not carry it (68 of 69 tables share primary_key: id; the 24/45 split was
|
|
11
|
-
# hand classification until this file). Consumers needing node-vs-edge kind
|
|
12
|
-
# (graph projection, per-class predicates) read it from here.
|
|
13
|
-
#
|
|
14
|
-
# scoring: rubric | rubric-pair | predicate | scored-at-source | re-targeted
|
|
15
|
-
# | not-applicable | derived-edge | not-built
|
|
16
|
-
#
|
|
17
|
-
# Relationship semantics (M-ADR 0206) — a SECOND vocabulary, distinct from
|
|
18
|
-
# scoring. `scoring: derived-edge` is a SCORING-ATTRIBUTION claim (where the
|
|
19
|
-
# quality judgment lives); it is NOT a build-provenance or semantics claim —
|
|
20
|
-
# conflating the two misdiagnosed the mirror families once already. The
|
|
21
|
-
# semantics are:
|
|
22
|
-
# class: membership | dependency | realisation | lineage | traceability
|
|
23
|
-
# | xref | attribute — what the relationship MEANS (for
|
|
24
|
-
# humans and review)
|
|
25
|
-
# impact_flow: toward-source | toward-target | both | none
|
|
26
|
-
# — which endpoint RECEIVES impact (the machine-read token):
|
|
27
|
-
# toward-source = a change at the target propagates to the source;
|
|
28
|
-
# toward-target = a change at the source propagates to the target.
|
|
29
|
-
# Declared PER RELATIONSHIP, not per class: declaration orientation
|
|
30
|
-
# is a per-builder historical accident (composition exists both as
|
|
31
|
-
# member->owner features.product_id and owner->member
|
|
32
|
-
# screen_component).
|
|
33
|
-
# impact_flow_by: { column: <name>, values: {...} } — the role-conditional
|
|
34
|
-
# form, mutually exclusive with impact_flow; admitted for measured
|
|
35
|
-
# need (today exactly one relationship: service_event).
|
|
36
|
-
# Edge catalogues carry class + impact_flow at the top level; entity
|
|
37
|
-
# catalogues carry a relationships: block keyed by FK column. `applications`
|
|
38
|
-
# inherits `products`' declarations through the schema's YAML merge and is
|
|
39
|
-
# deliberately not declared separately. Every parsed FK column and edge
|
|
40
|
-
# catalogue MUST carry a declaration — check-relationship-classes.sh holds
|
|
41
|
-
# this closed in both directions, and sdd-cli's vendored-map test mirrors it.
|
|
42
|
-
|
|
1
|
+
# GENERATED — DO NOT EDIT. This file is a projection of the authored model (M-ADR 0210 §4.6, flip 2):
|
|
2
|
+
# docs/method/foundations/schemas/catalogue-schema-meta.tql — coverage-meta + relationship-meta rows carry
|
|
3
|
+
# every entry here; the relations themselves (roles, players) are in catalogue-schema.tql.
|
|
4
|
+
# Regenerate: python3 orchestration/scripts/check-catalogue-schema-roundtrip.py --write
|
|
5
|
+
# Guard: python3 orchestration/scripts/check-catalogue-schema-roundtrip.py (any difference fails the build)
|
|
6
|
+
# Vocabularies, rulings and the reading of each token live in the authored .tql header, as comments.
|
|
43
7
|
coverage:
|
|
44
|
-
c4_system_kind:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
8
|
+
c4_system_kind:
|
|
9
|
+
kind: enum
|
|
10
|
+
scoring: not-applicable
|
|
11
|
+
reason: closed vocabulary, not an artefact
|
|
12
|
+
c4_container_type:
|
|
13
|
+
kind: enum
|
|
14
|
+
scoring: not-applicable
|
|
15
|
+
reason: closed vocabulary, not an artefact
|
|
16
|
+
service_type:
|
|
17
|
+
kind: enum
|
|
18
|
+
scoring: not-applicable
|
|
19
|
+
reason: closed vocabulary, not an artefact
|
|
20
|
+
capability_exemption_reason:
|
|
21
|
+
kind: enum
|
|
22
|
+
scoring: not-applicable
|
|
23
|
+
reason: closed vocabulary, not an artefact
|
|
24
|
+
service_capability_exemption_reason:
|
|
25
|
+
kind: enum
|
|
26
|
+
scoring: not-applicable
|
|
27
|
+
reason: closed vocabulary, not an artefact
|
|
28
|
+
external_system_exemption_reason:
|
|
29
|
+
kind: enum
|
|
30
|
+
scoring: not-applicable
|
|
31
|
+
reason: closed vocabulary, not an artefact
|
|
32
|
+
capability_service_role:
|
|
33
|
+
kind: enum
|
|
34
|
+
scoring: not-applicable
|
|
35
|
+
reason: closed vocabulary, not an artefact
|
|
51
36
|
domains:
|
|
52
37
|
kind: entity
|
|
53
38
|
scoring: not-applicable
|
|
54
|
-
instrument:
|
|
39
|
+
instrument: directory discovery; only the README first paragraph is authored — nothing to score
|
|
55
40
|
products:
|
|
56
41
|
kind: entity
|
|
57
42
|
scoring: rubric-pair
|
|
58
|
-
instrument:
|
|
43
|
+
instrument: 'forward: rubrics/product-definition-rubric.md · reverse: reverse/rubrics/product-synthesis-quality.md'
|
|
59
44
|
relationships:
|
|
60
|
-
domain_id:
|
|
45
|
+
domain_id:
|
|
46
|
+
class: membership
|
|
47
|
+
impact_flow: toward-target
|
|
61
48
|
applications:
|
|
62
49
|
kind: entity
|
|
63
50
|
scoring: not-applicable
|
|
64
|
-
instrument:
|
|
51
|
+
instrument: YAML-anchor view of products; scored there
|
|
65
52
|
integrations:
|
|
66
53
|
kind: entity
|
|
67
54
|
scoring: rubric
|
|
68
|
-
instrument:
|
|
55
|
+
instrument: rubrics/integration-sdd-quality-rubric.md
|
|
69
56
|
relationships:
|
|
70
|
-
domain_id:
|
|
71
|
-
|
|
57
|
+
domain_id:
|
|
58
|
+
class: membership
|
|
59
|
+
impact_flow: toward-target
|
|
60
|
+
parent_product_id:
|
|
61
|
+
class: membership
|
|
62
|
+
impact_flow: toward-target
|
|
72
63
|
integration_component:
|
|
73
64
|
kind: entity
|
|
74
65
|
scoring: rubric
|
|
75
|
-
instrument:
|
|
66
|
+
instrument: scored at the owning integration via rubrics/integration-sdd-quality-rubric.md (manifest block)
|
|
76
67
|
relationships:
|
|
77
|
-
integration_id:
|
|
68
|
+
integration_id:
|
|
69
|
+
class: membership
|
|
70
|
+
impact_flow: toward-target
|
|
78
71
|
adrs:
|
|
79
72
|
kind: entity
|
|
80
73
|
scoring: rubric-pair
|
|
81
|
-
instrument:
|
|
74
|
+
instrument: 'forward: rubrics/adr-quality-rubric.md · reverse: reverse/rubrics/reverse-adr-quality.md'
|
|
82
75
|
relationships:
|
|
83
|
-
domain_id:
|
|
84
|
-
|
|
76
|
+
domain_id:
|
|
77
|
+
class: membership
|
|
78
|
+
impact_flow: toward-target
|
|
79
|
+
superseded_by_id:
|
|
80
|
+
class: lineage
|
|
81
|
+
impact_flow: none
|
|
85
82
|
glossary_items:
|
|
86
83
|
kind: entity
|
|
87
84
|
scoring: rubric-pair
|
|
88
|
-
instrument:
|
|
85
|
+
instrument: 'forward: rubrics/glossary-rubric.md · reverse: reverse/rubrics/reverse-glossary-quality.md'
|
|
89
86
|
relationships:
|
|
90
|
-
owning_domain_id:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
owning_domain_id:
|
|
88
|
+
class: membership
|
|
89
|
+
impact_flow: toward-target
|
|
90
|
+
canonical_term_id:
|
|
91
|
+
class: xref
|
|
92
|
+
impact_flow: toward-source
|
|
93
|
+
glossary_xref:
|
|
94
|
+
kind: edge
|
|
95
|
+
class: xref
|
|
96
|
+
impact_flow: none
|
|
97
|
+
scoring: derived-edge
|
|
98
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
99
|
+
entity_glossary:
|
|
100
|
+
kind: edge
|
|
101
|
+
class: xref
|
|
102
|
+
impact_flow: none
|
|
103
|
+
scoring: derived-edge
|
|
104
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
94
105
|
services:
|
|
95
106
|
kind: entity
|
|
96
107
|
scoring: re-targeted
|
|
97
|
-
instrument:
|
|
108
|
+
instrument: 'deliberately no dedicated rubric: boundary scored by rubrics/domain-architecture-rubric.md B5/B9 against the declared set (repo-config, input 3); source absence by scripts/check-repo-config-coverage.sh; reverse doc form by reverse/rubrics/repo-doc-quality.md'
|
|
98
109
|
relationships:
|
|
99
|
-
product_id:
|
|
100
|
-
|
|
101
|
-
|
|
110
|
+
product_id:
|
|
111
|
+
class: membership
|
|
112
|
+
impact_flow: toward-target
|
|
113
|
+
domain_id:
|
|
114
|
+
class: membership
|
|
115
|
+
impact_flow: toward-target
|
|
116
|
+
primary_repo_id:
|
|
117
|
+
class: realisation
|
|
118
|
+
impact_flow: both
|
|
102
119
|
capabilities:
|
|
103
120
|
kind: entity
|
|
104
121
|
scoring: rubric-pair
|
|
105
|
-
instrument:
|
|
122
|
+
instrument: 'forward: rubrics/intent-quality-rubric.md · reverse: reverse/rubrics/reverse-capability-spec-quality.md'
|
|
106
123
|
relationships:
|
|
107
|
-
domain_id:
|
|
108
|
-
|
|
124
|
+
domain_id:
|
|
125
|
+
class: membership
|
|
126
|
+
impact_flow: toward-target
|
|
127
|
+
parent_capability_id:
|
|
128
|
+
class: membership
|
|
129
|
+
impact_flow: toward-target
|
|
109
130
|
feature_groups:
|
|
110
131
|
kind: entity
|
|
111
132
|
scoring: scored-at-source
|
|
112
|
-
instrument:
|
|
133
|
+
instrument: grouping is authored inside capability/feature specs; scored there by rubrics/intent-quality-rubric.md
|
|
113
134
|
relationships:
|
|
114
|
-
product_id:
|
|
115
|
-
|
|
116
|
-
|
|
135
|
+
product_id:
|
|
136
|
+
class: membership
|
|
137
|
+
impact_flow: toward-target
|
|
138
|
+
capability_id:
|
|
139
|
+
class: membership
|
|
140
|
+
impact_flow: toward-target
|
|
141
|
+
parent_group_id:
|
|
142
|
+
class: membership
|
|
143
|
+
impact_flow: toward-target
|
|
117
144
|
features:
|
|
118
145
|
kind: entity
|
|
119
146
|
scoring: rubric-pair
|
|
120
|
-
instrument:
|
|
147
|
+
instrument: 'forward: rubrics/intent-quality-rubric.md (feature tier) + rubrics/feature-grounding-rubric.md · reverse: reverse/rubrics/reverse-feature-grounding-quality.md'
|
|
121
148
|
relationships:
|
|
122
|
-
product_id:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
149
|
+
product_id:
|
|
150
|
+
class: membership
|
|
151
|
+
impact_flow: toward-target
|
|
152
|
+
capability_id:
|
|
153
|
+
class: membership
|
|
154
|
+
impact_flow: toward-target
|
|
155
|
+
parent_group_id:
|
|
156
|
+
class: membership
|
|
157
|
+
impact_flow: toward-target
|
|
158
|
+
parent_feature_id:
|
|
159
|
+
class: membership
|
|
160
|
+
impact_flow: toward-target
|
|
126
161
|
personas:
|
|
127
162
|
kind: entity
|
|
128
163
|
scoring: rubric-pair
|
|
129
|
-
instrument:
|
|
164
|
+
instrument: 'forward: rubrics/persona-rubric.md · reverse: reverse/rubrics/reverse-persona-quality.md'
|
|
130
165
|
relationships:
|
|
131
|
-
product_id:
|
|
166
|
+
product_id:
|
|
167
|
+
class: membership
|
|
168
|
+
impact_flow: toward-target
|
|
132
169
|
user_journeys:
|
|
133
170
|
kind: entity
|
|
134
171
|
scoring: rubric
|
|
135
|
-
instrument:
|
|
172
|
+
instrument: rubrics/user-journey-rubric.md
|
|
136
173
|
relationships:
|
|
137
|
-
product_id:
|
|
174
|
+
product_id:
|
|
175
|
+
class: membership
|
|
176
|
+
impact_flow: toward-target
|
|
138
177
|
contracts:
|
|
139
178
|
kind: entity
|
|
140
179
|
scoring: rubric-pair
|
|
141
|
-
instrument:
|
|
180
|
+
instrument: 'forward: rubrics/contract-quality-rubric.md · reverse: reverse/rubrics/reverse-contract-quality.md'
|
|
142
181
|
relationships:
|
|
143
|
-
service_id:
|
|
144
|
-
|
|
182
|
+
service_id:
|
|
183
|
+
class: membership
|
|
184
|
+
impact_flow: toward-target
|
|
185
|
+
source_repo_id:
|
|
186
|
+
class: lineage
|
|
187
|
+
impact_flow: toward-source
|
|
145
188
|
events:
|
|
146
189
|
kind: entity
|
|
147
190
|
scoring: predicate
|
|
148
|
-
instrument:
|
|
191
|
+
instrument: event-catalogue + event coverage checks (sdd-cli catalogue validate --coverage) — absence class; content rides the contract rubrics where events have contracts
|
|
149
192
|
relationships:
|
|
150
|
-
publisher_service_id:
|
|
151
|
-
|
|
193
|
+
publisher_service_id:
|
|
194
|
+
class: dependency
|
|
195
|
+
impact_flow: toward-source
|
|
196
|
+
domain_id:
|
|
197
|
+
class: membership
|
|
198
|
+
impact_flow: toward-target
|
|
152
199
|
c4_systems:
|
|
153
200
|
kind: entity
|
|
154
201
|
scoring: rubric-pair
|
|
155
|
-
instrument:
|
|
202
|
+
instrument: rubrics/c4-diagram-rubric.md (L1 per the level table) · reverse/rubrics/reverse-c4-quality.md
|
|
156
203
|
relationships:
|
|
157
|
-
product_id:
|
|
204
|
+
product_id:
|
|
205
|
+
class: realisation
|
|
206
|
+
impact_flow: both
|
|
158
207
|
c4_containers:
|
|
159
208
|
kind: entity
|
|
160
209
|
scoring: rubric-pair
|
|
161
|
-
instrument:
|
|
210
|
+
instrument: rubrics/c4-diagram-rubric.md (L2) · reverse/rubrics/reverse-c4-quality.md
|
|
162
211
|
relationships:
|
|
163
|
-
system_id:
|
|
164
|
-
|
|
165
|
-
|
|
212
|
+
system_id:
|
|
213
|
+
class: membership
|
|
214
|
+
impact_flow: toward-target
|
|
215
|
+
domain_id:
|
|
216
|
+
class: membership
|
|
217
|
+
impact_flow: toward-target
|
|
218
|
+
service_id:
|
|
219
|
+
class: realisation
|
|
220
|
+
impact_flow: both
|
|
166
221
|
c4_components:
|
|
167
222
|
kind: entity
|
|
168
223
|
scoring: rubric-pair
|
|
169
|
-
instrument:
|
|
224
|
+
instrument: rubrics/c4-diagram-rubric.md (L3 per the level table) · reverse/rubrics/reverse-c4-quality.md (L3 section)
|
|
170
225
|
relationships:
|
|
171
|
-
container_id:
|
|
172
|
-
|
|
226
|
+
container_id:
|
|
227
|
+
class: membership
|
|
228
|
+
impact_flow: toward-target
|
|
229
|
+
service_id:
|
|
230
|
+
class: realisation
|
|
231
|
+
impact_flow: both
|
|
173
232
|
c4_external_systems:
|
|
174
233
|
kind: entity
|
|
175
234
|
scoring: scored-at-source
|
|
176
|
-
instrument:
|
|
235
|
+
instrument: externality is scored inside the c4 rubrics (D4 / dimension 6); rows derive from System_Ext elements
|
|
177
236
|
repositories:
|
|
178
237
|
kind: entity
|
|
179
238
|
scoring: predicate
|
|
180
|
-
instrument:
|
|
239
|
+
instrument: 'deliberately no rubric: repo-config is four structural fields; scripts/check-repo-config-coverage.sh covers the silent absences, builder findings own enum/orphan/divergence'
|
|
181
240
|
relationships:
|
|
182
|
-
domain_id:
|
|
183
|
-
|
|
241
|
+
domain_id:
|
|
242
|
+
class: membership
|
|
243
|
+
impact_flow: toward-target
|
|
244
|
+
product_id:
|
|
245
|
+
class: membership
|
|
246
|
+
impact_flow: toward-target
|
|
184
247
|
domain_models:
|
|
185
248
|
kind: entity
|
|
186
249
|
scoring: rubric-pair
|
|
187
|
-
instrument:
|
|
250
|
+
instrument: 'forward: rubrics/domain-architecture-rubric.md · reverse: reverse/rubrics/reverse-data-model-quality.md'
|
|
188
251
|
relationships:
|
|
189
|
-
domain_id:
|
|
252
|
+
domain_id:
|
|
253
|
+
class: membership
|
|
254
|
+
impact_flow: toward-target
|
|
190
255
|
entities:
|
|
191
256
|
kind: entity
|
|
192
257
|
scoring: predicate
|
|
193
|
-
instrument:
|
|
258
|
+
instrument: 'verified covered: builder reads glossary-alignment-manifest (entities-manifest builder); absence fires the glossary-xref + data-model-entities coverage checks (sdd-cli catalogue validate --coverage); authored population is 1 forward + 1 reverse — a rubric would be ceremony'
|
|
194
259
|
relationships:
|
|
195
|
-
domain_id:
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
260
|
+
domain_id:
|
|
261
|
+
class: membership
|
|
262
|
+
impact_flow: toward-target
|
|
263
|
+
source_domain_model_id:
|
|
264
|
+
class: lineage
|
|
265
|
+
impact_flow: toward-source
|
|
266
|
+
glossary_term:
|
|
267
|
+
class: xref
|
|
268
|
+
impact_flow: none
|
|
269
|
+
repo_capability:
|
|
270
|
+
kind: edge
|
|
271
|
+
class: realisation
|
|
272
|
+
impact_flow: both
|
|
273
|
+
scoring: derived-edge
|
|
274
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
275
|
+
repo_capability_exemption:
|
|
276
|
+
kind: annotation
|
|
277
|
+
class: attribute
|
|
278
|
+
impact_flow: none
|
|
279
|
+
scoring: derived-edge
|
|
280
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
281
|
+
service_capability_exemption:
|
|
282
|
+
kind: annotation
|
|
283
|
+
class: attribute
|
|
284
|
+
impact_flow: none
|
|
285
|
+
scoring: derived-edge
|
|
286
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
287
|
+
external_system_exemption:
|
|
288
|
+
kind: annotation
|
|
289
|
+
class: attribute
|
|
290
|
+
impact_flow: none
|
|
291
|
+
scoring: derived-edge
|
|
292
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
293
|
+
repo_contract:
|
|
294
|
+
kind: edge
|
|
295
|
+
class: realisation
|
|
296
|
+
impact_flow: both
|
|
297
|
+
scoring: derived-edge
|
|
298
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
299
|
+
product_capability:
|
|
300
|
+
kind: edge
|
|
301
|
+
class: dependency
|
|
302
|
+
impact_flow: toward-source
|
|
303
|
+
scoring: derived-edge
|
|
304
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
305
|
+
product_service:
|
|
306
|
+
kind: edge
|
|
307
|
+
class: dependency
|
|
308
|
+
impact_flow: toward-source
|
|
309
|
+
scoring: derived-edge
|
|
310
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
311
|
+
service_contract:
|
|
312
|
+
kind: edge
|
|
313
|
+
class: realisation
|
|
314
|
+
impact_flow: both
|
|
315
|
+
scoring: derived-edge
|
|
316
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
206
317
|
service_event:
|
|
207
318
|
kind: edge
|
|
208
319
|
class: dependency
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
320
|
+
impact_flow_by:
|
|
321
|
+
column: role
|
|
322
|
+
values:
|
|
323
|
+
publishes: toward-target
|
|
324
|
+
consumes: toward-source
|
|
325
|
+
scoring: derived-edge
|
|
326
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
327
|
+
service_entity:
|
|
328
|
+
kind: edge
|
|
329
|
+
class: dependency
|
|
330
|
+
impact_flow: toward-source
|
|
331
|
+
scoring: derived-edge
|
|
332
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
333
|
+
capability_feature:
|
|
334
|
+
kind: edge
|
|
335
|
+
class: traceability
|
|
336
|
+
impact_flow: toward-source
|
|
337
|
+
scoring: derived-edge
|
|
338
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
339
|
+
capability_service:
|
|
340
|
+
kind: edge
|
|
341
|
+
class: dependency
|
|
342
|
+
impact_flow: toward-source
|
|
343
|
+
scoring: derived-edge
|
|
344
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
345
|
+
capability_event:
|
|
346
|
+
kind: edge
|
|
347
|
+
class: dependency
|
|
348
|
+
impact_flow: toward-source
|
|
349
|
+
scoring: derived-edge
|
|
350
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
351
|
+
capability_contract:
|
|
352
|
+
kind: edge
|
|
353
|
+
class: dependency
|
|
354
|
+
impact_flow: toward-source
|
|
355
|
+
scoring: derived-edge
|
|
356
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
357
|
+
journey_feature:
|
|
358
|
+
kind: edge
|
|
359
|
+
class: dependency
|
|
360
|
+
impact_flow: toward-source
|
|
361
|
+
scoring: derived-edge
|
|
362
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
363
|
+
persona_feature:
|
|
364
|
+
kind: edge
|
|
365
|
+
class: dependency
|
|
366
|
+
impact_flow: toward-source
|
|
367
|
+
scoring: derived-edge
|
|
368
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
369
|
+
feature_service:
|
|
370
|
+
kind: edge
|
|
371
|
+
class: dependency
|
|
372
|
+
impact_flow: toward-source
|
|
373
|
+
scoring: derived-edge
|
|
374
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
375
|
+
feature_event:
|
|
376
|
+
kind: edge
|
|
377
|
+
class: dependency
|
|
378
|
+
impact_flow: toward-source
|
|
379
|
+
scoring: derived-edge
|
|
380
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
381
|
+
feature_repo:
|
|
382
|
+
kind: edge
|
|
383
|
+
class: realisation
|
|
384
|
+
impact_flow: both
|
|
385
|
+
scoring: derived-edge
|
|
386
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
387
|
+
feature_contract:
|
|
388
|
+
kind: edge
|
|
389
|
+
class: dependency
|
|
390
|
+
impact_flow: toward-source
|
|
391
|
+
scoring: derived-edge
|
|
392
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
393
|
+
feature_subscription_channels:
|
|
394
|
+
kind: annotation
|
|
395
|
+
class: attribute
|
|
396
|
+
impact_flow: none
|
|
397
|
+
scoring: derived-edge
|
|
398
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
399
|
+
capability_domain_model:
|
|
400
|
+
kind: edge
|
|
401
|
+
class: dependency
|
|
402
|
+
impact_flow: toward-source
|
|
403
|
+
scoring: derived-edge
|
|
404
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
405
|
+
feature_domain_model:
|
|
406
|
+
kind: edge
|
|
407
|
+
class: dependency
|
|
408
|
+
impact_flow: toward-source
|
|
409
|
+
scoring: derived-edge
|
|
410
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
411
|
+
persona_journey:
|
|
412
|
+
kind: edge
|
|
413
|
+
class: dependency
|
|
414
|
+
impact_flow: toward-source
|
|
415
|
+
scoring: derived-edge
|
|
416
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
417
|
+
persona_screen:
|
|
418
|
+
kind: edge
|
|
419
|
+
class: dependency
|
|
420
|
+
impact_flow: toward-source
|
|
421
|
+
scoring: derived-edge
|
|
422
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
423
|
+
persona_c4system:
|
|
424
|
+
kind: edge
|
|
425
|
+
class: dependency
|
|
426
|
+
impact_flow: toward-source
|
|
427
|
+
scoring: derived-edge
|
|
428
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
429
|
+
persona_container:
|
|
430
|
+
kind: edge
|
|
431
|
+
class: dependency
|
|
432
|
+
impact_flow: toward-source
|
|
433
|
+
scoring: derived-edge
|
|
434
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
435
|
+
system_external_dependency:
|
|
436
|
+
kind: edge
|
|
437
|
+
class: dependency
|
|
438
|
+
impact_flow: toward-source
|
|
439
|
+
scoring: derived-edge
|
|
440
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
441
|
+
container_dependency:
|
|
442
|
+
kind: edge
|
|
443
|
+
class: dependency
|
|
444
|
+
impact_flow: toward-source
|
|
445
|
+
scoring: derived-edge
|
|
446
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
447
|
+
system_system_dependency:
|
|
448
|
+
kind: edge
|
|
449
|
+
class: dependency
|
|
450
|
+
impact_flow: toward-source
|
|
451
|
+
scoring: derived-edge
|
|
452
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
453
|
+
c4_container_entity:
|
|
454
|
+
kind: edge
|
|
455
|
+
class: dependency
|
|
456
|
+
impact_flow: toward-source
|
|
457
|
+
scoring: derived-edge
|
|
458
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
459
|
+
c4_system_entity:
|
|
460
|
+
kind: edge
|
|
461
|
+
class: dependency
|
|
462
|
+
impact_flow: toward-source
|
|
463
|
+
scoring: derived-edge
|
|
464
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
465
|
+
capability_adr:
|
|
466
|
+
kind: edge
|
|
467
|
+
class: dependency
|
|
468
|
+
impact_flow: toward-source
|
|
469
|
+
scoring: derived-edge
|
|
470
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
471
|
+
adr_supersedes:
|
|
472
|
+
kind: edge
|
|
473
|
+
class: lineage
|
|
474
|
+
impact_flow: none
|
|
475
|
+
scoring: derived-edge
|
|
476
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
477
|
+
product_platform_dependencies:
|
|
478
|
+
kind: edge
|
|
479
|
+
class: dependency
|
|
480
|
+
impact_flow: toward-source
|
|
481
|
+
scoring: derived-edge
|
|
482
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
483
|
+
cross_sdd_platform_capability:
|
|
484
|
+
kind: edge
|
|
485
|
+
class: dependency
|
|
486
|
+
impact_flow: toward-source
|
|
487
|
+
scoring: derived-edge
|
|
488
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
489
|
+
application_data_plane_bindings:
|
|
490
|
+
kind: annotation
|
|
491
|
+
class: attribute
|
|
492
|
+
impact_flow: none
|
|
493
|
+
scoring: derived-edge
|
|
494
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
495
|
+
application_data_plane_deviations:
|
|
496
|
+
kind: annotation
|
|
497
|
+
class: attribute
|
|
498
|
+
impact_flow: none
|
|
499
|
+
scoring: derived-edge
|
|
500
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
501
|
+
application_conformance_coverage:
|
|
502
|
+
kind: annotation
|
|
503
|
+
class: attribute
|
|
504
|
+
impact_flow: none
|
|
505
|
+
scoring: derived-edge
|
|
506
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
243
507
|
screens:
|
|
244
508
|
kind: entity
|
|
245
509
|
scoring: rubric-pair
|
|
246
|
-
instrument:
|
|
510
|
+
instrument: 'forward: rubrics/screen-spec-rubric.md above the mechanical floor (guides/screen-spec-depth-rubric.md) · reverse: reverse/rubrics/reverse-screen-spec-quality.md'
|
|
247
511
|
relationships:
|
|
248
|
-
product_id:
|
|
512
|
+
product_id:
|
|
513
|
+
class: membership
|
|
514
|
+
impact_flow: toward-target
|
|
249
515
|
ui_components:
|
|
250
516
|
kind: entity
|
|
251
517
|
scoring: not-applicable
|
|
252
|
-
instrument:
|
|
518
|
+
instrument: projected from component call-heads inside the screens builder; no authoring surface
|
|
253
519
|
relationships:
|
|
254
|
-
product_id:
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
520
|
+
product_id:
|
|
521
|
+
class: membership
|
|
522
|
+
impact_flow: toward-target
|
|
523
|
+
screen_component:
|
|
524
|
+
kind: edge
|
|
525
|
+
class: membership
|
|
526
|
+
impact_flow: toward-source
|
|
527
|
+
scoring: derived-edge
|
|
528
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
529
|
+
screen_feature:
|
|
530
|
+
kind: edge
|
|
531
|
+
class: dependency
|
|
532
|
+
impact_flow: toward-source
|
|
533
|
+
scoring: derived-edge
|
|
534
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
535
|
+
screen_action:
|
|
536
|
+
kind: edge
|
|
537
|
+
class: dependency
|
|
538
|
+
impact_flow: toward-source
|
|
539
|
+
scoring: derived-edge
|
|
540
|
+
reason: derived from entity rows or manifest blocks scored at the owning entity
|
|
541
|
+
conformance_finding:
|
|
542
|
+
kind: finding
|
|
543
|
+
scoring: not-built
|
|
544
|
+
reason: not produced by catalogue build; populated by conformance tooling
|
|
259
545
|
quality_scores:
|
|
260
546
|
kind: entity
|
|
261
547
|
scoring: predicate
|
|
262
|
-
instrument:
|
|
548
|
+
instrument: the score record itself — scoring it with a rubric would be circular. Its COVERAGE is what needs governing (every eligible artefact carries a current, non-stale score), and that is the scores-coverage predicate of M-ADR 0205 §4.5, run by sdd-cli catalogue validate --coverage. The quality of each individual assessment is the rubric named in its own rubric_id.
|
|
263
549
|
relationships:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
# scores instruments (staleness_basis/corpus_ref + the coverage check),
|
|
268
|
-
# and answering it through reachability answers it worse. Measured
|
|
269
|
-
# before ruling: scores were 27-30% of both estates' contract closures.
|
|
270
|
-
sdd_id: { class: dependency, impact_flow: none }
|
|
550
|
+
sdd_id:
|
|
551
|
+
class: dependency
|
|
552
|
+
impact_flow: none
|
|
271
553
|
quality_score_dimensions:
|
|
272
|
-
kind:
|
|
554
|
+
kind: annotation
|
|
273
555
|
class: attribute
|
|
274
556
|
impact_flow: none
|
|
275
557
|
scoring: derived-edge
|
|
276
|
-
reason:
|
|
277
|
-
quality_gate:
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
558
|
+
reason: derived from the parent quality_scores row; the dimension keys are the rubric's own vocabulary, governed by the rubric that declares them
|
|
559
|
+
quality_gate:
|
|
560
|
+
kind: enum
|
|
561
|
+
scoring: not-applicable
|
|
562
|
+
reason: closed vocabulary, not an artefact
|
|
563
|
+
score_selection_method:
|
|
564
|
+
kind: enum
|
|
565
|
+
scoring: not-applicable
|
|
566
|
+
reason: closed vocabulary, not an artefact
|
|
567
|
+
staleness_basis:
|
|
568
|
+
kind: enum
|
|
569
|
+
scoring: not-applicable
|
|
570
|
+
reason: closed vocabulary, not an artefact
|
|
571
|
+
scoring_form:
|
|
572
|
+
kind: enum
|
|
573
|
+
scoring: not-applicable
|
|
574
|
+
reason: closed vocabulary, not an artefact
|
|
281
575
|
scaffolds:
|
|
282
576
|
kind: entity
|
|
283
577
|
scoring: predicate
|
|
284
|
-
instrument:
|
|
578
|
+
instrument: the declaration record itself — scoring it with a rubric would be circular. Its GOVERNANCE is the M-ADR 0207 §4.8 delta instrument plus the scaffold-coverage predicate (every non-closed scaffold carries a current anchor and a computable delta; a closed scaffold sits at delta zero), run by sdd-cli catalogue validate --coverage.
|
|
285
579
|
relationships:
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
# scaffold instruments (corpus_ref staleness + the delta), and answering
|
|
290
|
-
# it through reachability answers it worse.
|
|
291
|
-
sdd_id: { class: membership, impact_flow: none }
|
|
580
|
+
sdd_id:
|
|
581
|
+
class: membership
|
|
582
|
+
impact_flow: none
|
|
292
583
|
scaffold_items:
|
|
293
|
-
kind:
|
|
584
|
+
kind: annotation
|
|
294
585
|
class: traceability
|
|
295
586
|
impact_flow: none
|
|
296
587
|
scoring: derived-edge
|
|
297
|
-
reason:
|
|
298
|
-
scaffold_status:
|
|
299
|
-
|
|
300
|
-
|
|
588
|
+
reason: derived from the authored scaffold manifest (M-ADR 0207 §4.1); the polymorphic target deliberately declares no FK — resolution is conditional on state — so the row is a governance trace, not an impact path
|
|
589
|
+
scaffold_status:
|
|
590
|
+
kind: enum
|
|
591
|
+
scoring: not-applicable
|
|
592
|
+
reason: closed vocabulary, not an artefact
|
|
593
|
+
scaffold_item_kind:
|
|
594
|
+
kind: enum
|
|
595
|
+
scoring: not-applicable
|
|
596
|
+
reason: closed vocabulary, not an artefact
|
|
597
|
+
scaffold_item_state:
|
|
598
|
+
kind: enum
|
|
599
|
+
scoring: not-applicable
|
|
600
|
+
reason: closed vocabulary, not an artefact
|
|
601
|
+
interaction_pattern:
|
|
602
|
+
kind: enum
|
|
603
|
+
scoring: not-applicable
|
|
604
|
+
reason: closed vocabulary, not an artefact
|
|
605
|
+
event_participation:
|
|
606
|
+
kind: enum
|
|
607
|
+
scoring: not-applicable
|
|
608
|
+
reason: closed vocabulary, not an artefact
|
|
609
|
+
contract_participation:
|
|
610
|
+
kind: enum
|
|
611
|
+
scoring: not-applicable
|
|
612
|
+
reason: closed vocabulary, not an artefact
|
|
613
|
+
consumption_role:
|
|
614
|
+
kind: enum
|
|
615
|
+
scoring: not-applicable
|
|
616
|
+
reason: closed vocabulary, not an artefact
|
|
617
|
+
journey_participation:
|
|
618
|
+
kind: enum
|
|
619
|
+
scoring: not-applicable
|
|
620
|
+
reason: closed vocabulary, not an artefact
|