@kungfu-tech/buildchain 4.1.3-alpha.1 → 4.1.3-alpha.3

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 (228) hide show
  1. package/architecture/action-taxonomy.json +24 -0
  2. package/architecture/agent-change-map.md +256 -2
  3. package/architecture/ci-lane-change-budget.json +374 -0
  4. package/architecture/decisions/0005-minimal-consumer-contract.md +122 -0
  5. package/architecture/decisions/0006-business-attempt-journal.md +89 -0
  6. package/architecture/decisions/0007-hosted-pipeline-controller.md +106 -0
  7. package/architecture/decisions/0008-pipeline-product-publication.md +99 -0
  8. package/architecture/decisions/0009-pipeline-version-preparation.md +186 -0
  9. package/architecture/internal-capabilities.json +361 -2
  10. package/architecture/maintainability-debt.json +6 -4
  11. package/architecture/maintainability-policy.json +8 -8
  12. package/architecture/minimal-consumer-migration.json +7567 -0
  13. package/architecture/product-upstreams.json +20 -0
  14. package/architecture/release-topology.json +282 -11
  15. package/architecture/universal-workflow-bootstrap.json +12 -0
  16. package/architecture/universal-workflow-capability-policy.json +1 -1
  17. package/architecture/workflow-taxonomy.json +66 -0
  18. package/dist/readers/business-attempt.cjs +809 -0
  19. package/dist/site/buildchain-contract.json +7 -5
  20. package/dist/site/buildchain-site.json +18 -13
  21. package/dist/site/capability-registry.json +3 -3
  22. package/dist/site/kfd-claims.json +385 -10
  23. package/dist/site/kfd-upstream-aggregate.json +1 -1
  24. package/dist/site/manual-registry.json +1 -1
  25. package/dist/site/node-api-registry.json +21 -21
  26. package/dist/site/page-registry.json +13 -8
  27. package/dist/site/public-surface-audit.json +258 -7
  28. package/dist/site/publication-authority-registry.json +141 -1
  29. package/dist/site/publication-registry.json +4 -4
  30. package/dist/site/site-manifest.json +5 -5
  31. package/dist/site/workflow-registry.json +522 -7
  32. package/docs/node-api-reference.md +39 -39
  33. package/docs/runtime-entry.md +45 -5
  34. package/docs/workflow-catalog.md +6 -0
  35. package/package.json +4 -3
  36. package/packages/core/build/standalone/build.js +7 -1
  37. package/packages/core/consumer/buildchain-config.js +2 -21
  38. package/packages/core/consumer/contract/entries.js +85 -0
  39. package/packages/core/consumer/contract/examples.js +96 -0
  40. package/packages/core/consumer/contract/identity.js +65 -0
  41. package/packages/core/consumer/contract/inspection.js +45 -0
  42. package/packages/core/consumer/contract/plan.js +146 -0
  43. package/packages/core/consumer/contract/products.js +119 -0
  44. package/packages/core/consumer/contract/reader.js +47 -0
  45. package/packages/core/consumer/contract/shape.js +46 -0
  46. package/packages/core/dev-delivery/candidate/admission.js +9 -5
  47. package/packages/core/dev-delivery/candidate/reservation.js +11 -0
  48. package/packages/core/dev-delivery/candidate/source-paths.js +12 -4
  49. package/packages/core/dev-delivery/commands/project-cut-merge-queue-admission.mjs +47 -20
  50. package/packages/core/dev-delivery/native/actions.js +7 -1
  51. package/packages/core/dev-delivery/native/heartbeat-action.js +16 -0
  52. package/packages/core/dev-delivery/native/heartbeat.js +6 -4
  53. package/packages/core/dev-delivery/queue/landing-action.js +5 -0
  54. package/packages/core/governance/buildchain-publication-authority.js +6 -0
  55. package/packages/core/paper/operations/bootstrap.js +2 -0
  56. package/packages/core/paper/paper-npm-bootstrap.js +2 -2
  57. package/packages/core/providers/github/attempt-index.js +60 -0
  58. package/packages/core/providers/github/attempt-journal.js +154 -0
  59. package/packages/core/providers/github/discussions/materials.js +7 -2
  60. package/packages/core/providers/github/pipeline-checkout.js +49 -0
  61. package/packages/core/providers/github/pipeline-entry-runs.js +203 -0
  62. package/packages/core/providers/github/pipeline-events.js +52 -0
  63. package/packages/core/providers/github/pipeline-integration.js +95 -0
  64. package/packages/core/providers/github/pipeline-policy.js +213 -0
  65. package/packages/core/providers/github/pipeline-product-payload.js +50 -0
  66. package/packages/core/providers/github/pipeline-product-release.js +191 -0
  67. package/packages/core/providers/github/pipeline-publication-artifacts.js +153 -0
  68. package/packages/core/providers/github/pipeline-release-evidence.js +111 -0
  69. package/packages/core/providers/github/pipeline-run-entry.js +86 -0
  70. package/packages/core/providers/github/pipeline-runs.js +132 -0
  71. package/packages/core/providers/github/pipeline-source.js +178 -0
  72. package/packages/core/providers/github/pipeline-stable-source.js +354 -0
  73. package/packages/core/providers/github/pipeline-version-artifacts.js +91 -0
  74. package/packages/core/providers/github/pipeline-version-readback.js +117 -0
  75. package/packages/core/providers/github/pipeline-version.js +199 -0
  76. package/packages/core/providers/github/pipeline-worker.js +108 -0
  77. package/packages/core/publication/candidate/registry-hydration.js +2 -2
  78. package/packages/core/publication/npm/pack-preview.js +2 -2
  79. package/packages/core/publication/npm/pack-result.js +31 -0
  80. package/packages/core/publication/npm/package.js +3 -6
  81. package/packages/core/publication/npm/pipeline-channel.js +87 -0
  82. package/packages/core/publication/npm/pipeline-provider.js +109 -0
  83. package/packages/core/publication/npm/registry.js +12 -9
  84. package/packages/core/publication/pipeline/actions.js +116 -0
  85. package/packages/core/publication/pipeline/apply.js +188 -0
  86. package/packages/core/publication/pipeline/build-segments.js +107 -0
  87. package/packages/core/publication/pipeline/capsules.js +89 -0
  88. package/packages/core/publication/pipeline/context.js +39 -0
  89. package/packages/core/publication/pipeline/development-anchor.js +91 -0
  90. package/packages/core/publication/pipeline/development-current.js +63 -0
  91. package/packages/core/publication/pipeline/development-pr.js +112 -0
  92. package/packages/core/publication/pipeline/development-proof.js +76 -0
  93. package/packages/core/publication/pipeline/development-transition.js +112 -0
  94. package/packages/core/publication/pipeline/distribution.js +124 -0
  95. package/packages/core/publication/pipeline/documents.js +192 -0
  96. package/packages/core/publication/pipeline/effects.js +162 -0
  97. package/packages/core/publication/pipeline/files.js +66 -0
  98. package/packages/core/publication/pipeline/imported-materials.js +32 -0
  99. package/packages/core/publication/pipeline/journal.js +110 -0
  100. package/packages/core/publication/pipeline/next-development.js +117 -0
  101. package/packages/core/publication/pipeline/pack.js +157 -0
  102. package/packages/core/publication/pipeline/package-policy.js +22 -0
  103. package/packages/core/publication/pipeline/plan.js +136 -0
  104. package/packages/core/publication/pipeline/prepare.js +139 -0
  105. package/packages/core/publication/pipeline/qualification.js +175 -0
  106. package/packages/core/publication/pipeline/qualify.js +104 -0
  107. package/packages/core/publication/pipeline/recovery-admission.js +122 -0
  108. package/packages/core/publication/pipeline/recovery-build-download.js +80 -0
  109. package/packages/core/publication/pipeline/recovery-build-plan.js +122 -0
  110. package/packages/core/publication/pipeline/recovery-build-readback.js +68 -0
  111. package/packages/core/publication/pipeline/recovery-capsules.js +54 -0
  112. package/packages/core/publication/pipeline/recovery-import.js +80 -0
  113. package/packages/core/publication/pipeline/recovery-inspection.js +218 -0
  114. package/packages/core/publication/pipeline/recovery-materials.js +104 -0
  115. package/packages/core/publication/pipeline/recovery-plan.js +46 -0
  116. package/packages/core/publication/pipeline/recovery-prepare.js +73 -0
  117. package/packages/core/publication/pipeline/recovery-qualification.js +128 -0
  118. package/packages/core/publication/pipeline/recovery-readback.js +56 -0
  119. package/packages/core/publication/pipeline/recovery-signing.js +58 -0
  120. package/packages/core/publication/pipeline/sealed-products.js +79 -0
  121. package/packages/core/publication/pipeline/settle.js +43 -0
  122. package/packages/core/publication/pipeline/signing.js +140 -0
  123. package/packages/core/publication/pipeline/source-plan.js +83 -0
  124. package/packages/core/publication/pipeline/stable-entry.js +215 -0
  125. package/packages/core/publication/pipeline/stable-products.js +317 -0
  126. package/packages/core/publication/pipeline/stable-wait.js +170 -0
  127. package/packages/core/publication/pipeline/stable.js +82 -0
  128. package/packages/core/publication/pipeline/version-actions.js +93 -0
  129. package/packages/core/publication/pipeline/version-build.js +130 -0
  130. package/packages/core/publication/pipeline/version-context.js +143 -0
  131. package/packages/core/publication/pipeline/version-material.js +36 -0
  132. package/packages/core/publication/pipeline/version-preparation.js +69 -0
  133. package/packages/core/publication/pipeline/version-regeneration.js +162 -0
  134. package/packages/core/publication/pipeline/version-source-guard.js +69 -0
  135. package/packages/core/publication/pipeline/version.js +81 -0
  136. package/packages/core/publication/pipeline/worker.js +72 -0
  137. package/packages/core/publication/publication-reproducibility.js +2 -2
  138. package/packages/core/release/promote-candidate/product-provider-adapters.js +4 -3
  139. package/packages/core/release/promote-ref/internal/npm-existing-evidence.js +2 -1
  140. package/packages/core/release/promote-ref/internal/publish-command.js +16 -5
  141. package/packages/core/release/stable-release-gate.js +11 -0
  142. package/packages/core/runtime/buildchain-domain.wasm +0 -0
  143. package/packages/core/runtime/domain-wasm-artifact.js +2 -2
  144. package/packages/core/runtime/entry/actions.js +27 -25
  145. package/packages/core/runtime/entry/attempt.js +25 -0
  146. package/packages/core/runtime/entry/selection.js +14 -0
  147. package/packages/core/runtime/entry/source.js +62 -0
  148. package/packages/core/workflow/attempt/identity.js +170 -0
  149. package/packages/core/workflow/attempt/journal.js +87 -0
  150. package/packages/core/workflow/attempt/materials.js +72 -0
  151. package/packages/core/workflow/attempt/reader-entry.js +12 -0
  152. package/packages/core/workflow/attempt/reader.js +149 -0
  153. package/packages/core/workflow/attempt/records.js +153 -0
  154. package/packages/core/workflow/attempt/store.js +75 -0
  155. package/packages/core/workflow/commands/pipeline-build.mjs +23 -0
  156. package/packages/core/workflow/pipeline/action-output.js +11 -0
  157. package/packages/core/workflow/pipeline/actions.js +75 -0
  158. package/packages/core/workflow/pipeline/build-control.js +140 -0
  159. package/packages/core/workflow/pipeline/build-evidence.js +92 -0
  160. package/packages/core/workflow/pipeline/build-qualification.js +145 -0
  161. package/packages/core/workflow/pipeline/build-result.js +69 -0
  162. package/packages/core/workflow/pipeline/build.js +142 -0
  163. package/packages/core/workflow/pipeline/cancellation.js +169 -0
  164. package/packages/core/workflow/pipeline/channel-control.js +127 -0
  165. package/packages/core/workflow/pipeline/controller.js +133 -0
  166. package/packages/core/workflow/pipeline/delivery-control.js +204 -0
  167. package/packages/core/workflow/pipeline/delivery-observation.js +118 -0
  168. package/packages/core/workflow/pipeline/delivery-request.js +198 -0
  169. package/packages/core/workflow/pipeline/events.js +84 -0
  170. package/packages/core/workflow/pipeline/fence.js +42 -0
  171. package/packages/core/workflow/pipeline/group-control.js +56 -0
  172. package/packages/core/workflow/pipeline/guard-build.js +37 -0
  173. package/packages/core/workflow/pipeline/guard.js +156 -0
  174. package/packages/core/workflow/pipeline/host.js +114 -0
  175. package/packages/core/workflow/pipeline/materials.js +58 -0
  176. package/packages/core/workflow/pipeline/notifications.js +36 -0
  177. package/packages/core/workflow/pipeline/parent-notification.js +27 -0
  178. package/packages/core/workflow/pipeline/platforms.js +21 -0
  179. package/packages/core/workflow/pipeline/progress.js +108 -0
  180. package/packages/core/workflow/pipeline/projection.js +20 -0
  181. package/packages/core/workflow/pipeline/reconcile.js +194 -0
  182. package/packages/core/workflow/pipeline/recovery-action.js +30 -0
  183. package/packages/core/workflow/pipeline/recovery-admission.js +122 -0
  184. package/packages/core/workflow/pipeline/recovery-build-control.js +95 -0
  185. package/packages/core/workflow/pipeline/recovery-build-evidence.js +71 -0
  186. package/packages/core/workflow/pipeline/recovery-build.js +121 -0
  187. package/packages/core/workflow/pipeline/recovery-controller.js +91 -0
  188. package/packages/core/workflow/pipeline/recovery-integration.js +66 -0
  189. package/packages/core/workflow/pipeline/recovery-merge-proof.js +90 -0
  190. package/packages/core/workflow/pipeline/recovery-ownership-settlement.js +150 -0
  191. package/packages/core/workflow/pipeline/recovery-ownership.js +91 -0
  192. package/packages/core/workflow/pipeline/recovery-plan.js +126 -0
  193. package/packages/core/workflow/pipeline/recovery-runtime.js +68 -0
  194. package/packages/core/workflow/pipeline/recovery-session.js +129 -0
  195. package/packages/core/workflow/pipeline/recovery-transition.js +135 -0
  196. package/packages/core/workflow/pipeline/recovery-unrecorded-build.js +74 -0
  197. package/packages/core/workflow/pipeline/runtime-source.js +111 -0
  198. package/packages/core/workflow/pipeline/selection.js +106 -0
  199. package/packages/core/workflow/pipeline/session.js +72 -0
  200. package/packages/core/workflow/pipeline/settlement.js +137 -0
  201. package/packages/core/workflow/pipeline/wake.js +38 -0
  202. package/packages/core/workflow/pipeline/web-status.js +108 -0
  203. package/scripts/build-release-discussion-reader.mjs +11 -7
  204. package/scripts/check-pipeline-publication-topology.mjs +48 -0
  205. package/scripts/check-release-topology.mjs +7 -1
  206. package/scripts/generate-minimal-consumer-contract.mjs +155 -0
  207. package/scripts/generate-site-bundle.mjs +1 -1
  208. package/scripts/verify-golden-path.mjs +5 -1
  209. package/scripts/verify-standalone-product.mjs +42 -0
  210. package/templates/minimal-consumer/binary/.buildchain/buildchain.toml +45 -0
  211. package/templates/minimal-consumer/binary/.github/workflows/buildchain-recover.yml +30 -0
  212. package/templates/minimal-consumer/binary/.github/workflows/buildchain.yml +28 -0
  213. package/templates/minimal-consumer/binary/package.json +6 -0
  214. package/templates/minimal-consumer/binary/src/build.mjs +5 -0
  215. package/templates/minimal-consumer/binary/src/hello.c +2 -0
  216. package/templates/minimal-consumer/binary/src/verify.mjs +3 -0
  217. package/templates/minimal-consumer/npm/.buildchain/buildchain.toml +46 -0
  218. package/templates/minimal-consumer/npm/.github/workflows/buildchain-recover.yml +30 -0
  219. package/templates/minimal-consumer/npm/.github/workflows/buildchain.yml +28 -0
  220. package/templates/minimal-consumer/npm/package.json +6 -0
  221. package/templates/minimal-consumer/npm/src/build.mjs +5 -0
  222. package/templates/minimal-consumer/npm/src/verify.mjs +3 -0
  223. package/templates/minimal-consumer/paper/.buildchain/buildchain.toml +45 -0
  224. package/templates/minimal-consumer/paper/.github/workflows/buildchain-recover.yml +30 -0
  225. package/templates/minimal-consumer/paper/.github/workflows/buildchain.yml +28 -0
  226. package/templates/minimal-consumer/paper/package.json +6 -0
  227. package/templates/minimal-consumer/paper/src/build.mjs +12 -0
  228. package/templates/minimal-consumer/paper/src/verify.mjs +3 -0
