@kungfu-tech/kfd 1.0.0-alpha.16 → 1.0.0-alpha.17
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 +14 -14
- package/.buildchain/kfd-2/public-release-trust.claim.json +12 -12
- package/.buildchain/kfd-3/collaboration-interface.artifact.json +21 -21
- package/.buildchain/kfd-3/collaboration-interface.prebuild.json +7 -7
- package/README.md +13 -4
- package/kfd.release.json +1 -1
- package/package.json +1 -1
- package/release-impact.json +2 -2
- package/scripts/check.mjs +5 -1
- package/scripts/update-site-bundle.mjs +10 -2
- package/site/kfd-site.json +13 -4
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
{
|
|
25
25
|
"name": "readme",
|
|
26
26
|
"sourcePath": "README.md",
|
|
27
|
-
"sourceSha256": "
|
|
27
|
+
"sourceSha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0",
|
|
28
28
|
"artifactPath": "README.md",
|
|
29
|
-
"expectedSha256": "
|
|
29
|
+
"expectedSha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0",
|
|
30
30
|
"byteForByte": true
|
|
31
31
|
},
|
|
32
32
|
{
|
|
@@ -136,9 +136,9 @@
|
|
|
136
136
|
{
|
|
137
137
|
"name": "kfd-site-bundle",
|
|
138
138
|
"sourcePath": "site/kfd-site.json",
|
|
139
|
-
"sourceSha256": "
|
|
139
|
+
"sourceSha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858",
|
|
140
140
|
"artifactPath": "site/kfd-site.json",
|
|
141
|
-
"expectedSha256": "
|
|
141
|
+
"expectedSha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858",
|
|
142
142
|
"byteForByte": true
|
|
143
143
|
},
|
|
144
144
|
{
|
|
@@ -168,17 +168,17 @@
|
|
|
168
168
|
{
|
|
169
169
|
"name": "release-impact-ledger",
|
|
170
170
|
"sourcePath": "release-impact.json",
|
|
171
|
-
"sourceSha256": "
|
|
171
|
+
"sourceSha256": "d37ade8106d5cfc989f824204625874290e06a448b19d52b4f74ecb140508baa",
|
|
172
172
|
"artifactPath": "release-impact.json",
|
|
173
|
-
"expectedSha256": "
|
|
173
|
+
"expectedSha256": "d37ade8106d5cfc989f824204625874290e06a448b19d52b4f74ecb140508baa",
|
|
174
174
|
"byteForByte": true
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"name": "kfd-check-gate",
|
|
178
178
|
"sourcePath": "scripts/check.mjs",
|
|
179
|
-
"sourceSha256": "
|
|
179
|
+
"sourceSha256": "5932ea07903e8bdd902791c7d6eb7d4f1054594b06ddd382aee2bd411b082669",
|
|
180
180
|
"artifactPath": "scripts/check.mjs",
|
|
181
|
-
"expectedSha256": "
|
|
181
|
+
"expectedSha256": "5932ea07903e8bdd902791c7d6eb7d4f1054594b06ddd382aee2bd411b082669",
|
|
182
182
|
"byteForByte": true
|
|
183
183
|
},
|
|
184
184
|
{
|
|
@@ -224,25 +224,25 @@
|
|
|
224
224
|
{
|
|
225
225
|
"name": "kfd-package-manifest",
|
|
226
226
|
"sourcePath": "package.json",
|
|
227
|
-
"sourceSha256": "
|
|
227
|
+
"sourceSha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
228
228
|
"artifactPath": "package.json",
|
|
229
|
-
"expectedSha256": "
|
|
229
|
+
"expectedSha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
230
230
|
"byteForByte": true
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"name": "kfd-release-anchor",
|
|
234
234
|
"sourcePath": "kfd.release.json",
|
|
235
|
-
"sourceSha256": "
|
|
235
|
+
"sourceSha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6",
|
|
236
236
|
"artifactPath": "kfd.release.json",
|
|
237
|
-
"expectedSha256": "
|
|
237
|
+
"expectedSha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6",
|
|
238
238
|
"byteForByte": true
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
"name": "kfd-2-public-release-trust-claim",
|
|
242
242
|
"sourcePath": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
243
|
-
"sourceSha256": "
|
|
243
|
+
"sourceSha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966",
|
|
244
244
|
"artifactPath": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
245
|
-
"expectedSha256": "
|
|
245
|
+
"expectedSha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966",
|
|
246
246
|
"byteForByte": true
|
|
247
247
|
}
|
|
248
248
|
]
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"sourceBindings": [
|
|
6
6
|
{
|
|
7
7
|
"path": "package.json",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
9
9
|
"id": "package-version-and-exports"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"path": "kfd.release.json",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6",
|
|
14
14
|
"id": "anchored-release-version"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
"path": "release-impact.json",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "d37ade8106d5cfc989f824204625874290e06a448b19d52b4f74ecb140508baa",
|
|
29
29
|
"id": "release-impact-ledger"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"machineEvidence": [
|
|
38
38
|
{
|
|
39
39
|
"path": "scripts/check.mjs",
|
|
40
|
-
"sha256": "
|
|
40
|
+
"sha256": "5932ea07903e8bdd902791c7d6eb7d4f1054594b06ddd382aee2bd411b082669",
|
|
41
41
|
"id": "self-verification-command"
|
|
42
42
|
},
|
|
43
43
|
{
|
|
@@ -67,13 +67,13 @@
|
|
|
67
67
|
}
|
|
68
68
|
],
|
|
69
69
|
"hashes": {
|
|
70
|
-
"package-version-and-exports": "
|
|
71
|
-
"anchored-release-version": "
|
|
70
|
+
"package-version-and-exports": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
71
|
+
"anchored-release-version": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6",
|
|
72
72
|
"decision-registry": "15f58f95ab1d42972206399b2e2b2e9268ab20fcdb599098e2822097ee84a8db",
|
|
73
73
|
"standards-metadata": "7cd61143eabec5b83c5ba37312d791935f2321d246f61bec790c4a6d5d4cf839",
|
|
74
|
-
"release-impact-ledger": "
|
|
74
|
+
"release-impact-ledger": "d37ade8106d5cfc989f824204625874290e06a448b19d52b4f74ecb140508baa",
|
|
75
75
|
"buildchain-release-contract": "0dc1179d59b634df364871ea18a66251781321c80a6f7bcb9e3fcf5a48ef738a",
|
|
76
|
-
"self-verification-command": "
|
|
76
|
+
"self-verification-command": "5932ea07903e8bdd902791c7d6eb7d4f1054594b06ddd382aee2bd411b082669",
|
|
77
77
|
"buildchain-build-workflow": "02606915b1d3b3006e6c2e0b7977d7329c9f2ace12319c097d413aa93a7c39c6",
|
|
78
78
|
"buildchain-promotion-workflow": "0e0afb510b9a59ed771b17a3671301f02fa8abe85c1562a1013988a0e835b251",
|
|
79
79
|
"kfd-2-trust-taxonomy-schema": "a663d301a663cadb8567e3010361f5a630b76b6518ed7603dfd58cbd4e64a658",
|
|
@@ -83,15 +83,15 @@
|
|
|
83
83
|
"artifacts": [
|
|
84
84
|
{
|
|
85
85
|
"name": "@kungfu-tech/kfd",
|
|
86
|
-
"version": "1.0.0-alpha.
|
|
86
|
+
"version": "1.0.0-alpha.17",
|
|
87
87
|
"path": "package.json",
|
|
88
|
-
"sha256": "
|
|
88
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"name": "kfd-release-anchor",
|
|
92
|
-
"version": "1.0.0-alpha.
|
|
92
|
+
"version": "1.0.0-alpha.17",
|
|
93
93
|
"path": "kfd.release.json",
|
|
94
|
-
"sha256": "
|
|
94
|
+
"sha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6"
|
|
95
95
|
}
|
|
96
96
|
],
|
|
97
97
|
"verification": {
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
{
|
|
244
244
|
"id": "doc:readme",
|
|
245
245
|
"sourcePath": "README.md",
|
|
246
|
-
"sha256": "
|
|
246
|
+
"sha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0"
|
|
247
247
|
},
|
|
248
248
|
{
|
|
249
249
|
"id": "doc:trademarks",
|
|
@@ -337,36 +337,36 @@
|
|
|
337
337
|
{
|
|
338
338
|
"id": "metadata:release-impact",
|
|
339
339
|
"sourcePath": "release-impact.json",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "d37ade8106d5cfc989f824204625874290e06a448b19d52b4f74ecb140508baa"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"id": "metadata:release-anchor",
|
|
344
344
|
"sourcePath": "kfd.release.json",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6"
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
"id": "metadata:kfd-2-public-release-trust-claim",
|
|
349
349
|
"sourcePath": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
350
|
-
"sha256": "
|
|
350
|
+
"sha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966"
|
|
351
351
|
}
|
|
352
352
|
],
|
|
353
353
|
"packageExports": [
|
|
354
354
|
{
|
|
355
355
|
"id": "export:package-json",
|
|
356
356
|
"sourcePath": "package.json#exports",
|
|
357
|
-
"sha256": "
|
|
357
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df"
|
|
358
358
|
},
|
|
359
359
|
{
|
|
360
360
|
"id": "export:npm-files",
|
|
361
361
|
"sourcePath": "package.json#files",
|
|
362
|
-
"sha256": "
|
|
362
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df"
|
|
363
363
|
}
|
|
364
364
|
],
|
|
365
365
|
"siteConsumptionContracts": [
|
|
366
366
|
{
|
|
367
367
|
"id": "site:kfd-site-bundle",
|
|
368
368
|
"sourcePath": "site/kfd-site.json",
|
|
369
|
-
"sha256": "
|
|
369
|
+
"sha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858"
|
|
370
370
|
},
|
|
371
371
|
{
|
|
372
372
|
"id": "site:release-propagation",
|
|
@@ -378,7 +378,7 @@
|
|
|
378
378
|
"minimalEntrypoints": [
|
|
379
379
|
{
|
|
380
380
|
"path": "README.md",
|
|
381
|
-
"sha256": "
|
|
381
|
+
"sha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0",
|
|
382
382
|
"description": "Start from the KFD worldview and current decision set."
|
|
383
383
|
},
|
|
384
384
|
{
|
|
@@ -403,29 +403,29 @@
|
|
|
403
403
|
},
|
|
404
404
|
{
|
|
405
405
|
"path": "package.json#exports",
|
|
406
|
-
"sha256": "
|
|
406
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
407
407
|
"description": "Consume the shipped npm package surfaces."
|
|
408
408
|
},
|
|
409
409
|
{
|
|
410
410
|
"path": "kfd.release.json",
|
|
411
|
-
"sha256": "
|
|
411
|
+
"sha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6",
|
|
412
412
|
"description": "Inspect the explicit KFD package version anchor for the current Buildchain release line."
|
|
413
413
|
},
|
|
414
414
|
{
|
|
415
415
|
"path": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
416
|
-
"sha256": "
|
|
416
|
+
"sha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966",
|
|
417
417
|
"description": "Inspect the explicit public KFD-2 claim passed into Buildchain release passport generation."
|
|
418
418
|
},
|
|
419
419
|
{
|
|
420
420
|
"path": "site/kfd-site.json",
|
|
421
|
-
"sha256": "
|
|
421
|
+
"sha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858",
|
|
422
422
|
"description": "Render KFD-owned site text and decision pages without duplicating extraction logic."
|
|
423
423
|
}
|
|
424
424
|
],
|
|
425
425
|
"discoverability": [
|
|
426
426
|
{
|
|
427
427
|
"path": "README.md",
|
|
428
|
-
"sha256": "
|
|
428
|
+
"sha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0",
|
|
429
429
|
"description": "Human and agent entrypoint"
|
|
430
430
|
},
|
|
431
431
|
{
|
|
@@ -450,17 +450,17 @@
|
|
|
450
450
|
},
|
|
451
451
|
{
|
|
452
452
|
"path": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
453
|
-
"sha256": "
|
|
453
|
+
"sha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966",
|
|
454
454
|
"description": "KFD-2 public release trust claim"
|
|
455
455
|
},
|
|
456
456
|
{
|
|
457
457
|
"path": "package.json",
|
|
458
|
-
"sha256": "
|
|
458
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
459
459
|
"description": "Package export map"
|
|
460
460
|
},
|
|
461
461
|
{
|
|
462
462
|
"path": "site/kfd-site.json",
|
|
463
|
-
"sha256": "
|
|
463
|
+
"sha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858",
|
|
464
464
|
"description": "Site content projection"
|
|
465
465
|
}
|
|
466
466
|
],
|
|
@@ -477,19 +477,19 @@
|
|
|
477
477
|
},
|
|
478
478
|
{
|
|
479
479
|
"path": "scripts/check.mjs",
|
|
480
|
-
"sha256": "
|
|
480
|
+
"sha256": "5932ea07903e8bdd902791c7d6eb7d4f1054594b06ddd382aee2bd411b082669",
|
|
481
481
|
"description": "Repository self-verification gate"
|
|
482
482
|
},
|
|
483
483
|
{
|
|
484
484
|
"path": "site/kfd-site.json",
|
|
485
|
-
"sha256": "
|
|
485
|
+
"sha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858",
|
|
486
486
|
"description": "Site rendering boundary"
|
|
487
487
|
}
|
|
488
488
|
],
|
|
489
489
|
"choicePaths": [
|
|
490
490
|
{
|
|
491
491
|
"path": "README.md",
|
|
492
|
-
"sha256": "
|
|
492
|
+
"sha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0",
|
|
493
493
|
"description": "Human reading path"
|
|
494
494
|
},
|
|
495
495
|
{
|
|
@@ -504,12 +504,12 @@
|
|
|
504
504
|
},
|
|
505
505
|
{
|
|
506
506
|
"path": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
507
|
-
"sha256": "
|
|
507
|
+
"sha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966",
|
|
508
508
|
"description": "Agent release trust claim path"
|
|
509
509
|
},
|
|
510
510
|
{
|
|
511
511
|
"path": "package.json",
|
|
512
|
-
"sha256": "
|
|
512
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df",
|
|
513
513
|
"description": "Package consumption path"
|
|
514
514
|
}
|
|
515
515
|
],
|
|
@@ -725,7 +725,7 @@
|
|
|
725
725
|
{
|
|
726
726
|
"id": "doc:readme",
|
|
727
727
|
"sourcePath": "README.md",
|
|
728
|
-
"sha256": "
|
|
728
|
+
"sha256": "67f965f48399b79d4caa0bcad45ba7db152ca8fa1e45b149e03af1656ab04ca0"
|
|
729
729
|
},
|
|
730
730
|
{
|
|
731
731
|
"id": "doc:trademarks",
|
|
@@ -819,36 +819,36 @@
|
|
|
819
819
|
{
|
|
820
820
|
"id": "metadata:release-impact",
|
|
821
821
|
"sourcePath": "release-impact.json",
|
|
822
|
-
"sha256": "
|
|
822
|
+
"sha256": "d37ade8106d5cfc989f824204625874290e06a448b19d52b4f74ecb140508baa"
|
|
823
823
|
},
|
|
824
824
|
{
|
|
825
825
|
"id": "metadata:release-anchor",
|
|
826
826
|
"sourcePath": "kfd.release.json",
|
|
827
|
-
"sha256": "
|
|
827
|
+
"sha256": "8ac38cf084ab11875d35ad6d374290c2fe13623ae754521b63a391d3a585f8a6"
|
|
828
828
|
},
|
|
829
829
|
{
|
|
830
830
|
"id": "metadata:kfd-2-public-release-trust-claim",
|
|
831
831
|
"sourcePath": ".buildchain/kfd-2/public-release-trust.claim.json",
|
|
832
|
-
"sha256": "
|
|
832
|
+
"sha256": "cb4a3318e41c245d98006af69922cfd26362efd10bf3e68c2c27755d02fe2966"
|
|
833
833
|
}
|
|
834
834
|
],
|
|
835
835
|
"packageExports": [
|
|
836
836
|
{
|
|
837
837
|
"id": "export:package-json",
|
|
838
838
|
"sourcePath": "package.json#exports",
|
|
839
|
-
"sha256": "
|
|
839
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df"
|
|
840
840
|
},
|
|
841
841
|
{
|
|
842
842
|
"id": "export:npm-files",
|
|
843
843
|
"sourcePath": "package.json#files",
|
|
844
|
-
"sha256": "
|
|
844
|
+
"sha256": "cc4b8e004dc29da74f101c2f01b41c3eb896f549f0054d4bbceee280939125df"
|
|
845
845
|
}
|
|
846
846
|
],
|
|
847
847
|
"siteConsumptionContracts": [
|
|
848
848
|
{
|
|
849
849
|
"id": "site:kfd-site-bundle",
|
|
850
850
|
"sourcePath": "site/kfd-site.json",
|
|
851
|
-
"sha256": "
|
|
851
|
+
"sha256": "cff9e091a9501e8a5e1f43eac8e48b8a41dbe70ffa5a3347b2353e0d8fa80858"
|
|
852
852
|
},
|
|
853
853
|
{
|
|
854
854
|
"id": "site:release-propagation",
|
package/README.md
CHANGED
|
@@ -75,6 +75,16 @@ transparent and inspectable mechanisms it asks products to provide.
|
|
|
75
75
|
This README states the architecture; KFD-1, KFD-2, and KFD-3 provide the
|
|
76
76
|
detailed rules.
|
|
77
77
|
|
|
78
|
+
## Adoption boundary
|
|
79
|
+
|
|
80
|
+
KFD is an engineering discipline, not a belief test.
|
|
81
|
+
KFD governs systems before it judges people.
|
|
82
|
+
No one should be pressured to adopt KFD in the name of KFD.
|
|
83
|
+
Disagreement is a valid cooperation state.
|
|
84
|
+
|
|
85
|
+
A constraint can be strict and still KFD-compatible when it is fact-bound,
|
|
86
|
+
explainable, auditable, and proportionate.
|
|
87
|
+
|
|
78
88
|
## Homepage content contract
|
|
79
89
|
|
|
80
90
|
This README is also the homepage text source for `https://kfd.libkungfu.dev`.
|
|
@@ -104,10 +114,9 @@ separate homepage wording that can drift from this package.
|
|
|
104
114
|
`scripts/update-site-bundle.mjs`. The generated bundle exposes both compatible
|
|
105
115
|
top-level homepage fields and ordered `homepage.sections` entries. The
|
|
106
116
|
`homepage.displayPlan` tells renderers which sections belong in the first
|
|
107
|
-
screen, primary narrative, support area
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
metadata, not as ordinary homepage content.
|
|
117
|
+
screen, primary narrative, and support area. Site repositories should consume
|
|
118
|
+
that bundle instead of parsing this README themselves. The renderer contract is
|
|
119
|
+
exposed as machine/implementation metadata, not as ordinary homepage content.
|
|
111
120
|
|
|
112
121
|
## Product proof path
|
|
113
122
|
|
package/kfd.release.json
CHANGED
package/package.json
CHANGED
package/release-impact.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"id": "kfd-content",
|
|
17
17
|
"impact": "patch",
|
|
18
18
|
"class": "content",
|
|
19
|
-
"rationale": "KFD documents are append-only content coordinates; current documentation changes
|
|
19
|
+
"rationale": "KFD documents are append-only content coordinates; current documentation changes add the public adoption boundary that keeps KFD an engineering discipline rather than a belief test, while preserving the existing decision numbers and registry shape."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"id": "kfd-registry-schema",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"id": "kfd-site-homepage-bundle",
|
|
41
41
|
"impact": "minor",
|
|
42
42
|
"class": "additive",
|
|
43
|
-
"rationale": "site/kfd-site.json now exposes generated README-backed homepage.sections and homepage.displayPlan fields, and scripts/check.mjs verifies the checked-in bundle matches the README projection so downstream sites can render KFD-owned homepage content without maintaining their own README parser or drifting copy."
|
|
43
|
+
"rationale": "site/kfd-site.json now exposes generated README-backed homepage.sections and homepage.displayPlan fields, including the adoption-boundary homepage section, and scripts/check.mjs verifies the checked-in bundle matches the README projection so downstream sites can render KFD-owned homepage content without maintaining their own README parser or drifting copy."
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"id": "kfd-3-self-collaboration",
|
package/scripts/check.mjs
CHANGED
|
@@ -76,11 +76,15 @@ if (!Array.isArray(siteBundle.homepage?.sections) || siteBundle.homepage.section
|
|
|
76
76
|
if (!siteBundle.homepage?.displayPlan?.firstScreen?.include?.includes("foundation-triad")) {
|
|
77
77
|
fail("site bundle homepage displayPlan firstScreen must include foundation-triad");
|
|
78
78
|
}
|
|
79
|
-
for (const requiredSection of ["foundation-triad", "foundation-model", "product-proof-path", "agent-quickstart", "decision-metadata"]) {
|
|
79
|
+
for (const requiredSection of ["foundation-triad", "foundation-model", "adoption-boundary", "product-proof-path", "agent-quickstart", "decision-metadata"]) {
|
|
80
80
|
if (!siteBundle.homepage.sections.some((entry) => entry.id === requiredSection && entry.sourcePath === "README.md" && entry.markdown)) {
|
|
81
81
|
fail(`site bundle homepage.sections must include README projection ${requiredSection}`);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
+
const adoptionBoundary = siteBundle.homepage.sections.find((entry) => entry.id === "adoption-boundary");
|
|
85
|
+
if (adoptionBoundary?.includeInFirstScreen !== false || adoptionBoundary?.renderRole !== "primary") {
|
|
86
|
+
fail("site bundle adoption-boundary must be primary content outside the first screen");
|
|
87
|
+
}
|
|
84
88
|
if (siteBundle.homepage.sections.some((entry) => entry.id === "homepage-content-contract")) {
|
|
85
89
|
fail("site bundle homepage.sections must not render the renderer contract as homepage content");
|
|
86
90
|
}
|
|
@@ -139,6 +139,15 @@ export const buildSiteBundle = ({ readmeText, registry }) => {
|
|
|
139
139
|
presentation: "layered-model",
|
|
140
140
|
firstScreen: true,
|
|
141
141
|
}),
|
|
142
|
+
section({
|
|
143
|
+
id: "adoption-boundary",
|
|
144
|
+
sourceHeading: "Adoption boundary",
|
|
145
|
+
title: "Adoption boundary",
|
|
146
|
+
markdown: readme.sections["Adoption boundary"],
|
|
147
|
+
role: "primary",
|
|
148
|
+
priority: 25,
|
|
149
|
+
presentation: "boundary-note",
|
|
150
|
+
}),
|
|
142
151
|
section({
|
|
143
152
|
id: "product-proof-path",
|
|
144
153
|
sourceHeading: "Product proof path",
|
|
@@ -201,9 +210,8 @@ export const buildSiteBundle = ({ readmeText, registry }) => {
|
|
|
201
210
|
maxPrimarySections: 2,
|
|
202
211
|
note: "The first viewport should establish KFD identity and the three-decision worldview without showing renderer or developer contract text.",
|
|
203
212
|
},
|
|
204
|
-
primary: ["foundation-triad", "foundation-model", "product-proof-path"],
|
|
213
|
+
primary: ["foundation-triad", "foundation-model", "adoption-boundary", "product-proof-path"],
|
|
205
214
|
support: ["agent-quickstart", "decision-metadata"],
|
|
206
|
-
rendererContract: ["homepage-content-contract"],
|
|
207
215
|
currentDecisions: {
|
|
208
216
|
source: REGISTRY_PATH,
|
|
209
217
|
placement: "after-primary",
|
package/site/kfd-site.json
CHANGED
|
@@ -99,6 +99,17 @@
|
|
|
99
99
|
"includeInFirstScreen": true,
|
|
100
100
|
"markdown": "The triad is intentionally ordered. It is a compact model for surviving and\nevolving in complex systems, especially in a world where agents can observe,\nact, delegate, and remember across many surfaces.\n\n| Layer | Decision | Reader question | Commitment |\n|---|---|---|---|\n| Fact-source ontology | KFD-1 | What can count as a fact? | Facts must not drift: a load-bearing contract world comes from one declared fact source. |\n| Participant-to-object trust | KFD-2 | When can a user or agent trust a claim, product, artifact, or control surface? | Trust starts from inspectable facts and responsibility state. |\n| Participant-to-participant cooperation | KFD-3 | How should peer intelligent participants cooperate? | Cooperation starts from trusted value: value becomes trustable through transparent facts, stable choice, and explainable constraints. |\n\nIn short:\n\n```text\nnon-drifting facts -> inspectable trust -> trusted value -> voluntary cooperation\n```\n\nThis is why KFDs are not only internal governance text. KFD-1 gives the\nfoundation model its first layer by making fact sources operational: a\nfact-bearing contract world must be declared, inspectable, and unable to drift\ninvisibly. KFD-2 then defines how trust can stand on those facts. KFD-3\ndefines how humans and agents can cooperate once facts and trust are visible.\n\nReal-world agent work turns ordinary work into a dense system of products,\nfiles, repositories, traces, policies, humans, and agents. In that world,\ncomplexity cannot be made safe by hidden state or forced compliance. It has to\nbe compressed through non-drifting facts, inspectable trust, and voluntary\ncooperation. The goal is not to force increasingly capable participants into\ncompliance through stronger pressure. It is to give humans and agents a shared\nworldview for adapting to a more complex world.\n\nThis also changes what a product interface means. Agent-facing CLI, API,\ndocumentation, envelopes, and local fact surfaces are not secondary integration\nchannels after the human GUI. They are first-class interfaces for intelligent\nparticipants that may use the system more frequently than humans do. A control\nplane in this model is a shared work environment for humans and agents, not\nonly a human dashboard over agent activity.\n\nThis model used to be expensive to practice. Stable facts require engineering,\niteration, and disciplined evidence paths, so older systems often survived by\nleaning on cheaper substitutes such as authority, habit, reputation, or\nintuition. Agents change both sides of that equation: they make the world more\ncomplex, and they also provide more intelligence for building fact-bearing\nsystems. KFD is part of that bootstrap: the worldview is forged through the same\ntransparent and inspectable mechanisms it asks products to provide.\n\nThis README states the architecture; KFD-1, KFD-2, and KFD-3 provide the\ndetailed rules."
|
|
101
101
|
},
|
|
102
|
+
{
|
|
103
|
+
"id": "adoption-boundary",
|
|
104
|
+
"sourcePath": "README.md",
|
|
105
|
+
"sourceHeading": "Adoption boundary",
|
|
106
|
+
"title": "Adoption boundary",
|
|
107
|
+
"renderRole": "primary",
|
|
108
|
+
"homepagePriority": 25,
|
|
109
|
+
"defaultPresentation": "boundary-note",
|
|
110
|
+
"includeInFirstScreen": false,
|
|
111
|
+
"markdown": "KFD is an engineering discipline, not a belief test.\nKFD governs systems before it judges people.\nNo one should be pressured to adopt KFD in the name of KFD.\nDisagreement is a valid cooperation state.\n\nA constraint can be strict and still KFD-compatible when it is fact-bound,\nexplainable, auditable, and proportionate."
|
|
112
|
+
},
|
|
102
113
|
{
|
|
103
114
|
"id": "product-proof-path",
|
|
104
115
|
"sourcePath": "README.md",
|
|
@@ -147,15 +158,13 @@
|
|
|
147
158
|
"primary": [
|
|
148
159
|
"foundation-triad",
|
|
149
160
|
"foundation-model",
|
|
161
|
+
"adoption-boundary",
|
|
150
162
|
"product-proof-path"
|
|
151
163
|
],
|
|
152
164
|
"support": [
|
|
153
165
|
"agent-quickstart",
|
|
154
166
|
"decision-metadata"
|
|
155
167
|
],
|
|
156
|
-
"rendererContract": [
|
|
157
|
-
"homepage-content-contract"
|
|
158
|
-
],
|
|
159
168
|
"currentDecisions": {
|
|
160
169
|
"source": "registry.json",
|
|
161
170
|
"placement": "after-primary",
|
|
@@ -175,7 +184,7 @@
|
|
|
175
184
|
"homepagePriority": 90,
|
|
176
185
|
"defaultPresentation": "developer-note",
|
|
177
186
|
"includeInFirstScreen": false,
|
|
178
|
-
"markdown": "This README is also the homepage text source for `https://kfd.libkungfu.dev`.\nWhen `site-libkungfu-dev` consumes the `@kungfu-tech/kfd` npm package to render\nthe KFD site, it should treat this file as the canonical homepage copy, not as\nan implementation note to paraphrase in the site repository.\n\nThe first screen should be derived from this README:\n\n- Page identity: the top-level heading.\n- Lead: the opening paragraph that defines KFD as the organization-wide\n decision registry.\n- Foundation signal: the `Foundation triad` section, especially the three\n one-line commitments.\n- First-screen explanation: the beginning of `Foundation model`, ending at the\n `non-drifting facts -> inspectable trust -> trusted value -> voluntary\n cooperation` chain.\n\nDecision cards, detail links, and machine paths should come from\n`registry.json`. The machine-readable site bundle lives at `site/kfd-site.json`\nand gives renderers stable fields for the homepage, foundation model, product\nproof path, decision routes, and rendering boundary. A site renderer may adapt\nlayout, navigation, typography, and visual assets, but it should not maintain\nseparate homepage wording that can drift from this package.\n\n`site/kfd-site.json` is generated from this README by\n`scripts/update-site-bundle.mjs`. The generated bundle exposes both compatible\ntop-level homepage fields and ordered `homepage.sections` entries. The\n`homepage.displayPlan` tells renderers which sections belong in the first\nscreen, primary narrative,
|
|
187
|
+
"markdown": "This README is also the homepage text source for `https://kfd.libkungfu.dev`.\nWhen `site-libkungfu-dev` consumes the `@kungfu-tech/kfd` npm package to render\nthe KFD site, it should treat this file as the canonical homepage copy, not as\nan implementation note to paraphrase in the site repository.\n\nThe first screen should be derived from this README:\n\n- Page identity: the top-level heading.\n- Lead: the opening paragraph that defines KFD as the organization-wide\n decision registry.\n- Foundation signal: the `Foundation triad` section, especially the three\n one-line commitments.\n- First-screen explanation: the beginning of `Foundation model`, ending at the\n `non-drifting facts -> inspectable trust -> trusted value -> voluntary\n cooperation` chain.\n\nDecision cards, detail links, and machine paths should come from\n`registry.json`. The machine-readable site bundle lives at `site/kfd-site.json`\nand gives renderers stable fields for the homepage, foundation model, product\nproof path, decision routes, and rendering boundary. A site renderer may adapt\nlayout, navigation, typography, and visual assets, but it should not maintain\nseparate homepage wording that can drift from this package.\n\n`site/kfd-site.json` is generated from this README by\n`scripts/update-site-bundle.mjs`. The generated bundle exposes both compatible\ntop-level homepage fields and ordered `homepage.sections` entries. The\n`homepage.displayPlan` tells renderers which sections belong in the first\nscreen, primary narrative, and support area. Site repositories should consume\nthat bundle instead of parsing this README themselves. The renderer contract is\nexposed as machine/implementation metadata, not as ordinary homepage content.",
|
|
179
188
|
"renderAsHomepageContent": false,
|
|
180
189
|
"note": "This is a machine/renderer contract for site implementers. It should not be rendered as ordinary homepage content."
|
|
181
190
|
}
|