@kungfu-tech/buildchain 4.0.1-alpha.3 → 4.0.1-alpha.30

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 (171) hide show
  1. package/actions/release-tail/README.md +8 -0
  2. package/architecture/ci-lane-change-budget.json +187 -0
  3. package/architecture/decisions/0002-next-development-transition.md +101 -0
  4. package/architecture/internal-capabilities.json +117 -8
  5. package/architecture/maintainability-policy.json +43 -25
  6. package/architecture/release-tail-contract-inventory.json +5 -2
  7. package/architecture/v3-core-mechanism-inventory.json +89 -0
  8. package/architecture/v4-adopter-delivery-parity.json +32 -5
  9. package/architecture/v4-capability-state-machine-manifest.json +73 -0
  10. package/architecture/v4-compatibility-facts-parity.json +77 -0
  11. package/architecture/v4-delivery-warrant-shadow-fixtures.json +15 -6
  12. package/architecture/v4-floating-consumer-policy.json +6 -0
  13. package/architecture/v4-next-development-parity.json +192 -0
  14. package/architecture/v4-publication-rehearsal-parity.json +84 -0
  15. package/architecture/v4-release-train-parity.json +1 -0
  16. package/architecture/v4-tail-reseal-parity.json +150 -0
  17. package/bin/buildchain.mjs +23 -2
  18. package/bin/internal/adopter-delivery-cli.mjs +70 -0
  19. package/bin/internal/command-registry.mjs +3 -0
  20. package/bin/internal/compatibility-facts-cli.mjs +101 -0
  21. package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +47 -0
  22. package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +47 -0
  23. package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +40 -0
  24. package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +19 -0
  25. package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +93 -0
  26. package/contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json +29 -0
  27. package/contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json +26 -0
  28. package/contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json +50 -0
  29. package/contracts/fixtures/v4-compatibility-facts-v1/shared.json +1129 -0
  30. package/contracts/fixtures/v4-floating-consumer-policy-v1/cases.json +7 -1
  31. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/artifacts/product.bin +1 -0
  32. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/config/buildchain.toml +5 -0
  33. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json +1 -0
  34. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json +1 -0
  35. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/evidence/qualification.json +1 -0
  36. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/candidate.json +5 -0
  37. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json +1 -0
  38. package/contracts/fixtures/v4-publication-rehearsal-v1/capsule.json +707 -0
  39. package/contracts/fixtures/v4-publication-rehearsal-v1/offline-vectors.json +27 -0
  40. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +229 -0
  41. package/contracts/next-development-request-v1.schema.json +66 -0
  42. package/contracts/next-development-transition-v1.schema.json +292 -0
  43. package/contracts/v4-adopter-delivery-v1.schema.json +81 -0
  44. package/contracts/v4-compatibility-facts-v1.schema.json +230 -0
  45. package/contracts/v4-floating-consumer-policy-receipt-v1.schema.json +4 -2
  46. package/contracts/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  47. package/contracts/v4-tail-reseal-v1.schema.json +276 -0
  48. package/dist/site/agent-index.json +4 -0
  49. package/dist/site/artifact-schemas.json +8 -0
  50. package/dist/site/buildchain-contract.json +1393 -28
  51. package/dist/site/buildchain-site.json +477 -32
  52. package/dist/site/capability-registry.json +17 -14
  53. package/dist/site/cli-registry.json +159 -1
  54. package/dist/site/kfd-claims.json +455 -15
  55. package/dist/site/kfd-upstream-aggregate.json +1 -1
  56. package/dist/site/manual-registry.json +53 -7
  57. package/dist/site/node-api-registry.json +13921 -9565
  58. package/dist/site/page-registry.json +442 -21
  59. package/dist/site/public-surface-audit.json +440 -11
  60. package/dist/site/publication-authority-registry.json +44 -8
  61. package/dist/site/publication-registry.json +4 -4
  62. package/dist/site/release-provenance.json +22 -0
  63. package/dist/site/schemas/release-tail-capabilities-v1.schema.json +199 -0
  64. package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +81 -0
  65. package/dist/site/schemas/v4-compatibility-facts-v1.schema.json +230 -0
  66. package/dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  67. package/dist/site/site-manifest.json +35 -11
  68. package/dist/site/workflow-registry.json +142 -8
  69. package/docs/MAP.md +7 -2
  70. package/docs/cli-reference.md +193 -0
  71. package/docs/cli.md +8 -0
  72. package/docs/dev-alpha-candidate-patrol.md +8 -0
  73. package/docs/dev-delivery-warrant.md +30 -5
  74. package/docs/next-development-transition.md +118 -0
  75. package/docs/node-api-reference.md +578 -285
  76. package/docs/release-candidate.md +7 -0
  77. package/docs/release-tail-provider-plane.md +30 -0
  78. package/docs/v4-adopter-delivery.md +133 -0
  79. package/docs/v4-compatibility-facts.md +91 -0
  80. package/docs/v4-publication-rehearsal.md +130 -0
  81. package/docs/v4-tail-reseal.md +73 -0
  82. package/docs/versioning.md +4 -3
  83. package/package.json +30 -6
  84. package/packages/core/adopter-delivery-passport.js +259 -0
  85. package/packages/core/adopter-delivery-vectors.js +158 -0
  86. package/packages/core/adopter-delivery-vectors.json +77 -0
  87. package/packages/core/buildchain-agent-manuals.js +3 -0
  88. package/packages/core/buildchain-compatibility-authority.js +336 -0
  89. package/packages/core/buildchain-compatibility-fact.js +394 -0
  90. package/packages/core/buildchain-compatibility-facts.json +217 -0
  91. package/packages/core/buildchain-compatibility-proof.js +566 -0
  92. package/packages/core/buildchain-config.js +84 -0
  93. package/packages/core/buildchain-contract.js +93 -141
  94. package/packages/core/buildchain-delivery-bootstrap.js +240 -0
  95. package/packages/core/buildchain-delivery-infrastructure.js +164 -0
  96. package/packages/core/buildchain-delivery-self-dogfood.js +395 -0
  97. package/packages/core/buildchain-publication-authority.js +1 -0
  98. package/packages/core/channel-candidate.js +8 -0
  99. package/packages/core/channel-promotion-baseline.js +55 -0
  100. package/packages/core/ci-lane-change-budget.js +247 -0
  101. package/packages/core/dev-alpha-candidate-selection.js +10 -2
  102. package/packages/core/dev-delivery-execution-transfer.js +21 -1
  103. package/packages/core/dev-delivery-native-proof.js +43 -27
  104. package/packages/core/dev-delivery-process-boundary.js +19 -7
  105. package/packages/core/dev-delivery-provider-heartbeat.js +18 -6
  106. package/packages/core/dev-delivery-warrant-state.js +32 -10
  107. package/packages/core/dev-delivery-warrant.js +9 -3
  108. package/packages/core/github-governance-authority.js +1 -0
  109. package/packages/core/index.js +5 -0
  110. package/packages/core/kungfu-temporal-fact.js +557 -0
  111. package/packages/core/legacy-kfd-adopter-driver.js +167 -0
  112. package/packages/core/next-development-candidate-reservation.js +186 -0
  113. package/packages/core/next-development-controller.js +728 -0
  114. package/packages/core/next-development-projection.js +287 -0
  115. package/packages/core/next-development-transition.js +738 -0
  116. package/packages/core/paper-agent-entry.js +11 -5
  117. package/packages/core/paper.js +16 -5
  118. package/packages/core/published-delivery-authority.js +266 -0
  119. package/packages/core/release-candidate-recovery.js +70 -15
  120. package/packages/core/release-candidate.js +2 -2
  121. package/packages/core/release-passport.js +36 -9
  122. package/packages/core/v4-adopter-delivery-parity.js +3 -3
  123. package/packages/core/v4-adopter-delivery.js +359 -0
  124. package/packages/core/v4-canonical-contracts.js +5 -0
  125. package/packages/core/v4-delivery-warrant-read-candidate.js +10 -3
  126. package/packages/core/v4-floating-consumer-evidence.js +18 -4
  127. package/packages/core/v4-floating-consumer-policy.js +143 -20
  128. package/packages/core/v4-floating-consumer-release-passport.js +35 -8
  129. package/packages/core/v4-publication-rehearsal-capsule.js +468 -0
  130. package/packages/core/v4-publication-rehearsal-provider-bindings.js +212 -0
  131. package/packages/core/v4-publication-rehearsal.js +481 -0
  132. package/packages/core/v4-tail-reseal-contract.js +26 -0
  133. package/packages/core/v4-tail-reseal-github.js +178 -0
  134. package/packages/core/v4-tail-reseal-receipt.js +225 -0
  135. package/packages/core/v4-tail-reseal.js +594 -0
  136. package/packages/core/workflow-yaml-contract.js +24 -2
  137. package/scripts/artifact-signing-controller-core.mjs +1 -1
  138. package/scripts/buildchain-cli-help.mjs +30 -0
  139. package/scripts/check-ci-lane-change-budget.mjs +100 -0
  140. package/scripts/check-inventory.mjs +14 -3
  141. package/scripts/check-v4-floating-consumer-policy-contract.mjs +23 -4
  142. package/scripts/dev-alpha-candidate-patrol.mjs +22 -1
  143. package/scripts/dev-delivery-source-proof-replay.mjs +153 -0
  144. package/scripts/dev-delivery-source-proof-reuse.mjs +13 -97
  145. package/scripts/dev-delivery-warrant-store.mjs +10 -6
  146. package/scripts/dev-delivery-warrant.mjs +5 -1
  147. package/scripts/dev-pr-auto-merge.mjs +1 -1
  148. package/scripts/dev-pr-delivery-warrant.mjs +1 -0
  149. package/scripts/dev-pr-prequeue-guard.mjs +0 -18
  150. package/scripts/dev-qualification-patrol.mjs +9 -9
  151. package/scripts/dispatch-artifact-signing-authority.mjs +1 -1
  152. package/scripts/generate-channel-promotion-workflow.mjs +2 -2
  153. package/scripts/generate-next-development-guidance.mjs +49 -0
  154. package/scripts/generate-release-candidate-passport.mjs +152 -0
  155. package/scripts/generate-site-bundle.mjs +46 -3
  156. package/scripts/init-repo.mjs +22 -4
  157. package/scripts/next-development-self-dogfood-harness.mjs +460 -0
  158. package/scripts/next-development-self-dogfood.mjs +597 -0
  159. package/scripts/next-development-transition.mjs +47 -0
  160. package/scripts/promotion-channel-router.mjs +4 -4
  161. package/scripts/release-candidate-anchor-provenance.mjs +99 -0
  162. package/scripts/release-tail.mjs +51 -3
  163. package/scripts/release-train-self-dogfood.mjs +94 -92
  164. package/scripts/resume-from-candidate-run.mjs +560 -30
  165. package/scripts/site-capability-metadata.mjs +29 -0
  166. package/scripts/stable-candidate-qualification.mjs +9 -10
  167. package/scripts/v4-consumer-policy.mjs +5 -5
  168. package/scripts/v4-publication-rehearsal-fixture.mjs +144 -0
  169. package/scripts/v4-tail-reseal-macos-rehearsal.mjs +134 -0
  170. package/scripts/v4-tail-reseal.mjs +416 -0
  171. package/templates/native-dev-delivery.yml +2 -0
