@kungfu-tech/buildchain 4.0.8 → 4.0.9-alpha.1

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 (57) hide show
  1. package/AGENTS.md +12 -19
  2. package/CONTRIBUTING.md +6 -9
  3. package/README.md +11 -1
  4. package/architecture/agent-change-map.md +11 -4
  5. package/architecture/build-environments.json +71 -0
  6. package/architecture/build-orchestration.json +18 -0
  7. package/architecture/ci-lane-change-budget.json +51 -2
  8. package/architecture/internal-capabilities.json +17 -4
  9. package/architecture/maintainability-debt.json +37 -126
  10. package/architecture/maintainability-policy.json +19 -210
  11. package/architecture/release-topology.json +9 -7
  12. package/architecture/universal-workflow-bootstrap.json +5 -4
  13. package/architecture/universal-workflow-train-admission.json +2 -2
  14. package/architecture/workflow-taxonomy.json +13 -0
  15. package/bin/buildchain.mjs +1 -1
  16. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  17. package/dist/site/buildchain-contract.json +41 -1131
  18. package/dist/site/buildchain-site.json +48 -153
  19. package/dist/site/capability-registry.json +2 -2
  20. package/dist/site/cli-registry.json +1 -1
  21. package/dist/site/controller-registry.json +30 -868
  22. package/dist/site/kfd-claims.json +148 -396
  23. package/dist/site/kfd-upstream-aggregate.json +1 -1
  24. package/dist/site/manual-registry.json +7 -7
  25. package/dist/site/node-api-registry.json +37 -37
  26. package/dist/site/page-registry.json +36 -141
  27. package/dist/site/public-surface-audit.json +93 -402
  28. package/dist/site/publication-authority-registry.json +22 -1
  29. package/dist/site/publication-registry.json +4 -4
  30. package/dist/site/site-manifest.json +11 -11
  31. package/dist/site/workflow-registry.json +165 -391
  32. package/docs/MAP.md +5 -4
  33. package/docs/cli-reference.md +1 -1
  34. package/docs/getting-started.md +8 -7
  35. package/docs/node-api-reference.md +85 -85
  36. package/docs/release-governance.md +19 -18
  37. package/docs/reusable-build-surface.md +160 -1430
  38. package/docs/runtime-train-validation.md +45 -172
  39. package/docs/workflow-catalog.md +1 -0
  40. package/package.json +1 -1
  41. package/packages/core/build-configuration.js +117 -0
  42. package/packages/core/buildchain-config.js +2 -0
  43. package/packages/core/buildchain-contract.js +14 -44
  44. package/packages/core/buildchain-publication-authority.js +1 -0
  45. package/packages/core/controller-evidence.js +2 -9
  46. package/scripts/buildchain-cli-help.mjs +1 -1
  47. package/scripts/check-floating-consumer-policy-contract.mjs +4 -7
  48. package/scripts/check-inventory.mjs +91 -77
  49. package/scripts/check-maintainability.mjs +23 -8
  50. package/scripts/check-universal-workflow-bootstrap.mjs +12 -2
  51. package/scripts/generate-channel-build-workflow.mjs +50 -410
  52. package/scripts/generate-site-bundle.mjs +2 -1
  53. package/scripts/generate-universal-workflow-facades.mjs +1 -0
  54. package/scripts/init-repo.mjs +25 -26
  55. package/scripts/resolve-build-configuration.mjs +105 -0
  56. package/scripts/universal-workflow-self-dogfood.mjs +8 -1
  57. package/scripts/verify-golden-path.mjs +3 -3
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "totalExcessLedger": {
9
9
  "metric": "calibrated-full-dimensional-excess-v1",
10
- "measuredExcess": 64542,
11
- "current": 56481
10
+ "measuredExcess": 62215,
11
+ "current": 54154
12
12
  },
13
13
  "defaults": {
14
14
  "owner": "Buildchain architecture maintainers",
@@ -315,10 +315,10 @@
315
315
  },
316
316
  "packages/core/buildchain-config.js": {
317
317
  "baseline": {
318
- "lines": 1885
318
+ "lines": 1887
319
319
  },
320
320
  "current": {
321
- "lines": 1885
321
+ "lines": 1887
322
322
  },
323
323
  "target": {
324
324
  "lines": 600
@@ -334,10 +334,10 @@
334
334
  }
335
335
  },
