@kungfu-tech/buildchain 4.1.6-alpha.0 → 4.1.7-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/AGENTS.md +7 -5
  2. package/CONTRIBUTING.md +12 -6
  3. package/README.md +9 -5
  4. package/architecture/action-taxonomy.json +2 -0
  5. package/architecture/agent-change-map.md +6 -1
  6. package/architecture/build-orchestration.json +7 -1
  7. package/architecture/ci-lane-change-budget.json +1836 -0
  8. package/architecture/consumer-upgrade.json +6482 -0
  9. package/architecture/internal-capabilities.json +5 -2
  10. package/architecture/maintainability-debt.json +18 -10
  11. package/architecture/maintainability-policy.json +9 -9
  12. package/architecture/release-topology.json +10 -1
  13. package/architecture/universal-workflow-bootstrap.json +88 -18
  14. package/architecture/universal-workflow-capability-policy.json +2 -2
  15. package/architecture/workflow-taxonomy.json +2 -1
  16. package/contracts/dev-delivery-authority-v2.schema.json +29 -3
  17. package/contracts/fixtures/consumer-upgrade/build-v4.0.0.json +764 -0
  18. package/contracts/fixtures/consumer-upgrade/consumer-calls.json +447 -0
  19. package/contracts/fixtures/consumer-upgrade/dev-delivery-identity-v4.0.0.json +27 -0
  20. package/contracts/fixtures/consumer-upgrade/dev-pr-auto-merge-v4.0.0.json +256 -0
  21. package/contracts/fixtures/consumer-upgrade/dev-pr-auto-merge-v4.0.9.json +358 -0
  22. package/contracts/fixtures/consumer-upgrade/release-v4.0.0.json +815 -0
  23. package/contracts/promotion-invocation-v1.schema.json +5 -0
  24. package/dist/site/buildchain-contract.json +40 -23
  25. package/dist/site/buildchain-site.json +20 -20
  26. package/dist/site/capability-registry.json +5 -5
  27. package/dist/site/controller-registry.json +17 -5
  28. package/dist/site/kfd-claims.json +1376 -143
  29. package/dist/site/kfd-upstream-aggregate.json +1 -1
  30. package/dist/site/manual-registry.json +4 -4
  31. package/dist/site/node-api-registry.json +22 -22
  32. package/dist/site/page-registry.json +14 -14
  33. package/dist/site/public-surface-audit.json +1733 -101
  34. package/dist/site/publication-authority-registry.json +651 -32
  35. package/dist/site/publication-registry.json +1 -1
  36. package/dist/site/schemas/dev-delivery-authority-v2.schema.json +29 -3
  37. package/dist/site/site-manifest.json +5 -5
  38. package/dist/site/workflow-registry.json +2501 -149
  39. package/docs/MAP.md +5 -4
  40. package/docs/code-organization.md +11 -8
  41. package/docs/getting-started.md +31 -2
  42. package/docs/migration-inventory.md +8 -6
  43. package/docs/node-api-reference.md +36 -36
  44. package/docs/workflow-path-migration.md +8 -7
  45. package/package.json +1 -1
  46. package/packages/core/build/artifact/contracts.js +10 -2
  47. package/packages/core/build/artifact/transport.js +1 -1
  48. package/packages/core/build/artifact/upload.js +2 -2
  49. package/packages/core/build/plan/action.js +2 -0
  50. package/packages/core/build/plan/admission.js +9 -3
  51. package/packages/core/build/plan/compatibility-artifacts.js +47 -0
  52. package/packages/core/build/plan/compatibility-plan.js +121 -0
  53. package/packages/core/build/plan/compatibility.js +162 -0
  54. package/packages/core/build/plan/configuration.js +10 -37
  55. package/packages/core/build/plan/identity.js +42 -0
  56. package/packages/core/build/plan/lifecycle.js +1 -0
  57. package/packages/core/build/plan/resolve.js +2 -0
  58. package/packages/core/build/summary/aggregation.js +4 -2
  59. package/packages/core/build/summary/compatibility.js +24 -0
  60. package/packages/core/build/summary/finalization.js +18 -0
  61. package/packages/core/build/summary/historical-outputs.js +88 -0
  62. package/packages/core/contracts/runtime-contract-inspection.js +8 -0
  63. package/packages/core/dev-delivery/candidate/submission.js +2 -1
  64. package/packages/core/dev-delivery/commands/dev-delivery-authority-command-adapters.mjs +2 -1
  65. package/packages/core/dev-delivery/commands/dev-delivery-authority.mjs +6 -5
  66. package/packages/core/dev-delivery/commands/dev-delivery-warrant-options.mjs +22 -3
  67. package/packages/core/dev-delivery/dev-delivery-candidate-identity.js +13 -4
  68. package/packages/core/dev-delivery/dev-delivery-warrant.js +4 -1
  69. package/packages/core/dev-delivery/warrant/handoff.js +2 -1
  70. package/packages/core/dev-delivery/warrant/transitions.js +2 -2
  71. package/packages/core/governance/buildchain-publication-authority.js +5 -9
  72. package/packages/core/release/github-release-metadata.js +58 -0
  73. package/packages/core/release/promote-candidate/action.js +4 -2
  74. package/packages/core/release/promote-candidate/preparation.js +6 -0
  75. package/packages/core/release/promote-candidate/publication.js +36 -0
  76. package/packages/core/release/promote-candidate/release-documents.js +1 -1
  77. package/packages/core/release/promotion/candidate.js +4 -2
  78. package/packages/core/release/promotion/compatibility-context.js +93 -0
  79. package/packages/core/release/promotion/compatibility-qualification.js +48 -0
  80. package/packages/core/release/promotion/compatibility.js +141 -0
  81. package/packages/core/release/promotion/historical-evidence-action.js +17 -0
  82. package/packages/core/release/promotion/historical-evidence-files.js +112 -0
  83. package/packages/core/release/promotion/historical-evidence.js +231 -0
  84. package/packages/core/release/promotion/qualification.js +12 -1
  85. package/packages/core/release/promotion/routing.js +3 -2
  86. package/packages/core/release/promotion-request.js +31 -2
  87. package/packages/core/release/release-tail-provider-adapters.js +18 -0
  88. package/packages/core/runtime/entry/actions.js +4 -1
  89. package/packages/core/runtime/entry/compatibility.js +53 -0
  90. package/packages/core/workflow/engine/conformance.js +7 -3
  91. package/packages/core/workflow/pipeline/controller.js +26 -26
  92. package/scripts/check-dev-delivery-actions.mjs +12 -0
  93. package/scripts/check-inventory.mjs +1 -1
  94. package/scripts/check-public-dogfood-contract.mjs +2 -0
  95. package/scripts/check-release-topology.mjs +5 -1
  96. package/scripts/check-self-consumer-contract.mjs +5 -1
  97. package/scripts/generate-bootstrap-admission.mjs +20 -0
  98. package/scripts/generate-site-bundle.mjs +5 -5
  99. package/scripts/generate-workflow-taxonomy.mjs +17 -0
  100. package/scripts/maintainability-metrics.mjs +30 -2
  101. package/scripts/maintainability-public-surface.mjs +5 -3