@@ -11,3 +11,11 @@ not the adapter, compares the observed subject and target roots, owns retry and
11
11
  terminal classification, checkpoints state and emits the standardized receipt.
12
12
  Tokens remain Action inputs and are never written to the transaction or
13
13
  receipt.
14
+
15
+ When `rehearsal-capsule` is supplied, the same Action switches to the v4
16
+ Publication Rehearsal Capsule boundary. `simulate` and `replay` remain
17
+ effect-disabled. `provider` additionally requires exact capsule-bound
18
+ rehearsal authority, consumes only the capsule-rooted data bindings, and
19
+ records every request/readback while still emitting
20
+ `productionAuthority: false` and no Release Passport. See
21
+ [`docs/v4-publication-rehearsal.md`](../../docs/v4-publication-rehearsal.md).
@@ -0,0 +1,187 @@
1
+ {
2
+ "schema": "buildchain.ci-lane-change-budget/v1",
3
+ "authorityClassification": "repository-policy-enforcement",
4
+ "baseline": {
5
+ "gitRevision": "7fdf0b560670df65929ab2ee833c3d6339372d8a",
6
+ "source": "protected dev/v4/v4.0 before CI lane change-budget enforcement",
7
+ "laneSetRoot": "sha256:5bed17dc265f424e5d528949231146c633be954b8c3c2535ba18aec6ac1465a4",
8
+ "lanes": [
9
+ ".github/workflows/.auditable-demo.yml#gate",
10
+ ".github/workflows/.auditable-demo.yml#render",
11
+ ".github/workflows/.binary-release-assets.yml#publication-authority",
12
+ ".github/workflows/.binary-release-assets.yml#publish",
13
+ ".github/workflows/.build.yml#anchored-release-preflight",
14
+ ".github/workflows/.build.yml#artifact-signing-control",
15
+ ".github/workflows/.build.yml#artifact-transfer",
16
+ ".github/workflows/.build.yml#build-linux-container",
17
+ ".github/workflows/.build.yml#build-native",
18
+ ".github/workflows/.build.yml#controller-plan",
19
+ ".github/workflows/.build.yml#controller-receipt",
20
+ ".github/workflows/.build.yml#credential-island-macos",
21
+ ".github/workflows/.build.yml#finalize-artifact-signing",
22
+ ".github/workflows/.build.yml#relay-artifacts",
23
+ ".github/workflows/.build.yml#resolve-contract",
24
+ ".github/workflows/.build.yml#resolve-source",
25
+ ".github/workflows/.build.yml#summarize",
26
+ ".github/workflows/.build.yml#trust-gate",
27
+ ".github/workflows/.bump-minor-version.yml#bump",
28
+ ".github/workflows/.declarative-auditable-demo.yml#capture",
29
+ ".github/workflows/.declarative-auditable-demo.yml#publish",
30
+ ".github/workflows/.declarative-auditable-demo.yml#qualify",
31
+ ".github/workflows/.gate-profile.yml#aggregate",
32
+ ".github/workflows/.gate-profile.yml#plan",
33
+ ".github/workflows/.gate-profile.yml#run-gates",
34
+ ".github/workflows/.publication-authority.yml#verify",
35
+ ".github/workflows/.release-candidate-promote.yml#controller-plan",
36
+ ".github/workflows/.release-candidate-promote.yml#controller-receipt",
37
+ ".github/workflows/.release-candidate-promote.yml#github-artifact-attestation",
38
+ ".github/workflows/.release-candidate-promote.yml#preflight",
39
+ ".github/workflows/.release-candidate-promote.yml#promote",
40
+ ".github/workflows/.release-candidate-promote.yml#publication-authority",
41
+ ".github/workflows/.release-candidate-promote.yml#publication-plan",
42
+ ".github/workflows/.release-candidate-promote.yml#publication-qualification",
43
+ ".github/workflows/.release-candidate-promote.yml#publish-github-artifact-attestation-evidence",
44
+ ".github/workflows/.release-candidate-promote.yml#qualification-plan",
45
+ ".github/workflows/.release-candidate-promote.yml#release-candidate-preflight",
46
+ ".github/workflows/.release-docker.yml#retired",
47
+ ".github/workflows/.release-elastic-beanstalk.yml#retired",
48
+ ".github/workflows/.release-new-version.yml#retired",
49
+ ".github/workflows/.release-verify.yml#build",
50
+ ".github/workflows/.release-verify.yml#build_local",
51
+ ".github/workflows/.release-verify.yml#prepare",
52
+ ".github/workflows/.release-verify.yml#verify",
53
+ ".github/workflows/.sam-release.yml#retired",
54
+ ".github/workflows/.sam-verify.yml#build",
55
+ ".github/workflows/.sam-verify.yml#prepare",
56
+ ".github/workflows/.sam-verify.yml#verify",
57
+ ".github/workflows/.sync-release-page.yml#sync-release-page",
58
+ ".github/workflows/.sync-remote-git.yml#sync",
59
+ ".github/workflows/.web-surface.yml#apply-input-gate",
60
+ ".github/workflows/.web-surface.yml#controller-plan",
61
+ ".github/workflows/.web-surface.yml#controller-receipt",
62
+ ".github/workflows/.web-surface.yml#external-publication-authority",
63
+ ".github/workflows/.web-surface.yml#open-production-release-pr",
64
+ ".github/workflows/.web-surface.yml#plan",
65
+ ".github/workflows/.web-surface.yml#preview-apply",
66
+ ".github/workflows/.web-surface.yml#preview-cleanup",
67
+ ".github/workflows/.web-surface.yml#production-apply",
68
+ ".github/workflows/.web-surface.yml#publication-authority",
69
+ ".github/workflows/.web-surface.yml#publication-decision",
70
+ ".github/workflows/.web-surface.yml#release-intent",
71
+ ".github/workflows/.web-surface.yml#runtime",
72
+ ".github/workflows/.web-surface.yml#staging-apply",
73
+ ".github/workflows/.wheel-release.yml#retired",
74
+ ".github/workflows/.wheel-verify.yml#build",
75
+ ".github/workflows/.wheel-verify.yml#prepare",
76
+ ".github/workflows/.wheel-verify.yml#verify",
77
+ ".github/workflows/artifact-signing-authority.yml#deliver",
78
+ ".github/workflows/artifact-signing-authority.yml#detached",
79
+ ".github/workflows/artifact-signing-authority.yml#intake",
80
+ ".github/workflows/artifact-signing-authority.yml#macos",
81
+ ".github/workflows/artifact-signing-authority.yml#windows",
82
+ ".github/workflows/auditable-demo-media-profile-qualification.yml#qualify",
83
+ ".github/workflows/auditable-demo.yml#dogfood",
84
+ ".github/workflows/auditable-demo.yml#exact-binary",
85
+ ".github/workflows/binary-distribution.yml#binary",
86
+ ".github/workflows/binary-distribution.yml#dispatch-publication",
87
+ ".github/workflows/binary-distribution.yml#passport",
88
+ ".github/workflows/binary-distribution.yml#preflight",
89
+ ".github/workflows/binary-release-assets.yml#publish",
90
+ ".github/workflows/binary-release-assets.yml#resolve",
91
+ ".github/workflows/build-surface-fixture.yml#buildchain-package-candidate",
92
+ ".github/workflows/build-surface-fixture.yml#libnode-shaped",
93
+ ".github/workflows/build.yml#alpha",
94
+ ".github/workflows/build.yml#controller-plan",
95
+ ".github/workflows/build.yml#controller-receipt",
96
+ ".github/workflows/build.yml#override",
97
+ ".github/workflows/build.yml#resolve-channel",
98
+ ".github/workflows/build.yml#stable",
99
+ ".github/workflows/build.yml#summarize",
100
+ ".github/workflows/buildchain-alpha-self-dogfood.yml#alpha-consumer",
101
+ ".github/workflows/buildchain-alpha-self-dogfood.yml#stable-consumer",
102
+ ".github/workflows/buildchain-alpha-self-dogfood.yml#verify-floating-refs",
103
+ ".github/workflows/buildchain-candidate-recovery-dogfood-failure.yml#deterministic-startup-router-failure",
104
+ ".github/workflows/buildchain-dev-delivery.yml#deliver",
105
+ ".github/workflows/buildchain-patrol-daily.yml#patrol",
106
+ ".github/workflows/buildchain-patrol-monthly.yml#patrol",
107
+ ".github/workflows/buildchain-patrol-weekly.yml#patrol",
108
+ ".github/workflows/buildchain-patrol.yml#patrol",
109
+ ".github/workflows/buildchain-ref-promotion-recovery.yml#consumer-admission",
110
+ ".github/workflows/buildchain-ref-promotion-recovery.yml#promote-alpha-recovery",
111
+ ".github/workflows/buildchain-ref-promotion.yml#promote-alpha",
112
+ ".github/workflows/buildchain-ref-promotion.yml#promote-stable",
113
+ ".github/workflows/buildchain-ref-promotion.yml#reject-invalid-candidate-recovery",
114
+ ".github/workflows/buildchain-ref-promotion.yml#reject-invalid-durable-recovery",
115
+ ".github/workflows/buildchain-ref-promotion.yml#reject-manual-apply",
116
+ ".github/workflows/buildchain-stable-candidate-patrol.yml#patrol",
117
+ ".github/workflows/buildchain-stable-candidate-qualification.yml#qualify",
118
+ ".github/workflows/candidate-lab.yml#lab",
119
+ ".github/workflows/check.yml#check",
120
+ ".github/workflows/dev-alpha-candidate-patrol.yml#observe",
121
+ ".github/workflows/dev-alpha-candidate-patrol.yml#settle",
122
+ ".github/workflows/dev-delivery-warrant-cancel.yml#cancel",
123
+ ".github/workflows/dev-delivery-warrant-close.yml#close",
124
+ ".github/workflows/dev-merge-queue-governance.yml#reconcile",
125
+ ".github/workflows/dev-pr-auto-merge.yml#admission",
126
+ ".github/workflows/dev-pr-auto-merge.yml#delivery-heartbeat",
127
+ ".github/workflows/dev-pr-auto-merge.yml#merge-dev-prs",
128
+ ".github/workflows/dev-pr-auto-merge.yml#native-execution",
129
+ ".github/workflows/dev-pr-auto-merge.yml#seal-native-execution",
130
+ ".github/workflows/dev-qualification-patrol.yml#mutate",
131
+ ".github/workflows/dev-qualification-patrol.yml#observe",
132
+ ".github/workflows/engineering-housekeeper-daily.yml#apply",
133
+ ".github/workflows/engineering-housekeeper-daily.yml#invalid-apply-gate",
134
+ ".github/workflows/engineering-housekeeper-daily.yml#report",
135
+ ".github/workflows/engineering-housekeeper-monthly.yml#apply",
136
+ ".github/workflows/engineering-housekeeper-monthly.yml#invalid-apply-gate",
137
+ ".github/workflows/engineering-housekeeper-monthly.yml#report",
138
+ ".github/workflows/engineering-housekeeper-weekly.yml#apply",
139
+ ".github/workflows/engineering-housekeeper-weekly.yml#invalid-apply-gate",
140
+ ".github/workflows/engineering-housekeeper-weekly.yml#report",
141
+ ".github/workflows/engineering-housekeeper.yml#delete-branches",
142
+ ".github/workflows/engineering-housekeeper.yml#label-pull-requests",
143
+ ".github/workflows/engineering-housekeeper.yml#plan",
144
+ ".github/workflows/github-artifact-attestation.yml#attest",
145
+ ".github/workflows/github-governance-audit.yml#audit",
146
+ ".github/workflows/npm-publish.yml#dry-run",
147
+ ".github/workflows/paper-release-sealed.yml#publication-authority",
148
+ ".github/workflows/paper-release-sealed.yml#publication-candidate",
149
+ ".github/workflows/paper-release-sealed.yml#publish",
150
+ ".github/workflows/paper-release.yml#paper-release",
151
+ ".github/workflows/paper-release.yml#publication-authority",
152
+ ".github/workflows/patrol-daily.yml#patrol",
153
+ ".github/workflows/patrol-monthly.yml#patrol",
154
+ ".github/workflows/patrol-observed-evidence.yml#publish",
155
+ ".github/workflows/patrol-weekly.yml#patrol",
156
+ ".github/workflows/publication-artifact.yml#publication",
157
+ ".github/workflows/release-candidate-promote.yml#alpha",
158
+ ".github/workflows/release-candidate-promote.yml#consumer-admission",
159
+ ".github/workflows/release-candidate-promote.yml#resolve-promotion",
160
+ ".github/workflows/release-candidate-promote.yml#stable",
161
+ ".github/workflows/release-governance-reconcile.yml#reconcile",
162
+ ".github/workflows/release-line-bootstrap.yml#bootstrap",
163
+ ".github/workflows/release-new-version.yml#buildchain-self-release",
164
+ ".github/workflows/release-propagation.yml#propagate",
165
+ ".github/workflows/release-tail.yml#release-tail",
166
+ ".github/workflows/release-verify.yml#try",
167
+ ".github/workflows/release-verify.yml#verify",
168
+ ".github/workflows/schedule-purge-artifacts.yml#delete-artifacts",
169
+ ".github/workflows/self-hosted-runner-smoke.yml#smoke",
170
+ ".github/workflows/stable-candidate-patrol.yml#patrol",
171
+ ".github/workflows/v4-adopter-delivery-dogfood.yml#dogfood",
172
+ ".github/workflows/v4-adopter-delivery.yml#conformance",
173
+ ".github/workflows/v4-adopter-delivery.yml#consumer-admission",
174
+ ".github/workflows/v4-public-consumer-dogfood.yml#dogfood",
175
+ ".github/workflows/v4-publication-rehearsal-dogfood.yml#rehearsal",
176
+ ".github/workflows/v4-stage-capsule-canary.yml#consumer-admission",
177
+ ".github/workflows/v4-stage-capsule-canary.yml#qualify",
178
+ ".github/workflows/v4-stage-capsule-canary.yml#reconcile",
179
+ ".github/workflows/v4-tail-reseal.yml#plan",
180
+ ".github/workflows/v4-tail-reseal.yml#platforms",
181
+ ".github/workflows/v4-tail-reseal.yml#seal",
182
+ ".github/workflows/verify.yml#check",
183
+ ".github/workflows/verify.yml#stage-capsule-checkpoints"
184
+ ]
185
+ },
186
+ "declarations": []
187
+ }
@@ -0,0 +1,101 @@
1
+ ---
2
+ status: accepted
3
+ period: 2026-08-11
4
+ theme: next-development-transition
5
+ doc_type: architecture-decision-record
6
+ source_level: local-files
7
+ confidence: high
8
+ sensitivity: public
9
+ evidence_grade: A
10
+ review_state: self-reviewed
11
+ last_reviewed: 2026-08-11
12
+ ---
13
+
14
+ # ADR 0002: Alpha Publication and Next-development Are Separate Transactions
15
+
16
+ ## Status
17
+
18
+ Accepted. This decision is normative for Buildchain promotion controllers and
19
+ for generated consumer guidance.
20
+
21
+ ## Context
22
+
23
+ An Alpha publication and preparation of the following development version have
24
+ different trust boundaries. Alpha publication establishes public, immutable
25
+ facts about version N. Preparing N+1 changes repository version material and
26
+ may require a protected pull request or an upstream anchor that does not exist
27
+ when Alpha N completes. Treating both operations as one success condition makes
28
+ a post-publication conflict appear to invalidate a publication that already
29
+ succeeded, and encourages retries to move Alpha refs while repairing Dev.
30
+
31
+ Buildchain supports two legal version models:
32
+
33
+ - `semver` with `next = "auto"`, where N+1 increments the Alpha sequence on
34
+ the same semantic patch; and
35
+ - `anchored` with `next = "manual"`, where no version may be inferred before a
36
+ declared anchor manifest is materialized and rooted.
37
+
38
+ The crossed combinations `semver/manual` and `anchored/auto` have no defined
39
+ meaning and are rejected.
40
+
41
+ ## Decision
42
+
43
+ Alpha publication reaches its own terminal success before a next-development
44
+ transition is created. The transition records the completed Alpha exact tag,
45
+ release commit, tree, publication evidence root, and completion time. A
46
+ deterministic idempotency key covers that completed-Alpha root together with
47
+ the repository, legal version model, and the role-separated adapter path set.
48
+
49
+ The independent next-development state machine is:
50
+
51
+ ```text
52
+ planned ----------------------> materialized -> pr-pending -> merged -> verified
53
+ \ \---------------------------> merged
54
+ -> waiting-anchor ----------> materialized
55
+ ```
56
+
57
+ `semver/auto` derives its target while planned. `anchored/manual` remains in
58
+ `waiting-anchor` until an exact semantic version and the digest of the declared
59
+ anchor manifest are supplied. `pr-pending` is durable incomplete state, not a
60
+ publication failure. Direct materialization may proceed to `merged` or
61
+ `verified` when repository governance does not require a pull request.
62
+
63
+ Every non-initial state transition is compare-and-swap guarded and rooted in
64
+ explicit evidence. Replaying an identical request is a no-op. Alpha outcome is
65
+ always `preserved-success`; no transition may write an Alpha branch, exact tag,
66
+ or floating tag. A controller that needs to repair next-development state may
67
+ write only paths declared by `version.files` and `version.derived_files`; the
68
+ configured anchor manifest is declared read-only authority.
69
+
70
+ ## Local adapter boundary
71
+
72
+ The reference adapter is provider-neutral. It reads the checked-in
73
+ `buildchain.toml`, derives the sorted path allowlist, validates the completed
74
+ Alpha and optional anchor, and plans version-file content. It never invokes Git,
75
+ network clients, lifecycle commands, package registries, or provider APIs.
76
+ Mutation requires explicit `--write`, rejects symlinks and path escapes, and is
77
+ limited to configured `version.files`. The standard repository transaction
78
+ adapter passes the exact target in `BUILDCHAIN_VERSION`, permits changes only
79
+ to `version.files` plus `version.derived_files`, runs
80
+ `lifecycle.version-state` when derived files are declared, and then runs
81
+ `lifecycle.verify`. The reference writer fails closed rather than invoking
82
+ those consumer commands because transaction execution is a separate slice.
83
+ For anchored/manual, the consumer must
84
+ materialize the declared manifest first; the adapter verifies its exact digest
85
+ and does not invent or edit upstream anchor data.
86
+
87
+ Preparing development state alone creates no Git tag, GitHub Release, public
88
+ package, or release candidate.
89
+
90
+ ## Consequences
91
+
92
+ - A completed Alpha N remains successful when N+1 waits for an anchor, a
93
+ protected PR, merge, or verification.
94
+ - Retrying development preparation cannot republish Alpha N or change any
95
+ Alpha ref.
96
+ - Semver and anchored consumers share one lifecycle while retaining their
97
+ distinct version authority.
98
+ - Provider adapters may project pull-request identifiers and merge evidence,
99
+ but those observations do not become part of the local mutation authority.
100
+ - Generated config, Agent instructions, and public documentation are checked
101
+ against the same constants; projection drift fails repository checks.
@@ -6,6 +6,10 @@
6
6
  "bin/internal",
