@kungfu-tech/buildchain 3.0.5-alpha.8 → 3.0.6-alpha.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.
Files changed (51) hide show
  1. package/contracts/auditable-demo-scenario-v1.schema.json +11 -0
  2. package/dist/site/buildchain-contract.json +42 -22
  3. package/dist/site/buildchain-site.json +73 -27
  4. package/dist/site/capability-registry.json +2 -2
  5. package/dist/site/cli-registry.json +5 -3
  6. package/dist/site/controller-registry.json +19 -3
  7. package/dist/site/kfd-claims.json +58 -14
  8. package/dist/site/kfd-upstream-aggregate.json +1 -1
  9. package/dist/site/manual-registry.json +7 -6
  10. package/dist/site/node-api-registry.json +335 -8
  11. package/dist/site/page-registry.json +63 -17
  12. package/dist/site/public-surface-audit.json +94 -11
  13. package/dist/site/publication-authority-registry.json +21 -1
  14. package/dist/site/publication-registry.json +4 -4
  15. package/dist/site/site-manifest.json +10 -10
  16. package/dist/site/workflow-registry.json +53 -4
  17. package/docs/MAP.md +4 -1
  18. package/docs/auditable-demo.md +19 -3
  19. package/docs/cli-reference.md +15 -4
  20. package/docs/dev-alpha-candidate-patrol.md +14 -5
  21. package/docs/dev-qualification-patrol.md +108 -0
  22. package/docs/node-api-reference.md +42 -9
  23. package/docs/release-propagation.md +93 -0
  24. package/docs/reusable-build-surface.md +44 -12
  25. package/docs/stable-candidate-patrol.md +5 -2
  26. package/package.json +1 -1
  27. package/packages/core/buildchain-publication-authority.js +1 -0
  28. package/packages/core/release-propagation-agent-entry.js +185 -0
  29. package/packages/core/release-propagation-push.js +293 -0
  30. package/packages/core/release-propagation-stage-evidence.js +36 -0
  31. package/packages/core/release-propagation-work.js +1 -1
  32. package/packages/core/release-propagation.js +15 -0
  33. package/scripts/artifact-signing-controller-core.mjs +525 -0
  34. package/scripts/artifact-signing-controller.mjs +302 -0
  35. package/scripts/artifact-signing-delegation.mjs +51 -3
  36. package/scripts/auditable-demo-platform.mjs +59 -1
  37. package/scripts/auditable-demo-transport-smoke.mjs +176 -0
  38. package/scripts/build-standalone-binary.mjs +3 -1
  39. package/scripts/buildchain-cli-help.mjs +1 -1
  40. package/scripts/check-inventory.mjs +1 -0
  41. package/scripts/compiler-cache-evidence.mjs +90 -7
  42. package/scripts/dev-alpha-candidate-patrol.mjs +80 -5
  43. package/scripts/dev-pr-auto-merge.mjs +4 -4
  44. package/scripts/dev-qualification-patrol.mjs +594 -0
  45. package/scripts/dispatch-artifact-signing-authority.mjs +312 -61
  46. package/scripts/generate-site-bundle.mjs +3 -0
  47. package/scripts/inspect-artifact-signing-requests.mjs +12 -0
  48. package/scripts/release-propagation.mjs +73 -0
  49. package/scripts/run-lifecycle-core.mjs +25 -0
  50. package/scripts/site-capability-metadata.mjs +1 -1
  51. package/scripts/stable-candidate-patrol.mjs +30 -4
@@ -4,10 +4,10 @@
4
4
  "status": "passed",
5
5
  "summary": {
6
6
  "cliCommandCount": 112,
7
- "workflowCount": 59,
7
+ "workflowCount": 60,
8
8
  "actionCount": 6,
9
- "sitePageCount": 63,
10
- "docCommandRefCount": 822,
9
+ "sitePageCount": 64,
10
+ "docCommandRefCount": 830,
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|work|pickup> ..."
493
+ "usage": "buildchain release-propagation <plan|write-lock|work|entry|pickup> ..."
494
494
  },