@@ -225,6 +225,14 @@
225
225
  "packages/core/build/verification/runner.js",
226
226
  "packages/core/build/verification/source.js",
227
227
  "packages/core/consumer/cli/infrastructure.mjs",
228
+ "packages/core/consumer/contract/entries.js",
229
+ "packages/core/consumer/contract/examples.js",
230
+ "packages/core/consumer/contract/identity.js",
231
+ "packages/core/consumer/contract/inspection.js",
232
+ "packages/core/consumer/contract/plan.js",
233
+ "packages/core/consumer/contract/products.js",
234
+ "packages/core/consumer/contract/reader.js",
235
+ "packages/core/consumer/contract/shape.js",
228
236
  "packages/core/consumer/policy-admission.js",
229
237
  "packages/core/consumer/policy-scan.js",
230
238
  "packages/core/consumer/runtime-selector-persistence.js",
@@ -458,10 +466,22 @@
458
466
  "packages/core/providers/github-permission.js",
459
467
  "packages/core/providers/github-token.js",
460
468
  "packages/core/providers/github/artifact-attestation.js",
469
+ "packages/core/providers/github/attempt-index.js",
470
+ "packages/core/providers/github/attempt-journal.js",
461
471
  "packages/core/providers/github/commits.js",
462
472
  "packages/core/providers/github/discussions/materials.js",