7
7
  "packages/core/release-passport.js",
8
8
  "packages/core/buildchain-contract.js",
9
+ "packages/core/kungfu-temporal-fact.js",
10
+ "packages/core/buildchain-compatibility-fact.js",
11
+ "packages/core/buildchain-compatibility-authority.js",
12
+ "packages/core/buildchain-compatibility-proof.js",
9
13
  "packages/core/workflow-call-contract.js",
10
14
  "packages/core/workflow-yaml-contract.js",
11
15
  "packages/core/paper-fleet.js",
@@ -26,6 +30,9 @@
26
30
  "packages/core/release-tail-provider-plane.js",
27
31
  "packages/core/release-tail-provider-adapters.js",
28
32
  "packages/core/release-tail-compatibility.js",
33
+ "packages/core/v4-publication-rehearsal-capsule.js",
34
+ "packages/core/v4-publication-rehearsal-provider-bindings.js",
35
+ "packages/core/v4-publication-rehearsal.js",
29
36
  "actions/release-tail/index.js",
30
37
  "scripts/authorize-promotion-runtime-override.cjs",
31
38
  "scripts/build-contract-core.mjs",
@@ -50,6 +57,12 @@
50
57
  "crates/buildchain-v4-bridge/src/main.rs",
51
58
  "packages/core/v4-runtime-ref-resume-authority.js",
