@kungfu-tech/buildchain 4.0.2-alpha.34 → 4.0.2-alpha.35

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 (91) hide show
  1. package/AGENTS.md +9 -0
  2. package/CONTRIBUTING.md +24 -0
  3. package/README.md +2 -2
  4. package/actions/promote-buildchain-ref/README.md +1 -1
  5. package/architecture/agent-change-map.md +6 -4
  6. package/architecture/internal-capabilities.json +4 -4
  7. package/architecture/maintainability-debt.json +13 -11
  8. package/architecture/maintainability-policy.json +4 -4
  9. package/architecture/release-tail-contract-inventory.json +6 -6
  10. package/architecture/v4-delivery-authority-parity.json +2 -2
  11. package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.json +1 -1
  12. package/architecture/v4-floating-consumer-policy.json +1 -1
  13. package/architecture/v4-next-development-parity.json +4 -4
  14. package/architecture/v4-platform-stage-checkpoints.json +1 -1
  15. package/architecture/v4-publication-facade-patches.json +53 -0
  16. package/architecture/v4-release-topology.json +46 -29
  17. package/architecture/v4-rust-wasm-production-authority.json +1 -0
  18. package/architecture/v4-stage-capsule-qualification.json +1 -1
  19. package/architecture/v4-universal-workflow-bootstrap.json +1 -1
  20. package/architecture/v4-universal-workflow-fault-campaign.json +1 -1
  21. package/architecture/v4-universal-workflow-train-admission.json +4 -4
  22. package/architecture/workflow-taxonomy.json +1437 -0
  23. package/contracts/buildchain-v2-residuals-v1.json +64 -1
  24. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  25. package/contracts/v4-canonical-contracts-v1.schema.json +1 -0
  26. package/dist/site/buildchain-contract.json +20 -20
  27. package/dist/site/buildchain-site.json +122 -56
  28. package/dist/site/capability-registry.json +4 -4
  29. package/dist/site/controller-registry.json +5 -4
  30. package/dist/site/kfd-claims.json +2617 -964
  31. package/dist/site/kfd-upstream-aggregate.json +1 -1
  32. package/dist/site/manual-registry.json +10 -10
  33. package/dist/site/node-api-registry.json +26 -21
  34. package/dist/site/page-registry.json +107 -41
  35. package/dist/site/public-surface-audit.json +3196 -1128
  36. package/dist/site/publication-authority-registry.json +1179 -417
  37. package/dist/site/publication-registry.json +4 -4
  38. package/dist/site/site-manifest.json +14 -14
  39. package/dist/site/workflow-registry.json +5484 -1924
  40. package/docs/MAP.md +1 -0
  41. package/docs/auditable-demo.md +1 -1
  42. package/docs/cli.md +3 -3
  43. package/docs/dev-delivery-warrant.md +1 -1
  44. package/docs/engineering-housekeeper.md +3 -3
  45. package/docs/next-development-transition.md +1 -1
  46. package/docs/node-api-reference.md +30 -30
  47. package/docs/publication-authority.md +2 -2
  48. package/docs/release-candidate.md +3 -3
  49. package/docs/release-flow.md +67 -19
  50. package/docs/release-governance.md +8 -8
  51. package/docs/v4-adopter-delivery.md +1 -1
  52. package/docs/v4-production-release.md +45 -8
  53. package/docs/v4-stage-capsule.md +1 -1
  54. package/docs/workflow-catalog.md +151 -0
  55. package/package.json +8 -6
  56. package/packages/core/buildchain-contract.js +1 -1
  57. package/packages/core/buildchain-kfd-claims.js +2 -2
  58. package/packages/core/buildchain-publication-authority.js +40 -25
  59. package/packages/core/buildchain-v4-domain.wasm +0 -0
  60. package/packages/core/controller-evidence.js +4 -1
  61. package/packages/core/github-governance-authority.js +4 -4
  62. package/packages/core/next-development-projection.js +1 -1
  63. package/packages/core/release-line-dry-run.js +1 -1
  64. package/packages/core/v4-canonical-contracts.js +1 -0
  65. package/packages/core/v4-domain-wasm-artifact.js +2 -2
  66. package/packages/core/v4-floating-consumer-evidence.js +1 -1
  67. package/packages/core/v4-floating-consumer-policy.js +1 -1
  68. package/scripts/binary-publication-evidence.mjs +135 -0
  69. package/scripts/check-ci-lane-change-budget.mjs +4 -1
  70. package/scripts/check-core-mechanism-inventory.mjs +4 -3
  71. package/scripts/check-inventory.mjs +22 -22
  72. package/scripts/check-v4-floating-consumer-policy-contract.mjs +1 -1
  73. package/scripts/check-v4-public-dogfood-contract.mjs +18 -5
  74. package/scripts/check-v4-release-topology.mjs +5 -2
  75. package/scripts/check-v4-runtime-semantic-closure.mjs +4 -1
  76. package/scripts/check-v4-universal-workflow-bootstrap.mjs +5 -9
  77. package/scripts/check-workflow-taxonomy.mjs +6 -0
  78. package/scripts/generate-channel-build-workflow.mjs +2 -1
  79. package/scripts/generate-channel-promotion-workflow.mjs +4 -3
  80. package/scripts/generate-site-bundle.mjs +11 -11
  81. package/scripts/generate-v4-universal-workflow-facades.mjs +24 -6
  82. package/scripts/generate-workflow-taxonomy.mjs +25 -0
  83. package/scripts/maintainability-metrics.mjs +16 -5
  84. package/scripts/release-asset-client.mjs +90 -0
  85. package/scripts/release-candidate-resolver.mjs +1 -1
  86. package/scripts/source-verification-evidence.mjs +344 -0
  87. package/scripts/stable-candidate-qualification.mjs +1 -1
  88. package/scripts/v4-publication-settlement.mjs +207 -0
  89. package/scripts/v4-universal-workflow-self-dogfood.mjs +1 -1
  90. package/scripts/verify-version-state-delta.mjs +173 -0
  91. package/scripts/workflow-taxonomy.mjs +468 -0
@@ -7,12 +7,12 @@ source_level: repository-contracts + protected-provider-readback
7
7
  confidence: high
8
8
  sensitivity: public
9
9
  evidence_grade: A
10
- review_state: self-reviewed
11
- last_reviewed: 2026-08-13
10
+ review_state: unreviewed
11
+ last_reviewed: 2026-09-05
12
12
  ai_provenance:
13
- model_family: GPT-5
13
+ model_family: GPT-6
14
14
  product: Codex
15
- generated_at: 2026-08-13
15
+ generated_at: 2026-09-05
16
16
  invisible_context: Provider credentials and private provider state were not read.
17
17
  ---
18
18
 
