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

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 (79) hide show
  1. package/AGENTS.md +41 -75
  2. package/CONTRIBUTING.md +19 -26
  3. package/architecture/agent-change-map.md +8 -12
  4. package/architecture/capability-state-machine-manifest.json +1 -4
  5. package/architecture/ci-lane-change-budget.json +35 -1026
  6. package/architecture/core-mechanisms.json +3 -6
  7. package/architecture/internal-capabilities.json +1 -5
  8. package/architecture/maintainability-debt.json +44 -36
  9. package/architecture/maintainability-policy.json +8 -8
  10. package/architecture/minimal-consumer-migration.json +80 -1977
  11. package/architecture/platform-stage-checkpoints.json +31 -7
  12. package/architecture/release-topology.json +64 -84
  13. package/architecture/stage-capsule-qualification.json +3 -1
  14. package/architecture/universal-workflow-bootstrap.json +3 -1
  15. package/architecture/universal-workflow-capability-policy.json +4 -4
  16. package/architecture/universal-workflow-fault-campaign.json +3 -1
  17. package/architecture/workflow-taxonomy.json +24 -341
  18. package/dist/site/buildchain-contract.json +13 -67
  19. package/dist/site/buildchain-site.json +33 -23
  20. package/dist/site/capability-registry.json +2 -2
  21. package/dist/site/controller-registry.json +1 -47
  22. package/dist/site/kfd-claims.json +78 -448
  23. package/dist/site/kfd-upstream-aggregate.json +1 -1
  24. package/dist/site/manual-registry.json +3 -3
  25. package/dist/site/node-api-registry.json +24 -24
  26. package/dist/site/page-registry.json +26 -16
  27. package/dist/site/public-surface-audit.json +35 -349
  28. package/dist/site/publication-authority-registry.json +51 -511
  29. package/dist/site/publication-registry.json +4 -4
  30. package/dist/site/site-manifest.json +7 -7
  31. package/dist/site/workflow-registry.json +263 -1128
  32. package/docs/code-organization.md +9 -6
  33. package/docs/node-api-reference.md +57 -57
  34. package/docs/release-governance.md +10 -12
  35. package/docs/runtime-entry.md +31 -3
  36. package/docs/runtime-train-validation.md +39 -11
  37. package/docs/stable-candidate-patrol.md +6 -5
  38. package/docs/workflow-catalog.md +3 -32
  39. package/package.json +1 -1
  40. package/packages/core/adoption/buildchain-kfd-claims.js +7 -7
  41. package/packages/core/dev-delivery/dev-delivery-provider-heartbeat.js +18 -15
  42. package/packages/core/dev-delivery/native/actions.js +2 -0
  43. package/packages/core/dev-delivery/native/process-entry.js +19 -0
  44. package/packages/core/dev-delivery/queue/landing-action.js +49 -1
  45. package/packages/core/dev-delivery/warrant/failure-settlement.js +8 -6
  46. package/packages/core/dev-delivery/warrant/service.js +7 -0
  47. package/packages/core/governance/buildchain-publication-authority.js +2 -23
  48. package/packages/core/governance/github-governance-authority.js +1 -0
  49. package/packages/core/observability/controller-evidence.js +0 -8
  50. package/packages/core/providers/github/pipeline-entry-runs.js +8 -1
  51. package/packages/core/providers/github/pipeline-events.js +79 -0
  52. package/packages/core/providers/github/pipeline-source.js +24 -7
  53. package/packages/core/publication/pipeline/pack.js +31 -8
  54. package/packages/core/workflow/pipeline/actions.js +0 -23
  55. package/packages/core/workflow/pipeline/build-evidence.js +123 -5
  56. package/packages/core/workflow/pipeline/build-result.js +1 -0
  57. package/packages/core/workflow/pipeline/channel-control.js +25 -4
  58. package/packages/core/workflow/pipeline/controller.js +9 -1
  59. package/packages/core/workflow/pipeline/delivery-control.js +54 -9
  60. package/packages/core/workflow/pipeline/delivery-observation.js +16 -10
  61. package/packages/core/workflow/pipeline/group-control.js +1 -0
  62. package/packages/core/workflow/pipeline/guard-build.js +37 -0
  63. package/packages/core/workflow/pipeline/guard.js +4 -2
  64. package/packages/core/workflow/pipeline/host.js +23 -1
  65. package/packages/core/workflow/pipeline/integration-status.js +113 -0
  66. package/packages/core/workflow/pipeline/record-action.js +27 -0
  67. package/packages/core/workflow/pipeline/recorder-status.js +69 -0
  68. package/packages/core/workflow/workflow-taxonomy.mjs +67 -47
  69. package/scripts/check-inventory.mjs +7 -70
  70. package/scripts/check-pipeline-publication-topology.mjs +2 -0
  71. package/scripts/check-public-dogfood-contract.mjs +38 -51
  72. package/scripts/check-release-topology.mjs +8 -7
  73. package/scripts/check-self-consumer-contract.mjs +133 -0
  74. package/scripts/check-universal-workflow-bootstrap.mjs +4 -6
  75. package/scripts/generate-minimal-consumer-contract.mjs +1 -1
  76. package/scripts/inventory/binary.mjs +9 -19
  77. package/scripts/inventory/promotion.mjs +2 -13
  78. package/scripts/prepare-product-toolchain.mjs +10 -0
  79. package/scripts/verify-product-platform.mjs +65 -0