495
495
  {
496
496
  "id": "release-transaction",
@@ -699,6 +699,8 @@
699
699
  "linux-container-preset",
700
700
  "node-version",
701
701
  "platforms-json",
702
+ "pre-upload-transport-smoke-artifact-root",
703
+ "pre-upload-transport-smoke-scenario-path",
702
704
  "process-sample-interval-ms",
703
705
  "process-summary-path",
704
706
  "publish-anchor-request-json",
@@ -727,7 +729,7 @@
727
729
  "verify-command",
728
730
  "working-directory"
729
731
  ],
730
- "inputCount": 83,
732
+ "inputCount": 85,
731
733
  "secrets": [
732
734
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
733
735
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -1562,6 +1564,8 @@
1562
1564
  "linux-container-preset",
1563
1565
  "node-version",
1564
1566
  "platforms-json",
1567
+ "pre-upload-transport-smoke-artifact-root",
1568
+ "pre-upload-transport-smoke-scenario-path",
1565
1569
  "process-sample-interval-ms",
1566
1570
  "process-summary-path",
1567
1571
  "publish-anchor-request-json",
@@ -1590,7 +1594,7 @@
1590
1594
  "verify-command",
1591
1595
  "working-directory"
1592
1596
  ],
1593
- "inputCount": 86,
1597
+ "inputCount": 88,
1594
1598
  "secrets": [
1595
1599
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
1596
1600
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -1810,12 +1814,14 @@
1810
1814
  "reusable": true,
1811
1815
  "inputs": [
1812
1816
  "alpha-workflow-path",
1817
+ "auto-merge",
1813
1818
  "buildchain-ref",
1814
1819
  "buildchain-repository",
1815
1820
  "create-pull-request",
1816
1821
  "dev-workflow-path",
1817
1822
  "dry-run",
1818
1823
  "max-age-seconds",
1824
+ "merge-method",
1819
1825
  "pull-request-body-prefix",
1820
1826
  "pull-request-body-prefix-renderer",
1821
1827
  "reactivation-authorized",
@@ -1823,7 +1829,7 @@
1823
1829
  "source-branch",
1824
1830
  "target-branch"
1825
1831
  ],
1826
- "inputCount": 13,
1832
+ "inputCount": 15,
1827
1833
  "secrets": [
1828
1834
  "promotion-token"
1829
1835
  ],
@@ -1887,6 +1893,38 @@
1887
1893
  ],
1888
1894
  "outputCount": 6
1889
1895
  },
1896
+ {
1897
+ "id": "dev-qualification-patrol",
1898
+ "path": ".github/workflows/dev-qualification-patrol.yml",
1899
+ "reusable": true,
1900
+ "inputs": [
1901
+ "buildchain-ref",
1902
+ "buildchain-repository",
1903
+ "dev-workflow-path",
1904
+ "dispatch-inputs-json",
1905
+ "dry-run",
1906
+ "max-attempts",
1907
+ "mutation-authorized",
1908
+ "preflight-workflow-path",
1909
+ "priority-workflows-json",
1910
+ "source-branch"
1911
+ ],
1912
+ "inputCount": 10,
1913
+ "secrets": [
1914
+ "qualification-token"
1915
+ ],
1916
+ "secretCount": 1,
1917
+ "outputs": [
1918
+ "action",
1919
+ "active-run-id",
1920
+ "decision-root",
1921
+ "pending-sha",
1922
+ "reason",
1923
+ "source-sha",
1924
+ "state"
1925
+ ],
1926
+ "outputCount": 7
1927
+ },
1890
1928
  {
1891
1929
  "id": "github-artifact-attestation",
1892
1930
  "path": ".github/workflows/github-artifact-attestation.yml",
@@ -2490,6 +2528,7 @@
2490
2528
  "hold",
2491
2529
  "hold-reason",
2492
2530
  "ledger-ref",
2531
+ "merge-method",
2493
2532
  "minimum-soak-seconds",
2494
2533
  "release-now",
2495
2534
  "required-checks",
@@ -2497,7 +2536,7 @@
2497
2536
  "revoked-versions",
2498
2537
  "target-branch"
2499
2538
  ],
2500
- "inputCount": 15,
2539
+ "inputCount": 16,
2501
2540
  "secrets": [
2502
2541
  "approval-token",
2503
2542
  "promotion-token"
@@ -2863,6 +2902,10 @@
2863
2902
  "id": "manual:dev-alpha-candidate-patrol",
2864
2903
  "category": "manual"
2865
2904
  },