@@ -0,0 +1,256 @@
1
+ {
2
+ "inputs": {
3
+ "buildchain-repository": {
4
+ "description": "Buildchain runtime repository",
5
+ "default": "kungfu-systems/buildchain",
6
+ "type": "string",
7
+ "required": false
8
+ },
9
+ "buildchain-ref": {
10
+ "description": "Optional Buildchain runtime ref. Empty uses v3.",
11
+ "default": "v3",
12
+ "type": "string",
13
+ "required": false
14
+ },
15
+ "target-branch": {
16
+ "description": "Protected dev branch to merge ready PRs into",
17
+ "default": "",
18
+ "type": "string",
19
+ "required": false
20
+ },
21
+ "expected-pr-number": {
22
+ "description": "Optional exact PR number for targeted Agent admission; requires expected-head-sha",
23
+ "default": 0,
24
+ "type": "number",
25
+ "required": false
26
+ },
27
+ "expected-head-sha": {
28
+ "description": "Exact 40-character PR head required for targeted Agent admission",
29
+ "default": "",
30
+ "type": "string",
31
+ "required": false
32
+ },
33
+ "diagnostic-context": {
34
+ "description": "Commit-status context used for PR-visible targeted admission state",
35
+ "default": "Buildchain delivery intent",
36
+ "type": "string",
37
+ "required": false
38
+ },
39
+ "delivery-warrant-mode": {
40
+ "description": "Delivery Warrant rollout: off, shadow (read-only queue plan), or required",
41
+ "default": "off",
42
+ "type": "string",
43
+ "required": false
44
+ },
45
+ "assignment-root": {
46
+ "description": "Exact native Assignment content root",
47
+ "default": "",
48
+ "type": "string",
49
+ "required": false
50
+ },
51
+ "initiative-root": {
52
+ "description": "Exact parent Initiative content root",
53
+ "default": "",
54
+ "type": "string",
55
+ "required": false
56
+ },
57
+ "source-identity-root": {
58
+ "description": "Immutable semantic source identity root",
59
+ "default": "",
60
+ "type": "string",
61
+ "required": false
62
+ },
63
+ "source-patch-root": {
64
+ "description": "Immutable source patch or tree-intent root",
65
+ "default": "",
66
+ "type": "string",
67
+ "required": false
68
+ },
69
+ "project-cut-proof-json": {
70
+ "description": "Optional exact rooted Project Cut replay proof required when GitHub reports the PR behind the current protected base",
71
+ "default": "",
72
+ "type": "string",
73
+ "required": false
74
+ },
75
+ "plan-root": {
76
+ "description": "Exact qualification plan root",
77
+ "default": "",
78
+ "type": "string",
79
+ "required": false
80
+ },
81
+ "closure-root": {
82
+ "description": "Exact affected-closure root",
83
+ "default": "",
84
+ "type": "string",
85
+ "required": false
86
+ },
87
+ "dependency-root": {
88
+ "description": "Exact dependency-graph root",
89
+ "default": "",
90
+ "type": "string",
91
+ "required": false
92
+ },
93
+ "toolchain-root": {
94
+ "description": "Exact qualification toolchain root",
95
+ "default": "",
96
+ "type": "string",
97
+ "required": false
98
+ },
99
+ "affected-paths-json": {
100
+ "description": "JSON array of paths covered by source qualification",
101
+ "default": "[]",
102
+ "type": "string",
103
+ "required": false
104
+ },
105
+ "shard-evidence-roots-json": {
106
+ "description": "JSON array of additional source-shard evidence roots",
107
+ "default": "[]",
108
+ "type": "string",
109
+ "required": false
110
+ },
111
+ "delivery-class": {
112
+ "description": "Bounded delivery class",
113
+ "default": "native-proof-required",
114
+ "type": "string",
115
+ "required": false
116
+ },
117
+ "delivery-priority": {
118
+ "description": "Reviewed priority: ordinary, expedited, or emergency",
119
+ "default": "ordinary",
120
+ "type": "string",
121
+ "required": false
122
+ },
123
+ "warrant-lease-seconds": {
124
+ "description": "Delivery Warrant lease TTL",
125
+ "default": 3600,
126
+ "type": "number",
127
+ "required": false
128
+ },
129
+ "required-status-checks": {
130
+ "description": "Comma or newline separated required status/check-run name fragments",
131
+ "default": "check / check",
132
+ "type": "string",
133
+ "required": false
134
+ },
135
+ "queue-admission-context": {
136
+ "description": "Temporary exact-head commit status required before native queue admission",
137
+ "default": "",
138
+ "type": "string",
139
+ "required": false
140
+ },
141
+ "ready-label": {
142
+ "description": "Required label for PRs eligible to merge. Empty disables the label gate.",
143
+ "default": "ready",
144
+ "type": "string",
145
+ "required": false
146
+ },
147
+ "block-labels": {
148
+ "description": "Comma or newline separated labels that block merging",
149
+ "default": "blocked,do-not-merge,work-in-progress",
150
+ "type": "string",
151
+ "required": false
152
+ },
153
+ "allowed-head-prefixes": {
154
+ "description": "Comma or newline separated allowed source branch prefixes",
155
+ "default": "feature/,fix/,chore/,docs/,ci/,refactor/",
156
+ "type": "string",
157
+ "required": false
158
+ },
159
+ "require-approval": {
160
+ "description": "Require at least one current approval and no latest changes-requested review",
161
+ "default": true,
162
+ "type": "boolean",
163
+ "required": false
164
+ },
165
+ "same-repository-only": {
166
+ "description": "Reject fork/cross-repository PR heads by default",
167
+ "default": true,
168
+ "type": "boolean",
169
+ "required": false
170
+ },
171
+ "max-merges": {
172
+ "description": "Maximum PRs to merge in one run",
173
+ "default": 1,
174
+ "type": "number",
175
+ "required": false
176
+ },
177
+ "merge-method": {
178
+ "description": "GitHub merge method: merge, squash, or rebase",
179
+ "default": "merge",
180
+ "type": "string",
181
+ "required": false
182
+ },
183
+ "landing-mode": {
184
+ "description": "Landing mode: auto selects native queue when enabled; queue fails closed without one",
185
+ "default": "auto",
186
+ "type": "string",
187
+ "required": false
188
+ },
189
+ "dry-run": {
190
+ "description": "Plan only; do not merge PRs",
191
+ "default": true,
192
+ "type": "boolean",
193
+ "required": false
194
+ }
195
+ },
196
+ "secrets": {
197
+ "github-token": {
198
+ "description": "Optional token for reading and merging PRs. Defaults to github.token.",
199
+ "required": false
200
+ }
201
+ },
202
+ "outputs": {
203
+ "evaluated-count": {
204
+ "description": "Number of PRs evaluated",
205
+ "value": "${{ jobs.merge-dev-prs.outputs.evaluated-count }}"
206
+ },
207
+ "merged-count": {
208
+ "description": "Number of PRs directly merged, or directly eligible in dry-run mode",
209
+ "value": "${{ jobs.merge-dev-prs.outputs.merged-count }}"
210
+ },
211
+ "enqueued-count": {
212
+ "description": "Number of PRs admitted into the native merge queue",
213
+ "value": "${{ jobs.merge-dev-prs.outputs.enqueued-count }}"
214
+ },
215
+ "action-count": {
216
+ "description": "Number of direct merges, queue admissions, or planned actions",
217
+ "value": "${{ jobs.merge-dev-prs.outputs.action-count }}"
218
+ },
219
+ "skipped-count": {
220
+ "description": "Number of PRs skipped",
221
+ "value": "${{ jobs.merge-dev-prs.outputs.skipped-count }}"
222
+ },
223
+ "final-base-sha": {
224
+ "description": "Final target branch SHA after the run",
225
+ "value": "${{ jobs.merge-dev-prs.outputs.final-base-sha }}"
226
+ },
227
+ "admission-state": {
228
+ "description": "Typed targeted admission state; empty for cadence patrol",
229
+ "value": "${{ jobs.merge-dev-prs.outputs.admission-state }}"
230
+ },
231
+ "admission-receipt-root": {
232
+ "description": "Content root of the targeted exact-head admission receipt",
233
+ "value": "${{ jobs.merge-dev-prs.outputs.admission-receipt-root }}"
234
+ },
235
+ "source-proof-root": {
236
+ "description": "Content root of the reusable Source Qualification Proof",
237
+ "value": "${{ jobs.merge-dev-prs.outputs.source-proof-root }}"
238
+ },
239
+ "warrant-receipt-root": {
240
+ "description": "Content root of the selected Delivery Warrant receipt",
241
+ "value": "${{ jobs.merge-dev-prs.outputs.warrant-receipt-root }}"
242
+ },
243
+ "warrant-state-root": {
244
+ "description": "Exact readback root of the durable Warrant queue",
245
+ "value": "${{ jobs.merge-dev-prs.outputs.warrant-state-root }}"
246
+ },
247
+ "warrant-state-commit": {
248
+ "description": "Immutable queue commit containing the active Warrant readback",
249
+ "value": "${{ jobs.merge-dev-prs.outputs.warrant-state-commit }}"
250
+ },
251
+ "project-cut-proof-root": {
252
+ "description": "Verified exact Project Cut replay proof root, when supplied",
253
+ "value": "${{ jobs.merge-dev-prs.outputs.project-cut-proof-root }}"
254
+ }
255
+ }
256
+ }
@@ -0,0 +1,358 @@
1
+ {
2
+ "inputs": {
3
+ "universal-request-json": {
4
+ "description": "Versioned exact-candidate request envelope; empty preserves the compatibility path",
5
+ "default": "",
6
+ "required": false,
7
+ "type": "string"
8
+ },
9
+ "buildchain-repository": {
10
+ "description": "Buildchain runtime repository",
11
+ "default": "kungfu-systems/buildchain",
12
+ "type": "string",
13
+ "required": false
14
+ },
15
+ "buildchain-ref": {
16
+ "description": "Explicit Buildchain v4 runtime ref; empty and v3 selectors are rejected.",
17
+ "default": "v4",
18
+ "type": "string",
19
+ "required": false
20
+ },
21
+ "target-branch": {
22
+ "description": "Protected dev branch to merge ready PRs into",
23
+ "default": "",
24
+ "type": "string",
25
+ "required": false
26
+ },
27
+ "expected-pr-number": {
28
+ "description": "Optional exact PR number for targeted Agent admission; requires expected-head-sha",
29
+ "default": 0,
30
+ "type": "number",
31
+ "required": false
32
+ },
33
+ "expected-head-sha": {
34
+ "description": "Exact 40-character PR head required for targeted Agent admission",
35
+ "default": "",
36
+ "type": "string",
37
+ "required": false
38
+ },
39
+ "source-workflow-run-id": {
40
+ "description": "Exact successful source workflow run retained for immediate Warrant handoff",
41
+ "default": 0,
42
+ "type": "number",
43
+ "required": false
44
+ },
45
+ "handoff-workflow-id": {
46
+ "description": "Optional consumer workflow file to dispatch when another candidate owns the active Warrant",
47
+ "default": "",
48
+ "type": "string",
49
+ "required": false
50
+ },
51
+ "source-workflow-id": {
52
+ "description": "Optional consumer source workflow file used to recover a legacy active candidate's exact successful run",
53
+ "default": "",
54
+ "type": "string",
55
+ "required": false
56
+ },
57
+ "legacy-active-owner-binding-json": {
58
+ "description": "Explicit legacy-safe handoff path carrying the exact phase-less queue root, fence, and generation",
59
+ "default": "",
60
+ "type": "string",
61
+ "required": false
62
+ },
63
+ "diagnostic-context": {
64
+ "description": "Commit-status context used for PR-visible targeted admission state",
65
+ "default": "Buildchain delivery intent",
66
+ "type": "string",
67
+ "required": false
68
+ },
69
+ "delivery-warrant-mode": {
70
+ "description": "Delivery Warrant rollout: off, shadow (read-only queue plan), or required",
71
+ "default": "off",
72
+ "type": "string",
73
+ "required": false
74
+ },
75
+ "assignment-root": {
76
+ "description": "Exact native Assignment content root",
77
+ "default": "",
78
+ "type": "string",
79
+ "required": false
80
+ },
81
+ "initiative-root": {
82
+ "description": "Exact parent Initiative content root",
83
+ "default": "",
84
+ "type": "string",
85
+ "required": false
86
+ },
87
+ "source-identity-root": {
88
+ "description": "Immutable semantic source identity root",
89
+ "default": "",
90
+ "type": "string",
91
+ "required": false
92
+ },
93
+ "source-patch-root": {
94
+ "description": "Immutable source patch or tree-intent root",
95
+ "default": "",
96
+ "type": "string",
97
+ "required": false
98
+ },
99
+ "project-cut-proof-json": {
100
+ "description": "Optional exact rooted Project Cut replay proof required when GitHub reports the PR behind the current protected base",
101
+ "default": "",
102
+ "type": "string",
103
+ "required": false
104
+ },
105
+ "plan-root": {
106
+ "description": "Exact qualification plan root",
107
+ "default": "",
108
+ "type": "string",
109
+ "required": false
110
+ },
111
+ "closure-root": {
112
+ "description": "Exact affected-closure root",
113
+ "default": "",
114
+ "type": "string",
115
+ "required": false
116
+ },
117
+ "dependency-root": {
118
+ "description": "Exact dependency-graph root",
119
+ "default": "",
120
+ "type": "string",
121
+ "required": false
122
+ },
123
+ "toolchain-root": {
124
+ "description": "Exact qualification toolchain root",
125
+ "default": "",
126
+ "type": "string",
127
+ "required": false
128
+ },
129
+ "environment-root": {
130
+ "description": "Exact native execution environment contract root; required for required native qualification",
131
+ "default": "",
132
+ "type": "string",
133
+ "required": false
134
+ },
135
+ "affected-paths-json": {
136
+ "description": "JSON array of paths covered by source qualification",
137
+ "default": "[]",
138
+ "type": "string",
139
+ "required": false
140
+ },
141
+ "shard-evidence-roots-json": {
142
+ "description": "JSON array of additional native-shard evidence roots",
143
+ "default": "[]",
144
+ "type": "string",
145
+ "required": false
146
+ },
147
+ "native-proof-json": {
148
+ "description": "Optional reusable semantic native proof; base-only drift is classified before use",
149
+ "default": "",
150
+ "type": "string",
151
+ "required": false
152
+ },
153
+ "native-command": {
154
+ "description": "Native qualification command run after provisional Warrant selection when proof reuse is unavailable",
155
+ "default": "",
156
+ "type": "string",
157
+ "required": false
158
+ },
159
+ "native-command-root": {
160
+ "description": "Optional exact root of native-command; when supplied it must match before admission or spawn",
161
+ "default": "",
162
+ "type": "string",
163
+ "required": false
164
+ },
165
+ "release-blocker-priority-json": {
166
+ "description": "Optional exact rooted release-blocker priority claim",
167
+ "default": "",
168
+ "type": "string",
169
+ "required": false
170
+ },
171
+ "native-heartbeat-seconds": {
172
+ "description": "Heartbeat cadence while native qualification is running",
173
+ "default": 300,
174
+ "type": "number",
175
+ "required": false
176
+ },
177
+ "delivery-class": {
178
+ "description": "Bounded delivery class",
179
+ "default": "native-proof-required",
180
+ "type": "string",
181
+ "required": false
182
+ },
183
+ "delivery-priority": {
184
+ "description": "Reviewed priority: ordinary, expedited, or emergency",
185
+ "default": "ordinary",
186
+ "type": "string",
187
+ "required": false
188
+ },
189
+ "warrant-lease-seconds": {
190
+ "description": "Delivery Warrant lease TTL",
191
+ "default": 3600,
192
+ "type": "number",
193
+ "required": false
194
+ },
195
+ "required-status-checks": {
196
+ "description": "Comma or newline separated required status/check-run name fragments",
197
+ "default": "check / check",
198
+ "type": "string",
199
+ "required": false
200
+ },
201
+ "queue-admission-context": {
202
+ "description": "Exact-head status written and read back before native queue admission; required in Warrant mode",
203
+ "default": "",
204
+ "type": "string",
205
+ "required": false
206
+ },
207
+ "active-lease-context": {
208
+ "description": "Exact-head lease status written and read back as pending before enqueue; required in Warrant mode",
209
+ "default": "",
210
+ "type": "string",
211
+ "required": false
212
+ },
213
+ "ready-label": {
214
+ "description": "Required label for PRs eligible to merge. Empty disables the label gate.",
215
+ "default": "ready",
216
+ "type": "string",
217
+ "required": false
218
+ },
219
+ "block-labels": {
220
+ "description": "Comma or newline separated labels that block merging",
221
+ "default": "blocked,do-not-merge,work-in-progress",
222
+ "type": "string",
223
+ "required": false
224
+ },
225
+ "allowed-head-prefixes": {
226
+ "description": "Comma or newline separated allowed source branch prefixes",
227
+ "default": "feature/,fix/,chore/,docs/,ci/,refactor/",
228
+ "type": "string",
229
+ "required": false
230
+ },
231
+ "require-approval": {
232
+ "description": "Require at least one current approval and no latest changes-requested review",
233
+ "default": true,
234
+ "type": "boolean",
235
+ "required": false
236
+ },
237
+ "same-repository-only": {
238
+ "description": "Reject fork/cross-repository PR heads by default",
239
+ "default": true,
240
+ "type": "boolean",
241
+ "required": false
242
+ },
243
+ "max-merges": {
244
+ "description": "Maximum PRs to merge in one run",
245
+ "default": 1,
246
+ "type": "number",
247
+ "required": false
248
+ },
249
+ "merge-method": {
250
+ "description": "GitHub merge method: merge, squash, or rebase",
251
+ "default": "merge",
252
+ "type": "string",
253
+ "required": false
254
+ },
255
+ "landing-mode": {
256
+ "description": "Landing mode: auto selects native queue when enabled; queue fails closed without one",
257
+ "default": "auto",
258
+ "type": "string",
259
+ "required": false
260
+ },
261
+ "defer-landing": {
262
+ "description": "Qualify the exact required Warrant and publish its evidence without landing the PR",
263
+ "default": false,
264
+ "type": "boolean",
265
+ "required": false
266
+ },
267
+ "dry-run": {
268
+ "description": "Plan only; do not merge PRs",
269
+ "default": true,
270
+ "type": "boolean",
271
+ "required": false
272
+ }
273
+ },
274
+ "secrets": {
275
+ "github-token": {
276
+ "description": "Optional token for reading and merging PRs. Defaults to github.token.",
277
+ "required": false
278
+ }
279
+ },
280
+ "outputs": {
281
+ "evaluated-count": {
282
+ "description": "Number of PRs evaluated",
283
+ "value": "${{ jobs.merge-dev-prs.outputs.evaluated-count }}"
284
+ },
285
+ "merged-count": {
286
+ "description": "Number of PRs directly merged, or directly eligible in dry-run mode",
287
+ "value": "${{ jobs.merge-dev-prs.outputs.merged-count }}"
288
+ },
289
+ "enqueued-count": {
290
+ "description": "Number of PRs admitted into the native merge queue",
291
+ "value": "${{ jobs.merge-dev-prs.outputs.enqueued-count }}"
292
+ },
293
+ "action-count": {
294
+ "description": "Number of direct merges, queue admissions, or planned actions",
295
+ "value": "${{ jobs.merge-dev-prs.outputs.action-count }}"
296
+ },
297
+ "skipped-count": {
298
+ "description": "Number of PRs skipped",
299
+ "value": "${{ jobs.merge-dev-prs.outputs.skipped-count }}"
300
+ },
301
+ "final-base-sha": {
302
+ "description": "Final target branch SHA after the run",
303
+ "value": "${{ jobs.merge-dev-prs.outputs.final-base-sha }}"
304
+ },
305
+ "admission-state": {
306
+ "description": "Typed targeted admission state; empty for cadence patrol",
307
+ "value": "${{ jobs.merge-dev-prs.outputs.admission-state }}"
308
+ },
309
+ "admission-receipt-root": {
310
+ "description": "Content root of the targeted exact-head admission receipt",
311
+ "value": "${{ jobs.merge-dev-prs.outputs.admission-receipt-root }}"
312
+ },
313
+ "source-proof-root": {
314
+ "description": "Content root of the reusable Source Qualification Proof",
315
+ "value": "${{ jobs.merge-dev-prs.outputs.source-proof-root }}"
316
+ },
317
+ "warrant-receipt-root": {
318
+ "description": "Content root of the selected Delivery Warrant receipt",
319
+ "value": "${{ jobs.merge-dev-prs.outputs.warrant-receipt-root }}"
320
+ },
321
+ "warrant-state-root": {
322
+ "description": "Exact readback root of the durable Warrant queue",
323
+ "value": "${{ jobs.merge-dev-prs.outputs.warrant-state-root }}"
324
+ },
325
+ "warrant-state-commit": {
326
+ "description": "Immutable queue commit containing the active Warrant readback",
327
+ "value": "${{ jobs.merge-dev-prs.outputs.warrant-state-commit }}"
328
+ },
329
+ "project-cut-proof-root": {
330
+ "description": "Verified exact Project Cut replay proof root, when supplied",
331
+ "value": "${{ jobs.merge-dev-prs.outputs.project-cut-proof-root }}"
332
+ },
333
+ "native-proof-root": {
334
+ "description": "Fresh or reused semantic native proof root",
335
+ "value": "${{ jobs.merge-dev-prs.outputs.native-proof-root }}"
336
+ },
337
+ "native-reuse-decision-root": {
338
+ "description": "Rooted fail-closed native proof reuse decision",
339
+ "value": "${{ jobs.merge-dev-prs.outputs.native-reuse-decision-root }}"
340
+ },
341
+ "qualified-warrant-receipt-root": {
342
+ "description": "Atomic provisional-to-qualified Warrant receipt root",
343
+ "value": "${{ jobs.merge-dev-prs.outputs.qualified-warrant-receipt-root }}"
344
+ },
345
+ "native-execution-transfer-root": {
346
+ "description": "Content root of the cross-job native proof and state transfer",
347
+ "value": "${{ jobs.merge-dev-prs.outputs.native-execution-transfer-root }}"
348
+ },
349
+ "provider-finalizer-boundary-root": {
350
+ "description": "Live provider readback root proving pairwise-distinct hosted native, seal, and finalizer domains",
351
+ "value": "${{ jobs.merge-dev-prs.outputs.provider-finalizer-boundary-root }}"
352
+ },
353
+ "provider-heartbeat-receipt-root": {
354
+ "description": "Rooted independent durable heartbeat continuity receipt",
355
+ "value": "${{ jobs.merge-dev-prs.outputs.provider-heartbeat-receipt-root }}"
356
+ }
357
+ }
358
+ }