@@ -28,7 +28,12 @@
28
28
  {
29
29
  "id": "checkout-input",
30
30
  "inputs": ["source-tree"],
31
- "outputs": [{ "name": "source-layout", "path": "source/layout.json" }],
31
+ "outputs": [
32
+ {
33
+ "name": "source-layout",
34
+ "path": "source/layout.json"
35
+ }
36
+ ],
32
37
  "environment": [],
33
38
  "toolchains": ["git"],
34
39
  "providerEffects": false
@@ -37,7 +42,10 @@
37
42
  "id": "install",
38
43
  "inputs": ["lockfile", "source-tree"],
39
44
  "outputs": [
40
- { "name": "dependency-layout", "path": "install/dependencies.json" }
45
+ {
46
+ "name": "dependency-layout",
47
+ "path": "install/dependencies.json"
48
+ }
41
49
  ],
42
50
  "environment": ["package-manager"],
43
51
  "toolchains": ["node"],
@@ -46,7 +54,12 @@
46
54
  {
47
55
  "id": "build",
48
56
  "inputs": ["dependency-layout", "source-tree"],
49
- "outputs": [{ "name": "build-output", "path": "build/output.bin" }],
57
+ "outputs": [
58
+ {
59
+ "name": "build-output",
60
+ "path": "build/output.bin"
61
+ }
62
+ ],
50
63
  "environment": ["build-profile"],
51
64
  "toolchains": ["node"],
52
65
  "providerEffects": false
@@ -55,7 +68,10 @@
55
68
  "id": "verify",
56
69
  "inputs": ["build-output", "source-tree"],
57
70
  "outputs": [
58
- { "name": "verification-report", "path": "verify/report.json" }
71
+ {
72
+ "name": "verification-report",
73
+ "path": "verify/report.json"
74
+ }
59
75
  ],
60
76
  "environment": ["verification-profile"],
61
77
  "toolchains": ["node"],
@@ -64,7 +80,12 @@
64
80
  {
65
81
  "id": "package",
66
82
  "inputs": ["build-output", "source-tree", "verification-report"],
67
- "outputs": [{ "name": "package-archive", "path": "package/archive.bin" }],
83
+ "outputs": [
84
+ {
85
+ "name": "package-archive",
86
+ "path": "package/archive.bin"
87
+ }
88
+ ],
68
89
  "environment": ["package-profile"],
69
90
  "toolchains": ["node"],
70
91
  "providerEffects": false
@@ -73,7 +94,10 @@
73
94
  "id": "signing-preparation",
74
95
  "inputs": ["package-archive", "source-tree"],
75
96
  "outputs": [
76
- { "name": "signing-request", "path": "signing/request.json" }
97
+ {
98
+ "name": "signing-request",
99
+ "path": "signing/request.json"
100
+ }
77
101
  ],
78
102
  "environment": ["signing-profile"],
79
103
  "toolchains": ["node"],
@@ -81,7 +105,7 @@
81
105
  }
82
106
  ],
83
107
  "projections": {
84
- "protectedWorkflow": ".github/workflows/self-build-verify.yml",
108
+ "protectedWorkflow": ".github/workflows/buildchain.yml",
85
109
  "generatedTemplate": "packages/core/adoption/commands/init-repo.mjs",
86
110
  "agentGuidance": "AGENTS.md",
87
111
  "manual": "docs/v4-stage-capsule.md"
@@ -17,6 +17,8 @@
17
17
  ".github/workflows/.release-pipeline-version.yml",
18
18
  ".github/workflows/.release-promote.yml",
19
19
  ".github/workflows/build.yml",
20
+ ".github/workflows/buildchain-recover.yml",
21
+ ".github/workflows/buildchain.yml",
20
22
  ".github/workflows/public-build-demo.yml",
21
23
  ".github/workflows/public-ops-alpha-candidate-patrol.yml",
22
24
  ".github/workflows/public-ops-dev-auto-merge.yml",
@@ -30,41 +32,22 @@
30
32
  ".github/workflows/public-release-promote.yml",
31
33
  ".github/workflows/public-release-propagation.yml",
32
34
  ".github/workflows/public-release-tail.yml",
33
- ".github/workflows/public-release-web.yml",
34
- ".github/workflows/self-build-alpha-dogfood.yml",
35
- ".github/workflows/self-build-demo-dogfood.yml",
36
- ".github/workflows/self-build-fixture.yml",
37
- ".github/workflows/self-build-stable-dogfood.yml",
38
- ".github/workflows/self-ops-dev-delivery.yml",
39
- ".github/workflows/self-ops-patrol-daily.yml",
40
- ".github/workflows/self-ops-patrol-monthly.yml",
41
- ".github/workflows/self-ops-patrol-weekly.yml",
42
- ".github/workflows/self-ops-promotion-recovery.yml",
43
- ".github/workflows/self-ops-stable-candidate-patrol.yml",
44
- ".github/workflows/self-release-binary-assets.yml",
45
- ".github/workflows/self-release-line-open.yml",
46
- ".github/workflows/self-release-next-development.yml",
47
- ".github/workflows/self-release-npm-dry-run.yml",
48
- ".github/workflows/self-release-promote.yml",
49
- ".github/workflows/self-release-rehearsal-dogfood.yml",
50
- ".github/workflows/self-release-tail-dogfood.yml"
35
+ ".github/workflows/public-release-web.yml"
51
36
  ],
52
37
  "unknownTopologyPolicy": "fail-closed"
53
38
  },