@@ -26,8 +26,9 @@ dev/v4/v4.0 -> alpha/v4/v4.0 -> release/v4/v4.0
26
26
  ```
27
27
 
28
28
  Public consumers use `v4-alpha` for the current prerelease channel and `v4`
29
- for stable. Reproducible consumers may pin an exact 40-character commit or an
30
- exact immutable release tag such as `v4.0.0`.
29
+ for stable, with matching stable and alpha contract locks. Exact commits and
30
+ immutable release tags identify retained evidence and explicitly admitted runtime
31
+ inputs; tracked v4 reusable-workflow selectors remain `@v4` or `@v4-alpha`.
31
32
 
32
33
  The release transaction is fail-closed. The v4 provider-operation journal,
33
34
  activation plan, stable publication fence, and partial-mutation recovery plan
@@ -51,8 +52,9 @@ exact alpha tag, and npm's `alpha` tag.
51
52
  ## Non-destructive rollback
52
53
 
53
54
  Rollback never rewrites an exact tag, release, package version, Passport, or
54
- provider journal. Stop forward promotion, pin consumers to the last verified
55
- exact v4 SHA or exact stable tag, and use the retained `release/v3/v3.0`
55
+ provider journal. Stop forward promotion and select the last verified exact
56
+ v4 runtime through an admitted, non-persistent recovery input; keep tracked v4
57
+ workflow selectors on their locked floating channel. Use `release/v3/v3.0`
56
58
  coordinate only as an explicit compatibility rollback reference. Restoring v3
57
59
  as production authority requires a new reviewed cutover; it is not an implicit
58
60
  fallback.
@@ -61,3 +63,38 @@ Before any retry, compare the current provider state with the retained
61
63
  transaction and operation roots. Resume only missing eligible operations.
62
64
  Conflicting state remains `repair-required` or terminal and must not be
63
65
  converted into success by moving a floating ref.
66
+
67
+ ## Publication settlement and binary recovery
68
+
69
+ Publication, next-development advancement, and binary distribution have separate
70
+ results. A completed native ReleaseReceipt remains publication evidence when the
71
+ later generated Dev PR is still pending or its enqueue call fails. SETTLE verifies
72
+ the immutable invocation, transaction, both provider states, receipt and Passport
73
+ roots even when APPLY fails after publication. It has no provider write permission.
74
+
75
+ APPLY retains that exact chain in the existing GitHub Release as
76
+ `buildchain-publication-settlement.json`; it reads the exact tag and original
77
+ `buildchain.release.json` before adding the packet. The APPLY artifact also retains
78
+ `delivery-summary.json`, which reports publication and next-development separately.
79
+ A green workflow label cannot substitute for this receipt verification.
80
+
81
+ Binary Distribution reads this settlement and the original publication Passport.
82
+ Tag creation can precede settlement, so it waits at most 40 observations, 15 seconds
83
+ apart, for missing evidence. A mismatched source, tag, Passport or receipt fails
84
+ immediately. It no longer requires a legacy `buildchain/release-state/*` ref for v4.
85
+
86
+ The sealed binary publisher retains the publication Passport and writes its own
87
+ Passport as `buildchain.binary.release.json`. All v4 asset collisions are checked
88
+ before uploads: identical bytes are preserved, absent assets are added, and
89
+ conflicting bytes are rejected. Each publication authorization is retained as
90
+ `buildchain.binary.capability-<sha256>.json`, so a fresh recovery capability does
91
+ not overwrite an earlier grant. Existing assets are never clobbered. Recovery uses
92
+ the same exact successful Binary Distribution evidence run through
93
+ `self-release-binary-assets.yml`; it does not rebuild already admitted archives or
94
+ create another npm version. Read back all three platform archives, checksums,
95
+ both Passports and the settlement packet before declaring distribution complete.
96
+
97
+ The native publication receipt authorizes no stable promotion and makes no claim
98
+ that a pending next-development PR has merged. Inspect the exact PR head, protected
99
+ base and merge result independently. A retry of the publication phase must first
100
+ read retained provider facts and resume only missing operations.
@@ -137,7 +137,7 @@ shadow-only: it does not skip a v3 production stage or move v3 authority.
137
137
  qualification boundary. Buildchain and external repositories use the same
138
138
  Buildchain-owned public reusable workflow,
139
139
  `.github/workflows/v4-stage-capsule-canary.yml`. Buildchain's caller is the thin
140
- `.github/workflows/v4-public-consumer-dogfood.yml`; it has no steps, copied
140
+ `.github/workflows/self-build-public-consumer-dogfood.yml`; it has no steps, copied
141
141
  orchestration, local action, direct qualification invocation, or private
142
142
  consumer profile. Candidate recursion is resolved only by publishing the exact
143
143
  candidate at `train/v4/v4.0/<capability>` and calling that fully qualified
@@ -0,0 +1,151 @@
1
+ ---
2
+ status: active
3
+ period: ongoing
4
+ theme: workflow-taxonomy
5
+ doc_type: technical-reference
6
+ source_level: local-files
7
+ confidence: high
8
+ sensitivity: public
9
+ evidence_grade: B
10
+ review_state: unreviewed
11
+ last_reviewed: 2026-09-05
12
+ ai_provenance:
13
+ model_family: GPT-6
14
+ product: Codex
15
+ generated_at: 2026-09-05
16
+ visible_context: Repository workflow source and the approved naming scheme
17
+ invisible_context_boundary: No credentials or unpublished provider configuration inspected
18
+ ---
19
+
20
+ # Workflow catalog
21
+
22
+ Generated from `architecture/workflow-taxonomy.json`; edit that source, then run
23
+ `pnpm run generate:workflows`. Every YAML file, including compatibility paths,
24
+ is checked by the existing required workflow check.
25
+
26
+ ## Naming and ownership
27
+
28
+ `public-<build|release|ops>-<purpose>.yml` is a consumer entry;
29
+ `.<build|release|ops>-<purpose>.yml` is an advanced component;
30
+ `self-<build|release|ops>-<purpose>.yml` is Buildchain's own automation.
31
+ Public is a product role, not GitHub access control. Dispatch services are
32
+ marked separately from reusable workflows. Keep workflow names, job IDs,
33
+ permissions, and trigger semantics stable during path migration.
34
+
35
+ ## Channel rollout
36
+
37
+ Canonical names become callable on a channel only after that channel publishes
38
+ them. Existing `@v4`/`@v4-alpha` consumers keep their exact registered legacy
39
+ paths until provider readback proves canonical availability. New examples below
40
+ describe the target surface, not a claim that both channels already publish it.
41
+ Compatibility files are generated byte-identical projections, not independently
42
+ editable implementations. They retain full jobs to preserve called-workflow
43
+ identity, permission envelopes, and required check names without extra nesting.
44
+
45
+ The controller registry records the actual source path separately from a migrated
46
+ repository controller contractPath. This preserves the established logical
47
+ contract identity while exposing its current execution source. New workflows
48
+ do not acquire historical identities. Public controllers retain their real
49
+ compatibility paths while those paths remain supported.
50
+
51
+ ## Adding or changing a workflow
52
+
53
+ Register a stable identity, role, category, purpose, owner, lifecycle status,
54
+ invocation and concrete summary before creating its derived path. A new entry
55
+ must explain its scope in review. New aliases cannot be invented: compatibility
56
+ must name an exact migration source with a reason and removal condition.
57
+ The policy, generator, checker, tests, required CI chain and CODEOWNERS require
58
+ independent `kungfu-origin` review. No wildcard compatibility admission is allowed.
59
+
60
+ A role, category or implementation edit must preserve or deliberately update
61
+ all related declarations. Run `pnpm run generate:workflows` and
62
+ `pnpm run check:workflows`; the full `pnpm run check` remains required.
63
+
64
+ ## public
65
+
66
+ | Canonical workflow | Category | Invocation | Status | Purpose | Compatibility path |
67
+ | --- | --- | --- | --- | --- | --- |
68
+ | [public-build-adopter-qualification.yml](../.github/workflows/public-build-adopter-qualification.yml) | build | reusable | active | V4 Adopter Delivery | `v4-adopter-delivery.yml` |
69
+ | [public-build-candidate.yml](../.github/workflows/public-build-candidate.yml) | build | reusable | active | Buildchain Channel Build | `build.yml` |
70
+ | [public-build-check.yml](../.github/workflows/public-build-check.yml) | build | reusable | active | Buildchain Check | `check.yml` |
71
+ | [public-build-demo.yml](../.github/workflows/public-build-demo.yml) | build | reusable | active | Buildchain Declarative Binary Auditable Demo | `.declarative-auditable-demo.yml` |
72
+ | [public-build-publication.yml](../.github/workflows/public-build-publication.yml) | build | reusable | active | Buildchain Publication Artifact | `publication-artifact.yml` |
73
+ | [public-build-stage-capsule-canary.yml](../.github/workflows/public-build-stage-capsule-canary.yml) | build | reusable | active | V4 Stage Capsule Canary | `v4-stage-capsule-canary.yml` |
74
+ | [public-ops-alpha-candidate-patrol.yml](../.github/workflows/public-ops-alpha-candidate-patrol.yml) | ops | reusable | active | Buildchain Dev to Alpha Candidate Patrol | `dev-alpha-candidate-patrol.yml` |
75
+ | [public-ops-bootstrap-recovery.yml](../.github/workflows/public-ops-bootstrap-recovery.yml) | ops | reusable | active | Universal Buildchain Bootstrap Recovery | `universal-bootstrap-recovery.yml` |
76
+ | [public-ops-bootstrap.yml](../.github/workflows/public-ops-bootstrap.yml) | ops | reusable | active | Buildchain Universal Bootstrap | `bootstrap.yml` |
77
+ | [public-ops-dev-auto-merge.yml](../.github/workflows/public-ops-dev-auto-merge.yml) | ops | reusable | active | Dev PR Auto Merge | `dev-pr-auto-merge.yml` |
78
+ | [public-ops-dev-qualification-patrol.yml](../.github/workflows/public-ops-dev-qualification-patrol.yml) | ops | reusable | active | Buildchain Dev Qualification Patrol | `dev-qualification-patrol.yml` |
79
+ | [public-ops-housekeeping.yml](../.github/workflows/public-ops-housekeeping.yml) | ops | reusable | active | Engineering Housekeeper | `engineering-housekeeper.yml` |
80
+ | [public-ops-observed-evidence.yml](../.github/workflows/public-ops-observed-evidence.yml) | ops | reusable | active | Patrol Observed Evidence | `patrol-observed-evidence.yml` |
81
+ | [public-ops-patrol-daily.yml](../.github/workflows/public-ops-patrol-daily.yml) | ops | reusable | active | Buildchain Patrol Daily | `patrol-daily.yml` |
82
+ | [public-ops-patrol-monthly.yml](../.github/workflows/public-ops-patrol-monthly.yml) | ops | reusable | active | Buildchain Patrol Monthly | `patrol-monthly.yml` |
83
+ | [public-ops-patrol-weekly.yml](../.github/workflows/public-ops-patrol-weekly.yml) | ops | reusable | active | Buildchain Patrol Weekly | `patrol-weekly.yml` |
84
+ | [public-ops-patrol.yml](../.github/workflows/public-ops-patrol.yml) | ops | reusable | active | Buildchain Patrol | `buildchain-patrol.yml` |
85
+ | [public-ops-release-governance.yml](../.github/workflows/public-ops-release-governance.yml) | ops | reusable | active | Release Governance Reconcile | `release-governance-reconcile.yml` |
86
+ | [public-ops-stable-candidate-patrol.yml](../.github/workflows/public-ops-stable-candidate-patrol.yml) | ops | reusable | active | Buildchain Stable Candidate Patrol | `stable-candidate-patrol.yml` |
87
+ | [public-ops-tail-reseal.yml](../.github/workflows/public-ops-tail-reseal.yml) | ops | reusable | active | V4 Retained Candidate Tail Reseal | `v4-tail-reseal.yml` |
88
+ | [public-ops-warrant-cancel.yml](../.github/workflows/public-ops-warrant-cancel.yml) | ops | reusable | active | Dev Delivery Warrant Queued Candidate Cancel | `dev-delivery-warrant-cancel.yml` |
89
+ | [public-ops-warrant-close.yml](../.github/workflows/public-ops-warrant-close.yml) | ops | reusable | active | Dev Delivery Warrant Close | `dev-delivery-warrant-close.yml` |
90
+ | [public-release-artifact-attestation.yml](../.github/workflows/public-release-artifact-attestation.yml) | release | reusable | active | Buildchain GitHub Artifact Attestation | `github-artifact-attestation.yml` |
91
+ | [public-release-paper-sealed.yml](../.github/workflows/public-release-paper-sealed.yml) | release | reusable | active | Buildchain Sealed Paper Release | `paper-release-sealed.yml` |
92
+ | [public-release-paper.yml](../.github/workflows/public-release-paper.yml) | release | reusable | active | Buildchain Paper Release | `paper-release.yml` |
93
+ | [public-release-promote.yml](../.github/workflows/public-release-promote.yml) | release | reusable | active | Release Candidate Promote | `release-candidate-promote.yml` |
94
+ | [public-release-propagation.yml](../.github/workflows/public-release-propagation.yml) | release | reusable | active | Release Propagation | `release-propagation.yml` |
95
+ | [public-release-signing-authority.yml](../.github/workflows/public-release-signing-authority.yml) | release | dispatch-service | active | Buildchain Artifact Signing Authority | `artifact-signing-authority.yml` |
96
+ | [public-release-tail.yml](../.github/workflows/public-release-tail.yml) | release | reusable | active | Declarative Release Tail | `release-tail.yml` |
97
+ | [public-release-web.yml](../.github/workflows/public-release-web.yml) | release | reusable | active | Buildchain Web Surface | `.web-surface.yml` |
98
+
99
+ ## component
100
+
101
+ | Canonical workflow | Category | Invocation | Status | Purpose | Compatibility path |
102
+ | --- | --- | --- | --- | --- | --- |
103
+ | [.build-demo-adapter.yml](../.github/workflows/.build-demo-adapter.yml) | build | reusable | active | Buildchain Auditable Demo | `.auditable-demo.yml` |
104
+ | [.build-engine.yml](../.github/workflows/.build-engine.yml) | build | reusable | active | Buildchain Build | `.build.yml` |
105
+ | [.build-gate-profile.yml](../.github/workflows/.build-gate-profile.yml) | build | reusable | active | Buildchain Shifu Gate Profile | `.gate-profile.yml` |
106
+ | [.build-release-verify-compat.yml](../.github/workflows/.build-release-verify-compat.yml) | build | reusable | compatibility | release verify | `.release-verify.yml` |
107
+ | [.build-sam-verify-compat.yml](../.github/workflows/.build-sam-verify-compat.yml) | build | reusable | compatibility | sam verify | `.sam-verify.yml` |
108
+ | [.build-wheel-verify-compat.yml](../.github/workflows/.build-wheel-verify-compat.yml) | build | reusable | compatibility | wheel verify | `.wheel-verify.yml` |
109
+ | [.ops-git-sync.yml](../.github/workflows/.ops-git-sync.yml) | ops | reusable | active | sync remote git | `.sync-remote-git.yml` |
110
+ | [.release-authority.yml](../.github/workflows/.release-authority.yml) | release | reusable | active | Buildchain Sealed Publication Authority | `.publication-authority.yml` |
111
+ | [.release-binary-assets.yml](../.github/workflows/.release-binary-assets.yml) | release | reusable | active | Buildchain Binary Release Assets | `.binary-release-assets.yml` |
112
+ | [.release-minor-bump-compat.yml](../.github/workflows/.release-minor-bump-compat.yml) | release | reusable | compatibility | bump minor version | `.bump-minor-version.yml` |
113
+ | [.release-page-sync-retired.yml](../.github/workflows/.release-page-sync-retired.yml) | release | reusable | retired | sync release page | `.sync-release-page.yml` |
114
+ | [.release-promote.yml](../.github/workflows/.release-promote.yml) | release | reusable | active | Release Candidate Promote Advanced | `.release-candidate-promote.yml` |
115
+
116
+ ## self
117
+
118
+ | Canonical workflow | Category | Invocation | Status | Purpose | Compatibility path |
119
+ | --- | --- | --- | --- | --- | --- |
120
+ | [self-build-adopter-dogfood.yml](../.github/workflows/self-build-adopter-dogfood.yml) | build | repository | active | V4 Adopter Delivery Dogfood | — |
121
+ | [self-build-alpha-dogfood.yml](../.github/workflows/self-build-alpha-dogfood.yml) | build | repository | active | Buildchain Alpha Self-Dogfood | — |
122
+ | [self-build-binary-distribution.yml](../.github/workflows/self-build-binary-distribution.yml) | build | repository | active | Binary Distribution | — |
123
+ | [self-build-candidate-lab.yml](../.github/workflows/self-build-candidate-lab.yml) | build | repository | active | Candidate Lab | — |
124
+ | [self-build-demo-dogfood.yml](../.github/workflows/self-build-demo-dogfood.yml) | build | repository | active | Buildchain Declarative Demo Dogfood | — |
125
+ | [self-build-demo-media-qualification.yml](../.github/workflows/self-build-demo-media-qualification.yml) | build | repository | active | Auditable Demo Media Profile Qualification | — |
126
+ | [self-build-fixture.yml](../.github/workflows/self-build-fixture.yml) | build | repository | active | Build Surface Fixture | — |
127
+ | [self-build-public-consumer-dogfood.yml](../.github/workflows/self-build-public-consumer-dogfood.yml) | build | repository | active | V4 Public Consumer Dogfood | — |
128
+ | [self-build-release-verify-compat.yml](../.github/workflows/self-build-release-verify-compat.yml) | build | repository | compatibility | Release - Verify | — |
129
+ | [self-build-stable-candidate-qualification.yml](../.github/workflows/self-build-stable-candidate-qualification.yml) | build | repository | active | Buildchain Stable Candidate Qualification | — |
130
+ | [self-build-verify.yml](../.github/workflows/self-build-verify.yml) | build | repository | active | Verify | — |
131
+ | [self-ops-bootstrap-dogfood.yml](../.github/workflows/self-ops-bootstrap-dogfood.yml) | ops | repository | active | Universal Bootstrap Train-First Self-Dogfood | — |
132
+ | [self-ops-dev-delivery.yml](../.github/workflows/self-ops-dev-delivery.yml) | ops | repository | active | Buildchain Dev Delivery | — |
133
+ | [self-ops-governance-audit.yml](../.github/workflows/self-ops-governance-audit.yml) | ops | repository | active | GitHub Governance Authority Audit | — |
134
+ | [self-ops-housekeeping-daily.yml](../.github/workflows/self-ops-housekeeping-daily.yml) | ops | repository | active | Engineering Housekeeper Daily | — |
135
+ | [self-ops-housekeeping-monthly.yml](../.github/workflows/self-ops-housekeeping-monthly.yml) | ops | repository | active | Engineering Housekeeper Monthly | — |
136
+ | [self-ops-housekeeping-weekly.yml](../.github/workflows/self-ops-housekeeping-weekly.yml) | ops | repository | active | Engineering Housekeeper Weekly | — |
137
+ | [self-ops-merge-queue.yml](../.github/workflows/self-ops-merge-queue.yml) | ops | repository | active | Dev Merge Queue Governance | — |
138
+ | [self-ops-patrol-daily.yml](../.github/workflows/self-ops-patrol-daily.yml) | ops | repository | active | Buildchain Dogfood Patrol Daily | — |
139
+ | [self-ops-patrol-monthly.yml](../.github/workflows/self-ops-patrol-monthly.yml) | ops | repository | active | Buildchain Dogfood Patrol Monthly | — |
140
+ | [self-ops-patrol-weekly.yml](../.github/workflows/self-ops-patrol-weekly.yml) | ops | repository | active | Buildchain Dogfood Patrol Weekly | — |
141
+ | [self-ops-promotion-recovery.yml](../.github/workflows/self-ops-promotion-recovery.yml) | ops | repository | active | Buildchain Ref Promotion Recovery | — |
142
+ | [self-ops-recovery-failure-dogfood.yml](../.github/workflows/self-ops-recovery-failure-dogfood.yml) | ops | repository | active | Buildchain Candidate Recovery Dogfood Startup Failure | — |
143
+ | [self-ops-runner-smoke.yml](../.github/workflows/self-ops-runner-smoke.yml) | ops | repository | active | Self-hosted Runner Smoke | — |
144
+ | [self-ops-stable-candidate-patrol.yml](../.github/workflows/self-ops-stable-candidate-patrol.yml) | ops | repository | active | Buildchain Dogfood Stable Candidate Patrol | — |
145
+ | [self-release-binary-assets.yml](../.github/workflows/self-release-binary-assets.yml) | release | repository | active | Binary Release Assets | — |
146
+ | [self-release-line-open.yml](../.github/workflows/self-release-line-open.yml) | release | repository | active | Release Line Bootstrap | — |
147
+ | [self-release-new-version-compat.yml](../.github/workflows/self-release-new-version-compat.yml) | release | repository | compatibility | Release - New Version | — |
148
+ | [self-release-npm-dry-run.yml](../.github/workflows/self-release-npm-dry-run.yml) | release | repository | active | Publish npm package | — |
149
+ | [self-release-promote.yml](../.github/workflows/self-release-promote.yml) | release | repository | active | Buildchain Ref Promotion | — |
150
+ | [self-release-rehearsal-dogfood.yml](../.github/workflows/self-release-rehearsal-dogfood.yml) | release | repository | active | V4 Publication Rehearsal Dogfood | — |
151
+ | [self-release-tail-dogfood.yml](../.github/workflows/self-release-tail-dogfood.yml) | release | repository | active | V4 Declarative Release Tail Dogfood | — |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungfu-tech/buildchain",
3
- "version": "4.0.2-alpha.34",
3
+ "version": "4.0.2-alpha.35",
4
4
  "private": false,
5
5
  "description": "Buildchain Release Passport, release governance, CLI toolkit, and site facts.",
6
6
  "repository": "https://github.com/kungfu-systems/buildchain",
@@ -156,18 +156,18 @@
156
156
  "scripts": {
157
157
  "precheck:static": "prettier --check architecture/decisions/0003-two-phase-delivery-warrant.md architecture/v4-delivery-authority-parity.json contracts/dev-delivery-authority-v2.schema.json dist/site/schemas/dev-delivery-authority-v2.schema.json docs/dev-delivery-qualification-landing-adr.md packages/core/dev-delivery-authority-candidate.js packages/core/dev-delivery-authority-evidence.js packages/core/dev-delivery-authority-landing.js packages/core/dev-delivery-authority-observation.js packages/core/dev-delivery-authority-qualification.js packages/core/dev-delivery-authority-settlement.js packages/core/dev-delivery-authority-state.js packages/core/dev-delivery-execution-failure.js packages/core/dev-delivery-execution-transfer.js packages/core/dev-delivery-landing-readback.js packages/core/dev-delivery-landing-terminal-evidence.js packages/core/dev-delivery-landing-testing-port.js packages/core/dev-delivery-native-execution.js packages/core/dev-delivery-native-proof.js packages/core/dev-delivery-process-boundary.js packages/core/dev-delivery-warrant-qualification.js packages/core/dev-delivery-warrant-state.js scripts/dev-delivery-authority-command-adapters.mjs scripts/dev-delivery-authority-provider.mjs scripts/dev-delivery-authority.mjs scripts/dev-delivery-native-run.mjs scripts/dev-delivery-process-boundary.mjs scripts/dev-delivery-two-phase-resume.mjs scripts/dev-delivery-two-phase.mjs scripts/dev-delivery-warrant-options.mjs scripts/dev-delivery-warrant-store.mjs templates/native-dev-delivery.yml",
158
158
  "operator:windows-jit": "bash scripts/aws-windows-jit-operator.sh",
159
- "check": "pnpm run check:static && node scripts/check-ci-lane-change-budget.mjs && node scripts/check-v4-public-dogfood-contract.mjs && node scripts/check-v4-floating-consumer-policy-contract.mjs && node scripts/check-v4-release-topology.mjs && node scripts/check-v4-universal-workflow-bootstrap.mjs && pnpm run check:v4-bridge && pnpm run check:v4-contracts && pnpm run check:v4-wasm && node scripts/check-maintainability.mjs && node scripts/check-internal-architecture.mjs && node scripts/generate-agent-change-map.mjs && node scripts/check-inventory.mjs && node scripts/check-core-mechanism-inventory.mjs && node scripts/check-v4-runtime-semantic-closure.mjs && node scripts/check-v3-v4-capability-inventory.mjs && node scripts/check-release-tail-contract.mjs && node scripts/v4-publication-rehearsal-fixture.mjs --check && node scripts/v4-architecture.mjs validate && node scripts/v4-warrant-shadow-plan.mjs validate && pnpm run check:site && pnpm run check:workflows && pnpm run test:unit && pnpm run check:golden-path && node scripts/check-action-bundles.mjs",
159
+ "check": "pnpm run check:static && node scripts/check-ci-lane-change-budget.mjs && node scripts/check-v4-public-dogfood-contract.mjs && node scripts/check-v4-floating-consumer-policy-contract.mjs && node scripts/check-v4-release-topology.mjs && node scripts/check-v4-universal-workflow-bootstrap.mjs && pnpm run check:v4-bridge && pnpm run check:v4-contracts:rust && pnpm run check:v4-wasm && node scripts/check-maintainability.mjs && node scripts/check-internal-architecture.mjs && node scripts/generate-agent-change-map.mjs && node scripts/check-inventory.mjs && node scripts/check-core-mechanism-inventory.mjs && node scripts/check-v4-runtime-semantic-closure.mjs && node scripts/check-v3-v4-capability-inventory.mjs && node scripts/check-release-tail-contract.mjs && node scripts/v4-publication-rehearsal-fixture.mjs --check && node scripts/v4-architecture.mjs validate && node scripts/v4-warrant-shadow-plan.mjs validate && pnpm run check:site && pnpm run check:workflows && pnpm run test:unit && pnpm run check:golden-path && node scripts/check-action-bundles.mjs",
160
160
  "check:static": "node scripts/check-javascript-syntax.mjs && prettier --check architecture/*.json contracts/release-tail-provider-bindings-v1.schema.json contracts/v4-canonical-contracts-v1.schema.json contracts/v4-compatibility-facts-v1.schema.json contracts/v4-delivery-warrant-semantic-diff-report-v1.schema.json contracts/v4-delivery-warrant-trace-v1.schema.json contracts/v4-floating-consumer-policy-receipt-v1.schema.json contracts/v4-runtime-ref-resume-authority-v1.schema.json contracts/v4-tail-reseal-v1.schema.json contracts/v4-host-contract-v1.schema.json contracts/v4-provider-operation-journal-v1.schema.json contracts/v4-release-activation-shadow-v1.schema.json contracts/v4-stable-publication-fence-v1.schema.json contracts/v4-partial-mutation-recovery-v1.schema.json contracts/v4-stage-capsule-v1.schema.json contracts/v4-stage-capsule-store-v1.schema.json contracts/v4-stage-capsule-resume-v1.schema.json contracts/release-tail-capabilities-v1.schema.json contracts/fixtures/release-tail-capabilities-v1/*.json contracts/fixtures/v4-delivery-warrant-trace-v1/*.json contracts/fixtures/v4-floating-consumer-policy-v1/*.json contracts/fixtures/v4-runtime-ref-resume-authority-v1/*.json contracts/fixtures/v4-tail-reseal-v1/*.json contracts/fixtures/v4-compatibility-facts-v1/*.json contracts/fixtures/v4-provider-operation-journal-v1/*.json contracts/fixtures/v4-provider-readback-idempotency-v1/*.json contracts/fixtures/v4-release-activation-shadow-v1/*.json contracts/fixtures/v4-stable-publication-fence-v1/*.json contracts/fixtures/v4-partial-mutation-recovery-v1/*.json contracts/fixtures/v4-stage-capsule-v1/*.json contracts/fixtures/v4-stage-capsule-store-v1/*.json contracts/fixtures/v4-stage-capsule-resume-v1/*.json bin/internal/command-registry.mjs bin/internal/compatibility-facts-cli.mjs packages/core/v4-canonical-contracts.js packages/core/kungfu-temporal-fact.js packages/core/buildchain-compatibility-fact.js packages/core/buildchain-compatibility-authority.js packages/core/buildchain-compatibility-proof.js packages/core/v4-floating-consumer-evidence.js packages/core/v4-floating-consumer-policy.js packages/core/v4-floating-consumer-release-passport.js packages/core/v4-runtime-ref-resume-authority.js packages/core/v4-tail-reseal-contract.js packages/core/v4-tail-reseal-github.js packages/core/v4-tail-reseal-receipt.js packages/core/v4-tail-reseal.js packages/core/v4-runtime-selector-persistence.js packages/core/v4-provider-operation-journal.js packages/core/v4-provider-readback-idempotency.js packages/core/v4-release-activation-shadow.js packages/core/v4-stable-publication-fence.js packages/core/v4-partial-mutation-recovery-qualification.js packages/core/v4-stage-capsule.js packages/core/v4-stage-capsule-store.js packages/core/v4-stage-capsule-local-store.js packages/core/v4-platform-stage-checkpoints.js packages/core/v4-stage-capsule-resume-planner.js packages/core/v4-stage-capsule-qualification.js packages/core/v4-stage-capsule-qualification-campaign.js packages/core/v4-delivery-warrant-fixture-runner.js packages/core/v4-delivery-warrant-read-candidate.js packages/core/v4-delivery-warrant-semantic-diff-gate.js packages/core/v4-delivery-warrant-shadow-adapter.js scripts/authorize-promotion-runtime-override.cjs scripts/check-core-mechanism-inventory.mjs scripts/check-v4-runtime-semantic-closure.mjs scripts/check-release-tail-contract.mjs scripts/check-javascript-syntax.mjs scripts/check-maintainability.mjs scripts/dev-pr-prequeue-guard.mjs scripts/check-v4-public-dogfood-contract.mjs scripts/maintainability-metrics.mjs scripts/maintainability-domain-metrics.mjs scripts/maintainability-governance.mjs scripts/generate-agent-change-map.mjs scripts/public-reference.mjs scripts/site-reference-registry.mjs scripts/generate-public-reference.mjs scripts/v4-architecture.mjs scripts/v4-bridge-bootstrap.mjs scripts/v4-bridge-evidence.mjs scripts/v4-consumer-policy.mjs scripts/v4-host-adapter.mjs scripts/v4-platform-stage-checkpoint-rehearsal.mjs scripts/v4-stage-capsule-resume-rehearsal.mjs scripts/v4-stage-capsule-qualification.mjs scripts/v4-tail-reseal-macos-rehearsal.mjs scripts/v4-tail-reseal.mjs scripts/v4-warrant-shadow-plan.mjs scripts/verify-golden-path.mjs tests/authorize-promotion-runtime-override.test.mjs tests/command-registry.test.mjs tests/core-mechanism-inventory.test.mjs tests/release-tail-contract.test.mjs tests/maintainability.test.mjs tests/maintainability-governance.test.mjs tests/promotion-responsibilities.test.mjs tests/public-reference.test.mjs tests/v4-architecture.test.mjs tests/v4-bridge.test.mjs tests/v4-canonical-contracts.test.mjs tests/v4-delivery-warrant-fixture-runner.test.mjs tests/v4-delivery-warrant-read-candidate.test.mjs tests/v4-floating-consumer-policy.test.mjs tests/v4-runtime-ref-resume-authority.test.mjs tests/v4-runtime-semantic-closure.test.mjs tests/v4-tail-reseal.test.mjs tests/v4-tail-reseal-parity.test.mjs tests/v4-compatibility-facts.test.mjs tests/v4-platform-stage-checkpoints.test.mjs tests/v4-provider-operation-journal.test.mjs tests/v4-provider-readback-idempotency.test.mjs tests/v4-public-dogfood-contract.test.mjs tests/v4-release-activation-shadow.test.mjs tests/v4-stable-publication-fence.test.mjs tests/v4-partial-mutation-recovery-qualification.test.mjs tests/v4-stage-capsule.test.mjs tests/v4-stage-capsule-store.test.mjs tests/v4-stage-capsule-resume-planner.test.mjs tests/v4-stage-capsule-qualification.test.mjs tests/v4-warrant-shadow-plan.test.mjs",
161
161
  "check:v4-bridge": "cargo fmt --manifest-path crates/buildchain-v4-bridge/Cargo.toml -- --check && cargo clippy --locked --manifest-path crates/buildchain-v4-bridge/Cargo.toml -- -D warnings && cargo test --locked --manifest-path crates/buildchain-v4-bridge/Cargo.toml",
162
- "check:v4-contracts": "cargo fmt --manifest-path crates/buildchain-v4-contracts/Cargo.toml -- --check && cargo clippy --locked --manifest-path crates/buildchain-v4-contracts/Cargo.toml -- -D warnings && cargo test --locked --manifest-path crates/buildchain-v4-contracts/Cargo.toml && node --test tests/v4-canonical-contracts.test.mjs tests/v4-delivery-warrant-fixture-runner.test.mjs tests/v4-delivery-warrant-read-candidate.test.mjs tests/v4-domain-wasm.test.mjs tests/v4-floating-consumer-policy-contract.test.mjs tests/v4-floating-consumer-policy.test.mjs tests/v4-runtime-ref-resume-authority.test.mjs tests/v4-tail-reseal.test.mjs tests/v4-tail-reseal-parity.test.mjs tests/v4-compatibility-facts.test.mjs tests/v4-publication-rehearsal.test.mjs tests/v4-platform-stage-checkpoints.test.mjs tests/v4-provider-operation-journal.test.mjs tests/v4-provider-readback-idempotency.test.mjs tests/v4-public-dogfood-contract.test.mjs tests/v4-release-activation-shadow.test.mjs tests/v4-stable-publication-fence.test.mjs tests/v4-partial-mutation-recovery-qualification.test.mjs tests/v4-stage-capsule.test.mjs tests/v4-stage-capsule-store.test.mjs tests/v4-stage-capsule-resume-planner.test.mjs tests/v4-stage-capsule-qualification.test.mjs",
162
+ "check:v4-contracts": "pnpm run check:v4-contracts:rust && node --test tests/v4-canonical-contracts.test.mjs tests/v4-delivery-warrant-fixture-runner.test.mjs tests/v4-delivery-warrant-read-candidate.test.mjs tests/v4-domain-wasm.test.mjs tests/v4-floating-consumer-policy-contract.test.mjs tests/v4-floating-consumer-policy.test.mjs tests/v4-runtime-ref-resume-authority.test.mjs tests/v4-tail-reseal.test.mjs tests/v4-tail-reseal-parity.test.mjs tests/v4-compatibility-facts.test.mjs tests/v4-publication-rehearsal.test.mjs tests/v4-platform-stage-checkpoints.test.mjs tests/v4-provider-operation-journal.test.mjs tests/v4-provider-readback-idempotency.test.mjs tests/v4-public-dogfood-contract.test.mjs tests/v4-release-activation-shadow.test.mjs tests/v4-stable-publication-fence.test.mjs tests/v4-partial-mutation-recovery-qualification.test.mjs tests/v4-stage-capsule.test.mjs tests/v4-stage-capsule-store.test.mjs tests/v4-stage-capsule-resume-planner.test.mjs tests/v4-stage-capsule-qualification.test.mjs",
163
163
  "build:v4-wasm": "node scripts/build-v4-domain-wasm.mjs",
164
164
  "check:v4-wasm": "prettier --check packages/core/v4-domain-wasm.js packages/core/v4-domain-wasm-artifact.js scripts/build-v4-domain-wasm.mjs scripts/copy-v4-domain-wasm.mjs tests/v4-domain-wasm.test.mjs && node scripts/build-v4-domain-wasm.mjs --check",
165
- "check:workflows": "bash scripts/check-workflows.sh",
165
+ "check:workflows": "node scripts/check-workflow-taxonomy.mjs && bash scripts/check-workflows.sh",
166
166
  "generate:reference": "node scripts/generate-public-reference.mjs",
167
167
  "check:reference": "node scripts/generate-public-reference.mjs --check",
168
168
  "generate:next-development": "node scripts/generate-next-development-guidance.mjs",
169
169
  "check:next-development": "node scripts/generate-next-development-guidance.mjs --check",
170
- "generate:site": "pnpm run generate:next-development && pnpm run generate:reference && node scripts/generate-site-bundle.mjs",
170
+ "generate:site": "pnpm run generate:workflows && pnpm run generate:next-development && pnpm run generate:reference && node scripts/generate-site-bundle.mjs",
171
171
  "check:site": "pnpm run check:next-development && pnpm run check:reference && node scripts/generate-site-bundle.mjs --check",
172
172
  "check:golden-path": "node scripts/verify-golden-path.mjs",
173
173
  "test:unit": "node --test tests/*.test.mjs",
@@ -177,7 +177,9 @@
177
177
  "pack:check": "npm pack --dry-run --json --registry=https://registry.npmjs.org/",
178
178
  "bridge:v4:build": "node scripts/v4-bridge-bootstrap.mjs build",
179
179
  "bridge:v4:run": "node scripts/v4-bridge-bootstrap.mjs run",
180
- "bridge:v4:evidence": "node scripts/v4-bridge-evidence.mjs"
180
+ "bridge:v4:evidence": "node scripts/v4-bridge-evidence.mjs",
181
+ "check:v4-contracts:rust": "cargo fmt --manifest-path crates/buildchain-v4-contracts/Cargo.toml -- --check && cargo clippy --locked --manifest-path crates/buildchain-v4-contracts/Cargo.toml -- -D warnings && cargo test --locked --manifest-path crates/buildchain-v4-contracts/Cargo.toml",
182
+ "generate:workflows": "node scripts/generate-workflow-taxonomy.mjs"
181
183
  },
182
184
  "devDependencies": {
183
185
  "ajv": "8.17.1",
@@ -833,7 +833,7 @@ export function createBuildchainContractWorld({
833
833
  breakingDefaults: {
834
834
  evidenceContract: "buildchain.controller-evidence/v1",
835
835
  descriptorVersion: descriptor.version,
836
- workflowPath: descriptor.workflow.path,
836
+ workflowPath: descriptor.workflow.contractPath || descriptor.workflow.path,
837
837
  requiredStages: descriptor.expected.stages.filter((stage) => stage.required).map((stage) => stage.id),
838
838
  capabilities: descriptor.expected.capabilities,
839
839
  evidenceRequirements: descriptor.expected.evidence,
@@ -58,7 +58,7 @@ const WORKFLOW_AND_ACTION_FILES = Object.freeze([
58
58
  ".github/workflows/.build.yml",
59
59
  ".github/workflows/.release-candidate-promote.yml",
60
60
  ".github/workflows/release-candidate-promote.yml",
61
- ".github/workflows/buildchain-ref-promotion.yml",
61
+ ".github/workflows/self-release-promote.yml",
62
62
  ".github/workflows/github-artifact-attestation.yml",
63
63
  "actions/github-artifact-attestation/action.yml",
64
64
  "actions/github-artifact-attestation/index.js",
@@ -446,7 +446,7 @@ export function createBuildchainKfdSurfaceRegistry({ root = process.cwd() } = {}
446
446
  {
447
447
  name: "Buildchain standalone binary distribution",
448
448
  artifactPath: "dist/binary",
449
- evidencePath: ".github/workflows/binary-distribution.yml",
449
+ evidencePath: ".github/workflows/self-build-binary-distribution.yml",
450
450
  distribution: normalizeKfd3DistributionDeclaration({
451
451
  registrar: "shifu",
452
452
  tasks: ["binary:build"],
@@ -15,35 +15,35 @@ const DESCRIPTORS = Object.freeze([
15
15
  [".github/workflows/.web-surface.yml", "product-publication", true, ["web-production"], "oidc", "consumer-defined", "caller-bound", "caller-bound"],
16
16
  [".github/workflows/.wheel-verify.yml", "retired-deny"],
17
17
  [".github/workflows/.binary-release-assets.yml", "product-publication", true, ["github-release"], "github-token", "buildchain-release-assets"],
18
- [".github/workflows/binary-distribution.yml", "evidence-publication"],
19
- [".github/workflows/binary-release-assets.yml", "governance-write"],
18
+ [".github/workflows/self-build-binary-distribution.yml", "evidence-publication"],
19
+ [".github/workflows/self-release-binary-assets.yml", "governance-write"],
20
20
  [".github/workflows/artifact-signing-authority.yml", "evidence-publication"],
21
- [".github/workflows/auditable-demo.yml", "governance-write"],
22
- [".github/workflows/build-surface-fixture.yml", "non-publication-oidc"],
21
+ [".github/workflows/self-build-demo-dogfood.yml", "governance-write"],
22
+ [".github/workflows/self-build-fixture.yml", "non-publication-oidc"],
23
23
  [".github/workflows/build.yml", "non-publication-oidc"],
24
24
  [".github/workflows/bootstrap.yml", "product-publication", true, ["universal-candidate-execution"], "caller-secrets", "none", "fixed", "caller-bound"],
25
- [".github/workflows/buildchain-alpha-self-dogfood.yml", "non-publication-oidc"],
26
- [".github/workflows/buildchain-dev-delivery.yml", "governance-write"],
27
- [".github/workflows/buildchain-patrol-daily.yml", "governance-write"],
28
- [".github/workflows/buildchain-patrol-monthly.yml", "governance-write"],
29
- [".github/workflows/buildchain-patrol-weekly.yml", "governance-write"],
25
+ [".github/workflows/self-build-alpha-dogfood.yml", "non-publication-oidc"],
26
+ [".github/workflows/self-ops-dev-delivery.yml", "governance-write"],
27
+ [".github/workflows/self-ops-patrol-daily.yml", "governance-write"],
28
+ [".github/workflows/self-ops-patrol-monthly.yml", "governance-write"],
29
+ [".github/workflows/self-ops-patrol-weekly.yml", "governance-write"],
30
30
  [".github/workflows/buildchain-patrol.yml", "governance-write"],
31
- [".github/workflows/buildchain-ref-promotion-recovery.yml", "governance-write"],
32
- [".github/workflows/buildchain-ref-promotion.yml", "governance-write"],
33
- [".github/workflows/buildchain-stable-candidate-patrol.yml", "governance-write"],
31
+ [".github/workflows/self-ops-promotion-recovery.yml", "governance-write"],
32
+ [".github/workflows/self-release-promote.yml", "governance-write"],
33
+ [".github/workflows/self-ops-stable-candidate-patrol.yml", "governance-write"],
34
34
  [".github/workflows/dev-qualification-patrol.yml", "governance-write"],
35
35
  [".github/workflows/dev-alpha-candidate-patrol.yml", "governance-write"],
36
36
  [".github/workflows/dev-delivery-warrant-close.yml", "governance-write"],
37
37
  [".github/workflows/dev-delivery-warrant-cancel.yml", "governance-write"],
38
- [".github/workflows/dev-merge-queue-governance.yml", "governance-write"],
38
+ [".github/workflows/self-ops-merge-queue.yml", "governance-write"],
39
39
  [".github/workflows/dev-pr-auto-merge.yml", "governance-write"],
40
- [".github/workflows/engineering-housekeeper-daily.yml", "governance-write"],
41
- [".github/workflows/engineering-housekeeper-monthly.yml", "governance-write"],
42
- [".github/workflows/engineering-housekeeper-weekly.yml", "governance-write"],
40
+ [".github/workflows/self-ops-housekeeping-daily.yml", "governance-write"],
41
+ [".github/workflows/self-ops-housekeeping-monthly.yml", "governance-write"],
42
+ [".github/workflows/self-ops-housekeeping-weekly.yml", "governance-write"],
43
43
  [".github/workflows/engineering-housekeeper.yml", "governance-write"],
44
- [".github/workflows/github-governance-audit.yml", "governance-write"],
44
+ [".github/workflows/self-ops-governance-audit.yml", "governance-write"],
45
45
  [".github/workflows/github-artifact-attestation.yml", "evidence-publication", true, ["github-artifact-attestation"], "oidc", "consumer-defined", "caller-bound", "caller-bound"],
46
- [".github/workflows/npm-publish.yml", "dry-run-only"],
46
+ [".github/workflows/self-release-npm-dry-run.yml", "dry-run-only"],
47
47
  [".github/workflows/paper-release-sealed.yml", "product-publication", true, ["npm-publish", "github-release"], "trusted-publishing", "none", "fixed", "caller-bound"],
48
48
  [".github/workflows/paper-release.yml", "product-publication", true, ["npm-publish", "github-release"], "trusted-publishing", "none", "fixed", "caller-bound"],
49
49
  [".github/workflows/patrol-daily.yml", "governance-write"],
@@ -52,18 +52,18 @@ const DESCRIPTORS = Object.freeze([
52
52
  [".github/workflows/patrol-weekly.yml", "governance-write"],
53
53
  [".github/workflows/publication-artifact.yml", "evidence-publication"],
54
54
  [".github/workflows/release-candidate-promote.yml", "product-publication", true, ["npm-publish", "github-release", "channel-ref"], "trusted-publishing", "none", "fixed", "caller-bound"],
55
- [".github/workflows/release-line-bootstrap.yml", "governance-write"],
55
+ [".github/workflows/self-release-line-open.yml", "governance-write"],
56
56
  [".github/workflows/release-propagation.yml", "governance-write"],
57
57
  [".github/workflows/release-tail.yml", "product-publication", true, ["artifact.publish", "signed-channel.commit", "release.activate", "released-evidence.synthesize"], "caller-secrets", "caller-bound", "caller-bound", "fixed"],
58
- [".github/workflows/release-verify.yml", "governance-write"],
58
+ [".github/workflows/self-build-release-verify-compat.yml", "governance-write"],
59
59
  [".github/workflows/stable-candidate-patrol.yml", "governance-write"],
60
60
  [".github/workflows/universal-bootstrap-recovery.yml", "product-publication", true, ["universal-candidate-execution"], "caller-secrets", "none", "fixed", "caller-bound"],
61
- [".github/workflows/universal-bootstrap-dogfood.yml", "product-publication", true, ["universal-candidate-execution"], "caller-secrets", "none", "fixed", "caller-bound"],
62
- [".github/workflows/v4-declarative-release-tail-dogfood.yml", "product-publication", true, ["artifact.publish", "signed-channel.commit", "release.activate", "released-evidence.synthesize"], "caller-secrets", "none", "fixed", "fixed"],
61
+ [".github/workflows/self-ops-bootstrap-dogfood.yml", "product-publication", true, ["universal-candidate-execution"], "caller-secrets", "none", "fixed", "caller-bound"],
62
+ [".github/workflows/self-release-tail-dogfood.yml", "product-publication", true, ["artifact.publish", "signed-channel.commit", "release.activate", "released-evidence.synthesize"], "caller-secrets", "none", "fixed", "fixed"],
63
63
  ]);
64
64
 
65
- export function buildchainPublicationAuthorityDescriptors() {
66
- return DESCRIPTORS.map(([
65
+ export function buildchainPublicationAuthorityDescriptors({ root = process.cwd() } = {}) {
66
+ const descriptors = DESCRIPTORS.map(([
67
67
  workflowPath,
68
68
  authorityClass,
69
69
  publicationCapable = false,
@@ -85,6 +85,21 @@ export function buildchainPublicationAuthorityDescriptors() {
85
85
  environmentMode,
86
86
  runnerPolicy: publicationCapable ? "qualified-measured" : "unqualified",
87
87
  }));
88
+ const taxonomyPath = path.join(root, "architecture/workflow-taxonomy.json");
89
+ if (!fs.existsSync(taxonomyPath)) return descriptors;
90
+ const taxonomy = JSON.parse(fs.readFileSync(taxonomyPath, "utf8"));
91
+ for (const entry of taxonomy.entries) {
92
+ if (!entry.compatibility) continue;
93
+ const previous = descriptors.find((item) => item.workflowPath === entry.compatibility.path);
94
+ if (!previous) continue;
95
+ const prefix = entry.role === "component" ? "." : `${entry.role}-`;
96
+ const workflowPath = `.github/workflows/${prefix}${entry.category}-${entry.purpose}.yml`;
97
+ if (fs.readFileSync(path.join(root, workflowPath), "utf8") !== fs.readFileSync(path.join(root, entry.compatibility.path), "utf8")) {
98
+ throw new Error(`publication authority alias differs from canonical workflow: ${workflowPath}`);
99
+ }
100
+ descriptors.push({ ...previous, workflowPath, publisherWorkflowPath: previous.publisherWorkflowPath === previous.workflowPath ? workflowPath : previous.publisherWorkflowPath });
101
+ }
102
+ return descriptors;
88
103
  }
89
104
  export function createBuildchainPublicationAuthorityRegistry({ root = process.cwd() } = {}) {
90
105
  const workflowsDir = path.join(root, ".github", "workflows");
@@ -95,7 +110,7 @@ export function createBuildchainPublicationAuthorityRegistry({ root = process.cw
95
110
  text: fs.readFileSync(path.join(workflowsDir, name), "utf8"),
96
111
  }));
97
112
  return createPublicationAuthorityRegistry({
98
- descriptors: buildchainPublicationAuthorityDescriptors(),
113
+ descriptors: buildchainPublicationAuthorityDescriptors({ root }),
99
114
  workflows,
100
115
  });
101
116
  }
@@ -196,6 +196,9 @@ function descriptorDigest(descriptor) {
196
196
 
197
197
  export function createControllerRegistry({ workflows = [] } = {}) {
198
198
  const workflowById = new Map(workflows.map((entry) => [entry.id, entry]));
199
+ for (const entry of workflows) {
200
+ if (entry.taxonomy && !entry.taxonomy.compatibilityAlias && !workflowById.has(entry.taxonomy.id)) workflowById.set(entry.taxonomy.id, entry);
201
+ }
199
202
  const controllers = CONTROLLER_SPECS.map((spec) => {
200
203
  const workflow = workflowById.get(spec.workflowId);
201
204
  if (!workflow) throw new Error(`controller ${spec.id} requires workflow descriptor ${spec.workflowId}`);
@@ -215,7 +218,7 @@ export function createControllerRegistry({ workflows = [] } = {}) {
215
218
  contract: BUILDCHAIN_CONTROLLER_DESCRIPTOR_CONTRACT,
216
219
  id: spec.id,
217
220
  version: spec.version,
218
- workflow: { id: workflow.id, path: workflow.path },
221
+ workflow: { id: workflow.id, path: workflow.path, ...(workflow.taxonomy?.contractPath ? { contractPath: workflow.taxonomy.contractPath } : {}) },
219
222
  inputs,
220
223
  expected: {
221
224
  stages: spec.stages.map((id) => ({ id, required: !optionalStages.has(id) })),
@@ -118,12 +118,12 @@ const PROTECTED_AUTHORITY_PATHS = Object.freeze([
118
118
  ".github/CODEOWNERS",
119
119
  ".github/workflows/.publication-authority.yml",
120
120
  ".github/workflows/.release-candidate-promote.yml",
121
- ".github/workflows/buildchain-ref-promotion-recovery.yml",
122
- ".github/workflows/buildchain-ref-promotion.yml",
123
- ".github/workflows/github-governance-audit.yml",
121
+ ".github/workflows/self-ops-promotion-recovery.yml",
122
+ ".github/workflows/self-release-promote.yml",
123
+ ".github/workflows/self-ops-governance-audit.yml",
124
124
  ".github/workflows/paper-release-sealed.yml",
125
125
  ".github/workflows/paper-release.yml",
126
- ".github/workflows/release-line-bootstrap.yml",
126
+ ".github/workflows/self-release-line-open.yml",
127
127
  ".github/workflows/release-candidate-promote.yml",
128
128
  "actions/promote-buildchain-ref/action.yml",
129
129
  "actions/promote-buildchain-ref/dist/index.js",
@@ -243,7 +243,7 @@ invalid.
243
243
 
244
244
  ## Public self-dogfood and adoption
245
245
 
246
- \`.github/workflows/v4-public-consumer-dogfood.yml\` remains the exact thin
246
+ \`.github/workflows/self-build-public-consumer-dogfood.yml\` remains the exact thin
247
247
  consumer of the public \`v4-stage-capsule-canary.yml@v4-alpha\` contract. Its
248
248
  declared \`lifecycle.verify\` runs \`pnpm run check\`, so the same public path
249
249
  executes pure recovery tests that inject a transient durable-state write
@@ -201,7 +201,7 @@ function explainReleaseLineDryRun({
201
201
  );
202
202
  plan.branchUpdates.push(
203
203
  { ref: targetRef, action: "would move to alpha version-state commit" },
204
- { ref: `dev/v${rule.major}/v${rule.major}.${rule.minor}`, action: "would align dev with the published alpha state" },
204
+ { ref: `dev/v${rule.major}/v${rule.major}.${rule.minor}`, action: rule.major === 4 ? "would prepare the next alpha version on dev through a separate protected PR after publication" : "would align dev with the published alpha state" },
205
205
  );
206
206
  plan.versionState.targetVersions = [exactAlpha.replace(/^next v?/, "").replace(/^v/, "")];
207
207
  plan.notes.push("Alpha promotion opens or advances the test channel; it does not move production refs.");
@@ -28,6 +28,7 @@ const ROOT_DOMAINS = new Set([
28
28
  "stage-capsule-quarantine",
29
29
  "stage-capsule-resume-observation",
30
30
  "stage-capsule-resume-plan",
31
+ "source-verification-evidence",
31
32
  "stage-capsule-artifact-manifest",
32
33
  "stage-capsule-artifact-content",
33
34
  "stage-capsule-fault-campaign",
@@ -2,6 +2,6 @@
2
2
  export const V4_DOMAIN_WASM_ABI_VERSION = 1;
3
3
  export const V4_DOMAIN_WASM_RUSTC = "rustc 1.96.0 (ac68faa20 2026-05-25)";
4
4
  export const V4_DOMAIN_WASM_SOURCE_SHA256 =
5
- "28838018db7d5794f9fe2eb546044c8a7a715f08b20af01b95975a8671d0f78a";
5
+ "07d45b2767e22007d3d41fa32c8a2dba28d9c88c11a2b28863e82d54be3a2933";
6
6
  export const V4_DOMAIN_WASM_SHA256 =
7
- "32a808ba9b749d1297c0ce4b7be1586afdae3d849e44f3f7ffb1742e572f5627";
7
+ "b37c330e9366b7e9cf9dc4b7573b1e9495212dd9520e8b8ec6cdc3fd0ab7cafd";
@@ -10,7 +10,7 @@ export const V4_FLOATING_CONSUMER_CERTIFICATION =
10
10
  const SHA256_ROOT = /^sha256:[0-9a-f]{64}$/u;
11
11
  const ALPHA_RECOVERY_BOOTSTRAP = Object.freeze({
12
12
  repository: "kungfu-systems/buildchain",
13
- sourcePath: ".github/workflows/buildchain-ref-promotion-recovery.yml",
13
+ sourcePath: ".github/workflows/self-ops-promotion-recovery.yml",
14
14
  workflow: ".github/workflows/.release-candidate-promote.yml",
15
15
  selector: "alpha/v4/v4.0",
16
16
  });
@@ -28,7 +28,7 @@ const BUILDCHAIN_REPOSITORY = "kungfu-systems/buildchain";
28
28
  const CHANNELS = Object.freeze({ v4: "stable", "v4-alpha": "alpha" });
29
29
  const ALPHA_RECOVERY_BOOTSTRAP = Object.freeze({
30
30
  selector: "alpha/v4/v4.0",
31
- sourcePath: ".github/workflows/buildchain-ref-promotion-recovery.yml",
31
+ sourcePath: ".github/workflows/self-ops-promotion-recovery.yml",
32
32
  workflow: ".github/workflows/.release-candidate-promote.yml",
33
33
  });
34
34
  const DEFAULT_STABLE_LOCK_PATH = ".buildchain/contract-lock.json";