@kungfu-tech/buildchain 4.1.3-alpha.9 → 4.1.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/AGENTS.md +11 -13
  2. package/CONTRIBUTING.md +32 -9
  3. package/README.md +56 -140
  4. package/actions/release/promotion/ref/README.md +1 -1
  5. package/architecture/action-taxonomy.json +1 -1
  6. package/architecture/agent-change-map.md +32 -45
  7. package/architecture/build-orchestration.json +1 -1
  8. package/architecture/capability-state-machine-manifest.json +5 -5
  9. package/architecture/ci-lane-change-budget.json +92 -92
  10. package/architecture/code-layout.json +2 -12
  11. package/architecture/core-mechanisms.json +38 -39
  12. package/architecture/cross-platform-adopter-qualification.json +1 -1
  13. package/architecture/dev-delivery-orchestration.json +2 -2
  14. package/architecture/floating-consumer-policy.json +3 -3
  15. package/architecture/internal-capabilities.json +27 -28
  16. package/architecture/maintainability-debt.json +60 -94
  17. package/architecture/maintainability-policy.json +7 -13
  18. package/architecture/minimal-consumer-migration.json +43 -5014
  19. package/architecture/platform-stage-checkpoints.json +1 -1
  20. package/architecture/release-tail-contract.json +2 -2
  21. package/architecture/release-topology.json +33 -25
  22. package/architecture/stage-capsule-qualification.json +1 -1
  23. package/architecture/universal-workflow-bootstrap.json +60 -60
  24. package/architecture/universal-workflow-capability-policy.json +3 -3
  25. package/architecture/universal-workflow-fault-campaign.json +7 -7
  26. package/architecture/workflow-taxonomy.json +59 -60
  27. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  28. package/dist/site/buildchain-contract.json +138 -66
  29. package/dist/site/buildchain-site.json +257 -331
  30. package/dist/site/capability-registry.json +4 -4
  31. package/dist/site/cli-registry.json +6 -142
  32. package/dist/site/controller-registry.json +19 -19
  33. package/dist/site/kfd-claims.json +481 -529
  34. package/dist/site/kfd-upstream-aggregate.json +1 -1
  35. package/dist/site/manual-registry.json +22 -22
  36. package/dist/site/node-api-registry.json +82 -339
  37. package/dist/site/page-registry.json +229 -304
  38. package/dist/site/public-surface-audit.json +544 -754
  39. package/dist/site/publication-authority-registry.json +316 -316
  40. package/dist/site/publication-registry.json +1 -1
  41. package/dist/site/site-manifest.json +23 -23
  42. package/dist/site/workflow-registry.json +1071 -1027
  43. package/docs/MAP.md +28 -20
  44. package/docs/auditable-demo.md +17 -49
  45. package/docs/bootstrap-recovery.md +46 -37
  46. package/docs/cli-reference.md +2 -46
  47. package/docs/cli.md +97 -186
  48. package/docs/code-organization.md +7 -5
  49. package/docs/dev-alpha-candidate-patrol.md +19 -42
  50. package/docs/dev-delivery-orchestration.md +15 -11
  51. package/docs/dev-delivery-qualification-landing-adr.md +10 -9
  52. package/docs/dev-delivery-warrant.md +17 -16
  53. package/docs/dev-qualification-patrol.md +25 -20
  54. package/docs/getting-started.md +80 -139
  55. package/docs/github-artifact-attestation.md +31 -81
  56. package/docs/install.md +66 -30
  57. package/docs/lifecycle-protocol.md +19 -57
  58. package/docs/migration-inventory.md +17 -45
  59. package/docs/next-development-transition.md +13 -13
  60. package/docs/node-api-reference.md +122 -138
  61. package/docs/oci-publication.md +13 -10
  62. package/docs/publication-artifacts.md +128 -486
  63. package/docs/publication-authority.md +15 -45
  64. package/docs/publish-transaction.md +13 -11
  65. package/docs/release-candidate.md +126 -355
  66. package/docs/release-discussions.md +36 -67
  67. package/docs/release-flow.md +80 -339
  68. package/docs/release-governance.md +114 -962
  69. package/docs/release-promotion-request.md +45 -43
  70. package/docs/release-propagation.md +13 -27
  71. package/docs/release-tail-provider-plane.md +38 -65
  72. package/docs/reusable-build-surface.md +78 -196
  73. package/docs/runtime-train-validation.md +8 -6
  74. package/docs/stable-candidate-patrol.md +13 -66
  75. package/docs/v4-adopter-delivery.md +15 -15
  76. package/docs/v4-declarative-release-tail-migration.md +19 -17
  77. package/docs/v4-production-release.md +11 -6
  78. package/docs/v4-publication-rehearsal.md +12 -27
  79. package/docs/v4-stage-capsule.md +14 -20
  80. package/docs/v4-tail-reseal.md +34 -20
  81. package/docs/web-surface-deployments.md +26 -264
  82. package/docs/workflow-catalog.md +31 -31
  83. package/docs/workflow-path-migration.md +10 -4
  84. package/package.json +5 -4
  85. package/packages/core/adoption/buildchain-kfd-claims.js +7 -7
  86. package/packages/core/adoption/cli/output.mjs +1 -9
  87. package/packages/core/adoption/cli/product-gate.mjs +1 -15
  88. package/packages/core/adoption/cli/project.mjs +9 -10
  89. package/packages/core/adoption/cli/standards.mjs +1 -14
  90. package/packages/core/adoption/cli/support.mjs +0 -2
  91. package/packages/core/adoption/cli/surface-register.mjs +0 -2
  92. package/packages/core/adoption/commands/init-repo.mjs +77 -485
  93. package/packages/core/adoption/consumer-init.js +279 -0
  94. package/packages/core/adoption/qualification/admission.js +1 -1
  95. package/packages/core/build/cli/cache.mjs +0 -2
  96. package/packages/core/build/cli/facts.mjs +0 -3
  97. package/packages/core/build/cli/homebrew.mjs +0 -4
  98. package/packages/core/build/cli/lifecycle.mjs +0 -3
  99. package/packages/core/build/github-artifact-attestation.js +2 -2
  100. package/packages/core/build/platform-stage-checkpoints.js +1 -1
  101. package/packages/core/build/signing/dispatch.js +1 -1
  102. package/packages/core/consumer/buildchain-config.js +9 -0
  103. package/packages/core/consumer/contract/inspection.js +351 -9
  104. package/packages/core/consumer/contract/javascript-syntax.js +439 -0
  105. package/packages/core/consumer/contract/javascript-values.js +61 -0
  106. package/packages/core/consumer/contract/javascript.js +555 -0
  107. package/packages/core/consumer/contract/local-validation.js +84 -0
  108. package/packages/core/contracts/buildchain-contract.js +39 -8
  109. package/packages/core/contracts/cli/introspection.mjs +1 -9
  110. package/packages/core/contracts/public-surface-cli.js +0 -1
  111. package/packages/core/dev-delivery/dev-delivery-contract-surface.js +2 -2
  112. package/packages/core/governance/buildchain-publication-authority.js +24 -24
  113. package/packages/core/governance/cli/doctor.mjs +58 -42
  114. package/packages/core/governance/commands/architecture.mjs +6 -1
  115. package/packages/core/governance/commands/audit-publication-control-plane.mjs +1 -1
  116. package/packages/core/governance/commands/workflow-friction-report.mjs +1 -1
  117. package/packages/core/governance/github-governance-authority.js +2 -2
  118. package/packages/core/governance/publication/collection.js +1 -1
  119. package/packages/core/index.js +1 -3
  120. package/packages/core/observability/cli/candidate.mjs +0 -2
  121. package/packages/core/observability/cli/context.mjs +0 -5
  122. package/packages/core/observability/cli/diagnostics.mjs +0 -7
  123. package/packages/core/observability/cli/events.mjs +2 -10
  124. package/packages/core/paper/commands/paper-work-fleet-cli.mjs +1 -1
  125. package/packages/core/paper/commands/paper.mjs +33 -422
  126. package/packages/core/paper/consumer-status.js +72 -0
  127. package/packages/core/paper/operations/identity.js +0 -3
  128. package/packages/core/paper/operations/migration.js +460 -0
  129. package/packages/core/paper/operations/preflight-checks.js +8 -68
  130. package/packages/core/paper/operations/scaffold.js +16 -326
  131. package/packages/core/paper/operations/status.js +27 -53
  132. package/packages/core/paper/paper-agent-entry.js +36 -147
  133. package/packages/core/paper/paper-fleet.js +24 -39
  134. package/packages/core/paper/paper-repository.js +16 -0
  135. package/packages/core/paper/paper-runtime-channels.js +1 -1
  136. package/packages/core/paper/paper-scaffold-content.js +153 -162
  137. package/packages/core/paper/paper-work.js +3 -10
  138. package/packages/core/paper/paper.js +43 -5
  139. package/packages/core/providers/github/artifact-attestation.js +1 -1
  140. package/packages/core/providers/github/pipeline-context-artifacts.js +172 -0
  141. package/packages/core/providers/github/pipeline-release-evidence.js +17 -98
  142. package/packages/core/providers/github/pipeline-stable-baseline.js +86 -0
  143. package/packages/core/providers/github/pipeline-stable-source.js +22 -4
  144. package/packages/core/providers/github/release-evidence-assets.js +97 -0
  145. package/packages/core/publication/authority/control-plane.js +2 -2
  146. package/packages/core/publication/authority/seal.js +1 -1
  147. package/packages/core/publication/cli/dispatch.mjs +1 -12
  148. package/packages/core/publication/pipeline/actions.js +16 -9
  149. package/packages/core/publication/pipeline/apply.js +17 -9
  150. package/packages/core/publication/pipeline/context.js +29 -0
  151. package/packages/core/publication/pipeline/journal.js +13 -1
  152. package/packages/core/publication/pipeline/prepare.js +15 -6
  153. package/packages/core/publication/pipeline/recovery-import.js +1 -1
  154. package/packages/core/publication/pipeline/recovery-materials.js +63 -1
  155. package/packages/core/publication/pipeline/recovery-prepare.js +21 -9
  156. package/packages/core/publication/pipeline/stable-entry.js +12 -3
  157. package/packages/core/publication/pipeline/stable-products.js +21 -19
  158. package/packages/core/publication/pipeline/version-actions.js +15 -6
  159. package/packages/core/publication/publication-rehearsal-projection.js +0 -9
  160. package/packages/core/release/cli/dispatch.mjs +1 -4
  161. package/packages/core/release/cli/inspection-handlers.mjs +1 -33
  162. package/packages/core/release/cli/release-handlers.mjs +2 -19
  163. package/packages/core/release/cli/verification-handlers.mjs +4 -25
  164. package/packages/core/release/next-development-projection.js +13 -13
  165. package/packages/core/release/passport/locations.js +13 -8
  166. package/packages/core/release/release-passport.js +70 -5
  167. package/packages/core/web/cli/badges.mjs +0 -4
  168. package/packages/core/web/publication-admission.js +1 -1
  169. package/packages/core/web/publication-capability.js +1 -1
  170. package/packages/core/web/readme-badges.js +1 -1
  171. package/packages/core/workflow/cli/main.mjs +1 -4
  172. package/packages/core/workflow/cli/process.mjs +1 -1
  173. package/packages/core/workflow/commands/buildchain-cli-help.mjs +2 -8
  174. package/packages/core/workflow/engine/conformance.js +1 -1
  175. package/packages/core/workflow/pipeline/build.js +21 -1
  176. package/packages/core/workflow/pipeline/delivery-observation.js +6 -2
  177. package/packages/core/workflow/workflow-taxonomy.mjs +61 -17
  178. package/scripts/check-code-layout.mjs +2 -0
  179. package/scripts/check-core-mechanism-inventory.mjs +29 -13
  180. package/scripts/check-floating-consumer-policy-contract.mjs +3 -3
  181. package/scripts/check-inventory.mjs +27 -27
  182. package/scripts/check-maintainability.mjs +28 -5
  183. package/scripts/check-public-dogfood-contract.mjs +3 -3
  184. package/scripts/check-release-topology.mjs +1 -1
  185. package/scripts/check-self-consumer-contract.mjs +7 -7
  186. package/scripts/check-universal-workflow-bootstrap.mjs +1 -1
  187. package/scripts/generate-channel-promotion-workflow.mjs +1 -1
  188. package/scripts/generate-minimal-consumer-contract.mjs +21 -1
  189. package/scripts/generate-site-bundle.mjs +2 -1
  190. package/scripts/generate-tail-reseal-fixture.mjs +3 -3
  191. package/scripts/inventory/promotion.mjs +1 -1
  192. package/scripts/next-development-self-dogfood-harness.mjs +1 -1
  193. package/scripts/next-development-self-dogfood.mjs +4 -4
  194. package/scripts/site-capability-metadata.mjs +2 -6
  195. package/scripts/source-metric-lineage.mjs +62 -7
  196. package/scripts/verify-golden-path.mjs +31 -35
  197. package/templates/native-dev-delivery.yml +1 -1
  198. package/templates/universal-buildchain-bootstrap.yml +1 -1
  199. package/packages/core/paper/operations/bootstrap.js +0 -75
  200. package/packages/core/paper/operations/plans.js +0 -213
  201. package/packages/core/paper/operations/provisioning.js +0 -113
  202. package/packages/core/paper/operations/scaffold-config.js +0 -77
  203. package/packages/core/paper/operations/scaffold-workflows.js +0 -116
  204. package/packages/core/paper/operations/workspace.js +0 -60
  205. package/packages/core/paper/paper-npm-bootstrap.js +0 -492
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "4.1.3-alpha.9",
7
+ "version": "4.1.4-alpha.0",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v4",
@@ -12,6 +12,58 @@
12
12
  "compatibilityFacts": [],