2905
+ {
2906
+ "id": "manual:dev-qualification-patrol",
2907
+ "category": "manual"
2908
+ },
2866
2909
  {
2867
2910
  "id": "manual:getting-started",
2868
2911
  "category": "manual"
@@ -6376,11 +6419,26 @@
6376
6419
  "path": "docs/cli-reference.md",
6377
6420
  "command": "buildchain release-propagation"
6378
6421
  },
6422
+ {
6423
+ "id": "release-propagation",
6424
+ "path": "docs/cli-reference.md",
6425
+ "command": "buildchain release-propagation"
6426
+ },
6379
6427
  {
6380
6428
  "id": "release-propagation",
6381
6429
  "path": "docs/cli-reference.md",
6382
6430
  "command": "buildchain release-propagation --help"
6383
6431
  },
6432
+ {
6433
+ "id": "release-propagation",
6434
+ "path": "docs/cli-reference.md",
6435
+ "command": "buildchain release-propagation entry"
6436
+ },
6437
+ {
6438
+ "id": "release-propagation",
6439
+ "path": "docs/cli-reference.md",
6440
+ "command": "buildchain release-propagation entry --help"
6441
+ },
6384
6442
  {
6385
6443
  "id": "release-propagation",
6386
6444
  "path": "docs/cli-reference.md",
@@ -6436,6 +6494,21 @@
6436
6494
  "path": "docs/release-propagation.md",
6437
6495
  "command": "buildchain release-propagation receipt"
6438
6496
  },
6497
+ {
6498
+ "id": "release-propagation",
6499
+ "path": "docs/release-propagation.md",
6500
+ "command": "buildchain release-propagation entry plan"
6501
+ },
6502
+ {
6503
+ "id": "release-propagation",
6504
+ "path": "docs/release-propagation.md",
6505
+ "command": "buildchain release-propagation entry plan"
6506
+ },
6507
+ {
6508
+ "id": "release-propagation",
6509
+ "path": "docs/release-propagation.md",
6510
+ "command": "buildchain release-propagation entry fault-matrix"
6511
+ },
6439
6512
  {
6440
6513
  "id": "release-propagation",
6441
6514
  "path": "docs/release-propagation.md",
@@ -6476,6 +6549,16 @@
6476
6549
  "path": "docs/release-propagation.md",
6477
6550
  "command": "buildchain release-propagation work complete"
6478
6551
  },
6552
+ {
6553
+ "id": "release-propagation",
6554
+ "path": "docs/release-propagation.md",
6555
+ "command": "buildchain release-propagation work push-plan"
6556
+ },
6557
+ {
6558
+ "id": "release-propagation",
6559
+ "path": "docs/release-propagation.md",
6560
+ "command": "buildchain release-propagation work push-branch"
6561
+ },
6479
6562
  {
6480
6563
  "id": "release-transaction",
6481
6564
  "path": "docs/cli-reference.md",
@@ -7117,9 +7200,9 @@
7117
7200
  "cliRegistryPath": "dist/site/cli-registry.json",
7118
7201
  "workflowRegistryPath": "dist/site/workflow-registry.json",
7119
7202
  "pageRegistryPath": "dist/site/page-registry.json",
7120
- "cliRegistryDigest": "c070e7bff9d1cb65a08daacd936f3567871af7844e88fa6ffcb05ea59579c15f",
7121
- "workflowRegistryDigest": "dff218a0f6f03602912c4f2e238cc79a1304ee2d0f6d1e3f3bae8514302f4706",
7122
- "pageRegistryDigest": "fcc0611c778caa08e36f91d3d5bd36f61aa90a165fb98388ade07d3ac236716f"
7203
+ "cliRegistryDigest": "2012c52df8cd1c32f5cf2afbee6fa77e69818616d41ff984dad394af0523f266",
7204
+ "workflowRegistryDigest": "e96718b6503e5628a0f0535e4a705d2819a7ee5512b55e35373f10c750b5facf",
7205
+ "pageRegistryDigest": "ad80961597b664645998d29c38d11debbc168447c69cad3749e9468550f5b695"
7123
7206
  },