52
59
  "packages/core/v4-runtime-selector-persistence.js",
60
+ "packages/core/v4-tail-reseal-contract.js",
61
+ "packages/core/v4-tail-reseal.js",
62
+ "packages/core/v4-tail-reseal-github.js",
63
+ "packages/core/v4-tail-reseal-receipt.js",
64
+ "scripts/v4-tail-reseal.mjs",
65
+ "scripts/v4-tail-reseal-macos-rehearsal.mjs",
53
66
  "packages/core/v4-provider-operation-journal.js",
54
67
  "packages/core/v4-stage-capsule.js",
55
68
  "packages/core/v4-stage-capsule-store.js",
@@ -105,8 +118,20 @@
105
118
  "crates/buildchain-v4-contracts/src/stable_publication_fence.rs",
106
119
  "packages/core/v4-partial-mutation-recovery-qualification.js",
107
120
  "crates/buildchain-v4-contracts/src/partial_mutation_recovery.rs",
121
+ "packages/core/adopter-delivery-gate.js",
122
+ "packages/core/adopter-delivery-passport.js",
123
+ "packages/core/adopter-delivery-vectors.js",
124
+ "packages/core/buildchain-delivery-bootstrap.js",
125
+ "packages/core/buildchain-delivery-infrastructure.js",
126
+ "packages/core/buildchain-delivery-self-dogfood.js",
127
+ "packages/core/kfd-adopter-category-driver.js",
128
+ "packages/core/legacy-kfd-adopter-driver.js",
129
+ "packages/core/published-delivery-authority.js",
130
+ "packages/core/v4-adopter-delivery.js",
108
131
  "packages/core/v4-adopter-delivery-parity.js",