13
13
  "compatibilityProofs": [],
14
14
  "surfaces": [
15
+ {
16
+ "contractVersion": 1,
17
+ "stability": "stable",
18
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
19
+ "id": "pipeline",
20
+ "kind": "workflow",
21
+ "path": ".github/workflows/public-ops-pipeline.yml",
22
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/public-ops-pipeline.yml@v4",
23
+ "breakingDefaults": {
24
+ "configurationAuthority": ".buildchain/buildchain.toml",
25
+ "schema": 2
26
+ },
27
+ "guarantees": [
28
+ "one product-independent generated caller admits normal repository events",
29
+ "the published runtime owns protected delivery, publication and provider readback"
30
+ ],
31
+ "apiRole": "public",
32
+ "requiredInputs": [],
33
+ "optionalInputs": [
34
+ "config-path"
35
+ ],
36
+ "requiredOutputs": [],
37
+ "breakingDigest": "sha256:a1ede254e9cab70bc882280de975dc10834f2104e6aaa37ff20c24be47347273",
38
+ "auditDigest": "sha256:c04c24758dfe4d274e6164f01121af6793e559e639e397b21c32bb2f7b992839"
39
+ },
40
+ {
41
+ "contractVersion": 1,
42
+ "stability": "stable",
43
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
44
+ "id": "attempt-recovery",
45
+ "kind": "workflow",
46
+ "path": ".github/workflows/public-ops-recover.yml",
47
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/public-ops-recover.yml@v4",
48
+ "breakingDefaults": {
49
+ "selector": "exact-attempt",
50
+ "repairedRuntime": "optional-transient-input"
51
+ },
52
+ "guarantees": [
53
+ "recovery retains original source, materials and immutable publication evidence",
54
+ "consumers cannot replace provider effects, artifacts or source through recovery inputs"
55
+ ],
56
+ "apiRole": "public",
57
+ "requiredInputs": [
58
+ "attempt"
59
+ ],
60
+ "optionalInputs": [
61
+ "runtime-ref"
62
+ ],
63
+ "requiredOutputs": [],
64
+ "breakingDigest": "sha256:0a90a435a4645329634687038b3fbd347b4dbcfa8a96ac2974076f1e5f330835",
65
+ "auditDigest": "sha256:68956da6c2f04f853dd294819a54954da6dafac1eb200f02d1e60f232bda67b2"
66
+ },
15
67
  {
16
68
  "contractVersion": 1,
17
69
  "stability": "stable",
@@ -32,6 +84,7 @@
32
84
  "contract drift is checked before heavy build jobs for stable floating refs",
33
85
  "retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
34
86
  ],
87
+ "apiRole": "implementation",
35
88
  "requiredInputs": [],
36
89
  "optionalInputs": [
37
90
  "config-path",
@@ -43,7 +96,7 @@
43
96
  "requiredOutputs": [
44
97
  "result"
45
98
  ],
46
- "breakingDigest": "sha256:cda31fcfd64bd8a895216d9537910a9676736e70aef0fde8a1697b2c88222ed5",
99
+ "breakingDigest": "sha256:f8f6b7286b1afcca92ef357e48f7bb9cb5ce15c3b43108a0c5a7c66c2683fbe5",
47
100
  "auditDigest": "sha256:d6c7d523fa1d08350ca53483a7315111cf96eeb6623f3069f6c53a8487adeb74"
48
101
  },
49
102
  {
@@ -52,8 +105,8 @@
52
105
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
53
106
  "id": "channel-build-router",
54
107
  "kind": "workflow",
55
- "path": ".github/workflows/build.yml",
56
- "publicRef": "kungfu-systems/buildchain/.github/workflows/build.yml@v4",
108
+ "path": ".github/workflows/.build-candidate.yml",
109
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/.build-candidate.yml@v4",
57
110
  "breakingDefaults": {
58
111
  "configurationAuthority": "buildchain.toml",
59
112
  "runtimeIdentity": "entry-selected-complete-runtime",
@@ -66,6 +119,7 @@
66
119
  "stable and alpha select their matching repository contract locks",
67
120
  "source, runtime and configuration roots are bound before the build matrix"
68
121
  ],
122
+ "apiRole": "implementation",
69
123
  "requiredInputs": [],
70
124
  "optionalInputs": [
71
125
  "config-path",
@@ -79,7 +133,7 @@
79
133
  "release-candidate-artifact",
80
134
  "result"
81
135
  ],
82
- "breakingDigest": "sha256:7574ae8fc694534860bd633efcc3caaffd121a5d7d778a1f96c560f1999434b3",
136
+ "breakingDigest": "sha256:fe7df253cf7ce886a6a4d2e8013f22cb7ac3ea34fd1f96eb36a061382cf074f2",
83
137
  "auditDigest": "sha256:0c88962bb6d63009f6fa9a3703daff9592915389a545be222f5d0f551e1407b6"
84
138
  },
85
139
  {
@@ -88,8 +142,8 @@
88
142
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
89
143
  "id": "dev-pr-auto-merge",
90
144
  "kind": "workflow",
91
- "path": ".github/workflows/public-ops-dev-auto-merge.yml",
92
- "publicRef": "kungfu-systems/buildchain/.github/workflows/public-ops-dev-auto-merge.yml@v4",
145
+ "path": ".github/workflows/.ops-dev-auto-merge.yml",
146
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/.ops-dev-auto-merge.yml@v4",
93
147
  "breakingDefaults": {
94
148
  "runtimeSelectorDefault": "consumer-contract-lock-or-entry",
95
149
  "authorityMode": "two-phase-delivery-warrant",
@@ -112,6 +166,7 @@
112
166
  "the finalizer validates rooted heartbeat continuity and latest durable state before qualification, failure settlement, or landing",
113
167
  "durable consumers call the public floating workflow and may route a train or exact runtime only through trusted non-persistent dispatch input"
114
168
  ],
169
+ "apiRole": "implementation",
115
170
  "requiredInputs": [],
116
171
  "optionalInputs": [
117
172
  "active-lease-context",
@@ -180,7 +235,7 @@
180
235
  "warrant-state-commit",
181
236
  "warrant-state-root"
182
237
  ],
183
- "breakingDigest": "sha256:1bd7d62abdf4f14c84010093aa044ff99eeabc92705d965e13043908cfec87ac",
238
+ "breakingDigest": "sha256:0b204b34647d5d40153d8e21b20d534fbb6cd94d81947c50047b9f363aea5d78",
184
239
  "auditDigest": "sha256:f7afcc8ec47039479e2345ac70ee7e50d91300657e5dc028a363af0374840110"
185
240
  },
186
241
  {
@@ -189,8 +244,8 @@
189
244
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
190
245
  "id": "release-candidate-promote",
191
246
  "kind": "workflow",
192
- "path": ".github/workflows/public-release-promote.yml",
193
- "publicRef": "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4",
247
+ "path": ".github/workflows/.release-candidate-promote.yml",
248
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/.release-candidate-promote.yml@v4",
194
249
  "breakingDefaults": {
195
250
  "channelDefault": "auto",
196
251
  "runtimeSelectionOwner": "actions/runtime/selection/resolve",
@@ -234,6 +289,7 @@
234
289
  "publish-gate source locks are created by the wrapper and enforced by promote-buildchain-ref before publish side effects",
235
290
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
236
291
  ],
292
+ "apiRole": "implementation",
237
293
  "requiredInputs": [
238
294
  "request-json"
239
295
  ],
@@ -289,7 +345,7 @@
289
345
  "release-tail-transaction-state",
290
346
  "release-transaction-root"
291
347
  ],
292
- "breakingDigest": "sha256:c9727056289fc47fbd3bd5f1d0b39b9816f2d6828f3262587aec53e5062da7f1",
348
+ "breakingDigest": "sha256:75e4cd9606c4504fbf5b73ff9c40712616a22a083aceaf4ec80e44a83a4a40f3",
293
349
  "auditDigest": "sha256:ba4112f3b5f9c896f61462cebe3f5458a13d315499aced829bddc30830ff6969"
294
350
  },
