@kungfu-tech/buildchain 3.0.5-alpha.6 → 3.0.5-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/bin/buildchain.mjs +1 -1
- package/contracts/auditable-demo-media-profiles-v1.json +61 -0
- package/contracts/auditable-demo-scenario-v1.schema.json +153 -0
- package/contracts/evidence/auditable-demo-responsive-web-delivery-v1.json +3 -3
- package/contracts/evidence/auditable-demo-web-delivery-v1.json +3 -3
- package/dist/site/buildchain-contract.json +57 -6
- package/dist/site/buildchain-site.json +38 -22
- package/dist/site/capability-registry.json +1 -1
- package/dist/site/cli-registry.json +6 -2
- package/dist/site/kfd-claims.json +49 -9
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +3 -3
- package/dist/site/node-api-registry.json +203 -21
- package/dist/site/page-registry.json +28 -8
- package/dist/site/public-surface-audit.json +94 -6
- package/dist/site/publication-authority-registry.json +42 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +7 -7
- package/dist/site/workflow-registry.json +63 -0
- package/docs/auditable-demo.md +74 -7
- package/docs/cli-reference.md +24 -2
- package/docs/node-api-reference.md +63 -45
- package/package.json +1 -1
- package/packages/core/buildchain-contract.js +36 -1
- package/packages/core/buildchain-publication-authority.js +2 -0
- package/packages/core/release-propagation-pickup.js +386 -0
- package/packages/core/release-propagation-release.js +61 -18
- package/packages/core/release-propagation.js +12 -2
- package/scripts/auditable-demo-platform.mjs +506 -0
- package/scripts/auditable-demo-renditions.mjs +6 -1
- package/scripts/auditable-demo.mjs +14 -4
- package/scripts/build-standalone-binary.mjs +4 -0
- package/scripts/buildchain-cli-help.mjs +2 -1
- package/scripts/check-inventory.mjs +5 -0
- package/scripts/generate-site-bundle.mjs +2 -0
- package/scripts/release-propagation.mjs +77 -2
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
"status": "passed",
|
|
5
5
|
"summary": {
|
|
6
6
|
"cliCommandCount": 112,
|
|
7
|
-
"workflowCount":
|
|
7
|
+
"workflowCount": 59,
|
|
8
8
|
"actionCount": 6,
|
|
9
9
|
"sitePageCount": 63,
|
|
10
|
-
"docCommandRefCount":
|
|
10
|
+
"docCommandRefCount": 822,
|
|
11
11
|
"failureCount": 0
|
|
12
12
|
},
|
|
13
13
|
"enumerated": {
|
|
@@ -490,7 +490,7 @@
|
|
|
490
490
|
{
|
|
491
491
|
"id": "release-propagation",
|
|
492
492
|
"source": "bin/buildchain.mjs",
|
|
493
|
-
"usage": "buildchain release-propagation <plan|write-lock> ..."
|
|
493
|
+
"usage": "buildchain release-propagation <plan|write-lock|work|pickup> ..."
|
|
494
494
|
},
|
|
495
495
|
{
|
|
496
496
|
"id": "release-transaction",
|
|
@@ -800,6 +800,38 @@
|
|
|
800
800
|
"outputs": [],
|
|
801
801
|
"outputCount": 0
|
|
802
802
|
},
|
|
803
|
+
{
|
|
804
|
+
"id": ".declarative-auditable-demo",
|
|
805
|
+
"path": ".github/workflows/.declarative-auditable-demo.yml",
|
|
806
|
+
"reusable": true,
|
|
807
|
+
"inputs": [
|
|
808
|
+
"artifact-retention-days",
|
|
809
|
+
"binary-artifact-digest",
|
|
810
|
+
"binary-artifact-name",
|
|
811
|
+
"buildchain-repository",
|
|
812
|
+
"materialize",
|
|
813
|
+
"materialize-base-ref",
|
|
814
|
+
"media-profile",
|
|
815
|
+
"render-media",
|
|
816
|
+
"renderer-image",
|
|
817
|
+
"scenario-path",
|
|
818
|
+
"source-ref"
|
|
819
|
+
],
|
|
820
|
+
"inputCount": 11,
|
|
821
|
+
"secrets": [
|
|
822
|
+
"DEMO_UPDATE_TOKEN"
|
|
823
|
+
],
|
|
824
|
+
"secretCount": 1,
|
|
825
|
+
"outputs": [
|
|
826
|
+
"capture-artifact-digest",
|
|
827
|
+
"capture-artifact-name",
|
|
828
|
+
"evidence-artifact-digest",
|
|
829
|
+
"evidence-artifact-name",
|
|
830
|
+
"publication-pr-url",
|
|
831
|
+
"source-sha"
|
|
832
|
+
],
|
|
833
|
+
"outputCount": 6
|
|
834
|
+
},
|
|
803
835
|
{
|
|
804
836
|
"id": ".gate-profile",
|
|
805
837
|
"path": ".github/workflows/.gate-profile.yml",
|
|
@@ -1422,6 +1454,17 @@
|
|
|
1422
1454
|
"outputs": [],
|
|
1423
1455
|
"outputCount": 0
|
|
1424
1456
|
},
|
|
1457
|
+
{
|
|
1458
|
+
"id": "auditable-demo",
|
|
1459
|
+
"path": ".github/workflows/auditable-demo.yml",
|
|
1460
|
+
"reusable": false,
|
|
1461
|
+
"inputs": [],
|
|
1462
|
+
"inputCount": 0,
|
|
1463
|
+
"secrets": [],
|
|
1464
|
+
"secretCount": 0,
|
|
1465
|
+
"outputs": [],
|
|
1466
|
+
"outputCount": 0
|
|
1467
|
+
},
|
|
1425
1468
|
{
|
|
1426
1469
|
"id": "binary-distribution",
|
|
1427
1470
|
"path": ".github/workflows/binary-distribution.yml",
|
|
@@ -4033,6 +4076,11 @@
|
|
|
4033
4076
|
"path": "docs/lifecycle-protocol.md",
|
|
4034
4077
|
"command": "buildchain init --type infra-contract"
|
|
4035
4078
|
},
|
|
4079
|
+
{
|
|
4080
|
+
"id": "init",
|
|
4081
|
+
"path": "README.md",
|
|
4082
|
+
"command": "buildchain init --cwd"
|
|
4083
|
+
},
|
|
4036
4084
|
{
|
|
4037
4085
|
"id": "init",
|
|
4038
4086
|
"path": "README.md",
|
|
@@ -5293,6 +5341,11 @@
|
|
|
5293
5341
|
"path": "docs/kfd-support.md",
|
|
5294
5342
|
"command": "buildchain layout --cwd"
|
|
5295
5343
|
},
|
|
5344
|
+
{
|
|
5345
|
+
"id": "layout",
|
|
5346
|
+
"path": "README.md",
|
|
5347
|
+
"command": "buildchain layout --cwd"
|
|
5348
|
+
},
|
|
5296
5349
|
{
|
|
5297
5350
|
"id": "lifecycle",
|
|
5298
5351
|
"path": "docs/cli-reference.md",
|
|
@@ -6313,11 +6366,31 @@
|
|
|
6313
6366
|
"path": "docs/cli-reference.md",
|
|
6314
6367
|
"command": "buildchain release-propagation"
|
|
6315
6368
|
},
|
|
6369
|
+
{
|
|
6370
|
+
"id": "release-propagation",
|
|
6371
|
+
"path": "docs/cli-reference.md",
|
|
6372
|
+
"command": "buildchain release-propagation"
|
|
6373
|
+
},
|
|
6374
|
+
{
|
|
6375
|
+
"id": "release-propagation",
|
|
6376
|
+
"path": "docs/cli-reference.md",
|
|
6377
|
+
"command": "buildchain release-propagation"
|
|
6378
|
+
},
|
|
6316
6379
|
{
|
|
6317
6380
|
"id": "release-propagation",
|
|
6318
6381
|
"path": "docs/cli-reference.md",
|
|
6319
6382
|
"command": "buildchain release-propagation --help"
|
|
6320
6383
|
},
|
|
6384
|
+
{
|
|
6385
|
+
"id": "release-propagation",
|
|
6386
|
+
"path": "docs/cli-reference.md",
|
|
6387
|
+
"command": "buildchain release-propagation pickup"
|
|
6388
|
+
},
|
|
6389
|
+
{
|
|
6390
|
+
"id": "release-propagation",
|
|
6391
|
+
"path": "docs/cli-reference.md",
|
|
6392
|
+
"command": "buildchain release-propagation pickup --help"
|
|
6393
|
+
},
|
|
6321
6394
|
{
|
|
6322
6395
|
"id": "release-propagation",
|
|
6323
6396
|
"path": "docs/cli-reference.md",
|
|
@@ -6328,6 +6401,16 @@
|
|
|
6328
6401
|
"path": "docs/cli-reference.md",
|
|
6329
6402
|
"command": "buildchain release-propagation plan --help"
|
|
6330
6403
|
},
|
|
6404
|
+
{
|
|
6405
|
+
"id": "release-propagation",
|
|
6406
|
+
"path": "docs/cli-reference.md",
|
|
6407
|
+
"command": "buildchain release-propagation work"
|
|
6408
|
+
},
|
|
6409
|
+
{
|
|
6410
|
+
"id": "release-propagation",
|
|
6411
|
+
"path": "docs/cli-reference.md",
|
|
6412
|
+
"command": "buildchain release-propagation work --help"
|
|
6413
|
+
},
|
|
6331
6414
|
{
|
|
6332
6415
|
"id": "release-propagation",
|
|
6333
6416
|
"path": "docs/cli-reference.md",
|
|
@@ -6998,6 +7081,11 @@
|
|
|
6998
7081
|
"path": "docs/install.md",
|
|
6999
7082
|
"command": "buildchain version npx buildchain"
|
|
7000
7083
|
},
|
|
7084
|
+
{
|
|
7085
|
+
"id": "version",
|
|
7086
|
+
"path": "README.md",
|
|
7087
|
+
"command": "buildchain version"
|
|
7088
|
+
},
|
|
7001
7089
|
{
|
|
7002
7090
|
"id": "version",
|
|
7003
7091
|
"path": "README.md",
|
|
@@ -7029,9 +7117,9 @@
|
|
|
7029
7117
|
"cliRegistryPath": "dist/site/cli-registry.json",
|
|
7030
7118
|
"workflowRegistryPath": "dist/site/workflow-registry.json",
|
|
7031
7119
|
"pageRegistryPath": "dist/site/page-registry.json",
|
|
7032
|
-
"cliRegistryDigest": "
|
|
7033
|
-
"workflowRegistryDigest": "
|
|
7034
|
-
"pageRegistryDigest": "
|
|
7120
|
+
"cliRegistryDigest": "c070e7bff9d1cb65a08daacd936f3567871af7844e88fa6ffcb05ea59579c15f",
|
|
7121
|
+
"workflowRegistryDigest": "dff218a0f6f03602912c4f2e238cc79a1304ee2d0f6d1e3f3bae8514302f4706",
|
|
7122
|
+
"pageRegistryDigest": "1270adac7acf01d2d1467feed70432c0d61c581925cad4af503b7db98c224d3f"
|
|
7035
7123
|
},
|
|
7036
7124
|
"comparison": {
|
|
7037
7125
|
"missingCliRegistry": [],
|
|
@@ -44,6 +44,19 @@
|
|
|
44
44
|
"runnerPolicy": "unqualified",
|
|
45
45
|
"notes": ""
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
"workflowPath": ".github/workflows/.declarative-auditable-demo.yml",
|
|
49
|
+
"authorityClass": "governance-write",
|
|
50
|
+
"publicationCapable": false,
|
|
51
|
+
"capabilityIds": [],
|
|
52
|
+
"credentialMode": "none",
|
|
53
|
+
"publisherWorkflowMode": "fixed",
|
|
54
|
+
"publisherWorkflowPath": ".github/workflows/.declarative-auditable-demo.yml",
|
|
55
|
+
"environment": "",
|
|
56
|
+
"environmentMode": "fixed",
|
|
57
|
+
"runnerPolicy": "unqualified",
|
|
58
|
+
"notes": ""
|
|
59
|
+
},
|
|
47
60
|
{
|
|
48
61
|
"workflowPath": ".github/workflows/.publication-authority.yml",
|
|
49
62
|
"authorityClass": "evidence-publication",
|
|
@@ -180,6 +193,19 @@
|
|
|
180
193
|
"runnerPolicy": "unqualified",
|
|
181
194
|
"notes": ""
|
|
182
195
|
},
|
|
196
|
+
{
|
|
197
|
+
"workflowPath": ".github/workflows/auditable-demo.yml",
|
|
198
|
+
"authorityClass": "governance-write",
|
|
199
|
+
"publicationCapable": false,
|
|
200
|
+
"capabilityIds": [],
|
|
201
|
+
"credentialMode": "none",
|
|
202
|
+
"publisherWorkflowMode": "fixed",
|
|
203
|
+
"publisherWorkflowPath": ".github/workflows/auditable-demo.yml",
|
|
204
|
+
"environment": "",
|
|
205
|
+
"environmentMode": "fixed",
|
|
206
|
+
"runnerPolicy": "unqualified",
|
|
207
|
+
"notes": ""
|
|
208
|
+
},
|
|
183
209
|
{
|
|
184
210
|
"workflowPath": ".github/workflows/binary-distribution.yml",
|
|
185
211
|
"authorityClass": "evidence-publication",
|
|
@@ -602,6 +628,14 @@
|
|
|
602
628
|
"signals": [],
|
|
603
629
|
"classified": false
|
|
604
630
|
},
|
|
631
|
+
{
|
|
632
|
+
"path": ".github/workflows/.declarative-auditable-demo.yml",
|
|
633
|
+
"signals": [
|
|
634
|
+
"write-permission",
|
|
635
|
+
"git-push"
|
|
636
|
+
],
|
|
637
|
+
"classified": true
|
|
638
|
+
},
|
|
605
639
|
{
|
|
606
640
|
"path": ".github/workflows/.gate-profile.yml",
|
|
607
641
|
"signals": [],
|
|
@@ -702,6 +736,13 @@
|
|
|
702
736
|
"signals": [],
|
|
703
737
|
"classified": false
|
|
704
738
|
},
|
|
739
|
+
{
|
|
740
|
+
"path": ".github/workflows/auditable-demo.yml",
|
|
741
|
+
"signals": [
|
|
742
|
+
"write-permission"
|
|
743
|
+
],
|
|
744
|
+
"classified": true
|
|
745
|
+
},
|
|
705
746
|
{
|
|
706
747
|
"path": ".github/workflows/binary-distribution.yml",
|
|
707
748
|
"signals": [
|
|
@@ -958,5 +999,5 @@
|
|
|
958
999
|
"classified": false
|
|
959
1000
|
}
|
|
960
1001
|
],
|
|
961
|
-
"registryDigest": "
|
|
1002
|
+
"registryDigest": "c4574eaddd6cecd08c24e9125a2767f3126e8fbae894ed71d24cd5cc16e2443b"
|
|
962
1003
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-08-
|
|
5
|
-
"publishedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-02T13:42:28.157Z",
|
|
5
|
+
"publishedAt": "2026-08-02T13:42:28.157Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "b5a8cb26691966378ee01f12e83d362fded9e47c",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"package": {
|
|
34
34
|
"name": "@kungfu-tech/buildchain",
|
|
35
|
-
"version": "3.0.5-alpha.
|
|
35
|
+
"version": "3.0.5-alpha.7",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-08-
|
|
5
|
-
"publishedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-02T13:42:28.157Z",
|
|
5
|
+
"publishedAt": "2026-08-02T13:42:28.157Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "b5a8cb26691966378ee01f12e83d362fded9e47c",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"package": {
|
|
39
39
|
"name": "@kungfu-tech/buildchain",
|
|
40
|
-
"version": "3.0.5-alpha.
|
|
40
|
+
"version": "3.0.5-alpha.7",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"path": "docs/auditable-demo.md",
|
|
70
70
|
"plane": "verify",
|
|
71
71
|
"exists": true,
|
|
72
|
-
"digest": "sha256:
|
|
72
|
+
"digest": "sha256:a99175216b3774748b253814c1933683cace8107a34083dd711f639f3e680c61"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"id": "install",
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
"path": "docs/cli-reference.md",
|
|
230
230
|
"plane": "use",
|
|
231
231
|
"exists": true,
|
|
232
|
-
"digest": "sha256:
|
|
232
|
+
"digest": "sha256:94207fa353e87b087ecf53b6cebe6dfffdc1311b2b6bc90b511d83d5757e7827"
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"id": "node-api-reference",
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"path": "docs/node-api-reference.md",
|
|
238
238
|
"plane": "use",
|
|
239
239
|
"exists": true,
|
|
240
|
-
"digest": "sha256:
|
|
240
|
+
"digest": "sha256:c67e43ac62b7771c997c089da1541e573b7bb3202bdef01816a782b876e403c3"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"id": "build-facts",
|
|
@@ -269,6 +269,48 @@
|
|
|
269
269
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
270
270
|
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
271
271
|
},
|
|
272
|
+
{
|
|
273
|
+
"id": ".declarative-auditable-demo",
|
|
274
|
+
"path": ".github/workflows/.declarative-auditable-demo.yml",
|
|
275
|
+
"reusable": true,
|
|
276
|
+
"inputs": [
|
|
277
|
+
"artifact-retention-days",
|
|
278
|
+
"binary-artifact-digest",
|
|
279
|
+
"binary-artifact-name",
|
|
280
|
+
"buildchain-repository",
|
|
281
|
+
"materialize",
|
|
282
|
+
"materialize-base-ref",
|
|
283
|
+
"media-profile",
|
|
284
|
+
"render-media",
|
|
285
|
+
"renderer-image",
|
|
286
|
+
"scenario-path",
|
|
287
|
+
"source-ref"
|
|
288
|
+
],
|
|
289
|
+
"inputCount": 11,
|
|
290
|
+
"secrets": [
|
|
291
|
+
"DEMO_UPDATE_TOKEN"
|
|
292
|
+
],
|
|
293
|
+
"secretCount": 1,
|
|
294
|
+
"outputs": [
|
|
295
|
+
"capture-artifact-digest",
|
|
296
|
+
"capture-artifact-name",
|
|
297
|
+
"evidence-artifact-digest",
|
|
298
|
+
"evidence-artifact-name",
|
|
299
|
+
"publication-pr-url",
|
|
300
|
+
"source-sha"
|
|
301
|
+
],
|
|
302
|
+
"outputCount": 6,
|
|
303
|
+
"surface": "declarative-auditable-demo",
|
|
304
|
+
"capabilityGroup": "api-cli-reference",
|
|
305
|
+
"status": "preview",
|
|
306
|
+
"owner": "buildchain-workflows",
|
|
307
|
+
"maturity": "preview",
|
|
308
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
309
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
310
|
+
"deprecationReplacement": "",
|
|
311
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
312
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
313
|
+
},
|
|
272
314
|
{
|
|
273
315
|
"id": ".gate-profile",
|
|
274
316
|
"path": ".github/workflows/.gate-profile.yml",
|
|
@@ -1051,6 +1093,27 @@
|
|
|
1051
1093
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1052
1094
|
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1053
1095
|
},
|
|
1096
|
+
{
|
|
1097
|
+
"id": "auditable-demo",
|
|
1098
|
+
"path": ".github/workflows/auditable-demo.yml",
|
|
1099
|
+
"reusable": false,
|
|
1100
|
+
"inputs": [],
|
|
1101
|
+
"inputCount": 0,
|
|
1102
|
+
"secrets": [],
|
|
1103
|
+
"secretCount": 0,
|
|
1104
|
+
"outputs": [],
|
|
1105
|
+
"outputCount": 0,
|
|
1106
|
+
"surface": "repository-workflow",
|
|
1107
|
+
"capabilityGroup": "api-cli-reference",
|
|
1108
|
+
"status": "active",
|
|
1109
|
+
"owner": "buildchain-workflows",
|
|
1110
|
+
"maturity": "active",
|
|
1111
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
1112
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1113
|
+
"deprecationReplacement": "",
|
|
1114
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1115
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1116
|
+
},
|
|
1054
1117
|
{
|
|
1055
1118
|
"id": "binary-distribution",
|
|
1056
1119
|
"path": ".github/workflows/binary-distribution.yml",
|
package/docs/auditable-demo.md
CHANGED
|
@@ -8,11 +8,11 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: self-reviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-08-02
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-5
|
|
14
14
|
product: Codex
|
|
15
|
-
generated_at: 2026-
|
|
15
|
+
generated_at: 2026-08-02
|
|
16
16
|
invisible_context_boundary: No hidden model build, parameter count, or private corpus is asserted.
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -30,6 +30,68 @@ The public reusable workflow is
|
|
|
30
30
|
does not know how a Kungfu, library, service, or application artifact should be
|
|
31
31
|
interpreted. The consumer owns a small checked-in executable adapter.
|
|
32
32
|
|
|
33
|
+
For standalone binary CLIs, the higher-level first-class surface is
|
|
34
|
+
`.github/workflows/.declarative-auditable-demo.yml`. A consumer checks in only
|
|
35
|
+
`.buildchain/auditable-demo.json`, builds and uploads its exact same-run binary
|
|
36
|
+
plus metadata, and passes the producer-owned artifact name and digest to that
|
|
37
|
+
workflow. Buildchain then owns capture, Gate adaptation, independent native
|
|
38
|
+
1080p and 720p rendering, Release Passport construction, content-addressed
|
|
39
|
+
materialization, and the protected README update pull request. No
|
|
40
|
+
product-specific capture, adapter, passport, or materializer is required.
|
|
41
|
+
|
|
42
|
+
## Declarative Standalone Binary Scenarios
|
|
43
|
+
|
|
44
|
+
The schema is `contracts/auditable-demo-scenario-v1.schema.json`. One scenario
|
|
45
|
+
can declare up to eight demos, and each demo can contain up to twelve ordered
|
|
46
|
+
literal argv steps. Steps in one demo share a disposable workspace; separate
|
|
47
|
+
demos and the two rendition captures do not. Commands are never accepted as a
|
|
48
|
+
shell string. An omitted or explicit `standard` duration class remains bounded
|
|
49
|
+
to 60 seconds. A reviewed `execution.durationClass: long-form` declaration may
|
|
50
|
+
raise the scenario and literal step ceilings to 180 seconds; it does not change
|
|
51
|
+
the default. Both classes retain 4 MiB per step, a clean Home/XDG environment,
|
|
52
|
+
no inherited credentials, and a network-disabled read-only container with
|
|
53
|
+
bounded tmpfs.
|
|
54
|
+
|
|
55
|
+
The uploaded metadata must bind the executable SHA-256 and declare an empty
|
|
56
|
+
runtime dependency set. Capture rejects an artifact name or upload digest that
|
|
57
|
+
does not resolve to exactly one live artifact from the current workflow run.
|
|
58
|
+
It retains ANSI terminal bytes with the real PTY read timestamps, verifies
|
|
59
|
+
declared stdout and JSON file facts, enforces the total deadline while a step is
|
|
60
|
+
running, and removes the disposable workspace before emitting evidence.
|
|
61
|
+
|
|
62
|
+
Both manual validation and alpha or release refreshes call the same reusable
|
|
63
|
+
workflow. Manual callers select Gate-only or full rendering and can explicitly
|
|
64
|
+
request a materialization PR. Release callers select full rendering and the
|
|
65
|
+
same materializer automatically; there is no separate release-only recording
|
|
66
|
+
implementation. Publication requires a dedicated update token and target
|
|
67
|
+
branch. The token is an explicit bounded capability, while actor identity,
|
|
68
|
+
first-party/System classification, KFD compliance, Product System metadata,
|
|
69
|
+
package metadata, registry history, scans, and generated evidence grant no
|
|
70
|
+
authority.
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
jobs:
|
|
74
|
+
demo:
|
|
75
|
+
needs: exact-binary
|
|
76
|
+
uses: kungfu-systems/buildchain/.github/workflows/.declarative-auditable-demo.yml@BUILDCHAIN_EXACT_SHA
|
|
77
|
+
with:
|
|
78
|
+
source-ref: ${{ github.sha }}
|
|
79
|
+
binary-artifact-name: ${{ needs.exact-binary.outputs.artifact-name }}
|
|
80
|
+
binary-artifact-digest: ${{ needs.exact-binary.outputs.artifact-digest }}
|
|
81
|
+
scenario-path: .buildchain/auditable-demo.json
|
|
82
|
+
renderer-image: ghcr.io/kungfu-systems/build-images/demo-renderer@sha256:RENDERER_DIGEST
|
|
83
|
+
render-media: true
|
|
84
|
+
media-profile: responsive-web-delivery-v1
|
|
85
|
+
materialize: true
|
|
86
|
+
materialize-base-ref: dev/v1/v1.0
|
|
87
|
+
secrets:
|
|
88
|
+
DEMO_UPDATE_TOKEN: ${{ secrets.DEMO_UPDATE_TOKEN }}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Buildchain recursively consumes this surface in
|
|
92
|
+
`.github/workflows/auditable-demo.yml` using its own exact standalone binary
|
|
93
|
+
and the beginner bootstrap scenario in `.buildchain/auditable-demo.json`.
|
|
94
|
+
|
|
33
95
|
## Authority Boundary
|
|
34
96
|
|
|
35
97
|
The retained build output is authoritative. The adapter reads that exact
|
|
@@ -42,9 +104,10 @@ scene.json
|
|
|
42
104
|
```
|
|
43
105
|
|
|
44
106
|
It may additionally emit one declared `terminal-capture.json` using
|
|
45
|
-
`kungfu.terminal-capture/v1`. The optional capture is bounded to 60 seconds
|
|
107
|
+
`kungfu.terminal-capture/v1`. The optional capture is bounded to 60 seconds by
|
|
108
|
+
default or 180 seconds only when its scene explicitly declares `long-form`,
|
|
46
109
|
fixed 80-200 by 24-80 terminal cells, 10,000 events, and 4 MiB of canonical
|
|
47
|
-
base64 bytes. It must contain a
|
|
110
|
+
base64 bytes. It must contain a qualified completion sentinel and an explicitly
|
|
48
111
|
empty authority-grant list. Existing three-file adapters remain valid.
|
|
49
112
|
|
|
50
113
|
The completion sentinel names a consumer-owned versioned schema, the exact
|
|
@@ -151,6 +214,7 @@ shell fragments, arbitrary profile paths, or transcoding instructions.
|
|
|
151
214
|
| `archive-v1` | Default compatibility contract. Retains the exact renderer outputs and classifies GIF as README compatibility evidence without making a browser-delivery claim. |
|
|
152
215
|
| `web-delivery-v1` | Independently qualifies H.264 MP4 and VP9 WebM playback sources, forbids audio, requires exact scene dimensions and bounded duration/frame-rate drift, checks per-rendition byte ceilings, and proves MP4 `moov` precedes `mdat`. PNG remains the lossless evidence poster. |
|
|
153
216
|
| `responsive-web-delivery-v1` | Extends `web-delivery-v1` with exact 1280x720 H.264 MP4 and VP9 WebM responsive sources plus a 1280x720 README GIF while keeping the primary MP4/WebM and evidence poster at the source scene dimensions. Every declared downscale must preserve the scene aspect ratio and may never upscale. |
|
|
217
|
+
| `responsive-long-form-web-delivery-v1` | Extends the responsive profile for explicitly admitted long-form scenes. Its measured-baseline multipliers raise only the GIF ceiling to 8 MiB and the four video ceilings to 4 MiB; all codec, native-resolution, no-audio, duration, and authority checks remain unchanged. |
|
|
154
218
|
| `site-hero-v1` | Extends `web-delivery-v1` and additionally requires a qualified WebP browser poster. The current Build Images v1 renderer does not emit that member, so selecting this profile fails closed until the producer adds it. |
|
|
155
219
|
|
|
156
220
|
For web-delivery profiles, Buildchain runs its own fixed `ffprobe` invocation
|
|
@@ -185,8 +249,10 @@ Initial byte ceilings are derived from the checked-in
|
|
|
185
249
|
`auditable-demo-web-delivery-v1` fixture rendered by Build Images
|
|
186
250
|
`v1.3.0-alpha.16` at its exact source SHA and image digest. GIF, MP4, WebM, and
|
|
187
251
|
PNG ceilings are the next power of two above sixteen times the measured member
|
|
188
|
-
bytes. The
|
|
189
|
-
|
|
252
|
+
bytes. The explicit responsive long-form profile derives its 4 MiB video and
|
|
253
|
+
8 MiB GIF ceilings from the same observed bytes at a bounded 128-times
|
|
254
|
+
multiplier; it does not change another profile. The not-yet-produced WebP poster
|
|
255
|
+
uses eight times the measured lossless PNG as its conservative proxy. The path-scoped qualification workflow
|
|
190
256
|
regenerates the content-addressed evidence and fails on any byte or fact drift.
|
|
191
257
|
Its matrix retains the original 1280x720 web-delivery baseline on the renderer
|
|
192
258
|
that produced it and separately measures the responsive profile against a
|
|
@@ -242,7 +308,8 @@ build should always call the reusable workflow. Selection policy changes only
|
|
|
242
308
|
|
|
243
309
|
Use `web-delivery-v1` only when the rendered bundle is intended to become a
|
|
244
310
|
qualified web-delivery source. Use `site-hero-v1` when an optimized browser
|
|
245
|
-
poster is also required.
|
|
311
|
+
poster is also required. Select `responsive-long-form-web-delivery-v1` only
|
|
312
|
+
with an explicit long-form scenario. Profile qualification does not prove browser playback,
|
|
246
313
|
responsive layout, reduced-motion behavior, accessibility, or production
|
|
247
314
|
deployment; those remain site responsibilities.
|
|
248
315
|
|
package/docs/cli-reference.md
CHANGED
|
@@ -1668,6 +1668,17 @@ buildchain release-governance reconcile --repository <owner/repo> --branch <dev|
|
|
|
1668
1668
|
buildchain release-propagation
|
|
1669
1669
|
```
|
|
1670
1670
|
|
|
1671
|
+
### `buildchain release-propagation pickup`
|
|
1672
|
+
|
|
1673
|
+
- Help: `buildchain release-propagation pickup --help`
|
|
1674
|
+
- Canonical id: `release-propagation`
|
|
1675
|
+
- Options: none declared
|
|
1676
|
+
- Syntax:
|
|
1677
|
+
|
|
1678
|
+
```text
|
|
1679
|
+
buildchain release-propagation <plan|write-lock|work|pickup> ...
|
|
1680
|
+
```
|
|
1681
|
+
|
|
1671
1682
|
### `buildchain release-propagation plan`
|
|
1672
1683
|
|
|
1673
1684
|
- Help: `buildchain release-propagation plan --help`
|
|
@@ -1676,7 +1687,18 @@ buildchain release-propagation
|
|
|
1676
1687
|
- Syntax:
|
|
1677
1688
|
|
|
1678
1689
|
```text
|
|
1679
|
-
buildchain release-propagation <plan|write-lock> ...
|
|
1690
|
+
buildchain release-propagation <plan|write-lock|work|pickup> ...
|
|
1691
|
+
```
|
|
1692
|
+
|
|
1693
|
+
### `buildchain release-propagation work`
|
|
1694
|
+
|
|
1695
|
+
- Help: `buildchain release-propagation work --help`
|
|
1696
|
+
- Canonical id: `release-propagation`
|
|
1697
|
+
- Options: none declared
|
|
1698
|
+
- Syntax:
|
|
1699
|
+
|
|
1700
|
+
```text
|
|
1701
|
+
buildchain release-propagation <plan|write-lock|work|pickup> ...
|
|
1680
1702
|
```
|
|
1681
1703
|
|
|
1682
1704
|
### `buildchain release-propagation write-lock`
|
|
@@ -1687,7 +1709,7 @@ buildchain release-propagation <plan|write-lock> ...
|
|
|
1687
1709
|
- Syntax:
|
|
1688
1710
|
|
|
1689
1711
|
```text
|
|
1690
|
-
buildchain release-propagation <plan|write-lock> ...
|
|
1712
|
+
buildchain release-propagation <plan|write-lock|work|pickup> ...
|
|
1691
1713
|
```
|
|
1692
1714
|
|
|
1693
1715
|
## `sample`
|