@kungfu-tech/buildchain 4.1.3-alpha.2 → 4.1.3-alpha.4

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 (80) hide show
  1. package/architecture/action-taxonomy.json +8 -0
  2. package/architecture/agent-change-map.md +23 -0
  3. package/architecture/ci-lane-change-budget.json +85 -0
  4. package/architecture/decisions/0009-pipeline-version-preparation.md +186 -0
  5. package/architecture/internal-capabilities.json +32 -2
  6. package/architecture/maintainability-debt.json +10 -4
  7. package/architecture/maintainability-policy.json +7 -7
  8. package/architecture/minimal-consumer-migration.json +9 -0
  9. package/architecture/product-upstreams.json +20 -0
  10. package/architecture/release-topology.json +63 -25
  11. package/architecture/universal-workflow-bootstrap.json +2 -0
  12. package/architecture/universal-workflow-capability-policy.json +1 -1
  13. package/architecture/workflow-taxonomy.json +11 -0
  14. package/dist/readers/business-attempt.cjs +6 -2
  15. package/dist/site/buildchain-contract.json +4 -4
  16. package/dist/site/buildchain-site.json +9 -9
  17. package/dist/site/capability-registry.json +2 -2
  18. package/dist/site/kfd-claims.json +82 -8
  19. package/dist/site/kfd-upstream-aggregate.json +1 -1
  20. package/dist/site/manual-registry.json +1 -1
  21. package/dist/site/node-api-registry.json +18 -18
  22. package/dist/site/page-registry.json +4 -4
  23. package/dist/site/public-surface-audit.json +64 -7
  24. package/dist/site/publication-authority-registry.json +21 -1
  25. package/dist/site/publication-registry.json +4 -4
  26. package/dist/site/site-manifest.json +5 -5
  27. package/dist/site/workflow-registry.json +113 -7
  28. package/docs/node-api-reference.md +34 -34
  29. package/docs/workflow-catalog.md +1 -0
  30. package/package.json +1 -1
  31. package/packages/core/build/standalone/build.js +7 -1
  32. package/packages/core/consumer/buildchain-config.js +2 -21
  33. package/packages/core/consumer/contract/plan.js +53 -3
  34. package/packages/core/consumer/contract/products.js +20 -2
  35. package/packages/core/consumer/contract/reader.js +47 -0
  36. package/packages/core/dev-delivery/commands/project-cut-merge-queue-admission.mjs +47 -20
  37. package/packages/core/governance/buildchain-publication-authority.js +1 -0
  38. package/packages/core/providers/github/discussions/materials.js +12 -4
  39. package/packages/core/providers/github/pipeline-entry-runs.js +203 -0
  40. package/packages/core/providers/github/pipeline-policy.js +44 -17
  41. package/packages/core/providers/github/pipeline-release-evidence.js +111 -0
  42. package/packages/core/providers/github/pipeline-stable-source.js +354 -0
  43. package/packages/core/providers/github/pipeline-version-artifacts.js +91 -0
  44. package/packages/core/providers/github/pipeline-version-readback.js +117 -0
  45. package/packages/core/providers/github/pipeline-version.js +10 -12
  46. package/packages/core/publication/pipeline/actions.js +17 -1
  47. package/packages/core/publication/pipeline/apply.js +23 -17
  48. package/packages/core/publication/pipeline/development-pr.js +28 -1
  49. package/packages/core/publication/pipeline/documents.js +37 -1
  50. package/packages/core/publication/pipeline/next-development.js +1 -0
  51. package/packages/core/publication/pipeline/pack.js +7 -1
  52. package/packages/core/publication/pipeline/plan.js +22 -0
  53. package/packages/core/publication/pipeline/prepare.js +44 -56
  54. package/packages/core/publication/pipeline/qualification.js +5 -0
  55. package/packages/core/publication/pipeline/stable-entry.js +215 -0
  56. package/packages/core/publication/pipeline/stable-products.js +317 -0
  57. package/packages/core/publication/pipeline/stable-wait.js +170 -0
  58. package/packages/core/publication/pipeline/stable.js +82 -0
  59. package/packages/core/publication/pipeline/version-actions.js +93 -0
  60. package/packages/core/publication/pipeline/version-build.js +130 -0
  61. package/packages/core/publication/pipeline/version-context.js +143 -0
  62. package/packages/core/publication/pipeline/version-material.js +36 -0
  63. package/packages/core/publication/pipeline/version-preparation.js +69 -0
  64. package/packages/core/publication/pipeline/version-regeneration.js +162 -0
  65. package/packages/core/publication/pipeline/version-source-guard.js +69 -0
  66. package/packages/core/publication/pipeline/worker.js +72 -0
  67. package/packages/core/release/stable-release-gate.js +11 -0
  68. package/packages/core/workflow/attempt/identity.js +7 -2
  69. package/packages/core/workflow/pipeline/actions.js +14 -1
  70. package/packages/core/workflow/pipeline/build-result.js +8 -0
  71. package/packages/core/workflow/pipeline/build.js +49 -2
  72. package/packages/core/workflow/pipeline/channel-control.js +10 -1
  73. package/packages/core/workflow/pipeline/channel-source.js +53 -0
  74. package/packages/core/workflow/pipeline/group-control.js +2 -0
  75. package/packages/core/workflow/pipeline/host.js +24 -16
  76. package/packages/core/workflow/pipeline/selection.js +9 -4
  77. package/scripts/check-pipeline-publication-topology.mjs +12 -0
  78. package/scripts/check-release-topology.mjs +1 -0
  79. package/scripts/generate-site-bundle.mjs +1 -1
  80. package/scripts/verify-standalone-product.mjs +42 -0