295
351
  {
@@ -309,6 +365,7 @@
309
365
  "promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix",
310
366
  "resume-from-candidate-run is fail-closed and uses a fresh caller event instead of rerunning a frozen startup graph"
311
367
  ],
368
+ "apiRole": "implementation",
312
369
  "requiredInputs": [
313
370
  "request-json"
314
371
  ],
@@ -352,7 +409,7 @@
352
409
  "release-tail-transaction-state",
353
410
  "release-transaction-root"
354
411
  ],
355
- "breakingDigest": "sha256:64b800e0189286f5bc8615f8f1a0ee1ba2420a79dc6ec77b14e96619ef4dd094",
412
+ "breakingDigest": "sha256:b6b794cf432b69cbe6de9737b5c0a4e95367eb87f9244d63142b4fbb7e9ec7ef",
356
413
  "auditDigest": "sha256:212545ad11011e703d17bb346787362730167743c2110e81a8b32d6c0493d509"
357
414
  },
358
415
  {
@@ -361,8 +418,8 @@
361
418
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
362
419
  "id": "web-surface",
363
420
  "kind": "workflow",
364
- "path": ".github/workflows/public-release-web.yml",
365
- "publicRef": "kungfu-systems/buildchain/.github/workflows/public-release-web.yml@v4",
421
+ "path": ".github/workflows/.release-web.yml",
422
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/.release-web.yml@v4",
366
423
  "breakingDefaults": {
367
424
  "runtimeSelectionOwner": "actions/runtime/selection/resolve",
368
425
  "contractCompatibilityPolicy": "major-compatible",
@@ -376,6 +433,7 @@
376
433
  "effective channel and preview alias are injected before caller build and verify commands",
377
434
  "channel-aware artifact host facts are checked against the deploy plan before adapter side effects"
378
435
  ],
436
+ "apiRole": "implementation",
379
437
  "requiredInputs": [],
380
438
  "optionalInputs": [
381
439
  "artifact-path",
@@ -441,7 +499,7 @@
441
499
  "web-surface-url",
442
500
  "web-surface-urls-json"
443
501
  ],
444
- "breakingDigest": "sha256:8d4c5471402f9cb3c0b8db5d2e75fcc6ea826aee0649066c9bbbb41a4a939a61",
502
+ "breakingDigest": "sha256:70d756760b0a3cf3c0ccdfd57cc9705c1e6a3e7fdec80f88846004c3538327e3",
445
503
  "auditDigest": "sha256:728c58f1fcba02b0cd6f90d51f1e2125f000bd4674d798136ce13fb65cc5ef2c"
446
504
  },