54
39
  "semanticScope": {
55
40
  "workflowPaths": [
56
41
  ".github/workflows/.release-promote.yml",
57
- ".github/workflows/self-ops-promotion-recovery.yml",
58
- ".github/workflows/self-release-promote.yml",
59
- ".github/workflows/public-release-promote.yml",
60
- ".github/workflows/self-release-tail-dogfood.yml"
42
+ ".github/workflows/public-release-promote.yml"
61
43
  ],
62
44
  "excludedMechanisms": [
63
45
  "Paper product release",
64
46
  "npm dry-run",
65
47
  "Protected generated version review: no package, tag or Release mutation; independently inventoried in closedWorld and privilegedExecutableClosure. Stable finalization review consumes the exact tag and regenerates the rooted version state before protected auto-merge.",
66
48
  "Post-publication protected development review: no package, tag or Release mutation; independently inventoried in closedWorld and privilegedExecutableClosure.",
67
- "Post-publication OCI Compose preview activation is measured separately in postPublicationScope; it consumes completed publication and qualification, copies one manifest to the sealed alias, and cannot materialize versions or release refs."
49
+ "Post-publication OCI Compose preview activation is measured separately in postPublicationScope; it consumes completed publication and qualification, copies one manifest to the sealed alias, and cannot materialize versions or release refs.",
50
+ "Generated normal and recovery callers delegate to the public pipeline; their authority is measured in pipelinePublicationScope, including the product publisher."
68
51
  ]
69
52
  },