463
473
  "packages/core/providers/github/discussions/transport.js",
464
474
  "packages/core/providers/github/json-client.js",
475
+ "packages/core/providers/github/pipeline-checkout.js",
476
+ "packages/core/providers/github/pipeline-events.js",
477
+ "packages/core/providers/github/pipeline-integration.js",
478
+ "packages/core/providers/github/pipeline-policy.js",
479
+ "packages/core/providers/github/pipeline-run-entry.js",
480
+ "packages/core/providers/github/pipeline-runs.js",
481
+ "packages/core/providers/github/pipeline-source.js",
482
+ "packages/core/providers/github/pipeline-version-artifacts.js",
483
+ "packages/core/providers/github/pipeline-version-readback.js",
484
+ "packages/core/providers/github/pipeline-worker.js",
465
485
  "packages/core/providers/github/product-publication.js",
466
486
  "packages/core/providers/github/publication-control-plane.js",
467
487
  "packages/core/providers/github/pull-requests.js",
@@ -542,6 +562,55 @@
542
562
  "packages/core/publication/oci/preview-registry.js",
543
563
  "packages/core/publication/oci/preview-transaction.js",
544
564
  "packages/core/publication/oci/preview-values.js",
565
+ "packages/core/publication/pipeline/actions.js",
566
+ "packages/core/publication/pipeline/apply.js",
567
+ "packages/core/publication/pipeline/build-segments.js",
568
+ "packages/core/publication/pipeline/capsules.js",
569
+ "packages/core/publication/pipeline/context.js",
570
+ "packages/core/publication/pipeline/development-anchor.js",
571
+ "packages/core/publication/pipeline/development-current.js",
572
+ "packages/core/publication/pipeline/development-pr.js",
573
+ "packages/core/publication/pipeline/development-proof.js",
574
+ "packages/core/publication/pipeline/development-transition.js",
575
+ "packages/core/publication/pipeline/distribution.js",
576
+ "packages/core/publication/pipeline/documents.js",
577
+ "packages/core/publication/pipeline/effects.js",
578
+ "packages/core/publication/pipeline/files.js",
579
+ "packages/core/publication/pipeline/imported-materials.js",
580
+ "packages/core/publication/pipeline/journal.js",
581
+ "packages/core/publication/pipeline/next-development.js",
582
+ "packages/core/publication/pipeline/pack.js",
583
+ "packages/core/publication/pipeline/package-policy.js",
584
+ "packages/core/publication/pipeline/plan.js",
585
+ "packages/core/publication/pipeline/prepare.js",
586
+ "packages/core/publication/pipeline/qualification.js",
587
+ "packages/core/publication/pipeline/qualify.js",
588
+ "packages/core/publication/pipeline/recovery-admission.js",
589
+ "packages/core/publication/pipeline/recovery-build-download.js",
590
+ "packages/core/publication/pipeline/recovery-build-plan.js",
591
+ "packages/core/publication/pipeline/recovery-build-readback.js",
592
+ "packages/core/publication/pipeline/recovery-capsules.js",
593
+ "packages/core/publication/pipeline/recovery-import.js",
594
+ "packages/core/publication/pipeline/recovery-inspection.js",
595
+ "packages/core/publication/pipeline/recovery-materials.js",
596
+ "packages/core/publication/pipeline/recovery-plan.js",
597
+ "packages/core/publication/pipeline/recovery-prepare.js",
598
+ "packages/core/publication/pipeline/recovery-qualification.js",
599
+ "packages/core/publication/pipeline/recovery-readback.js",
600
+ "packages/core/publication/pipeline/recovery-signing.js",
601
+ "packages/core/publication/pipeline/sealed-products.js",
602
+ "packages/core/publication/pipeline/settle.js",
603
+ "packages/core/publication/pipeline/signing.js",
604
+ "packages/core/publication/pipeline/source-plan.js",
605
+ "packages/core/publication/pipeline/version-actions.js",
606
+ "packages/core/publication/pipeline/version-build.js",
607
+ "packages/core/publication/pipeline/version-context.js",
608
+ "packages/core/publication/pipeline/version-material.js",
609
+ "packages/core/publication/pipeline/version-preparation.js",
610
+ "packages/core/publication/pipeline/version-regeneration.js",
611
+ "packages/core/publication/pipeline/version-source-guard.js",
612
+ "packages/core/publication/pipeline/version.js",
613
+ "packages/core/publication/pipeline/worker.js",
545
614
  "packages/core/publication/publication-rehearsal-capsule.js",