7124
7207
  "comparison": {
7125
7208
  "missingCliRegistry": [],
@@ -388,6 +388,19 @@
388
388
  "runnerPolicy": "unqualified",
389
389
  "notes": ""
390
390
  },
391
+ {
392
+ "workflowPath": ".github/workflows/dev-qualification-patrol.yml",
393
+ "authorityClass": "governance-write",
394
+ "publicationCapable": false,
395
+ "capabilityIds": [],
396
+ "credentialMode": "none",
397
+ "publisherWorkflowMode": "fixed",
398
+ "publisherWorkflowPath": ".github/workflows/dev-qualification-patrol.yml",
399
+ "environment": "",
400
+ "environmentMode": "fixed",
401
+ "runnerPolicy": "unqualified",
402
+ "notes": ""
403
+ },
391
404
  {
392
405
  "workflowPath": ".github/workflows/github-artifact-attestation.yml",
393
406
  "authorityClass": "evidence-publication",
@@ -859,6 +872,13 @@
859
872
  ],
860
873
  "classified": true
861
874
  },
875
+ {
876
+ "path": ".github/workflows/dev-qualification-patrol.yml",
877
+ "signals": [
878
+ "write-permission"
879
+ ],
880
+ "classified": true
881
+ },
862
882
  {
863
883
  "path": ".github/workflows/github-artifact-attestation.yml",
864
884
  "signals": [
@@ -999,5 +1019,5 @@
999
1019
  "classified": false
1000
1020
  }
1001
1021
  ],
1002
- "registryDigest": "c4574eaddd6cecd08c24e9125a2767f3126e8fbae894ed71d24cd5cc16e2443b"
1022
+ "registryDigest": "bb343f7253b9497e1c9aee3cea170dd5f33fd5e807ea1de805a0fdda5a904bcc"
1003
1023
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-08-02T14:27:56.260Z",
5
- "publishedAt": "2026-08-02T14:27:56.260Z",
4
+ "generatedAt": "2026-08-03T02:31:12.352Z",
5
+ "publishedAt": "2026-08-03T02:31:12.352Z",
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": "4e62e4e0e7e2dec5316b12ab0ca7bef3e7804fbc",
22
+ "sourceRevision": "83280a3d21c4c75774be91ee802286b48c17fc54",
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.8",
35
+ "version": "3.0.6-alpha.0",
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-02T14:27:56.260Z",
5
- "publishedAt": "2026-08-02T14:27:56.260Z",
4
+ "generatedAt": "2026-08-03T02:31:12.352Z",
5
+ "publishedAt": "2026-08-03T02:31:12.352Z",
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": "4e62e4e0e7e2dec5316b12ab0ca7bef3e7804fbc",
22
+ "sourceRevision": "83280a3d21c4c75774be91ee802286b48c17fc54",
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.8",
40
+ "version": "3.0.6-alpha.0",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -53,7 +53,7 @@
53
53
  "path": "docs/MAP.md",
54
54
  "plane": "use",
55
55
  "exists": true,
56
- "digest": "sha256:0731b18f6a7aa6a164197080fac3b57ff161640a28433c4cd26adcf145403fb5"
56
+ "digest": "sha256:216e69758e78866e5a22fae1c4d017aaccf1b759937fcd953934407263344c03"
57
57
  },
58
58
  {
59
59
  "id": "getting-started",
@@ -69,7 +69,7 @@
69
69
  "path": "docs/auditable-demo.md",
70
70
  "plane": "verify",
71
71
  "exists": true,
72
- "digest": "sha256:a99175216b3774748b253814c1933683cace8107a34083dd711f639f3e680c61"
72
+ "digest": "sha256:7e1426d8200bd4e7a7e6684c872f47075cd37d0bddbb262ea3263eaad846b540"
73
73
  },
74
74
  {
75
75
  "id": "install",
@@ -133,7 +133,7 @@
133
133
  "path": "docs/release-propagation.md",
134
134
  "plane": "use",
135
135
  "exists": true,
136
- "digest": "sha256:3b7a2a0437f8a3a4e5cff7e05a2a8c427be597d85e93d49d5e35ba2a2b089afc"
136
+ "digest": "sha256:6e8417ff70db290ee6197f064ed9b7a7da3770738509fac06161dad05b3fca7f"
137
137
  },