@@ -4,8 +4,8 @@
4
4
  "status": "passed",
5
5
  "summary": {
6
6
  "cliCommandCount": 117,
7
- "workflowCount": 72,
8
- "actionCount": 280,
7
+ "workflowCount": 73,
8
+ "actionCount": 283,
9
9
  "sitePageCount": 94,
10
10
  "docCommandRefCount": 1036,
11
11
  "failureCount": 0
@@ -878,8 +878,35 @@
878
878
  "BUILDCHAIN_NPM_TOKEN"
879
879
  ],
880
880
  "secretCount": 3,
881
- "outputs": [],
882
- "outputCount": 0
881
+ "outputs": [
882
+ "stable-wait"
883
+ ],
884
+ "outputCount": 1
885
+ },
886
+ {
887
+ "id": ".release-pipeline-version",
888
+ "path": ".github/workflows/.release-pipeline-version.yml",
889
+ "reusable": true,
890
+ "inputs": [
891
+ "context",
892
+ "matrix",
893
+ "operation",
894
+ "purpose",
895
+ "runtime-selection"
896
+ ],
897
+ "inputCount": 5,
898
+ "secrets": [
899
+ "BUILDCHAIN_APP_PRIVATE_KEY",
900
+ "BUILDCHAIN_AUTOMATION_TOKEN"
901
+ ],
902
+ "secretCount": 2,
903
+ "outputs": [
904
+ "context",
905
+ "matrix",
906
+ "operation",
907
+ "stable-wait"
908
+ ],
909
+ "outputCount": 4
883
910
  },
884
911
  {
885
912
  "id": ".release-promote",
@@ -4384,6 +4411,35 @@
4384
4411
  ],
4385
4412
  "inputCount": 2
4386
4413
  },
4414
+ {
4415
+ "id": "publication/version/build",
4416
+ "path": "actions/publication/version/build/action.yml",
4417
+ "inputs": [
4418
+ "context",
4419
+ "platform"
4420
+ ],
4421
+ "inputCount": 2
4422
+ },
4423
+ {
4424
+ "id": "publication/version/materialize-development",
4425
+ "path": "actions/publication/version/materialize-development/action.yml",
4426
+ "inputs": [
4427
+ "context",
4428
+ "pr-token",
4429
+ "token"
4430
+ ],
4431
+ "inputCount": 3
4432
+ },
4433
+ {
4434
+ "id": "publication/version/materialize-publication",
4435
+ "path": "actions/publication/version/materialize-publication/action.yml",
4436
+ "inputs": [
4437
+ "context",
4438
+ "operation",
4439
+ "token"
4440
+ ],
4441
+ "inputCount": 3
4442
+ },
4387
4443
  {
4388
4444
  "id": "release/binary/coordinates",
4389
4445
  "path": "actions/release/binary/coordinates/action.yml",
@@ -5491,9 +5547,10 @@
5491
5547
  "path": "actions/workflow/pipeline/wake/action.yml",
5492
5548
  "inputs": [
5493
5549
  "attempt",
5550
+ "stable-wait",
5494
5551
  "token"
5495
5552
  ],
5496
- "inputCount": 2
5553
+ "inputCount": 3
5497
5554
  },