546
615
  "packages/core/publication/publication-rehearsal-provider-bindings.js",
547
616
  "packages/core/publication/publication-rehearsal.js",
@@ -809,9 +878,17 @@
809
878
  "packages/core/workflow/admission/actions.js",
810
879
  "packages/core/workflow/admission/recovery.js",
811
880
  "packages/core/workflow/admission/transactions.js",
881
+ "packages/core/workflow/attempt/identity.js",
882
+ "packages/core/workflow/attempt/journal.js",
883
+ "packages/core/workflow/attempt/materials.js",
884
+ "packages/core/workflow/attempt/reader-entry.js",
885
+ "packages/core/workflow/attempt/reader.js",
886
+ "packages/core/workflow/attempt/records.js",
887
+ "packages/core/workflow/attempt/store.js",
812
888
  "packages/core/workflow/cli/main.mjs",
813
889
  "packages/core/workflow/cli/process.mjs",
814
890
  "packages/core/workflow/commands/buildchain-cli-help.mjs",
891
+ "packages/core/workflow/commands/pipeline-build.mjs",
815
892
  "packages/core/workflow/commands/universal-workflow-engine.mjs",
816
893
  "packages/core/workflow/dogfood/actions.js",
817
894
  "packages/core/workflow/dogfood/readiness.js",
@@ -826,6 +903,53 @@
826
903
  "packages/core/workflow/engine/release-observation.js",
827
904
  "packages/core/workflow/engine/release-promotion.js",
828
905
  "packages/core/workflow/event-trust.js",
906
+ "packages/core/workflow/pipeline/action-output.js",
907
+ "packages/core/workflow/pipeline/actions.js",
908
+ "packages/core/workflow/pipeline/build-control.js",
909
+ "packages/core/workflow/pipeline/build-evidence.js",
910
+ "packages/core/workflow/pipeline/build-qualification.js",
911
+ "packages/core/workflow/pipeline/build-result.js",
912
+ "packages/core/workflow/pipeline/build.js",
913
+ "packages/core/workflow/pipeline/cancellation.js",
914
+ "packages/core/workflow/pipeline/channel-control.js",
915
+ "packages/core/workflow/pipeline/controller.js",
916
+ "packages/core/workflow/pipeline/delivery-control.js",
917
+ "packages/core/workflow/pipeline/delivery-observation.js",
918
+ "packages/core/workflow/pipeline/delivery-request.js",
919
+ "packages/core/workflow/pipeline/events.js",
920
+ "packages/core/workflow/pipeline/fence.js",
921
+ "packages/core/workflow/pipeline/group-control.js",
922
+ "packages/core/workflow/pipeline/guard-build.js",
923
+ "packages/core/workflow/pipeline/guard.js",
924
+ "packages/core/workflow/pipeline/host.js",
925
+ "packages/core/workflow/pipeline/materials.js",
926
+ "packages/core/workflow/pipeline/notifications.js",
927
+ "packages/core/workflow/pipeline/parent-notification.js",
928
+ "packages/core/workflow/pipeline/platforms.js",
929
+ "packages/core/workflow/pipeline/progress.js",
930
+ "packages/core/workflow/pipeline/projection.js",
931
+ "packages/core/workflow/pipeline/reconcile.js",
932
+ "packages/core/workflow/pipeline/recovery-action.js",
933
+ "packages/core/workflow/pipeline/recovery-admission.js",
934
+ "packages/core/workflow/pipeline/recovery-build-control.js",
935
+ "packages/core/workflow/pipeline/recovery-build-evidence.js",
936
+ "packages/core/workflow/pipeline/recovery-build.js",
937
+ "packages/core/workflow/pipeline/recovery-controller.js",
938
+ "packages/core/workflow/pipeline/recovery-integration.js",
939
+ "packages/core/workflow/pipeline/recovery-merge-proof.js",
940
+ "packages/core/workflow/pipeline/recovery-ownership-settlement.js",
941
+ "packages/core/workflow/pipeline/recovery-ownership.js",
942
+ "packages/core/workflow/pipeline/recovery-plan.js",
943
+ "packages/core/workflow/pipeline/recovery-runtime.js",
944
+ "packages/core/workflow/pipeline/recovery-session.js",
945
+ "packages/core/workflow/pipeline/recovery-transition.js",
946
+ "packages/core/workflow/pipeline/recovery-unrecorded-build.js",
947
+ "packages/core/workflow/pipeline/runtime-source.js",
948
+ "packages/core/workflow/pipeline/selection.js",
949
+ "packages/core/workflow/pipeline/session.js",
950
+ "packages/core/workflow/pipeline/settlement.js",
951
+ "packages/core/workflow/pipeline/wake.js",
952
+ "packages/core/workflow/pipeline/web-status.js",
829
953
  "packages/core/workflow/request-rejection.js",
830
954
  "packages/core/workflow/settlement/actions.js",
831
955
  "packages/core/workflow/universal-self-dogfood.js",
@@ -837,6 +961,7 @@
837
961
  "scripts/check-runtime-entry.mjs",
838
962
  "scripts/check-universal-workflow-bootstrap.mjs",
839
963
  "scripts/generate-agent-change-map.mjs",
964
+ "scripts/generate-minimal-consumer-contract.mjs",
840
965
  "scripts/maintainability-domain-metrics.mjs",
841
966
  "scripts/maintainability-governance.mjs",
842
967
  "scripts/maintainability-metrics.mjs",
@@ -878,6 +1003,11 @@
878
1003
  "id": "v4-rust-domain-sources",