447
505
  {
@@ -470,6 +528,7 @@
470
528
  "Build Images owns encoding, Buildchain owns qualification and receipts, and site repositories own browser loading and accessibility behavior",
471
529
  "media qualification does not claim browser playback, responsive layout, reduced-motion behavior, accessibility, or production deployment"
472
530
  ],
531
+ "apiRole": "implementation",
473
532
  "requiredInputs": [
474
533
  "adapter-path",
475
534
  "renderer-image",
@@ -502,7 +561,7 @@
502
561
  "media-root",
503
562
  "source-sha"
504
563
  ],
505
- "breakingDigest": "sha256:782074f938bedd8bf1cfe0e5428e1103c9471af93d4822c0cb7a677c659ff1a2",
564
+ "breakingDigest": "sha256:b22176cb621d6741cb220e530913881547b89f330b9641b890e1cc9fc84125cf",
506
565
  "auditDigest": "sha256:442381ba8ec8d2c4045b241abd0d50bdc9b8a97b05bdb37bc52407ffca2f3ca7"
507
566
  },
508
567
  {
@@ -511,8 +570,8 @@
511
570
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
512
571
  "id": "declarative-auditable-demo",
513
572
  "kind": "workflow",
514
- "path": ".github/workflows/public-build-demo.yml",
515
- "publicRef": "kungfu-systems/buildchain/.github/workflows/public-build-demo.yml@v4",
573
+ "path": ".github/workflows/.build-demo.yml",
574
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/.build-demo.yml@v4",
516
575
  "breakingDefaults": {
517
576
  "scenarioPathDefault": ".buildchain/auditable-demo.json",
518
577
  "renderMediaDefault": false,
@@ -530,6 +589,7 @@
530
589
  "manual, alpha, and release callers use the same capture, Gate, renderer, passport, and materializer implementation",
531
590
  "identity, compliance, Product System metadata, package metadata, registry history, scans, and generation grant no authority"
532
591
  ],
592
+ "apiRole": "implementation",
533
593
  "requiredInputs": [
534
594
  "binary-artifact-digest",
535
595
  "binary-artifact-name",
@@ -557,7 +617,7 @@
557
617
  "render-result",
558
618
  "source-sha"
559
619
  ],
560
- "breakingDigest": "sha256:20412f25271537165e25d8a7d65e716701745570a419c482777a088466c5dd6f",
620
+ "breakingDigest": "sha256:ae5b8fa439775f040f19403e968b3f015994ac67c2d83b534f06a81c7436f609",
561
621
  "auditDigest": "sha256:1eb1d1d1f4dceaac923db3abe302cd65044bb800ccbae71aa56e8ea9aa39e468"
562
622
  },