5498
5555
  {
5499
5556
  "id": "workflow/settlement/seal",
@@ -11071,8 +11128,8 @@
11071
11128
  "workflowRegistryPath": "dist/site/workflow-registry.json",
11072
11129
  "pageRegistryPath": "dist/site/page-registry.json",
11073
11130
  "cliRegistryDigest": "e43fdb0289df88871f3f0febbe04dcb9311a252a2b1df9b3a83a2d10c9d4a70f",
11074
- "workflowRegistryDigest": "1a7df19b7f6fb4f7955bd2cfd1cc2a4e938d80f32e2ab2bca45f7bed29aed104",
11075
- "pageRegistryDigest": "1ed4d2d9e29138620c27644ab92954ccc0d564ffd4c4b426a759a76724a54d4f"
11131
+ "workflowRegistryDigest": "4e97a606f26351e0f946b4f455edb7017b54b6d16bb362d7ca91bf690a289666",
11132
+ "pageRegistryDigest": "71e5bb99567bf82b2c896da95f83197b58fad84e35ef54f5e9e4dc0cc3b7e465"
11076
11133
  },
11077
11134
  "comparison": {
11078
11135
  "missingCliRegistry": [],
@@ -156,6 +156,19 @@
156
156
  "runnerPolicy": "qualified-measured",
157
157
  "notes": ""
158
158
  },
159
+ {
160
+ "workflowPath": ".github/workflows/.release-pipeline-version.yml",
161
+ "authorityClass": "governance-write",
162
+ "publicationCapable": false,
163
+ "capabilityIds": [],
164
+ "credentialMode": "none",
165
+ "publisherWorkflowMode": "fixed",
166
+ "publisherWorkflowPath": ".github/workflows/.release-pipeline-version.yml",
167
+ "environment": "",
168
+ "environmentMode": "fixed",
169
+ "runnerPolicy": "unqualified",
170
+ "notes": ""
171
+ },
159
172
  {
160
173
  "workflowPath": ".github/workflows/.release-promote.yml",
161
174
  "authorityClass": "product-publication",
@@ -909,6 +922,13 @@
909
922
  ],
910
923
  "classified": true
911
924
  },
925
+ {
926
+ "path": ".github/workflows/.release-pipeline-version.yml",
927
+ "signals": [
928
+ "write-permission"
929
+ ],
930
+ "classified": true
931
+ },
912
932
  {
913
933
  "path": ".github/workflows/.release-promote.yml",
914
934
  "signals": [],
@@ -1327,5 +1347,5 @@
1327
1347
  "classified": true
1328
1348
  }
1329
1349
  ],
1330
- "registryDigest": "6dda3a3bc77be67600fe57c42cd6abe3d05744a6b3f3a49719b1a0395cba75b8"
1350
+ "registryDigest": "d60fb7e737c15cb032be4a8d2da05f9dad52a715707da3a04015d4e2d1da2574"
1331
1351
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-09-12T10:11:23.000Z",
5
- "publishedAt": "2026-09-12T10:11:23.000Z",
4
+ "generatedAt": "2026-09-13T11:18:20.000Z",
5
+ "publishedAt": "2026-09-13T11:18:20.000Z",
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": "11bec9f5220deefc640145fca8a9073707ebc2ab",
22
+ "sourceRevision": "5d19bfb4c25e83116f3bbd09a11dda8792bab7f7",
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": "4.1.3-alpha.2",
35
+ "version": "4.1.3-alpha.4",
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-09-12T10:11:23.000Z",
5
- "publishedAt": "2026-09-12T10:11:23.000Z",
4
+ "generatedAt": "2026-09-13T11:18:20.000Z",
5
+ "publishedAt": "2026-09-13T11:18:20.000Z",
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": "11bec9f5220deefc640145fca8a9073707ebc2ab",
22
+ "sourceRevision": "5d19bfb4c25e83116f3bbd09a11dda8792bab7f7",
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": "4.1.3-alpha.2",
40
+ "version": "4.1.3-alpha.4",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -253,7 +253,7 @@
253
253
  "path": "docs/node-api-reference.md",