879
1004
  "owner": "Buildchain architecture maintainers",
880
1005
  "paths": ["crates"]
1006
+ },
1007
+ {
1008
+ "id": "minimal-consumer-examples",
1009
+ "owner": "Buildchain consumer contract maintainers",
1010
+ "paths": ["templates/minimal-consumer"]
881
1011
  }
882
1012
  ],
883
1013
  "ownershipExclusions": [],
@@ -1303,16 +1433,19 @@
1303
1433
  "implementation": [
1304
1434
  "packages/core/runtime/entry/actions.js",
1305
1435
  "packages/core/runtime/entry/activation.js",
1436
+ "packages/core/runtime/entry/attempt.js",
1306
1437
  "packages/core/runtime/entry/github.js",
1307
1438
  "packages/core/runtime/entry/recovery.js",
1308
1439
  "packages/core/runtime/entry/selection.js",
1440
+ "packages/core/runtime/entry/source.js",
1309
1441
  "scripts/check-runtime-entry.mjs"
1310
1442
  ],
1311
1443
  "tests": [
1312
- "tests/runtime-entry-selection.test.mjs",
1444
+ "tests/pipeline-recovery-runtime-continuation.test.mjs",
1313
1445
  "tests/runtime-entry-activation.test.mjs",
1446
+ "tests/runtime-entry-architecture.test.mjs",
1314
1447
  "tests/runtime-entry-provider.test.mjs",
1315
- "tests/runtime-entry-architecture.test.mjs"
1448
+ "tests/runtime-entry-selection.test.mjs"
1316
1449
  ],
1317
1450
  "contracts": ["architecture/runtime-entry.json", "docs/runtime-entry.md"],
1318
1451
  "generatedOutputs": [
@@ -2937,6 +3070,232 @@
2937
3070
  "node --test tests/release-discussion*.test.mjs",
2938
3071
  "node scripts/build-release-discussion-reader.mjs --check"
2939
3072
  ]