109
- "crates/buildchain-v4-contracts/src/adopter_delivery.rs"
132
+ "crates/buildchain-v4-contracts/src/adopter_delivery.rs",
133
+ "crates/buildchain-v4-contracts/src/compatibility_facts.rs",
134
+ "crates/buildchain-v4-contracts/src/compatibility_facts"
110
135
  ],
111
136
  "ownershipRules": [
112
137
  {
@@ -450,6 +475,22 @@
450
475
  "docs/release-tail-provider-plane.md"
451
476
  ]
452
477
  },
478
+ {
479
+ "id": "v4-publication-rehearsal",
480
+ "owner": "Buildchain publication rehearsal maintainers",
481
+ "implementation": [
482
+ "packages/core/v4-publication-rehearsal-capsule.js",
483
+ "packages/core/v4-publication-rehearsal-provider-bindings.js",
484
+ "packages/core/v4-publication-rehearsal.js"
485
+ ],
486
+ "tests": ["tests/v4-publication-rehearsal.test.mjs"],
487
+ "contracts": [
488
+ "architecture/v4-publication-rehearsal-parity.json",
489
+ "contracts/v4-publication-rehearsal-capsule-v1.schema.json",
490
+ ".github/workflows/v4-publication-rehearsal-dogfood.yml",
491
+ "docs/v4-publication-rehearsal.md"
492
+ ]
493
+ },
453
494
  {
454
495
  "id": "v4-delivery-authority",
455
496
  "owner": "Buildchain protected delivery maintainers",
@@ -512,6 +553,65 @@
512
553
  "docs/dev-delivery-qualification-landing-adr.md"
513
554
  ]