138
138
  {
139
139
  "id": "readme-badges",
@@ -229,7 +229,7 @@
229
229
  "path": "docs/cli-reference.md",
230
230
  "plane": "use",
231
231
  "exists": true,
232
- "digest": "sha256:94207fa353e87b087ecf53b6cebe6dfffdc1311b2b6bc90b511d83d5757e7827"
232
+ "digest": "sha256:73d34a3b46ecfb772b806f0d79754772446fcc13d7f349b508a0c0212e97fcec"
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:deab508284ed365a830894205a4d293c524281d6da7126094cf8e9eea8efe223"
240
+ "digest": "sha256:ae49a589091d1ab91d29f2d6ac52cf2551a9d0b1f78350965b408f40fd219e29"
241
241
  },
242
242
  {
243
243
  "id": "build-facts",
@@ -277,7 +277,7 @@
277
277
  "path": "docs/reusable-build-surface.md",
278
278
  "plane": "use",
279
279
  "exists": true,
280
- "digest": "sha256:baadd0c0ef61d877b409d2bdf0e696e218971eb541c5f51a1a8e88e75af4904d"
280
+ "digest": "sha256:fe06637d604101269b013163be558c1ecc842276e27f2b5abfb6eea39e98feb0"
281
281
  },
282
282
  {
283
283
  "id": "publish-transaction",
@@ -148,6 +148,8 @@
148
148
  "linux-container-preset",
149
149
  "node-version",
150
150
  "platforms-json",
151
+ "pre-upload-transport-smoke-artifact-root",
152
+ "pre-upload-transport-smoke-scenario-path",
151
153
  "process-sample-interval-ms",
152
154
  "process-summary-path",
153
155
  "publish-anchor-request-json",
@@ -176,7 +178,7 @@
176
178
  "verify-command",
177
179
  "working-directory"
178
180
  ],
179
- "inputCount": 83,
181
+ "inputCount": 85,
180
182
  "secrets": [
181
183
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
182
184
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -1241,6 +1243,8 @@
1241
1243
  "linux-container-preset",
1242
1244
  "node-version",
1243
1245
  "platforms-json",
1246
+ "pre-upload-transport-smoke-artifact-root",
1247
+ "pre-upload-transport-smoke-scenario-path",
1244
1248
  "process-sample-interval-ms",
1245
1249
  "process-summary-path",
1246
1250
  "publish-anchor-request-json",
@@ -1269,7 +1273,7 @@
1269
1273
  "verify-command",
1270
1274
  "working-directory"
1271
1275
  ],
1272
- "inputCount": 86,
1276
+ "inputCount": 88,
1273
1277
  "secrets": [
1274
1278
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
1275
1279
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -1599,12 +1603,14 @@
1599
1603
  "reusable": true,
1600
1604
  "inputs": [
1601
1605
  "alpha-workflow-path",
1606
+ "auto-merge",
1602
1607
  "buildchain-ref",
1603
1608
  "buildchain-repository",
1604
1609
  "create-pull-request",
1605
1610
  "dev-workflow-path",
1606
1611
  "dry-run",
1607
1612
  "max-age-seconds",
1613
+ "merge-method",
1608
1614
  "pull-request-body-prefix",
1609
1615
  "pull-request-body-prefix-renderer",
1610
1616
  "reactivation-authorized",
@@ -1612,7 +1618,7 @@
1612
1618
  "source-branch",
1613
1619
  "target-branch"
1614
1620
  ],
1615
- "inputCount": 13,
1621
+ "inputCount": 15,
1616
1622
  "secrets": [
1617
1623
  "promotion-token"
1618
1624
  ],
@@ -1706,6 +1712,48 @@
1706
1712
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
1707
1713
  "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
1708
1714
  },
