@kungfu-tech/buildchain 4.0.1-alpha.5 → 4.0.1-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/actions/release-tail/README.md +8 -0
  2. package/architecture/internal-capabilities.json +65 -5
  3. package/architecture/maintainability-policy.json +22 -16
  4. package/architecture/release-tail-contract-inventory.json +5 -2
  5. package/architecture/v4-adopter-delivery-parity.json +32 -5
  6. package/architecture/v4-publication-rehearsal-parity.json +84 -0
  7. package/bin/buildchain.mjs +7 -1
  8. package/bin/internal/adopter-delivery-cli.mjs +70 -0
  9. package/bin/internal/command-registry.mjs +1 -0
  10. package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +19 -0
  11. package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +93 -0
  12. package/contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json +29 -0
  13. package/contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json +26 -0
  14. package/contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json +50 -0
  15. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/artifacts/product.bin +1 -0
  16. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/config/buildchain.toml +5 -0
  17. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json +1 -0
  18. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json +1 -0
  19. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/evidence/qualification.json +1 -0
  20. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/candidate.json +5 -0
  21. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json +1 -0
  22. package/contracts/fixtures/v4-publication-rehearsal-v1/capsule.json +707 -0
  23. package/contracts/fixtures/v4-publication-rehearsal-v1/offline-vectors.json +27 -0
  24. package/contracts/v4-adopter-delivery-v1.schema.json +81 -0
  25. package/contracts/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  26. package/dist/site/agent-index.json +3 -0
  27. package/dist/site/artifact-schemas.json +6 -0
  28. package/dist/site/buildchain-contract.json +14 -14
  29. package/dist/site/buildchain-site.json +219 -22
  30. package/dist/site/capability-registry.json +10 -9
  31. package/dist/site/cli-registry.json +53 -1
  32. package/dist/site/kfd-claims.json +253 -14
  33. package/dist/site/kfd-upstream-aggregate.json +1 -1
  34. package/dist/site/manual-registry.json +20 -5
  35. package/dist/site/node-api-registry.json +11501 -9312
  36. package/dist/site/page-registry.json +202 -13
  37. package/dist/site/public-surface-audit.json +195 -11
  38. package/dist/site/publication-authority-registry.json +17 -4
  39. package/dist/site/publication-registry.json +4 -4
  40. package/dist/site/release-provenance.json +14 -0
  41. package/dist/site/schemas/release-tail-capabilities-v1.schema.json +199 -0
  42. package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +81 -0
  43. package/dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  44. package/dist/site/site-manifest.json +17 -9
  45. package/dist/site/workflow-registry.json +89 -8
  46. package/docs/MAP.md +3 -1
  47. package/docs/cli-reference.md +68 -0
  48. package/docs/cli.md +8 -0
  49. package/docs/node-api-reference.md +198 -51
  50. package/docs/release-tail-provider-plane.md +30 -0
  51. package/docs/v4-adopter-delivery.md +133 -0
  52. package/docs/v4-publication-rehearsal.md +130 -0
  53. package/package.json +17 -3
  54. package/packages/core/adopter-delivery-passport.js +259 -0
  55. package/packages/core/adopter-delivery-vectors.js +158 -0
  56. package/packages/core/adopter-delivery-vectors.json +77 -0
  57. package/packages/core/buildchain-agent-manuals.js +1 -0
  58. package/packages/core/buildchain-config.js +84 -0
  59. package/packages/core/buildchain-delivery-bootstrap.js +240 -0
  60. package/packages/core/buildchain-delivery-infrastructure.js +164 -0
  61. package/packages/core/buildchain-delivery-self-dogfood.js +395 -0
  62. package/packages/core/legacy-kfd-adopter-driver.js +167 -0
  63. package/packages/core/published-delivery-authority.js +266 -0
  64. package/packages/core/release-passport.js +26 -8
  65. package/packages/core/v4-adopter-delivery-parity.js +3 -3
  66. package/packages/core/v4-adopter-delivery.js +359 -0
  67. package/packages/core/v4-publication-rehearsal-capsule.js +468 -0
  68. package/packages/core/v4-publication-rehearsal-provider-bindings.js +212 -0
  69. package/packages/core/v4-publication-rehearsal.js +481 -0
  70. package/scripts/buildchain-cli-help.mjs +10 -0
  71. package/scripts/check-inventory.mjs +3 -3
  72. package/scripts/dev-delivery-source-proof-replay.mjs +153 -0
  73. package/scripts/dev-delivery-source-proof-reuse.mjs +13 -97
  74. package/scripts/generate-release-candidate-passport.mjs +152 -0
  75. package/scripts/generate-site-bundle.mjs +30 -0
  76. package/scripts/release-tail.mjs +51 -3
  77. package/scripts/resume-from-candidate-run.mjs +545 -15
  78. package/scripts/site-capability-metadata.mjs +16 -0
  79. package/scripts/v4-publication-rehearsal-fixture.mjs +144 -0
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.kungfu-tech.com/schemas/v4-adopter-delivery-v1.schema.json",
4
+ "title": "Buildchain v4 adopter delivery gate input",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "contract",
10
+ "driverSelector",
11
+ "artifactProfileSelector",
12
+ "request",
13
+ "context"
14
+ ],
15
+ "properties": {
16
+ "schemaVersion": { "const": 1 },
17
+ "contract": { "const": "kungfu-buildchain-v4-adopter-delivery/v1" },
18
+ "driverSelector": {
19
+ "enum": ["json-assertion", "kfd-category", "legacy-kfd"]
20
+ },
21
+ "artifactProfileSelector": { "enum": ["git-commit", "package"] },
22
+ "request": { "$ref": "#/$defs/request" },
23
+ "context": { "type": "object" }
24
+ },
25
+ "$defs": {
26
+ "reference": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["id", "version"],
30
+ "properties": {
31
+ "id": {
32
+ "type": "string",
33
+ "pattern": "^[a-z][a-z0-9.-]*(/[a-z][a-z0-9.-]*)*$"
34
+ },
35
+ "version": {
36
+ "type": "string",
37
+ "pattern": "^[1-9][0-9]*\\.[0-9]+\\.[0-9]+$"
38
+ }
39
+ }
40
+ },
41
+ "request": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": [
45
+ "schemaVersion",
46
+ "contract",
47
+ "protocol",
48
+ "artifactProfile",
49
+ "project",
50
+ "artifact",
51
+ "declaration"
52
+ ],
53
+ "properties": {
54
+ "schemaVersion": { "const": 1 },
55
+ "contract": { "const": "kungfu-buildchain-adopter-delivery-request" },
56
+ "protocol": { "$ref": "#/$defs/reference" },
57
+ "artifactProfile": { "$ref": "#/$defs/reference" },
58
+ "project": {
59
+ "type": "object",
60
+ "additionalProperties": false,
61
+ "required": ["instanceId", "adopterId"],
62
+ "properties": {
63
+ "instanceId": { "type": "string", "minLength": 1 },
64
+ "adopterId": { "type": "string", "minLength": 1 }
65
+ }
66
+ },
67
+ "artifact": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": ["kind", "coordinate", "root"],
71
+ "properties": {
72
+ "kind": { "type": "string", "minLength": 1 },
73
+ "coordinate": { "type": "string", "minLength": 1 },
74
+ "root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
75
+ }
76
+ },
77
+ "declaration": { "type": "object" }
78
+ }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,233 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.kungfu.ai/contracts/v4-publication-rehearsal-capsule-v1.schema.json",
4
+ "title": "Buildchain v4 Publication Rehearsal Capsule",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "coreVersion",
10
+ "source",
11
+ "candidate",
12
+ "manifest",
13
+ "config",
14
+ "providerBindings",
15
+ "providerBindingsRoot",
16
+ "providerPolicy",
17
+ "expectedObservations",
18
+ "declaration",
19
+ "transaction",
20
+ "files",
21
+ "capsuleRoot"
22
+ ],
23
+ "properties": {
24
+ "schema": { "const": "buildchain-v4-publication-rehearsal-capsule/v1" },
25
+ "coreVersion": { "const": "buildchain.release-tail/v1" },
26
+ "source": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["repository", "revision", "root"],
30
+ "properties": {
31
+ "repository": { "type": "string", "minLength": 1 },
32
+ "revision": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
33
+ "root": { "$ref": "#/$defs/root" }
34
+ }
35
+ },
36
+ "candidate": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "required": ["root"],
40
+ "properties": { "root": { "$ref": "#/$defs/root" } }
41
+ },
42
+ "manifest": { "$ref": "#/$defs/fileBinding" },
43
+ "config": { "$ref": "#/$defs/fileBinding" },
44
+ "providerBindings": { "$ref": "#/$defs/providerBindings" },
45
+ "providerBindingsRoot": { "$ref": "#/$defs/root" },
46
+ "providerPolicy": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": [
50
+ "schema",
51
+ "effectDefault",
52
+ "allowedCapabilityIds",
53
+ "allowedAdapters",
54
+ "root"
55
+ ],
56
+ "properties": {
57
+ "schema": {
58
+ "const": "buildchain-v4-publication-rehearsal-provider-policy/v1"
59
+ },
60
+ "effectDefault": { "const": "disabled" },
61
+ "allowedCapabilityIds": {
62
+ "type": "array",
63
+ "minItems": 1,
64
+ "uniqueItems": true,
65
+ "items": { "type": "string", "minLength": 1 }
66
+ },
67
+ "allowedAdapters": {
68
+ "type": "array",
69
+ "minItems": 1,
70
+ "uniqueItems": true,
71
+ "items": {
72
+ "type": "string",
73
+ "pattern": "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$"
74
+ }
75
+ },
76
+ "root": { "$ref": "#/$defs/root" }
77
+ }
78
+ },
79
+ "expectedObservations": {
80
+ "type": "object",
81
+ "additionalProperties": false,
82
+ "required": ["entries", "root"],
83
+ "properties": {
84
+ "entries": {
85
+ "type": "array",
86
+ "items": { "$ref": "#/$defs/observationSequence" }
87
+ },
88
+ "root": { "$ref": "#/$defs/root" }
89
+ }
90
+ },
91
+ "declaration": { "$ref": "release-tail-capabilities-v1.schema.json" },
92
+ "transaction": { "type": "object" },
93
+ "files": {
94
+ "type": "array",
95
+ "minItems": 1,
96
+ "items": {
97
+ "type": "object",
98
+ "additionalProperties": false,
99
+ "required": ["role", "path", "size", "root"],
100
+ "properties": {
101
+ "role": {
102
+ "type": "string",
103
+ "pattern": "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$"
104
+ },
105
+ "path": { "$ref": "#/$defs/path" },
106
+ "size": { "type": "integer", "minimum": 0 },
107
+ "root": { "$ref": "#/$defs/root" }
108
+ }
109
+ }
110
+ },
111
+ "capsuleRoot": { "$ref": "#/$defs/root" }
112
+ },
113
+ "$defs": {
114
+ "root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
115
+ "path": {
116
+ "type": "string",
117
+ "minLength": 1,
118
+ "pattern": "^(?!/)(?!.*(?:^|/)\\.(?:/|$))(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*//)(?!.*\\\\)(?!.*\/$).+$"
119
+ },
120
+ "providerBindings": {
121
+ "type": "object",
122
+ "additionalProperties": false,
123
+ "required": ["schema", "artifacts", "documents", "evidence"],
124
+ "properties": {
125
+ "schema": {
126
+ "const": "kungfu.buildchain.release-tail.provider-bindings/v1"
127
+ },
128
+ "artifacts": {
129
+ "type": "object",
130
+ "propertyNames": {
131
+ "pattern": "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$"
132
+ },
133
+ "additionalProperties": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "required": ["path", "name"],
137
+ "properties": {
138
+ "path": { "$ref": "#/$defs/path" },
139
+ "name": { "type": "string", "minLength": 1 }
140
+ }
141
+ }
142
+ },
143
+ "documents": {
144
+ "type": "object",
145
+ "propertyNames": {
146
+ "pattern": "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$"
147
+ },
148
+ "additionalProperties": { "$ref": "#/$defs/providerDocument" }
149
+ },
150
+ "evidence": {
151
+ "type": "object",
152
+ "additionalProperties": false,
153
+ "required": ["inputs", "output"],
154
+ "properties": {
155
+ "inputs": {
156
+ "type": "array",
157
+ "uniqueItems": true,
158
+ "items": { "$ref": "#/$defs/path" }
159
+ },
160
+ "output": { "$ref": "#/$defs/path" }
161
+ }
162
+ }
163
+ }
164
+ },
165
+ "providerDocument": {
166
+ "type": "object",
167
+ "additionalProperties": false,
168
+ "required": ["path", "method"],
169
+ "properties": {
170
+ "path": { "$ref": "#/$defs/path" },
171
+ "method": { "enum": ["PUT", "POST"] }
172
+ }
173
+ },
174
+ "fileBinding": {
175
+ "type": "object",
176
+ "additionalProperties": false,
177
+ "required": ["path", "root"],
178
+ "properties": {
179
+ "path": { "$ref": "#/$defs/path" },
180
+ "root": { "$ref": "#/$defs/root" }
181
+ }
182
+ },
183
+ "readback": {
184
+ "type": "object",
185
+ "additionalProperties": false,
186
+ "required": [
187
+ "outcome",
188
+ "subjectRoot",
189
+ "targetRoot",
190
+ "evidenceRoots",
191
+ "providerCode"
192
+ ],
193
+ "properties": {
194
+ "outcome": { "enum": ["observed", "absent", "transient", "conflict"] },
195
+ "subjectRoot": {
196
+ "oneOf": [{ "$ref": "#/$defs/root" }, { "const": "" }]
197
+ },
198
+ "targetRoot": {
199
+ "oneOf": [{ "$ref": "#/$defs/root" }, { "const": "" }]
200
+ },
201
+ "evidenceRoots": {
202
+ "type": "array",
203
+ "uniqueItems": true,
204
+ "items": { "$ref": "#/$defs/root" }
205
+ },
206
+ "providerCode": { "type": "string", "minLength": 1 }
207
+ }
208
+ },
209
+ "observationSequence": {
210
+ "type": "object",
211
+ "additionalProperties": false,
212
+ "required": ["operationId", "readbacks", "apply"],
213
+ "properties": {
214
+ "operationId": { "$ref": "#/$defs/root" },
215
+ "readbacks": {
216
+ "type": "array",
217
+ "minItems": 1,
218
+ "items": { "$ref": "#/$defs/readback" }
219
+ },
220
+ "apply": {
221
+ "type": "object",
222
+ "additionalProperties": false,
223
+ "required": ["outcome", "code", "classification"],
224
+ "properties": {
225
+ "outcome": { "enum": ["applied", "transient", "conflict"] },
226
+ "code": { "type": "string", "minLength": 1 },
227
+ "classification": { "type": "string", "minLength": 1 }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-manifest",
4
- "generatedAt": "2026-08-16T06:14:57.817Z",
5
- "publishedAt": "2026-08-16T06:14:57.817Z",
4
+ "generatedAt": "2026-08-16T16:19:04.257Z",
5
+ "publishedAt": "2026-08-16T16:19:04.257Z",
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": "358df2d1ab42465111896a42cde85dcca08549d5",
22
+ "sourceRevision": "71350662d0ab74d154a80fe1384b6ff6c82fc7c2",
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.0.1-alpha.5",
40
+ "version": "4.0.1-alpha.6",
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:fd63caf537bdc0dc2a220688dcb89534f6f84f6223e8c45f399a7d1bb8f8faf8"
56
+ "digest": "sha256:a04d321dbec562807cb29b748039839d097a97d2c9d2f0e76d6d22f2845055ba"
57
57
  },
58
58
  {
59
59
  "id": "getting-started",
@@ -237,7 +237,7 @@
237
237
  "path": "docs/cli.md",
238
238
  "plane": "use",
239
239
  "exists": true,
240
- "digest": "sha256:fad47682ed909f7b16f58bb8c24c51a943eb704a0a50ab6e033d745ee16a809a"
240
+ "digest": "sha256:60208f0862195df44b27ada15e474ff1808dee6d492cd6303402b92fd72f06bc"
241
241
  },
242
242
  {
243
243
  "id": "cli-reference",
@@ -245,7 +245,7 @@
245
245
  "path": "docs/cli-reference.md",
246
246
  "plane": "use",
247
247
  "exists": true,
248
- "digest": "sha256:157d6259dd8f884833f7065f52bff0d482878eca72623dcc607e4204692e4970"
248
+ "digest": "sha256:ec16f350596692989cf5eade945e7bbeee157a661c6d8faa55c8249b14ef5632"
249
249
  },
250
250
  {
251
251
  "id": "node-api-reference",
@@ -253,7 +253,7 @@
253
253
  "path": "docs/node-api-reference.md",
254
254
  "plane": "use",
255
255
  "exists": true,
256
- "digest": "sha256:34a2feafe2f6183afbc0a72fa6362d39db6968c2bac187a1a1dd376d7ca50e50"
256
+ "digest": "sha256:0732a6888896f492f6543c4c9b32a1aef58f0fe691977b961745e151178188e5"
257
257
  },
258
258
  {
259
259
  "id": "build-facts",
@@ -295,6 +295,14 @@
295
295
  "exists": true,
296
296
  "digest": "sha256:fc2649d0ae4dc6a08275bc1f2509efd3e9730227eaa8157ef64daf4b9c850264"
297
297
  },
298
+ {
299
+ "id": "v4-adopter-delivery",
300
+ "title": "V4 public adopter delivery",
301
+ "path": "docs/v4-adopter-delivery.md",
302
+ "plane": "verify",
303
+ "exists": true,
304
+ "digest": "sha256:c74a004657f64d29ba2a47f599223e5ab132daf2881cf0564c85c04b22a69e6e"
305
+ },
298
306
  {
299
307
  "id": "publish-transaction",
300
308
  "title": "Publish transaction",
@@ -317,7 +325,7 @@
317
325
  "path": "docs/release-tail-provider-plane.md",
318
326
  "plane": "use",
319
327
  "exists": true,
320
- "digest": "sha256:80b39ba4f0a8ed723e2a03e7efff0fee1e891245f7d1bf343edc75011aded801"
328
+ "digest": "sha256:72dd8231f51003c8a0d6532991b908b39de02deb11300e8c63113cd3a9e5cd8e"
321
329
  },
322
330
  {
323
331
  "id": "release-governance",
@@ -2006,7 +2006,7 @@
2006
2006
  "status": "preview",
2007
2007
  "owner": "buildchain-workflows",
2008
2008
  "maturity": "preview",
2009
- "introducedVersion": "4.0.1-alpha.5",
2009
+ "introducedVersion": "4.0.1-alpha.6",
2010
2010
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2011
2011
  "deprecationReplacement": "",
2012
2012
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2027,7 +2027,7 @@
2027
2027
  "status": "preview",
2028
2028
  "owner": "buildchain-workflows",
2029
2029
  "maturity": "preview",
2030
- "introducedVersion": "4.0.1-alpha.5",
2030
+ "introducedVersion": "4.0.1-alpha.6",
2031
2031
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2032
2032
  "deprecationReplacement": "",
2033
2033
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2048,7 +2048,7 @@
2048
2048
  "status": "preview",
2049
2049
  "owner": "buildchain-workflows",
2050
2050
  "maturity": "preview",
2051
- "introducedVersion": "4.0.1-alpha.5",
2051
+ "introducedVersion": "4.0.1-alpha.6",
2052
2052
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2053
2053
  "deprecationReplacement": "",
2054
2054
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2098,7 +2098,7 @@
2098
2098
  "status": "preview",
2099
2099
  "owner": "buildchain-workflows",
2100
2100
  "maturity": "preview",
2101
- "introducedVersion": "4.0.1-alpha.5",
2101
+ "introducedVersion": "4.0.1-alpha.6",
2102
2102
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2103
2103
  "deprecationReplacement": "",
2104
2104
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2842,22 +2842,28 @@
2842
2842
  "reusable": true,
2843
2843
  "inputs": [
2844
2844
  "buildchain-ref",
2845
+ "candidate-root",
2845
2846
  "declaration-path",
2846
2847
  "execute",
2847
2848
  "provider-bindings-path",
2849
+ "rehearsal-authority-path",
2850
+ "rehearsal-capsule-path",
2851
+ "rehearsal-evidence-path",
2852
+ "rehearsal-mode",
2848
2853
  "state-path"
2849
2854
  ],
2850
- "inputCount": 5,
2855
+ "inputCount": 10,
2851
2856
  "secrets": [
2852
2857
  "http-token"
2853
2858
  ],
2854
2859
  "secretCount": 1,
2855
2860
  "outputs": [
2861
+ "rehearsal-evidence-root",
2856
2862
  "state-root",
2857
2863
  "transaction-root",
2858
2864
  "transaction-state"
2859
2865
  ],
2860
- "outputCount": 3,
2866
+ "outputCount": 4,
2861
2867
  "surface": "release-tail-provider-plane",
2862
2868
  "capabilityGroup": "release-passport-trust",
2863
2869
  "status": "active",
@@ -2980,6 +2986,54 @@
2980
2986
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
2981
2987
  "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
2982
2988
  },
2989
+ {
2990
+ "id": "v4-adopter-delivery-dogfood",
2991
+ "path": ".github/workflows/v4-adopter-delivery-dogfood.yml",
2992
+ "reusable": false,
2993
+ "inputs": [],
2994
+ "inputCount": 0,
2995
+ "secrets": [],
2996
+ "secretCount": 0,
2997
+ "outputs": [],
2998
+ "outputCount": 0,
2999
+ "surface": "repository-workflow",
3000
+ "capabilityGroup": "api-cli-reference",
3001
+ "status": "active",
3002
+ "owner": "buildchain-workflows",
3003
+ "maturity": "active",
3004
+ "introducedVersion": "pre-3.0.2-alpha.4",
3005
+ "compatibilityPromise": "preserved-through-the-v3-major-line",
3006
+ "deprecationReplacement": "",
3007
+ "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
3008
+ "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
3009
+ },
3010
+ {
3011
+ "id": "v4-adopter-delivery",
3012
+ "path": ".github/workflows/v4-adopter-delivery.yml",
3013
+ "reusable": true,
3014
+ "inputs": [
3015
+ "archive-path",
3016
+ "bootstrap-path",
3017
+ "consumer",
3018
+ "input-path",
3019
+ "node-version"
3020
+ ],
3021
+ "inputCount": 5,
3022
+ "secrets": [],
3023
+ "secretCount": 0,
3024
+ "outputs": [],
3025
+ "outputCount": 0,
3026
+ "surface": "repository-workflow",
3027
+ "capabilityGroup": "api-cli-reference",
3028
+ "status": "active",
3029
+ "owner": "buildchain-workflows",
3030
+ "maturity": "active",
3031
+ "introducedVersion": "pre-3.0.2-alpha.4",
3032
+ "compatibilityPromise": "preserved-through-the-v3-major-line",
3033
+ "deprecationReplacement": "",
3034
+ "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
3035
+ "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
3036
+ },
2983
3037
  {
2984
3038
  "id": "v4-public-consumer-dogfood",
2985
3039
  "path": ".github/workflows/v4-public-consumer-dogfood.yml",
@@ -3001,6 +3055,27 @@
3001
3055
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
3002
3056
  "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
3003
3057
  },
3058
+ {
3059
+ "id": "v4-publication-rehearsal-dogfood",
3060
+ "path": ".github/workflows/v4-publication-rehearsal-dogfood.yml",
3061
+ "reusable": false,
3062
+ "inputs": [],
3063
+ "inputCount": 0,
3064
+ "secrets": [],
3065
+ "secretCount": 0,
3066
+ "outputs": [],
3067
+ "outputCount": 0,
3068
+ "surface": "repository-workflow",
3069
+ "capabilityGroup": "api-cli-reference",
3070
+ "status": "active",
3071
+ "owner": "buildchain-workflows",
3072
+ "maturity": "active",
3073
+ "introducedVersion": "pre-3.0.2-alpha.4",
3074
+ "compatibilityPromise": "preserved-through-the-v3-major-line",
3075
+ "deprecationReplacement": "",
3076
+ "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
3077
+ "nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
3078
+ },
3004
3079
  {
3005
3080
  "id": "v4-stage-capsule-canary",
3006
3081
  "path": ".github/workflows/v4-stage-capsule-canary.yml",
@@ -3225,6 +3300,7 @@
3225
3300
  "release-passport-promotion-routing-json",
3226
3301
  "release-passport-v4-consumer-policy-certification-json",
3227
3302
  "release-passport-v4-consumer-policy-certification-root",
3303
+ "release-passport-v4-runtime-resume-evidence-command",
3228
3304
  "release-passport-v4-runtime-resume-evidence-json",
3229
3305
  "release-tail-state-path",
3230
3306
  "require-governance",
@@ -3239,7 +3315,7 @@
3239
3315
  "transaction-state-path",
3240
3316
  "verification-command"
3241
3317
  ],
3242
- "inputCount": 83,
3318
+ "inputCount": 84,
3243
3319
  "capabilityGroup": "release-passport-trust",
3244
3320
  "status": "active",
3245
3321
  "owner": "buildchain-actions",
@@ -3254,14 +3330,19 @@
3254
3330
  "id": "release-tail",
3255
3331
  "path": "actions/release-tail/action.yml",
3256
3332
  "inputs": [
3333
+ "candidate-root",
3257
3334
  "declaration",
3258
3335
  "execute",
3259
3336
  "github-token",
3260
3337
  "http-token",
3261
3338
  "provider-bindings",
3339
+ "rehearsal-authority",
3340
+ "rehearsal-capsule",
3341
+ "rehearsal-evidence-path",
3342
+ "rehearsal-mode",
3262
3343
  "state-path"
3263
3344
  ],
3264
- "inputCount": 6,
3345
+ "inputCount": 11,
3265
3346
  "capabilityGroup": "release-passport-trust",
3266
3347
  "status": "active",
3267
3348
  "owner": "buildchain-actions",
package/docs/MAP.md CHANGED
@@ -59,7 +59,7 @@ workflow, action, and Node API export also carries a `capabilityGroup`,
59
59
  | Capability group | Primary facts | Primary manuals |
60
60
  | --- | --- | --- |
61
61
  | Getting Started | `capability-registry.json`, `product-mechanism.json` | [`getting-started.md`](getting-started.md), [`install.md`](install.md), [`product-mechanism.md`](product-mechanism.md), [`cli.md`](cli.md) |
62
- | Release Passport and Trust | `release-model.json`, `artifact-schemas.json`, `publication-authority-registry.json`, `kfd-claims.json` | [`release-passport.md`](release-passport.md), [`github-artifact-attestation.md`](github-artifact-attestation.md), [`publication-authority.md`](publication-authority.md), [`release-candidate.md`](release-candidate.md), [`release-train.md`](release-train.md), [`publish-transaction.md`](publish-transaction.md), [`release-tail-contract.md`](release-tail-contract.md), [`binary-distribution.md`](binary-distribution.md) |
62
+ | Release Passport and Trust | `release-model.json`, `artifact-schemas.json`, `publication-authority-registry.json`, `kfd-claims.json` | [`release-passport.md`](release-passport.md), [`github-artifact-attestation.md`](github-artifact-attestation.md), [`publication-authority.md`](publication-authority.md), [`release-candidate.md`](release-candidate.md), [`release-train.md`](release-train.md), [`publish-transaction.md`](publish-transaction.md), [`release-tail-contract.md`](release-tail-contract.md), [`v4-publication-rehearsal.md`](v4-publication-rehearsal.md), [`binary-distribution.md`](binary-distribution.md) |
63
63
  | Reusable Build and Lifecycle | `workflow-registry.json`, `controller-registry.json`, `release-model.json` | [`reusable-build-surface.md`](reusable-build-surface.md), [`controller-evidence.md`](controller-evidence.md), [`shifu-gate-profiles.md`](shifu-gate-profiles.md), [`lifecycle-protocol.md`](lifecycle-protocol.md) |
64
64
  | KFD Trust and Surface Closure | `kfd-claims.json`, `public-surface-audit.json`, `cli-registry.json`, `node-api-registry.json` | [`kfd-support.md`](kfd-support.md), [`release-passport.md`](release-passport.md) |
65
65
  | Site Bundle, Web Surfaces, and Propagation | `buildchain-site.json`, `site-manifest.json`, `page-registry.json`, `release-model.json` | [`site-bundle-contract.md`](site-bundle-contract.md), [`web-surface-deployments.md`](web-surface-deployments.md), [`release-propagation.md`](release-propagation.md) |
@@ -114,6 +114,7 @@ replace them.
114
114
  | How will Delivery Warrant move from the v3 writer through shadow, v4 read, single-writer cutover, and legacy removal? | [`../architecture/v4-delivery-warrant-shadow-bootstrap-plan.md`](../architecture/v4-delivery-warrant-shadow-bootstrap-plan.md) | why/verify | preview |
115
115
  | What exact canonical bytes, roots, clocks, event, receipt, and typed-fault contracts do Rust and JavaScript share in v4? | [`v4-canonical-contracts.md`](v4-canonical-contracts.md) | use/verify | preview |
116
116
  | How is one per-platform v4 build stage identified, retained, observed, and reused without provider identity or a second writer? | [`v4-stage-capsule.md`](v4-stage-capsule.md) | use/verify | preview |
117
+ | How does an adopter run protocol-neutral driver conformance, N-1 bootstrap, and published archive readback through v4? | [`v4-adopter-delivery.md`](v4-adopter-delivery.md) | use/verify | preview |
117
118
  | How does a late platform failure deterministically reuse qualified Stage Capsules and rebuild only invalid or missing dependencies? | [`v4-stage-capsule.md`](v4-stage-capsule.md#deterministic-resume-planning) | use/verify | preview |
118
119
  | How does a late macOS signing failure reuse an exact retained v4 Alpha candidate and rerun only the fenced release tail? | [`v4-tail-reseal.md`](v4-tail-reseal.md) | use/verify | preview |
119
120
  | How do Rust and JavaScript read the same retained Delivery Warrant traces and emit one semantic projection? | [`v4-canonical-contracts.md`](v4-canonical-contracts.md#shared-delivery-warrant-fixture-runner) | use/verify | preview |
@@ -133,6 +134,7 @@ replace them.
133
134
  | How do I declare version files and custom lifecycle commands? | [`lifecycle-protocol.md`](lifecycle-protocol.md) | use | stable |
134
135
  | How does publish evidence, recovery, and finalization work? | [`publish-transaction.md`](publish-transaction.md) | verify | stable |
135
136
  | How are consumer-owned release-tail commands inventoried and replaced by declarative capabilities? | [`release-tail-contract.md`](release-tail-contract.md) | verify | draft |
137
+ | How do I simulate, replay, or explicitly authorize a provider-facing publication rehearsal without creating release authority? | [`v4-publication-rehearsal.md`](v4-publication-rehearsal.md) | use/verify | preview |
136
138
  | How do I collect and verify module/product build facts from Git source, version files, and outputs? | [`build-facts.md`](build-facts.md) + [`cli.md`](cli.md) | use/verify | stable |
137
139
  | How do I publish or verify release passport artifacts? | [`release-passport.md`](release-passport.md) | use | stable |
138
140
  | How do I keylessly attest Linux release artifacts with GitHub and bind them to a Release Passport? | [`github-artifact-attestation.md`](github-artifact-attestation.md) | verify/use | preview |