514
555
  },
556
+ {
557
+ "id": "v4-compatibility-facts",
558
+ "owner": "Buildchain compatibility authority maintainers",
559
+ "implementation": [
560
+ "bin/internal/compatibility-facts-cli.mjs",
561
+ "packages/core/kungfu-temporal-fact.js",
562
+ "packages/core/buildchain-compatibility-fact.js",
563
+ "packages/core/buildchain-compatibility-authority.js",
564
+ "packages/core/buildchain-compatibility-proof.js",
565
+ "crates/buildchain-v4-contracts/src/compatibility_facts.rs",
566
+ "crates/buildchain-v4-contracts/src/compatibility_facts/encoding.rs",
567
+ "crates/buildchain-v4-contracts/src/compatibility_facts/fixture.rs",
568
+ "crates/buildchain-v4-contracts/src/compatibility_facts/lifecycle.rs",
569
+ "crates/buildchain-v4-contracts/src/compatibility_facts/verifier.rs"
570
+ ],
571
+ "tests": ["tests/v4-compatibility-facts.test.mjs"],
572
+ "contracts": [
573
+ "architecture/v4-compatibility-facts-parity.json",
574
+ "contracts/v4-compatibility-facts-v1.schema.json",
575
+ "contracts/fixtures/v4-compatibility-facts-v1/shared.json",
576
+ "dist/site/schemas/v4-compatibility-facts-v1.schema.json",
577
+ "docs/v4-compatibility-facts.md"
578
+ ]
579
+ },
580
+ {
581
+ "id": "v4-adopter-delivery",
582
+ "owner": "Buildchain adopter delivery maintainers",
583
+ "implementation": [
584
+ "bin/internal/adopter-delivery-cli.mjs",
585
+ "packages/core/adopter-delivery-gate.js",
586
+ "packages/core/adopter-delivery-passport.js",
587
+ "packages/core/adopter-delivery-vectors.js",
588
+ "packages/core/buildchain-delivery-bootstrap.js",
589
+ "packages/core/buildchain-delivery-infrastructure.js",
590
+ "packages/core/buildchain-delivery-self-dogfood.js",
591
+ "packages/core/kfd-adopter-category-driver.js",
592
+ "packages/core/legacy-kfd-adopter-driver.js",
593
+ "packages/core/published-delivery-authority.js",
594
+ "packages/core/v4-adopter-delivery.js",
595
+ "packages/core/v4-adopter-delivery-parity.js",
596
+ "crates/buildchain-v4-contracts/src/adopter_delivery.rs"
597
+ ],
598
+ "tests": [
599
+ "tests/v4-adopter-delivery.test.mjs",
600
+ "tests/v4-adopter-delivery-parity.test.mjs"
601
+ ],
602
+ "contracts": [
603
+ "architecture/v4-adopter-delivery-parity.json",
604
+ "contracts/v4-adopter-delivery-v1.schema.json",
605
+ "contracts/fixtures/v4-adopter-delivery-v1/archive-template.json",
606
+ "contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json",
607
+ "contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json",
608
+ "contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json",
609
+ "contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json",
610
+ ".github/workflows/v4-adopter-delivery.yml",
611
+ ".github/workflows/v4-adopter-delivery-dogfood.yml",
612
+ "docs/v4-adopter-delivery.md"
613
+ ]
614
+ },
515
615
  {
516
616
  "id": "v4-architecture-governance",
517
617
  "owner": "Buildchain architecture maintainers",
@@ -526,9 +626,14 @@
526
626
  "packages/core/v4-release-activation-shadow.js",
527
627
  "packages/core/v4-stable-publication-fence.js",
528
628
  "packages/core/v4-partial-mutation-recovery-qualification.js",
529
- "packages/core/v4-adopter-delivery-parity.js",
530
629
  "packages/core/v4-runtime-ref-resume-authority.js",
531
630
  "packages/core/v4-runtime-selector-persistence.js",
631
+ "packages/core/v4-tail-reseal-contract.js",
632
+ "packages/core/v4-tail-reseal.js",
633
+ "packages/core/v4-tail-reseal-github.js",
634
+ "packages/core/v4-tail-reseal-receipt.js",
635
+ "scripts/v4-tail-reseal.mjs",
636
+ "scripts/v4-tail-reseal-macos-rehearsal.mjs",
532
637
  "packages/core/v4-stage-capsule.js",
533
638
  "packages/core/v4-stage-capsule-store.js",
534
639
  "packages/core/v4-stage-capsule-local-store.js",
@@ -546,8 +651,7 @@
546
651
  "crates/buildchain-v4-contracts/src/release_activation_shadow/model.rs",
547
652
  "crates/buildchain-v4-contracts/src/release_activation_shadow/journal.rs",
548
653
  "crates/buildchain-v4-contracts/src/stable_publication_fence.rs",
549
- "crates/buildchain-v4-contracts/src/partial_mutation_recovery.rs",
550
- "crates/buildchain-v4-contracts/src/adopter_delivery.rs"
654
+ "crates/buildchain-v4-contracts/src/partial_mutation_recovery.rs"
551
655
  ],