563
623
  {
@@ -603,7 +663,8 @@
603
663
  "durable provider checkpoints resume completed capabilities without replay",
604
664
  "no consumer command, script, shell, checkout, or executable tail hook is accepted"
605
665
  ],
606
- "breakingDigest": "sha256:930a8c3bb97347aea40ab19c4ee1dc29c1f4b75897e19bc0d56da1018fa382c8",
666
+ "apiRole": "implementation",
667
+ "breakingDigest": "sha256:fbe7b9c8fd9270cf287e6beca3d1946c8404d6313688c5841088ca3d4b7a76ad",
607
668
  "auditDigest": "sha256:5d3a78e4f2499a8638f20dd4adfa976d0bd82f4f4cdf619dce080c22b5188336"
608
669
  },
609
670
  {
@@ -672,7 +733,8 @@
672
733
  "publish transactions can require a resolved publish-gate source lock to prevent floating-ref drift",
673
734
  "semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata bound to the authoritative publication channel and tag syntax retained as the fallback for ordinary callers"
674
735
  ],
675
- "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
736
+ "apiRole": "implementation",
737
+ "breakingDigest": "sha256:3e58655671ab83663c0794aed024051af4fefb6fc520a1165f5d9897e637990f",
676
738
  "auditDigest": "sha256:1b8f8615a114a6f352aeb79a0d25c8ed08b9305f07cabac7a2d4be76cd0ec705"
677
739
  },
678
740
  {
@@ -728,7 +790,8 @@
728
790
  "the app and DMG are notarized, stapled, Gatekeeper assessed, and bound to retained evidence",
729
791
  "temporary keychain and API key material are cleaned in both main and post phases"
730
792
  ],
731
- "breakingDigest": "sha256:61866985864205770c70cbe14c3c60f479512a32c0b007b5fd6d8d65132ff8be",
793
+ "apiRole": "implementation",
794
+ "breakingDigest": "sha256:7019a65da43122a8530478ac44503d8af97649a729843c8890ad291289a9d859",
732
795
  "auditDigest": "sha256:60c44e35de1788c4c4c2529cb491914054df0b604539758e230ff31ad6dfdab2"
733
796
  },
734
797
  {
@@ -763,7 +826,8 @@
763
826
  "GitHub API 429 and 5xx failures are retried",
764
827
  "missing issue permissions produce a copyable summary fallback"
765
828
  ],
766
- "breakingDigest": "sha256:575a2cb02cdb2e61bb2e84d5bbaaf64b430aa5d7936645660b592de4549d81b0",
829
+ "apiRole": "implementation",
830
+ "breakingDigest": "sha256:83c95972cae0db101fe104f0c60ebf7a69c8237758834872530236889b827bd5",
767
831
  "auditDigest": "sha256:10b766e026f8089235dfd6a9356cdbfa42c5dd290ba3003e5fcfd886432a0a34"
768
832
  },
769
833
  {
@@ -788,7 +852,7 @@
788
852
  "release-state SHA is recorded as a durable audit entrance"
789
853
  ],
790
854
  "breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
791
- "auditDigest": "sha256:baf6dea00db705099a4a04b317f8b1abcb8e515b28b4230dd24195a720feb9b7"
855
+ "auditDigest": "sha256:8b10da3b4ac18c51e77ed41e77959002bbda58dbb5e447988e7661a353783d42"
792
856
  },
793
857
  {
794
858
  "contractVersion": 1,
@@ -837,7 +901,7 @@
837
901
  "prose-only public claims downgrade the release trust passport audit"
838
902
  ],
839
903
  "breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
840
- "auditDigest": "sha256:baf6dea00db705099a4a04b317f8b1abcb8e515b28b4230dd24195a720feb9b7"
904
+ "auditDigest": "sha256:8b10da3b4ac18c51e77ed41e77959002bbda58dbb5e447988e7661a353783d42"
841
905
  },
842
906
  {
843
907
  "contractVersion": 1,
@@ -965,7 +1029,7 @@
965
1029
  "CLI and JavaScript callers use the same Node API implementation"
966
1030
  ],