3073
+ },
3074
+ {
3075
+ "id": "minimal-consumer-contract",
3076
+ "owner": "Buildchain consumer contract maintainers",
3077
+ "implementation": [
3078
+ "packages/core/consumer/contract/entries.js",
3079
+ "packages/core/consumer/contract/examples.js",
3080
+ "packages/core/consumer/contract/identity.js",
3081
+ "packages/core/consumer/contract/inspection.js",
3082
+ "packages/core/consumer/contract/plan.js",
3083
+ "packages/core/consumer/contract/products.js",
3084
+ "packages/core/consumer/contract/reader.js",
3085
+ "packages/core/consumer/contract/shape.js",
3086
+ "scripts/generate-minimal-consumer-contract.mjs"
3087
+ ],
3088
+ "tests": [
3089
+ "tests/minimal-consumer-contract.test.mjs",
3090
+ "tests/consumer-product-config.test.mjs"
3091
+ ],
3092
+ "contracts": ["architecture/decisions/0005-minimal-consumer-contract.md"],
3093
+ "generatedOutputs": [
3094
+ "architecture/minimal-consumer-migration.json",
3095
+ "templates/minimal-consumer"
3096
+ ],
3097
+ "validationCommands": [
3098
+ "node --test tests/minimal-consumer-contract.test.mjs",
3099
+ "node scripts/generate-minimal-consumer-contract.mjs --check"
3100
+ ]
3101
+ },
3102
+ {
3103
+ "id": "business-attempt-journal",
3104
+ "owner": "Buildchain pipeline maintainers",
3105
+ "implementation": [
3106
+ "packages/core/workflow/attempt/identity.js",
3107
+ "packages/core/workflow/attempt/materials.js",
3108
+ "packages/core/workflow/attempt/reader-entry.js",
3109
+ "packages/core/workflow/attempt/reader.js",
3110
+ "packages/core/workflow/attempt/records.js",
3111
+ "packages/core/workflow/attempt/store.js"
3112
+ ],
3113
+ "tests": [
3114
+ "tests/business-attempt-materials.test.mjs",
3115
+ "tests/business-attempt-store.test.mjs",
3116
+ "tests/business-attempt.test.mjs"
3117
+ ],
3118
+ "contracts": ["architecture/decisions/0006-business-attempt-journal.md"],
3119
+ "generatedOutputs": ["dist/readers/business-attempt.cjs"],
3120
+ "validationCommands": [
3121
+ "node --test tests/business-attempt*.test.mjs",
3122
+ "node scripts/build-release-discussion-reader.mjs --check"
3123
+ ]
3124
+ },
3125
+ {
3126
+ "id": "minimal-consumer-pipeline",
3127
+ "owner": "Buildchain pipeline maintainers",
3128
+ "implementation": [
3129
+ "packages/core/providers/github/attempt-index.js",
3130
+ "packages/core/providers/github/attempt-journal.js",
3131
+ "packages/core/providers/github/pipeline-checkout.js",
3132
+ "packages/core/providers/github/pipeline-events.js",
3133
+ "packages/core/providers/github/pipeline-integration.js",
3134
+ "packages/core/providers/github/pipeline-policy.js",
3135
+ "packages/core/providers/github/pipeline-run-entry.js",
3136
+ "packages/core/providers/github/pipeline-runs.js",
3137
+ "packages/core/providers/github/pipeline-source.js",
3138
+ "packages/core/providers/github/pipeline-version-artifacts.js",
3139
+ "packages/core/providers/github/pipeline-version-readback.js",
3140
+ "packages/core/providers/github/pipeline-worker.js",
3141
+ "packages/core/publication/pipeline/actions.js",
3142
+ "packages/core/publication/pipeline/apply.js",
3143
+ "packages/core/publication/pipeline/build-segments.js",
3144
+ "packages/core/publication/pipeline/capsules.js",
3145
+ "packages/core/publication/pipeline/context.js",
3146
+ "packages/core/publication/pipeline/development-anchor.js",
3147
+ "packages/core/publication/pipeline/development-current.js",
3148
+ "packages/core/publication/pipeline/development-pr.js",
3149
+ "packages/core/publication/pipeline/development-proof.js",
3150
+ "packages/core/publication/pipeline/development-transition.js",
3151
+ "packages/core/publication/pipeline/distribution.js",
3152
+ "packages/core/publication/pipeline/documents.js",
3153
+ "packages/core/publication/pipeline/effects.js",
3154
+ "packages/core/publication/pipeline/files.js",
3155
+ "packages/core/publication/pipeline/imported-materials.js",
3156
+ "packages/core/publication/pipeline/journal.js",
3157
+ "packages/core/publication/pipeline/next-development.js",
3158
+ "packages/core/publication/pipeline/pack.js",
3159
+ "packages/core/publication/pipeline/package-policy.js",
3160
+ "packages/core/publication/pipeline/plan.js",
3161
+ "packages/core/publication/pipeline/prepare.js",
3162
+ "packages/core/publication/pipeline/qualification.js",
3163
+ "packages/core/publication/pipeline/qualify.js",
3164
+ "packages/core/publication/pipeline/recovery-admission.js",
3165
+ "packages/core/publication/pipeline/recovery-build-download.js",
3166
+ "packages/core/publication/pipeline/recovery-build-plan.js",
3167
+ "packages/core/publication/pipeline/recovery-build-readback.js",
3168
+ "packages/core/publication/pipeline/recovery-capsules.js",
3169
+ "packages/core/publication/pipeline/recovery-import.js",
3170
+ "packages/core/publication/pipeline/recovery-inspection.js",
3171
+ "packages/core/publication/pipeline/recovery-materials.js",
3172
+ "packages/core/publication/pipeline/recovery-plan.js",
3173
+ "packages/core/publication/pipeline/recovery-prepare.js",
3174
+ "packages/core/publication/pipeline/recovery-qualification.js",
3175
+ "packages/core/publication/pipeline/recovery-readback.js",
3176
+ "packages/core/publication/pipeline/recovery-signing.js",
3177
+ "packages/core/publication/pipeline/sealed-products.js",
3178
+ "packages/core/publication/pipeline/settle.js",
3179
+ "packages/core/publication/pipeline/signing.js",
3180
+ "packages/core/publication/pipeline/source-plan.js",
3181
+ "packages/core/publication/pipeline/version-actions.js",
3182
+ "packages/core/publication/pipeline/version-build.js",
3183
+ "packages/core/publication/pipeline/version-context.js",
3184
+ "packages/core/publication/pipeline/version-material.js",
3185
+ "packages/core/publication/pipeline/version-preparation.js",
3186
+ "packages/core/publication/pipeline/version-regeneration.js",
3187
+ "packages/core/publication/pipeline/version-source-guard.js",
3188
+ "packages/core/publication/pipeline/version.js",
3189
+ "packages/core/publication/pipeline/worker.js",
3190
+ "packages/core/workflow/attempt/journal.js",
3191
+ "packages/core/workflow/commands/pipeline-build.mjs",
3192
+ "packages/core/workflow/pipeline/action-output.js",
3193
+ "packages/core/workflow/pipeline/actions.js",
3194
+ "packages/core/workflow/pipeline/build-control.js",
3195
+ "packages/core/workflow/pipeline/build-evidence.js",
3196
+ "packages/core/workflow/pipeline/build-qualification.js",
3197
+ "packages/core/workflow/pipeline/build-result.js",
3198
+ "packages/core/workflow/pipeline/build.js",
3199
+ "packages/core/workflow/pipeline/cancellation.js",
3200
+ "packages/core/workflow/pipeline/channel-control.js",
3201
+ "packages/core/workflow/pipeline/controller.js",
3202
+ "packages/core/workflow/pipeline/delivery-control.js",
3203
+ "packages/core/workflow/pipeline/delivery-observation.js",
3204
+ "packages/core/workflow/pipeline/delivery-request.js",
3205
+ "packages/core/workflow/pipeline/events.js",
3206
+ "packages/core/workflow/pipeline/fence.js",
3207
+ "packages/core/workflow/pipeline/group-control.js",
3208
+ "packages/core/workflow/pipeline/guard-build.js",
3209
+ "packages/core/workflow/pipeline/guard.js",
3210
+ "packages/core/workflow/pipeline/host.js",
3211
+ "packages/core/workflow/pipeline/materials.js",
3212
+ "packages/core/workflow/pipeline/notifications.js",
3213
+ "packages/core/workflow/pipeline/parent-notification.js",
3214
+ "packages/core/workflow/pipeline/platforms.js",
3215
+ "packages/core/workflow/pipeline/progress.js",
3216
+ "packages/core/workflow/pipeline/projection.js",
3217
+ "packages/core/workflow/pipeline/reconcile.js",
3218
+ "packages/core/workflow/pipeline/recovery-action.js",
3219
+ "packages/core/workflow/pipeline/recovery-admission.js",
3220
+ "packages/core/workflow/pipeline/recovery-build-control.js",
3221
+ "packages/core/workflow/pipeline/recovery-build-evidence.js",
3222
+ "packages/core/workflow/pipeline/recovery-build.js",
3223
+ "packages/core/workflow/pipeline/recovery-controller.js",
3224
+ "packages/core/workflow/pipeline/recovery-integration.js",
3225
+ "packages/core/workflow/pipeline/recovery-merge-proof.js",
3226
+ "packages/core/workflow/pipeline/recovery-ownership-settlement.js",
3227
+ "packages/core/workflow/pipeline/recovery-ownership.js",
3228
+ "packages/core/workflow/pipeline/recovery-plan.js",
3229
+ "packages/core/workflow/pipeline/recovery-runtime.js",
3230
+ "packages/core/workflow/pipeline/recovery-session.js",
3231
+ "packages/core/workflow/pipeline/recovery-transition.js",
3232
+ "packages/core/workflow/pipeline/recovery-unrecorded-build.js",
3233
+ "packages/core/workflow/pipeline/runtime-source.js",
3234
+ "packages/core/workflow/pipeline/selection.js",
3235
+ "packages/core/workflow/pipeline/session.js",
3236
+ "packages/core/workflow/pipeline/settlement.js",
3237
+ "packages/core/workflow/pipeline/wake.js",
3238
+ "packages/core/workflow/pipeline/web-status.js"
3239
+ ],
3240
+ "tests": [
3241
+ "tests/business-attempt-journal.test.mjs",
3242
+ "tests/github-attempt-journal.test.mjs",
3243
+ "tests/pipeline-build-qualification.test.mjs",
3244
+ "tests/pipeline-build.test.mjs",
3245
+ "tests/pipeline-cancellation.test.mjs",
3246
+ "tests/pipeline-channel.test.mjs",
3247
+ "tests/pipeline-controller.test.mjs",
3248
+ "tests/pipeline-delivery-request.test.mjs",
3249
+ "tests/pipeline-distribution.test.mjs",
3250
+ "tests/pipeline-events.test.mjs",
3251
+ "tests/pipeline-fence.test.mjs",
3252
+ "tests/pipeline-guard.test.mjs",
3253
+ "tests/pipeline-index.test.mjs",
3254
+ "tests/pipeline-integration.test.mjs",
3255
+ "tests/pipeline-next-development.test.mjs",
3256
+ "tests/pipeline-npm-channel.test.mjs",
3257
+ "tests/pipeline-policy.test.mjs",
3258
+ "tests/pipeline-progress.test.mjs",
3259
+ "tests/pipeline-projection.test.mjs",
3260
+ "tests/pipeline-publication-artifacts.test.mjs",
3261
+ "tests/pipeline-publication-effects.test.mjs",
3262
+ "tests/pipeline-publication-journal.test.mjs",
3263
+ "tests/pipeline-publication-pack.test.mjs",
3264
+ "tests/pipeline-publication-plan.test.mjs",
3265
+ "tests/pipeline-publication-providers.test.mjs",
3266
+ "tests/pipeline-publication-recovery-admission.test.mjs",
3267
+ "tests/pipeline-publication-recovery-apply.test.mjs",
3268
+ "tests/pipeline-publication-recovery-build.test.mjs",
3269
+ "tests/pipeline-publication-recovery-signing.test.mjs",
3270
+ "tests/pipeline-publication-version.test.mjs",
3271
+ "tests/pipeline-reconcile.test.mjs",
3272
+ "tests/pipeline-recovery-admission.test.mjs",
3273
+ "tests/pipeline-recovery-build.test.mjs",
3274
+ "tests/pipeline-recovery-controller.test.mjs",
3275
+ "tests/pipeline-recovery-delivery.test.mjs",
3276
+ "tests/pipeline-recovery-interruption.test.mjs",
3277
+ "tests/pipeline-recovery-ownership.test.mjs",
3278
+ "tests/pipeline-recovery-runtime-continuation.test.mjs",
3279
+ "tests/pipeline-recovery-session.test.mjs",
3280
+ "tests/pipeline-runs.test.mjs",
3281
+ "tests/pipeline-runtime.test.mjs",
3282
+ "tests/pipeline-settlement.test.mjs",
3283
+ "tests/pipeline-source.test.mjs",
3284
+ "tests/pipeline-version-artifacts.test.mjs",
3285
+ "tests/pipeline-version-build.test.mjs",
3286
+ "tests/pipeline-version-context.test.mjs",
3287
+ "tests/pipeline-version-regeneration.test.mjs",
3288
+ "tests/pipeline-web-status.test.mjs",
3289
+ "tests/pipeline-worker.test.mjs"
3290
+ ],
3291
+ "contracts": [
3292
+ "architecture/decisions/0007-hosted-pipeline-controller.md",
3293
+ "architecture/decisions/0009-pipeline-version-preparation.md"
3294
+ ],
3295
+ "generatedOutputs": [],
3296
+ "validationCommands": [
3297
+ "node --test tests/pipeline-*.test.mjs tests/business-attempt-journal.test.mjs tests/github-attempt-journal.test.mjs"
3298
+ ]
2940
3299
  }