254
254
  "plane": "use",
255
255
  "exists": true,
256
- "digest": "sha256:23782a5348b073974490eee5e79e4fe0d614d75c1a884d5899730f75a9da01f2"
256
+ "digest": "sha256:a7135f86b2c74078eed1b6fd920629addce974140d7f18a7cdc86c21c8fd7f8d"
257
257
  },
258
258
  {
259
259
  "id": "build-facts",
@@ -434,8 +434,10 @@
434
434
  "BUILDCHAIN_NPM_TOKEN"
435
435
  ],
436
436
  "secretCount": 3,
437
- "outputs": [],
438
- "outputCount": 0,
437
+ "outputs": [
438
+ "stable-wait"
439
+ ],
440
+ "outputCount": 1,
439
441
  "taxonomy": {
440
442
  "id": ".pipeline-products",
441
443
  "role": "component",
@@ -456,6 +458,50 @@
456
458
  "sunsetCondition": "explicit-contract-change-review",
457
459
  "nonDuplicationRationale": "Canonical workflow owns one declared API or orchestration responsibility."
458
460
  },
461
+ {
462
+ "id": ".release-pipeline-version",
463
+ "path": ".github/workflows/.release-pipeline-version.yml",
464
+ "reusable": true,
465
+ "inputs": [
466
+ "context",
467
+ "matrix",
468
+ "operation",
469
+ "purpose",
470
+ "runtime-selection"
471
+ ],
472
+ "inputCount": 5,
473
+ "secrets": [
474
+ "BUILDCHAIN_APP_PRIVATE_KEY",
475
+ "BUILDCHAIN_AUTOMATION_TOKEN"
476
+ ],
477
+ "secretCount": 2,
478
+ "outputs": [
479
+ "context",
480
+ "matrix",
481
+ "operation",
482
+ "stable-wait"
483
+ ],
484
+ "outputCount": 4,
485
+ "taxonomy": {
486
+ "id": ".pipeline-version",
487
+ "role": "component",
488
+ "category": "release",
489
+ "purpose": "pipeline-version",
490
+ "status": "active",
491
+ "canonicalPath": ".github/workflows/.release-pipeline-version.yml",
492
+ "compatibilityAlias": false
493
+ },
494
+ "surface": "reusable-workflow",
495
+ "capabilityGroup": "api-cli-reference",
496
+ "status": "active",
497
+ "owner": "buildchain-workflows",
498
+ "maturity": "active",
499
+ "introducedVersion": "4.1.0-alpha.0",
500
+ "compatibilityPromise": "current-contract-only",
501
+ "deprecationReplacement": "",
502
+ "sunsetCondition": "explicit-contract-change-review",
503
+ "nonDuplicationRationale": "Canonical workflow owns one declared API or orchestration responsibility."
504
+ },
459
505
  {
460
506
  "id": ".release-promote",
461
507
  "path": ".github/workflows/.release-promote.yml",
@@ -1155,7 +1201,7 @@
1155
1201
  "status": "preview",
1156
1202
  "owner": "buildchain-workflows",
1157
1203
  "maturity": "preview",
1158
- "introducedVersion": "4.1.3-alpha.2",
1204
+ "introducedVersion": "4.1.3-alpha.4",
1159
1205
  "compatibilityPromise": "current-contract-only",
1160
1206
  "deprecationReplacement": "",
1161
1207
  "sunsetCondition": "explicit-contract-change-review",
@@ -2653,7 +2699,7 @@
2653
2699
  "status": "preview",
2654
2700
  "owner": "buildchain-workflows",
2655
2701
  "maturity": "preview",
2656
- "introducedVersion": "4.1.3-alpha.2",
2702
+ "introducedVersion": "4.1.3-alpha.4",
2657
2703
  "compatibilityPromise": "current-contract-only",
2658
2704
  "deprecationReplacement": "",
2659
2705
  "sunsetCondition": "explicit-contract-change-review",
@@ -2683,7 +2729,7 @@
2683
2729
  "status": "preview",
2684
2730
  "owner": "buildchain-workflows",
2685
2731
  "maturity": "preview",
2686
- "introducedVersion": "4.1.3-alpha.2",
2732
+ "introducedVersion": "4.1.3-alpha.4",
2687
2733
  "compatibilityPromise": "current-contract-only",
2688
2734
  "deprecationReplacement": "",
2689
2735
  "sunsetCondition": "explicit-contract-change-review",
@@ -2713,7 +2759,7 @@
2713
2759
  "status": "preview",
2714
2760
  "owner": "buildchain-workflows",
2715
2761
  "maturity": "preview",
2716
- "introducedVersion": "4.1.3-alpha.2",
2762
+ "introducedVersion": "4.1.3-alpha.4",
2717
2763
  "compatibilityPromise": "current-contract-only",
2718
2764
  "deprecationReplacement": "",
2719
2765
  "sunsetCondition": "explicit-contract-change-review",
@@ -6987,6 +7033,65 @@
6987
7033
  "sunsetCondition": "explicit-contract-change-review",
6988
7034
  "nonDuplicationRationale": "One capability node owns the composite or JavaScript adapter boundary."
6989
7035
  },