967
1031
  "breakingDigest": "sha256:bcd72ad6dfba8013c96f8b2f7b0a307d2e7713972a1219348f0d5ecc493939a0",
968
- "auditDigest": "sha256:8e38effc20c682d27fc883f02eb7726ba0c5f5d2219c00d78d893d69679c20c0"
1032
+ "auditDigest": "sha256:c07972b8b85795243706ff0f85d80390f363114f5aee958935dc5abc2f12f9f5"
969
1033
  },
970
1034
  {
971
1035
  "contractVersion": 1,
@@ -987,7 +1051,7 @@
987
1051
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
988
1052
  ],
989
1053
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
990
- "auditDigest": "sha256:c9b2dbdef7bd74559e915311af4a39d484bce18d526d9af47f38f41613f9be74"
1054
+ "auditDigest": "sha256:1b705797924ccbef8915178e49e57dbdc756a6532b644370389687c682d87b93"
991
1055
  },
992
1056
  {
993
1057
  "contractVersion": 1,
@@ -1009,7 +1073,7 @@
1009
1073
  "agents can discover supported Node APIs without importing internal file paths"
1010
1074
  ],
1011
1075
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
1012
- "auditDigest": "sha256:de3ee2a5d0039eb772c49bd1636d882a83ef419cfa74604c4f5664ec85fffca4"
1076
+ "auditDigest": "sha256:f4d09f85bbb9f70e6875afab0414565641e6a26b52a288638aaf3ad9b4b822cc"
1013
1077
  },