2941
3300
  ]
2942
3301
  }
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "totalExcessLedger": {
9
9
  "metric": "calibrated-full-dimensional-excess-v1",
10
- "measuredExcess": 38852,
11
- "current": 30791
10
+ "measuredExcess": 38833,
11
+ "current": 30772
12
12
  },
13
13
  "defaults": {
14
14
  "owner": "Buildchain architecture maintainers",
@@ -321,7 +321,7 @@
321
321
  "lines": 1887
322
322
  },
323
323
  "current": {
324
- "lines": 1825
324
+ "lines": 1806
325
325
  },
326
326
  "target": {
327
327
  "lines": 600
@@ -2245,7 +2245,9 @@
2245
2245
  ".github/workflows/public-release-promote.yml",
2246
2246
  ".github/workflows/self-build-verify.yml",
2247
2247
  ".github/workflows/self-release-promote.yml",
2248
- ".github/workflows/.release-binary-assets.yml"
2248
+ ".github/workflows/.release-binary-assets.yml",
2249
+ ".github/workflows/public-ops-dev-auto-merge.yml",
2250
+ "tests/release-topology.test.mjs"
2249
2251
  ],
2250
2252
  "burnDownSlices": [
2251
2253
  {
@@ -26,17 +26,17 @@
26
26
  },
27
27
  "repositoryBudgets": {
28
28
  "baselineRevision": "9569f69c2cb609372b8a3d65ce5dec8fb7b34a84",
29
- "maxHandMaintainedSourceFiles": 1308,
30
- "maxHandMaintainedSourceLines": 203392,
31
- "maxWorkflowFiles": 68,
32
- "maxWorkflowLines": 9805,
33
- "latestTransition": "Contextual release Discussion roots and evidence attachments.",
34
- "latestTransitionRationale": "Declare three bounded modules for Discussion thread placement, Markdown presentation and diagnostic evidence. Per-function and debt ceilings are unchanged; independent governance review is required.",
35
- "rationale": "Bounded modules separate candidate, evidence, native proof and execution, canonical failure verification, closed-set execution transfer, process-boundary verification, Warrant state and qualification, authority state, qualification, Landing acquisition, verified-attempt admission, Landing settlement and fence validation, provider attempt and heartbeat readback, sealed terminal evidence, hosted heartbeat, resume, store, options, command-specific adapters, and CLI orchestration responsibilities. The protected delivery workflow gives candidate and seal jobs no provider write credential, recursively rejects transfer drift, scopes every transfer artifact to the exact provider run attempt, chains every durable heartbeat state and receipt root on a distinct hosted runner domain, and permits qualification or exact failure settlement only after the finalizer verifies live jobs and the latest durable authority state. Public Landing admission and heartbeat always perform non-injectable fresh exact-attempt provider readback, tolerate only a not-yet-materialized seal job while retaining exact native and duplicate-job rejection, and heartbeat-loss coordination never invokes GitHub's run-scoped cancellation API where a successor rerun could race. The hosted process boundary anchors trust in the kernel-resolved versioned Runner.Worker path while accepting an equivalent argv-zero spelling with the same basename; its public boundary marker is allowed only at the one exact non-secret value, so a forged value under the same credential-like name still fails closed. The credentialless transfer seal validates the rooted native reuse decision against the Warrant-bound source, closure, dependency, toolchain, environment and command inputs; qualifiedBase stays in the proof and decision where it is rooted and later independently rechecked, rather than being assumed on the Warrant schema. V2 mutation cannot initialize a second empty authority beside a legacy ref: migration reads and roots the canonical live v1 ref, rechecks it, applies the explicit configured v2 policy, and atomically replaces its bytes through one expected-old non-force update, so old v1 controllers fail closed while the prior commit remains immutable history. Candidate ancestry classifies the GitHub artifact runtime token as credential authority. Every Landing settlement, including an unexpired fence, requires product-owned terminal readback. Terminal cleanup reads the immutable historical attempt, derives workflow and hosted Landing job identity from live run data, reads the exact protected ref head and compares containment against that immutable SHA, and seals merged only when the admitted merge-group head is contained by that protected base; a later different-head merge settles the old attempt as dequeued. Terminal normalization preserves transfer, finalizer boundary, native and seal job, admitted provider attempt, protected-base head, containment result, and terminal readback coordinates. The public reusable workflow truthfully retains its single-flight v1 authority without advertising v2 migration, while bounded v2 remains a separate opt-in CLI, Node API, and schema contract; the tracked self-caller stays on public v4-alpha with matching stable and alpha locks, and transient train selection is dispatch-only. Next-development parity adds one versioned transition authority, one durable controller, one bounded reservation adapter, and pure public-contract recovery evidence while retaining the existing thin floating-channel callers byte-for-byte. The floating-consumer gate reuses the existing contract-world evaluator so SHA drift passes only under the selected lock's compatibility policy, breaking surface drift still fails closed, and external certification reconstructs the receipt from the observed workflow SHA rather than the lock's historical evidence SHA. Tail reseal adds no Stage Capsule effect or general rebuild authority: it verifies the exact retained four-platform bytes, admits one known macOS tail failure through live provider readback, fences signing and finalization to explicit credentials and Warrant identity, and requires standard candidate Passport plus provider and protected readback. Compatibility Facts parity isolates canonical encoding, temporal verification, lifecycle validation, fixture projection, public authority projection, and CLI adaptation into bounded modules; legacy digest and proof arrays are derived only from exact current Fact lineage. Publication Rehearsal adds no production release authority: the content-addressed capsule contract binds source, candidate, manifest, config, canonical data-only provider bindings, provider policy, observations and core version separately from filesystem, runtime and rehearsal-only provider authority; simulate, replay and explicitly authorized provider rehearsal all reuse the release-tail planner, while same-commit local dogfood resolves the new reusable contract and exact current runtime before external callers remain on floating v4-alpha. Cross-runtime candidate recovery preserves original runtime and provider roots and creates resume lineage only after exact public ref, tag, ancestry, npm version and integrity readback. Adopter Delivery restores the reviewed public v3 gate, drivers, Passport binding, N-1 bootstrap and exact archive loader through one public v4 surface while keeping provider and release authority explicit non-claims. Floating Alpha bootstrap uses only the existing exact resolver and protected Alpha private shell to move an otherwise stale floating shell, retains public v4 stable promotion, and removes itself after protected readback. CI lane change-budget enforcement adds a bounded parser, evaluator, guard, and tests without creating another merge authority.",
29
+ "maxHandMaintainedSourceFiles": 1471,
30
+ "maxHandMaintainedSourceLines": 217779,
31
+ "maxWorkflowFiles": 73,
32
+ "maxWorkflowLines": 10457,
33
+ "latestTransition": "File-backed Project Cut replay for large generated patches.",
34
+ "latestTransitionRationale": "Charge the measured 27 implementation lines for private patch files and descriptor cleanup. Exact stable patch identity, changed paths, isolated-index replay, family receipts and conflict rejection remain enforced; the metadata output bound stays at 64 MiB. No new module, workflow, action or authority is introduced; per-file, function, complexity, debt and exception ceilings remain unchanged. This aggregate budget change remains proposed until independent protected review.",
35
+ "rationale": "Bounded modules separate candidate, evidence, native proof and execution, canonical failure verification, closed-set execution transfer, process-boundary verification, Warrant state and qualification, authority state, qualification, Landing acquisition, verified-attempt admission, Landing settlement and fence validation, provider attempt and heartbeat readback, sealed terminal evidence, hosted heartbeat, resume, store, options, command-specific adapters, and CLI orchestration responsibilities. The protected delivery workflow gives candidate and seal jobs no provider write credential, recursively rejects transfer drift, scopes every transfer artifact to the exact provider run attempt, chains every durable heartbeat state and receipt root on a distinct hosted runner domain, and permits qualification or exact failure settlement only after the finalizer verifies live jobs and the latest durable authority state. Public Landing admission and heartbeat always perform non-injectable fresh exact-attempt provider readback, tolerate only a not-yet-materialized seal job while retaining exact native and duplicate-job rejection, and heartbeat-loss coordination never invokes GitHub's run-scoped cancellation API where a successor rerun could race. The hosted process boundary anchors trust in the kernel-resolved versioned Runner.Worker path while accepting an equivalent argv-zero spelling with the same basename; its public boundary marker is allowed only at the one exact non-secret value, so a forged value under the same credential-like name still fails closed. The credentialless transfer seal validates the rooted native reuse decision against the Warrant-bound source, closure, dependency, toolchain, environment and command inputs; qualifiedBase stays in the proof and decision where it is rooted and later independently rechecked, rather than being assumed on the Warrant schema. V2 mutation cannot initialize a second empty authority beside a legacy ref: migration reads and roots the canonical live v1 ref, rechecks it, applies the explicit configured v2 policy, and atomically replaces its bytes through one expected-old non-force update, so old v1 controllers fail closed while the prior commit remains immutable history. Candidate ancestry classifies the GitHub artifact runtime token as credential authority. Every Landing settlement, including an unexpired fence, requires product-owned terminal readback. Terminal cleanup reads the immutable historical attempt, derives workflow and hosted Landing job identity from live run data, reads the exact protected ref head and compares containment against that immutable SHA, and seals merged only when the admitted merge-group head is contained by that protected base; a later different-head merge settles the old attempt as dequeued. Terminal normalization preserves transfer, finalizer boundary, native and seal job, admitted provider attempt, protected-base head, containment result, and terminal readback coordinates. The public reusable workflow truthfully retains its single-flight v1 authority without advertising v2 migration, while bounded v2 remains a separate opt-in CLI, Node API, and schema contract; the tracked self-caller stays on public v4-alpha with matching stable and alpha locks, and transient train selection is dispatch-only. Next-development parity adds one versioned transition authority, one durable controller, one bounded reservation adapter, and pure public-contract recovery evidence while retaining the existing thin floating-channel callers byte-for-byte. The floating-consumer gate reuses the existing contract-world evaluator so SHA drift passes only under the selected lock's compatibility policy, breaking surface drift still fails closed, and external certification reconstructs the receipt from the observed workflow SHA rather than the lock's historical evidence SHA. Tail reseal adds no Stage Capsule effect or general rebuild authority: it verifies the exact retained four-platform bytes, admits one known macOS tail failure through live provider readback, fences signing and finalization to explicit credentials and Warrant identity, and requires standard candidate Passport plus provider and protected readback. Compatibility Facts parity isolates canonical encoding, temporal verification, lifecycle validation, fixture projection, public authority projection, and CLI adaptation into bounded modules; legacy digest and proof arrays are derived only from exact current Fact lineage. Publication Rehearsal adds no production release authority: the content-addressed capsule contract binds source, candidate, manifest, config, canonical data-only provider bindings, provider policy, observations and core version separately from filesystem, runtime and rehearsal-only provider authority; simulate, replay and explicitly authorized provider rehearsal all reuse the release-tail planner, while same-commit local dogfood resolves the new reusable contract and exact current runtime before external callers remain on floating v4-alpha. Cross-runtime candidate recovery preserves original runtime and provider roots and creates resume lineage only after exact public ref, tag, ancestry, npm version and integrity readback. Adopter Delivery restores the reviewed public v3 gate, drivers, Passport binding, N-1 bootstrap and exact archive loader through one public v4 surface while keeping provider and release authority explicit non-claims. Floating Alpha bootstrap uses only the existing exact resolver and protected Alpha private shell to move an otherwise stale floating shell, retains public v4 stable promotion, and removes itself after protected readback. CI lane change-budget enforcement adds a bounded parser, evaluator, guard, and tests without creating another merge authority. Minimal consumer contract adds exactly seven bounded contract modules, one generated-contract gate and six product build/test example sources; the source-file ceiling increases by fourteen for this reviewed feature slice. Existing per-file, function, complexity and debt limits are unchanged. The final readable template sources require exact source-line and total-automation ceilings of 203394 and 224451 respectively; this charges all generated example sources rather than hiding them from measurement.",
36
36
  "governance": "legacy-debt-sunset-2026q4",
37
37
  "maxActionDefinitions": 283,
38
38
  "maxActionDefinitionLines": 12399,
39
- "maxAutomationImplementationLines": 224420
39
+ "maxAutomationImplementationLines": 239777
40
40
  },
41
41
  "sourceBudgets": {
42
42
  "newFileLines": 600,