1715
+ {
1716
+ "id": "dev-qualification-patrol",
1717
+ "path": ".github/workflows/dev-qualification-patrol.yml",
1718
+ "reusable": true,
1719
+ "inputs": [
1720
+ "buildchain-ref",
1721
+ "buildchain-repository",
1722
+ "dev-workflow-path",
1723
+ "dispatch-inputs-json",
1724
+ "dry-run",
1725
+ "max-attempts",
1726
+ "mutation-authorized",
1727
+ "preflight-workflow-path",
1728
+ "priority-workflows-json",
1729
+ "source-branch"
1730
+ ],
1731
+ "inputCount": 10,
1732
+ "secrets": [
1733
+ "qualification-token"
1734
+ ],
1735
+ "secretCount": 1,
1736
+ "outputs": [
1737
+ "action",
1738
+ "active-run-id",
1739
+ "decision-root",
1740
+ "pending-sha",
1741
+ "reason",
1742
+ "source-sha",
1743
+ "state"
1744
+ ],
1745
+ "outputCount": 7,
1746
+ "surface": "repository-patrol",
1747
+ "capabilityGroup": "governance-versioning",
1748
+ "status": "active",
1749
+ "owner": "buildchain-workflows",
1750
+ "maturity": "active",
1751
+ "introducedVersion": "pre-3.0.2-alpha.4",
1752
+ "compatibilityPromise": "preserved-through-the-v3-major-line",
1753
+ "deprecationReplacement": "",
1754
+ "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
1755
+ "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
1756
+ },
1709
1757
  {
1710
1758
  "id": "github-artifact-attestation",
1711
1759
  "path": ".github/workflows/github-artifact-attestation.yml",
@@ -2489,6 +2537,7 @@
2489
2537
  "hold",
2490
2538
  "hold-reason",
2491
2539
  "ledger-ref",
2540
+ "merge-method",
2492
2541
  "minimum-soak-seconds",
2493
2542
  "release-now",
2494
2543
  "required-checks",
@@ -2496,7 +2545,7 @@
2496
2545
  "revoked-versions",
2497
2546
  "target-branch"
2498
2547
  ],