70
53
  "authorityClosure": {
@@ -99,7 +82,10 @@
99
82
  "packages/core/runtime/entry/selection.js",
100
83
  "packages/core/runtime/entry/source.js"
101
84
  ],
102
- "runtimeEngines": ["packages/core/release/promote-candidate/action.js"],
85
+ "runtimeEngines": [
86
+ "packages/core/release/promote-candidate/action.js",
87
+ "packages/core/publication/pipeline/apply.js"
88
+ ],
103
89
  "terminalProjections": [
104
90
  "actions/release/promotion/apply/action.yml",
105
91
  "actions/release/promotion/settle/action.yml",
@@ -433,8 +419,8 @@
433
419
  "packages/core/release/promote-ref/internal/promote-release-channel.js",
434
420
  "packages/core/release/promote-ref/lib.js"
435
421
  ],
436
- "freshEntry": ".github/workflows/public-release-promote.yml",
437
- "recoveryEntry": ".github/workflows/self-ops-promotion-recovery.yml",
422
+ "freshEntry": ".github/workflows/public-ops-pipeline.yml",
423
+ "recoveryEntry": ".github/workflows/public-ops-recover.yml",
438
424
  "forbiddenPublisherPatterns": [
439
425
  "legacy-promote",
440
426
  "v4-declarative-promote",
@@ -513,54 +499,19 @@
513
499
  "resolve-promotion|runner|-|read|-|jobOutput|-"
514
500
  ],
515
501
  "reusableEdges": ["./.github/workflows/.release-promote.yml"]
516
- },
517
- {
518
- "path": ".github/workflows/self-ops-promotion-recovery.yml",
519
- "triggers": ["workflow_dispatch"],
520
- "jobs": [
521
- "resume|reusable-call|kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4|write|write|-|contents-write,oidc-write"
522
- ],
523
- "reusableEdges": [
524
- "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4"
525
- ]
526
- },
527
- {
528
- "path": ".github/workflows/self-release-promote.yml",
529
- "triggers": ["workflow_dispatch", "workflow_run"],
530
- "jobs": [
531
- "classify-workflow-run|runner|-|read|-|jobOutput|-",
532
- "execution-runtime|runner|-|read|-|jobOutput|-",
533
- "promote|reusable-call|kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4|write|write|-|contents-write,oidc-write",
534
- "reject-invalid-candidate-recovery|runner|-|read|-|-|-",
535
- "reject-invalid-durable-recovery|runner|-|read|-|-|-",
536
- "reject-manual-apply|runner|-|read|-|-|-"
537
- ],
538
- "reusableEdges": [
539
- "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4"
540
- ]
541
- },
542
- {
543
- "path": ".github/workflows/self-release-tail-dogfood.yml",
544
- "triggers": ["workflow_dispatch"],
545
- "jobs": [
546
- "publish|reusable-call|kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4|write|write|-|contents-write,oidc-write"
547
- ],
548
- "reusableEdges": [
549
- "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4"
550
- ]
551
502
  }
552
503
  ],
553
504
  "metrics": {
554
- "workflowCount": 39,
555
- "jobCount": 116,
556
- "reusableEdgeCount": 26,
557
- "mutationRelevantNodeCount": 77,
558
- "contentsWriteJobCount": 38,
559
- "oidcWriteJobCount": 25
505
+ "workflowCount": 24,
506
+ "jobCount": 87,
507
+ "reusableEdgeCount": 14,
508
+ "mutationRelevantNodeCount": 60,
509
+ "contentsWriteJobCount": 29,
510
+ "oidcWriteJobCount": 21
560
511
  },
561
512
  "semanticMetrics": {
562
- "workflowCount": 5,
563
- "mutationRelevantNodeCount": 8,
513
+ "workflowCount": 2,
514
+ "mutationRelevantNodeCount": 5,
564
515
  "contentsWriteJobCount": 1,
565
516
  "oidcWriteJobCount": 1
566
517
  }
@@ -613,16 +564,18 @@
613
564
  ".github/workflows/public-ops-pipeline.yml",
614
565
  ".github/workflows/public-ops-recover.yml",
615
566
  ".github/workflows/.ops-pipeline-execute.yml",
