@kungfu-tech/kfd 1.0.0-alpha.19 → 1.0.0-alpha.20

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 (37) hide show
  1. package/.buildchain/kfd-1/contract-world.witness.json +579 -91
  2. package/.buildchain/kfd-2/kfd-foundation.trust-assessment.json +238 -0
  3. package/.buildchain/kfd-2/kfd-foundation.trust-claims.json +225 -0
  4. package/.buildchain/kfd-2/public-release-trust.claim.json +30 -18
  5. package/.buildchain/kfd-3/collaboration-interface.artifact.json +242 -57
  6. package/.buildchain/kfd-3/collaboration-interface.json +99 -1
  7. package/.buildchain/kfd-3/collaboration-interface.prebuild.json +261 -32
  8. package/README.md +18 -13
  9. package/buildchain.contract-lock.json +5 -5
  10. package/decisions/{kfd-1.md → KFD-1.md} +40 -12
  11. package/decisions/{kfd-2.md → KFD-2.md} +37 -4
  12. package/decisions/{kfd-3.md → KFD-3.md} +17 -1
  13. package/docs/KFD-1-usage.md +37 -0
  14. package/docs/KFD-2-usage.md +123 -0
  15. package/docs/{kfd-3-collaboration-interface.md → KFD-3-usage.md} +21 -0
  16. package/docs/KFD-4-usage.md +31 -0
  17. package/docs/MAP.md +13 -7
  18. package/kfd.release.json +1 -1
  19. package/package.json +3 -1
  20. package/registry.json +4 -4
  21. package/release-impact.json +41 -5
  22. package/schemas/kfd-1/contract-world.schema.json +67 -4
  23. package/schemas/kfd-1/witness.schema.json +113 -0
  24. package/schemas/kfd-2/trust-assessment.schema.json +313 -0
  25. package/schemas/kfd-2/trust-claims.schema.json +334 -0
  26. package/schemas/kfd-3/collaboration-interface.schema.json +60 -0
  27. package/schemas/kfd-3/witness.schema.json +8 -0
  28. package/schemas/kfd-standards.schema.json +124 -0
  29. package/scripts/check.mjs +256 -12
  30. package/scripts/update-kfd-1-witness.mjs +17 -6
  31. package/scripts/update-kfd-2-claim.mjs +226 -5
  32. package/scripts/update-kfd-3-witness.mjs +35 -3
  33. package/scripts/update-site-bundle.mjs +32 -2
  34. package/site/kfd-site.json +67 -4
  35. package/standards.json +634 -11
  36. package/docs/kfd-2-release-trust.md +0 -78
  37. /package/decisions/{kfd-4.md → KFD-4.md} +0 -0
@@ -24,6 +24,13 @@
24
24
  "type": "string",
25
25
  "minLength": 1
26
26
  },
27
+ "compatibilityImpactClasses": {
28
+ "type": "array",
29
+ "items": {
30
+ "$ref": "#/$defs/compatibilityImpact"
31
+ },
32
+ "uniqueItems": true
33
+ },
27
34
  "surfaces": {
28
35
  "type": "array",
29
36
  "items": {
@@ -39,19 +46,75 @@
39
46
  "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
40
47
  },
41
48
  "class": {
42
- "enum": [
43
- "integration-time",
44
- "cross-time"
45
- ]
49
+ "$ref": "#/$defs/surfaceClass"
50
+ },
51
+ "classes": {
52
+ "type": "array",
53
+ "items": {
54
+ "$ref": "#/$defs/surfaceClass"
55
+ },
56
+ "uniqueItems": true,
57
+ "minItems": 1
46
58
  },
47
59
  "description": {
48
60
  "type": "string",
49
61
  "minLength": 1
62
+ },
63
+ "weldRationale": {
64
+ "type": "string",
65
+ "minLength": 1
66
+ },
67
+ "impactProjection": {
68
+ "$ref": "#/$defs/impactProjection"
50
69
  }
51
70
  },
52
71
  "additionalProperties": false