336
336
  "current": {
337
- "lines": 1078,
337
+ "lines": 1048,
338
338
  "functions": {
339
339
  "createBuildchainContractWorld@199": {
340
- "lines": 681
340
+ "lines": 651
341
341
  }
342
342
  }
343
343
  },
@@ -1214,7 +1214,7 @@
1214
1214
  "lines": 1515
1215
1215
  },
1216
1216
  "current": {
1217
- "lines": 1475
1217
+ "lines": 1489
1218
1218
  },
1219
1219
  "target": {
1220
1220
  "lines": 600
@@ -1223,21 +1223,21 @@
1223
1223
  "scripts/check-maintainability.mjs": {
1224
1224
  "baseline": {
1225
1225
  "functions": {
1226
- "evaluateMaintainability@260": {
1226
+ "evaluateMaintainability@275": {
1227
1227
  "complexity": 29
1228
1228
  }
1229
1229
  }
1230
1230
  },
1231
1231
  "current": {
1232
1232
  "functions": {
1233
- "evaluateMaintainability@260": {
1233
+ "evaluateMaintainability@275": {
1234
1234
  "complexity": 29
1235
1235
  }
1236
1236
  }
1237
1237
  },
1238
1238
  "target": {
1239
1239
  "functions": {
1240
- "evaluateMaintainability@260": {
1240
+ "evaluateMaintainability@275": {
1241
1241
  "complexity": 25
1242
1242
  }
1243
1243
  }
@@ -1457,7 +1457,7 @@
1457
1457
  },
1458
1458
  "scripts/generate-site-bundle.mjs": {
1459
1459
  "baseline": {
1460
- "lines": 1410,
1460
+ "lines": 1411,
1461
1461
  "functions": {
1462
1462
  "buildSiteBundle@720": {
1463
1463
  "lines": 637
@@ -1465,10 +1465,10 @@
1465
1465
  }
1466
1466
  },
1467
1467
  "current": {
1468
- "lines": 1410,
1468
+ "lines": 1411,
1469
1469
  "functions": {
1470
1470
  "buildSiteBundle@720": {
1471
- "lines": 636
1471
+ "lines": 637
1472
1472
  }
1473
1473
  }
1474
1474
  },
@@ -2191,7 +2191,7 @@
2191
2191
  "tests": {
2192
2192
  "tests/auditable-demo-platform.test.mjs": {
2193
2193
  "baseline": {
2194
- "lines": 712
2194
+ "lines": 714
2195
2195
  },
2196
2196
  "current": {
2197
2197
  "lines": 712
@@ -2241,15 +2241,15 @@
2241
2241
  "baseline": {
2242
2242
  "lines": 3181,
2243
2243
  "functions": {
2244
- "<anonymous@1559>@1559": {
2244
+ "<anonymous@1494>@1494": {
2245
2245
  "lines": 206
2246
2246
  }
2247
2247
  }
2248
2248
  },
2249
2249
  "current": {
2250
- "lines": 2738,
2250
+ "lines": 2668,
2251
2251
  "functions": {
2252
- "<anonymous@1559>@1559": {
2252
+ "<anonymous@1494>@1494": {
2253
2253
  "lines": 206
2254
2254
  }
2255
2255
  }
@@ -2257,7 +2257,7 @@
2257
2257
  "target": {
2258
2258
  "lines": 600,
2259
2259
  "functions": {
2260
- "<anonymous@1559>@1559": {
2260
+ "<anonymous@1494>@1494": {
2261
2261
  "lines": 180
2262
2262
  }
2263
2263
  }
@@ -2267,33 +2267,27 @@
2267
2267
  "baseline": {
2268
2268
  "lines": 4639,
2269
2269
  "functions": {
2270
- "<anonymous@170>@170": {
2271
- "lines": 195
2272
- },
2273
- "<anonymous@544>@544": {
2270
+ "<anonymous@445>@445": {
2274
2271
  "lines": 183
2275
2272
  },
2276
- "<anonymous@1678>@1678": {
2273
+ "<anonymous@1579>@1579": {
2277
2274
  "lines": 249
2278
2275
  },
2279
- "<anonymous@2684>@2684": {
2276
+ "<anonymous@2585>@2585": {
2280
2277
  "lines": 188
2281
2278
  }
2282
2279
  }
2283
2280
  },
2284
2281
  "current": {
2285
- "lines": 3027,
2282
+ "lines": 2909,
2286
2283
  "functions": {
2287
- "<anonymous@170>@170": {
2288
- "lines": 186
2289
- },
2290
- "<anonymous@544>@544": {
2284
+ "<anonymous@445>@445": {
2291
2285
  "lines": 183
2292
2286
  },
2293
- "<anonymous@1678>@1678": {
2287
+ "<anonymous@1579>@1579": {
2294
2288
  "lines": 249
2295
2289
  },
2296
- "<anonymous@2684>@2684": {
2290
+ "<anonymous@2585>@2585": {
2297
2291
  "lines": 188
2298
2292
  }
2299
2293
  }
@@ -2301,16 +2295,13 @@
2301
2295
  "target": {
2302
2296
  "lines": 600,
2303
2297
  "functions": {
2304
- "<anonymous@170>@170": {
2305
- "lines": 180
2306
- },
2307
- "<anonymous@544>@544": {
2298
+ "<anonymous@445>@445": {
2308
2299
  "lines": 180
2309
2300
  },
2310
- "<anonymous@1678>@1678": {
2301
+ "<anonymous@1579>@1579": {
2311
2302
  "lines": 180
2312
2303
  },
2313
- "<anonymous@2684>@2684": {
2304
+ "<anonymous@2585>@2585": {
2314
2305
  "lines": 180
2315
2306
  }
2316
2307
  }
@@ -2329,7 +2320,7 @@
2329
2320
  },
2330
2321
  "tests/cli.test.mjs": {
2331
2322
  "baseline": {
2332
- "lines": 2840,
2323
+ "lines": 2842,
2333
2324
  "functions": {
2334
2325
  "<anonymous@2363>@2363": {
2335
2326
  "lines": 253
@@ -2485,7 +2476,7 @@
2485
2476
  "lines": 916
2486
2477
  },
2487
2478
  "current": {
2488
- "lines": 916
2479
+ "lines": 899
2489
2480
  },
2490
2481
  "target": {
2491
2482
  "lines": 600
@@ -2756,75 +2747,6 @@
2756
2747
  "lines": 600
2757
2748
  }
2758
2749
  },
2759
- "tests/build-surface-reusable-build.test.mjs": {
2760
- "baseline": {
2761
- "functions": {
2762
- "<anonymous@3>@3": {
2763
- "lines": 342
2764
- }
2765
- }
2766
- },
2767
- "current": {
2768
- "functions": {
2769
- "<anonymous@3>@3": {
2770
- "lines": 342
2771
- }
2772
- }
2773
- },
2774
- "target": {
2775
- "functions": {
2776
- "<anonymous@3>@3": {
2777
- "lines": 180
2778
- }
2779
- }
2780
- }
2781
- },
2782
- "tests/build-surface-reusable-build-signing.test.mjs": {
2783
- "baseline": {
2784
- "functions": {
2785
- "<anonymous@3>@3": {
2786
- "lines": 266
2787
- }
2788
- }
2789
- },
2790
- "current": {
2791
- "functions": {
2792
- "<anonymous@3>@3": {
2793
- "lines": 266
2794
- }
2795
- }
2796
- },
2797
- "target": {
2798
- "functions": {
2799
- "<anonymous@3>@3": {
2800
- "lines": 180
2801
- }
2802
- }
2803
- }
2804
- },
2805
- "tests/build-surface-reusable-build-artifacts.test.mjs": {
2806
- "baseline": {
2807
- "functions": {
2808
- "<anonymous@3>@3": {
2809
- "lines": 232
2810
- }
2811
- }
2812
- },
2813
- "current": {
2814
- "functions": {
2815
- "<anonymous@3>@3": {
2816
- "lines": 230
2817
- }
2818
- }
2819
- },
2820
- "target": {
2821
- "functions": {
2822
- "<anonymous@3>@3": {
2823
- "lines": 180
2824
- }
2825
- }
2826
- }
2827
- },
2828
2750
  "tests/promote-buildchain-ref-durable-recovery.test.mjs": {
2829
2751
  "baseline": {
2830
2752
  "functions": {
@@ -2922,17 +2844,17 @@
2922
2844
  ".github/workflows/.build.yml": {
2923
2845
  "baseline": {
2924
2846
  "lines": 3370,
2925
- "jobs": 14,
2847
+ "jobs": 15,
2926
2848
  "steps": 194,
2927
2849
  "maxStepsPerJob": 44,
2928
2850
  "decisions": 113
2929
2851
  },
2930
2852
  "current": {
2931
- "lines": 3341,
2932
- "jobs": 14,
2933
- "steps": 194,
2934
- "maxStepsPerJob": 44,
2935
- "decisions": 113
2853
+ "lines": 2244,
2854
+ "jobs": 15,
2855
+ "steps": 170,
2856
+ "maxStepsPerJob": 32,
2857
+ "decisions": 87
2936
2858
  },
2937
2859
  "target": {
2938
2860
  "lines": 600,
@@ -3021,17 +2943,6 @@
3021
2943
  "decisions": 25
3022
2944
  }
3023
2945
  },
3024
- ".github/workflows/build.yml": {
3025
- "baseline": {
3026
- "lines": 1218
3027
- },
3028
- "current": {
3029
- "lines": 1218
3030
- },
3031
- "target": {
3032
- "lines": 600
3033
- }
3034
- },
3035
2946
  ".github/workflows/check.yml": {
3036
2947
  "baseline": {
3037
2948
  "maxStepsPerJob": 22
@@ -3191,7 +3102,7 @@
3191
3102
  "path": "tests/build-surface.test.mjs",
3192
3103
  "metric": "lines",
3193
3104
  "baseline": 4639,
3194
- "current": 3027
3105
+ "current": 2909
3195
3106
  },
3196
3107
  {
3197
3108
  "domain": "workflows",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "repositoryBudgets": {
28
28
  "baselineRevision": "9569f69c2cb609372b8a3d65ce5dec8fb7b34a84",
29
- "maxHandMaintainedSourceFiles": 510,
29
+ "maxHandMaintainedSourceFiles": 512,
30
30
  "maxHandMaintainedSourceLines": 175456,
31
31
  "maxWorkflowFiles": 80,
32
32
  "maxWorkflowLines": 26791,
@@ -193,8 +193,8 @@
193
193
  "governance": "legacy-debt-sunset-2026q4"
194
194
  },
195
195
  "packages/core/buildchain-config.js": {
196
- "maxLines": 1885,
197
- "rationale": "Artifact signing configuration admits only the Buildchain-owned JIT profile with exact safe archive-relative target paths while rejecting credentials, entitlement files, wildcard paths, incompatible artifact kinds, and incomplete declarations. Publication rehearsal remains effect-disabled. Adopter delivery adds only a closed public contract, exact selectors and repository-relative input, readback, bootstrap, archive and result paths; this exact wiring ceiling cannot grow implicitly.",
196
+ "maxLines": 1887,
197
+ "rationale": "Artifact signing configuration admits only the Buildchain-owned JIT profile with exact safe archive-relative target paths while rejecting credentials, entitlement files, wildcard paths, incompatible artifact kinds, and incomplete declarations. Publication rehearsal remains effect-disabled. Adopter delivery adds only a closed public contract, exact selectors and repository-relative input, readback, bootstrap, archive and result paths; this exact wiring ceiling cannot grow implicitly. TOML build configuration delegates to a strict normalizer through one import and one call; this exact two-line increase accompanies removal of duplicate workflow and router implementations.",
198
198
  "governance": "legacy-debt-sunset-2026q4"
199
199
  },
200
200
  "scripts/check-internal-architecture.mjs": {
@@ -772,101 +772,7 @@
772
772
  "id": ".build",
773
773
  "path": ".github/workflows/.build.yml",
774
774
  "reusable": true,
775
- "inputs": [
776
- "artifact-compression-level",
777
- "artifact-finalization-command",
778
- "artifact-finalization-on-platform",
779
- "artifact-name",
780
- "artifact-name-template",
781
- "artifact-paths",
782
- "artifact-relay-s3-bucket",
783
- "artifact-relay-s3-download-role-arn",
784
- "artifact-relay-s3-oidc-audience",
785
- "artifact-relay-s3-prefix",
786
- "artifact-relay-s3-region",
787
- "artifact-relay-s3-role-arn",
788
- "artifact-relay-s3-upload-role-arn",
789
- "artifact-retention-days",
790
- "artifact-signing-request-upload-no-proxy",
791
- "artifact-transfer-mode",
792
- "aws-codebuild-project",
793
- "aws-ec2-macos-runner-label",
794
- "aws-ec2-windows-runner-label",
795
- "build-command",
796
- "buildchain-contract-compatibility-policy",
797
- "buildchain-contract-drift-issue-mode",
798
- "buildchain-contract-expected-channel",
799
- "buildchain-contract-expected-major",
800
- "buildchain-contract-lock-path",
801
- "buildchain-expected-channel",
802
- "buildchain-expected-major",
803
- "buildchain-ref",
804
- "buildchain-repository",
805
- "buildchain-visible-workflow",
806
- "cache-dependency-lock-root",
807
- "cache-policy-root",
808
- "cache-toolchain-root",
809
- "cargo-registry-index",
810
- "checkout-cache-fallback",
811
- "checkout-cache-fetch-attempts",
812
- "checkout-cache-github-timeout-seconds",
813
- "checkout-cache-mirror-url-template",
814
- "checkout-cache-mode",
815
- "checkout-cache-reference-repository-template",
816
- "checkout-cache-timeout-seconds",
817
- "checkout-history-mode",
818
- "compiler-cache-platforms-json",
819
- "compiler-cache-provider",
820
- "compiler-cache-required",
821
- "control-runner-json",
822
- "credential-island-caller-owned",
823
- "credential-island-environment",
824
- "credential-island-macos-app-path",
825
- "credential-island-macos-platform-id",
826
- "expected-artifacts-json",
827
- "fail-fast",
828
- "gate-profile-aggregate-json",
829
- "github-artifact-attestation-platform-id",
830
- "github-artifact-attestation-signer-sha",
831
- "github-artifact-attestation-subject-path",
832
- "install-command",
833
- "kfd-agent-hub",
834
- "lifecycle-timeout-minutes",
835
- "linux-container-image",
836
- "linux-container-preset",
837
- "node-version",
838
- "platforms-json",
839
- "pre-upload-transport-smoke-artifact-root",
840
- "pre-upload-transport-smoke-scenario-path",
841
- "process-sample-interval-ms",
842
- "process-summary-path",
843
- "publish-anchor-request-json",
844
- "publish-channel",
845
- "publish-refs-json",
846
- "publish-registry",
847
- "publish-source-ref",
848
- "release-candidate",
849
- "release-candidate-family-evidence-json",
850
- "requested-parallelism",
851
- "require-build",
852
- "require-install",
853
- "require-trusted-event",
854
- "require-verify",
855
- "runner-preset",
856
- "rust-toolchain",
857
- "rustup-dist-server",
858
- "rustup-update-root",
859
- "sample-process-tree",
860
- "self-hosted-offline-fallback",
861
- "setup-node",
862
- "setup-rust",
863
- "shifu-cache-profile-digest",
864
- "shifu-cache-profile-ref",
865
- "untrusted-policy",
866
- "verify-command",
867
- "verify-substage-evidence-path",
868
- "working-directory"
869
- ],
775
+ "inputs": ["config-path"],
870
776
  "secrets": [
871
777
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
872
778
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -926,7 +832,7 @@
926
832
  "v4-consumer-policy-receipt-root"
927
833
  ]
928
834
  },
929
- "rationale": "The reusable build surface carries one internal visible-workflow coordinate into the earliest semantic v4 consumer admission gate and emits the source/runtime/dual-lock-bound receipt; build, install, and release authority remain downstream of that gate.",
835
+ "rationale": "Project configuration moves to typed TOML; ordinary build calls expose only config-path, derive exact runtime identity, and share owner-scoped composite steps. The protected PR review must approve this deliberate breaking successor.",
930
836
  "governance": "legacy-debt-sunset-2026q4"
931
837
  },
932
838
  "workflow:build": {
@@ -935,104 +841,7 @@
935
841
  "id": "build",
936
842
  "path": ".github/workflows/build.yml",
937
843
  "reusable": true,
938
- "inputs": [
939
- "artifact-compression-level",
940
- "artifact-finalization-command",
941
- "artifact-finalization-on-platform",
942
- "artifact-name",
943
- "artifact-name-template",
944
- "artifact-paths",
945
- "artifact-relay-s3-bucket",
946
- "artifact-relay-s3-download-role-arn",
947
- "artifact-relay-s3-oidc-audience",
948
- "artifact-relay-s3-prefix",
949
- "artifact-relay-s3-region",
950
- "artifact-relay-s3-role-arn",
951
- "artifact-relay-s3-upload-role-arn",
952
- "artifact-retention-days",
953
- "artifact-signing-request-upload-no-proxy",
954
- "artifact-transfer-mode",
955
- "aws-codebuild-project",
956
- "aws-ec2-macos-runner-label",
957
- "aws-ec2-windows-runner-label",
958
- "build-command",
959
- "buildchain-alpha-contract-lock-path",
960
- "buildchain-channel",
961
- "buildchain-contract-compatibility-policy",
962
- "buildchain-contract-drift-issue-mode",
963
- "buildchain-contract-expected-channel",
964
- "buildchain-contract-expected-major",
965
- "buildchain-contract-lock-path",
966
- "buildchain-expected-channel",
967
- "buildchain-expected-major",
968
- "buildchain-ref",
969
- "buildchain-repository",
970
- "buildchain-stable-contract-lock-path",
971
- "buildchain-visible-workflow",
972
- "cache-dependency-lock-root",
973
- "cache-policy-root",
974
- "cache-toolchain-root",
975
- "cargo-registry-index",
976
- "checkout-cache-fallback",
977
- "checkout-cache-fetch-attempts",
978
- "checkout-cache-github-timeout-seconds",
979
- "checkout-cache-mirror-url-template",
980
- "checkout-cache-mode",
981
- "checkout-cache-reference-repository-template",
982
- "checkout-cache-timeout-seconds",
983
- "checkout-history-mode",
984
- "compiler-cache-platforms-json",
985
- "compiler-cache-provider",
986
- "compiler-cache-required",
987
- "control-runner-json",
988
- "credential-island-caller-owned",
989
- "credential-island-environment",
990
- "credential-island-macos-app-path",
991
- "credential-island-macos-platform-id",
992
- "expected-artifacts-json",
993
- "fail-fast",
994
- "gate-profile-aggregate-json",
995
- "github-artifact-attestation-platform-id",
996
- "github-artifact-attestation-signer-sha",
997
- "github-artifact-attestation-subject-path",
998
- "install-command",
999
- "kfd-agent-hub",
1000
- "lifecycle-timeout-minutes",
1001
- "linux-container-image",
1002
- "linux-container-preset",
1003
- "node-version",
1004
- "platforms-json",
1005
- "pre-upload-transport-smoke-artifact-root",
1006
- "pre-upload-transport-smoke-scenario-path",
1007
- "process-sample-interval-ms",
1008
- "process-summary-path",
1009
- "publish-anchor-request-json",
1010
- "publish-channel",
1011
- "publish-refs-json",
1012
- "publish-registry",
1013
- "publish-source-ref",
1014
- "release-candidate",
1015
- "release-candidate-family-evidence-json",
1016
- "requested-parallelism",
1017
- "require-build",
1018
- "require-install",
1019
- "require-trusted-event",
1020
- "require-verify",
1021
- "runner-preset",
1022
- "rust-toolchain",
1023
- "rustup-dist-server",
1024
- "rustup-update-root",
1025
- "sample-process-tree",
1026
- "self-hosted-offline-fallback",
1027
- "setup-node",
1028
- "setup-rust",
1029
- "shifu-cache-profile-digest",
1030
- "shifu-cache-profile-ref",
1031
- "untrusted-policy",
1032
- "verify-command",
1033
- "verify-substage-evidence-path",
1034
- "working-directory"
1035
- ],
844
+ "inputs": ["config-path"],
1036
845
  "secrets": [
1037
846
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
1038
847
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -1095,7 +904,7 @@
1095
904
  "v4-consumer-policy-receipt-root"
1096
905
  ]
1097
906
  },
1098
- "rationale": "The generated channel router forwards the visible-workflow coordinate and semantic v4 policy receipt while retaining floating v4 or v4-alpha selectors, dual consumer locks, and trusted nonpersistent runtime override routing.",
907
+ "rationale": "Project configuration moves to typed TOML; ordinary build calls expose only config-path, derive exact runtime identity, and share owner-scoped composite steps. The protected PR review must approve this deliberate breaking successor.",
1099
908
  "governance": "legacy-debt-sunset-2026q4"
1100
909
  },
1101
910
  "workflow:paper-release-sealed": {
@@ -1904,12 +1713,12 @@
1904
1713
  },
1905
1714
  "approvedWorkflowDebtTransitions": {
1906
1715
  ".github/workflows/.build.yml": {
1907
- "maxLines": 3341,
1908
- "maxJobs": 14,
1909
- "maxSteps": 194,
1910
- "maxStepsPerJob": 44,
1911
- "maxDecisions": 113,
1912
- "rationale": "Pure release-candidate channel and summary-name computation runs in the exact checked-out Buildchain runtime script. Jobs, steps, decisions, permissions, credentials, outputs, uploads, publication authority and failure behavior are unchanged; YAML lines fall from 3370 to 3341 and cannot grow implicitly.",
1716
+ "maxLines": 2244,
1717
+ "maxJobs": 15,
1718
+ "maxSteps": 170,
1719
+ "maxStepsPerJob": 32,
1720
+ "maxDecisions": 87,
1721
+ "rationale": "TOML-only ordinary build replaces 94 inputs with one locator and six shared owner-scoped composites. A read-only configuration job derives an exact rooted plan before admission. The public facade delegates once; this exact reduced surface cannot grow implicitly.",
1913
1722
  "governance": "stage2-workflow-yaml-reduction"
1914
1723
  },
1915
1724
  ".github/workflows/.release-candidate-promote.yml": {
@@ -1940,12 +1749,12 @@
1940
1749
  "governance": "legacy-debt-sunset-2026q4"
1941
1750
  },
1942
1751
  ".github/workflows/build.yml": {
1943
- "maxLines": 1218,
1944
- "maxJobs": 7,
1945
- "maxSteps": 16,
1946
- "maxStepsPerJob": 6,
1947
- "maxDecisions": 7,
1948
- "rationale": "The generated channel router forwards the two historical contract-channel aliases into the reusable build workflow without adding a second normalization or build authority. These exact generated ceilings cannot grow implicitly.",
1752
+ "maxLines": 190,
1753
+ "maxJobs": 1,
1754
+ "maxSteps": 0,
1755
+ "maxStepsPerJob": 0,
1756
+ "maxDecisions": 0,
1757
+ "rationale": "TOML-only ordinary build replaces 94 inputs with one locator and six shared owner-scoped composites. A read-only configuration job derives an exact rooted plan before admission. The public facade delegates once; this exact reduced surface cannot grow implicitly.",
1949
1758
  "governance": "legacy-debt-sunset-2026q4"
1950
1759
  },
1951
1760
  ".github/workflows/release-candidate-promote.yml": {
@@ -43,7 +43,8 @@
43
43
  ".github/workflows/self-release-rehearsal-dogfood.yml",
44
44
  ".github/workflows/self-release-tail-dogfood.yml",
45
45
  ".github/workflows/self-release-next-development.yml",
46
- ".github/workflows/public-release-oci-compose-preview.yml"
46
+ ".github/workflows/public-release-oci-compose-preview.yml",
47
+ ".github/workflows/self-build-stable-dogfood.yml"
47
48
  ],
48
49
  "unknownTopologyPolicy": "fail-closed"
49
50
  },
@@ -152,6 +153,7 @@
152
153
  "packages/core/adopter-delivery-json.js",
153
154
  "packages/core/adopter-delivery-passport.js",
154
155
  "packages/core/artifact-verification-envelope.js",
156
+ "packages/core/build-configuration.js",
155
157
  "packages/core/buildchain-channel-identity.js",
156
158
  "packages/core/buildchain-compatibility-authority.js",
157
159
  "packages/core/buildchain-compatibility-fact.js",
@@ -212,7 +214,7 @@
212
214
  "scripts/release-finalization-review.mjs",
213
215
  "scripts/verify-version-state-delta.mjs"
214
216
  ],
215
- "root": "sha256:7a51840f34c85125fc7b65c6b1881d59e62ea05ad8265f7c8f3a66a3d11539f7"
217
+ "root": "sha256:5301e4d5f49b4700ef4a7f69de5a8ba2bd42261364a1492e813633228f7f4c0f"
216
218
  },
217
219
  "rustWasmAuthority": {
218
220
  "loader": "packages/core/domain-wasm.js",
@@ -351,12 +353,12 @@
351
353
  }
352
354
  ],
353
355
  "metrics": {
354
- "workflowCount": 35,
355
- "jobCount": 91,
356
- "reusableEdgeCount": 23,
357
- "mutationRelevantNodeCount": 76,
356
+ "workflowCount": 36,
357
+ "jobCount": 85,
358
+ "reusableEdgeCount": 21,
359
+ "mutationRelevantNodeCount": 71,
358
360
  "contentsWriteJobCount": 14,
359
- "oidcWriteJobCount": 15
361
+ "oidcWriteJobCount": 10
360
362
  },
361
363
  "semanticMetrics": {
362
364
  "workflowCount": 5,