616
- ".github/workflows/.release-pipeline-version.yml"
567
+ ".github/workflows/.release-pipeline-version.yml",
568
+ ".github/workflows/buildchain.yml",
569
+ ".github/workflows/buildchain-recover.yml"
617
570
  ],
618
571
  "authority": "retained-protected-source-qualified-sealed-products-and-live-provider-readback",
619
572
  "maximumMetrics": {
620
- "workflowCount": 5,
621
- "jobCount": 21,
622
- "reusableEdgeCount": 6,
623
- "mutationRelevantNodeCount": 16,
624
- "contentsWriteJobCount": 16,
625
- "oidcWriteJobCount": 6
573
+ "workflowCount": 7,
574
+ "jobCount": 23,
575
+ "reusableEdgeCount": 8,
576
+ "mutationRelevantNodeCount": 18,
577
+ "contentsWriteJobCount": 18,
578
+ "oidcWriteJobCount": 8
626
579
  },
627
580
  "observedTopology": {
628
581
  "jobRecordFields": [
@@ -696,19 +649,46 @@
696
649
  "materialize|runner|-|write|-|jobOutput|contents-write"
697
650
  ],
698
651
  "reusableEdges": []
652
+ },
653
+ {
654
+ "path": ".github/workflows/buildchain.yml",
655
+ "triggers": [
656
+ "merge_group",
657
+ "pull_request",
658
+ "pull_request_review",
659
+ "pull_request_target",
660
+ "push",
661
+ "repository_dispatch"
662
+ ],
663
+ "jobs": [
664
+ "buildchain|reusable-call|kungfu-systems/buildchain/.github/workflows/public-ops-pipeline.yml@v4-alpha|write|write|-|contents-write,oidc-write"
665
+ ],
666
+ "reusableEdges": [
667
+ "kungfu-systems/buildchain/.github/workflows/public-ops-pipeline.yml@v4-alpha"
668
+ ]
669
+ },
670
+ {
671
+ "path": ".github/workflows/buildchain-recover.yml",
672
+ "triggers": ["workflow_dispatch"],
673
+ "jobs": [
674
+ "buildchain|reusable-call|kungfu-systems/buildchain/.github/workflows/public-ops-recover.yml@v4-alpha|write|write|-|contents-write,oidc-write"
675
+ ],
676
+ "reusableEdges": [
677
+ "kungfu-systems/buildchain/.github/workflows/public-ops-recover.yml@v4-alpha"
678
+ ]
699
679
  }
700
680
  ],
701
681
  "metrics": {
702
- "workflowCount": 5,
703
- "jobCount": 21,
704
- "reusableEdgeCount": 6,
705
- "mutationRelevantNodeCount": 16,
706
- "contentsWriteJobCount": 16,
707
- "oidcWriteJobCount": 6
682
+ "workflowCount": 7,
683
+ "jobCount": 23,
684
+ "reusableEdgeCount": 8,
685
+ "mutationRelevantNodeCount": 18,
686
+ "contentsWriteJobCount": 18,
687
+ "oidcWriteJobCount": 8
708
688
  },
709
689
  "semanticMetrics": {
710
- "workflowCount": 5,
711
- "mutationRelevantNodeCount": 16,
690
+ "workflowCount": 7,
691
+ "mutationRelevantNodeCount": 18,
712
692
  "contentsWriteJobCount": 10,
713
693
  "oidcWriteJobCount": 3
714
694
  }
@@ -46,7 +46,9 @@
46
46
  "relativeOrSelfInvocationAllowed": false,
47
47
  "directQualificationInvocationAllowed": false,
48
48
  "candidateBranchOverrideAllowed": false,
49
- "recursionRecovery": "floating-selector-with-trusted-runtime-input"
49
+ "recursionRecovery": "floating-selector-with-trusted-runtime-input",
50
+ "active": false,
51
+ "supersededBy": ".github/workflows/buildchain.yml"
50
52
  },
51
53
  "faultCampaign": [
52
54
  "corrupt",
@@ -57,7 +57,9 @@
57
57
  "runtimeRecovery": "same-public-entry-with-transient-runtime",
58
58
  "entryRecovery": "upgrade-public-entry-and-full-rerun",
59
59
  "executionAuthority": "selected-runtime",
60
- "entryRepairRequiresNewRelease": true
60
+ "entryRepairRequiresNewRelease": true,
61
+ "selfDogfoodActive": false,
62
+ "selfDogfoodSupersededBy": ".github/workflows/buildchain.yml"
61
63
  },