53
72
  }
54
73
  }
55
74
  },
75
+ "$defs": {
76
+ "surfaceClass": {
77
+ "enum": [
78
+ "integration-time",
79
+ "cross-time"
80
+ ]
81
+ },
82
+ "compatibilityImpact": {
83
+ "enum": [
84
+ "breaking",
85
+ "additive",
86
+ "none",
87
+ "unclassifiable"
88
+ ]
89
+ },
90
+ "impactProjection": {
91
+ "type": "object",
92
+ "required": [
93
+ "breaking",
94
+ "additive",
95
+ "none",
96
+ "unclassifiable"
97
+ ],
98
+ "properties": {
99
+ "breaking": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ },
103
+ "additive": {
104
+ "type": "string",
105
+ "minLength": 1
106
+ },
107
+ "none": {
108
+ "type": "string",
109
+ "minLength": 1
110
+ },
111
+ "unclassifiable": {
112
+ "type": "string",
113
+ "minLength": 1
114
+ }
115
+ },
116
+ "additionalProperties": false
117
+ }
118
+ },
56
119
  "additionalProperties": true
57
120
  }
@@ -37,6 +37,75 @@
37
37
  },
38
38
  "additionalProperties": false
39
39
  },
40
+ "compatibilityImpactClasses": {
41
+ "type": "array",
42
+ "items": {
43
+ "$ref": "#/$defs/compatibilityImpact"
44
+ },
45
+ "uniqueItems": true
46
+ },
47
+ "surfaces": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "object",
51
+ "required": [
52
+ "name",
53
+ "class",
54
+ "description",
55
+ "sourcePath",
56
+ "artifactPath",
57
+ "impactProjection"
58
+ ],
59
+ "properties": {
60
+ "name": {
61
+ "type": "string",
62
+ "minLength": 1
63
+ },
64
+ "class": {
65
+ "$ref": "#/$defs/surfaceClass"
66
+ },
67
+ "classes": {
68
+ "type": "array",
69
+ "items": {
70
+ "$ref": "#/$defs/surfaceClass"
71
+ },
72
+ "uniqueItems": true,
73
+ "minItems": 1
74
+ },
75
+ "description": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ "weldRationale": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ },
83
+ "sourcePath": {
84
+ "type": "string",
85
+ "minLength": 1
86
+ },
87
+ "artifactPath": {
88
+ "type": "string",
89
+ "minLength": 1
90
+ },
91
+ "sourceSha256": {
92
+ "type": "string",
93
+ "pattern": "^[0-9a-f]{64}$"
94
+ },
95
+ "expectedSha256": {
96
+ "type": "string",
97
+ "pattern": "^[0-9a-f]{64}$"
98
+ },
99
+ "byteForByte": {
100
+ "type": "boolean"
101
+ },
102
+ "impactProjection": {
103
+ "$ref": "#/$defs/impactProjection"
104
+ }
105
+ },
106
+ "additionalProperties": true
107
+ }
108
+ },
40
109
  "evidence": {
41
110
  "type": "array",
42
111
  "items": {
@@ -59,5 +128,49 @@
59
128
  }
60
129
  }
61
130
  },
131
+ "$defs": {
132
+ "surfaceClass": {
133
+ "enum": [
134
+ "integration-time",
135
+ "cross-time"
136
+ ]
137
+ },
138
+ "compatibilityImpact": {
139
+ "enum": [
140
+ "breaking",
141
+ "additive",
142
+ "none",
143
+ "unclassifiable"
144
+ ]
145
+ },
146
+ "impactProjection": {
147
+ "type": "object",
148
+ "required": [
149
+ "breaking",
150
+ "additive",
151
+ "none",
152
+ "unclassifiable"
153
+ ],
154
+ "properties": {
155
+ "breaking": {
156
+ "type": "string",
157
+ "minLength": 1
158
+ },
159
+ "additive": {
160
+ "type": "string",
161
+ "minLength": 1
162
+ },
163
+ "none": {
164
+ "type": "string",
165
+ "minLength": 1
166
+ },
167
+ "unclassifiable": {
168
+ "type": "string",
169
+ "minLength": 1
170
+ }
171
+ },
172
+ "additionalProperties": false
173
+ }
174
+ },
62
175
  "additionalProperties": true
