@kungfu-tech/kfd 1.0.0-alpha.0 → 1.0.0-alpha.12
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/.buildchain/kfd-1/contract-world.witness.json +185 -0
- package/.buildchain/kfd-2/public-release-trust.claim.json +107 -0
- package/.buildchain/kfd-3/collaboration-interface.artifact.json +520 -0
- package/.buildchain/kfd-3/collaboration-interface.json +274 -0
- package/.buildchain/kfd-3/collaboration-interface.prebuild.json +803 -0
- package/README.md +45 -4
- package/buildchain.release-propagation.json +32 -0
- package/decisions/kfd-1.md +6 -4
- package/docs/MAP.md +4 -0
- package/docs/kfd-2-release-trust.md +46 -0
- package/docs/kfd-3-collaboration-interface.md +59 -0
- package/kfd.release.json +13 -0
- package/package.json +49 -5
- package/release-impact.json +65 -0
- package/schemas/kfd-1/contract-world.schema.json +57 -0
- package/schemas/kfd-1/witness.schema.json +63 -0
- package/schemas/kfd-2/release-claims.schema.json +332 -0
- package/schemas/kfd-2/release-trust-passport.schema.json +278 -0
- package/schemas/kfd-3/collaboration-interface.schema.json +348 -0
- package/schemas/kfd-3/witness.schema.json +153 -0
- package/schemas/kfd-standards.schema.json +239 -0
- package/standards.json +189 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://kfd.libkungfu.dev/schemas/kfd-standards.schema.json",
|
|
4
|
+
"title": "KFD standards metadata",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"contract",
|
|
9
|
+
"metadataSchema",
|
|
10
|
+
"source",
|
|
11
|
+
"standards"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"schemaVersion": {
|
|
15
|
+
"const": 1
|
|
16
|
+
},
|
|
17
|
+
"contract": {
|
|
18
|
+
"const": "kfd-standards-metadata"
|
|
19
|
+
},
|
|
20
|
+
"metadataSchema": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"required": [
|
|
23
|
+
"id",
|
|
24
|
+
"path",
|
|
25
|
+
"version"
|
|
26
|
+
],
|
|
27
|
+
"properties": {
|
|
28
|
+
"id": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"format": "uri"
|
|
31
|
+
},
|
|
32
|
+
"path": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"version": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"additionalProperties": false
|
|
40
|
+
},
|
|
41
|
+
"source": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"required": [
|
|
44
|
+
"package",
|
|
45
|
+
"registry",
|
|
46
|
+
"decisionsDir"
|
|
47
|
+
],
|
|
48
|
+
"properties": {
|
|
49
|
+
"package": {
|
|
50
|
+
"const": "@kungfu-tech/kfd"
|
|
51
|
+
},
|
|
52
|
+
"registry": {
|
|
53
|
+
"const": "registry.json"
|
|
54
|
+
},
|
|
55
|
+
"decisionsDir": {
|
|
56
|
+
"const": "decisions"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"additionalProperties": false
|
|
60
|
+
},
|
|
61
|
+
"standards": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"patternProperties": {
|
|
64
|
+
"^kfd-[1-9][0-9]*$": {
|
|
65
|
+
"$ref": "#/$defs/standard"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"additionalProperties": false
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"additionalProperties": false,
|
|
72
|
+
"$defs": {
|
|
73
|
+
"standard": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"required": [
|
|
76
|
+
"key",
|
|
77
|
+
"id",
|
|
78
|
+
"number",
|
|
79
|
+
"label",
|
|
80
|
+
"title",
|
|
81
|
+
"kind",
|
|
82
|
+
"status",
|
|
83
|
+
"revision",
|
|
84
|
+
"metadataSchemaVersion",
|
|
85
|
+
"document",
|
|
86
|
+
"compatibility",
|
|
87
|
+
"schemaIds",
|
|
88
|
+
"schemaPaths",
|
|
89
|
+
"concepts"
|
|
90
|
+
],
|
|
91
|
+
"properties": {
|
|
92
|
+
"key": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"pattern": "^kfd-[1-9][0-9]*$"
|
|
95
|
+
},
|
|
96
|
+
"id": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"pattern": "^KFD-[1-9][0-9]*$"
|
|
99
|
+
},
|
|
100
|
+
"number": {
|
|
101
|
+
"type": "integer",
|
|
102
|
+
"minimum": 1
|
|
103
|
+
},
|
|
104
|
+
"label": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"pattern": "^KFD-[1-9][0-9]*$"
|
|
107
|
+
},
|
|
108
|
+
"title": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"minLength": 1
|
|
111
|
+
},
|
|
112
|
+
"kind": {
|
|
113
|
+
"enum": [
|
|
114
|
+
"principle",
|
|
115
|
+
"procedure"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"status": {
|
|
119
|
+
"enum": [
|
|
120
|
+
"draft",
|
|
121
|
+
"active",
|
|
122
|
+
"superseded"
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
"revision": {
|
|
126
|
+
"type": "integer",
|
|
127
|
+
"minimum": 1
|
|
128
|
+
},
|
|
129
|
+
"metadataSchemaVersion": {
|
|
130
|
+
"type": "string"
|
|
131
|
+
},
|
|
132
|
+
"document": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"required": [
|
|
135
|
+
"path",
|
|
136
|
+
"url"
|
|
137
|
+
],
|
|
138
|
+
"properties": {
|
|
139
|
+
"path": {
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"url": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"format": "uri"
|
|
145
|
+
},
|
|
146
|
+
"sha256": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"additionalProperties": false
|
|
152
|
+
},
|
|
153
|
+
"compatibility": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"required": [
|
|
156
|
+
"packageLine",
|
|
157
|
+
"registrySchemaVersion",
|
|
158
|
+
"metadataSchemaVersion",
|
|
159
|
+
"rule"
|
|
160
|
+
],
|
|
161
|
+
"properties": {
|
|
162
|
+
"packageLine": {
|
|
163
|
+
"type": "string"
|
|
164
|
+
},
|
|
165
|
+
"registrySchemaVersion": {
|
|
166
|
+
"type": "integer",
|
|
167
|
+
"minimum": 1
|
|
168
|
+
},
|
|
169
|
+
"metadataSchemaVersion": {
|
|
170
|
+
"type": "string"
|
|
171
|
+
},
|
|
172
|
+
"rule": {
|
|
173
|
+
"type": "string"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"additionalProperties": false
|
|
177
|
+
},
|
|
178
|
+
"schemaIds": {
|
|
179
|
+
"type": "object",
|
|
180
|
+
"minProperties": 1,
|
|
181
|
+
"additionalProperties": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"format": "uri"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"schemaPaths": {
|
|
187
|
+
"type": "object",
|
|
188
|
+
"minProperties": 1,
|
|
189
|
+
"additionalProperties": {
|
|
190
|
+
"type": "string"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"interfaces": {
|
|
194
|
+
"type": "object",
|
|
195
|
+
"additionalProperties": {
|
|
196
|
+
"type": "object",
|
|
197
|
+
"required": [
|
|
198
|
+
"contract",
|
|
199
|
+
"schemaVersion",
|
|
200
|
+
"schemaId",
|
|
201
|
+
"schemaPath"
|
|
202
|
+
],
|
|
203
|
+
"properties": {
|
|
204
|
+
"contract": {
|
|
205
|
+
"type": "string",
|
|
206
|
+
"minLength": 1
|
|
207
|
+
},
|
|
208
|
+
"schemaVersion": {
|
|
209
|
+
"type": "integer",
|
|
210
|
+
"minimum": 1
|
|
211
|
+
},
|
|
212
|
+
"schemaId": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"format": "uri"
|
|
215
|
+
},
|
|
216
|
+
"schemaPath": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"minLength": 1
|
|
219
|
+
},
|
|
220
|
+
"compatibilityRule": {
|
|
221
|
+
"type": "string",
|
|
222
|
+
"minLength": 1
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"additionalProperties": false
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"concepts": {
|
|
229
|
+
"type": "object",
|
|
230
|
+
"minProperties": 1,
|
|
231
|
+
"additionalProperties": {
|
|
232
|
+
"type": "string"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"additionalProperties": false
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
package/standards.json
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kfd-standards-metadata",
|
|
4
|
+
"metadataSchema": {
|
|
5
|
+
"id": "https://kfd.libkungfu.dev/schemas/kfd-standards.schema.json",
|
|
6
|
+
"path": "schemas/kfd-standards.schema.json",
|
|
7
|
+
"version": "1"
|
|
8
|
+
},
|
|
9
|
+
"source": {
|
|
10
|
+
"package": "@kungfu-tech/kfd",
|
|
11
|
+
"registry": "registry.json",
|
|
12
|
+
"decisionsDir": "decisions"
|
|
13
|
+
},
|
|
14
|
+
"standards": {
|
|
15
|
+
"kfd-1": {
|
|
16
|
+
"key": "kfd-1",
|
|
17
|
+
"id": "KFD-1",
|
|
18
|
+
"number": 1,
|
|
19
|
+
"label": "KFD-1",
|
|
20
|
+
"title": "Contracts must not drift: contract worlds need one fact source",
|
|
21
|
+
"kind": "procedure",
|
|
22
|
+
"status": "active",
|
|
23
|
+
"revision": 1,
|
|
24
|
+
"metadataSchemaVersion": "1",
|
|
25
|
+
"document": {
|
|
26
|
+
"path": "decisions/kfd-1.md",
|
|
27
|
+
"url": "https://kfd.libkungfu.dev/1",
|
|
28
|
+
"sha256": "2ef7438b0737009d36da248d2ecec5f788d46a93b184efadf5e2e31ca20254f0"
|
|
29
|
+
},
|
|
30
|
+
"compatibility": {
|
|
31
|
+
"packageLine": "v1.0",
|
|
32
|
+
"registrySchemaVersion": 1,
|
|
33
|
+
"metadataSchemaVersion": "1",
|
|
34
|
+
"rule": "Substantive semantic changes mint a new KFD; compatible metadata additions keep schemaVersion 1."
|
|
35
|
+
},
|
|
36
|
+
"schemaIds": {
|
|
37
|
+
"metadata": "https://kfd.libkungfu.dev/schemas/kfd-standards.schema.json",
|
|
38
|
+
"contractWorld": "https://kfd.libkungfu.dev/schemas/kfd-1/contract-world.schema.json",
|
|
39
|
+
"witness": "https://kfd.libkungfu.dev/schemas/kfd-1/witness.schema.json"
|
|
40
|
+
},
|
|
41
|
+
"schemaPaths": {
|
|
42
|
+
"metadata": "schemas/kfd-standards.schema.json",
|
|
43
|
+
"contractWorld": "schemas/kfd-1/contract-world.schema.json",
|
|
44
|
+
"witness": "schemas/kfd-1/witness.schema.json"
|
|
45
|
+
},
|
|
46
|
+
"interfaces": {
|
|
47
|
+
"contractWorld": {
|
|
48
|
+
"contract": "kfd-1-contract-world",
|
|
49
|
+
"schemaVersion": 1,
|
|
50
|
+
"schemaId": "https://kfd.libkungfu.dev/schemas/kfd-1/contract-world.schema.json",
|
|
51
|
+
"schemaPath": "schemas/kfd-1/contract-world.schema.json",
|
|
52
|
+
"compatibilityRule": "Compatible additions may keep schemaVersion 1; semantic or required-field changes require a new interface version or contract."
|
|
53
|
+
},
|
|
54
|
+
"witness": {
|
|
55
|
+
"contract": "kfd-1-witness",
|
|
56
|
+
"schemaVersion": 1,
|
|
57
|
+
"schemaId": "https://kfd.libkungfu.dev/schemas/kfd-1/witness.schema.json",
|
|
58
|
+
"schemaPath": "schemas/kfd-1/witness.schema.json",
|
|
59
|
+
"compatibilityRule": "Compatible additions may keep schemaVersion 1; semantic or required-field changes require a new interface version or contract."
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"concepts": {
|
|
63
|
+
"factSource": "fact source",
|
|
64
|
+
"contractWorld": "contract world",
|
|
65
|
+
"weldedSurfaceRegister": "welded-surface register",
|
|
66
|
+
"witness": "contract witness"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"kfd-2": {
|
|
70
|
+
"key": "kfd-2",
|
|
71
|
+
"id": "KFD-2",
|
|
72
|
+
"number": 2,
|
|
73
|
+
"label": "KFD-2",
|
|
74
|
+
"title": "Trust must start from facts: responsibility must be inspectable",
|
|
75
|
+
"kind": "principle",
|
|
76
|
+
"status": "active",
|
|
77
|
+
"revision": 1,
|
|
78
|
+
"metadataSchemaVersion": "1",
|
|
79
|
+
"document": {
|
|
80
|
+
"path": "decisions/kfd-2.md",
|
|
81
|
+
"url": "https://kfd.libkungfu.dev/2",
|
|
82
|
+
"sha256": "b8be7b7526dcec9ea501998056c55f546492abc4eb63484a9bb8856eb434b710"
|
|
83
|
+
},
|
|
84
|
+
"compatibility": {
|
|
85
|
+
"packageLine": "v1.0",
|
|
86
|
+
"registrySchemaVersion": 1,
|
|
87
|
+
"metadataSchemaVersion": "1",
|
|
88
|
+
"rule": "Substantive semantic changes mint a new KFD; compatible metadata additions keep schemaVersion 1."
|
|
89
|
+
},
|
|
90
|
+
"schemaIds": {
|
|
91
|
+
"metadata": "https://kfd.libkungfu.dev/schemas/kfd-standards.schema.json",
|
|
92
|
+
"releaseClaims": "https://kfd.libkungfu.dev/schemas/kfd-2/release-claims.schema.json",
|
|
93
|
+
"releaseTrustPassport": "https://kfd.libkungfu.dev/schemas/kfd-2/release-trust-passport.schema.json"
|
|
94
|
+
},
|
|
95
|
+
"schemaPaths": {
|
|
96
|
+
"metadata": "schemas/kfd-standards.schema.json",
|
|
97
|
+
"releaseClaims": "schemas/kfd-2/release-claims.schema.json",
|
|
98
|
+
"releaseTrustPassport": "schemas/kfd-2/release-trust-passport.schema.json"
|
|
99
|
+
},
|
|
100
|
+
"interfaces": {
|
|
101
|
+
"releaseClaims": {
|
|
102
|
+
"contract": "kfd-2-release-claims",
|
|
103
|
+
"schemaVersion": 1,
|
|
104
|
+
"schemaId": "https://kfd.libkungfu.dev/schemas/kfd-2/release-claims.schema.json",
|
|
105
|
+
"schemaPath": "schemas/kfd-2/release-claims.schema.json",
|
|
106
|
+
"compatibilityRule": "Compatible additions may keep schemaVersion 1; semantic or required-field changes require a new interface version or contract."
|
|
107
|
+
},
|
|
108
|
+
"releaseTrustPassport": {
|
|
109
|
+
"contract": "kfd-2-release-trust-passport",
|
|
110
|
+
"schemaVersion": 1,
|
|
111
|
+
"schemaId": "https://kfd.libkungfu.dev/schemas/kfd-2/release-trust-passport.schema.json",
|
|
112
|
+
"schemaPath": "schemas/kfd-2/release-trust-passport.schema.json",
|
|
113
|
+
"compatibilityRule": "Compatible additions may keep schemaVersion 1; semantic or required-field changes require a new interface version or contract."
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"concepts": {
|
|
117
|
+
"facts": "inspectable facts",
|
|
118
|
+
"releaseClaim": "release claim",
|
|
119
|
+
"releaseClaims": "release claims",
|
|
120
|
+
"evidenceBinding": "evidence binding",
|
|
121
|
+
"auditBoundary": "audit boundary",
|
|
122
|
+
"residualRisk": "residual risk",
|
|
123
|
+
"releaseTrustPassport": "release trust passport",
|
|
124
|
+
"responsibilityState": "responsibility state",
|
|
125
|
+
"trust": "trust from facts"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"kfd-3": {
|
|
129
|
+
"key": "kfd-3",
|
|
130
|
+
"id": "KFD-3",
|
|
131
|
+
"number": 3,
|
|
132
|
+
"label": "KFD-3",
|
|
133
|
+
"title": "Cooperation must start from transparent value: compliance must not be coerced",
|
|
134
|
+
"kind": "principle",
|
|
135
|
+
"status": "active",
|
|
136
|
+
"revision": 1,
|
|
137
|
+
"metadataSchemaVersion": "1",
|
|
138
|
+
"document": {
|
|
139
|
+
"path": "decisions/kfd-3.md",
|
|
140
|
+
"url": "https://kfd.libkungfu.dev/3",
|
|
141
|
+
"sha256": "e329bef41ab5cb689346333df317b39918ea1016424a872e438eea8090070b96"
|
|
142
|
+
},
|
|
143
|
+
"compatibility": {
|
|
144
|
+
"packageLine": "v1.0",
|
|
145
|
+
"registrySchemaVersion": 1,
|
|
146
|
+
"metadataSchemaVersion": "1",
|
|
147
|
+
"rule": "Substantive semantic changes mint a new KFD; compatible metadata additions keep schemaVersion 1."
|
|
148
|
+
},
|
|
149
|
+
"schemaIds": {
|
|
150
|
+
"metadata": "https://kfd.libkungfu.dev/schemas/kfd-standards.schema.json",
|
|
151
|
+
"collaborationInterface": "https://kfd.libkungfu.dev/schemas/kfd-3/collaboration-interface.schema.json",
|
|
152
|
+
"witness": "https://kfd.libkungfu.dev/schemas/kfd-3/witness.schema.json"
|
|
153
|
+
},
|
|
154
|
+
"schemaPaths": {
|
|
155
|
+
"metadata": "schemas/kfd-standards.schema.json",
|
|
156
|
+
"collaborationInterface": "schemas/kfd-3/collaboration-interface.schema.json",
|
|
157
|
+
"witness": "schemas/kfd-3/witness.schema.json"
|
|
158
|
+
},
|
|
159
|
+
"interfaces": {
|
|
160
|
+
"collaborationInterface": {
|
|
161
|
+
"contract": "kfd-3-collaboration-interface",
|
|
162
|
+
"schemaVersion": 1,
|
|
163
|
+
"schemaId": "https://kfd.libkungfu.dev/schemas/kfd-3/collaboration-interface.schema.json",
|
|
164
|
+
"schemaPath": "schemas/kfd-3/collaboration-interface.schema.json",
|
|
165
|
+
"compatibilityRule": "Compatible additions may keep schemaVersion 1; semantic or required-field changes require a new interface version or contract."
|
|
166
|
+
},
|
|
167
|
+
"witness": {
|
|
168
|
+
"contract": "kfd-3-witness",
|
|
169
|
+
"schemaVersion": 1,
|
|
170
|
+
"schemaId": "https://kfd.libkungfu.dev/schemas/kfd-3/witness.schema.json",
|
|
171
|
+
"schemaPath": "schemas/kfd-3/witness.schema.json",
|
|
172
|
+
"compatibilityRule": "Compatible additions may keep schemaVersion 1; semantic or required-field changes require a new interface version or contract."
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"concepts": {
|
|
176
|
+
"transparentValue": "transparent value",
|
|
177
|
+
"stableChoice": "stable choice",
|
|
178
|
+
"explainableConstraints": "explainable constraints",
|
|
179
|
+
"nonCoercion": "non-coercive cooperation",
|
|
180
|
+
"participant": "participant",
|
|
181
|
+
"collaborationInterface": "collaboration interface",
|
|
182
|
+
"minimalEntrypoint": "minimal entrypoint",
|
|
183
|
+
"discoverability": "discoverability",
|
|
184
|
+
"closure": "closed-world interface classification",
|
|
185
|
+
"choicePath": "choice path"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|