ceremony/.github/workflows
clad2 baa683211e fix(labels): pass bootstrap through the workflow_call boundary it was lost at
A called workflow cannot read the caller's dispatch inputs on this forge:
github.event.inputs is empty inside workflow_call even though the top-level
caller receives the value in both contexts (probe runs 6/7). The sweep's gate
read exactly that, so every dispatch-woken sweep bootstrapped — runs 459 and
523, ~20 label upserts per board event — while the trigger honestly logged
bootstrap=no.

The bridge, per the #6361 contract: labels-sweep.yml declares
workflow_call.inputs.bootstrap (string, default "no"); the dogfood caller and
the published CONSUMERS.md stub pass it via with.bootstrap with empty mapped
to "no" at the caller — kimi's edge: on schedule the top-level context is
empty, and an empty that slipped through would have turned every cron into a
bootstrap. The gate feeds the declared input to labels-reconcile unchanged,
so an invalid value meets the action's own yes|no refusal.

test/labels-bootstrap.test.sh pins every hop: the declared boundary, both
gates as the identity, no expression reading github.event.inputs (scoped to
${{ }} bodies — the file's prose names the context to explain it), the two
pass-throughs byte-exact, and the four value paths driven through the shipped
expressions into the action's real validator. Mutations: dropping the
declaration reds 4, dropping the pass-through reds 3, restoring the old gate
reds 2.

Refs #215
2026-08-05 21:06:29 +00:00
..
ci.yml fix(upstream-delta): the object is mandatory, the scan covers every governed surface, and the teeth drive the real guard (#200) 2026-08-05 13:51:21 +00:00
labels-sweep.yml fix(labels): pass bootstrap through the workflow_call boundary it was lost at 2026-08-05 21:06:29 +00:00
labels.yml fix(labels): refuse an unset API root, name transport failures, update the docs 2026-08-05 17:16:30 +00:00
refs-guard.yml fix(refs-not-closing): gather over REST, so the guard produces verdicts here 2026-08-05 17:11:19 +00:00
release-exercise.yml merge upstream 0.6.0 onto the forge tree, and port every gh call site it brought (#198) 2026-08-05 11:56:23 +00:00
release.yml merge upstream 0.6.0 onto the forge tree, and port every gh call site it brought (#198) 2026-08-05 11:56:23 +00:00
self-labels-sweep.yml fix(labels): pass bootstrap through the workflow_call boundary it was lost at 2026-08-05 21:06:29 +00:00
self-labels.yml fix(labels): refuse an unset API root, name transport failures, update the docs 2026-08-05 17:16:30 +00:00
self-release.yml feat: dogfood bootstrap — ceremony adopts its own ceremony (#11) 2026-07-22 22:19:50 +00:00