7036
+ {
7037
+ "apiRole": "implementation",
7038
+ "id": "publication/version/build",
7039
+ "path": "actions/publication/version/build/action.yml",
7040
+ "inputs": [
7041
+ "context",
7042
+ "platform"
7043
+ ],
7044
+ "inputCount": 2,
7045
+ "capabilityGroup": "release-passport-trust",
7046
+ "status": "active",
7047
+ "owner": "buildchain-actions",
7048
+ "maturity": "stable",
7049
+ "introducedVersion": "4.1.0-alpha.0",
7050
+ "compatibilityPromise": "current-contract-only",
7051
+ "deprecationReplacement": "",
7052
+ "sunsetCondition": "explicit-contract-change-review",
7053
+ "nonDuplicationRationale": "One capability node owns the composite or JavaScript adapter boundary."
7054
+ },
7055
+ {
7056
+ "apiRole": "implementation",
7057
+ "id": "publication/version/materialize-development",
7058
+ "path": "actions/publication/version/materialize-development/action.yml",
7059
+ "inputs": [
7060
+ "context",
7061
+ "pr-token",
7062
+ "token"
7063
+ ],
7064
+ "inputCount": 3,
7065
+ "capabilityGroup": "release-passport-trust",
7066
+ "status": "active",
7067
+ "owner": "buildchain-actions",
7068
+ "maturity": "stable",
7069
+ "introducedVersion": "4.1.0-alpha.0",
7070
+ "compatibilityPromise": "current-contract-only",
7071
+ "deprecationReplacement": "",
7072
+ "sunsetCondition": "explicit-contract-change-review",
7073
+ "nonDuplicationRationale": "One capability node owns the composite or JavaScript adapter boundary."
7074
+ },
7075
+ {
7076
+ "apiRole": "implementation",
7077
+ "id": "publication/version/materialize-publication",
7078
+ "path": "actions/publication/version/materialize-publication/action.yml",
7079
+ "inputs": [
7080
+ "context",
7081
+ "operation",
7082
+ "token"
7083
+ ],
7084
+ "inputCount": 3,
7085
+ "capabilityGroup": "release-passport-trust",
7086
+ "status": "active",
7087
+ "owner": "buildchain-actions",
7088
+ "maturity": "stable",
7089
+ "introducedVersion": "4.1.0-alpha.0",
7090
+ "compatibilityPromise": "current-contract-only",
7091
+ "deprecationReplacement": "",
7092
+ "sunsetCondition": "explicit-contract-change-review",
7093
+ "nonDuplicationRationale": "One capability node owns the composite or JavaScript adapter boundary."
7094
+ },
6990
7095
  {
6991
7096
  "apiRole": "implementation",
6992
7097
  "id": "release/binary/coordinates",
@@ -9045,9 +9150,10 @@
9045
9150
  "path": "actions/workflow/pipeline/wake/action.yml",
9046
9151
  "inputs": [
9047
9152
  "attempt",
9153
+ "stable-wait",
9048
9154
  "token"
9049
9155
  ],
9050
- "inputCount": 2,
9156
+ "inputCount": 3,
9051
9157
  "capabilityGroup": "api-cli-reference",
9052
9158
  "status": "active",
9053
9159
  "owner": "buildchain-actions",