1014
1078
  {
1015
1079
  "contractVersion": 1,
@@ -1017,7 +1081,7 @@
1017
1081
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1018
1082
  "id": "controller:source-check",
1019
1083
  "kind": "controller",
1020
- "path": ".github/workflows/public-build-check.yml",
1084
+ "path": ".github/workflows/.build-check.yml",
1021
1085
  "requiredInputs": [],
1022
1086
  "requiredOutputs": [
1023
1087
  "controller-plan-json",
@@ -1029,7 +1093,7 @@
1029
1093
  "breakingDefaults": {
1030
1094
  "evidenceContract": "buildchain.controller-evidence/v1",
1031
1095
  "descriptorVersion": 1,
1032
- "workflowPath": ".github/workflows/public-build-check.yml",
1096
+ "workflowPath": ".github/workflows/.build-check.yml",
1033
1097
  "requiredStages": [
1034
1098
  "resolve-runtime",
1035
1099
  "checkout-source",
@@ -1065,8 +1129,8 @@
1065
1129
  ],
1066
1130
  "controllerDescriptor": {
1067
1131
  "contract": "buildchain.controller-descriptor/v1",
1068
- "digest": "sha256:3f2f0e2f9f8a21ea3db046cb477f2534711de29745e3f40be959eef398a2e692",
1069
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
1132
+ "digest": "sha256:eeb5323004b7ef68187e300352f0bb8d646ed8ba8720181abbbc3ff59c91f0e8",
1133
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
1070
1134
  "inputClassifications": {
1071
1135
  "contract-lock": {
1072
1136
  "classification": "included",
@@ -1128,7 +1192,8 @@
1128
1192
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1129
1193
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1130
1194
  ],
1131
- "breakingDigest": "sha256:c90592a71d859c9814e70cb1c8603d8240271e8049fe4e754fe4776b8f1b1a4c",
1195
+ "apiRole": "implementation",
1196
+ "breakingDigest": "sha256:5fafc5afb5f7e7ca77c5d1fa8e2323e8ba562b4da62aa50e7d2d935fde8d2a55",
1132
1197
  "auditDigest": "sha256:003787b94b61d80b06aee69603f3a49a869633e4eedb25161ec200ec777e4978"
1133
1198
  },
1134
1199
  {
@@ -1188,7 +1253,7 @@
1188
1253
  "controllerDescriptor": {
1189
1254
  "contract": "buildchain.controller-descriptor/v1",
1190
1255
  "digest": "sha256:849a51ff18efbc2bf4668cd6ba6e08004caf5fc01de4676eade0f917d24c5fd1",
1191
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
1256
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
1192
1257
  "inputClassifications": {
1193
1258
  "BUILDCHAIN_MACOS_CERTIFICATE_P12_BASE64": {
1194
1259
  "classification": "redacted",
@@ -1246,7 +1311,8 @@
1246
1311
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1247
1312
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1248
1313
  ],
1249
- "breakingDigest": "sha256:6adb4adc805a741ec7e54a769c4bb89ef66805bb63ac99dfab06ba11f36d9381",
1314
+ "apiRole": "implementation",
1315
+ "breakingDigest": "sha256:53e3c1acd82720f4bc27d48ad11effe44bba1e515115462cac43814e12991e8d",
1250
1316
  "auditDigest": "sha256:d6c7d523fa1d08350ca53483a7315111cf96eeb6623f3069f6c53a8487adeb74"
1251
1317
  },
1252
1318
  {
@@ -1318,7 +1384,7 @@
1318
1384
  "controllerDescriptor": {
1319
1385
  "contract": "buildchain.controller-descriptor/v1",
1320
1386
  "digest": "sha256:83fb2f980409ff9eb7091fc675b1f1ecd471d335945d8fa6003357f0af709dd5",
1321
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
1387
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
1322
1388
  "inputClassifications": {
1323
1389
  "artifact-name": {
1324
1390
  "classification": "included",
@@ -1452,7 +1518,8 @@
1452
1518
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1453
1519
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1454
1520
  ],
1455
- "breakingDigest": "sha256:93d630270c6db2c6993f0965d44280e0f178159d8d74519c7752a38d5771d02e",
1521
+ "apiRole": "implementation",
1522
+ "breakingDigest": "sha256:f4a7a817dc67973d158b7bb5290197f57927762deb7171fc4e01051c11b32dc8",
1456
1523
  "auditDigest": "sha256:a85a81d1d2e43e945f9ad9fe514b38278d74e7851d1e6b471a2935a6c4648268"
1457
1524
  },
1458
1525
  {
@@ -1461,7 +1528,7 @@
1461
1528
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1462
1529
  "id": "controller:web-surface",
1463
1530
  "kind": "controller",
1464
- "path": ".github/workflows/public-release-web.yml",
1531
+ "path": ".github/workflows/.release-web.yml",
1465
1532
  "requiredInputs": [],
1466
1533
  "requiredOutputs": [
1467
1534
  "controller-plan-json",
@@ -1473,7 +1540,7 @@
1473
1540
  "breakingDefaults": {
1474
1541
  "evidenceContract": "buildchain.controller-evidence/v1",
1475
1542
  "descriptorVersion": 1,
1476
- "workflowPath": ".github/workflows/public-release-web.yml",
1543
+ "workflowPath": ".github/workflows/.release-web.yml",
1477
1544
  "requiredStages": [
1478
1545
  "resolve-runtime",
1479
1546
  "plan",
@@ -1535,8 +1602,8 @@
1535
1602
  ],
1536
1603
  "controllerDescriptor": {
1537
1604
  "contract": "buildchain.controller-descriptor/v1",
1538
- "digest": "sha256:8818db80d272797d84488cd5db915014edf0081b78afa8a52561f54e0deee908",
1539
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
1605
+ "digest": "sha256:ffef96c7b7bbcec02f9cc2b9e25df2e8c23945e4154fda489b2c357aa865202c",
1606
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
1540
1607
  "inputClassifications": {
1541
1608
  "artifact-path": {
1542
1609
  "classification": "digest-only",
@@ -1702,7 +1769,8 @@
1702
1769
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1703
1770
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1704
1771
  ],
1705
- "breakingDigest": "sha256:ad5e695f42245fdbe53afbef5311ae52f113c9016bec46eaff4476aeb158ec17",
1772
+ "apiRole": "implementation",
1773
+ "breakingDigest": "sha256:8bb348c4a879fb349c35b7c2282eecda930da59ac7e13ee8e65efd44eaeb322b",
1706
1774
  "auditDigest": "sha256:728c58f1fcba02b0cd6f90d51f1e2125f000bd4674d798136ce13fb65cc5ef2c"
1707
1775
  },
1708
1776
  {
@@ -1711,7 +1779,7 @@
1711
1779
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1712
1780
  "id": "controller:publication-artifact",
1713
1781
  "kind": "controller",
1714
- "path": ".github/workflows/public-build-publication.yml",
1782
+ "path": ".github/workflows/.build-publication.yml",
1715
1783
  "requiredInputs": [],
1716
1784
  "requiredOutputs": [
1717
1785
  "controller-plan-json",
@@ -1723,7 +1791,7 @@
1723
1791
  "breakingDefaults": {
1724
1792
  "evidenceContract": "buildchain.controller-evidence/v1",
1725
1793
  "descriptorVersion": 1,
1726
- "workflowPath": ".github/workflows/public-build-publication.yml",
1794
+ "workflowPath": ".github/workflows/.build-publication.yml",
1727
1795
  "requiredStages": [
1728
1796
  "resolve-runtime",
1729
1797
  "build",
@@ -1767,8 +1835,8 @@
1767
1835
  ],
1768
1836
  "controllerDescriptor": {
1769
1837
  "contract": "buildchain.controller-descriptor/v1",
1770
- "digest": "sha256:8807dfdad8dc0ae15b51616049804b8a44936d37e364d209e099f680385d81af",
1771
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
1838
+ "digest": "sha256:2c320c01ed604bcfb14175aefbd7dd6c961f04e3fc52cb0f02f50b08db725f2d",
1839
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
1772
1840
  "inputClassifications": {
1773
1841
  "artifact-name": {
1774
1842
  "classification": "included",
@@ -1862,7 +1930,8 @@
1862
1930
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1863
1931
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1864
1932
  ],
1865
- "breakingDigest": "sha256:64043b583051b8fc5320b5d6f2304120037fb6a14b8448edbf6e91908f719739",
1933
+ "apiRole": "implementation",
1934
+ "breakingDigest": "sha256:eabb9f16b7b5dbd68d8aa25e2bb4b489c80f75d91ee3f793d796c69f8a0420e7",
1866
1935
  "auditDigest": "sha256:8ffe778e9895143bb9fc6571dc7b04006eddc9def16691fae9b45bb4329d28c7"
1867
1936
  },
1868
1937
  {
@@ -1871,7 +1940,7 @@
1871
1940
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1872
1941
  "id": "controller:paper-release",
1873
1942
  "kind": "controller",
1874
- "path": ".github/workflows/public-release-paper.yml",
1943
+ "path": ".github/workflows/.release-paper.yml",
1875
1944
  "requiredInputs": [],
1876
1945
  "requiredOutputs": [
1877
1946
  "controller-plan-json",
@@ -1883,7 +1952,7 @@
1883
1952
  "breakingDefaults": {
1884
1953
  "evidenceContract": "buildchain.controller-evidence/v1",
1885
1954
  "descriptorVersion": 1,
1886
- "workflowPath": ".github/workflows/public-release-paper.yml",
1955
+ "workflowPath": ".github/workflows/.release-paper.yml",
1887
1956
  "requiredStages": [
1888
1957
  "resolve-runtime",
1889
1958
  "build",
@@ -1938,8 +2007,8 @@
1938
2007
  ],
1939
2008
  "controllerDescriptor": {
1940
2009
  "contract": "buildchain.controller-descriptor/v1",
1941
- "digest": "sha256:f98dae8ad9a494e651690ac128cf4b1b4a6df55cfb255ecca24dae60d0d205fa",
1942
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
2010
+ "digest": "sha256:1a98258cc22ecd79ebca7acb5bba5fbd4daef8af34439003ef586b4f8e84744e",
2011
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
1943
2012
  "inputClassifications": {
1944
2013
  "BUILDCHAIN_GENERATED_WRITE_APP_CLIENT_ID": {
1945
2014
  "classification": "redacted",
@@ -2057,8 +2126,9 @@
2057
2126
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
2058
2127
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
2059
2128
  ],
2060
- "breakingDigest": "sha256:1175b298251f200a6290c7f46d79f70e5c703279d3a5c5e9776bb18d4e4f7b52",
2061
- "auditDigest": "sha256:0bd9ce9bff3b6e6472d153cdd291c97de83a78b5679d795a3016a38df4c6b364"
2129
+ "apiRole": "implementation",
2130
+ "breakingDigest": "sha256:e8c35104b8927d313d22fae5a929111be40a2bdbc78be29e05076b848e9f10e0",
2131
+ "auditDigest": "sha256:1da565842d9833731ce131635cb4a061b20f13216d55057a3961714941b6ef26"
2062
2132
  },
2063
2133
  {
2064
2134
  "contractVersion": 1,
@@ -2066,7 +2136,7 @@
2066
2136
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
2067
2137
  "id": "controller:release-candidate-promotion",
2068
2138
  "kind": "controller",
2069
- "path": ".github/workflows/.release-promote.yml",
2139
+ "path": ".github/workflows/.release-candidate-promote.yml",
2070
2140
  "requiredInputs": [],
2071
2141
  "requiredOutputs": [
2072
2142
  "controller-plan-json",
@@ -2078,7 +2148,7 @@
2078
2148
  "breakingDefaults": {
2079
2149
  "evidenceContract": "buildchain.controller-evidence/v1",
2080
2150
  "descriptorVersion": 1,
2081
- "workflowPath": ".github/workflows/.release-promote.yml",
2151
+ "workflowPath": ".github/workflows/.release-candidate-promote.yml",
2082
2152
  "requiredStages": [
2083
2153
  "preflight",
2084
2154
  "admit-release-candidate",
@@ -2120,8 +2190,8 @@
2120
2190
  ],
2121
2191
  "controllerDescriptor": {
2122
2192
  "contract": "buildchain.controller-descriptor/v1",
2123
- "digest": "sha256:699a18f875d395d830bb07c511ec7e6e9dff1ac97a057004a0e58c51d065ce19",
2124
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
2193
+ "digest": "sha256:b24b12bd41b968aef7694e41d0186cd130a748f6142b196e9e98dd30b026058d",
2194
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
2125
2195
  "inputClassifications": {
2126
2196
  "BUILDCHAIN_ISSUE_APP_ID": {
2127
2197
  "classification": "redacted",
@@ -2187,8 +2257,9 @@
2187
2257
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
2188
2258
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
2189
2259
  ],
2190
- "breakingDigest": "sha256:884bc7c4dccbc561b1d22a20cc5f7f50172c9691775aa2b84179e036a138cb20",
2191
- "auditDigest": "sha256:212545ad11011e703d17bb346787362730167743c2110e81a8b32d6c0493d509"
2260
+ "apiRole": "implementation",
2261
+ "breakingDigest": "sha256:c8852f18731c89f59dac050ffd10d2cd557879a7a2dca41e25020cc18f837e05",
2262
+ "auditDigest": "sha256:ba4112f3b5f9c896f61462cebe3f5458a13d315499aced829bddc30830ff6969"
2192
2263
  },
2193
2264
  {
2194
2265
  "contractVersion": 1,
@@ -2196,7 +2267,7 @@
2196
2267
  "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
2197
2268
  "id": "controller:release-propagation",
2198
2269
  "kind": "controller",
2199
- "path": ".github/workflows/public-release-propagation.yml",
2270
+ "path": ".github/workflows/.release-propagation.yml",
2200
2271
  "requiredInputs": [],
2201
2272
  "requiredOutputs": [
2202
2273
  "controller-plan-json",
@@ -2208,7 +2279,7 @@
2208
2279
  "breakingDefaults": {
2209
2280
  "evidenceContract": "buildchain.controller-evidence/v1",
2210
2281
  "descriptorVersion": 1,
2211
- "workflowPath": ".github/workflows/public-release-propagation.yml",
2282
+ "workflowPath": ".github/workflows/.release-propagation.yml",
2212
2283
  "requiredStages": [
2213
2284
  "resolve-runtime",
2214
2285
  "plan",
@@ -2253,8 +2324,8 @@
2253
2324
  ],
2254
2325
  "controllerDescriptor": {
2255
2326
  "contract": "buildchain.controller-descriptor/v1",
2256
- "digest": "sha256:bf6c18f33642654314281e4f1aaf49c16d3a8e765e62c7162ad53beaef630c76",
2257
- "registryDigest": "sha256:e4a23fdcb6c8f3483e8c5dc70f813cec94313597f6196189d0f14e2c084ea7f4",
2327
+ "digest": "sha256:8f495bf2d183158c3e38da53f0f8cf1f7cb44aae8ba05f4ca2447b1a08b2ffea",
2328
+ "registryDigest": "sha256:0c3b9ae5e97d89cc801f5553954141844fe668c7643df3920597e20a830b423e",
2258
2329
  "inputClassifications": {
2259
2330
  "agent-work-context-json": {
2260
2331
  "classification": "digest-only",
@@ -2348,13 +2419,14 @@
2348
2419
  "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
2349
2420
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
2350
2421
  ],
2351
- "breakingDigest": "sha256:63cbc80ea892431ee4780c358a60f4357ba95553c632dd86e1d62c18e375ecca",
2422
+ "apiRole": "implementation",
2423
+ "breakingDigest": "sha256:649e2bacb25844021f74486de42caf78b2710ecb913d956576ec0cd85fa518a0",
2352
2424
  "auditDigest": "sha256:64f8aa3f462050f332bba0880eabec68cb149239656f06c134dad17d1bb01318"
2353
2425
  }
2354
2426
  ],
2355
2427
  "compatibilityFactRegistryRoot": "sha256:ea8f656c9fd74aa2d2fb9b7807e7daa39a708f6a7cd37ab7d154eac7be5605a6",
2356
2428
  "compatibilityFactCutRoot": "sha256:58f33e498596505a26b6fc3c7ae5acef847ff699eee6c7e17a7b318a40bdf0d6",
2357
2429
  "compatibilityProofRegistryRoot": "sha256:2f6477405c7891b754b33ad6515d55618bd320e7cdc59330d7cc645e17201e72",
2358
- "compatibilityDigest": "sha256:81e32696723fe82fe29d2b2214cd56cf6c87bbeae5cff1a201de7ee7fd10ee9c",
2359
- "contractDigest": "sha256:1c898441fd7051ee92677001bc465e69b9b5988bba15f45be857f3d0a014a129"
2430
+ "compatibilityDigest": "sha256:808c03915bf090ded3082642ffc5163e15bdd090b629344df9bfb65544041dd3",
2431
+ "contractDigest": "sha256:fbfecb8be6bb882fb501312ac90915473e867853f71606975ce7a263edff6492"
2360
2432
  }