62
64
  "capabilityAdapters": [
63
65
  {
@@ -28,14 +28,15 @@
28
28
  "sha256:025e2a4a37bb9364c03aa3c9ab6bad773f78a541203a23791e2d7afd70d773ca",
29
29
  "sha256:02e8b51faabbc960e9c70b090426272b720f3e1438b69a0f683b21257bed6302",
30
30
  "sha256:07bb744fedc9512b1e40f5c00a0037194fc869600fc7fd07de7f3b975b9760ff",
31
- "sha256:13dea813a98cb2cc1a51cafb880127ee2c022f3c5aae5144818aec17e9cb7498",
32
31
  "sha256:17c5fc05f8599662cd061a94add5313dc0fcea58404f9a92ee632c98abce24c6",
33
32
  "sha256:1f3cbeb68fed850330720784bbe2d1d2c91b759cc2459a7fcd0b150af4c47c34",
34
33
  "sha256:24cbb86e8fb198f7a949372291e712dd83ff12ba667c7049775ef497261bc62e",
34
+ "sha256:2649d77a31c75fb93c40a04dea30362c3247cd777dc8ed38a2487d082d25ab05",
35
35
  "sha256:265ccc9da3d84b8bf50746b6722b18c680dcc65bd322a5170e81bd5d0fa5b2b0",
36
36
  "sha256:2c5a19fe5ebe2550336c42f7de0c71b0e736776758b404716a5f77e0236920dc",
37
37
  "sha256:34829b6e556284ef7c3f342fafcf92588a94761534e5f19ea12131f389ad4f50",
38
38
  "sha256:3d6119d1295ea7083d44a1b82fde5cb5dca910e427d1aee119d3ffbf421810f3",
39
+ "sha256:3da67ab9893f312415d23c3ec55ab2c16d20fb4efef972f954b3099141e42a08",
39
40
  "sha256:40fdce377a9b02cb53f41e822cfc5d96c2f7e57a86a7574bf8ee39f3e0f0e12e",
40
41
  "sha256:421b65afe174ce4ae57290efc73e43f94140b8ef70a2db5cda43e16921d61b4e",
41
42
  "sha256:428467c6ac1d768609ff12e72a190462bab9b5bc7dd2ea491553a364aa4c6ef6",
@@ -59,9 +60,8 @@
59
60
  "sha256:dd9ae24a7a586c616a7b3b2b733eb38bfd3f8b19e5faec9e16851719be6abd61",
60
61
  "sha256:deee1c61c9731de6e2120abd4c30d3ce760df2ff3f7afb4dd84973543b353660",
61
62
  "sha256:e207436baa946b3d25d0159a510b7da474cac8d33701c2e66c089117c05f473d",
62
- "sha256:e42c7878242188da76b146480ae7b1d1cc454eb93942d2071e97e458b2c12e2f",
63
63
  "sha256:f780070e235bffdee96fc355d7ed5e2fd4188482c41b24e2558a32086634a87c"
64
64
  ],
65
- "validFrom": "2026-08-30T00:00:00.000Z",
66
- "expiresAt": "2026-09-15T00:00:00.000Z"
65
+ "validFrom": "2026-09-15T00:00:00.000Z",
66
+ "expiresAt": "2026-10-01T00:00:00.000Z"
67
67
  }
@@ -60,7 +60,9 @@
60
60
  "id": "self-dogfood-caller",
61
61
  "injectionTarget": ".github/workflows/self-ops-bootstrap-dogfood.yml",
62
62
  "recoveryRoute": "upgrade-entry-and-full-rerun",
63
- "recoveryTarget": "templates/universal-buildchain-bootstrap.yml"
63
+ "recoveryTarget": "templates/universal-buildchain-bootstrap.yml",
64
+ "retired": true,
65
+ "retirementReason": "Standalone self caller removed; retained campaign does not qualify the minimal pipeline."
64
66
  }
65
67
  ]
66
68
  }