2499
- "inputCount": 15,
2548
+ "inputCount": 16,
2500
2549
  "secrets": [
2501
2550
  "approval-token",
2502
2551
  "promotion-token"
package/docs/MAP.md CHANGED
@@ -84,7 +84,7 @@ workflow, action, and Node API export also carries a `capabilityGroup`,
84
84
  | Git/source/version/module/product build facts | `dist/site/node-api-registry.json`, `dist/site/cli-registry.json`, `kungfu-buildchain-module-build-facts`, `kungfu-buildchain-product-build-facts` | [`build-facts.md`](build-facts.md) |
85
85
  | GitHub Release passport/evidence publication | `dist/site/release-model.json`, `dist/site/artifact-schemas.json` | [`release-governance.md`](release-governance.md), [`release-candidate.md`](release-candidate.md) |
86
86
  | GitHub ownership, effective protection, plan capability, and managed-zone governance receipts | `dist/site/node-api-registry.json`, `dist/site/cli-registry.json`, `kungfu-buildchain-github-governance-receipt` | [`github-governance-authority.md`](github-governance-authority.md) |
87
- | release propagation for package/publication/site chains | `dist/site/release-model.json` | [`release-propagation.md`](release-propagation.md) |
87
+ | release propagation and the unified Paper/KFD/Buildchain/Core Site agent entry | `dist/site/release-model.json`, `dist/site/cli-registry.json`, `dist/site/node-api-registry.json` | [`release-propagation.md`](release-propagation.md) |
88
88
  | publication artifact manifests, immutable archive registries, source bundles, and paper repository workflows | `dist/site/publication-registry.json`, `dist/site/workflow-registry.json`, `dist/site/node-api-registry.json`, `kungfu-buildchain-publication-artifact-manifest`, `kungfu-buildchain-publication-artifact-registry` | [`publication-artifacts.md`](publication-artifacts.md) |
89
89
  | Generated badge bundles, README badge blocks, and badge facts | `dist/site/node-api-registry.json`, `dist/site/manual-registry.json`, `kungfu-buildchain-badge-bundle-facts`, `kungfu-buildchain-readme-badge-facts` | [`readme-badges.md`](readme-badges.md) |
90
90
  | Homebrew tap distribution indexes | `dist/site/node-api-registry.json`, `dist/site/buildchain-contract.json` | [`homebrew.md`](homebrew.md) |
@@ -111,6 +111,7 @@ replace them.
111
111
  | Why does Buildchain use branch-driven release governance? | [`release-governance.md`](release-governance.md) | why | stable |
112
112
  | How do protected dev branches and scheduled ready-PR merging work? | [`release-governance.md`](release-governance.md#protected-dev-branches) | use | stable |
113
113
  | How do slow required checks land reliably on a busy dev channel? | [`release-governance.md`](release-governance.md#protected-dev-branches) + [`cli.md`](cli.md#commands) | use | preview |
114
+ | How do I coalesce rapid Dev changes, preserve release runner priority, and retry only transient failed jobs? | [`dev-qualification-patrol.md`](dev-qualification-patrol.md) | use/verify | preview |
114
115
  | How do I run daily, weekly, or monthly repository patrols? | [`release-governance.md`](release-governance.md#buildchain-patrol) | use | stable |
115
116
  | How does Buildchain decide patch, minor, and major release lines? | [`versioning.md`](versioning.md) | why | stable |
116
117
  | What exact branch/tag state machine runs on alpha, release, and major gate? | [`release-flow.md`](release-flow.md) | verify | stable |
@@ -176,6 +177,8 @@ replace them.
176
177
  - **protected dev branches / scheduled ready-PR merge / daily-weekly-monthly patrol** ->
177
178
  [`release-governance.md`](release-governance.md#protected-dev-branches) and
178
179
  [`release-governance.md`](release-governance.md#buildchain-patrol).
180
+ - **Dev qualification coalescing / release-priority runners / failed-job retry** ->
181
+ [`dev-qualification-patrol.md`](dev-qualification-patrol.md).
179
182
  - **pnpm / npm / yarn / package-manager adapters** ->
180
183
  [`lifecycle-protocol.md`](lifecycle-protocol.md).
181
184
  - **pip / Conan / CMake / custom commands** -> [`lifecycle-protocol.md`](lifecycle-protocol.md)
@@ -52,9 +52,25 @@ the default. Both classes retain 4 MiB per step, a clean Home/XDG environment,
52
52
  no inherited credentials, and a network-disabled read-only container with
53
53
  bounded tmpfs.
54
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.
55
+ The uploaded metadata must bind the executable SHA-256, declare an empty
56
+ runtime dependency set, and provide a bounded `executableFiles` array of exact
57
+ artifact-relative paths and SHA-256 digests. GitHub Artifact transport does not
58
+ retain Unix executable modes, so Buildchain restores mode `0755` only for this
59
+ digest-verified executable closure and verifies the same closure again inside
60
+ the network-disabled capture boundary. It never recursively changes artifact
61
+ modes. This metadata controls assembly only and grants no execution,
62
+ publication, or identity authority. Capture rejects an artifact name or upload
63
+ digest that does not resolve to exactly one live artifact from the current workflow run.
64
+
65
+ Consumers may also declare one bounded, non-interactive `transportSmoke` argv
66
+ in the same scenario and opt the reusable build into
67
+ `pre-upload-transport-smoke-scenario-path`. Before any GitHub Artifact or S3
68
+ relay upload, Buildchain copies the exact distribution directory, removes Unix
69
+ execute bits to simulate transport, restores only the digest-bound executable
70
+ closure, and runs that real binary with a clean Home/XDG environment. A missing
71
+ launcher, runtime, or embedded interpreter therefore fails before the expensive
72
+ upload begins. This is a transport diagnostic with no authority grants; the
73
+ later network-disabled capture and Gate remain the qualification authority.
58
74
  It retains ANSI terminal bytes with the real PTY read timestamps, verifies
59
75
  declared stdout and JSON file facts, enforces the total deadline while a step is
60
76
  running, and removes the disposable workspace before emitting evidence.
@@ -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 entry`
1672
+
1673
+ - Help: `buildchain release-propagation entry --help`
1674
+ - Canonical id: `release-propagation`
1675
+ - Options: none declared
1676
+ - Syntax:
1677
+
1678
+ ```text
1679
+ buildchain release-propagation <plan|write-lock|work|entry|pickup> ...
1680
+ ```
1681
+
1671
1682
  ### `buildchain release-propagation pickup`
1672
1683
 
1673
1684
  - Help: `buildchain release-propagation pickup --help`
@@ -1676,7 +1687,7 @@ buildchain release-propagation
1676
1687
  - Syntax:
1677
1688
 
1678
1689
  ```text
1679
- buildchain release-propagation <plan|write-lock|work|pickup> ...
1690
+ buildchain release-propagation <plan|write-lock|work|entry|pickup> ...
1680
1691
  ```
1681
1692
 
1682
1693
  ### `buildchain release-propagation plan`
@@ -1687,7 +1698,7 @@ buildchain release-propagation <plan|write-lock|work|pickup> ...
1687
1698
  - Syntax:
1688
1699
 
1689
1700
  ```text
1690
- buildchain release-propagation <plan|write-lock|work|pickup> ...
1701
+ buildchain release-propagation <plan|write-lock|work|entry|pickup> ...
1691
1702
  ```
1692
1703
 
1693
1704
  ### `buildchain release-propagation work`
@@ -1698,7 +1709,7 @@ buildchain release-propagation <plan|write-lock|work|pickup> ...
1698
1709
  - Syntax:
1699
1710
 
1700
1711
  ```text
1701
- buildchain release-propagation <plan|write-lock|work|pickup> ...
1712
+ buildchain release-propagation <plan|write-lock|work|entry|pickup> ...
1702
1713
  ```
1703
1714
 
1704
1715
  ### `buildchain release-propagation write-lock`
@@ -1709,7 +1720,7 @@ buildchain release-propagation <plan|write-lock|work|pickup> ...
1709
1720
  - Syntax:
1710
1721
 
1711
1722
  ```text
1712
- buildchain release-propagation <plan|write-lock|work|pickup> ...
1723
+ buildchain release-propagation <plan|write-lock|work|entry|pickup> ...
1713
1724
  ```
1714
1725
 
1715
1726
  ## `sample`
@@ -8,12 +8,12 @@ confidence: high
8
8
  sensitivity: public
9
9
  evidence_grade: A
10
10
  review_state: self-reviewed
11
- last_reviewed: 2026-07-29
11
+ last_reviewed: 2026-08-03
12
12
  ai_provenance:
13
13
  model_family: GPT-5
14
14
  product: Codex
15
15
  generated_at: 2026-07-29
16
- visible_context: Existing Buildchain source locks, Kungfu exact-source Alpha preflight, Dev Patrol, repository release governance, and the consumer-owned settlement renderer threat model.
16
+ visible_context: Existing Buildchain source locks, Kungfu exact-source Alpha preflight, Dev Patrol, protected auto-merge policy, repository release governance, and the consumer-owned settlement renderer threat model.
17
17
  invisible_context_boundary: No credentials, private logs, or private configuration were used.
18
18
  ---
19
19
 
@@ -114,12 +114,21 @@ service. Once the active PR settles or is abandoned, the next execution
114
114
  recomputes current exact-SHA qualification and creates only the newest still
115
115
  fresh candidate. It never trusts a `workflow_run` trigger SHA as evidence.
116
116
 
117
+ The caller may additionally set `auto-merge: true` and choose `merge-method`
118
+ from `merge`, `squash`, or `rebase`. Buildchain only arms GitHub auto-merge for
119
+ the single managed, open, exact-source candidate after the write-permission
120
+ settlement has revalidated the observation. GitHub still owns every required
121
+ review, required check, branch-protection, and merge-queue gate; Buildchain does
122
+ not approve or directly merge the PR. Invalid merge methods and GraphQL
123
+ refusals fail the patrol run.
124
+
117
125
  Consumers should invoke this workflow after relevant qualification workflow
118
126
  completion and from an offset periodic fallback. GitHub may delay scheduled
119
127
  runs, so the event path supplies low latency while the fallback supplies
120
128
  recovery. Workflow concurrency plus the server-side open-PR reconciliation
121
129
  makes duplicate or delayed events idempotent.
122
130
 
123
- The workflow never moves the Alpha ref directly, merges or auto-merges the pull
124
- request, publishes npm, creates a Git tag or GitHub Release, or changes branch
125
- protection. Those remain repository-owned protected settlement actions.
131
+ The workflow never moves the Alpha ref directly, directly merges the pull
132
+ request, approves it, publishes npm, creates a Git tag or GitHub Release, or
133
+ changes branch protection. Optional auto-merge only registers repository-owned
134
+ intent with GitHub; protected settlement remains authoritative.