63
176
  }
@@ -0,0 +1,313 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-assessment.schema.json",
4
+ "title": "KFD-2 trust assessment",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "contract",
9
+ "standard",
10
+ "assessedClaims",
11
+ "result",
12
+ "assessments",
13
+ "responsibility"
14
+ ],
15
+ "properties": {
16
+ "schemaVersion": {
17
+ "const": 1
18
+ },
19
+ "contract": {
20
+ "const": "kfd-2-trust-assessment"
21
+ },
22
+ "standard": {
23
+ "const": "kfd-2"
24
+ },
25
+ "assessedClaims": {
26
+ "type": "object",
27
+ "required": [
28
+ "schemaId",
29
+ "digest"
30
+ ],
31
+ "properties": {
32
+ "schemaId": {
33
+ "const": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-claims.schema.json"
34
+ },
35
+ "path": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "digest": {
40
+ "type": "string",
41
+ "minLength": 1
42
+ }
43
+ },
44
+ "additionalProperties": true
45
+ },
46
+ "result": {
47
+ "enum": [
48
+ "pass",
49
+ "fail",
50
+ "warning",
51
+ "unverifiable"
52
+ ]
53
+ },
54
+ "assessments": {
55
+ "type": "array",
56
+ "minItems": 1,
57
+ "items": {
58
+ "$ref": "#/$defs/claimAssessment"
59
+ }
60
+ },
61
+ "unboundClaims": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string",
65
+ "minLength": 1
66
+ }
67
+ },
68
+ "downgradeReasons": {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/downgradeReason"
72
+ }
73
+ },
74
+ "responsibility": {
75
+ "$ref": "#/$defs/responsibilityState"
76
+ },
77
+ "projection": {
78
+ "$ref": "#/$defs/projection"
79
+ },
80
+ "schemaEvolution": {
81
+ "$ref": "#/$defs/schemaEvolution"
82
+ }
83
+ },
84
+ "additionalProperties": true,
85
+ "$defs": {
86
+ "claimAssessment": {
87
+ "type": "object",
88
+ "required": [
89
+ "id",
90
+ "claimId",
91
+ "subject",
92
+ "result",
93
+ "facts",
94
+ "evidence",
95
+ "auditBoundary",
96
+ "responsibility"
97
+ ],
98
+ "properties": {
99
+ "id": {
100
+ "type": "string",
101
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
102
+ },
103
+ "claimId": {
104
+ "type": "string",
105
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
106
+ },
107
+ "subject": {
108
+ "$ref": "#/$defs/claimSubject"
109
+ },
110
+ "result": {
111
+ "enum": [
112
+ "pass",
113
+ "fail",
114
+ "warning",
115
+ "unverifiable"
116
+ ]
117
+ },
118
+ "facts": {
119
+ "type": "array",
120
+ "items": {
121
+ "$ref": "#/$defs/evidenceResult"
122
+ }
123
+ },
124
+ "evidence": {
125
+ "type": "array",
126
+ "items": {
127
+ "$ref": "#/$defs/evidenceResult"
128
+ }
129
+ },
130
+ "auditBoundary": {
131
+ "$ref": "#/$defs/auditBoundary"
132
+ },
133
+ "responsibility": {
134
+ "$ref": "#/$defs/responsibilityState"
135
+ },
136
+ "residualRisk": {
137
+ "type": "array",
138
+ "items": {
139
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/residualRisk"
140
+ }
141
+ }
142
+ },
143
+ "additionalProperties": true
144
+ },
145
+ "claimSubject": {
146
+ "type": "object",
147
+ "required": [
148
+ "kind",
149
+ "id"
150
+ ],
151
+ "properties": {
152
+ "kind": {
153
+ "enum": [
154
+ "kfd-standard",
155
+ "contract-world",
156
+ "collaboration-interface",
157
+ "observer-perspective",
158
+ "release",
159
+ "artifact",
160
+ "config",
161
+ "api",
162
+ "abi",
163
+ "gui-surface",
164
+ "runtime-fact",
165
+ "documentation",
166
+ "other"
167
+ ]
168
+ },
169
+ "id": {
170
+ "type": "string",
171
+ "minLength": 1
172
+ },
173
+ "standard": {
174
+ "type": "string",
175
+ "pattern": "^kfd-[1-9][0-9]*$"
176
+ },
177
+ "description": {
178
+ "type": "string",
179
+ "minLength": 1
180
+ }
181
+ },
182
+ "additionalProperties": true
183
+ },
184
+ "evidenceResult": {
185
+ "type": "object",
186
+ "required": [
187
+ "type",
188
+ "result",
189
+ "machineProvability"
190
+ ],
191
+ "properties": {
192
+ "type": {
193
+ "type": "string",
194
+ "minLength": 1
195
+ },
196
+ "result": {
197
+ "enum": [
198
+ "pass",
199
+ "fail",
200
+ "warning",
201
+ "unverifiable"
202
+ ]
203
+ },
204
+ "machineProvability": {
205
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/machineProvability"
206
+ },
207
+ "digest": {
208
+ "type": "string",
209
+ "minLength": 1
210
+ },
211
+ "path": {
212
+ "type": "string",
213
+ "minLength": 1
214
+ },
215
+ "description": {
216
+ "type": "string",
217
+ "minLength": 1
218
+ }
219
+ },
220
+ "additionalProperties": true
221
+ },
222
+ "auditBoundary": {
223
+ "type": "object",
224
+ "required": [
225
+ "scope",
226
+ "enumerability"
227
+ ],
228
+ "properties": {
229
+ "scope": {
230
+ "type": "string",
231
+ "minLength": 1
232
+ },
233
+ "enumerability": {
234
+ "enum": [
235
+ "closed-world",
236
+ "declared-open",
237
+ "sampled",
238
+ "manual"
239
+ ]
240
+ }
241
+ },
242
+ "additionalProperties": true
243
+ },
244
+ "responsibilityState": {
245
+ "type": "object",
246
+ "required": [
247
+ "owner",
248
+ "sourceOwner",
249
+ "verificationOwner",
250
+ "decisionOwner"
251
+ ],
252
+ "properties": {
253
+ "owner": {
254
+ "type": "string",
255
+ "minLength": 1
256
+ },
257
+ "sourceOwner": {
258
+ "type": "string",
259
+ "minLength": 1
260
+ },
261
+ "verificationOwner": {
262
+ "type": "string",
263
+ "minLength": 1
264
+ },
265
+ "decisionOwner": {
266
+ "type": "string",
267
+ "minLength": 1
268
+ },
269
+ "escalation": {
270
+ "type": "string",
271
+ "minLength": 1
272
+ }
273
+ },
274
+ "additionalProperties": true
275
+ },
276
+ "projection": {
277
+ "type": "object",
278
+ "required": [
279
+ "kind"
280
+ ],
281
+ "properties": {
282
+ "kind": {
283
+ "enum": [
284
+ "generic",
285
+ "release",
286
+ "package",
287
+ "site",
288
+ "runtime",
289
+ "other"
290
+ ]
291
+ },
292
+ "description": {
293
+ "type": "string",
294
+ "minLength": 1
295
+ }
296
+ },
297
+ "additionalProperties": true
298
+ },
299
+ "schemaEvolution": {
300
+ "type": "object",
301
+ "required": [
302
+ "compatibilityRule"
303
+ ],
304
+ "properties": {
305
+ "compatibilityRule": {
306
+ "type": "string",
307
+ "minLength": 1
308
+ }
309
+ },
310
+ "additionalProperties": true
311
+ }
312
+ }
313
+ }