552
656
  "tests": [
553
657
  "tests/v4-architecture.test.mjs",
@@ -561,8 +665,9 @@
561
665
  "tests/v4-stage-capsule-store.test.mjs",
562
666
  "tests/v4-platform-stage-checkpoints.test.mjs",
563
667
  "tests/v4-stage-capsule-qualification.test.mjs",
564
- "tests/v4-adopter-delivery-parity.test.mjs",
565
- "tests/v4-runtime-ref-resume-authority.test.mjs"
668
+ "tests/v4-runtime-ref-resume-authority.test.mjs",
669
+ "tests/v4-tail-reseal.test.mjs",
670
+ "tests/v4-tail-reseal-parity.test.mjs"
566
671
  ],
567
672
  "contracts": [
568
673
  "architecture/v4-architecture-constitution.md",
@@ -579,7 +684,6 @@
579
684
  "architecture/v4-stage-capsule-store-contract.json",
580
685
  "architecture/v4-platform-stage-checkpoints.json",
581
686
  "architecture/v4-stage-capsule-qualification.json",
582
- "architecture/v4-adopter-delivery-parity.json",
583
687
  "architecture/v4-runtime-ref-resume-authority.json",
584
688
  "contracts/v4-host-contract-v1.schema.json",
585
689
  "contracts/v4-provider-operation-journal-v1.schema.json",
@@ -597,8 +701,13 @@
597
701
  "contracts/fixtures/v4-partial-mutation-recovery-v1/shared.json",
598
702
  "contracts/v4-runtime-ref-resume-authority-v1.schema.json",
599
703
  "contracts/fixtures/v4-runtime-ref-resume-authority-v1/scenario.json",
704
+ "architecture/v4-tail-reseal-parity.json",
705
+ "contracts/v4-tail-reseal-v1.schema.json",
706
+ "contracts/fixtures/v4-tail-reseal-v1/valid.json",
707
+ ".github/workflows/v4-tail-reseal.yml",
600
708
  "docs/v4-stage-capsule.md",
601
- "docs/v4-runtime-ref-resume-authority.md"
709
+ "docs/v4-runtime-ref-resume-authority.md",
710
+ "docs/v4-tail-reseal.md"
602
711
  ]
603
712
  }
604
713
  ]